diff --git a/build/carnet/2010/back-from-djangocong-2010/index.html b/build/carnet/2010/back-from-djangocong-2010/index.html index f1059f7..6dede97 100644 --- a/build/carnet/2010/back-from-djangocong-2010/index.html +++ b/build/carnet/2010/back-from-djangocong-2010/index.html @@ -6,7 +6,7 @@ De retour de Djangocong | Carnet | Nicolas Perriault - + @@ -27,18 +27,22 @@

Hi, I'm Nicolas.

-
+
-

De retour de Djangocong »

+

De retour de Djangocong

+

Les rencontres Django francophones 2010, tenues à Marseille, viennent de s'achever.

David Larlet m'ayant invité à y participer, j'y ai présenté une conférence "Django pour les développeurs Symfony" puisqu'étant moi-meme utilisateur des deux frameworks.

Vous trouverez les slides de la présentation sur slideshare, ou sur la page dédiée à Django sur le site d'Akei.

N'hésitez pas à faire vos retours en commentaire.

@@ -49,7 +53,7 @@

De retour de DjangocongHome
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/carnet/2010/choisir-son-metier/index.html b/build/carnet/2010/choisir-son-metier/index.html index c2314b8..aec7a77 100644 --- a/build/carnet/2010/choisir-son-metier/index.html +++ b/build/carnet/2010/choisir-son-metier/index.html @@ -6,7 +6,7 @@ Choisir son métier, arrêter de le (faire) subir | Carnet | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    +
    -

    Choisir son métier, arrêter de le (faire) subir »

    +

    Choisir son métier, arrêter de le (faire) subir

    +

    Je viens de finir la lecture de l'excellent billet de Thibault, « Dialogue avec un client ». Ce billet présente point pour point ma vision de ce qu'est une collaboration efficace autour d'un projet informatique ; je n'y apprends rien de vraiment nouveau (ayant partiellement nourri la conversation qu'il y relate), mais je suis ravi de voir que je ne suis pas le seul à partager le sentiment que la collaboration est vraiment à réinventer dans ce métier.

    Ce qui me chagrine plus en revanche, c'est la lecture de certains commentaires, relativement fatalistes et désabusés ; je ne resiste pas à la tentation d'en commenter certains.

    La métaphore du concessionnaire automobile

    @@ -153,7 +154,10 @@

    « Bon, tu conclues là ? J'vais rater l'apéro »

    Vous pouvez maintenant basher en commentaire, c'est fait pour ça ;)

    @@ -164,7 +168,7 @@

    « Bon, tu conclues là ? J'vais rater l'apéro »

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/carnet/2010/index.html b/build/carnet/2010/index.html index 32a92aa..87bb929 100644 --- a/build/carnet/2010/index.html +++ b/build/carnet/2010/index.html @@ -6,7 +6,7 @@ Carnet | Nicolas Perriault - + @@ -26,15 +26,17 @@

    Hi, I'm Nicolas.

    -

    Billets publiés durant 2010

    +

    Carnet | 2010

    • Choisir son métier, arrêter de le (faire) subir | 2010-10-27
      - Je viens de finir la lecture de l'excellent billet de Thibault, « Dialogue avec un client ». Ce billet présente point pour point ma ... read more + Je viens de finir la lecture de l'excellent billet de Thibault, « Dialogue avec un client ». Ce billet présente point pour point ma ... +
    • De retour de Djangocong | 2010-04-26
      - Les rencontres Django francophones 2010, tenues à Marseille, viennent de s'achever. David Larlet m'ayant invité à y participer, j'y ai ... read more + Les rencontres Django francophones 2010, tenues à Marseille, viennent de s'achever. David Larlet m'ayant invité à y participer, j'y ai ... +

    @@ -47,7 +49,7 @@

    Billets publiés durant 2010

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/carnet/2011/index.html b/build/carnet/2011/index.html index 23001b1..a58fbcb 100644 --- a/build/carnet/2011/index.html +++ b/build/carnet/2011/index.html @@ -6,7 +6,7 @@ Carnet | Nicolas Perriault - + @@ -26,11 +26,12 @@

    Hi, I'm Nicolas.

    -

    Billets publiés durant 2011

    +

    Carnet | 2011

    • Du Sud avec du Web dedans, et réciproquement | 2011-01-28
      - Ceux qui me connaissent le savent, je suis partisan d'une gestion intransigeante de la qualité sur le Web, et suis donc — comme ... read more + Ceux qui me connaissent le savent, je suis partisan d'une gestion intransigeante de la qualité sur le Web, et suis donc — comme ... +

    @@ -43,7 +44,7 @@

    Billets publiés durant 2011

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/carnet/2011/sudweb/index.html b/build/carnet/2011/sudweb/index.html index faafe12..d95a03f 100644 --- a/build/carnet/2011/sudweb/index.html +++ b/build/carnet/2011/sudweb/index.html @@ -6,7 +6,7 @@ Du Sud avec du Web dedans, et réciproquement | Carnet | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    +
    -

    Du Sud avec du Web dedans, et réciproquement »

    +

    Du Sud avec du Web dedans, et réciproquement

    +

    Ceux qui me connaissent le savent, je suis partisan d'une gestion intransigeante de la qualité sur le Web, et suis donc — comme souvent dans ce cas — un grand fan du cycle de conférences Paris Web qui a lieu tous les ans en octobre à Paris. C'est l'occasion d'y faire un état des lieux des meilleurs pratiques, d'attraper un rhume, de découvrir de nouvelles techniques, de profiter des joies du métro, ou de rafraîchir ses connaissances (au propre comme au figuré). Surtout, c'est l'occasion d'échanger avec d'autres passionnés de la profession autour de breuvages houblonnés le soir venu en refaisant le Web jusqu'à plus d'heure ni soif.

    Mais voila, Paris, c'est loin. Et Paris, ça a tendance à un peu trop vouloir centraliser tout ce qui remue à mon goût. Je m'en rends forcément mieux compte depuis que j'ai déménagé à Montpellier il y a un an et demi (fichtre comme le temps passe). Et surtout, je constate que la région dans laquelle je vis est immensément riche de passion et de compétences autour de ce noble medium qui est le nôtre. Des gens bien, un peu partout autour de moi, qui n'ont pas toujours la possibilité de se déplacer jusqu'à la capitale, de s'y loger, de s'y nourrir, de s'y acheter le nombre d'écharpes nécessaires pour survivre, etc.

    Aussi, durant le trajet en voiture qui nous conduisait au dernier Paris Web moi et mes compagnons de route, nous avons une idée assez folle : organiser un évènement du même type que Paris Web, mais dans le sud. C'est à dire plus proche de nous géographiquement et assurant une meilleure compatibilité feinéantique et calorifère. Ainsi naquit l'idée d'un SubWeb.

    @@ -59,7 +60,10 @@

    Du Sud avec du Web dedans, et réciproquement

    Ne tardez pas pour commander votre place en ligne, la clôture des inscriptions est prévue pour le 2 mai.

    @@ -70,7 +74,7 @@

    Du Sud avec du Web dedans, et réciproquement
  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/carnet/feed/index.html b/build/carnet/feed/index.html index 3352fb5..6b01bf8 100644 --- a/build/carnet/feed/index.html +++ b/build/carnet/feed/index.html @@ -5,8 +5,8 @@ http://nicolas.perriault.net Le petit coin d'aigreur sur la toile de Nicolas Perriault. fr - Mon, 27 Feb 2012 17:53:40 +0000 - Mon, 27 Feb 2012 17:53:40 +0000 + Tue, 28 Feb 2012 08:35:25 +0000 + Tue, 28 Feb 2012 08:35:25 +0000 Du Sud avec du Web dedans, et réciproquement diff --git a/build/carnet/index.html b/build/carnet/index.html index 7189fec..2d0a9f3 100644 --- a/build/carnet/index.html +++ b/build/carnet/index.html @@ -6,7 +6,7 @@ Carnet | Nicolas Perriault - + @@ -32,19 +32,22 @@

    Hi, I'm Nicolas.

    métier, j'ai choisi de tenir ce carnet en français. Mind you.

    -

    Derniers billets flux

    +

    Derniers billets flux

    • Du Sud avec du Web dedans, et réciproquement | 2011-01-28
      - Ceux qui me connaissent le savent, je suis partisan d'une gestion intransigeante de la qualité sur le Web, et suis donc — comme ... read more + Ceux qui me connaissent le savent, je suis partisan d'une gestion intransigeante de la qualité sur le Web, et suis donc — comme ... +
    • Choisir son métier, arrêter de le (faire) subir | 2010-10-27
      - Je viens de finir la lecture de l'excellent billet de Thibault, « Dialogue avec un client ». Ce billet présente point pour point ma ... read more + Je viens de finir la lecture de l'excellent billet de Thibault, « Dialogue avec un client ». Ce billet présente point pour point ma ... +
    • De retour de Djangocong | 2010-04-26
      - Les rencontres Django francophones 2010, tenues à Marseille, viennent de s'achever. David Larlet m'ayant invité à y participer, j'y ai ... read more + Les rencontres Django francophones 2010, tenues à Marseille, viennent de s'achever. David Larlet m'ayant invité à y participer, j'y ai ... +
    @@ -64,7 +67,7 @@

    Derniers billets flux

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2010/about-rest-frameworks/index.html b/build/code/2010/about-rest-frameworks/index.html index abbd73e..b34fd49 100644 --- a/build/code/2010/about-rest-frameworks/index.html +++ b/build/code/2010/about-rest-frameworks/index.html @@ -6,7 +6,7 @@ About RESTful features of modern Web frameworks | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    +
    -

    About RESTful features of modern Web frameworks »

    +

    About RESTful features of modern Web frameworks

    +

    Frameworks like Symfony or rails (and probably many others) provide a very convenient feature named RESTful routing, aka HTTP-aware urls and controllers, generally associated with an object/url mapping mechanism to expose Model entites and several available actions on them over HTTP.

    This is really useful, especially when you deal with WebServices on a daily basis, or if you want to reuse your controllers in both standard html or service oriented architecture (SOA) contexts.

    For example, with Symfony, you can declare an HTTP routes collection this way (all examples are taken from the Sftunes Symfony application I recently released on github):

    @@ -94,7 +95,10 @@

    About RESTful features of modern

    Great, can't wait for 2022!

    @@ -105,7 +109,7 @@

    About RESTful features of modern
  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2010/custom-deployment-tasks/index.html b/build/code/2010/custom-deployment-tasks/index.html index 86ec7ba..e12d6b5 100644 --- a/build/code/2010/custom-deployment-tasks/index.html +++ b/build/code/2010/custom-deployment-tasks/index.html @@ -6,7 +6,7 @@ Tâches de déploiement spécifiques avec Symfony | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    +
    -

    Tâches de déploiement spécifiques avec Symfony »

    +

    Tâches de déploiement spécifiques avec Symfony

    +

    Symfony propose une tâche de déploiement distant utilisant rsync fort pratique : une fois configurés les paramètres du serveur distant dans le fichier config/properties.ini de votre projet, un simple appel en ligne de commande synchronisera les fichiers du projet présents sur votre système de fichiers local vers l'hôte distant. Et si vous utilisez une clé SSH, l'opération ne vous demandera même pas de saisir votre mot de passe !

    $ ./symfony project:deploy monserveur --go
     
    @@ -98,7 +99,10 @@

    Tâches de déploiement spéci

    PS : Ce billet a été écrit en 14 minutes. Merci de votre compréhension.

    @@ -109,7 +113,7 @@

    Tâches de déploiement spéci
  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2010/django-with-pip-virtualenv/index.html b/build/code/2010/django-with-pip-virtualenv/index.html index 8c3dd7f..ef45204 100644 --- a/build/code/2010/django-with-pip-virtualenv/index.html +++ b/build/code/2010/django-with-pip-virtualenv/index.html @@ -6,7 +6,7 @@ Installer Django dans un environnement Python virtuel avec pip, virtualenv et virtualenvwrapper | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    +
    -

    Installer Django dans un environnement Python virtuel avec pip, virtualenv et virtualenvwrapper »

    +

    Installer Django dans un environnement Python virtuel avec pip, virtualenv et virtualenvwrapper

    +

    Ce billet résume les étapes nécessaires pour installer un ou plusieurs environnements de développement Django fonctionnels, portables et faciles à maintenir sous Mac OS X.

    Même si Django est un framework relativement simple à installer, lorsqu'il s'agit de développer plusieurs projets mettant en œuvre différentes versions de ce dernier ou de librairies tierces nécessaires pour assurer son bon fonctionnement, le casse-tête peut rapidement devenir ingérable si l'on ne prend pas garde à bien isoler le contexte applicatif dans un environnement dédié, isolé du reste du système.

    Concrètement, imaginons que j'ai deux projets Django :

    @@ -161,7 +162,10 @@

    Créer son premier environnement virtuel

    Edit : Prise en compte de la variable d'environnement PIP_RESPECT_VIRTUALENV pour que pip detecte automatiquement la présence d'un environnement virtuel lors de son utilisation (merci Mathieu !)

    @@ -172,7 +176,7 @@

    Créer son premier environnement virtuel

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2010/express/index.html b/build/code/2010/express/index.html index eb000fd..bed0d5e 100644 --- a/build/code/2010/express/index.html +++ b/build/code/2010/express/index.html @@ -6,7 +6,7 @@ A First Look at node.js and Express | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    +
    -

    A First Look at node.js and Express »

    +

    A First Look at node.js and Express

    +

    With all the hype coming to server-side Javascript lately, especially around Node, I was feeling the need to give it a try to see how it goes. Also, getting back to work after three full weeks of unwired holidays was hard enough to worth deserving some playtime with cool and fun technologies.

    Node is described as an Evented I/O Framework for Google's V8 JavaScript Engine. Think of it as a toolkit to produce high-performance distributed, event-driven and scalable non-blocking network servers. Okay, whatever the way I want to describe the project, it's buzzword-bingo™. Let's say it's mainly about catching events and react accordingly, to make load distribution and parallel processing easier and more effective.

    Installing Node

    @@ -114,7 +115,10 @@

    Conclusion

    Thanks for your attention, have fun, take care and don't break the Web.

    @@ -125,7 +129,7 @@

    Conclusion

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2010/index.html b/build/code/2010/index.html index 444e4ce..c81d37e 100644 --- a/build/code/2010/index.html +++ b/build/code/2010/index.html @@ -6,7 +6,7 @@ Code | Nicolas Perriault - + @@ -26,35 +26,42 @@

    Hi, I'm Nicolas.

    -

    « Code » stuff published during 2010

    +

    Code | 2010

    • Enabling tab completion in OS X Python interactive interpreter | 2010-12-29
      - Python is awesome, and so is its native interactive interpreter. I discovered today that it can even provide autocompletion using a ... read more + Python is awesome, and so is its native interactive interpreter. I discovered today that it can even provide autocompletion using a ... +
    • Install PIL within a virtualenv on Snow Leopard | 2010-12-03
      - As a personal reminder, here's how to install PIL with jpeg and freetype support in a Python virtualenv with a little help from ... read more + As a personal reminder, here's how to install PIL with jpeg and freetype support in a Python virtualenv with a little help from ... +
    • Hosting a Symfony app on NginX using PHP-FPM | 2010-09-27
      - I recently had to make a capacity planning study for a client of mine for which I've been developing a Symfony application. Despite ... read more + I recently had to make a capacity planning study for a client of mine for which I've been developing a Symfony application. Despite ... +
    • A First Look at node.js and Express | 2010-09-01
      - With all the hype coming to server-side Javascript lately, especially around Node, I was feeling the need to give it a try to see how ... read more + With all the hype coming to server-side Javascript lately, especially around Node, I was feeling the need to give it a try to see how ... +
    • Tâches de déploiement spécifiques avec Symfony | 2010-05-25
      - Symfony propose une tâche de déploiement distant utilisant rsync fort pratique : une fois configurés les paramètres du serveur distant ... read more + Symfony propose une tâche de déploiement distant utilisant rsync fort pratique : une fois configurés les paramètres du serveur distant ... +
    • Installer Django dans un environnement Python virtuel avec pip, virtualenv et virtualenvwrapper | 2010-05-05
      - Ce billet résume les étapes nécessaires pour installer un ou plusieurs environnements de développement Django fonctionnels, portables ... read more + Ce billet résume les étapes nécessaires pour installer un ou plusieurs environnements de développement Django fonctionnels, portables ... +
    • About RESTful features of modern Web frameworks | 2010-04-28
      - Frameworks like Symfony or rails (and probably many others) provide a very convenient feature named RESTful routing, aka HTTP-aware ... read more + Frameworks like Symfony or rails (and probably many others) provide a very convenient feature named RESTful routing, aka HTTP-aware ... +

    @@ -67,7 +74,7 @@

    « Code » stuff published during 2010

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2010/pil-install/index.html b/build/code/2010/pil-install/index.html index 14ae6ab..4d0f79e 100644 --- a/build/code/2010/pil-install/index.html +++ b/build/code/2010/pil-install/index.html @@ -6,7 +6,7 @@ Install PIL within a virtualenv on Snow Leopard | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    + @@ -74,7 +78,7 @@

    Install PIL within a virtualenv on Snow Le
  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2010/python-tab-completion/index.html b/build/code/2010/python-tab-completion/index.html index 5eafc11..7ed32c5 100644 --- a/build/code/2010/python-tab-completion/index.html +++ b/build/code/2010/python-tab-completion/index.html @@ -6,7 +6,7 @@ Enabling tab completion in OS X Python interactive interpreter | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    + @@ -71,7 +75,7 @@

    Enabling tab completion in OS X
  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2010/symfony-nginx-php-fpm/index.html b/build/code/2010/symfony-nginx-php-fpm/index.html index ab5238c..b9f0ce8 100644 --- a/build/code/2010/symfony-nginx-php-fpm/index.html +++ b/build/code/2010/symfony-nginx-php-fpm/index.html @@ -6,7 +6,7 @@ Hosting a Symfony app on NginX using PHP-FPM | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    +
    -

    Hosting a Symfony app on NginX using PHP-FPM »

    +

    Hosting a Symfony app on NginX using PHP-FPM

    +

    I recently had to make a capacity planning study for a client of mine for which I've been developing a Symfony application. Despite the hardware/cloud architecture problem, I also tried to optimize application performances from a webserver software point of view (the application is currently hosted on a standard Apache2 server using mod_php5). I dug Google a bit and found some very enthusiastic comments on PHP-FPM, a PHP FastCGI implementation and the NginX web server.

    While PHP-FPM has just made it to PHP core in version 5.3.3, the OS version of the linux server we are using, Ubuntu 10.04 LTS, only ships with 5.3.2. Fortunately, Brian Mercer released a PHP-FPM sapi for these particular OS and PHP versions.

    So installing PHP and PHP-FPM on Ubuntu Lucid Lynx is as easy as:

    @@ -130,7 +131,10 @@

    Sources

    @@ -141,7 +145,7 @@

    Sources

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2011/clever-settings/index.html b/build/code/2011/clever-settings/index.html index 728aca1..1c0ad02 100644 --- a/build/code/2011/clever-settings/index.html +++ b/build/code/2011/clever-settings/index.html @@ -6,7 +6,7 @@ Une autre façon de gérer ses settings d'application Django | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    +
    -

    Une autre façon de gérer ses settings d'application Django »

    +

    Une autre façon de gérer ses settings d'application Django

    +

    Je travaille actuellement sur une application Django que je compte publier sous licence libre, et je suis confronté au problème classique de l'exposition de la configuration au développeur via les settings de son propre projet.

    Classiquement, on a tendance à proposer les settings "à plat", dans le module settings.py du projet :

    # settings.py
    @@ -80,7 +81,10 @@ 

    Une autre façon de gérer ses setting

    Merci de votre attention, et à bientôt pour de nouvelle aventures.

    @@ -91,7 +95,7 @@

    Une autre façon de gérer ses setting
  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2011/djt/index.html b/build/code/2011/djt/index.html index 3992bca..c2b9db0 100644 --- a/build/code/2011/djt/index.html +++ b/build/code/2011/djt/index.html @@ -6,7 +6,7 @@ Creating a Custom Panel for the Django Debug Toolbar | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    +
    -

    Creating a Custom Panel for the Django Debug Toolbar »

    +

    Creating a Custom Panel for the Django Debug Toolbar

    +

    Sometimes you work on stuff you don't really control, eg. when interacting with some mysterious SOAP server accross the Internets, and you'd appreciate a little help from the Django ecosystem to ease debugging.

    That's — you guessed it — my case currently, and I really appreciated being able to create my own custom panel for adding specific debugging capabilities to the awesome Django Debug Toolbar.

    Here's how I did, learning mainly from the code of the panels shipping with the DJT. I'm supposing you have installed and configured the DJT in your project already.

    @@ -90,7 +91,10 @@

    Creating a Custom Panel for the Django Debug Toolb

    Thanks for reading, happy ponying.

    @@ -101,7 +105,7 @@

    Creating a Custom Panel for the Django Debug Toolb
  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2011/index.html b/build/code/2011/index.html index 6738aaa..5dac736 100644 --- a/build/code/2011/index.html +++ b/build/code/2011/index.html @@ -6,7 +6,7 @@ Code | Nicolas Perriault - + @@ -26,23 +26,27 @@

    Hi, I'm Nicolas.

    -

    « Code » stuff published during 2011

    +

    Code | 2011

    • Setup Jenkins for working with a private repository | 2011-11-16
      - As I've just lost an hour and some hairs dealing with trying to setup a Jenkins project connected to a private repository hosted on ... read more + As I've just lost an hour and some hairs dealing with trying to setup a Jenkins project connected to a private repository hosted on ... +
    • Scrape and test any webpage using PhantomJS | 2011-08-27
      - Have you ever tried to scrape or harvest data from an existing website — I mean, even ajax-bloated ones? Did you ever attempt to test ... read more + Have you ever tried to scrape or harvest data from an existing website — I mean, even ajax-bloated ones? Did you ever attempt to test ... +
    • Une autre façon de gérer ses settings d'application Django | 2011-04-13
      - Je travaille actuellement sur une application Django que je compte publier sous licence libre, et je suis confronté au problème ... read more + Je travaille actuellement sur une application Django que je compte publier sous licence libre, et je suis confronté au problème ... +
    • Creating a Custom Panel for the Django Debug Toolbar | 2011-03-11
      - Sometimes you work on stuff you don't really control, eg. when interacting with some mysterious SOAP server accross the Internets, and ... read more + Sometimes you work on stuff you don't really control, eg. when interacting with some mysterious SOAP server accross the Internets, and ... +

    @@ -55,7 +59,7 @@

    « Code » stuff published during 2011

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2011/scrape-and-test-any-webpage-using-phantomjs/index.html b/build/code/2011/scrape-and-test-any-webpage-using-phantomjs/index.html index cc7dd78..b332a94 100644 --- a/build/code/2011/scrape-and-test-any-webpage-using-phantomjs/index.html +++ b/build/code/2011/scrape-and-test-any-webpage-using-phantomjs/index.html @@ -6,7 +6,7 @@ Scrape and test any webpage using PhantomJS | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    + @@ -236,7 +240,7 @@

    I CAN HAZ SCREENSHOTS

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/2011/setup-jenkins-github-private-repository-ubuntu/index.html b/build/code/2011/setup-jenkins-github-private-repository-ubuntu/index.html index 22c86e6..1683f45 100644 --- a/build/code/2011/setup-jenkins-github-private-repository-ubuntu/index.html +++ b/build/code/2011/setup-jenkins-github-private-repository-ubuntu/index.html @@ -6,7 +6,7 @@ Setup Jenkins for working with a private repository | Code | Nicolas Perriault - + @@ -27,11 +27,12 @@

    Hi, I'm Nicolas.

    -
    +
    -

    Setup Jenkins for working with a private repository »

    +

    Setup Jenkins for working with a private repository

    +

    As I've just lost an hour and some hairs dealing with trying to setup a Jenkins project connected to a private repository hosted on Github, I thought it's worth a quick blog post. I'm using Ubuntu.

    So first su as the jenkins user to create some SSH keypair:

    $ ssh-keygen -p
    @@ -47,10 +48,13 @@ 

    Setup J

    Notice that you're asked to allow github's hostname to be added to your known_hosts file: without completing this step, you're doomed.

    Now, in the Jenkins project configuration interface, set the private repository url using the git protocol, eg. git@github.com:username/reponame.git.

    That's it, Jenkins will be able to clone and use your private repo.

    -

    If you know a better way, I'm all ears.

    +

    If you know a better way, I'm all ears.

    @@ -61,7 +65,7 @@

    Setup J
  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/code/feed/index.html b/build/code/feed/index.html index 11a835b..4127cdc 100644 --- a/build/code/feed/index.html +++ b/build/code/feed/index.html @@ -5,8 +5,8 @@ http://nicolas.perriault.net Nicolas Perriault rants about whatever looks like a technology. en - Mon, 27 Feb 2012 17:53:40 +0000 - Mon, 27 Feb 2012 17:53:40 +0000 + Tue, 28 Feb 2012 08:35:25 +0000 + Tue, 28 Feb 2012 08:35:25 +0000 Setup Jenkins for working with a private repository @@ -26,7 +26,7 @@ <p>Notice that you're asked to allow github's hostname to be added to your <code>known_hosts</code> file: without completing this step, you're doomed.</p> <p>Now, in the Jenkins project configuration interface, set the private repository url using the <code>git</code> protocol, eg. <code>git@github.com:username/reponame.git</code>.</p> <p>That's it, Jenkins will be able to clone and use your private repo.</p> -<p>If you know a better way, I'm all ears.</p> +<p>If you know a better way, <a href="/contact/">I'm all ears</a>.</p> Wed, 16 Nov 2011 00:00:00 +0000 http://nicolas.perriault.net/code/2011/setup-jenkins-github-private-repository-ubuntu diff --git a/build/code/index.html b/build/code/index.html index 02b1126..fe115a7 100644 --- a/build/code/index.html +++ b/build/code/index.html @@ -6,7 +6,7 @@ Code | Nicolas Perriault - + @@ -30,27 +30,32 @@

    Hi, I'm Nicolas.

    not want to code your next project using the PHP programming language.

    Hope this sorts out any doubt and makes things crystal-clear.

    -

    Latest entries feed

    +

    Latest entries feed

    • Setup Jenkins for working with a private repository | 2011-11-16
      - As I've just lost an hour and some hairs dealing with trying to setup a Jenkins project connected to a private repository hosted on ... read more + As I've just lost an hour and some hairs dealing with trying to setup a Jenkins project connected to a private repository hosted on ... +
    • Scrape and test any webpage using PhantomJS | 2011-08-27
      - Have you ever tried to scrape or harvest data from an existing website — I mean, even ajax-bloated ones? Did you ever attempt to test ... read more + Have you ever tried to scrape or harvest data from an existing website — I mean, even ajax-bloated ones? Did you ever attempt to test ... +
    • Une autre façon de gérer ses settings d'application Django | 2011-04-13
      - Je travaille actuellement sur une application Django que je compte publier sous licence libre, et je suis confronté au problème ... read more + Je travaille actuellement sur une application Django que je compte publier sous licence libre, et je suis confronté au problème ... +
    • Creating a Custom Panel for the Django Debug Toolbar | 2011-03-11
      - Sometimes you work on stuff you don't really control, eg. when interacting with some mysterious SOAP server accross the Internets, and ... read more + Sometimes you work on stuff you don't really control, eg. when interacting with some mysterious SOAP server accross the Internets, and ... +
    • Enabling tab completion in OS X Python interactive interpreter | 2010-12-29
      - Python is awesome, and so is its native interactive interpreter. I discovered today that it can even provide autocompletion using a ... read more + Python is awesome, and so is its native interactive interpreter. I discovered today that it can even provide autocompletion using a ... +
    @@ -70,7 +75,7 @@

    Latest entries feed

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/contact/index.html b/build/contact/index.html index ffe92f9..2f11920 100644 --- a/build/contact/index.html +++ b/build/contact/index.html @@ -6,7 +6,7 @@ contact | Nicolas Perriault - + @@ -46,7 +46,7 @@

    Contact

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/feed/index.html b/build/feed/index.html index 1392d81..58e9557 100644 --- a/build/feed/index.html +++ b/build/feed/index.html @@ -5,16 +5,15 @@ http://nicolas.perriault.net Nicolas Perriault's personal website. en-us - Mon, 27 Feb 2012 17:53:40 +0000 - Mon, 27 Feb 2012 17:53:40 +0000 + Tue, 28 Feb 2012 08:35:25 +0000 + Tue, 28 Feb 2012 08:35:25 +0000 - plop - http://nicolas.perriault.net/test - <h2>plop</h2> -<p>At root.</p> - Sun, 19 Feb 2012 00:00:00 +0000 - http://nicolas.perriault.net/test + L'Espiguette + http://nicolas.perriault.net/photography/2012/l-espiguette + <p>Some oldies I never took the time to publish.</p> + Sun, 01 Jan 2012 00:00:00 +0000 + http://nicolas.perriault.net/photography/2012/l-espiguette Setup Jenkins for working with a private repository @@ -34,7 +33,7 @@ <p>Notice that you're asked to allow github's hostname to be added to your <code>known_hosts</code> file: without completing this step, you're doomed.</p> <p>Now, in the Jenkins project configuration interface, set the private repository url using the <code>git</code> protocol, eg. <code>git@github.com:username/reponame.git</code>.</p> <p>That's it, Jenkins will be able to clone and use your private repo.</p> -<p>If you know a better way, I'm all ears.</p> +<p>If you know a better way, <a href="/contact/">I'm all ears</a>.</p> Wed, 16 Nov 2011 00:00:00 +0000 http://nicolas.perriault.net/code/2011/setup-jenkins-github-private-repository-ubuntu diff --git a/build/index.html b/build/index.html index 35d7094..9fec90f 100644 --- a/build/index.html +++ b/build/index.html @@ -6,7 +6,7 @@ Home | Nicolas Perriault - + @@ -42,23 +42,28 @@

    Code feed

    • Setup Jenkins for working with a private repository | 2011-11-16
      - As I've just lost an hour and some hairs dealing with trying to setup a Jenkins project connected to a private repository hosted on ... read more + As I've just lost an hour and some hairs dealing with trying to setup a Jenkins project connected to a private repository hosted on ... +
    • Scrape and test any webpage using PhantomJS | 2011-08-27
      - Have you ever tried to scrape or harvest data from an existing website — I mean, even ajax-bloated ones? Did you ever attempt to test ... read more + Have you ever tried to scrape or harvest data from an existing website — I mean, even ajax-bloated ones? Did you ever attempt to test ... +
    • Une autre façon de gérer ses settings d'application Django | 2011-04-13
      - Je travaille actuellement sur une application Django que je compte publier sous licence libre, et je suis confronté au problème ... read more + Je travaille actuellement sur une application Django que je compte publier sous licence libre, et je suis confronté au problème ... +
    • Creating a Custom Panel for the Django Debug Toolbar | 2011-03-11
      - Sometimes you work on stuff you don't really control, eg. when interacting with some mysterious SOAP server accross the Internets, and ... read more + Sometimes you work on stuff you don't really control, eg. when interacting with some mysterious SOAP server accross the Internets, and ... +
    • Enabling tab completion in OS X Python interactive interpreter | 2010-12-29
      - Python is awesome, and so is its native interactive interpreter. I discovered today that it can even provide autocompletion using a ... read more + Python is awesome, and so is its native interactive interpreter. I discovered today that it can even provide autocompletion using a ... +
    @@ -69,7 +74,12 @@

    Code feed

    Photography feed

      -
    • No page (yet?)
    • +
    • + L'Espiguette | 2012-01-01
      + L'Espiguette by Nicolas Perriault + Some oldies I never took the time to publish. +
      +

    » See more Photography stuff

    @@ -81,15 +91,18 @@

    Carnet (en français) flux
  • Du Sud avec du Web dedans, et réciproquement | 2011-01-28
    - Ceux qui me connaissent le savent, je suis partisan d'une gestion intransigeante de la qualité sur le Web, et suis donc — comme ... read more + Ceux qui me connaissent le savent, je suis partisan d'une gestion intransigeante de la qualité sur le Web, et suis donc — comme ... +
  • Choisir son métier, arrêter de le (faire) subir | 2010-10-27
    - Je viens de finir la lecture de l'excellent billet de Thibault, « Dialogue avec un client ». Ce billet présente point pour point ma ... read more + Je viens de finir la lecture de l'excellent billet de Thibault, « Dialogue avec un client ». Ce billet présente point pour point ma ... +
  • De retour de Djangocong | 2010-04-26
    - Les rencontres Django francophones 2010, tenues à Marseille, viennent de s'achever. David Larlet m'ayant invité à y participer, j'y ai ... read more + Les rencontres Django francophones 2010, tenues à Marseille, viennent de s'achever. David Larlet m'ayant invité à y participer, j'y ai ... +
  • @@ -103,7 +116,7 @@

    Carnet (en français) fluxHome
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/build/photography/2012/index.html b/build/photography/2012/index.html new file mode 100644 index 0000000..cf39cc7 --- /dev/null +++ b/build/photography/2012/index.html @@ -0,0 +1,65 @@ + + + + + + Photography | Nicolas Perriault + + + + + + + + + + + +
    +
    +

    Hi, I'm Nicolas.

    + I code stuff. I take photos. I write rants. +
    +
    + +

    Photography | 2012

    +
      +
    • + L'Espiguette | 2012-01-01
      + L'Espiguette by Nicolas Perriault + Some oldies I never took the time to publish. +
      +
    • +
    +

    + Back to « Photography » +

    + +
    + + +
    + + + + \ No newline at end of file diff --git a/build/photography/2012/l-espiguette/index.html b/build/photography/2012/l-espiguette/index.html new file mode 100644 index 0000000..5c87b2b --- /dev/null +++ b/build/photography/2012/l-espiguette/index.html @@ -0,0 +1,74 @@ + + + + + + L'Espiguette | Photography | Nicolas Perriault + + + + + + + + + + + +
    +
    +

    Hi, I'm Nicolas.

    + I code stuff. I take photos. I write rants. +
    +
    + + + + + +
    + + +
    + + + + \ No newline at end of file diff --git a/build/photography/feed/index.html b/build/photography/feed/index.html index a019ee2..1893952 100644 --- a/build/photography/feed/index.html +++ b/build/photography/feed/index.html @@ -5,9 +5,16 @@ http://nicolas.perriault.net Nicolas Perriault photography. Or so called. en - Mon, 27 Feb 2012 17:53:40 +0000 - Mon, 27 Feb 2012 17:53:40 +0000 + Tue, 28 Feb 2012 08:35:25 +0000 + Tue, 28 Feb 2012 08:35:25 +0000 + + L'Espiguette + http://nicolas.perriault.net/photography/2012/l-espiguette + <p>Some oldies I never took the time to publish.</p> + Sun, 01 Jan 2012 00:00:00 +0000 + http://nicolas.perriault.net/photography/2012/l-espiguette + \ No newline at end of file diff --git a/build/photography/index.html b/build/photography/index.html index bd7f05d..3ffe587 100644 --- a/build/photography/index.html +++ b/build/photography/index.html @@ -6,7 +6,7 @@ Photography | Nicolas Perriault - + @@ -26,19 +26,40 @@

    Hi, I'm Nicolas.

    -

    Latest entries feed

    +

    + I don't pretend to be a photographer, even though I find myself quite enjoying + taking and processing pictures. For fun. +

    +

    + You can eventually subscribe to the + photography feed + or follow me on 500px. +

      -
    • No page (yet?)
    • +
    • + L'Espiguette | 2012-01-01
      + L'Espiguette by Nicolas Perriault + Some oldies I never took the time to publish. +
      +
    +

    + Browse the archives + + | 2012 + +

    + +
    diff --git a/build/static/css/style.css b/build/static/css/style.css index d4c8276..589592e 100644 --- a/build/static/css/style.css +++ b/build/static/css/style.css @@ -43,9 +43,10 @@ hr { border: none; color: #404041; text-align: center; - margin: 0 0 40px 0; + margin: 14px 0; } hr:after { + font-size: 14px; content: "✻ ✽ ✻"; } p { @@ -103,6 +104,9 @@ q:before, q:after { .contents article header h2 a { text-decoration: none; } +.contents article header h2 a:after { + content: "\00A0\00BB"; +} .contents article img { max-width: 100%; } @@ -111,20 +115,18 @@ q:before, q:after { font-style: italic; } .contents ul.item-list { - margin-left: 20px; padding: 0; list-style-type: none; } .contents ul.item-list li { margin-bottom: 14px; } -.contents ul.item-list li:before { - margin-left: -20px; - content: "✍\0020"; -} .contents ul.item-list li a { font-weight: bold; } +.contents ul.item-list li img { + max-width: 100%; +} .sidebar { position: fixed; top: 190px; @@ -143,6 +145,15 @@ q:before, q:after { font-weight: bold; text-decoration: none; } +.sidebar ul li a sup { + font-size: 14px; +} +.sidebar ul li a sup:before { + content: "\00A0("; +} +.sidebar ul li a sup:after { + content: ")"; +} .sidebar ul li a:focus, .sidebar ul li a:hover { color: #333334; text-decoration: none; @@ -198,6 +209,7 @@ body.photography .sidebar li.photography a:after { @media (max-width: 480px) { body { font-size: 16px; + line-height: 20px; padding: 10px; width: auto; } @@ -243,7 +255,7 @@ body.photography .sidebar li.photography a:after { } body .sidebar { position: inherit; - top: none; + top: inherit; margin: 0; width: 100%; text-align: center; diff --git a/build/static/humans.txt b/build/static/humans.txt index 0891156..393fce7 100644 --- a/build/static/humans.txt +++ b/build/static/humans.txt @@ -7,6 +7,3 @@ Site: http://nicolas.perriault.net/ Twitter: http://twitter.com/n1k0 Location: Montpellier, France - -/* THANKS */ - Names (& URL): \ No newline at end of file diff --git a/build/static/less/style.less b/build/static/less/style.less index 3f68a8c..9682e0a 100644 --- a/build/static/less/style.less +++ b/build/static/less/style.less @@ -52,12 +52,13 @@ h1, h2, h3, h4, h5, h6 { hr { &:after { + font-size: @baseHeight; content: "✻ ✽ ✻"; } border: none; color: lighten(@textColor, 5%); text-align: center; - margin: 0 0 40px 0; + margin: @baseHeight 0; } p { @@ -144,6 +145,7 @@ q:before, q:after { header h2 { a { text-decoration: none; + .arrow-suffixed; } } img { @@ -155,19 +157,16 @@ q:before, q:after { } } ul.item-list { - @width: 20px; - margin-left: @width; padding: 0; list-style-type: none; li { margin-bottom: @baseHeight; - &:before { - margin-left: -@width; - content: "✍\0020"; - } a { font-weight: bold; } + img { + max-width: 100%; + } } } } @@ -186,6 +185,15 @@ q:before, q:after { color: @lightGrey; font-weight: bold; text-decoration: none; + sup { + &:before { + content: "\00A0("; + } + &:after { + content: ")"; + } + font-size: 14px; + } } a:focus, a:hover { .active; @@ -246,6 +254,7 @@ body.photography { @media (max-width: 480px) { body { font-size: 16px; + line-height: 20px; padding: 10px; width: auto; .main-title { @@ -297,7 +306,7 @@ body.photography { } .sidebar { position: inherit; - top: none; + top: inherit; margin: 0; width: 100%; text-align: center; diff --git a/build/static/packed.css b/build/static/packed.css index 526f71a..832f6ac 100644 --- a/build/static/packed.css +++ b/build/static/packed.css @@ -1 +1 @@ -body{background-color:#fafafa;width:960px;margin:0 auto;padding:40px 20px 0;font-family:Palatino,"Hoefler Text",Georgia,serif;font-size:19px;line-height:28px;color:#333334}a{color:#555556}blockquote{font-style:italic;border-left:7px solid #eee;padding-left:14px}code,pre{font-family:Consolas,Monaco,"Courier New",monospace;font-size:90%;color:#555;line-height:21px}h1,h2,h3,h4,h5,h6{font-weight:bold;line-height:30.800000000000004px}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:#333334}hr{border:none;color:#404041;text-align:center;margin:0 0 40px 0}hr:after{content:"✻ ✽ ✻"}p{line-height:28px;margin:28px 0}pre{padding:14px;color:#eee;background:#000;border-radius:8px;-webkit-border-radius:8px;-moz-border-radius:8px;white-space:pre;overflow:auto}pre code{color:#eee}q:before,q:after{content:""}.active{color:#333334;text-decoration:none}.arrow-suffixed:after{content:"\00A0\00BB"}.main-title{margin-left:300px;margin-top:56px;padding-bottom:14px}.main-title h1{font-size:56px;line-height:14px}.main-title h1 a{text-decoration:none}.main-title small{display:block;font-size:28px;color:#aaaaab}.contents{margin-left:300px;min-height:300px;margin-bottom:1em}.contents h1{font-size:38px}.contents article header h2 a{text-decoration:none}.contents article img{max-width:100%}.contents article aside{text-align:right;font-style:italic}.contents ul.item-list{margin-left:20px;padding:0;list-style-type:none}.contents ul.item-list li{margin-bottom:14px}.contents ul.item-list li:before{margin-left:-20px;content:"✍\0020"}.contents ul.item-list li a{font-weight:bold}.sidebar{position:fixed;top:190px;width:250px}.sidebar ul{list-style-type:none}.sidebar ul li{font-size:28px;line-height:41.5px;text-align:right}.sidebar ul li a{color:#aaaaab;font-weight:bold;text-decoration:none}.sidebar ul li a:focus,.sidebar ul li a:hover{color:#333334;text-decoration:none}.site-footer{clear:both;margin-left:300px;text-align:center;font-size:16.8px}.activeSection{color:#333334;text-decoration:none}.activeSection:after{content:"\00A0\00BB"}body.code .sidebar li.code a{color:#333334;text-decoration:none}body.code .sidebar li.code a:after{content:"\00A0\00BB"}body.carnet .sidebar li.carnet a{color:#333334;text-decoration:none}body.carnet .sidebar li.carnet a:after{content:"\00A0\00BB"}body.contact .sidebar li.contact a{color:#333334;text-decoration:none}body.contact .sidebar li.contact a:after{content:"\00A0\00BB"}body.home .sidebar li.home a{color:#333334;text-decoration:none}body.home .sidebar li.home a:after{content:"\00A0\00BB"}body.photography .sidebar li.photography a{color:#333334;text-decoration:none}body.photography .sidebar li.photography a:after{content:"\00A0\00BB"}@media(max-width:480px){body{font-size:16px;padding:10px;width:auto}body .main-title{margin:0}body .main-title h1{font-size:40px}body .main-title small{font-size:20px}body .sidebar ul{margin:0;padding:0}body .sidebar ul li{display:inline;padding-right:16px}body .site-footer{margin-left:0;text-align:center}}@media(min-width:481px) and (max-width:768px){body{font-size:17px}}@media(max-width:768px){body{width:auto}body .contents{margin-left:0}body .main-title{margin-left:0}body .main-title h2{font-size:20px}body .sidebar{position:inherit;top:none;margin:0;width:100%;text-align:center}body .sidebar li{display:inline;padding-right:16px}body .site-footer{margin-left:0}}@media(min-width:768px) and (max-width:960px){body{width:768px}body .contents{margin-left:200px}body .main-title{margin-left:200px}body .main-title h2{font-size:20px}body .contents{margin-left:200px}body .sidebar{width:150px}body .sidebar ul{padding:0}body .site-footer{text-align:center;margin-left:200px}}@media(max-width:960px){}@media(min-width:960px) and (max-width:1200px){}@media(min-width:1200px){}.str{color:#EC7600}.kwd{color:#93C763}.com{color:#66747B}.typ{color:#678CB1}.lit{color:#FACD22}.pun{color:#F1F2F3}.pln{color:#F1F2F3}.tag{color:#8AC763}.atn{color:#E0E2E4}.atv{color:#EC7600}.dec{color:purple}pre.prettyprint{border:0 solid #888}ol.linenums{margin-top:0;margin-bottom:0}.prettyprint{background:#000}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{color:#555}li.L1,li.L3,li.L5,li.L7,li.L9{background:#111}@media print{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun{color:#440}.pln{color:#000}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}} \ No newline at end of file +body{background-color:#fafafa;width:960px;margin:0 auto;padding:40px 20px 0;font-family:Palatino,"Hoefler Text",Georgia,serif;font-size:19px;line-height:28px;color:#333334}a{color:#555556}blockquote{font-style:italic;border-left:7px solid #eee;padding-left:14px}code,pre{font-family:Consolas,Monaco,"Courier New",monospace;font-size:90%;color:#555;line-height:21px}h1,h2,h3,h4,h5,h6{font-weight:bold;line-height:30.800000000000004px}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:#333334}hr{border:none;color:#404041;text-align:center;margin:0 0 40px 0}hr:after{content:"✻ ✽ ✻"}p{line-height:28px;margin:28px 0}pre{padding:14px;color:#eee;background:#000;border-radius:8px;-webkit-border-radius:8px;-moz-border-radius:8px;white-space:pre;overflow:auto}pre code{color:#eee}q:before,q:after{content:""}.active{color:#333334;text-decoration:none}.arrow-suffixed:after{content:"\00A0\00BB"}.main-title{margin-left:300px;margin-top:56px;padding-bottom:14px}.main-title h1{font-size:56px;line-height:14px}.main-title h1 a{text-decoration:none}.main-title small{display:block;font-size:28px;color:#aaaaab}.contents{margin-left:300px;min-height:300px;margin-bottom:1em}.contents h1{font-size:38px}.contents article header h2 a{text-decoration:none}.contents article img{max-width:100%}.contents article aside{text-align:right;font-style:italic}.contents ul.item-list{padding:0;list-style-type:none}.contents ul.item-list li{margin-bottom:14px}.contents ul.item-list li a{font-weight:bold}.sidebar{position:fixed;top:190px;width:250px}.sidebar ul{list-style-type:none}.sidebar ul li{font-size:28px;line-height:41.5px;text-align:right}.sidebar ul li a{color:#aaaaab;font-weight:bold;text-decoration:none}.sidebar ul li a:focus,.sidebar ul li a:hover{color:#333334;text-decoration:none}.site-footer{clear:both;margin-left:300px;text-align:center;font-size:16.8px}.activeSection{color:#333334;text-decoration:none}.activeSection:after{content:"\00A0\00BB"}body.code .sidebar li.code a{color:#333334;text-decoration:none}body.code .sidebar li.code a:after{content:"\00A0\00BB"}body.carnet .sidebar li.carnet a{color:#333334;text-decoration:none}body.carnet .sidebar li.carnet a:after{content:"\00A0\00BB"}body.contact .sidebar li.contact a{color:#333334;text-decoration:none}body.contact .sidebar li.contact a:after{content:"\00A0\00BB"}body.home .sidebar li.home a{color:#333334;text-decoration:none}body.home .sidebar li.home a:after{content:"\00A0\00BB"}body.photography .sidebar li.photography a{color:#333334;text-decoration:none}body.photography .sidebar li.photography a:after{content:"\00A0\00BB"}@media(max-width:480px){body{font-size:16px;padding:10px;width:auto}body .main-title{margin:0}body .main-title h1{font-size:40px}body .main-title small{font-size:20px}body .sidebar ul{margin:0;padding:0}body .sidebar ul li{display:inline;padding-right:16px}body .site-footer{margin-left:0;text-align:center}}@media(min-width:481px) and (max-width:768px){body{font-size:17px}}@media(max-width:768px){body{width:auto}body .contents{margin-left:0}body .main-title{margin-left:0}body .main-title h2{font-size:20px}body .sidebar{position:inherit;top:none;margin:0;width:100%;text-align:center}body .sidebar li{display:inline;padding-right:16px}body .site-footer{margin-left:0}}@media(min-width:768px) and (max-width:960px){body{width:768px}body .contents{margin-left:200px}body .main-title{margin-left:200px}body .main-title h2{font-size:20px}body .contents{margin-left:200px}body .sidebar{width:150px}body .sidebar ul{padding:0}body .site-footer{text-align:center;margin-left:200px}}@media(max-width:960px){}@media(min-width:960px) and (max-width:1200px){}@media(min-width:1200px){}.str{color:#EC7600}.kwd{color:#93C763}.com{color:#66747B}.typ{color:#678CB1}.lit{color:#FACD22}.pun{color:#F1F2F3}.pln{color:#F1F2F3}.tag{color:#8AC763}.atn{color:#E0E2E4}.atv{color:#EC7600}.dec{color:purple}pre.prettyprint{border:0 solid #888}ol.linenums{margin-top:0;margin-bottom:0}.prettyprint{background:#000}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{color:#555}li.L1,li.L3,li.L5,li.L7,li.L9{background:#111}@media print{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun{color:#440}.pln{color:#000}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}} \ No newline at end of file diff --git a/pages/code/2011/setup-jenkins-github-private-repository-ubuntu.md b/pages/code/2011/setup-jenkins-github-private-repository-ubuntu.md index 97427b6..6f07782 100644 --- a/pages/code/2011/setup-jenkins-github-private-repository-ubuntu.md +++ b/pages/code/2011/setup-jenkins-github-private-repository-ubuntu.md @@ -25,4 +25,4 @@ Now, in the Jenkins project configuration interface, set the private repository That's it, Jenkins will be able to clone and use your private repo. -If you know a better way, I'm all ears. \ No newline at end of file +If you know a better way, [I'm all ears](/contact/). \ No newline at end of file diff --git a/pages/photography/2012/l-espiguette.md b/pages/photography/2012/l-espiguette.md new file mode 100644 index 0000000..101eace --- /dev/null +++ b/pages/photography/2012/l-espiguette.md @@ -0,0 +1,8 @@ +title: L'Espiguette +type: photo +image_url: http://pcdn.500px.net/5114175/4876729afb770c017069b68f786b2801c1d072de/4.jpg +image_link: http://500px.com/photo/5114175 +date: 2012-01-01 +published: true + +Some oldies I never took the time to publish. \ No newline at end of file diff --git a/pages/test.md b/pages/test.md deleted file mode 100644 index e78ee44..0000000 --- a/pages/test.md +++ /dev/null @@ -1,7 +0,0 @@ -title: plop -date: 2012-02-19 -published: true - -## plop - -At root. diff --git a/rsync_exclude.txt b/rsync_exclude.txt new file mode 100644 index 0000000..fc70aca --- /dev/null +++ b/rsync_exclude.txt @@ -0,0 +1,20 @@ +# Dotstuff, crap +.buildpath +.DS_Store +.project +.settings +*.sublime-* +thumbs.db +*.kpf +*.tmproj +.webassets-cache + +# SCM files +.arch-params +.bzr +_darcs +.git +.hg +.monotone +.svn +CVS diff --git a/site b/site index 5da8c79..d61157f 100755 --- a/site +++ b/site @@ -47,6 +47,8 @@ def get_pages(pages, offset=None, limit=None, section=None, year=None): if year: articles = [p for p in articles if p.meta.get('date').year == year] articles = sorted(articles, reverse=True, key=lambda p: p.meta.get('date')) + for article in articles: + article.meta['section'] = article.path.split('/')[0] if offset and limit: return articles[offset:limit] elif limit: @@ -116,13 +118,16 @@ def index(): @app.route('//') def page(path): + # compute current "section" from path section = path.split('/')[0] page = pages.get_or_404(path) + # ensure an accurate "section" meta is available + page.meta['section'] = page.meta.get('section', section) # allow preview of unpublished stuff in DEBUG mode if not DEBUG and not page.meta.get('published', False): abort(404) template = page.meta.get('template', '%s/page.html' % section) - return render_template(template, page=page) + return render_template(template, page=page, section=section) @app.route('//') @@ -172,7 +177,8 @@ def build(): @command def deploy(): build() - local("rsync -avz -e ssh ./build/ akeiaws:/var/www/nperriault") + local("rsync -avz -e ssh --exclude-from=rsync_exclude.txt " + "./build/ akeiaws:/var/www/nperriault") @command diff --git a/static/css/style.css b/static/css/style.css index d4c8276..589592e 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -43,9 +43,10 @@ hr { border: none; color: #404041; text-align: center; - margin: 0 0 40px 0; + margin: 14px 0; } hr:after { + font-size: 14px; content: "✻ ✽ ✻"; } p { @@ -103,6 +104,9 @@ q:before, q:after { .contents article header h2 a { text-decoration: none; } +.contents article header h2 a:after { + content: "\00A0\00BB"; +} .contents article img { max-width: 100%; } @@ -111,20 +115,18 @@ q:before, q:after { font-style: italic; } .contents ul.item-list { - margin-left: 20px; padding: 0; list-style-type: none; } .contents ul.item-list li { margin-bottom: 14px; } -.contents ul.item-list li:before { - margin-left: -20px; - content: "✍\0020"; -} .contents ul.item-list li a { font-weight: bold; } +.contents ul.item-list li img { + max-width: 100%; +} .sidebar { position: fixed; top: 190px; @@ -143,6 +145,15 @@ q:before, q:after { font-weight: bold; text-decoration: none; } +.sidebar ul li a sup { + font-size: 14px; +} +.sidebar ul li a sup:before { + content: "\00A0("; +} +.sidebar ul li a sup:after { + content: ")"; +} .sidebar ul li a:focus, .sidebar ul li a:hover { color: #333334; text-decoration: none; @@ -198,6 +209,7 @@ body.photography .sidebar li.photography a:after { @media (max-width: 480px) { body { font-size: 16px; + line-height: 20px; padding: 10px; width: auto; } @@ -243,7 +255,7 @@ body.photography .sidebar li.photography a:after { } body .sidebar { position: inherit; - top: none; + top: inherit; margin: 0; width: 100%; text-align: center; diff --git a/static/humans.txt b/static/humans.txt index 0891156..393fce7 100644 --- a/static/humans.txt +++ b/static/humans.txt @@ -7,6 +7,3 @@ Site: http://nicolas.perriault.net/ Twitter: http://twitter.com/n1k0 Location: Montpellier, France - -/* THANKS */ - Names (& URL): \ No newline at end of file diff --git a/static/less/style.less b/static/less/style.less index 3f68a8c..9682e0a 100644 --- a/static/less/style.less +++ b/static/less/style.less @@ -52,12 +52,13 @@ h1, h2, h3, h4, h5, h6 { hr { &:after { + font-size: @baseHeight; content: "✻ ✽ ✻"; } border: none; color: lighten(@textColor, 5%); text-align: center; - margin: 0 0 40px 0; + margin: @baseHeight 0; } p { @@ -144,6 +145,7 @@ q:before, q:after { header h2 { a { text-decoration: none; + .arrow-suffixed; } } img { @@ -155,19 +157,16 @@ q:before, q:after { } } ul.item-list { - @width: 20px; - margin-left: @width; padding: 0; list-style-type: none; li { margin-bottom: @baseHeight; - &:before { - margin-left: -@width; - content: "✍\0020"; - } a { font-weight: bold; } + img { + max-width: 100%; + } } } } @@ -186,6 +185,15 @@ q:before, q:after { color: @lightGrey; font-weight: bold; text-decoration: none; + sup { + &:before { + content: "\00A0("; + } + &:after { + content: ")"; + } + font-size: 14px; + } } a:focus, a:hover { .active; @@ -246,6 +254,7 @@ body.photography { @media (max-width: 480px) { body { font-size: 16px; + line-height: 20px; padding: 10px; width: auto; .main-title { @@ -297,7 +306,7 @@ body.photography { } .sidebar { position: inherit; - top: none; + top: inherit; margin: 0; width: 100%; text-align: center; diff --git a/static/packed.css b/static/packed.css index 526f71a..cf880dc 100644 --- a/static/packed.css +++ b/static/packed.css @@ -1 +1 @@ -body{background-color:#fafafa;width:960px;margin:0 auto;padding:40px 20px 0;font-family:Palatino,"Hoefler Text",Georgia,serif;font-size:19px;line-height:28px;color:#333334}a{color:#555556}blockquote{font-style:italic;border-left:7px solid #eee;padding-left:14px}code,pre{font-family:Consolas,Monaco,"Courier New",monospace;font-size:90%;color:#555;line-height:21px}h1,h2,h3,h4,h5,h6{font-weight:bold;line-height:30.800000000000004px}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:#333334}hr{border:none;color:#404041;text-align:center;margin:0 0 40px 0}hr:after{content:"✻ ✽ ✻"}p{line-height:28px;margin:28px 0}pre{padding:14px;color:#eee;background:#000;border-radius:8px;-webkit-border-radius:8px;-moz-border-radius:8px;white-space:pre;overflow:auto}pre code{color:#eee}q:before,q:after{content:""}.active{color:#333334;text-decoration:none}.arrow-suffixed:after{content:"\00A0\00BB"}.main-title{margin-left:300px;margin-top:56px;padding-bottom:14px}.main-title h1{font-size:56px;line-height:14px}.main-title h1 a{text-decoration:none}.main-title small{display:block;font-size:28px;color:#aaaaab}.contents{margin-left:300px;min-height:300px;margin-bottom:1em}.contents h1{font-size:38px}.contents article header h2 a{text-decoration:none}.contents article img{max-width:100%}.contents article aside{text-align:right;font-style:italic}.contents ul.item-list{margin-left:20px;padding:0;list-style-type:none}.contents ul.item-list li{margin-bottom:14px}.contents ul.item-list li:before{margin-left:-20px;content:"✍\0020"}.contents ul.item-list li a{font-weight:bold}.sidebar{position:fixed;top:190px;width:250px}.sidebar ul{list-style-type:none}.sidebar ul li{font-size:28px;line-height:41.5px;text-align:right}.sidebar ul li a{color:#aaaaab;font-weight:bold;text-decoration:none}.sidebar ul li a:focus,.sidebar ul li a:hover{color:#333334;text-decoration:none}.site-footer{clear:both;margin-left:300px;text-align:center;font-size:16.8px}.activeSection{color:#333334;text-decoration:none}.activeSection:after{content:"\00A0\00BB"}body.code .sidebar li.code a{color:#333334;text-decoration:none}body.code .sidebar li.code a:after{content:"\00A0\00BB"}body.carnet .sidebar li.carnet a{color:#333334;text-decoration:none}body.carnet .sidebar li.carnet a:after{content:"\00A0\00BB"}body.contact .sidebar li.contact a{color:#333334;text-decoration:none}body.contact .sidebar li.contact a:after{content:"\00A0\00BB"}body.home .sidebar li.home a{color:#333334;text-decoration:none}body.home .sidebar li.home a:after{content:"\00A0\00BB"}body.photography .sidebar li.photography a{color:#333334;text-decoration:none}body.photography .sidebar li.photography a:after{content:"\00A0\00BB"}@media(max-width:480px){body{font-size:16px;padding:10px;width:auto}body .main-title{margin:0}body .main-title h1{font-size:40px}body .main-title small{font-size:20px}body .sidebar ul{margin:0;padding:0}body .sidebar ul li{display:inline;padding-right:16px}body .site-footer{margin-left:0;text-align:center}}@media(min-width:481px) and (max-width:768px){body{font-size:17px}}@media(max-width:768px){body{width:auto}body .contents{margin-left:0}body .main-title{margin-left:0}body .main-title h2{font-size:20px}body .sidebar{position:inherit;top:none;margin:0;width:100%;text-align:center}body .sidebar li{display:inline;padding-right:16px}body .site-footer{margin-left:0}}@media(min-width:768px) and (max-width:960px){body{width:768px}body .contents{margin-left:200px}body .main-title{margin-left:200px}body .main-title h2{font-size:20px}body .contents{margin-left:200px}body .sidebar{width:150px}body .sidebar ul{padding:0}body .site-footer{text-align:center;margin-left:200px}}@media(max-width:960px){}@media(min-width:960px) and (max-width:1200px){}@media(min-width:1200px){}.str{color:#EC7600}.kwd{color:#93C763}.com{color:#66747B}.typ{color:#678CB1}.lit{color:#FACD22}.pun{color:#F1F2F3}.pln{color:#F1F2F3}.tag{color:#8AC763}.atn{color:#E0E2E4}.atv{color:#EC7600}.dec{color:purple}pre.prettyprint{border:0 solid #888}ol.linenums{margin-top:0;margin-bottom:0}.prettyprint{background:#000}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{color:#555}li.L1,li.L3,li.L5,li.L7,li.L9{background:#111}@media print{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun{color:#440}.pln{color:#000}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}} \ No newline at end of file +body{background-color:#fafafa;width:960px;margin:0 auto;padding:40px 20px 0;font-family:Palatino,"Hoefler Text",Georgia,serif;font-size:19px;line-height:28px;color:#333334}a{color:#555556}blockquote{font-style:italic;border-left:7px solid #eee;padding-left:14px}code,pre{font-family:Consolas,Monaco,"Courier New",monospace;font-size:90%;color:#555;line-height:21px}h1,h2,h3,h4,h5,h6{font-weight:bold;line-height:30.800000000000004px}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:#333334}hr{border:none;color:#404041;text-align:center;margin:14px 0}hr:after{font-size:14px;content:"✻ ✽ ✻"}p{line-height:28px;margin:28px 0}pre{padding:14px;color:#eee;background:#000;border-radius:8px;-webkit-border-radius:8px;-moz-border-radius:8px;white-space:pre;overflow:auto}pre code{color:#eee}q:before,q:after{content:""}.active{color:#333334;text-decoration:none}.arrow-suffixed:after{content:"\00A0\00BB"}.main-title{margin-left:300px;margin-top:56px;padding-bottom:14px}.main-title h1{font-size:56px;line-height:14px}.main-title h1 a{text-decoration:none}.main-title small{display:block;font-size:28px;color:#aaaaab}.contents{margin-left:300px;min-height:300px;margin-bottom:1em}.contents h1{font-size:38px}.contents article header h2 a{text-decoration:none}.contents article header h2 a:after{content:"\00A0\00BB"}.contents article img{max-width:100%}.contents article aside{text-align:right;font-style:italic}.contents ul.item-list{padding:0;list-style-type:none}.contents ul.item-list li{margin-bottom:14px}.contents ul.item-list li a{font-weight:bold}.contents ul.item-list li img{max-width:100%}.sidebar{position:fixed;top:190px;width:250px}.sidebar ul{list-style-type:none}.sidebar ul li{font-size:28px;line-height:41.5px;text-align:right}.sidebar ul li a{color:#aaaaab;font-weight:bold;text-decoration:none}.sidebar ul li a sup{font-size:14px}.sidebar ul li a sup:before{content:"\00A0("}.sidebar ul li a sup:after{content:")"}.sidebar ul li a:focus,.sidebar ul li a:hover{color:#333334;text-decoration:none}.site-footer{clear:both;margin-left:300px;text-align:center;font-size:16.8px}.activeSection{color:#333334;text-decoration:none}.activeSection:after{content:"\00A0\00BB"}body.code .sidebar li.code a{color:#333334;text-decoration:none}body.code .sidebar li.code a:after{content:"\00A0\00BB"}body.carnet .sidebar li.carnet a{color:#333334;text-decoration:none}body.carnet .sidebar li.carnet a:after{content:"\00A0\00BB"}body.contact .sidebar li.contact a{color:#333334;text-decoration:none}body.contact .sidebar li.contact a:after{content:"\00A0\00BB"}body.home .sidebar li.home a{color:#333334;text-decoration:none}body.home .sidebar li.home a:after{content:"\00A0\00BB"}body.photography .sidebar li.photography a{color:#333334;text-decoration:none}body.photography .sidebar li.photography a:after{content:"\00A0\00BB"}@media(max-width:480px){body{font-size:16px;line-height:20px;padding:10px;width:auto}body .main-title{margin:0}body .main-title h1{font-size:40px}body .main-title small{font-size:20px}body .sidebar ul{margin:0;padding:0}body .sidebar ul li{display:inline;padding-right:16px}body .site-footer{margin-left:0;text-align:center}}@media(min-width:481px) and (max-width:768px){body{font-size:17px}}@media(max-width:768px){body{width:auto}body .contents{margin-left:0}body .main-title{margin-left:0}body .main-title h2{font-size:20px}body .sidebar{position:inherit;top:inherit;margin:0;width:100%;text-align:center}body .sidebar li{display:inline;padding-right:16px}body .site-footer{margin-left:0}}@media(min-width:768px) and (max-width:960px){body{width:768px}body .contents{margin-left:200px}body .main-title{margin-left:200px}body .main-title h2{font-size:20px}body .contents{margin-left:200px}body .sidebar{width:150px}body .sidebar ul{padding:0}body .site-footer{text-align:center;margin-left:200px}}@media(max-width:960px){}@media(min-width:960px) and (max-width:1200px){}@media(min-width:1200px){}.str{color:#EC7600}.kwd{color:#93C763}.com{color:#66747B}.typ{color:#678CB1}.lit{color:#FACD22}.pun{color:#F1F2F3}.pln{color:#F1F2F3}.tag{color:#8AC763}.atn{color:#E0E2E4}.atv{color:#EC7600}.dec{color:purple}pre.prettyprint{border:0 solid #888}ol.linenums{margin-top:0;margin-bottom:0}.prettyprint{background:#000}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{color:#555}li.L1,li.L3,li.L5,li.L7,li.L9{background:#111}@media print{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun{color:#440}.pln{color:#000}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}} \ No newline at end of file diff --git a/templates/_list.html b/templates/_list.html index a31c920..84d4629 100644 --- a/templates/_list.html +++ b/templates/_list.html @@ -2,13 +2,21 @@ {%- for page in pages %}
  • {{ page.title }} | {{ page.date }}
    + {%- if page.meta.type == "photo" and page.meta.image_url %} + {%- if page.meta.image_link %} + {{ page.meta.title }} by Nicolas Perriault + {%- else %} + {{ page.meta.title }} by Nicolas Perriault + {%- endif %} + {%- endif %} {%- if page.meta.summary and page.meta.summary|striptags|trim %} {{- page.summary|trim }} {%- elif page.html|striptags|trim -%} {{- page.html|striptags|trim|truncate(135) }} {%- endif -%} - read more + +
  • {%- else %}
  • No page (yet?)
  • diff --git a/templates/base.html b/templates/base.html index 9a3998e..b9c02b1 100644 --- a/templates/base.html +++ b/templates/base.html @@ -39,7 +39,7 @@

    Hi, I'm Nicolas.

  • Home
  • Code
  • Photography
  • -
  • Carnet(fr)
  • +
  • Carnetfr
  • Contact
  • diff --git a/templates/carnet/archives.html b/templates/carnet/archives.html index 0e565cb..cee4a6e 100644 --- a/templates/carnet/archives.html +++ b/templates/carnet/archives.html @@ -1,7 +1,7 @@ {% extends "carnet/base.html" %} {% block contents %} -

    Billets publiés durant {{ year }}

    +

    Carnet | {{ year }}

    {% include "_list.html" %}

    Retour au Carnet diff --git a/templates/carnet/index.html b/templates/carnet/index.html index d70a2d0..a310907 100644 --- a/templates/carnet/index.html +++ b/templates/carnet/index.html @@ -7,7 +7,7 @@ métier, j'ai choisi de tenir ce carnet en français. Mind you.

    -

    Derniers billets flux

    +

    Derniers billets flux

    {% include "_list.html" %} {% if years|length %}

    diff --git a/templates/code/archives.html b/templates/code/archives.html index edde104..89a2877 100644 --- a/templates/code/archives.html +++ b/templates/code/archives.html @@ -1,7 +1,7 @@ {% extends "code/base.html" %} {% block contents %} -

    « Code » stuff published during {{ year }}

    +

    Code | {{ year }}

    {% include "_list.html" %}

    Back to « Code » diff --git a/templates/code/index.html b/templates/code/index.html index 667c716..81ddea5 100644 --- a/templates/code/index.html +++ b/templates/code/index.html @@ -8,7 +8,7 @@ Hope this sorts out any doubt and makes things crystal-clear. {% endfilter %} -

    Latest entries feed

    +

    Latest entries feed

    {% include "_list.html" %} {% if years|length %}

    diff --git a/templates/page.html b/templates/page.html index 1551d92..11b34c2 100644 --- a/templates/page.html +++ b/templates/page.html @@ -1,11 +1,21 @@ -

    + \ No newline at end of file diff --git a/templates/photography/archives.html b/templates/photography/archives.html index 250185c..9761766 100644 --- a/templates/photography/archives.html +++ b/templates/photography/archives.html @@ -1,7 +1,7 @@ {% extends "photography/base.html" %} {% block contents %} -

    Photography stuff published during {{ year }}

    +

    Photography | {{ year }}

    {% include "_list.html" %}

    Back to « Photography » diff --git a/templates/photography/index.html b/templates/photography/index.html index 33a1230..4dd02dc 100644 --- a/templates/photography/index.html +++ b/templates/photography/index.html @@ -1,8 +1,17 @@ {% extends "photography/base.html" %} {% block contents %} -

    Latest entries feed

    +

    + I don't pretend to be a photographer, even though I find myself quite enjoying + taking and processing pictures. For fun. +

    +

    + You can eventually subscribe to the + photography feed + or follow me on 500px. +

    {% include "_list.html" %} + {% if years|length %}

    Browse the archives