Vrac de mini-messages n°14 : Debian, Python, django, veille techno, startup et communauté FOSS

april, brebis, debian-fr, planet-cullt, planet-libre, python, vrac-mini-messages

Suivez-moi aussi sur Identi.ca ou sur Twitter 

Comme chaque semaine, voici les dents/tweets intéressants de la semaine dernière que j’ai publiés sur Identi.ca ou sur Twitter, revus et augmentés d’éventuels  commentaires et observations mûris au cours de la semaine passée. Attention cette semaine, beaucoup de contenu suite à une actualité plutôt chargée :)

Au menu : Debian, Python , Django, de la veille technologique, le monde des startups et les communautés du libre.

C’est parti !

Debian

  • Happy 20th birthday Debian!: Today is Debian’s 20 anniversary. => un grand moment. Whao, 20 ans déjà pour une distribution (à la base, mais ça a évolué en quelque chose de plus large) GNU/Linux. Un signe impressionnant de perennité qui devrait faire réfléchir bon nombre de décideurs souvent plus tentés à tort par le bling-bling que par des solutions pérennes et éprouvées.

debian-botton

django-logo

  • #iceweasel 17.0.8esr is now available in #Debian #Jessie (Testing) => on en parlait la semaine dernière, iceweasel version ESR (pour Extended Support Release) entre maintenant dans Debian Jessie, une très bonne version pour la bureautique (personnellement c’est ce que j’utilise).
  • python-virtualenv 1.10.1 now in #Debian #Sid (unstable) #virtualenv => nouvelle version de virtualenv, le créateur d’environnement virtuel permettant de cloisonner vos installations d’applications Python, arrive dans sa dernière version upstream dans Debian. Qui a dit que Debian n’était pas à jour ? :)

Python

  • installed yesterday #Python 3.4 alpha 1 trying to solve a bug. Didn’t work but the installation went smoothly => suite à ce que je croyais être un bug de l’interpréteur Python, j’ai tenté de le reproduire un peu avec toutes les versions (au final ça n’avait rien à voir mais…) et j’ai testé donc un peu Python 3.4 alpha 1 qui s’est installé sans problème et a fait tourner Brebis parfaitement. Dans quelques temps je vous tiendrai informé des nouveautés importantes de cette version.

python-logo-master-v3-TM

  • I guess everyone was confronted to a poor choice of data structure one day. Choose the right data struture => personnellement j’ai parfois galéré pour choisir la bonne structure de données pour celles qui étaient au coeur de mes applications et qui allaient s’avérer difficiles à changer plus tard. Un peu de réflexion et d’algorithmique que je n’ai pas regretté plus tard.
  • cool things of #Python (nice examples and links) => Reddit n’est pas toujours drôle à lire et il y a souvent beaucoup de déchêts, mais j’ai trouvé intéressants certains points présentés dans l’article. On peut s’en passer mais ceux qui sont curieux des idiomes et astuces de Python seront intéressés.

ruby-logo

Veille technologique

  • setting up #Puppet class saz-#sudo on our new Puppet server. Seems pretty nice, clear and modular http://forge.puppetlabs.com/saz/sudo  => une classe que je mets en place qui me semble très flexible donc sympathique à exploiter si on la compare au monolithique fichier plat sudoers.

postgresql

  • just discovered statuspage.io, interesting idea IMO => pour les sites hautement disponibles ou les entreprises ne pouvant se permettre de laisser leurs utilisateurs dans le flou, j’aime bien ce concept de proposer une page de statut qui reste disponible quoiqu’il arrive.
  • IMO the most interesting feature of #spacewalk 2.0 is to get rid of ugly Oracle DB Express ed (via @linuxfrorg) => au niveau professionnel je travaille avec Spacewalk et je n’ai jamais supporté l’emploi de Oracle DB Express, cela m’a toujours fait l’impression d’une verrue indésirable. Voici donc la possibilité de l’enlever dans la 2.0 de Spacewalk.
  • A complete scan of the IPv4 address space in under 45 minutes ? https://zmap.io => je n’ai pas encore pu approfondir mais ça me paraît très très alléchant. Reste à voir le niveau d’agressivité au niveau des ressources consommées.

