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

	<title>Planet Koalabs</title>
	<link rel="self" href="http://koalabs.org/atom.xml"/>
	<link href="http://koalabs.org"/>
	<id>http://koalabs.org/atom.xml</id>
	<updated>2009-01-07T10:00:02+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry>
		<title type="html">Weblog 1.3</title>
		<link href="http://henry.precheur.org/2008/11/27/Weblog%201.3.html"/>
		<id>http://henry.precheur.org/2008/11/27/Weblog%201.3.html</id>
		<updated>2008-11-27T07:00:00+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;Weblog 1.3 is released. It removes the pagination, which is not ideal when
navigating in a Blog. It is replaced by an archives page containing a list of
all the posts.&lt;/p&gt;

&lt;p&gt;Get Weblog 1.3 on the &lt;a href=&quot;http://henry.precheur.org/weblog/install.html#download&quot;&gt;download page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Don't hesitate to ask questions / request support about Weblog:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/weblog-users&quot; title=&quot;Weblog’s Google groups&quot;&gt;http://groups.google.com/group/weblog-users&lt;/a&gt; or
&lt;a href=&quot;mailto:weblog-users@googlegroups.com&quot;&gt;weblog-users@googlegroups.com&lt;/a&gt;.&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">The minimal valid html page</title>
		<link href="http://henry.precheur.org/2008/11/25/The%20minimal%20valid%20html%20page.html"/>
		<id>http://henry.precheur.org/2008/11/25/The%20minimal%20valid%20html%20page.html</id>
		<updated>2008-11-25T07:00:00+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&amp;gt;
&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;
&amp;lt;p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Nuff said.&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Weblog 1.2</title>
		<link href="http://henry.precheur.org/2008/11/22/Weblog%201.2.html"/>
		<id>http://henry.precheur.org/2008/11/22/Weblog%201.2.html</id>
		<updated>2008-11-22T07:00:00+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;Weblog 1.2 is released. It features a &lt;a href=&quot;http://henry.precheur.org/weblog/index.html&quot;&gt;brand new
documentation&lt;/a&gt; powered by &lt;a href=&quot;http://sphinx.pocoo.org/&quot;&gt;Sphinx&lt;/a&gt;,
including a rewritten tutorial and a more detailed reference manual. Thanks to
Bastien Simondi for reviewing the documentation!&lt;/p&gt;

&lt;p&gt;This new version also comes with a few bug fixes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Headers handled correctly with markdown&lt;/li&gt;
&lt;li&gt;Added more elements in Atom feed&lt;/li&gt;
&lt;li&gt;Display nothing instead of “unknown author” when there is no author&lt;/li&gt;
&lt;li&gt;Fixed date parsing and formatting&lt;/li&gt;
&lt;li&gt;Fixed escaping of UTF-8 entities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Get Weblog 1.2 on the &lt;a href=&quot;http://henry.precheur.org/weblog/install.html#download&quot;&gt;download page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Don't hesitate to ask questions about Weblog:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/weblog-users&quot; title=&quot;Weblog’s Google groups&quot;&gt;http://groups.google.com/group/weblog-users&lt;/a&gt; or
&lt;a href=&quot;mailto:weblog-users@googlegroups.com&quot;&gt;weblog-users@googlegroups.com&lt;/a&gt;.&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Einstein’s Intelligence Quiz: Bogus number and Phony statistic</title>
		<link href="http://henry.precheur.org/2008/11/21/Einstein%3Fs%20Intelligence%20Quiz%3A%20Bogus%20number%20and%20Phony%20statistic.html"/>
		<id>http://henry.precheur.org/2008/11/21/Einstein%3Fs%20Intelligence%20Quiz%3A%20Bogus%20number%20and%20Phony%20statistic.html</id>
		<updated>2008-11-21T07:00:00+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;Somebody posted &lt;a href=&quot;http://www.business.uiuc.edu/broker/iq.htm&quot;&gt;this link&lt;/a&gt; on
