<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet Easter-eggs</title>
	<link rel="self" href="http://planet.easter-eggs.org/atom.xml"/>
	<link href="http://planet.easter-eggs.org/"/>
	<id>http://planet.easter-eggs.org/atom.xml</id>
	<updated>2012-02-06T21:30:02+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry xml:lang="en-us">
		<title type="html">Google Calendar notifications using pynotify</title>
		<link href="http://julien.danjou.info/blog/2012/google-calendar-pynotify"/>
		<id>http://julien.danjou.info/blog/2012/google-calendar-pynotify</id>
		<updated>2012-01-03T16:50:02+00:00</updated>
		<content type="html">&lt;p&gt;I use &lt;a href=&quot;http://google.com/calendar&quot;&gt;Google Calendar&lt;/a&gt; to manage my calendars,
and I really missed something to warn me whenever I have an appointment with
an alert set.&lt;/p&gt;
&lt;p&gt;So here is an example of a Python program to do such a thing. It is written using
the &lt;a href=&quot;http://code.google.com/p/gdata-python-client/&quot;&gt;Google Data APIs Python client library&lt;/a&gt;
and pynotify.&lt;/p&gt;
&lt;p&gt;I'll detail the code here, so you can build your own and adapt it to your needs.&lt;/p&gt;
&lt;p&gt;First, we need to import GTK+ and pynotify, and initialize it.&lt;/p&gt;
&lt;pre class=&quot;prettyprint python&quot;&gt;
import gtk
import pynotify
pynotify.init(sys.argv[0])
&lt;/pre&gt;

&lt;p&gt;Then, we need to import gdata Calendar API and connect to the calendar. I'll
use the simple email/password way to login, which is clearly not the best,
but it's also the simplest. Feel free to use OAuth 2.0. :-)&lt;/p&gt;
&lt;pre class=&quot;prettyprint python&quot;&gt;
calendar_service = gdata.calendar.service.CalendarService()
calendar_service.email = 'mygooglelogin'
calendar_service.password = 'mygooglepassword'
calendar_service.ProgrammaticLogin()
&lt;/pre&gt;

&lt;p&gt;Now we're ready to request stuff and notify! First, request the events from
the default calendar.&lt;/p&gt;
&lt;pre class=&quot;prettyprint python&quot;&gt;
feed = calendar_service.GetCalendarEventFeed()
&lt;/pre&gt;

&lt;p&gt;Now we can iterate over &lt;em&gt;feed&lt;/em&gt; and do various checks.&lt;/p&gt;
&lt;pre class=&quot;prettyprint python&quot;&gt;
for event in feed.entry:
    # If the event status is not confirmed, go to the next event.
    if event.event_status.value != &quot;CONFIRMED&quot;:
        continue
    # Now iterate over all the event dates (usually it has one)
    for when in event.when:
        # Parse start and end time
        try:
            start_time = datetime.datetime.strptime(when.start_time.split(&quot;.&quot;)[0], &quot;%Y-%m-%dT%H:%M:%S&quot;)
            end_time = datetime.datetime.strptime(when.end_time.split(&quot;.&quot;)[0], &quot;%Y-%m-%dT%H:%M:%S&quot;)
        except ValueError:
            # ValueError happens on parsing error. Parsing errors
            # usually happen for &quot;all day&quot; events since they have
            # not time, but we do not care about this events.
            continue
        now = datetime.datetime.now()
        # Check that the event hasn't already ended
        if end_time &gt; now:
            # Check each alert
            for reminder in when.reminder:
                # We handle only reminders with method &quot;alert&quot;
                # and whose start time minus the reminder delay has passed
                if reminder.method == &quot;alert&quot; \
                        and start_time - datetime.timedelta(0, 60 * int(reminder.minutes))  now:
                    # Build the notification
                    notification = pynotify.Notification(summary=event.title.text,
                                                         message=event.content.text)
                    # Set an icon from the GTK+ stock icons
                    notification.set_icon_from_pixbuf(gtk.Label().render_icon(gtk.STOCK_DIALOG_INFO,
                                                                              gtk.ICON_SIZE_LARGE_TOOLBAR))
                    notification.set_timeout(0)
                    # Show the notification
                    notification.show()
&lt;/pre&gt;

&lt;p&gt;Running this program, you should see a notification if an appointment has an
alert to be raised at that time.&lt;/p&gt;
&lt;p&gt;This should be enough to start to build something.&lt;/p&gt;
&lt;p&gt;If you don't want to program this into Python, you might want to take a look
at &lt;a href=&quot;http://code.google.com/p/gcalcli/wiki/HowTo&quot;&gt;gcalcli&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Using GTK+ stock icons with pynotify</title>
		<link href="http://julien.danjou.info/blog/2011/python-notify-with-gtk-stock-icon"/>
		<id>http://julien.danjou.info/blog/2011/python-notify-with-gtk-stock-icon</id>
		<updated>2011-12-27T11:55:00+00:00</updated>
		<content type="html">&lt;p&gt;It took me a while to find this, so I'm just blogging it so other people
will be able to find it.&lt;/p&gt;
&lt;p&gt;I wanted to send a &lt;a href=&quot;http://www.galago-project.org/specs/notification/&quot;&gt;desktop
notification&lt;/a&gt; using
pynotify, but using a &lt;a href=&quot;http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html&quot;&gt;GTK+ stock
icons&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With the following snippet, I managed to do it.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
import pynotify
pynotify.init(&quot;myapp&quot;)
import gtk
n = pynotify.Notification(summary=&quot;Summary&quot;, message=&quot;Message!&quot;)
n.set_icon_from_pixbuf(gtk.Label().render_icon(gtk.STOCK_HARDDISK, gtk.ICON_SIZE_LARGE_TOOLBAR))
n.show()
&lt;/pre&gt;

&lt;p&gt;Note that the use of a &lt;em&gt;Label&lt;/em&gt; is just to have a widget instanciated to use
the &lt;em&gt;render_icon()&lt;/em&gt; method. It could be any widget type as far as I
understand.&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">My OpenStack work</title>
		<link href="http://julien.danjou.info/blog/2011/my-openstack-work"/>
		<id>http://julien.danjou.info/blog/2011/my-openstack-work</id>
		<updated>2011-12-16T17:34:00+00:00</updated>
		<content type="html">&lt;p&gt;Like I already wrote here last week, I've been heavily working on
&lt;a href=&quot;http://openstack.org&quot;&gt;OpenStack&lt;/a&gt; for the last weeks.&lt;/p&gt;
&lt;p&gt;My first assignment was to package OpenStack for Debian. The packages
already present in unstable were mainly done by &lt;a href=&quot;http://thomas.goirand.fr/&quot;&gt;Thomas
Goirand&lt;/a&gt;, who based its work on the one done in
&lt;a href=&quot;http://ubuntu.com&quot;&gt;Ubuntu&lt;/a&gt;. Therefore, the packages where not in a very
good shape for Debian.&lt;/p&gt;
&lt;p&gt;Today Ghe Rivero and I (members of the &lt;a href=&quot;https://alioth.debian.org/projects/openstack&quot;&gt;OpenStack Debian packaging
team&lt;/a&gt;) managed to push the
&lt;a href=&quot;https://launchpad.net/openstack/+milestone/essex-2&quot;&gt;OpenStack Essex 2
milestone&lt;/a&gt; into unstable
with great success. You can now test and deploy OpenStack Essex 2 very easily!&lt;/p&gt;
&lt;p&gt;Packaging OpenStack &lt;a href=&quot;https://review.openstack.org/#dashboard,1669&quot;&gt;made me write several
patches&lt;/a&gt;, mainly related to
packaging, patches which were all accepted and merged by upstream. This is
nice because most of the OpenStack Debian packages lost their
&lt;em&gt;debian/patches&lt;/em&gt; directories now!&lt;/p&gt;
&lt;p&gt;Finally, I've finished to implement one blueprint I really missed: the
&lt;a href=&quot;https://blueprints.launchpad.net/nova/+spec/support-kvm-boot-from-iso&quot;&gt;ability to boot from an ISO
image&lt;/a&gt;
using &lt;a href=&quot;http://libvirt.org&quot;&gt;libvirt&lt;/a&gt;. The code still needs a review, but it
should be included in the Essex 3 milestone if everything's right.&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">New job, new blog</title>
		<link href="http://julien.danjou.info/blog/2011/new-job-new-blog"/>
		<id>http://julien.danjou.info/blog/2011/new-job-new-blog</id>
		<updated>2011-12-07T13:47:00+00:00</updated>
		<content type="html">&lt;p&gt;It has been a while since I blogged but I've been very busy, with my new job and this new blog!&lt;/p&gt;
&lt;h1&gt;New job!&lt;/h1&gt;
&lt;p&gt;I quitted my job last September, and found another one that I started in
October. I'm now the lead developer of &lt;a href=&quot;http://www.enovance.com/fr/produits-solutions/opencloud-opensource/enovance-labs&quot;&gt;eNovance
Labs&lt;/a&gt;,
where I work on the &lt;a href=&quot;http://openstack.org/&quot;&gt;OpenStack&lt;/a&gt; project. So far, this allowed me to contribute heavily to the &lt;a href=&quot;https://alioth.debian.org/projects/openstack&quot;&gt;Debian packaging of OpenStack&lt;/a&gt;.&lt;/p&gt;
&lt;h1&gt;New blog!&lt;/h1&gt;
&lt;p&gt;In the meantime, I took some time to redesign my personal homepage and this
blog, which is now using &lt;a href=&quot;https://github.com/hyde/hyde&quot;&gt;Hyde&lt;/a&gt;, the
&lt;a href=&quot;http://python.org&quot;&gt;Python&lt;/a&gt; equivalent of &lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt;,
which is in &lt;a href=&quot;http://www.ruby-lang.org/&quot;&gt;Ruby&lt;/a&gt;. Since I dislike Ruby
(sorry), I preferred to use a Python based generator, and I admit Hyde is really
cool.
Since I really suck at Web design, this one is obviously based on &lt;a href=&quot;http://twitter.github.com/bootstrap/&quot;&gt;Twitter's bootstrap&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Randonnée vélo Tours - Bouchemaine - Dompierre-sur-Mer</title>
		<link href="http://rando-velo.esaracco.fr/semaines/tours-bouchemaine-dompierre-sur-mer"/>
		<id>http://www.esaracco.fr/91d5166f8962aaeca52f52e7308d27f0</id>
		<updated>2011-11-04T15:41:07+00:00</updated>
		<content type="html">Mise en ligne du journal de bord de ma &lt;a href=&quot;http://rando-velo.esaracco.fr/semaines/tours-bouchemaine-dompierre-sur-mer&quot;&gt;randonnée à vélo Tours - Bouchemaine - Dompierre-sur-Mer&lt;/a&gt;.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Google Contacts for Emacs</title>
		<link href="http://julien.danjou.info/blog/2011/google-contacts-for-emacs"/>
		<id>http://julien.danjou.info/blog/2011/google-contacts-for-emacs</id>
		<updated>2011-09-26T13:01:00+00:00</updated>
		<content type="html">&lt;p&gt;I finally finished a thing I was really missing: accessing my Google
Contacts from Emacs.&lt;/p&gt;
&lt;p&gt;That's now possible, thanks to my new
&lt;a href=&quot;http://julien.danjou.info/software/google-contacts.el&quot;&gt;google-contacts.el&lt;/a&gt;
package.&lt;/p&gt;
&lt;p&gt;

&lt;/p&gt;
&lt;p&gt;It includes searching for any contact and displaying the result in a window.
You can also jump to a contact from &lt;a href=&quot;http://gnus.org&quot;&gt;Gnus&lt;/a&gt; by pressing a
key, and complete e-mail addresses while composing a mail.&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">OAuth 2.0 for Emacs</title>
		<link href="http://julien.danjou.info/blog/2011/oauth-2.0-for-emacs"/>
		<id>http://julien.danjou.info/blog/2011/oauth-2.0-for-emacs</id>
		<updated>2011-09-23T18:01:00+00:00</updated>
		<content type="html">&lt;p&gt;This week, I've finished my &lt;a href=&quot;http://oauth.net/2/&quot;&gt;OAuth 2.0&lt;/a&gt;
client implementation for &lt;a href=&quot;http://www.gnu.org/software/emacs/&quot;&gt;GNU Emacs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I have &lt;a href=&quot;http://bzr.savannah.gnu.org/lh/emacs/elpa/revision/126?start_revid=126&quot;&gt;imported it&lt;/a&gt;
into &lt;a href=&quot;http://elpa.gnu.org/&quot;&gt;GNU ELPA&lt;/a&gt; so Emacs 24 users will be soon able to
install it using the new Emacs packaging system.&lt;/p&gt;
&lt;p&gt;OAuth 2.0 can be used to access, among others,
&lt;a href=&quot;http://code.google.com/apis/accounts/docs/OAuth2.html&quot;&gt;Google APIs&lt;/a&gt; or the
&lt;a href=&quot;http://developers.facebook.com/docs/authentication/&quot;&gt;Facebook Graph API&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Randonnée vélo Tours - Saumur</title>
		<link href="http://rando-velo.esaracco.fr/week-ends/tours-saumur"/>
		<id>http://www.esaracco.fr/a6abcf0bb5f5af83391b65d841ea1411</id>
		<updated>2011-09-23T15:59:00+00:00</updated>
		<content type="html">Mise en ligne du journal de bord de ma &lt;a href=&quot;http://rando-velo.esaracco.fr/week-ends/tours-saumur&quot;&gt;randonnée à vélo Tours - Saumur&lt;/a&gt;.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Mes morceaux sur Grooveshark</title>
		<link href="http://grooveshark.com/#/search?q=emmanuel+saracco"/>
		<id>http://www.esaracco.fr/893b65717a487bb214aec3e6566a5c2c</id>
		<updated>2011-09-07T17:30:00+00:00</updated>
		<content type="html">Mise en ligne de quelques-uns de &lt;a title=&quot;Musique Emmanuel Saracco&quot; href=&quot;http://grooveshark.com/#/search?q=emmanuel+saracco&quot;&gt;mes morceaux&lt;/a&gt; sur le site &lt;a href=&quot;http://grooveshark.com/&quot;&gt;Grooveshark&lt;/a&gt;.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Quitting my job</title>
		<link href="http://julien.danjou.info/blog/2011/quitting-my-job"/>
		<id>http://julien.danjou.info/blog/2011/quitting-my-job</id>
		<updated>2011-08-29T10:57:00+00:00</updated>
		<content type="html">&lt;p&gt;After more than 5 years at &lt;a href=&quot;http://www.easter-eggs.com&quot;&gt;Easter-eggs&lt;/a&gt; as a