Startup

  • 57 startup lessons => une suite de conseils et d’astuces avec beaucoup de bons sens. Bien sûr certaines apparaissent un peu inutiles mais ça a le mérite de faire atterrir certaines personnes qui planent un peu trop haut, victimes du discours ambiant sur les startups type « monte ta startup et deviens riche en 90 jours ».
  • How to raise money as a first time founder => l’importance du bon produit est souligné du début à la fin. Cela apparaît comme une évidence mais quand on voit la volée actuelle de rachats, on peut s’intérroger sur les choix de certains investisseurs.
  • #startup #business Paul Graham feedback: How to convince investors => c’est plus de la curiosité pour moi, chef d’entreprise, qu’un réel besoin mais il est toujours bon de lire un retour bien fait et intéressant sur comment convaincre un éventuel investisseur.
  • #startup nice feedback: 90 thing I’ve learned from founding 4 #technology companies => une autre série de conseils par un serial entrepreneur. À lire en pesant bien le pour et le contre, certaines remarques étant carrément à jeter.
  • interesting blog about #startup by a startup founder http://wadefoster.net/ => j’ai parcouru et me suis gardé pour plus tard plusieurs articles de ce créateur d’entreprise qui me semble très intéressants.

Communauté

  • DjangoCon: verifiably awesome - That Time I Wasn’t Harassed At A Conference => Témoignage sans enrobage d’une femme ayant participée à plusieurs rassemblements des FOSS et faisant un retour sur le bon accueil de la communauté  Python (et sur le mauvais accueil des autres, soyons clair).

djangocon-logo

  • what every community can learn from #Python « is the most welcoming one in tech » for women => autre témoignage on ne peut plus clair sur le même sujet. La direction prise par le projet Python semble très efficace.

Autopromo

  • New blog post: Interview et activités professionnelles => suite à mon interview par la société de placement HopWork, je me suis fendu d’un billet autopromotionnel. Je vous rassure, ça n’arrive pas souvent mais c’est quand même ce qui paie les factures ;)

mytux-320-149

Et vous ? Que pensez-vous des technologies et articles abordés ci-dessus ? N’hésitez pas à réagir comme d’habitude dans les commentaires.

Vrac de mini-messages n°4 : selfoss, Redis, Erlang, Projectlibre, Python, MySQL, Django

april, debian-fr, planet-cullt, planet-libre, python, vrac-mini-messages

Suivez-moi aussi sur Identi.ca ou sur Twitter.

Comme chaque semaine, voici les dents/tweets intéressants de la semaine dernière que j’ai publiés sur Identi.ca ou sur Twitter, revus et augmentés d’éventuels observations et commentaires mûris au cours de la semaine passée :) Au menu selfoss, Redis, Erlang, Projectlibre, Python, MySQL et Django.

selfoss-logo

  • Utilizing Redis in distributed Erlang systems http://ur1.ca/e70q2 => tout ce qui tourne autour du projet Redis, le serveur de cache en mode clé-valeur (aussi considéré comme un serveur de structure de données) m’intéresse en particulier si c’est pour parler de son utilisation conjointe avec Erlang, le langage fonctionnel. Je suis bluffé par les performances de Redis et les retours qui parlent de ce logiciel sont toujours extrêmement positif. L’auteur est très présent sur les réseaux sociaux et tient au courant toute la communauté des nouvelles fonctionnalités dès qu’elles sont implémentées. Un exemple de développement pour moi.

redis-logo

  • Logiciel libre de gestion de projets #projectlibre http://ur1.ca/cioh9 => découvert par hasard, il répondait à un besoin que j’avais depuis longtemps pour suivre et faire avancer mes différents projets personnels et professionnels. Je l’utilise depuis quelques jours et, bien qu’un peu lourd pour mon pc portable vieillissant. Mais niveau fonctionnalités, j’en suis content pour l’instant.

projectlibre-ogo

  • #python pour extraire de l’information système http://ur1.ca/e7j5p => utilisant beaucoup Python dans le cadre de mes prestations d’architecte système, je sais depuis longtemps que Python est parfait pour tout ce qui touche au système en environnement GNU/Linux. Cet article va dans ce sens et a bon le goût de faire des exemples en Python 2.7 et quand le code est différent en Python 3.3. Miam miam.