&lt;a href=&quot;http://www.reddit.com/r/reddit.com/comments/7eowl/a_redditors_wet_dream_einstein_wrote_a_quiz_he/&quot;&gt;reddit&lt;/a&gt;.
It’s a logical quiz called “Einstein’s Intelligence Quiz”, it’s challenging, I
had fun solving it. Try it; it should keep you busy 20 minutes or more.&lt;/p&gt;

&lt;p&gt;This test is also known as the &lt;a href=&quot;http://en.wikipedia.org/wiki/Zebra_Puzzle&quot;&gt;Zebra
Puzzle&lt;/a&gt;. And there is no prof that
Einstein wrote it.&lt;/p&gt;

&lt;p&gt;At the top of the page and you can read:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;[Einstein] said that 98% of the people in the world cannot solve the quiz.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I guess this sentence was added to challenge the reader, being in the top 2% of
the world population is something most would proud of. Oh … this is also a
typical example of doubtful statistic.&lt;/p&gt;

&lt;h3&gt;Prefixing a statement with “Einstein said …” makes it true&lt;/h3&gt;

&lt;p&gt;Attributing this sentence to Einstein is a deceptive way of making it
authoritative.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Einstein was soooo smart, this is certainly true!”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sorry but &lt;strong&gt;Einstein was a physicist; not a statistician or a psychologist&lt;/strong&gt;. He
was not qualified to give such number. One could argue that the
statistical background to calculate reliably such a number is basic, and that
Einstein could have mastered it very easily. That may be true, but to support
this number, a representative sample of the world population is needed. And you
can’t give such a precise number with only 10 or 20 people.&lt;/p&gt;

&lt;p&gt;For example when giving the test to 10 people the maximum failure rate you can
have is 90%. If all 10 fail, then the failure rate is 100%, which is too high.
If only 9 fail it’s 90%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The get a rate of 98% you need at least 50 participants&lt;/strong&gt;: 1 who succeeds and
49 who fail. Einstein was a loner, it’s unlikely he would have carried such an
experiment.&lt;/p&gt;

&lt;p&gt;I don’t believe Einstein pulled this number out of his ass either. He was a
scientist, he knew that such number would be bogus without a proper evaluation.
He would probably have said “Most people” instead of “98% of the people”.&lt;/p&gt;

&lt;h3&gt;Phony statistic&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;“OK, maybe Einstein did not say such thing. That does not necessarily make
  this number bogus.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The number is bogus no matter who is behind it. There is no context, which
raises several objections about its validity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;There is no time limit to the test&lt;/strong&gt;. I am not aware of any test measuring
intelligence which does not have a time limit. This alone makes this number
irrelevant.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The world population’s intelligence tends to raise. Access to a better
education system makes a big difference. So when was this sentence supposed
to be true? If this test was “validated” in the 50’s, it’s clear that this
number does not hold anymore. IQ test are “normed” every 20 years or so. To
be relevant today this quiz should certainly be changed to make sure 98% of
today’s world population fails it; or the number itself should be changed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The sample “98% of the people in the world” is dubious. &lt;strong&gt;Did the sampling
really included a significant amount of people from poor regions of India,
China, or Africa?&lt;/strong&gt; Even now reaching these people is difficult. A sample
composed mainly of Europeans and Americas is much more likely If anything
was done to validate this “98%”.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Of course there is no statistical details about the number. What was the
&lt;a href=&quot;http://en.wikipedia.org/wiki/Margin_of_error&quot;&gt;margin of error&lt;/a&gt; or the
number of participants for example? Today’s world is very found of numbers
without context, such details are usualy omitted. They are nonetheless
important, &lt;strong&gt;each omission of those statistical details should raise
suspicion&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My guess is: this number was invented to stimulate readers to do the quiz and
was not supported by any actual data. I wonder how many people successfully
completed the quiz are proudly claimed to be in the top 2% of the world
population.&lt;/p&gt;

&lt;p&gt;Statistics are more and more important in today’s world. Lots of decisions are
based on them. It’s still difficult to make good decisions based on good
statistics, let alone those based on bad ones…&lt;/p&gt;