system engineer, I'll be leaving my job soon.&lt;/p&gt;
&lt;p&gt;It has been a fabulous adventure, also due to the &quot;cooperative&quot; nature of
the company. I've enjoyed worked here, with great people. I do wish them
luck for the future. Looking at the numerous things I did for the past
years, it has been quite productive!&lt;/p&gt;
&lt;p&gt;Therefore, I'll be looking for a new job in the next weeks, which will
probably keep me busy a bit. :-)&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Voyage en Grèce</title>
		<link href="http://rando-velo.esaracco.fr/voyages-sans-velo/grece"/>
		<id>http://www.esaracco.fr/85712fca9d31624661daa7c0a65b17ec</id>
		<updated>2011-07-27T11:04:33+00:00</updated>
		<content type="html">Mise en ligne des photos de mon &lt;a href=&quot;http://rando-velo.esaracco.fr/voyages-sans-velo/grece&quot;&gt;voyage en Grèce&lt;/a&gt; (sans vélo cette fois-ci ;-) ).</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Randonnée vélo Tours - Île de Groix</title>
		<link href="http://rando-velo.esaracco.fr/semaines/tours-ile-groix"/>
		<id>http://www.esaracco.fr/ca8c06767490f09f899638e070d7515e</id>
		<updated>2011-06-16T18:04:33+00:00</updated>
		<content type="html">Mise en ligne du journal de bord de ma &lt;a href=&quot;http://rando-velo.esaracco.fr/semaines/tours-ile-groix&quot;&gt;randonnée à vélo Tours - Île de Groix&lt;/a&gt;.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Randonnée vélo Tours - Rochefort-en-Terre</title>
		<link href="http://rando-velo.esaracco.fr/semaines/tours-dompierre-sur-mer-rochefort-en-terre"/>
		<id>http://www.esaracco.fr/e29b42ea4eb8672597640095fb49cb98</id>
		<updated>2011-05-24T12:47:44+00:00</updated>
		<content type="html">Mise en ligne du journal de bord de ma &lt;a href=&quot;http://rando-velo.esaracco.fr/semaines/tours-dompierre-sur-mer-rochefort-en-terre&quot;&gt;randonnée à vélo Tours - Rochefort-en-Terre&lt;/a&gt;.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Python sets comparisons</title>
		<link href="http://julien.danjou.info/blog/2011/python-sets-comparisons"/>
		<id>http://julien.danjou.info/blog/2011/python-sets-comparisons</id>
		<updated>2011-05-17T14:01:00+00:00</updated>
		<content type="html">&lt;p&gt;This week I lost some time playing with &lt;a href=&quot;http://python.org&quot;&gt;Python&lt;/a&gt;'s
&lt;a href=&quot;http://docs.python.org/library/stdtypes.html#set&quot;&gt;sets&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After digging into
Python source code, I finally discovered there is what seems to be little
bug. Anyway, it has been &quot;fixed&quot; in Python 3, fortunately. I did not find if
it was reported somewhere, but since it's fixed, it's not a big deal.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Python 2.7.1+ (default, Apr 20 2011, 10:53:33) 
[GCC 4.5.2] on linux2
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&gt;&gt;&gt; class A(object):
...     def __eq__(self, other):
...             return True
... 
&gt;&gt;&gt; A() == A()
True
&gt;&gt;&gt; [A()] == [A()]
True
&gt;&gt;&gt; set([A()]) == set([A()])
False
&lt;/pre&gt;

&lt;p&gt;This clearly did not make any sense to me. I've then tested under
Python 3.2:&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Python 3.2.1a0 (default, May  4 2011, 19:59:25) 
[GCC 4.6.1 20110428 (prerelease)] on linux2
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&gt;&gt;&gt; class A(object):
...     def __eq__(self, other):
...             return True
... 
&gt;&gt;&gt; set([A()]) == set([A()])
Traceback (most recent call last):
  File &quot;&quot;, line 1, in 
TypeError: unhashable type: 'A'
&lt;/pre&gt;

&lt;p&gt;At least, raising an error is saner. It actually helped me to understand
what I needed to do to have my sets working correctly with Python 2:&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Python 2.7.1+ (default, Apr 20 2011, 10:53:33) 
[GCC 4.5.2] on linux2
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&gt;&gt;&gt; class A(object):
...     def __eq__(self, other):
...             return True
...     def __hash__(self):
...             return 123456789
... 
&gt;&gt;&gt; set([A()]) == set([A()])
True
&lt;/pre&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Why not Lua</title>
		<link href="http://julien.danjou.info/blog/2011/why-not-lua"/>
		<id>http://julien.danjou.info/blog/2011/why-not-lua</id>
		<updated>2011-04-26T18:53:00+00:00</updated>
		<content type="html">&lt;p&gt;Since my latest announcement of the &lt;a href=&quot;http://julien.danjou.info/blog/2011/lua-workshop-at-Fabelier-tmplab&quot;&gt;Lua workshop&lt;/a&gt;, I received a couple of
emails asking why I discourage the use of &lt;a href=&quot;http://lua.org&quot;&gt;Lua&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Actually, I already wrote out many of &lt;a href=&quot;http://julien.danjou.info/blog/2008/rants-about-lua&quot;&gt;the things I dislike about Lua&lt;/a&gt;. I
won't come back on this technical issues here, but since Lua 5.2 is not yet
released (it's still at alpha stage), they are still relevant nowadays.&lt;/p&gt;
&lt;h1&gt;Stack based API is harder&lt;/h1&gt;
&lt;p&gt;The ease of integration of Lua into a C program is one of the point of Lua.
They claim it's very easy to integrate Lua into your C application, because
it does not use pointer, nor reference counting, nor anything that requires
a minimum amount of skills to be used.&lt;/p&gt;
&lt;p&gt;It uses a virtual stack based approach. You push or pop things on a stack,
and refers to them using a relative or absolute index.&lt;/p&gt;
&lt;p&gt;In order to people who never wrote Lua code to understand, here's a quick
example on how this work. The &lt;em&gt;L&lt;/em&gt; pointer is a Lua environment.&lt;/p&gt;
&lt;pre class=&quot;prettyprint lang-c&quot;&gt;
/* Create a table on the stack: index 1 */
lua_newtable(L);
/* Push a string on the stack: index 2 */
lua_pushstring(L, &quot;hello&quot;);
/* Push a number on the stack: index 3 */
lua_pushnumber(L, 123);
/* Set newtable[&quot;hello&quot;] = 123 */
lua_settable(L, -3);
&lt;/pre&gt;

&lt;p&gt;You first push a table (in Lua, a table is almost equivalent to what you'd
call a hash table in other language), then push the key, the value, and do
the assignment operation. In the settable, we use -3 as index, meaning the
&quot;3rd item on the stack counting from top&quot;. We could also have written
&lt;em&gt;lua_settable(L, 1)&lt;/em&gt;, since the table is also the first item on the stack from
the bottom.&lt;/p&gt;
&lt;p&gt;So far, so good.&lt;/p&gt;
&lt;p&gt;Problems arise when you do more complicated stuff. My previous example is
what you would typically find in a tutorial, but of course, real life is
different, and usually more complex. If you cut the things in different
parts, it can start to be more complicated.&lt;/p&gt;
&lt;p&gt;Let's take a look at the following:&lt;/p&gt;
&lt;pre class=&quot;prettyprint lang-c&quot;&gt;
/* Create a table on the stack: index 1 */
lua_newtable(L);
/* Push a string on the stack: index 2 */
lua_pushstring(L, &quot;hello&quot;);
/* Push a number on the stack: index 3 */
lua_pushnumbe(L, mycomputingfunction());
/* Set newtable[&quot;hello&quot;] = 123 */
lua_settable(L, -3);
&lt;/pre&gt;

&lt;p&gt;Here, we do exactly the same thing, but we do not push &lt;em&gt;123&lt;/em&gt; directly: we
compute it.&lt;/p&gt;
&lt;p&gt;And here's the trick: if your computing function is also using the Lua
stack, things can become &lt;em&gt;very&lt;/em&gt; messy. As long as your computing function use
the stack cleanly by pushing and poping all its item, and returning the
stack &lt;strong&gt;in the same state it was before&lt;/strong&gt;, you're safe. The problem is that in a
complex program, you also write bugs. You do not chose to, but you do. And
sometimes, you forget to pop one of the item you fetched from a table.&lt;/p&gt;
&lt;p&gt;Imagine that &lt;em&gt;mycomputingfunction&lt;/em&gt; is:&lt;/p&gt;
&lt;pre class=&quot;prettyprint lang-c&quot;&gt;
int
mycomputingfunctiong(void)
{
  /* Just push the table we want to fetch
     the number from on the stack */
  pushatableonstack(L);
  lua_pushstring(L, &quot;mykey&quot;);
  lua_gettable(L, -2);
  return lua_tonumber(L, -1);
}
&lt;/pre&gt;

&lt;p&gt;This function works perfectly. It pushes a table, then a key (&lt;em&gt;&quot;mykey&quot;&lt;/em&gt;), then
fetches mytable[&quot;mykey&quot;] and pops the key (lua_gettable does push value/pop
key itself), and then returns the numeric value of the last item (the
fetched one) of the stack.&lt;/p&gt;
&lt;p&gt;However, this function has a bug: it does not pop the table! This does not
prevent the function to work. It does not raise a segmentation fault. It
does not show any problem under &lt;a href=&quot;http://www.gnu.org/software/gdb/&quot;&gt;gdb&lt;/a&gt;. It does not show any leak under
&lt;a href=&quot;http://valgrind.org/&quot;&gt;Valgrind&lt;/a&gt;. It does now show any problem under &lt;strong&gt;any standard C debugging tool&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;But when you'll start using it, your program will start to do weird things,
and you'll have to spend a huge amount of time debugging it manually,
dumping the stack content at each step of your program to watch out what's
wrong.&lt;/p&gt;
&lt;p&gt;Another bad thing, that can happen, is some code poping accidentally an item
from the stack, or worst, from an empty stack. This does not raise any error
on the Lua side, but will break your program in very unfunny way.&lt;/p&gt;
&lt;p&gt;Even if I've been very meticulous writing &lt;a href=&quot;http://awesome.naquadah.org&quot;&gt;awesome&lt;/a&gt;, but we hit that problem
regularly.&lt;/p&gt;
&lt;p&gt;The easiest workaround is to use &lt;em&gt;lua_settop(L, 0)&lt;/em&gt; to reset the stack to 0
element. Doing this regularly (like after each program event or treatment)
can remove left-over items and avoid the never ending stack grow you may
experience if your left-over items continue to pile up. Did I tell you I
dislike work-around?&lt;/p&gt;
&lt;p&gt;You could also use &lt;em&gt;lua_call()&lt;/em&gt;, which would avoid such an error, but this
would require a huge amount of indirection, and would make write more
(useless) code.&lt;/p&gt;
&lt;p&gt;This kind of problem does not exists with pointer based API. If you screw
things up, the problem will cause a segmentation fault or leak memory, or
cause things you can (easily) debug with standard tools like gdb or
Valgrind.&lt;/p&gt;
&lt;h1&gt;No reference counting is a pain in the ass&lt;/h1&gt;
&lt;p&gt;Userdata objects are variable Lua size objects embedding a C struct you
define. It's the equivalent of an object in object oriented language.&lt;/p&gt;
&lt;p&gt;Lua does not provide any reference counting for the userdata objects. That
means you can push this objects on the stack, use them, but they cannot
directly reference each others. If you have a &quot;car&quot; userdata and a &quot;wheel&quot;
one, the car cannot hold directly a reference to the wheel. This is not
possible because userdata are allocated and garbage collected by Lua, and
there's no way to increase the reference counting yourself.&lt;/p&gt;
&lt;p&gt;So the common hack is to store the wheel into a table as a value, and store
the table index as an integer into the car data structure.&lt;/p&gt;
&lt;p&gt;This obviously makes memory leaks tracking harder, add huge level of
reference indirection in usage (still more code), and does not make the
whole process less error prone (at least in my opinion).&lt;/p&gt;
&lt;h1&gt;No paradigm makes you lose time&lt;/h1&gt;
&lt;p&gt;Lua is proud to come with no paradigm and to provide metatables.
&lt;a href=&quot;http://julien.danjou.info/blog/2008.html#_Rants_about_Lua&quot;&gt;I already showed 3 years ago that it has big flaws&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To me, this ain't no good. Lua is not functional, nor it is object oriented.&lt;/p&gt;
&lt;p&gt;Most people, including me, want one of this paradigm, or any else. Plain old
imperative is not enough.&lt;/p&gt;
&lt;p&gt;So you'll start to build more, or to use something like &lt;a href=&quot;http://loop.luaforge.net/&quot;&gt;LOOP&lt;/a&gt;, which
implements an object model. You'll implement your paradigm. I say life is
too short to (re)write a paradigm.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;http://awesome.naquadah.org&quot;&gt;awesome&lt;/a&gt; we wanted to have an object oriented approach (this is kind of
typical in such a graphical application context), so we tried to build one.
To me, this started to be a show stopper when I realized that I've ended
writing Python object model into Lua while developing &lt;em&gt;awesome (which aims to
be a window manager, not a language)&lt;/em&gt;. This is one of the reason I stopped
hacking on Lua things.&lt;/p&gt;
&lt;p&gt;I liked Python object model and wanted to have it in Lua, and spending time
rewriting Python is just not worth it. I probably should have chose Python,
not Lua. YMMV.&lt;/p&gt;
&lt;h1&gt;Embedding may not be a good choice&lt;/h1&gt;
&lt;p&gt;This is not Lua related, but I want to mention it. Googling for
&quot;&lt;a href=&quot;http://www.google.fr/search?q=embedding+vs+extending&quot;&gt;embedding vs extending&lt;/a&gt;&quot; will probably tell you more about why you should
double check that you really need to embed Lua rather than to extend it.&lt;/p&gt;
&lt;h1&gt;Being small is not an excuse&lt;/h1&gt;
&lt;p&gt;One common argument to choose Lua is that it has a small footprint. Yeah,
that's true, but that's useless. Bummer! When I program, I don't have any
resource usage pressure. People who have such pressure are either paranoids
or playing in the world of embedded computers. This is also a no more
existing conception since quad core processors equiped phones are coming
into the market. I'm rather confident that what we used to call embedded
devices are just dead and are now plain computers. But as usual, YMMV.&lt;/p&gt;
&lt;p&gt;So start to forget about it, run in your underpants and yelling &quot;yay we
killed that shit!&quot;, and then use real computers stuff. :-)&lt;/p&gt;
&lt;p&gt;Even &lt;a href=&quot;http://shootout.alioth.debian.org/u32/lua.php&quot;&gt;if benchmarks show how Lua is damn fast&lt;/a&gt;, remember what a benchmark
proves: that you can do useless things very fast.&lt;/p&gt;
&lt;h1&gt;Too few extension modules&lt;/h1&gt;
&lt;p&gt;This is not directly Lua's fault, but there's too few extension modules for
Lua. The community is quite small compared to other big languages' ones.&lt;/p&gt;
&lt;h1&gt;So think twice&lt;/h1&gt;
&lt;p&gt;before you choose Lua (or any other language). My recommendations these days
would be not to embed, but to extend. If you really have no choice and need
to embed a language into your application, &lt;a href=&quot;http://www.gnu.org/s/guile/&quot;&gt;GNU Guile&lt;/a&gt; is probably worth
considering, because it's a Scheme and therefore a functional language :-),
and because it can provides also different languages.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://git.savannah.gnu.org/gitweb/?p=guile.git;a=shortlog;h=refs/heads/lua&quot;&gt;Including Lua&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Randonnée vélo Tours - Île d'Oléron</title>
		<link href="http://rando-velo.esaracco.fr/semaines/tours-dompierre-sur-mer-ile-oleron"/>
		<id>http://www.esaracco.fr/95c048fe7c12dd89a61f5c99a153f514</id>
		<updated>2011-04-25T20:19:02+00:00</updated>
		<content type="html">Mise en ligne du journal de bord de ma &lt;a href=&quot;http://rando-velo.esaracco.fr/semaines/tours-dompierre-sur-mer-ile-oleron&quot;&gt;randonnée à vélo Tours - Île d'Oléron&lt;/a&gt;.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Lua workshop at Fabelier/tmplab</title>
		<link href="http://julien.danjou.info/blog/2011/lua-workshop-at-Fabelier-tmplab"/>
		<id>http://julien.danjou.info/blog/2011/lua-workshop-at-Fabelier-tmplab</id>
		<updated>2011-04-14T14:04:00+00:00</updated>
		<content type="html">&lt;p&gt;It seems I'll be at the &lt;a href=&quot;http://fabelier.org/lua-programming-language-by-julien-danjou/&quot;&gt;Lua workshop at Fabelier/tmplab&lt;/a&gt; on April 28th 2011,