python-logo-master-v3-TM

  • #MySQL trop long pour vos suites de tests ? Mettez-le en ram http://ur1.ca/e89go => J’ai rencontré ce problème autour de la réalisation de tests unitaires et fonctionnels avec une base de données MySQL. Je trouve que la solution est intelligente et un script de mise en place de MySQL dans un tmpfs  est proposé par l’auteur. Toujours bon à prendre si on a ce type de besoin.

mysql-logo

django-logo

Et vous ? Que pensez-vous des technologies et articles abordés ci-dessus ? N’hésitez pas à réagir dans les commentaires. Et à la semaine prochaine pour la suite de cette série d’articles.

Technologies derrière un site web à base de Django aujourd’hui

april, debian-fr, planet-cullt, planet-libre, python

Suivez-moi aussi sur Identi.ca ou sur Twitter.

Comment concilier mon envie de développer un site web autour d’une idée originale (donc très motivante) et la partie technique associée qui me rebutait à priori, de par mon expérience du monde PHP/MySQL (qui date un peu je vous l’accorde) ?

Mon intérêt pour le langage Python m’a naturellement poussé vers le framework Django. Mais les technologies impliquées dans la réalisation d’un site web moderne sont aujourd’hui légions.

Je brosserai dans cet article un large portrait des choix techniques que j’ai faits et de la difficulté associée à leur emploi.

Technologies employées

Debian

debian-button

Système stable avec beaucoup de paquets. Personnellement j’adore ;) Debian Squeeze avec les backports puis Wheezy aujourd’hui. Migration très simple effectuée récemment dans mon cas.

Django

django-logo

Le choix de Django vient de mon intérêt pour Python. J’ai quand même observé une adoption de plus en plus large de ce framework web pour des sites à forte audience, me réconfortant sur sa capacité de passage à l’échelle.  Le site utilise le framework Django en version 1.5. J’ai eu beaucoup de mal au début à intégrer le fonctionnement de Django, mais une fois maîtrisé ça a clairement boosté mes capacités à mettre en place ce que je voulais coder pour le site. C’est solide, cohérent, modulaire et très conforme à l’esprit du langage Python.

Apache

apache-logo

Pour la partie serveur web, je suis parti sur un Apache 2.2 + mod wsgi, principalement pour des raisons de simplicité de mise en place. J’envisagerais quelque chose de plus travaillé si le site décolle et devient plus exigeant en performances. Je pense en particulier à l’emploi de Nginx.

PostgreSQL

postgresql

Django s’interface avec plusieurs bases de données (PostgreSQL, MySQL, Oracle, SQLite). J’ai choisi PostgreSQL pour la robustesse de cette solution et sa pérennité. J’avais aussi de bonnes connaissances dans cette solution et je souhaitais l’utiliser plus largement dans un projet personnel, les fonctionnalités de la version 9.2 étant très alléchantes.

South

south-logo

J’en parle immédiatement car cette petite application a considérablement réduit la complexité du passage en production. Elle gère de manière transparente la migration des schémas et la migration des données de la base de données lorsque vous installez une nouvelle version de votre application. Concrètement, vous avez rajouté des colonnes à une table dans votre version de développement, vous avez installé la nouvelle version de développement en préproduction, maintenant vous avez deux choix : soit vous passez des ordres SQL à la main afin de rajouter les colonnes qui vous manquent sur la base de préproduction (ce qui impliquent de bien avoir identifié les éléments à rajouter) avec tous les risques que comportent ces opérations, soit vous utilisez South :) qui le fait pour vous. J’ai mis un peu de temps à bien maîtriser les différentes étapes du processus de migration des données, mais la documentation est précise et c’est un vrai plaisir à lire.

Git

git-logo

Le gestionnaire de sources Git que j’utilise déjà sur plusieurs autres projets s’est imposé comme un très bon choix pour ce projet. Avec des connaissances basiques, j’en ai néanmoins fait un point très important de ma chaîne d’industrialisation particulièrement pour le développement et l’intégration du développement vers la préproduction. Voir plus bas.

Memcached

memcache-logo