&lt;p&gt;I am not a statistician, and my knowledge is limited. But aberrant numbers like
this one are easy to spot. I recommend you to read &lt;a href=&quot;http://en.wikipedia.org/wiki/How_to_lie_with_statistics&quot;&gt;How to Lie with
Statistics&lt;/a&gt;, an
excellent introduction to statistics for the layman. If you are a programmer I
also the recommend Zed Shaw’s article &lt;a href=&quot;http://www.zedshaw.com/rants/programmer_stats.html&quot;&gt;Programmers Need To Learn Statistics Or I
Will Kill Them All&lt;/a&gt;.&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">ssh-copy-id</title>
		<link href="http://henry.precheur.org/2008/11/3/ssh-copy-id.html"/>
		<id>http://henry.precheur.org/2008/11/3/ssh-copy-id.html</id>
		<updated>2008-11-04T05:02:54+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;&lt;code&gt;ssh-copy-id&lt;/code&gt; is a small script which copy your ssh public-key to a remote host;
appending it to your remote &lt;code&gt;authorized_keys&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ ssh-copy-id root@192.168.1.1
root@192.168.1.1's password:
Now try logging into the machine, with &quot;ssh 'root@192.168.1.1'&quot;, and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

$ ssh root@192.168.1.1
Last login: Mon Nov  3 18:46:32 2008 from 192.168.1.32
OpenBSD 4.4 (GENERIC) #1021: Tue Aug 12 17:16:55 MDT 2008

Welcome to OpenBSD: The proactively secure Unix-like operating system.
# cat .ssh/authorized_keys
ssh-dss [removed] /home/henry/.ssh/id_dsa
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This script is not shipped with OpenBSD. But it’s part of the &lt;a href=&quot;http://www.openssh.com/portable.html&quot;&gt;Portable
OpenSSH&lt;/a&gt;. It is self-contained, you just
need to download and drop it in your &lt;code&gt;~/bin&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;Download it from &lt;a href=&quot;http://cvsweb.mindrot.org/index.cgi/~checkout~/openssh/contrib/ssh-copy-id?rev=1.6;content-type=text%2Fplain&quot; title=&quot;ssh-copy-id from mindrot's cvsweb&quot;&gt;mindrot.org&lt;/a&gt;.&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">The Trek 7.3FX is awesome</title>
		<link href="http://henry.precheur.org/2008/10/20/The%20Trek%207.3FX%20is%20awesome.html"/>
		<id>http://henry.precheur.org/2008/10/20/The%20Trek%207.3FX%20is%20awesome.html</id>
		<updated>2008-10-21T03:56:21+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;After &lt;a href=&quot;http://henry.precheur.org/2008/10/16/The%20Cannondale%20Quick%204%20is%20crap.html&quot;&gt;my bad experience with the Cannondale Quick
4&lt;/a&gt;, I exchanged it
with a &lt;a href=&quot;http://www.trekbikes.com/ca/en/bikes/bike_path/fx/73fx/&quot;&gt;Trek
7.3FX&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://henry.precheur.org/images/73fx_candyred.jpg&quot; alt=&quot;Trek 7.3FX&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It is light and fast. Overall it feels much better than the Cannondale. The only
problem is the uncomfortable saddle, but I will change it.&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">The Cannondale Quick 4 is crap</title>
		<link href="http://henry.precheur.org/2008/10/16/The%20Cannondale%20Quick%204%20is%20crap.html"/>
		<id>http://henry.precheur.org/2008/10/16/The%20Cannondale%20Quick%204%20is%20crap.html</id>
		<updated>2008-10-17T01:21:05+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;My old bike, a Kuwahara Fastlane, was stolen 1 week ago. It was a cheap bike,
but it served me well during 1 year.&lt;/p&gt;