where I'll try to present and talk about &lt;a href=&quot;http://lua.org&quot;&gt;Lua&lt;/a&gt;, how to use it, and why you
should probably not use it. ;-)&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Randonnée vélo Tours - Bouchemaine</title>
		<link href="http://rando-velo.esaracco.fr/week-ends/tours-bouchemaine2"/>
		<id>http://www.esaracco.fr/91c0f4499ee7974d04e78a837702b1e5</id>
		<updated>2011-04-11T06:22:38+00:00</updated>
		<content type="html">Mise en ligne du journal de bord de ma &lt;a href=&quot;http://rando-velo.esaracco.fr/week-ends/tours-bouchemaine2&quot;&gt;randonnée à vélo Tours - Bouchemaine&lt;/a&gt;.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Using advanced filter with mod_authnz_ldap</title>
		<link href="http://julien.danjou.info/blog/2011/using-advanced-filter-with-mod_authnz_ldap"/>
		<id>http://julien.danjou.info/blog/2011/using-advanced-filter-with-mod_authnz_ldap</id>
		<updated>2011-04-04T14:02:00+00:00</updated>
		<content type="html">&lt;p&gt;As you may know, Apache's &lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html&quot;&gt;mod_authzn_ldap&lt;/a&gt; allows to authenticate users in
Apache HTTP server using an LDAP server. Unfortunately, it has a little
implementation flaw.&lt;/p&gt;
&lt;p&gt;The filter used to authenticate the user is built by abusing the &lt;a href=&quot;http://www.ietf.org/rfc/rfc2255.txt&quot;&gt;RFC 2255&lt;/a&gt;
which specifies the LDAP URL format. This format has an &quot;attribute&quot; field
which is normally used to specify which attributes should be returned. But
&lt;em&gt;mod_authzn_ldap&lt;/em&gt; uses this attribute to compare with the username given by
the client. That means that you have to have an attribute in your LDAP
entries which matches the username, and you have to use it in the
&quot;attribute&quot; part of the URL to get things working.&lt;/p&gt;
&lt;p&gt;Therefore, I wrote a patch to add a format string in the LDAP URL in order
to user the provided username in the filter, and ignore the attribute part
of the URL, which has no use in such a context anyway.&lt;/p&gt;
&lt;p&gt;The bug has been opened in ASF Bugzilla and has number &lt;a href=&quot;https://issues.apache.org/bugzilla/show_bug.cgi?id=51005&quot;&gt;#51005&lt;/a&gt;, with the
patch. The patch is backward compatible with the current configuration
format, which is not the best choice in theory, but probably the more
pragmatic.&lt;/p&gt;
&lt;p&gt;I've no clue on the typical delay for patches in clusion in Apache HTTP
server, so le
t's just wait'n see.&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Org contacts now part of org-contrib</title>
		<link href="http://julien.danjou.info/blog/2011/org-contacts-now-part-of-org-contrib"/>
		<id>http://julien.danjou.info/blog/2011/org-contacts-now-part-of-org-contrib</id>
		<updated>2011-03-18T18:08:00+00:00</updated>
		<content type="html">&lt;p&gt;Thanks to my recent promotion allowing me to commit directly in Org-mode,
I've moved &lt;a href=&quot;http://julien.danjou.info/software/org-contacts.el&quot;&gt;Org-contacts&lt;/a&gt;
into the contrib directory of the &lt;a href=&quot;http://www.orgmode.org&quot;&gt;Orgmode&lt;/a&gt;
distribution.&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Second OrgCamp Paris</title>
		<link href="http://julien.danjou.info/blog/2011/second-orgcamp-paris"/>
		<id>http://julien.danjou.info/blog/2011/second-orgcamp-paris</id>
		<updated>2011-03-11T17:01:00+00:00</updated>
		<content type="html">&lt;p&gt;I'll be at the &lt;a href=&quot;http://www.lifehacking.fr/mediawiki/index.php/OrgModeCampAvril2011&quot;&gt;OrgCamp April 2011&lt;/a&gt; in Paris next month. However, I'm not yet
sure of what I'll talk about this time.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Org camp logo&quot; src=&quot;http://orgmode.org/worg/images/orgcamps/orgcamp-paris-january-2011.png&quot; /&gt;&lt;/p&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Second OrgCamp Paris</title>
		<link href="http://julien.danjou.info/blog/index.html#Second_OrgCamp_Paris"/>
		<id>http://julien.danjou.info/blog/index.html#Second_OrgCamp_Paris</id>
		<updated>2011-03-11T16:01:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;I'll be at the &lt;a href=&quot;http://www.lifehacking.fr/mediawiki/index.php/OrgModeCampAvril2011&quot;&gt;OrgCamp April 2011&lt;/a&gt; in Paris next month. However, I'm not yet
sure of what I'll talk about this time.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://orgmode.org/worg/images/orgcamps/orgcamp-paris-january-2011.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;




&lt;br /&gt;
&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
Flattr me!&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">My latest contributions to the Emacs' world</title>
		<link href="http://julien.danjou.info/blog/index.html#My_latest_contributions_to_the_Emacs_world"/>
		<id>http://julien.danjou.info/blog/index.html#My_latest_contributions_to_the_Emacs_world</id>
		<updated>2011-03-01T13:36:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;I spend too much time writing Emacs Lisp code these days. Unfortunately, the
more I do the more I find new useful tools to improve my work-flow and save
time for doing more Lisp. D'oh.&lt;/p&gt;

&lt;p&gt;I did not work on any big thing these last weeks, so I'm thinking it's a
good time to talk about the various code and patches I sent to multiple
Emacs packages.&lt;/p&gt;

&lt;h3&gt;el-get&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/dimitri/el-get&quot;&gt;el-get&lt;/a&gt;, a fabulous tool that installs and handles all the external Emacs
packages I use. A friendly war started on the &lt;a href=&quot;http://blog.gmane.org/gmane.emacs.el-get.devel&quot;&gt;development list&lt;/a&gt; about
autoloads handling. The discussion was overall pointless, since we had a
very hard time to communicate our ideas, and we did not understand each
others several times.&lt;/p&gt;

&lt;p&gt;In the end, &lt;em&gt;el-get&lt;/em&gt; now supports autoload correctly and do not load
automatically all your packages, improving the startup time, and using the
Emacs way to do things. Which is always better, obviously.&lt;/p&gt;


&lt;h3&gt;git-commit-mode&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;I've started to use &lt;a href=&quot;https://github.com/rafl/git-commit-mode&quot;&gt;git-commit-mode&lt;/a&gt; some times ago. I usually use &lt;em&gt;git-commit&lt;/em&gt;
with the &lt;em&gt;-v&lt;/em&gt; option to see what I'm committing. I though it would be useful
to color the diff with &lt;em&gt;diff-mode&lt;/em&gt;, so I &lt;a href=&quot;https://github.com/rafl/git-commit-mode/commit/3e2d1047fff31358c39486cd890d1eb87a464404&quot;&gt;wrote a patch&lt;/a&gt; just to do that, which
was merged today by Florian.&lt;/p&gt;


&lt;h3&gt;magit&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Some weeks ago, I decided to give a try to &lt;a href=&quot;http://philjackson.github.com/magit/&quot;&gt;magit&lt;/a&gt;, and loved it. I am not
always using it, but for basic operations it is very useful. But I really
soon found some things I did not like and therefore send patches to enhance
it.&lt;/p&gt;

&lt;p&gt;First, I've added &lt;a href=&quot;https://github.com/philjackson/magit/commit/0314e7fd1df2b37b3cd1699afdf2dc3b98aee2d1&quot;&gt;a patch to honor status.showUntrackedFiles&lt;/a&gt; which I use in
my home directory. In the mean time, I've also added
&lt;a href=&quot;https://github.com/philjackson/magit/commit/43cd05081b7e60d3f2dcce696f3a07c135f4e306&quot;&gt;a patch to allow adding an arbitrary file&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Yesterday, I sent another &lt;a href=&quot;https://github.com/philjackson/magit/pull/128&quot;&gt;pull request&lt;/a&gt;, not closed for now, which adds the
&lt;a href=&quot;https://github.com/jd/magit/commit/73afce9f0220146a55c6c63735ce48561a277632&quot;&gt;possibility to visit files in another window&lt;/a&gt; from a diff file, and
&lt;a href=&quot;https://github.com/jd/magit/commit/82d43edb123f493d639ef0835734e58fca1b8c0a&quot;&gt;the support for add-change-log-entry&lt;/a&gt; directly from the displayed diff.
Useful for these old projects still using &lt;em&gt;ChangeLog&lt;/em&gt; files but accessible
through git (hi Emacs &amp;amp; Gnus!).&lt;/p&gt;