Django propose de s’interfacer simplement avec Memcached, le serveur de cache qui permet de gagner du temps lorsque les données interrogées sont déjà stockées en cache. Sa prise en charge par Dhango a poussé mon choix vers l’ancêtre (ancêtre si on le compare à Redis par exemple).  A titre personnel, je serais plutôt parti sur Redis, mais je voulais rester aussi proche que possible des outils utilisés par Django. A voir dans le futur. Une chose est sûre, Memcache uned fois lancé ronronne et on en entend plus parler. Un plaisir pour l’administrateur système. Memcached s’interface très bien à Django via le module Python-memcache.

Haystack/Whoosh

haystack-logo

Un ensemble d’outils pour la fonction recherche du site. J’ai cherché des projets actifs et simple à intégrer dans Django. Elles remplissent bien leur job et n’ont pas représenté de difficultés particulières pour être mises en place.

Zinnia

zinnia-logo

Cette application Django permet de rajouter un moteur de blog adaptable à votre propre site web très facilement. J’en parlais déjà dans l’un de mes vrac de mini-messages et j’ai bien fait d’approfondir. Le projet est actif, utilisé par de nombreux sites. Ayant déjà travaillé sur son intégration à mon site, je peux confirmer que c’est bien pensé et fidèle au modèle de fonctionnement de Django. Et en plus c’est bourré de fonctionnalités intéressantes :) J’ai hésité entre zinnia et externaliser le blog mais j’ai préféré intégrer le blog au sein du site pour être sûr plus tard de pouvoir augmenter au maximum les interactions entre les deux, et ce de la manière la plus transparente possible pour l’utilisateur. J’ai trouvé le temps de prise en main très court quand on comprend bien le principe de base, à savoir la surcharge systématique des fonctionnalités offertes par défaut pour les adapter à vos besoins.

jQuery

Jquery-logo

JQuery est une bibliothèque Javascript dont je me sers pour la partie bling-bling web 2.0 du site. J’en ai une utilisation très basique mais je suis très content du résultat. Etant peu motivé pour coder du Javascript, j’ai largement simplifié cette phase grâce à JQuery.

Découpage dev/préprod/prod

Dès le début du projet j’ai découpé ma chaîne d’industrialisation en trois étapes :

  • Le développement, où j’implémente les nouvelles fonctionnalités
  • La préproduction, qui récupère la version de développement, s’installe sur un vhost Apache dédié grâce à un script mise-en-preproduction.sh
  • La production, qui est une copie des données de préproduction adaptée via un script mise-en-production.sh pour un vhost Apache dédié

L’utilisation de cette chaîne d’industrialisation me permet de pousser rapidement des nouvelles versions du développement vers la préproduction où s’effectue les premiers tests et l’adaptation au contexte fonctionnels, puis de la préproduction vers la production. Mon prochain objectif est la mise au point de campagnes automatisées de tests fonctionnels, sûrement avec Selenium.

Et vous ? Que pensez-vous des technologies mentionnées dans cet article ? Des remarques sur l’industrialisation ? N’hésitez pas à réagir dans les commentaires.

Vrac de mini-messages n°4 : Bootstrap, Django, Riemann, Shinken, migration Squeeze vers Wheezy et déploiement continu

april, debian-fr, planet-cullt, planet-libre, python, vrac-mini-messages
Comme chaque semaine, voici les dents/tweets intéressants de la semaine dernière que j’ai publiés sur Identi.ca ou sur Twitter, revus et augmentés d’éventuels observations et commentaires mûris au cours de la semaine passé :) Au menu Bootstrap pour Django, l’excellent framework web en Python, Riemann, Shinken, migration Debian Squeeze vers Wheezy et déploiement continu.
  • thème #bootstrap pour #django http://ur1.ca/e24pd  => pour ceux qui ne connaissent pas le thème bootstrap, il s’agit d’un thème html/css/javascript libéré par Twitter. Très adaptable, supportant la visualisation par des périphériques mobiles, il fait le bonheur de ceux qui souhaitent monter rapidement un site web au design propre (exemple pour le site de ma boîte ou d’un produit que je vais bientôt proposer) et épuré. Il s’agit donc ici de proposer ce thème bootstrap dans le contexte de son utilisation conjointe avec Django.