&lt;p&gt;Immediately after I started looking for a new one. I visited my local bike store
the next day and the sale person suggested the &lt;a href=&quot;http://www.cannondale.com/bikes/09/cusa/model-9QR4.html&quot;&gt;Cannondale Quick
4&lt;/a&gt;. It looked more a
less equivalent to the other bikes in this price range, but it had a carbon fork
and supposedly better components. Far from being an expert, I was impressed by
the carbon fork and bought the Quick 4.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The first few days were disappointing.&lt;/strong&gt; The bike was not as light and fast as
I hoped. The shape of the frame was not exactly good looking; the down tube was
big, and made it look a bit goofy. The big down tube made it harder to lock the
bike to something. And the gearing behaved weirdly a couple of time.&lt;/p&gt;

&lt;p&gt;Last Tuesday, while I was riding home after work, &lt;strong&gt;a pedal suddenly broke while
I was pedalling.&lt;/strong&gt; I instantly lost my balance and fell heavily in the middle of
the road. There was no car around and I did not fell too badly. I was lucky, it
could have been worst. In the middle of the traffic I would have been hurt
badly.&lt;/p&gt;

&lt;p&gt;I got to the bike shop the day after to exchange it. This bike is clearly not
worth its price. Some components are plain bad. This is not a $100 bike; for
this range of price the components should be able to resist more than one week.
A fancy carbon fork is not worth risking your life. &lt;strong&gt;The Cannondale Quick 4 is
crap. Dont buy it.&lt;/strong&gt;&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Unicycle, a Vim plugin for typography junkies</title>
		<link href="http://henry.precheur.org/2008/9/22/Unicycle%2C%20a%20Vim%20plugin%20for%20typography%20junkies.html"/>
		<id>http://henry.precheur.org/2008/9/22/Unicycle%2C%20a%20Vim%20plugin%20for%20typography%20junkies.html</id>
		<updated>2008-09-23T05:44:00+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;I am not exactly a typography junky. But I read a fair number of books and I got
used to good typography. But when it comes to good typographic practice, the web
is quite poor. Even some well-known newspaper’s websites have a poor typography.&lt;/p&gt;

&lt;p&gt;Here is what I mean by good and bad typography.&lt;/p&gt;

&lt;p&gt;Bad:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&quot;Hello -- my name is O'Brien ...&quot;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Good:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Hello – my name is O’Brien …”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thanks to &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1384&quot;&gt;Unicycle&lt;/a&gt; –a
Vim plugin– it is possible to get the right characters directly in Vim as long
as your file is encoded in UTF-8.&lt;/p&gt;

&lt;h3&gt;A quick tour&lt;/h3&gt;

&lt;p&gt;The installation is quite simple. Download
&lt;a href=&quot;http://www.vim.org/scripts/download_script.php?src_id=4689&quot;&gt;unicycle.vim&lt;/a&gt;, copy
it to &lt;code&gt;~/.vim/plugin&lt;/code&gt; and restart Vim.&lt;/p&gt;