&lt;h3&gt;Gnus&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Nothing remarkable, but I write a couple of &lt;a href=&quot;http://git.gnus.org/cgit/gnus.git/commit/?id=3ccee76adca8a830cf781e697119b980cd9fcbe1&quot;&gt;fixes&lt;/a&gt; and &lt;a href=&quot;http://git.gnus.org/cgit/gnus.git/commit/?id=01c211faea248b5d9e35f3662670bb8d12b9b137&quot;&gt;enhancements&lt;/a&gt; to the
Sieve manage mode, to the &lt;a href=&quot;http://git.gnus.org/cgit/gnus.git/commit/?id=d715adda2809176649227153d9e97564e755efb6&quot;&gt;Gravatar code&lt;/a&gt; and cleaned-up some very very old
code. Also added the possibility to
&lt;a href=&quot;http://git.gnus.org/cgit/gnus.git/commit/?id=2bd6537597f51762a4b04f81c70d8f2be5dcb690&quot;&gt;set list-identifier as a group parameter&lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;Org-mode&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;I spent most of my time working on my &lt;a href=&quot;http://git.naquadah.org/?p=~jd/org-mode.git;a=shortlog;h=refs/heads/jd/agenda-format&quot;&gt;jd/agenda-format&lt;/a&gt; branch, which is soon
to be merged. I've also just got developer access to the Org-mode patch work
and repository, so I'll be able to break things even more! ;-)&lt;/p&gt;


&lt;h3&gt;ERC&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;I &lt;a href=&quot;http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=391de97a758c44e5d38e0c8f0bd50fe5eae09d5f&quot;&gt;fixed&lt;/a&gt; &lt;strong&gt;the&lt;/strong&gt; bug that annoyed me for a long time. Now &lt;em&gt;erc-track&lt;/em&gt; does not
reset the last channel status on window visibility changes not made by the
user.&lt;/p&gt;




&lt;br /&gt;
&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
Flattr me!&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Handling my music collection with git-annex</title>
		<link href="http://julien.danjou.info/blog/index.html#Handling_my_music_collection_with_git-annex"/>
		<id>http://julien.danjou.info/blog/index.html#Handling_my_music_collection_with_git-annex</id>
		<updated>2011-02-23T16:44:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://git-annex.branchable.com/&quot;&gt;git-annex&lt;/a&gt; is a recent tool allowing to manage files with git without having
theirs contents checked into git. I've been looking at it with some interest in
the past few weeks in order to use it to handle my music collection on the
various computers I use.&lt;/p&gt;

&lt;p&gt;My laptop just got a new SSD drive which is quite small and cannot handle
the whole collection. By using git-annex, I'm now able to only check out
part of my music collection and keeping it synchronized with all my others
computers.&lt;/p&gt;

&lt;p&gt;Using &lt;em&gt;git-annex&lt;/em&gt; is pretty trivial once you understand the concepts.&lt;/p&gt;

&lt;p&gt;I've set up a a git repository in my &lt;em&gt;Music&lt;/em&gt; directory, like that:&lt;/p&gt;

&lt;pre class=&quot;example&quot;&gt;
% git init
Initialized empty Git repository in /home/jd/Music
&lt;/pre&gt;

&lt;p&gt;Then I initialized git annex:&lt;/p&gt;

&lt;pre class=&quot;example&quot;&gt;
% git annex init &amp;quot;Music on keller&amp;quot;
&lt;/pre&gt;

&lt;p&gt;So now I'm able to import all my date into git annex. &lt;em&gt;git-annex&lt;/em&gt; offers
several backends to store data. WORM is the default, but is not a good
choice for file that could be modified, and music files can be, at least
when editing the metadata. Therefore, I chose the slow but more reliable
SHA1 backend.&lt;/p&gt;

&lt;pre class=&quot;example&quot;&gt;
% git annex add --backend=SHA1 .
&lt;/pre&gt;

&lt;p&gt;That can be long, so you should be patient. Then you should commit the fact
you annexed files:&lt;/p&gt;

&lt;pre class=&quot;example&quot;&gt;
% git commit -a -m &amp;quot;Imported my music collection&amp;quot;
[master 82d060f] Imported my music collection
&lt;/pre&gt;

&lt;p&gt;Now, it's done. You can go on another computer and clone the repo:&lt;/p&gt;

&lt;pre class=&quot;example&quot;&gt;
% git clone ssh://keller/~/Music
% cd Music
% git annex get &amp;quot;Incubus - Light Grenades&amp;quot;
&lt;/pre&gt;

&lt;p&gt;And then let the magic happens. It will retrieve the whole directory for
you. Do not forgot to commit the fact that you got those album on that
machine!&lt;/p&gt;

&lt;p&gt;The concept used by git-annex is quite simple. All files are replaced by
symlinks pointing to &lt;em&gt;.git-annex/SHA1:filechecksum.log&lt;/em&gt;. This file contains
lines, whose format is:&lt;/p&gt;

&lt;pre class=&quot;example&quot;&gt;
retrieval-timestamp is-file-present uuid-of-the-repository
&lt;/pre&gt;

&lt;p&gt;Indicating if the file is present in a repository. This logs file are
commited into the repository, whereas the real content is stored in the
&lt;em&gt;.git/annex&lt;/em&gt; directory and therefore not commited.&lt;/p&gt;

&lt;p&gt;I recommend to take a look to the &lt;a href=&quot;http://git-annex.branchable.com/walkthrough/&quot;&gt;walkthrough&lt;/a&gt; page to get more idea and what
you can and &lt;a href=&quot;http://git-annex.branchable.com/not/&quot;&gt;cannot&lt;/a&gt; do with git-annex.&lt;/p&gt;




&lt;br /&gt;
&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
Flattr me!&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Publication papier du recueil de poèmes &quot;Teneurs du vide&quot;</title>
		<link href="http://www.ilv-edition.com/librairie/teneurs-vide.html"/>
		<id>http://www.esaracco.fr/d31f20971cdf45c6c8956db400ef9d74</id>
		<updated>2011-02-23T13:00:00+00:00</updated>
		<content type="html">Publication papier du recueil de poèmes &lt;strong&gt;Teneurs du vide&lt;/strong&gt; aux éditions ILV-Edition.&lt;p&gt;&lt;/p&gt;&lt;a href=&quot;http://www.ilv-edition.com/librairie/teneurs-vide.html&quot;&gt;Fiche&lt;/a&gt; - &lt;a href=&quot;http://www.ilv-edition.com/panier.php?add=622&quot;&gt;Commander&lt;/a&gt;</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Sortie de gurlchecker 0.13.1</title>
		<link href="http://gurlchecker.labs.libre-entreprise.org"/>
		<id>http://www.esaracco.fr/c85a61940e58a222899180c1681dfbda</id>
		<updated>2011-02-22T08:31:00+00:00</updated>
		<content type="html">&lt;a href=&quot;http://gurlchecker.labs.libre-entreprise.org&quot;&gt;gurlchecker&lt;/a&gt; est un vérificateur graphique de sites web pour GNU/Linux et autres systèmes POSIX. Il fonctionne sur un site entier, une page locale ou un fichier de signets.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Announcing Org-contacts</title>
		<link href="http://julien.danjou.info/blog/index.html#Announcing_Org-contacts"/>
		<id>http://julien.danjou.info/blog/index.html#Announcing_Org-contacts</id>
		<updated>2011-02-08T11:22:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;When I started to use Emacs, I got hooked by many stuff like &lt;a href=&quot;http://gnus.org&quot;&gt;Gnus&lt;/a&gt; and
&lt;a href=&quot;http://orgmode.org&quot;&gt;Org-mode&lt;/a&gt;. One thing I quickly started to hate is how the Lisp code can be
old and unmaintained. That especially applies to &lt;a href=&quot;http://bbdb.sourceforge.net&quot;&gt;BBDB&lt;/a&gt;, which has been
unmaintained for years, and has very very very old and obsolete code.&lt;/p&gt;

&lt;p&gt;Therefore I've decided to develop my own BBDB replacement based on my lovely
Org-mode. It's called &lt;a href=&quot;http://julien.danjou.info/org-contacts.html&quot;&gt;org-contacts&lt;/a&gt;, and it allows you to handle your contact
like anything you would handle in Org. This way you can manage them the way
you want, without any preset fields or any assumptions like BBDB has.&lt;/p&gt;

&lt;p&gt;I had the chance to present it at the Paris OrgCamp a couple of weeks ago,
and due to the enthusiastic audience I had, I'm now releasing it to the wide
Internet.&lt;/p&gt;



&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Naquadah theme for Emacs</title>
		<link href="http://julien.danjou.info/blog/index.html#Naquadah_theme_for_Emacs"/>
		<id>http://julien.danjou.info/blog/index.html#Naquadah_theme_for_Emacs</id>
		<updated>2011-01-31T15:31:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;I often post Emacs screenshots on this blog, and consequently receive a
bunch of request for my Emacs theme. Therefore I decided to &lt;a href=&quot;http://git.naquadah.org/?p=naquadah-theme.git;a=summary&quot;&gt;publish it&lt;/a&gt;.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Emacs snapshot Ubuntu packages</title>
		<link href="http://julien.danjou.info/blog/index.html#Emacs_snapshot_Ubuntu_packages"/>
		<id>http://julien.danjou.info/blog/index.html#Emacs_snapshot_Ubuntu_packages</id>
		<updated>2011-01-24T14:13:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://emacs.naquadah.org&quot;&gt;Emacs snapshot packages for Ubuntu&lt;/a&gt; are now available, thanks to
&lt;a href=&quot;http://blog.tapoueh.org&quot;&gt;Dimitri Fontaine&lt;/a&gt;.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">OrgCamp Paris 2011 review</title>
		<link href="http://julien.danjou.info/blog/index.html#OrgCamp_Paris__review"/>
		<id>http://julien.danjou.info/blog/index.html#OrgCamp_Paris__review</id>
		<updated>2011-01-23T12:26:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;Yesterday afternoon, I was at the first &lt;a href=&quot;http://www.lifehacking.fr/mediawiki/index.php/OrgModeCampJanvier2011&quot;&gt;OrgCamp in Paris&lt;/a&gt;. It was my first
attendance to a &lt;a href=&quot;http://en.wikipedia.org/wiki/BarCamp&quot;&gt;BarCamp&lt;/a&gt;, and I really liked it. It's basically the first
geek event I do not find boring nor useless.&lt;/p&gt;

&lt;p&gt;There was about 18-20 persons participating, which was quite high, since we
all initially though we would have been only 5.&lt;/p&gt;

&lt;p&gt;We had several presentations of various features and personal usages of
&lt;a href=&quot;http://www.orgmode.org&quot;&gt;Org-mode&lt;/a&gt;. For my part, I've quickly presented the agenda, and my &lt;a href=&quot;http://bbdb.sourceforge.net/&quot;&gt;BBDB&lt;/a&gt;
replacement named &lt;a href=&quot;http://git.naquadah.org/?p=org-contacts.git;a=summary&quot;&gt;org-contacts&lt;/a&gt; (I'll probably talk about it on this blog in
another post later).&lt;/p&gt;

&lt;p&gt;The only downside was that Bastien (the new Org-mode maintainer) was not
able to come and join us. On the other side, there were so much to tell for
a first time, I did not have so much time to code. I only have been able to
&lt;a href=&quot;http://lists.gnu.org/archive/html/emacs-orgmode/2011-01/msg01002.html&quot;&gt;fix one bug&lt;/a&gt; reported during my agenda presentation.&lt;/p&gt;

&lt;p&gt;In the end, the overall atmosphere was very enthusiastic and friendly, which
was extremely pleasant. The #org-mode-fr IRC channel has been created on
&lt;a href=&quot;http://freenode.net&quot;&gt;Freenode&lt;/a&gt;, following this event. Feel free to join us.&lt;/p&gt;

&lt;p&gt;Since people liked it so badly, it seems there should be another barcamp in
the next months. Stay tuned.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Code fontification with Gnus and Org-mode</title>
		<link href="http://julien.danjou.info/blog/index.html#Code_fontification_with_Gnus_and_Org-mode"/>
		<id>http://julien.danjou.info/blog/index.html#Code_fontification_with_Gnus_and_Org-mode</id>
		<updated>2011-01-20T13:45:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;I've added code fontification using &lt;a href=&quot;http://orgmode.org/manual/Working-With-Source-Code.html#Working-With-Source-Code&quot;&gt;Org src blocks&lt;/a&gt; inside &lt;a href=&quot;http://gnus.org&quot;&gt;Gnus&lt;/a&gt;.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/gnus-org-buffer-fontification.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;

&lt;p&gt;This interprets the block as an Org buffer and fontify it accordingly if
&lt;em&gt;org-src-fontify-natively&lt;/em&gt; it set to &lt;em&gt;t&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href=&quot;http://news.gmane.org/find-root.php?message_id=%3c80k4lj78ui.fsf%40mundaneum.com%3e&quot;&gt;Sébastien Vauban for the original idea&lt;/a&gt; and implementation. Now it
works out of the box without any customization.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">OrgCamp 2011</title>
		<link href="http://julien.danjou.info/blog/index.html#OrgCamp_"/>
		<id>http://julien.danjou.info/blog/index.html#OrgCamp_</id>
		<updated>2011-01-17T12:51:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;I'll be at the &lt;a href=&quot;http://www.lifehacking.fr/mediawiki/index.php/OrgModeCampJanvier2011&quot;&gt;OrgCamp 2011&lt;/a&gt; in Paris next Saturday.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://orgmode.org/worg/images/orgcamps/orgcamp-paris-january-2011.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;



&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Emacs snapshot Debian packages</title>
		<link href="http://julien.danjou.info/blog/index.html#Emacs_snapshot_Debian_packages"/>
		<id>http://julien.danjou.info/blog/index.html#Emacs_snapshot_Debian_packages</id>
		<updated>2011-01-12T14:54:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;I've decided to take over the maintenance of the unofficial &lt;em&gt;emacs-snapshot&lt;/em&gt;