bootstrap-logodjango-logo

  • #Riemann surveille les systèmes distribués – s’interface avec plein de langages dont #Python http://riemann.io  => une très très bonne idée à laquelle je vois déjà plein d’applications concrètes, typiquement être capable de sortir des métriques directement depuis l’intérieur de votre application, je pense en particulier à l’analyse des articles ou des commentaires d’un site web (nombre, heures de publication, nombre de caractères en moyenne…), ou encore du nombre d’e-mails générés par l’activité d’un site web pour notifier les utilisateurs. Enfin bref plein de débouchés potentiels qui d’habitude s’analyse hors de l’application et requière plusieurs outils différents. Un grand nombre de langages différents sont supportés.

riemann

  • shinken 1.4, outil de supervision codé en #Python avec plein de fonctionnalités intéressantes http://ur1.ca/e2k8v  => cette application intéressante codée en Python continue son petit bonhomme de chemin et propose de nouvelles fonctionnalités intéressantes. J’ai vraiment hâte de l’essayer sur un projet un peu conséquent.

shinken

  • Sauvegardes incrémentales avec duplicity vers un Qnap TS-219 PII sous #debian #wheezy http://ur1.ca/e32qp => beau succès pour cet article. Merci pour la vigilance de mes lecteurs qui m’ont permis d’améliorer l’article en cours de route :) Comme quoi vous êtes écoutés dans les commentaires de ce blog !
  • bien d’accumuler les retours sur les migrations #debian #squeeze => #wheezy http://ur1.ca/e3cxh => cela fait quelques articles sur ce sujet que je mets de côté, afin d’avoir sous les yeux le maximum de cas différents quand je suis en clientèle et gère la mise à jour d’un parc important de serveurs depuis Squeeze vers Wheezy.
  • architecture de déploiement continu avec #python #tornado #jenkins #selenium et #phantomjs http://ur1.ca/e46dt  #jaime => article très intéressant sur un sujet qui me passionne, à savoir le déploiement continu. De plus j’aime beaucoup les technologies employées et l’article est bien détaillé. À lire impérativement si le sujet vous intéresse.

tornado

Et vous ? Que pensez-vous des technologies et articles abordés ci-dessus ? N’hésitez pas à réagir dans les commentaires. Et à la semaine prochaine pour la suite de cette série d’articles.

Vrac de mini-messages n°3 : Erlang, Python, Django, Debian GNU/Hurd, SSH

april, debian-fr, planet-cullt, python, vrac-mini-messages

Suivez-moi aussi sur Identi.ca ou sur Twitter.

Voici les dents/tweets intéressants de la semaine dernière. Au menu Erlang, Python, Django, Debian GNU/Hurd et du SSH :

  • retour d’xp d’une migration #erlang vers #python http://ur1.ca/e1qmm => dans le cadre de la haute disponibilité, on observe plutôt en général le contraire qui se produit. Les arguments abordés par l’auteur sont toutefois très intéressants, comme la limite des capacités des membres de l’équipe en Erlang et la cohérence de l’ensemble des outils, la majorité étant codée en Python.

Erlang_logo

  • e-mails avec #django 1ère partie http://ur1.ca/e192y  et 2nd partie http://ur1.ca/e1930  => l’auteur prône l’utilisation des signaux, afin de déclencher l’envoi des e-mails de manière non-bloquante.
  • Publication de #Debian #GNU/#Hurd 2013 http://ur1.ca/e0u2x  => une nouvelle que j’ai particulièrement appréciée, qui démontre la bonne dynamique et l’adaptabilité de la pile d’outils et paquets Debian mais aussi sa flexibilité et son indépendance vis-à-vis du noyau sous-jacent. Un énorme atout si jamais ce dernier devient inutilisable (fin de vie du projet, problème légal) face aux autres distributions.

hurd

  • outil pour gérer ses connexions #SSH : storm http://ur1.ca/e0l9r => un petit outil sympathique pour manipuler son .ssh/config, si jamais vous êtes sur un parc où il évolue tout le temps. Si vous êtes dans ce type de problème, vous serez peut-être aussi intéressé par le projet Belier.
  • simple load generator for a web app in #python by Tarek Ziadé: boom 0.7 http://ur1.ca/dym5x  => un outil intéressant pour tester la bonne montée en charge de vos applications web par un serial hacker de bons logiciels Tarek Ziadé (voir ses bouquins) qui travaille chez Mozilla sur ce genre de problèmes. A tester absolument.

