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

<channel>
	<title>Kolios</title>
	<atom:link href="http://www.kolios.dk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kolios.dk</link>
	<description></description>
	<lastBuildDate>Thu, 04 Mar 2010 20:15:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title></title>
		<link>http://www.kolios.dk/2010/02/22/553/</link>
		<comments>http://www.kolios.dk/2010/02/22/553/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 12:53:24 +0000</pubDate>
		<dc:creator>sebastien</dc:creator>
				<category><![CDATA[pics]]></category>

		<guid isPermaLink="false">http://www.kolios.dk/?p=553</guid>
		<description><![CDATA[<img src="http://www.machezdanois.com/icons/picture-48x48.png" width="48" height="48" alt="" title="pics" /><br/>For those who didn&#8217;t know, we have a cow at work.

]]></description>
			<content:encoded><![CDATA[<img src="http://www.machezdanois.com/icons/picture-48x48.png" width="48" height="48" alt="" title="pics" /><br/><p>For those who didn&#8217;t know, we have a cow at work.</p>
<p><a href="http://www.kolios.dk/upload/2010/02/meuh.jpg"><img src="http://www.kolios.dk/upload/2010/02/meuh.jpg" alt="" title="meuh" width="450" height="300" class="aligncenter size-full wp-image-552" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kolios.dk/2010/02/22/553/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://www.kolios.dk/2010/02/19/548/</link>
		<comments>http://www.kolios.dk/2010/02/19/548/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 20:16:19 +0000</pubDate>
		<dc:creator>sebastien</dc:creator>
				<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://www.kolios.dk/?p=548</guid>
		<description><![CDATA[<img src="http://www.machezdanois.com/icons/tv-48x48.png" width="48" height="48" alt="" title="videos" /><br/>
]]></description>
			<content:encoded><![CDATA[<img src="http://www.machezdanois.com/icons/tv-48x48.png" width="48" height="48" alt="" title="videos" /><br/><p><object width="420" height="339"><param name="movie" value="http://www.dailymotion.com/swf/xbnwlk" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://www.dailymotion.com/swf/xbnwlk" type="application/x-shockwave-flash" width="420" height="339" allowFullScreen="true" allowScriptAccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kolios.dk/2010/02/19/548/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://www.kolios.dk/2010/02/16/545/</link>
		<comments>http://www.kolios.dk/2010/02/16/545/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 14:08:40 +0000</pubDate>
		<dc:creator>sebastien</dc:creator>
				<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://www.kolios.dk/?p=545</guid>
		<description><![CDATA[<img src="http://www.machezdanois.com/icons/tv-48x48.png" width="48" height="48" alt="" title="videos" /><br/>
]]></description>
			<content:encoded><![CDATA[<img src="http://www.machezdanois.com/icons/tv-48x48.png" width="48" height="48" alt="" title="videos" /><br/><p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/gNYZH9kuaYM&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/gNYZH9kuaYM&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kolios.dk/2010/02/16/545/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to migrate django models with South</title>
		<link>http://www.kolios.dk/2010/02/12/how-to-migrate-django-models-with-south/</link>
		<comments>http://www.kolios.dk/2010/02/12/how-to-migrate-django-models-with-south/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 09:22:22 +0000</pubDate>
		<dc:creator>sebastien</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://www.kolios.dk/?p=524</guid>
		<description><![CDATA[<img src="http://www.machezdanois.com/icons/coding-48x48.png" width="48" height="48" alt="" title="Coding" /><img src="http://www.machezdanois.com/icons/django-48x48.png" width="48" height="48" alt="" title="django" /><br/>Hi django fridayers !
Today on python friday, we will discuss the model and data migration of django.
Many of you are probably developing the web app in python and are absolutely amazed about how easy it to create a database schema from your django models. Just run an manage.py syncdb and &#8230;voila ! Your brand new [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.machezdanois.com/icons/coding-48x48.png" width="48" height="48" alt="" title="Coding" /><img src="http://www.machezdanois.com/icons/django-48x48.png" width="48" height="48" alt="" title="django" /><br/><p>Hi django fridayers !</p>
<p>Today on python friday, we will discuss the model and data migration of django.</p>
<p>Many of you are probably developing the web app in python and are absolutely amazed about how easy it to create a database schema from your django models. Just run an manage.py syncdb and &#8230;voila ! Your brand new application has all the support needed in the backend database.</p>
<p>But let&#8217;s face it, this is not really practical when it comes to modify an application that is ALREADY online and have data (registered users, stored personal information, &#8230;).</p>
<p><span id="more-524"></span></p>
<h3>The problem</h3>
<p>How can you migrate from one model to another without loosing any data ?</p>
<h3>The solution.</h3>
<p><a title="South migration tool" href="http://south.aeracode.org">South</a></p>
<p>This python package will take care of most of the trouble caused by your model modifications.<br />
With South, you can :</p>
<ul>
<li>Modify the schema of your database according to your model</li>
<li>Migrate your data to make sure that you wont lose any data across the migration</li>
</ul>
<p><!-- more --></p>
<h3>Installing South</h3>
<ul>
<li>download</li>
<li>setup.py install (as root)</li>
<li>edit your settings.py to activate &#8220;south&#8221; in the installed apps</li>
</ul>
<h3>A simple example</h3>
<p>You can now type :</p>
<pre class="brush: bash; gutter: false">$&gt; ./manage syncdb</pre>
<p>to create the good tables in your database. South keep track of every migration in the project database.</p>
<p>Now, let&#8217;s consider that you have a the following model:</p>
<pre class="brush: python">class Customer(models.Model):
    name = models.CharField(max_length= 60)

    def __unicode__(self):
        return self.name</pre>
<p>The first thing you need to do is to initialize south so it can keep track of your<br />
modification of models:</p>
<pre class="brush: bash; gutter: false">$&gt; manage.py startmigration customer initial --initial</pre>
<p>This will create your first migration (initial). The migration will basically creates the tables in your database.<br />
Now, you can apply the migration.</p>
<pre class="brush: bash; gutter: false">$&gt; manage.py migrate</pre>
<p>Now, let&#8217;s assume that you want to change it into:</p>
<pre class="brush: python">class Customer(models.Model):
    name = models.CharField(max_length = 60)
    password = models.CharField('this is a clear text password', max_length=60)</pre>
<p>You have to prepare the migration with the following command:</p>
<pre class="brush: bash; gutter: false">$&gt; ./manage.py startmigration customer add_password --auto</pre>
<p>This creates a migration file that contains your modifications. I let you try to figure out what forward and backward methods are for. Once again, when you think that your migration file is good, you can apply the changes :</p>
<pre class="brush: bash; gutter: false">$&gt; ./manage.py migrate</pre>
<p>At this point, your database is totally synced with your model, so let&#8217;s create some data into it:</p>
<pre class="brush: bash; gutter: false">$&gt; ./manage.py shell
&gt; from customer.models import Customer
&gt; c = Customer()
&gt; c.name="sebastien requiem"
&gt; c.password = "secret"
&gt; c.save()
&gt; Customer.objects.all()
[\]</pre>
<h3>A more complex example with DATA migration</h3>
<p>You now decide to split the field <em>name</em> into <em>firstname</em> and <em>lastname</em>. The natural way would be to delete the field name and create two fields named <em>firstname</em> and <em>lastname</em>. And this is Wrong for many reasons:</p>
<ol>
<li>South will not understand that you want to split the name into two distinct fields</li>
<li>South won&#8217;t be able to migrate your data forward AND backward if you want to roll back</li>
</ol>
<p>The good (and ONLY) way to do it is to so it in three steps:</p>
<ol>
<li>modify your model so you add <em>firstname</em> and <em>lastname</em> fields and migrate the schema</li>
<li>create a migration that migrate your DATA (while name, <em>name</em>, <em>firstname</em> and <em>lastname</em> are all accessible)</li>
<li>delete the <em>name</em> field</li>
</ol>
<p>Now, let&#8217;s assume that you want to change you previous model into the following :</p>
<pre class="brush: python">class Customer(models.Model):
    name = models.CharField(max_length = 60)
    firstname = models.CharField(max_length = 60)
    lastname = models.CharField(max_length = 60)
    password = models.CharField('this is a clear text pasword', length=60)

    def __unicode__(self):
        return self.firstname + ", " + self.lastname</pre>
<h3>Migrating the schema</h3>
<p>Nothing fancy here:</p>
<pre class="brush: bash; gutter: false">$&gt; ./manage.py startmigration customer add_first_last_name --auto
$&gt; ./manage.py migrate</pre>
<h3>Migrate the data</h3>
<pre class="brush: bash; gutter: false">$&gt; ./manage.py startmigration customer first_last_data
now edit the migration file newly created and add the following lines :</pre>
<pre class="brush: python">    def forwards(self, orm):
        for customer in orm.Customer.objects.all():
            try:
                customer.first_name, customer.last_name = adopter.name.split(" ", 1)
            except ValueError:
                customer.first_name, customer.last_name = customer.name, ""
            customer.save()

    def backwards(self, orm):
        for customer in orm.Customer.objects.all():
            customer.name = customer.firstname + " " + customer.lastname
            customer.save()</pre>
<p>As you can see, the variable &#8220;orm&#8221; is in fact the real django ORM. you can use it to write data migration in python with the usual django syntax, which is VERY convenient.</p>
<p>run now you data migration:</p>
<pre class="brush: bash; gutter: false">$&gt; ./manage.py migrate</pre>
<p>A quick django shell will ensure that we have the data present in the database where we expect it to be :</p>
<pre class="brush: bash; gutter: false">$&gt;./manage shell
&gt; from customer.models import Customer
&gt; Customer.objects.all()
[]</pre>
<p>We now just need to delete the remaining an unused field.</p>
<p>Change your model :</p>
<pre class="brush: python">class Customer(models.Model):
    firstname = models.CharField(max_length = 60)
    lastname = models.CharField(max_length = 60)
    password = models.CharField('this is a clear text password', length=60)</pre>
<p>and run a simple migration with &#8211;auto</p>
<pre class="brush: bash">$&gt; ./manage.py startmigration customer remove_name --auto</pre>
<p>and apply</p>
<pre class="brush: bash; gutter: false">$&gt; ./manage.py migrate</pre>
<p>Voila.</p>
<p>References:</p>
<ul>
<li><a title="South migration tool" href="http://south.aeracode.org">The South migration tools</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.kolios.dk/2010/02/12/how-to-migrate-django-models-with-south/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://www.kolios.dk/2010/02/09/543/</link>
		<comments>http://www.kolios.dk/2010/02/09/543/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 07:35:56 +0000</pubDate>
		<dc:creator>sebastien</dc:creator>
				<category><![CDATA[pics]]></category>

		<guid isPermaLink="false">http://www.kolios.dk/2010/02/09/543/</guid>
		<description><![CDATA[<img src="http://www.machezdanois.com/icons/picture-48x48.png" width="48" height="48" alt="" title="pics" /><br/>
]]></description>
			<content:encoded><![CDATA[<img src="http://www.machezdanois.com/icons/picture-48x48.png" width="48" height="48" alt="" title="pics" /><br/><p><img alt="" src="http://25.media.tumblr.com/tumblr_kwympsh2gF1qzu1fjo1_400.jpg" class="alignnone" width="400" height="267" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kolios.dk/2010/02/09/543/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://www.kolios.dk/2010/02/08/541/</link>
		<comments>http://www.kolios.dk/2010/02/08/541/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 11:30:41 +0000</pubDate>
		<dc:creator>sebastien</dc:creator>
				<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://www.kolios.dk/?p=541</guid>
		<description><![CDATA[<img src="http://www.machezdanois.com/icons/tv-48x48.png" width="48" height="48" alt="" title="videos" /><br/>
]]></description>
			<content:encoded><![CDATA[<img src="http://www.machezdanois.com/icons/tv-48x48.png" width="48" height="48" alt="" title="videos" /><br/><p><object width="500" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8290626&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=8290626&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="300"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kolios.dk/2010/02/08/541/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to extend django&#039;s user class and change authentication middleware.</title>
		<link>http://www.kolios.dk/2010/01/22/how-to-extend-django-user-class-and-change-authentication-middleware/</link>
		<comments>http://www.kolios.dk/2010/01/22/how-to-extend-django-user-class-and-change-authentication-middleware/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 12:59:39 +0000</pubDate>
		<dc:creator>sebastien</dc:creator>
				<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.kickban.net/?p=74</guid>
		<description><![CDATA[<img src="http://www.machezdanois.com/icons/python-48x48.png" width="48" height="48" alt="" title="python" /><br/>Hi everyone,
Welcome for the first edition for python-friday ! This python friday will be dedicated to the so popular django web framework because I really have my hands in it for the time being.
Django offers a very nice User class to manage all sort of users, set rights, contact information and so on. But sometimes, [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.machezdanois.com/icons/python-48x48.png" width="48" height="48" alt="" title="python" /><br/><p>Hi everyone,</p>
<p>Welcome for the first edition for python-friday ! This python friday will be dedicated to the so popular django web framework because I really have my hands in it for the time being.</p>
<p>Django offers a very nice User class to manage all sort of users, set rights, contact information and so on. But sometimes, you want to extend that class to add some extra information.</p>
<p>The problem:<br />
You want to use your  &#8211; let&#8217;s call it &#8211; Customer class as the central user class and authenticate using django&#8217;s user modules.</p>
<p>The solution:<br />
Extend the user classs to add your data and configure django framework to use your new class as a middleware and authenticate on it.</p>
<p><span id="more-347"></span></p>
<h3>Extending the class.</h3>
<pre class="brush: python">

from django.contrib.auth.models import User, UserManager

class Customer(User):
	"""
	Model for customer.Hold administrative information
	"""
	company_name = models.CharField('company name', unique=True, max_length = 50)
	tax_number = models.CharField('tax number', max_length = 12)
	address = models.CharField('address line 1', max_length = 200)
	zip_code = models.IntegerField('zip code', max_length = 10)
	city_name = models.CharField('city name', max_length = 20)
	country = models.CharField('country', max_length = 20)
	edited_on = models.DateTimeField(auto_now=True, auto_now_add=True, editable=False)

	# We setup a manager here.. not really sure this is useful
	objects = UserManager()

	def __unicode__(self):
		return self.company_name

	# In the save function, we implement our own password
	# management. If the password is already hashed in the form
	# we just dont change anything otherwise we call the set_password()
	def save(self):
		password = ""
		r = re.compile('sha1\$.*')
		if not r.match(self.password):
			password = self.password
			self.set_password(self.password)
		User.save(self)
</pre>
<p>Now that we have extended the class, we can play a bit with it to see how things goes :</p>
<pre class="brush: python">
> c = Customer()
> c.username = "mms"
> c.lastname = "sauvage"
> c.firstname = "manumanu"
> c.company_name = "the Corp"
#and so on ...
and finally
> c.save()
</pre>
<p>But wait &#8230;. Haven&#8217;t we said that django has its own authentication methods ? Well, how do you want Django framework to know that it has to authenticate against the <em>customer table</em> and <strong>NOT</strong> against django users&#8217; table ?</p>
<p>Well, django can let us redefine the authentication backend. Doing so will then change the authentication behavior the way we want to be.</p>
<h3>Redefining djjango&#8217;s authentication backend.</h3>
<p>First we have to declare our new authenticate backend in the settings.py. While we are in that file, we will also tell django which class to use to authenticate :</p>
<pre name='code' classe='python'>
AUTHENTICATION_BACKENDS = (
    'project.auth_backend.CustomerModelBackend',
)

CUSTOM_USER_MODEL = 'accounts.Customer'
</pre>
<p>We just say here that the backend will be in the file auth_backen.py and the class will be named CustomerModelBackend.</p>
<p>Then create a file called auth-backend.py in your project directory and add it the following content:</p>
<pre  class='brush: python'>
from django.conf import settings
from django.contrib.auth.backends import ModelBackend
from django.core.exceptions import ImproperlyConfigured
from django.db.models import get_model

class CustomerModelBackend(ModelBackend):
	def authenticate(self, username=None, password=None):
		try:
			user = self.user_class.objects.get(username=username)
			if user.check_password(password):
				return user
		except self.user_class.DoesNotExist:
			return None

	def get_user(self, user_id):
		try:
			return self.user_class.objects.get(pk=user_id)
		except self.user_class.DoesNotExist:
			return None

	@property
	def user_class(self):
		if not hasattr(self, '_user_class'):
			self._user_class = get_model(*settings.CUSTOM_USER_MODEL.split('.', 2))
		if not self._user_class:
			raise ImproperlyConfigured('Could not get custom user model')
		return self._user_class
</pre>
<p>The authentication backend is a class with 2 methods (get_user and authenticate). This is well explained in the documentation of <a href="http://docs.djangoproject.com/en/dev/topics/auth/#specifying-authentication-backends">django framework</a>.</p>
<p>Now we have a Class for our Extended users, an authentication backend that is configured through our settings.py.</p>
<p>Yes ! This is what we want. The most lazy of you can stop here and start coding his favorite user management webapp.</p>
<h3>Syncdb / admin problem.</h3>
<p>But .. wait a minute. Do you remember when you do your first syncdb ? manage.py ask you if you want to fill in an administrator. If you say yes at that point, manage.py will create a <strong>django user</strong> and now that we authenticate on Custome&#8217;s table, there is a lot of chances that the admin module will not authenticate properly (for the admin only though &#8230;).</p>
<p>The solution is to modify the authentication backend to authenticate on django users&#8217; table in case of a failed authentication on customer&#8217;s table.</p>
<pre class="brush: python">
       def authenticate(self, username=None, password=None):
               try:
                        user = self.user_class.objects.get(username=username)
                except self.user_class.DoesNotExist:
                        try:
                                user = User.objects.get(username=username)
                        except User.DoesNotExist:
                                return None
</pre>
<p>As you can see, the code is pretty straight forward and self explanatory. The only tricky part is the &#8220;@property&#8221; but I let you dig into that yourself as you will learn a lot of things if you want to understand it completely.</p>
<p>Et voila !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kolios.dk/2010/01/22/how-to-extend-django-user-class-and-change-authentication-middleware/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://www.kolios.dk/2010/01/21/477/</link>
		<comments>http://www.kolios.dk/2010/01/21/477/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 12:43:13 +0000</pubDate>
		<dc:creator>sebastien</dc:creator>
				<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://www.kolios.dk/2010/01/19/477/</guid>
		<description><![CDATA[<img src="http://www.machezdanois.com/icons/tv-48x48.png" width="48" height="48" alt="" title="videos" /><br/>
]]></description>
			<content:encoded><![CDATA[<img src="http://www.machezdanois.com/icons/tv-48x48.png" width="48" height="48" alt="" title="videos" /><br/><p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/IMqFhRCD1fU&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/IMqFhRCD1fU&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kolios.dk/2010/01/21/477/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://www.kolios.dk/2010/01/19/479/</link>
		<comments>http://www.kolios.dk/2010/01/19/479/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 10:48:23 +0000</pubDate>
		<dc:creator>sebastien</dc:creator>
				<category><![CDATA[pics]]></category>

		<guid isPermaLink="false">http://www.kolios.dk/?p=479</guid>
		<description><![CDATA[<img src="http://www.machezdanois.com/icons/picture-48x48.png" width="48" height="48" alt="" title="pics" /><br/>
via kings and queens
]]></description>
			<content:encoded><![CDATA[<img src="http://www.machezdanois.com/icons/picture-48x48.png" width="48" height="48" alt="" title="pics" /><br/><p><a href="http://www.kolios.dk/upload/2010/01/tumblr_kw9vcezHEq1qzsb00o1_500.jpg"><img src="http://www.kolios.dk/upload/2010/01/tumblr_kw9vcezHEq1qzsb00o1_500.jpg" alt="girl with front hair" title="king / queens" width="500" height="335" class="alignleft size-full wp-image-478" /></a></p>
<p><a href='http://sophisticated-simplicities.tumblr.com/post/336725822' title='via kings and queens'>via kings and queens</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kolios.dk/2010/01/19/479/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://www.kolios.dk/2010/01/18/457/</link>
		<comments>http://www.kolios.dk/2010/01/18/457/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 11:49:25 +0000</pubDate>
		<dc:creator>sebastien</dc:creator>
				<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://www.kolios.dk/?p=457</guid>
		<description><![CDATA[<img src="http://www.machezdanois.com/icons/tv-48x48.png" width="48" height="48" alt="" title="videos" /><br/>
]]></description>
			<content:encoded><![CDATA[<img src="http://www.machezdanois.com/icons/tv-48x48.png" width="48" height="48" alt="" title="videos" /><br/><p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/_PsrTSAk7F8&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/_PsrTSAk7F8&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kolios.dk/2010/01/18/457/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