Debian packages that were maintained by &lt;a href=&quot;http://emacs.orebokech.com&quot;&gt;Romain Francoise&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;They are available on a &lt;a href=&quot;http://emacs.naquadah.org&quot;&gt;dedicated page&lt;/a&gt;.&lt;/p&gt;



&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Color contrast correction</title>
		<link href="http://julien.danjou.info/blog/index.html#Color_contrast_correction"/>
		<id>http://julien.danjou.info/blog/index.html#Color_contrast_correction</id>
		<updated>2010-11-23T15:04:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;I finally took some time to finish my color contrast corrector.&lt;/p&gt;

&lt;p&gt;It's now able to compare two colors and to tell if they are readable when
used as foreground and background color for text rendering. If they are too
close, the code corrects both colors so to they'll become distant enough to
be readable.&lt;/p&gt;

&lt;p&gt;To do that, it uses color coordinates in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Lab_color_space&quot;&gt;CIE L*a*b* colorspace&lt;/a&gt;. This
allows to determine the luminance difference between 2 colors very easily by
comparing the &lt;em&gt;L&lt;/em&gt; component of the coordinates. The default threshold used to
determine readability based on luminance difference is 40 (on 100), which
seems to give pretty good results so far.&lt;/p&gt;

&lt;p&gt;Then it uses the &lt;a href=&quot;http://en.wikipedia.org/wiki/Color_difference#CIEDE2000&quot;&gt;CIE Delta E 2000&lt;/a&gt; formula to obtain the distance between
colors. A distance of 6 is considered to be enough for the colors to be
distinctive in our case, but that can be adjusted anyway. That depends on
reader's eyes.&lt;/p&gt;

&lt;p&gt;If both the color and luminance distances are big enough, the color pair is
considered readable when used upon each other.&lt;/p&gt;

&lt;p&gt;If these criteria are not satisfied, the code simply tries to correct the
color by adjusting the &lt;em&gt;L&lt;/em&gt; (luminance) component of the colors so their
difference is 40. Optionally, the background color can be fixed so only the
foreground color would be adjusted; this is especially handy when the color
background is not provided by any external style, but it the screen one
(like the Emacs frame background in my case).&lt;/p&gt;

&lt;p&gt;Here is an example result generated over 10 pairs of random colors. Left
colors are randomly generated, and right colors are the corrected one.&lt;/p&gt;

&lt;p&gt;    
    &lt;!--
      .ATTRLIST {
        /* (:background &quot;#9c0060&quot; :foreground &quot;#ff55b9&quot;) */
        color: #ff55b9;
        background-color: #9c0060;
      }
      .ATTRLIST-1 {
        /* (:background &quot;medium violet red&quot; :foreground &quot;DeepPink1&quot;) */
        color: #ff1493;
        background-color: #c71585;
      }
      .ATTRLIST-10 {
        /* (:background &quot;grey43&quot; :foreground &quot;chartreuse3&quot;) */
        color: #66cd00;
        background-color: #6e6e6e;
      }
      .ATTRLIST-11 {
        /* (:background &quot;#9e78ed&quot; :foreground &quot;#f0fff0&quot;) */
        color: #f0fff0;
        background-color: #9e78ed;
      }
      .ATTRLIST-12 {
        /* (:background &quot;MediumPurple2&quot; :foreground &quot;honeydew&quot;) */
        color: #f0fff0;
        background-color: #9f79ee;
      }
      .ATTRLIST-13 {
        /* (:background &quot;#131313&quot; :foreground &quot;#6c6c6c&quot;) */
        color: #6c6c6c;
        background-color: #131313;
      }
      .ATTRLIST-14 {
        /* (:background &quot;grey13&quot; :foreground &quot;grey36&quot;) */
        color: #5c5c5c;
        background-color: #212121;
      }
      .ATTRLIST-15 {
        /* (:background &quot;#9faec0&quot; :foreground &quot;#005700&quot;) */
        color: #005700;
        background-color: #9faec0;
      }
      .ATTRLIST-16 {
        /* (:background &quot;SlateGray4&quot; :foreground &quot;forest green&quot;) */
        color: #228b22;
        background-color: #6c7b8b;
      }
      .ATTRLIST-17 {
        /* (:background &quot;#4a6b4b&quot; :foreground &quot;#cccccc&quot;) */
        color: #cccccc;
        background-color: #4a6b4b;
      }
      .ATTRLIST-18 {
        /* (:background &quot;DarkSeaGreen4&quot; :foreground &quot;gray67&quot;) */
        color: #ababab;
        background-color: #698b69;
      }
      .ATTRLIST-2 {
        /* (:background &quot;#9cff38&quot; :foreground &quot;#b28282&quot;) */
        color: #b28282;
        background-color: #9cff38;
      }
      .ATTRLIST-3 {
        /* (:background &quot;chartreuse1&quot; :foreground &quot;RosyBrown3&quot;) */
        color: #cd9b9b;
        background-color: #7fff00;
      }
      .ATTRLIST-4 {
        /* (:background &quot;#525252&quot; :foreground &quot;#cfb58c&quot;) */
        color: #cfb58c;
        background-color: #525252;
      }
      .ATTRLIST-5 {
        /* (:background &quot;gray33&quot; :foreground &quot;NavajoWhite3&quot;) */
        color: #cdb38b;
        background-color: #545454;
      }
      .ATTRLIST-6 {
        /* (:background &quot;#6c9fa4&quot; :foreground &quot;#0000e1&quot;) */
        color: #0000e1;
        background-color: #6c9fa4;
      }
      .ATTRLIST-7 {
        /* (:background &quot;CadetBlue4&quot; :foreground &quot;blue1&quot;) */
        color: #0000ff;
        background-color: #53868b;
      }
      .ATTRLIST-8 {
        /* (:background &quot;linen&quot; :foreground &quot;DeepPink2&quot;) */
        color: #ee1289;
        background-color: #faf0e6;
      }
      .ATTRLIST-9 {
        /* (:background &quot;#5e5e5e&quot; :foreground &quot;#79de25&quot;) */
        color: #79de25;
        background-color: #5e5e5e;
      }
    --&gt;
    
    &lt;pre&gt;
&lt;span class=&quot;ATTRLIST-18&quot;&gt;bg: DarkSeaGreen4 fg: gray67 -&amp;gt;&lt;/span&gt;&lt;span class=&quot;ATTRLIST-18&quot;&gt;                             &lt;/span&gt;&lt;span class=&quot;ATTRLIST-17&quot;&gt;bg: #4a6b4b fg: #cccccc
&lt;/span&gt;&lt;span class=&quot;ATTRLIST-16&quot;&gt;bg: SlateGray4 fg: forest green -&amp;gt;&lt;/span&gt;&lt;span class=&quot;ATTRLIST-16&quot;&gt;                          &lt;/span&gt;&lt;span class=&quot;ATTRLIST-15&quot;&gt;bg: #9faec0 fg: #005700
&lt;/span&gt;&lt;span class=&quot;ATTRLIST-14&quot;&gt;bg: grey13 fg: grey36 -&amp;gt;&lt;/span&gt;&lt;span class=&quot;ATTRLIST-14&quot;&gt;                                    &lt;/span&gt;&lt;span class=&quot;ATTRLIST-13&quot;&gt;bg: #131313 fg: #6c6c6c
&lt;/span&gt;&lt;span class=&quot;ATTRLIST-12&quot;&gt;bg: MediumPurple2 fg: honeydew -&amp;gt;&lt;/span&gt;&lt;span class=&quot;ATTRLIST-12&quot;&gt;                           &lt;/span&gt;&lt;span class=&quot;ATTRLIST-11&quot;&gt;bg: #9e78ed fg: #f0fff0
&lt;/span&gt;&lt;span class=&quot;ATTRLIST-10&quot;&gt;bg: grey43 fg: chartreuse3 -&amp;gt;&lt;/span&gt;&lt;span class=&quot;ATTRLIST-10&quot;&gt;                               &lt;/span&gt;&lt;span class=&quot;ATTRLIST-9&quot;&gt;bg: #5e5e5e fg: #79de25
&lt;/span&gt;&lt;span class=&quot;ATTRLIST-8&quot;&gt;bg: linen fg: DeepPink2 -&amp;gt;&lt;/span&gt;&lt;span class=&quot;ATTRLIST-8&quot;&gt;                                  &lt;/span&gt;&lt;span class=&quot;ATTRLIST-8&quot;&gt;bg: linen fg: DeepPink2
&lt;/span&gt;&lt;span class=&quot;ATTRLIST-7&quot;&gt;bg: CadetBlue4 fg: blue1 -&amp;gt;&lt;/span&gt;&lt;span class=&quot;ATTRLIST-7&quot;&gt;                                 &lt;/span&gt;&lt;span class=&quot;ATTRLIST-6&quot;&gt;bg: #6c9fa4 fg: #0000e1
&lt;/span&gt;&lt;span class=&quot;ATTRLIST-5&quot;&gt;bg: gray33 fg: NavajoWhite3 -&amp;gt;&lt;/span&gt;&lt;span class=&quot;ATTRLIST-5&quot;&gt;                              &lt;/span&gt;&lt;span class=&quot;ATTRLIST-4&quot;&gt;bg: #525252 fg: #cfb58c
&lt;/span&gt;&lt;span class=&quot;ATTRLIST-3&quot;&gt;bg: chartreuse1 fg: RosyBrown3 -&amp;gt;&lt;/span&gt;&lt;span class=&quot;ATTRLIST-3&quot;&gt;                           &lt;/span&gt;&lt;span class=&quot;ATTRLIST-2&quot;&gt;bg: #9cff38 fg: #b28282
&lt;/span&gt;&lt;span class=&quot;ATTRLIST-1&quot;&gt;bg: medium violet red fg: DeepPink1 -&amp;gt;&lt;/span&gt;&lt;span class=&quot;ATTRLIST-1&quot;&gt;                      &lt;/span&gt;&lt;span class=&quot;ATTRLIST&quot;&gt;bg: #9c0060 fg: #ff55b9
&lt;/span&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;All this has been written in Emacs Lisp. The code is now available in &lt;a href=&quot;http://www.gnus.org&quot;&gt;Gnus&lt;/a&gt;
(and therefore in Emacs 24) in the packages &lt;a href=&quot;http://git.gnus.org/cgit/gnus.git/tree/lisp/color-lab.el&quot;&gt;color-lab&lt;/a&gt; and &lt;a href=&quot;http://git.gnus.org/cgit/gnus.git/tree/lisp/shr-color.el&quot;&gt;shr-color&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A future work would be to add support for colour blindness.&lt;/p&gt;

&lt;p&gt;As a side note, several people pointed me at the &lt;a href=&quot;http://www.w3.org/TR/WCAG10/&quot;&gt;WCAG&lt;/a&gt; formulas to determine
luminance and contrast ratio. These are probably good criteria to choose
your color when designing a user interface. However, they are not enough to
determine if displayed color will be readable. This means you can use them
if you are a designer, but IMHO they are pretty weak for detecting and
correcting colors you did not choose.&lt;/p&gt;



&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Elisp color manipulation routines</title>
		<link href="http://julien.danjou.info/blog/index.html#Elisp_color_manipulation_routines"/>
		<id>http://julien.danjou.info/blog/index.html#Elisp_color_manipulation_routines</id>
		<updated>2010-11-20T21:11:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;Last week, I spent some time implementing various color manipulation
routines. The ultimate goal was to find a way to determine if a text in
a certain color was readable on a background with a different color.&lt;/p&gt;

&lt;p&gt;Something I failed to do so far, despite my research in the area.&lt;/p&gt;

&lt;p&gt;However, since I think my code could be useful for other people, I've set up
a tiny &lt;a href=&quot;http://git.naquadah.org/?p=~jd/color-el.git;a=summary&quot;&gt;git repository&lt;/a&gt; with the routines I wrote.&lt;/p&gt;

&lt;p&gt;The funniest one to implement was &lt;a href=&quot;http://en.wikipedia.org/wiki/Color_difference#CIEDE2000&quot;&gt;CIEDE2000&lt;/a&gt;. I verified &lt;a href=&quot;http://git.naquadah.org/?p=~jd/color-el.git;a=blob;f=color.el;h=31b166457f41fad2e466e0e7b6ad628a471bad85;hb=HEAD&quot;&gt;my code&lt;/a&gt; with the
data given in &lt;a href=&quot;http://www.ece.rochester.edu/~gsharma/ciede2000/ciede2000noteCRNA.pdf&quot;&gt;the specifications&lt;/a&gt; and can assure it's correct. :-)&lt;/p&gt;



&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Org-mode and holidays</title>
		<link href="http://julien.danjou.info/blog/index.html#Org-mode_and_holidays"/>
		<id>http://julien.danjou.info/blog/index.html#Org-mode_and_holidays</id>
		<updated>2010-11-15T15:11:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://orgmode.org&quot;&gt;Org&lt;/a&gt; has a nice option which allows you to show week-end days in a different
color in your agenda. That means that Saturday and Sunday (when I do not
work) are fontified with &lt;em&gt;`org-agenda-date-weekend'&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;But there are other days I do not work, like my vacations or holidays.
Therefore, I've wrote a patch to add &lt;em&gt;`org-agenda-day-face-function'&lt;/em&gt; which is
optionally called to determine what should be the face used to fontify a
day. &lt;a href=&quot;http://lists.gnu.org/archive/html/emacs-orgmode/2010-11/msg00542.html&quot;&gt;This&lt;/a&gt; allows me to use the same face for holidays and for week-end days,
like for last Thursday which was an holiday in France.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/emacs-org-mode-holidays.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;