&lt;p&gt;Open a file and type:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;:UniCycleOn
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Get into insertion mode and type ', instead of the classic straight quote (')
You get an opening curly quote (‘). If you really want a straight quote ('),
type ' again and you get it. To get a curly closing quote (’), type ' three
times.&lt;/p&gt;

&lt;p&gt;UniCycle has sensible defaults. If you type O'Brian, you won’t get O‘Brian, but
O’Brian. And 'test' get turned automatically into ‘test’.&lt;/p&gt;

&lt;p&gt;It also works for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;double quote: “Hello World”.&lt;/li&gt;
&lt;li&gt;dashes: type hyphen 2 times to get a en-dash (–), 3 to get a em-dash (—) and
4 to a hyphen again.&lt;/li&gt;
&lt;li&gt;ellipses: ‘...’ turns into ‘…’&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to the author &lt;a href=&quot;http://jason.diamond.name/&quot;&gt;Jason Diamond&lt;/a&gt; for this
plugin, which I will use and abuse.&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Weblog 1.1</title>
		<link href="http://henry.precheur.org/2008/9/13/Weblog%201.1.html"/>
		<id>http://henry.precheur.org/2008/9/13/Weblog%201.1.html</id>
		<updated>2008-09-13T20:42:34+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;Weblog now supports Markdown's syntax and Atom feed generation. Many things had
to be reworked internally in oder to support correctly Atom. This release is to
be considered &lt;em&gt;beta&lt;/em&gt;, some functionalities are not documented yet.&lt;/p&gt;

&lt;p&gt;Jinja 1 is not supported anymore and I dropped RSS feed generation. Atom eats
RSS for breakfast and maintaining 2 feed formats doesn't make sense, since both
formats are widely supported.&lt;/p&gt;

&lt;p&gt;The next release will focus on documentation and polishing. I want to make
Weblog easy to use for newcomers, I will write a better tutorial and maybe add
some more examples.&lt;/p&gt;

&lt;p&gt;For now Weblog includes
&lt;a href=&quot;http://code.google.com/p/python-markdown2/&quot;&gt;markdown2.py&lt;/a&gt; since markdown2 does
not install correctly from &lt;a href=&quot;http://pypi.python.org&quot;&gt;pypi.python.org&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Download &lt;a href=&quot;http://henry.precheur.org/weblog/weblog-1.1.tar.gz&quot;&gt;Weblog 1.1&lt;/a&gt; or &lt;a href=&quot;http://henry.precheur.org/weblog/weblog+jinja-1.1.tar.gz&quot;&gt;Weblog 1.1 + Jinja
2&lt;/a&gt; (standalone version).&lt;/p&gt;

&lt;p&gt;More informations and docs on &lt;a href=&quot;http://henry.precheur.org/weblog/index.html&quot;&gt;Weblog's page&lt;/a&gt;. If you have
any problems using it, don't hesitate to ask on
&lt;a href=&quot;mailto:weblog-users@googlegroups.com&quot;&gt;weblog-users@googlegroups.com&lt;/a&gt;.&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Weblog 1.0 released</title>
		<link href="http://henry.precheur.org/2008/9/5/Weblog%201.0%20released.html"/>
		<id>http://henry.precheur.org/2008/9/5/Weblog%201.0%20released.html</id>
		<updated>2008-09-06T02:17:47+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;Weblog 1.0 is out! After more than 1 year of development Weblog, a minimalist
&quot;blog publisher&quot;, is &lt;em&gt;feature complete&lt;/em&gt;. All the stuffs I wanted to have are
here.&lt;/p&gt;

&lt;p&gt;Weblog is designed for people tired of all these crappy Database driven
blogs (Wordpress and all his clones). It just reads a set of files and output
static HTML files. Just upload these files on a server serving HTML files
—pretty much everywhere— and you're done.&lt;/p&gt;

&lt;p&gt;I used Weblog for 1 year, posted 32 articles with it. This project is used for
real and has some &lt;a href=&quot;http://henry.precheur.org/weblog/weblog.html&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are few changes in this version:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;style.rst&lt;/code&gt; is now part of the distribution&lt;/li&gt;
&lt;li&gt;The blog title now links to the base URL&lt;/li&gt;
&lt;li&gt;Fixed a bug with renderstring when None or an empty string was passed&lt;/li&gt;
&lt;li&gt;Use Jinja 2 instead of Jinja 1 if both versions are present&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Download &lt;a href=&quot;http://henry.precheur.org/weblog/weblog-1.0.tar.gz&quot;&gt;Weblog 1.0&lt;/a&gt; or &lt;a href=&quot;http://henry.precheur.org/weblog/weblog+jinja-1.0.tar.gz&quot;&gt;Weblog 1.0 + Jinja
2&lt;/a&gt; (standalone version).&lt;/p&gt;

&lt;p&gt;More informations and docs on &lt;a href=&quot;http://henry.precheur.org/weblog/index.html&quot;&gt;Weblog's page&lt;/a&gt;. If you have
any problems using it, don't hesitate to ask me: 
&lt;a href=&quot;mailto:henry@precheur.org&quot;&gt;henry@precheur&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Even if Weblog has reached 1.0, the development is not over. Version 1.1 will
include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Markdown&quot;&gt;Markdown&lt;/a&gt; markup support, composing
posts using raw HTML is not so fun in practice, and I really like Markdown's
syntax.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Atom_%28standard%29&quot;&gt;Atom&lt;/a&gt; feed&lt;/li&gt;
&lt;li&gt;Removal of the RSS feed. After a quick look at both standards, I think Atom
is better than RSS. There is no need to have 2 different feeds format; 1 is enough.&lt;/li&gt;
&lt;/ul&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">RFC 3339 formatting in Python</title>
		<link href="http://henry.precheur.org/2008/9/3/RFC%203339%20formatting%20in%20Python.html"/>
		<id>http://henry.precheur.org/2008/9/3/RFC%203339%20formatting%20in%20Python.html</id>
		<updated>2008-09-04T04:55:38+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; This post is outdated now; I changed a few things in
rfc3339.py since this post. I created a &lt;a href=&quot;http://henry.precheur.org/projects/rfc3339.html&quot;&gt;page for rfc3339&lt;/a&gt;. It contains an
up-to-date version &amp;amp; documentation.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;For those who don't know, &lt;a href=&quot;http://www.ietf.org/rfc/rfc3339.txt&quot;&gt;RFC
3339&lt;/a&gt; is a date format aiming to be simple and unambiguous:&lt;/p&gt;

&lt;pre&gt;1985-04-12T23:20:50.52Z&lt;/pre&gt;

&lt;p&gt;The date and hour use the ISO format and &lt;code&gt;T&lt;/code&gt; is a marker to
indicate where the time starts. The &lt;code&gt;Z&lt;/code&gt; at the end indicates that the
time is expressed in UTC&lt;/p&gt;
&lt;p&gt;Non-UTC timezone are expressed like this:&lt;/p&gt;

&lt;pre&gt;1996-12-19T16:39:57-08:00&lt;/pre&gt;

&lt;p&gt;The RFC 3339 is used in &lt;a href=&quot;http://www.atomenabled.org/developers/syndication/&quot;&gt;Atom&lt;/a&gt; a feed
format, I am planning to implement it for &lt;a href=&quot;http://henry.precheur.org/weblog/index.html&quot;&gt;Weblog&lt;/a&gt;. I tried to find a function to convert
date/time into RFC 3339 strings in Python, and what I found was
disappointing:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;
    &lt;a href=&quot;http://home.blarg.net/~steveha/pyfeed.html&quot;&gt;PyFeed&lt;/a&gt; contains
    something to parse and generate RFC 3339 formatted dates. But it looks like
    it uses only timestamps and I want to use Python's datetime object. There
    was little documentation on the site and none in the package, just a few
    examples. What's the point of writing a library without proper
    documentation?
    &lt;/li&gt;
    &lt;li&gt;
    &lt;a href=&quot;http://www.siafoo.net/snippet/141&quot;&gt;This little function&lt;/a&gt; is nice
    but too limited.
    &lt;/li&gt;
    &lt;li&gt;
    &lt;a href=&quot;http://code.google.com/p/formattime/&quot;&gt;Formattime&lt;/a&gt;, a big
    project, again no documentation and depends on pytz and iso8601. Too big, 2
    dependencies and not documented. You fail!
    &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the end I decided to write my own RFC 3339 conversion function. Simple,
still powerful and &lt;em&gt;documented&lt;/em&gt;! Dammit!&lt;/p&gt;

&lt;p&gt;Here is a simple use case:&lt;/p&gt;

&lt;pre&gt;
&amp;gt;&amp;gt;&amp;gt; import datetime
&amp;gt;&amp;gt;&amp;gt; import rfc3339
&amp;gt;&amp;gt;&amp;gt; rfc3339.rfc3339(datetime.datetime(2008, 9, 4, 12, 34))
'2008-09-04T12:34:00-07:00'
&lt;/pre&gt;

&lt;p&gt;Download the file: &lt;a href=&quot;http://henry.precheur.org/files/rfc3339.py&quot;&gt;rfc3339.py&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is the documentation (yes, that's rough), generated via &lt;code&gt;pydoc
rfc3339&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;Help on module rfc3339:

NAME
    rfc3339

FILE
    /home/henry/weblog/weblog/rfc3339.py

DESCRIPTION
    The function `rfc3339` formats dates according to the :RFC:`3339`. `rfc3339`
    tries to have as much as possible sensible defaults.

FUNCTIONS
    rfc3339(date, utc=False, use_system_timezone=True)
        Return a string formatted according to the :RFC:`3339`. If called with
        `utc=True`, it normalizes `date` to the UTC date. If `date` does not have
        any timezone information, uses the local timezone::
        
            &amp;gt;&amp;gt;&amp;gt; date = datetime.datetime(2008, 4, 2, 20)
            &amp;gt;&amp;gt;&amp;gt; rfc3339(date, utc=True, use_system_timezone=False)
            '2008-04-02T20:00:00Z'
            &amp;gt;&amp;gt;&amp;gt; rfc3339(date) # doctest: +ELLIPSIS
            '2008-04-02T20:00:00...'
        
        If called with `user_system_time=False` don't use the local timezone and
        consider the offset to UTC to be zero::
        
            &amp;gt;&amp;gt;&amp;gt; rfc3339(date, use_system_timezone=False)
            '2008-04-02T20:00:00+00:00'
        
        `date` must be a a `datetime.datetime` or a timestamp as returned by
        `time.time()`::
        
            &amp;gt;&amp;gt;&amp;gt; rfc3339(0, utc=True, use_system_timezone=False)
            '1970-01-01T00:00:00Z'
            &amp;gt;&amp;gt;&amp;gt; rfc3339(datetime.date.today())
            Traceback (most recent call last):
            ...
            TypeError: excepted datetime, got date instead
            &amp;gt;&amp;gt;&amp;gt; rfc3339('foo bar')
            Traceback (most recent call last):
            ...
            TypeError: excepted datetime, got str instead

DATA
    __all__ = ('rfc3339',)
    __author__ = 'Henry Precheur &amp;lt;henry@precheur.org&amp;gt;'
    __license__ = 'Public Domain'

AUTHOR
    Henry Precheur &amp;lt;henry@precheur.org&amp;gt;&lt;/pre&gt;

&lt;p&gt;The source code is in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Public_domain&quot;&gt;Public domain&lt;/a&gt;&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Switching to dwm</title>
		<link href="http://henry.precheur.org/2008/8/25/Switching%20to%20dwm.html"/>
		<id>http://henry.precheur.org/2008/8/25/Switching%20to%20dwm.html</id>
		<updated>2008-08-26T05:30:44+00:00</updated>
		<content type="html">&lt;div&gt;
            &lt;p&gt;I just switched from &lt;a href=&quot;http://www.suckless.org/wmii/&quot;&gt;wmii&lt;/a&gt; to
&lt;a href=&quot;http://www.suckless.org/dwm/&quot;&gt;dwm&lt;/a&gt; a light and hackable window
manager.&lt;/p&gt;

&lt;p&gt;dwm is really nice and simple, but I did not like that it reads its status
bar text from stdin. Mainly because it took me a while to figure out how to
make it work properly:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;while true; do echo `date`; done | dwm
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And displaying the date is simple enough to be done directly inside the dwm
executable. I created a patch to make dwm displays the local date without
reading the standard input.&lt;/p&gt;

&lt;p&gt;It also saves a few lines of code ;)&lt;/p&gt;

&lt;p&gt;Download the patch &lt;a href=&quot;http://henry.precheur.org/files/dwm-5.1-displaydate.diff&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

        &lt;/div&gt;</content>
		<author>
			<name>Henry Prêcheur</name>
			<email>henry@precheur.org</email>
			<uri>http://henry.precheur.org/</uri>
		</author>
		<source>
			<title type="html">Henry’s Weblog</title>
			<subtitle type="html">None</subtitle>
			<link rel="self" href="http://henry.precheur.org/feed.atom"/>
			<id>http://henry.precheur.org/</id>
			<updated>2009-01-06T06:00:05+00:00</updated>
		</source>
	</entry>

</feed>