boom

Et vous ? Que pensez-vous des technologies et articles abordés ci-dessus ? N’hésitez pas à réagir dans les commentaires.

Vrac de mini-messages n°2

april, debian-fr, planet-cullt, python, vrac-mini-messages

Suivez-moi aussi sur Identi.ca ou sur Twitter.

Pour cette catégorie d’article, je passe à une publication hebdomadaire :) Les liens d’origine sont enrichis des approfondissements que j’ai pu effectuer entre la publication du dent/tweet et la publication de cet article.

  1. #debian #wheezy 7.1 devrait être publiée samedi 15 juin http://ur1.ca/dvraj  => Information très intéressante qui n’a pas été beaucoup relayée. La première point release est à mon avis une bonne occasion pour les administrateurs système qui prévoient de mettre à jour leur parc de le faire, car on a essuyé les plâtres de la sortie et on est maintenant prêt à migrer plus facilement.
  2. Application de blog pour #django très sympa : #zinnia http://ur1.ca/dv6ja => tellement sympa que je la mets en place sur un site que je gère. Très content du résultat jusqu’ici, très conforme à mes attentes d’une application entièrement intégrée à Django. Je trouve le résult et le modèle de développement très professionnels.
  3. Sortie de #PostgreSQL 9.3 beta 1 http://b1t.it/dgb4 => je suis séduit par une fonctionnalité qui m’intéresse directement, à savoir
    Bascules d'urgence rapides (Failover) vers un serveur secondaire pour
    garantir la haute disponibilité de vos données 
  4. créer un dico avec #CPython2.7 avec dict() ou {} ? {} à privilégier d’après cet article http://ur1.ca/dulhv => c’est le genre d’article que j’apprécie beaucoup, qui va chercher la petite bête et pousse à utiliser les bons idiomes par rapport au langage et à l’interpréteur utilisés.
  5. Installer #Debian #Wheezy sur un #Qnap TS-219 PII http://ur1.ca/dtzo3 => grosse affluence sur l’article, de très bons retours dans les commentaires (merci à mes lecteurs).

Et vous ? Que pensez-vous des technologies et articles abordés ci-dessus ? N’hésitez pas à réagir dans les commentaires.

Vrac de mini-messages n°1

april, debian-fr, planet-cullt, python, vrac-mini-messages

Suivez-moi aussi sur Identi.ca ou sur Twitter.

En vrac les mini-messages postés par votre serviteur sur mon Identi.ca, qui aborde des sujets aussi divers que Django, Redis, Debian, et bien d’autres. Contenu dépouillé mais qui a l’intérêt d’attirer l’attention sur différents sujets à découvrir ou redécouvrir.

  • Django documentation is now available in ePub format http://ur1.ca/aqg0d => très bonne initiative pour développer l’utilisation du ePub pour les documentations techniques.
  • I have to try weboob one of these days http://weboob.org/
  • redis 2.6 is out http://ur1.ca/angud =>
  • to add in my toread list The Lean Startup http://ur1.ca/amnba
  • Using bootstrap for a web site, quite impressed by the result http://ur1.ca/50vu3 => fait, sur le site de mon projet Backup Checker. Très satisfait du résultat.
  • New blog post (fr): Mini-Debconf Paris 2012 http://ur1.ca/am0kh => grand succès, un public venu nombreux, des conférences très intéressantes et un bon merchandising pour faire connaître Debian.
  • Vaurien:TCP proxy which will let you simulate chaos between your application and a backend server http://ur1.ca/alxs8
  • really interesting idea about testing the resilience of your infrastructure Chaos Monkey by Netflix guys http://ur1.ca/alw21
  • need to try pagekite, the fast, reliable localhost tunneling solution https://pagekite.net/
  • collectl seems to be a great tool. I have to give it a try http://ur1.ca/u0vz
  • Interesting discussion at work about application deployment and reliability of the process. I love Debian packages.

Et vous ? Que pensez-vous des technologies et articles abordés ci-dessus ? N’hésitez pas à laisser votre témoignages dans les commentaires.