&lt;p&gt;That patch has been merged in Org last week.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Google Maps for Emacs: moving, caching and home</title>
		<link href="http://julien.danjou.info/blog/index.html#Google_Maps_for_Emacs_moving_caching_and_home"/>
		<id>http://julien.danjou.info/blog/index.html#Google_Maps_for_Emacs_moving_caching_and_home</id>
		<updated>2010-11-08T11:33:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;Last week, I worked on my &lt;a href=&quot;http://julien.danjou.info/google-maps-el.html&quot;&gt;Google Maps for Emacs&lt;/a&gt; extension. I've introduced a
new format handling for locations which include the longitude and latitude.
The initial format was just a string describing the location, which was
obviously too limited.&lt;/p&gt;

&lt;p&gt;It now prints coordinates of the different elements when the mouse is over
the map, with other information.&lt;/p&gt;

&lt;p&gt;It also center the map on &lt;em&gt;M-x google-maps&lt;/em&gt; and set a default zoom level. This
is something which was not set because it's not a good idea to set center
coordinates in order to see all points on the map automatically. But you can
still remove the centering by pressing &lt;em&gt;&quot;C&quot;&lt;/em&gt;. On the other hand, setting it
automatically allows to move the map easily, and I think that what most
users want to do.&lt;/p&gt;

&lt;p&gt;I've also added a &quot;place my home on the map&quot; feature, accessible by pressing
&lt;em&gt;&quot;h&quot;&lt;/em&gt; on any map. That adds a marker according to the location set in Emacs
using the &lt;em&gt;calendar-&lt;/em&gt; variables.&lt;/p&gt;

&lt;p&gt;This feature is also available under &lt;a href=&quot;http://orgmode.org&quot;&gt;Org&lt;/a&gt; by pressing &lt;em&gt;C-u C-c M-l&lt;/em&gt;, which
shows the location of your appointment with your home on the map too.&lt;/p&gt;

&lt;p&gt;Finally, you also get caching so it does not request images you already
seen, which makes the moving nicer and faster to use, and prompt history.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/emacs-google-maps-move.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Icon category support in Org-mode</title>
		<link href="http://julien.danjou.info/blog/index.html#Icon_category_support_in_Org-mode"/>
		<id>http://julien.danjou.info/blog/index.html#Icon_category_support_in_Org-mode</id>
		<updated>2010-11-04T12:11:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;My latest patch for &lt;a href=&quot;http://orgmode.org&quot;&gt;Org mode&lt;/a&gt; has been accepted by Carsten today. It adds
support for custom category icons in all views, like agenda or todo.&lt;/p&gt;

&lt;p&gt;You just need to configure &lt;em&gt;org-agenda-category-icon-alist&lt;/em&gt; and it will work
out of the box.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/emacs-org-category-icons.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;



&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Transparent GIF support in Emacs 24</title>
		<link href="http://julien.danjou.info/blog/index.html#Transparent_GIF_support_in_Emacs_"/>
		<id>http://julien.danjou.info/blog/index.html#Transparent_GIF_support_in_Emacs_</id>
		<updated>2010-11-02T10:43:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;Last week, I wrote a &lt;a href=&quot;http://lists.gnu.org/archive/html/emacs-devel/2010-10/msg01009.html&quot;&gt;couple of patches&lt;/a&gt; to add support for transparency when
Emacs is displaying &lt;a href=&quot;http://en.wikipedia.org/wiki/Graphics_Interchange_Format&quot;&gt;GIF&lt;/a&gt; images. Until now, it was displaying the color used
to define transparency in the file data. Now it displays the image correctly
by using the frame color as the transparency color, like it's done for other
image formats.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/emacs-gif-transparent.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;

&lt;p&gt;The patches have not been merged yet, but will probably be soon.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">No more dashes in Emacs 24 mode-line</title>
		<link href="http://julien.danjou.info/blog/index.html#No_more_dashes_in_Emacs__mode-line"/>
		<id>http://julien.danjou.info/blog/index.html#No_more_dashes_in_Emacs__mode-line</id>
		<updated>2010-10-20T11:01:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;We all know the good old Emacs mode-line you got under every window. Since
the beginning (a long time ago), it starts and ends with dashes. I've
proposed &lt;a href=&quot;http://lists.gnu.org/archive/html/emacs-devel/2010-10/msg00675.html&quot;&gt;a patch&lt;/a&gt; to remove them.&lt;/p&gt;

&lt;p&gt;Before:&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/emacs-dashes.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;

&lt;p&gt;After:&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/emacs-no-dashes.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;

&lt;p&gt;This has been merged in Emacs 24. You won't see any more ugly dashes in
graphical mode.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Enhancing Emacs mouse avoidance</title>
		<link href="http://julien.danjou.info/blog/index.html#Enhancing_Emacs_mouse_avoidance"/>
		<id>http://julien.danjou.info/blog/index.html#Enhancing_Emacs_mouse_avoidance</id>
		<updated>2010-10-19T17:23:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;Recent Emacs versions have a wonderful capacity to hide the mouse pointer as
soon as you type and insert characters in a buffer. This is controlled by
the &lt;em&gt;`make-pointer-invisible'&lt;/em&gt; variable, which is set to t by default.&lt;/p&gt;

&lt;p&gt;However that does not hide the pointer when simply moving the cursor on
screen. Therefore, I've started to use &lt;em&gt;`mouse-avoidance-mode'&lt;/em&gt;, which make
the mouse pointer jump if your cursor hits it.&lt;/p&gt;

&lt;p&gt;Unfortunately, if your cursor hits the invisible mouse pointer,
&lt;em&gt;`mouse-avoidance-mode'&lt;/em&gt; makes it jump too, because it does not know it is
invisible.&lt;/p&gt;

&lt;p&gt;Well, it &lt;em&gt;did&lt;/em&gt; not know. Now it does, &lt;a href=&quot;http://lists.gnu.org/archive/html/emacs-devel/2010-10/msg00574.html&quot;&gt;thanks to my patches&lt;/a&gt; which have been
merged in Emacs 24. Using the new function &lt;strong&gt;`frame-pointer-invisible-p'&lt;/strong&gt;, one
can know if the mouse pointer has been hidden by Emacs. Therefore I enhanced
`mouse-avoidance-mode' to use it, and everything is alright now. :-)&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Why notmuch is not much good</title>
		<link href="http://julien.danjou.info/blog/index.html#Why_notmuch_is_not_much_good"/>
		<id>http://julien.danjou.info/blog/index.html#Why_notmuch_is_not_much_good</id>
		<updated>2010-10-07T11:22:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;I've recently got a mail from one of my faithful reader, asking why not
considering &lt;a href=&quot;http://notmuchmail.org/&quot;&gt;notmuch&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Actually, I think notmuch already exists in a better way, and that's called
&lt;a href=&quot;http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol&quot;&gt;IMAP&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)&quot;&gt;Sieve&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What &lt;em&gt;notmuch&lt;/em&gt; does, is tagging your mail with tags (obviously), based on
filtering rules you write. The big downside is that you have to tag all your
mails on your computer.&lt;/p&gt;

&lt;p&gt;And if you use several computers, you'll have to tag several times your
mails. And you'll have to find a way to maintain your rules to be identical
on all your computers. That does not scale.&lt;/p&gt;

&lt;p&gt;Using Sieve for mail filtering, one can do already that actually, and much
more.&lt;/p&gt;

&lt;p&gt;A &lt;em&gt;notmuch&lt;/em&gt; rule like:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
notmuch tag +intel from:intel.com and not tag:intel
&lt;/pre&gt;

&lt;p&gt;Can be written as a Sieve rule like:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
if address :all :contains &lt;span&gt;&quot;From&quot;&lt;/span&gt; &lt;span&gt;&quot;intel.com&quot;&lt;/span&gt; {
        addflag &lt;span&gt;&quot;intel&quot;&lt;/span&gt;;
}
&lt;/pre&gt;

&lt;p&gt;The flags extension for Sieve is explained in &lt;a href=&quot;http://tools.ietf.org/html/rfc5232&quot;&gt;RFC5232&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Sieve based solution has the advantage of being treated server side, and
therefore not subject to multiple or different MUA usages. It's also fast,
if you use a good IMAP server like &lt;a href=&quot;http://www.dovecot.org&quot;&gt;Dovecot&lt;/a&gt;, which has indexing, etc.&lt;/p&gt;

&lt;p&gt;Furthermore, Sieve can obviously do a lot more than tagging, like splitting
into different mailboxes, filtering with regexp usage, vacation, etc.&lt;/p&gt;

&lt;p&gt;And if you want to fetch your mail locally, you can synchronize the IMAP box
entirely with any software able to (like &lt;a href=&quot;http://github.com/jgoerzen/offlineimap/wiki&quot;&gt;OfflineIMAP&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Now, what's probably missing, is a correct support for IMAP flags on various
MUA around. But that's not something &lt;em&gt;notmuch&lt;/em&gt; helps to solve either. :-)&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Sortie de wbmclamav 0.14</title>
		<link href="http://wbmclamav.labs.libre-entreprise.org"/>
		<id>http://www.esaracco.fr/4dd526f4ed92d29aa3c319715a62ef8c</id>
		<updated>2010-10-02T09:55:00+00:00</updated>
		<content type="html">&lt;a href=&quot;http://wbmclamav.labs.libre-entreprise.org&quot;&gt;wbmclamav&lt;/a&gt; est un module webmin pour gérer Clam Antivirus.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Gnus and Gravatar support</title>
		<link href="http://julien.danjou.info/blog/index.html#Gnus_and_Gravatar_support"/>
		<id>http://julien.danjou.info/blog/index.html#Gnus_and_Gravatar_support</id>
		<updated>2010-09-25T07:38:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;This last couple of days I've been dedicated making &lt;a href=&quot;http://www.gnus.org&quot;&gt;Gnus&lt;/a&gt;… fresher.&lt;/p&gt;

&lt;p&gt;I've decided to give a whirl on &lt;a href=&quot;http://www.gravatar.com&quot;&gt;Gravatar&lt;/a&gt; support. I already tried the
&lt;em&gt;gravatar.el&lt;/em&gt; lying on the Interweb, but well, it was crap: it used &lt;em&gt;wget&lt;/em&gt; to
fetch pictures, therefore was totally synchronous. Reading each mail was
slower. The cache did not even have TTL, as far as I recall.&lt;/p&gt;

&lt;p&gt;So, I've now wrote &lt;strong&gt;&lt;a href=&quot;http://git.gnus.org/cgit/gnus.git/tree/lisp/gravatar.el&quot;&gt;gravatar.el&lt;/a&gt;&lt;/strong&gt; implementing the Gravatar API. Asynchronously
of course. With cache, TTL, etc. Perfect. :-)&lt;/p&gt;

&lt;p&gt;Then I've composed &lt;strong&gt;&lt;a href=&quot;http://git.gnus.org/cgit/gnus.git/tree/lisp/gnus-gravatar.el&quot;&gt;gnus-gravatar.el&lt;/a&gt;&lt;/strong&gt;, implementing a washing function adding
Gravatar for &lt;em&gt;From&lt;/em&gt; field and/or &lt;em&gt;Cc/To&lt;/em&gt; fields, like done for &lt;a href=&quot;https://www.cs.indiana.edu/picons/&quot;&gt;picons&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As I was expecting, the patch was badly received by the GNU guys, which
start talking about thinks like external resources, privacy, non-free
software, etc. Boring.&lt;/p&gt;

&lt;p&gt;Fortunately, Lars allowed me to push the patch in git so everybody can give
it a try. I'm now waiting for feedbacks in order to know if I will have to
maintain this patch outside Gnus, or not.&lt;/p&gt;

&lt;p&gt;Here's the mandatory screen-shot.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/gnus-gravatar.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Gnus news is good news!</title>
		<link href="http://julien.danjou.info/blog/index.html#Gnus_news_is_good_news"/>
		<id>http://julien.danjou.info/blog/index.html#Gnus_news_is_good_news</id>
		<updated>2010-09-23T08:21:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;As I already wrote too many times, I've started to use &lt;a href=&quot;http://gnus.org&quot;&gt;Gnus&lt;/a&gt; 6 months ago,
and never looked back.&lt;/p&gt;

&lt;p&gt;At that time, I joined the &lt;a href=&quot;http://gnus.org/resources.html&quot;&gt;ding mailing list&lt;/a&gt; in order to ask some dumb
questions and, once, send a patch. There were very low activity on that
list.&lt;/p&gt;

&lt;p&gt;Until Lars, the original Gnus author, came back.&lt;/p&gt;

&lt;p&gt;Three weeks ago, he started to wrote a new wash function to render &lt;a href=&quot;http://en.wikipedia.org/wiki/HTM&quot;&gt;HTML&lt;/a&gt;
mails properly, with pictures. It's named &lt;strong&gt;`gnus-html'&lt;/strong&gt;, and is (for now)
based on &lt;a href=&quot;http://w3m.sourceforge.net&quot;&gt;w3m&lt;/a&gt; (but not on &lt;a href=&quot;http://emacs-w3m.namazu.org/&quot;&gt;emacs-w3m&lt;/a&gt;, which is not part of Emacs).&lt;/p&gt;

