<?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>VieSurIP &#187; Python</title>
	<atom:link href="http://www.viesurip.fr/en/tag/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.viesurip.fr</link>
	<description>My ideas, my projects about the internet, networks and computer science</description>
	<lastBuildDate>Mon, 29 Mar 2010 13:58:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Django better than a CMS?</title>
		<link>http://www.viesurip.fr/en/2009/12/14/django-mieux-quun-cms/</link>
		<comments>http://www.viesurip.fr/en/2009/12/14/django-mieux-quun-cms/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 10:23:24 +0000</pubDate>
		<dc:creator>twisterss</dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[site]]></category>

		<guid isPermaLink="false">http://www.viesurip.fr/?p=113</guid>
		<description><![CDATA[
I recently had to rewrite a website I&#8217;m maintaining for a very small business: Le fil à soi. They are 3 teacher who offer courses of chinese massage, qi gong and Gestalt therapy in Bordeaux, France. The requirements for the website are quite simple:

presentation of the place, the people, and contact information
pages for all courses [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-117" title="Django logo" src="http://www.viesurip.fr/wp-content/uploads/2009/12/django-logo-negative-small.png" alt="Django logo" width="160" height="73" /></p>
<p>I recently had to rewrite a website I&#8217;m maintaining for a very small business: <a title="Website of le fil à soi (French)" href="http://www.lefilasoi.fr">Le fil à soi</a>. They are 3 teacher who offer courses of chinese massage, qi gong and Gestalt therapy in Bordeaux, France. The requirements for the website are quite simple:</p>
<ul>
<li>presentation of the place, the people, and contact information</li>
<li>pages for all courses sorted in categories</li>
<li>automatic management of courses dates display and RSS feed generation</li>
<li>simple backend to modify courses information (should be used by the teachers, although they don&#8217;t really like computers and prefer sending me an email&#8230;)</li>
</ul>
<p>The version I wanted to replace was a hand-made PHP website. I started it years ago when I knew little about websites technical design, so it had become really messy and complicated to maintain. I considered letting someone else maintain the website, so I needed a cleaner version.</p>
<h3>Using a CMS: Drupal or WordPress</h3>
<p>A CMS (Content Management System) is a platform that makes building a website easy. <a title="WordPress official website" href="http://wordpress.org/">WordPress</a> is particularly intended to create blogs, but there are plenty of plugins that enable to create any type of websites. <a title="Drupal official website" href="http://drupal.org/">Drupal</a> is really made to build websites of any type. There are plenty of plugins too that address about every possible needs (calendar, online shop&#8230;)</p>
<p>The strength of these CMSs is that they manage the two parts of the website: the user part, and the administration part. The administration part gives you many simple ways to personalize and watch the user part.</p>
<p>I started two small prototypes using these CMSs and came to the same conclusion: none of them perfectly addresses my very simple needs.</p>
<p>For example for the courses dates managment: plenty of plugins do something close enough to what I want, but none do it exactly. So I will have to personnalize a plugin, probably without real documentation of the code. This plugin will then be updated (without documentation again) by its author, and I&#8217;ll have to maintain my changes again and again&#8230;</p>
<p>It&#8217;s the same for the theme: plenty of themes are available but I can&#8217;t seriously download and use a design without customizing it.</p>
<p>So I can make my very simple website using a CMS but:</p>
<ul>
<li>the result will be huge, with plenty of features I won&#8217;t use (no blog, no users management needed&#8230;)</li>
<li>it will be difficult to maintain, and I will have to watch updates to the plugins I have customized</li>
<li>I will have to make regular updates when the CMS is updated, because known security flows of well-known CMSs are rapidly used by &#8220;hackers&#8221;</li>
</ul>
<p>This is a lot of work for such a small website.</p>
<h3>Using Django</h3>
<p><a href="http://www.djangoproject.com/">Django</a> isn&#8217;t really a CMS. It&#8217;s a Python framework to build websites (comparable to PHP Zend, Ruby On Rails&#8230;). So it means that you have to actually write code to use it.</p>
<p>The huge difference with other web frameworks is that Django has originally be developped for a news website, so content management was very important. That&#8217;s why an impressive feature is available: an automatic administration generation.</p>
<p>I just had to define my models (what a course is, what a teacher is, what a date, a category is). Then it was mapped to my database and the administration part was generated. I finally defined my views, that is to say the way these models are displayed to the users (with simple tools to generate RSS feeds, sitemaps&#8230;)</p>
<p>The advantages of this approach are:</p>
<ul>
<li>the final application is very small, no useless features</li>
<li>you get exactly what you want, you haven&#8217;t to adapt to random plugins found on the Internet</li>
<li>you know perfectly what each line of code does (even if you don&#8217;t document it&#8230;)</li>
<li>the only updates you have to watch are Python and Django updates, that are rare and usually well managed</li>
</ul>
<p>The only possible drawbacks I see:</p>
<ul>
<li>There are much fewer people who are used to Python Django than people who are used to WordPress, so it will be more difficult to find maintainers (but they will be better :p)</li>
<li>Python has to be properly supported by you host. I use <a title="OVH website" href="http://www.ovh.com">OVH</a>, that supports Django only in CGI, but it&#8217;s okay for such a small website.</li>
<li>There is no WYSIWYG editor by default in Django-generated administration: this can be bad to edit articles (or courses descriptions for me). But it&#8217;s <a title="Add a WYSIWYG editor in Django admin" href="http://code.djangoproject.com/wiki/AddWYSIWYGEditor">fairly easy</a> to add <a title="TinyMCE official website" href="http://tinymce.moxiecode.com/">TinyMCE</a> as it&#8217;s purely javascript.</li>
</ul>
<h3>Conclusion</h3>
<p>If you want to create a simple full-featured blog, use WordPress. If you want complicated features like an online shop, use Drupal.</p>
<p>But if you want to build a simple, dynamic and easy to maintain website, and coding doesn&#8217;t scare you too much, use Python Django. You will get exactly what you want, without much efforts, and the result will be very easy to maintain.</p>
<div id="attachment_131" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.viesurip.fr/wp-content/uploads/2009/12/lefilasoi-accueil.png"><img class="size-medium wp-image-131 " title="Le fil à soi website main page" src="http://www.viesurip.fr/wp-content/uploads/2009/12/lefilasoi-accueil-300x154.png" alt="Le fil à soi website main page" width="300" height="154" /></a><p class="wp-caption-text">Le fil à soi website main page</p></div>
<div id="attachment_142" class="wp-caption aligncenter" style="width: 309px"><a href="http://www.viesurip.fr/wp-content/uploads/2009/12/lefilasoi-admin-pages.png"><img class="size-medium wp-image-142" title="lefilasoi-admin-pages" src="http://www.viesurip.fr/wp-content/uploads/2009/12/lefilasoi-admin-pages-299x153.png" alt="Le fil à soi pages administration" width="299" height="153" /></a><p class="wp-caption-text">Le fil à soi pages administration</p></div>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.viesurip.fr/en/2009/12/14/django-mieux-quun-cms/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Jolicloud internship: first steps of a start-up</title>
		<link>http://www.viesurip.fr/en/2009/09/24/stage-chez-jolicloud-les-premiers-pas-dune-start-up/</link>
		<comments>http://www.viesurip.fr/en/2009/09/24/stage-chez-jolicloud-les-premiers-pas-dune-start-up/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 10:44:40 +0000</pubDate>
		<dc:creator>twisterss</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Jolicloud]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Stage]]></category>

		<guid isPermaLink="false">http://www.viesurip.fr/?p=81</guid>
		<description><![CDATA[
I just finished my internship at Jolicloud as part of my studies in TELECOM Bretagne. It lasted almost one year.
Jolicloud is a new start-up created by Tariq Krim (who created Netvibes) that builds an operating system adapted to netbooks and focused on the web technologies and services.
I lived from the inside the launching of a [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<a href='http://www.viesurip.fr/en/2009/09/24/stage-chez-jolicloud-les-premiers-pas-dune-start-up/' ><img src="http://www.viesurip.fr/wp-content/uploads/2009/09/jolicloud.logo-150x150.png" style="border:0; float:right; margin: 0 0 .5em 1em;" alt="Jolicloud internship: first steps of a start-up" title="Jolicloud internship: first steps of a start-up"/></a>
<p>I just finished my internship at <a title="Jolicloud official website" href="http://www.jolicloud.com">Jolicloud</a> as part of my studies in <a title="Site officiel de TELECOM Bretagne" href="http://www.telecom-bretagne.eu">TELECOM Bretagne</a>. It lasted almost one year.</p>
<p>Jolicloud is a new start-up created by Tariq Krim (who created <a href="http://www.netvibes.com">Netvibes</a>) that builds an operating system adapted to netbooks and focused on the web technologies and services.</p>
<p>I lived from the inside the launching of a start-up: idea, research, launching of a private alpha, founding, arrival of big competitors (like <a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html">Google Chome OS</a>), hiring, beta and release roadmap&#8230; We were three at the beginning: Tariq Krim, Romain Huet and me.</p>
<p>Regarding development, it is an interesting challenge: transform a Linux distribution into an ergonomic and beautiful operating system based on web technologies instead of the usual Linux technologies (HTML instead of GTK, Javascript instead of C&#8230;).</p>
<p>We use <a href="http://rubyonrails.org/">Ruby On Rails</a> and <a href="http://jquery.com/">JQuery</a> to develop the central web application that constitutes Jolicloud and <a href="http://www.python.org/">python</a> to make our web application communicate with the system.</p>
<p>First developments were focused on two things: modify <a href="http://www.ubuntu.com/">Ubuntu</a> to transform it into the Jolicloud OS, and create an applications directory like the one on the Apple iPhone, to install/remove/update applications in one click. This directory is based on APT, the technology used by <a href="http://www.debian.org">Debian</a> (and Ubuntu) to manage files on the system. And Prism has been fully integrated to put web applications (Google Docs, GMail, Facebook&#8230;) on the desktop.</p>
<p>The currently available version of Jolicloud is far from complete: it is just an idea of what we want to do. Developments go faster now and we have plenty of ideas I can&#8217;t talk about. Sadly I have to go back to school for my 3rd year at TELECOM Bretagne, but I hope I will still be able to participate in Jolicloud.</p>
<p>While <a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html">Google Chrome OS</a> will probably only allow to launch web applications, local applications can be used with Jolicloud. And Jolicloud wants to integrate all web services, not only Google ones&#8230; And <a href="http://moblin.org/">Moblin</a> isn&#8217;t really focused on the web. Personnally, I would like the Jolicloud concept on my notebook too, if the interface were adapted. So Jolicloud probably has a bright future&#8230; to be continued <img src='http://www.viesurip.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.viesurip.fr/en/2009/09/24/stage-chez-jolicloud-les-premiers-pas-dune-start-up/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