&lt;p&gt;Last week, I've sent a set of patches to replace the usage of &lt;a href=&quot;http://curl.haxx.se&quot;&gt;curl&lt;/a&gt; by the
standard &lt;strong&gt;`url-retrieve'&lt;/strong&gt; function to fetch images, plus various enhancement.
It seems that my work was good enough that Lars offered me write access to
the git repository. I can therefore mess up the Gnus entirely. Hurrah!&lt;/p&gt;

&lt;p&gt;I've continued to work on &lt;strong&gt;`gnus-html'&lt;/strong&gt; and recently merged a set of patches
improving image retrieval (which is now done in parallel) and starting to
use &lt;strong&gt;`url-cache'&lt;/strong&gt; to cache image for a defined period of time. Of course, I
found a bunch of tiny bug and special case while reading RSS feeds and
various HTML mails, and fixed them all along.&lt;/p&gt;

&lt;p&gt;Lars added a &lt;a href=&quot;http://xmlsoft.org&quot;&gt;libxml&lt;/a&gt; binding for Emacs 24, providing the &lt;strong&gt;`html-parse-string'&lt;/strong&gt;
function. His future plan seems to be the abandon of w3m in favor of a
native parsing via libxml to render HTML, and therefore, HTML mails.&lt;/p&gt;

&lt;p&gt;I should also mention the new &lt;strong&gt;`nnimap'&lt;/strong&gt; back-end; Gnus has been designed to
read &lt;a href=&quot;http://en.wikipedia.org/wiki/Network_News_Transfer_Protocol&quot;&gt;NNTP&lt;/a&gt; newsgroups, and not mails. Consequently, it had a very poor
behaviour when used with a back-end such has &lt;a href=&quot;http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol&quot;&gt;IMAP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lars took a week to rewrite entirely our dear &lt;strong&gt;`nnimap'&lt;/strong&gt; back-end, and make it
act in a more expected way. There's still a bunch of bug and code to write,
but it is at least usable and seems faster than the old code.&lt;/p&gt;

&lt;p&gt;Last thing I did was to rewrite the icon support in the group buffer. When I
started to use Gnus, I was curious and tried to configure this. I never
managed to make it work, and now know and understand why it was broken. So I
ended rewriting entirely, and now it works. I never though I would
understand, fix, and commit this code when reading the Gnus documentation
this winter, but hell yeah, I did.&lt;/p&gt;

&lt;p&gt;Now I've still several little project to improve things in all sort of area.
We'll see what I'll do next. :-)&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Emacs, Org, whatever the weather!</title>
		<link href="http://julien.danjou.info/blog/index.html#Emacs_Org_whatever_the_weather"/>
		<id>http://julien.danjou.info/blog/index.html#Emacs_Org_whatever_the_weather</id>
		<updated>2010-09-08T20:44:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;Another week, another &lt;a href=&quot;http://www.gnu.org/software/emacs/&quot;&gt;Emacs&lt;/a&gt; extension!&lt;/p&gt;

&lt;p&gt;I had (once again) a wonderful idea: what if I could have the weather
forecasts in my &lt;a href=&quot;http://orgmode.org&quot;&gt;Org&lt;/a&gt; agenda? Wouldn't that be wonderful?&lt;/p&gt;

&lt;p&gt;My quest started by looking for a service offering a good weather forecast
API. I found nothing simple as the hidden Google Weather API, which is nice,
but… not documented. Not at all. Not a single line. Nah.&lt;/p&gt;

&lt;p&gt;Then, I wrote a &lt;strong&gt;google-weather&lt;/strong&gt; extension, implementing a basic Emacs Lisp
API to retrieve data from the Google service:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
ELISP&amp;gt; (google-weather-data-&amp;gt;forecast (google-weather-get-data &lt;span&gt;&quot;Paris&quot;&lt;/span&gt;))
(((9 8 2010)
  (low &lt;span&gt;&quot;53&quot;&lt;/span&gt;)
  (high &lt;span&gt;&quot;63&quot;&lt;/span&gt;)
  (icon &lt;span&gt;&quot;http://www.google.com/ig/images/weather/rain.gif&quot;&lt;/span&gt;)
  (condition &lt;span&gt;&quot;Rain&quot;&lt;/span&gt;))
 ((9 9 2010)
  (low &lt;span&gt;&quot;53&quot;&lt;/span&gt;)
  (high &lt;span&gt;&quot;69&quot;&lt;/span&gt;)
  (icon &lt;span&gt;&quot;http://www.google.com/ig/images/weather/chance_of_rain.gif&quot;&lt;/span&gt;)
  (condition &lt;span&gt;&quot;Scattered Showers&quot;&lt;/span&gt;))
 ((9 10 2010)
  (low &lt;span&gt;&quot;54&quot;&lt;/span&gt;)
  (high &lt;span&gt;&quot;72&quot;&lt;/span&gt;)
  (icon &lt;span&gt;&quot;http://www.google.com/ig/images/weather/partly_cloudy.gif&quot;&lt;/span&gt;)
  (condition &lt;span&gt;&quot;Partly Cloudy&quot;&lt;/span&gt;))
 ((9 11 2010)
  (low &lt;span&gt;&quot;55&quot;&lt;/span&gt;)
  (high &lt;span&gt;&quot;75&quot;&lt;/span&gt;)
  (icon &lt;span&gt;&quot;http://www.google.com/ig/images/weather/partly_cloudy.gif&quot;&lt;/span&gt;)
  (condition &lt;span&gt;&quot;Partly Cloudy&quot;&lt;/span&gt;)))
&lt;/pre&gt;

&lt;p&gt;My API even implements data caching, which is nice to speed up the agenda
display.&lt;/p&gt;

&lt;p&gt;By the way, I think my next job will be to hack on the &lt;em&gt;url-cache&lt;/em&gt; feature of
Emacs, which is utterly buggy and has probably never be used. But that's
another topic.&lt;/p&gt;

&lt;p&gt;Finally, I just had to write another module on top of that to export the
forecasts to Org. A screen shot is probably better than a long and boring
explanation, so here's the result.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/org-google-weather.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;


&lt;p&gt;My only regret is that the icons provided by Google are ugly squares, so I
did not want to use them. On the other hand, I did not found any icon set
that would have all the icons Google provides (around 20). So I felt back on
the &lt;a href=&quot;http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html&quot;&gt;icon naming specification&lt;/a&gt; to map the Google images to standard images.
Any better idea would be welcome, of course.&lt;/p&gt;

&lt;p&gt;All the information can be found on the
&lt;a href=&quot;http://julien.danjou.info/google-weather-el.html&quot;&gt;Google Weather for Emacs extension homepage&lt;/a&gt;.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Tour de Bretagne et Centre-Ouest</title>
		<link href="http://rando-velo.esaracco.fr/mois/tour-de-bretagne"/>
		<id>http://www.esaracco.fr/e9a8ad37e61360e8a842d58414a16844</id>
		<updated>2010-09-05T15:54:00+00:00</updated>
		<content type="html">Mise en ligne du journal de bord de mon &lt;a href=&quot;http://rando-velo.esaracco.fr/mois/tour-de-bretagne&quot;&gt;tour de Bretagne et Centre-Ouest&lt;/a&gt; à vélo.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Emacs and OfflineIMAP</title>
		<link href="http://julien.danjou.info/blog/index.html#Emacs_and_OfflineIMAP"/>
		<id>http://julien.danjou.info/blog/index.html#Emacs_and_OfflineIMAP</id>
		<updated>2010-09-03T13:08:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;I recently decided to use &lt;a href=&quot;http://wiki.github.com/jgoerzen/offlineimap/&quot;&gt;OfflineIMAP&lt;/a&gt; to synchronize my mails on my
laptop. It's a great piece of software, and allows me to read my mail
while I'm offline.&lt;/p&gt;

&lt;p&gt;I use it with &lt;a href=&quot;http://www.gnus.org&quot;&gt;Gnus&lt;/a&gt;, of course. But I lacked a proper way to integrate
OfflineIMAP with it, so I decided to write a little Emacs extension to run
and monitor OfflineIMAP directly from Emacs.&lt;/p&gt;

&lt;p&gt;Here comes &lt;a href=&quot;http://julien.danjou.info/offlineimap-el.html&quot;&gt;offlineimap.el&lt;/a&gt;, an Emacs extension to run OfflineIMAP directly
within Emacs. It will display OfflineIMAP output in a buffer, and optionally
shows the current OfflineIMAP operation in the mode line.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/offlineimap-el.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;

&lt;p&gt;By default the status is in the mode line only if you are in the Gnus group
buffer. But that's customizable, of course, since this is Emacs!&lt;/p&gt;

&lt;p&gt;If you are using &lt;a href=&quot;http://github.com/dimitri/el-get/&quot;&gt;el-get&lt;/a&gt;, there's already a recipe to install it!&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Disable IPv6 autoconfiguration at startup</title>
		<link href="http://blog.easter-eggs.org/index.php/post/2010/08/23/Disable-IPv6-autoconfiguration"/>
		<id>urn:md5:2c2666d1909e9f2d3657630255200546</id>
		<updated>2010-08-23T11:53:59+00:00</updated>
		<content type="html">&lt;p&gt;On a LAN with IPv6 autoconfiguration enabled (using a radvd service for example), it is often needed to set static addresses for servers and so deactivate IPv6 autoconf on them.&lt;/p&gt;


&lt;p&gt;With Debian 5.0 at least, it should be as easy as adding:&lt;/p&gt;

&lt;pre&gt;
pre-up sysctl -w net.ipv6.conf.eth0.autoconf=0
&lt;/pre&gt;


&lt;p&gt;in /etc/network/interfaces.
But it doesn't works, because unless you set up some IPv6 adresses before in the init process, the ipv6 module is not loaded and so net.ipv6 doesn't exist. To fix this, just explicitely &lt;strong&gt;add ipv6 in /etc/modules&lt;/strong&gt;...&lt;/p&gt;


&lt;p&gt;Same things happens if you wan't to disable RA with net.ipv6.conf.IFACE.accept_ra=0&lt;/p&gt;</content>
		<author>
			<name>Emmanuel Lacour</name>
			<uri>http://blog.easter-eggs.org/index.php/</uri>
		</author>
		<source>
			<title type="html">Le blog des salariés</title>
			<link rel="self" href="http://blog.easter-eggs.org/index.php/feed/atom"/>
			<id>urn:md5:9bf951e5c4460cfe7df5f2a1e7ae8038</id>
			<updated>2011-02-07T15:07:53+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Emacs, Google Maps and BBDB</title>
		<link href="http://julien.danjou.info/blog/index.html#Emacs_Google_Maps_and_BBDB"/>
		<id>http://julien.danjou.info/blog/index.html#Emacs_Google_Maps_and_BBDB</id>
		<updated>2010-08-17T22:00:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;Today's fun idea was to put all my contacts stored into &lt;a href=&quot;http://bbdb.sourceforge.net/&quot;&gt;BBDB&lt;/a&gt; on a Google
Maps' map, using my &lt;a href=&quot;http://julien.danjou.info/google-maps-el.html&quot;&gt;Google Maps extension for Emacs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With the help of a few lines of Lisp glue:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
(google-maps-static-show
 &lt;span&gt;:markers&lt;/span&gt;
 (mapcar
  (&lt;span&gt;lambda&lt;/span&gt; (address-entry)
    `((,(concat
         (mapconcat
          'identity
          (elt address-entry 1) &lt;span&gt;&quot;, &quot;&lt;/span&gt;) &lt;span&gt;&quot;, &quot;&lt;/span&gt;
          (elt address-entry 2) &lt;span&gt;&quot;, &quot;&lt;/span&gt;
          (elt address-entry 3) &lt;span&gt;&quot;, &quot;&lt;/span&gt;
          (elt address-entry 4) &lt;span&gt;&quot;, &quot;&lt;/span&gt;
          (elt address-entry 5)))))
  (mapcan
   (&lt;span&gt;lambda&lt;/span&gt; (record)
     &lt;span&gt;;; &lt;/span&gt;&lt;span&gt;We need to copy the returned list, because mapcan will modify it later
&lt;/span&gt;     (copy-list (bbdb-record-addresses record)))
   (bbdb-records))))
&lt;/pre&gt;

&lt;p&gt;we can make that:&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info//images/emacs-google-maps-bbdb.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;

&lt;p&gt;It's really simplistic, but I did not need more to have fun. :-)
This could be extended to set a specific marker and/or color for each
contact, with a legend. I'll let that as an exercise for my readers.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Updating muse-el in Debian</title>
		<link href="http://julien.danjou.info/blog/index.html#Updating_muse-el_in_Debian"/>
		<id>http://julien.danjou.info/blog/index.html#Updating_muse-el_in_Debian</id>
		<updated>2010-08-15T18:43:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;The Debian package of &lt;a href=&quot;http://mwolson.org/projects/EmacsMuse.html&quot;&gt;Emacs Muse&lt;/a&gt; was maintained by &lt;a href=&quot;http://mwolson.org/web/WelcomePage.html&quot;&gt;Michael W. Wolson&lt;/a&gt;, who is
also the upstream author of that software.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://blog.mwolson.org/tech/projects/emacs_muse_3.20_released.html&quot;&gt;He announced months ago that Muse needed a new upstream maintainer.&lt;/a&gt; That's
not something I'm willing to do, since I really think Muse has been
superseded by &lt;a href=&quot;http://www.orgmode.org&quot;&gt;Org mode&lt;/a&gt; nowadays.&lt;/p&gt;

&lt;p&gt;However, I'm still using Muse to maintain this blog with my &lt;a href=&quot;http://julien.danjou.info/muse-blog.html&quot;&gt;muse-blog&lt;/a&gt;
extension, since Org still lacks some infrastructure to maintain and publish
a blog.&lt;/p&gt;

&lt;p&gt;Therefore, I adopted the &lt;a href=&quot;http://packages.qa.debian.org/m/muse-el.html&quot;&gt;Emacs Muse Debien package&lt;/a&gt; and updated it to the
latest version!&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Update on rainbow-mode</title>
		<link href="http://julien.danjou.info/blog/index.html#Update_on_rainbow-mode"/>
		<id>http://julien.danjou.info/blog/index.html#Update_on_rainbow-mode</id>
		<updated>2010-08-09T22:00:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://julien.danjou.info/rainbow-mode.html&quot;&gt;rainbow-mode&lt;/a&gt; had a big success and good feedbacks when I released it for the
first time a couple of months ago.&lt;/p&gt;

&lt;p&gt;Several users asked to me request its inclusion into &lt;a href=&quot;http://www.gnu.org/software/emacs/&quot;&gt;Emacs&lt;/a&gt;. Therefore, some
days ago, &lt;a href=&quot;http://lists.gnu.org/archive/html/emacs-devel/2010-07/msg01290.html&quot;&gt;I proposed to merge it inside Emacs trunk&lt;/a&gt;. My request has been
denied, but the mode has been added to the &lt;a href=&quot;http://elpa.gnu.org&quot;&gt;Emacs 24 package repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In the mean time, I've added support for &lt;a href=&quot;http://www.w3.org/TR/css3-color/#hsl-color&quot;&gt;hsl() and hsla()&lt;/a&gt; support, and added
&lt;a href=&quot;http://www.w3.org/TR/css3-color/#svg-color&quot;&gt;CSS 3/SVG color names&lt;/a&gt;.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Porting D-Bus to XCB: story of a failure</title>
		<link href="http://julien.danjou.info/blog/index.html#Porting_D-Bus_to_XCB_story_of_a_failure"/>
		<id>http://julien.danjou.info/blog/index.html#Porting_D-Bus_to_XCB_story_of_a_failure</id>
		<updated>2010-07-28T22:00:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;Even if &lt;a href=&quot;http://julien.danjou.info/blog/2010.html#Thoughts%20and%20rambling%20on%20the%20X%20protocol&quot;&gt;I recently stated I lost some of my faith&lt;/a&gt; in &lt;a href=&quot;http://xcb.freedesktop.org&quot;&gt;XCB&lt;/a&gt;, I still sometimes
hack things to add support for it.&lt;/p&gt;

&lt;p&gt;These last days, I've worked on a &lt;a href=&quot;http://dbus.freedesktop.org&quot;&gt;D-Bus&lt;/a&gt; port from Xlib to XCB. The port was
quite straight forward, since there's only a little piece of D-Bus using X,
which is &lt;em&gt;dbus-launch&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I though D-Bus was a good candidate, since it's part of the &lt;a href=&quot;http://www.freedesktop.org&quot;&gt;Freedesktop&lt;/a&gt;
initiative. Therefore, I was expecting a warm welcome and some enthusiasm
from a fellow project.&lt;/p&gt;

&lt;p&gt;My contribution got one useful review, and a &lt;a href=&quot;http://lists.freedesktop.org/archives/dbus/2010-July/013185.html&quot;&gt;cold reply from Thiago Macieira&lt;/a&gt;
(a &lt;a href=&quot;http://www.kde.org&quot;&gt;KDE&lt;/a&gt;/&lt;a href=&quot;http://qt.nokia.com&quot;&gt;Qt&lt;/a&gt;/&lt;a href=&quot;http://www.nokia.com&quot;&gt;Nokia&lt;/a&gt; developer):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
No, sorry, I don't agree..
I've just checked and my Solaris machine doesn't have XCB.
Please do not remove the X11 code. You may &lt;em&gt;add&lt;/em&gt; the XCB code, but you cannot 
remove the X11 code.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;This is not really the kind of answer I expected, actually. I then reworked
the code to &lt;a href=&quot;http://lists.freedesktop.org/archives/dbus/2010-July/013192.html&quot;&gt;please Thiago&lt;/a&gt;, and added some &lt;em&gt;#ifdef&lt;/em&gt; to add XCB support to
D-Bus, with a fallback to libx11 where XCB would not be available.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://lists.freedesktop.org/archives/dbus/2010-July/013196.html&quot;&gt;Havoc Pennington replied&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Given that libX11 now uses xcb as backend, I don't understand the
value of porting to use libxcb directly when there isn't an issue of
round trips or other stuff. It will just make #ifdef hell, while the
X11 API is an API that works on both xcb and non-xcb platforms.
Maybe people should be thinking about porting xcb to non-Linux
platforms? The X protocol should be the same on other UNiX, so xcb in
theory ought to work fine if you just compiled it on Solaris/BSD, same
as GTK or dbus or Qt would work fine.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;The last part &quot;Maybe people should be thinking about porting xcb to
non-Linux platforms?&quot; is still unclear to me, even though
&lt;a href=&quot;http://lists.freedesktop.org/archives/dbus/2010-July/013197.html&quot;&gt;I asked Havoc to explain what he meant&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, &lt;a href=&quot;http://lists.freedesktop.org/archives/dbus/2010-July/013198.html&quot;&gt;Thiago refused to merge the patch&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
[…] thanks for the patch, but like Havoc I am unsure of the value. We can't
drop the X11 codepaths now because too many systems exist without
XCB. Adding the XCB codepaths only made it more complex, even though you did
a good job.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;I can't disagree with that conclusion: using both XCB and X11 make the code
unreadable for little gain. That's why I did replace libx11 by XCB directly
in the first version of the patch. On the other hand, D-Bus people does not
seems to really care about making their software evolve in the right
direction, even if that requires users to upgrade their systems.&lt;/p&gt;

&lt;p&gt;I think D-Bus using and depending on XCB would have been a good point to
push adoption of XCB. Unfortunately, it seems you can't even rely of
projects of the same initiative (i.e. Freedesktop) to work together to make
things a little bit better.&lt;/p&gt;

&lt;p&gt;After 5 years of existence, XCB is still not so obvious to people, and
making it adopt is going to be a challenge for the next years. The upside is
that &lt;a href=&quot;http://www.x.org/wiki/Releases/7.6&quot;&gt;new X.org 7.6 will bring XCB with it&lt;/a&gt;, as part of the katamari.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">M-x google-maps</title>
		<link href="http://julien.danjou.info/blog/index.html#M-x_google-maps"/>
		<id>http://julien.danjou.info/blog/index.html#M-x_google-maps</id>
		<updated>2010-06-27T22:00:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;Since I have started to use &lt;a href=&quot;http://www.orgmode.org&quot;&gt;Org-mode&lt;/a&gt;, I though it was missing something to
have appointment locations on a map. Of course, it's easy to get a &lt;em&gt;LOCATION&lt;/em&gt;
property from an entry, and then &lt;em&gt;browse-url&lt;/em&gt; on &lt;a href=&quot;http://maps.google.com&quot;&gt;Google Maps&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But it is &lt;strong&gt;too&lt;/strong&gt; easy for me, so once again I said: challenge accepted! I will
bring Google Maps into Emacs!&lt;/p&gt;

&lt;p&gt;After several hours of work, the &lt;a href=&quot;http://julien.danjou.info/google-maps-el.html&quot;&gt;google-maps-el project&lt;/a&gt; shows a map!&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/emacs-google-maps.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;

&lt;p&gt;It fully implements the &lt;a href=&quot;http://code.google.com/apis/maps/documentation/staticmaps/&quot;&gt;Google Static Maps API&lt;/a&gt; and the
&lt;a href=&quot;http://code.google.com/apis/maps/documentation/geocoding/&quot;&gt;Google Maps Geocoding API&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can type &lt;strong&gt;M-x google-maps&lt;/strong&gt; and type some place to see it marked on map. Of
course you can do much more, as seen in the screen shot above.&lt;/p&gt;

&lt;p&gt;I've also completed all of this with a small &lt;a href=&quot;http://git.naquadah.org/?p=~jd/jd-el.git;a=blob;f=org-location-google-maps.el;hb=HEAD&quot;&gt;org-location-google-maps&lt;/a&gt; which
simply show a Google Maps' map for the location of an event in &lt;em&gt;Org mode&lt;/em&gt; by
pressing C-c M-l in an Org buffer or in the Org agenda.&lt;/p&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<email>julien@danjou.info</email>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Sortie de wbmclamav 0.13</title>
		<link href="http://wbmclamav.labs.libre-entreprise.org"/>
		<id>http://www.esaracco.fr/cc3cd96df3ada3664fb43dfd6894ef4d</id>
		<updated>2010-06-20T14:02:00+00:00</updated>
		<content type="html">&lt;a href=&quot;http://wbmclamav.labs.libre-entreprise.org&quot;&gt;wbmclamav&lt;/a&gt; est un module webmin pour gérer Clam Antivirus.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Announcing rainbow-mode</title>
		<link href="http://julien.danjou.info/blog/index.html#Announcing_rainbow-mode"/>
		<id>http://julien.danjou.info/blog/index.html#Announcing_rainbow-mode</id>
		<updated>2010-06-15T22:00:00+00:00</updated>
		<content type="html">&lt;p class=&quot;first&quot;&gt;While customizing &lt;a href=&quot;http://www.gnu.org/software/emacs/&quot;&gt;Emacs&lt;/a&gt; this last weeks, I had the need to customize also
the color theme.&lt;/p&gt;

&lt;p&gt;Color themes are always a pain in the ass to edit, because you're supposed
to read color strings like &lt;em&gt;#aabbcc&lt;/em&gt; and guess what colors they represent.&lt;/p&gt;

&lt;p&gt;This is why I wrote &lt;em&gt;&lt;a href=&quot;http://julien.danjou.info/rainbow-mode.html&quot;&gt;rainbow-mode&lt;/a&gt;&lt;/em&gt;, a minor mode for Emacs that will highlight
strings that represents color, using the color they represent.&lt;/p&gt;

&lt;p&gt;This support hexadecimal syntax, HTML color name, X color names and rgb()
CSS syntax.&lt;/p&gt;

&lt;center&gt;
&lt;p&gt;&lt;img src=&quot;http://julien.danjou.info/images/rainbow-mode.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/center&gt;




&lt;a href=&quot;http://flattr.com/thing/47923/Julien-Danjous-blog&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://api.flattr.com/button/button-compact-static-100x17.png&quot; alt=&quot;Flattr this&quot; title=&quot;Flattr this&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content>
		<author>
			<name>Julien Danjou</name>
			<uri>http://julien.danjou.info/blog/</uri>
		</author>
		<source>
			<title type="html">jd:/dev/blog</title>
			<subtitle type="html">Julien Danjou's blog</subtitle>
			<link rel="self" href="http://julien.danjou.info/blog/index.xml"/>
			<id>http://julien.danjou.info/blog/index.xml</id>
			<updated>2012-01-03T16:50:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Voyage Tours - Mont-Saint-Michel</title>
		<link href="http://rando-velo.esaracco.fr/semaines/tours-mont-saint-michel"/>
		<id>http://www.esaracco.fr/0c4bbd050bc986a2e65545d6f39893fd</id>
		<updated>2010-06-14T10:57:00+00:00</updated>
		<content type="html">Mise en ligne du journal de bord de mon &lt;a href=&quot;http://rando-velo.esaracco.fr/semaines/tours-mont-saint-michel&quot;&gt;voyage à vélo Tours - Mont-Saint-Michel&lt;/a&gt;.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Voyage Tours - Nantes</title>
		<link href="http://rando-velo.esaracco.fr/week-ends/tours-nantes/"/>
		<id>http://www.esaracco.fr/65b9fb7218c4931efef701d4eefff233</id>
		<updated>2010-05-25T19:53:00+00:00</updated>
		<content type="html">Mise en ligne du journal de bord de mon &lt;a href=&quot;http://rando-velo.esaracco.fr/week-ends/tours-nantes/&quot;&gt;voyage à vélo Tours - Nantes&lt;/a&gt;.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">Voyage Tours - Dompierre-sur-Mer</title>
		<link href="http://rando-velo.esaracco.fr/week-ends/tours-dompierre-sur-mer2/"/>
		<id>http://www.esaracco.fr/5bb73fb89efbf04a1fcaa7628ab0ca61</id>
		<updated>2010-05-17T17:34:00+00:00</updated>
		<content type="html">Mise en ligne du journal de bord de mon &lt;a href=&quot;http://rando-velo.esaracco.fr/week-ends/tours-dompierre-sur-mer2/&quot;&gt;voyage à vélo Tours - Dompierre-sur-Mer&lt;/a&gt;, près de La Rochelle.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr-fr">
		<title type="html">F.A.Q. vélo de randonnée</title>
		<link href="http://rando-velo.esaracco.fr/faq/"/>
		<id>http://www.esaracco.fr/9f10b3bc4fa5c83d1b8f8084d1afb53a</id>
		<updated>2010-05-02T22:00:00+00:00</updated>
		<content type="html">Création d'une &lt;a href=&quot;http://rando-velo.esaracco.fr/faq/&quot;&gt;Foire Aux Questions&lt;/a&gt; orientée vélo de randonnée.</content>
		<author>
			<name>Emmanuel Saracco</name>
			<uri>http://www.esaracco.fr</uri>
		</author>
		<source>
			<title type="html">Emmanuel Saracco</title>
			<subtitle type="html">Les nouveaux logiciels, nouvelles musiques, nouvelles documentations ou nouvelles publications de textes sur le site de Emmanuel Saracco.</subtitle>
			<link rel="self" href="http://www.esaracco.fr/news_rss.php"/>
			<id>http://www.esaracco.fr/news_rss.php</id>
			<updated>2012-02-06T21:30:02+00:00</updated>
		</source>
	</entry>

</feed>

