Blog // Exirel.me

Où est passé la haute-technologie de nos télécommandes ?

Dans Geek par Florian Strzelecki - 13:19 - 10.01.2012

Tags : Société, Ordinateur, Format ouvert, Format propriétaire, Vieille technologie, Télévision, ADSL

Au détour d'un tweet de @kaleidoscopique je me suis surpris à réagir avec un certain amusement – et un brin d'ironie.

Je vais vous dire : ça me dérange toujours autant de constater une telle différence entre nos capacités technologiques, et sa présence réelle dans notre quotidien.

Je m'explique (avec un peu plus que 140 caractères).

Vous avez tous vu ou vous avez un smartphone. Vous avez tous vu ou vous avez une de ces nouvelles box ADSL, téléphone, TV, qui fait le café. Vous avez tous un ordinateur ou un accès fréquent à un ordinateur.

Dans votre voiture ou dans celle de votre voisin, il y a un GPS, voire des lecteurs DVD portables.

En prime, ou vous parle sans cesse de la domotique au détour d'un "FEAR BIG BROTHER" ou d'un "Bientôt votre frigo fera les courses à votre place !".

Et pourtant, nous avons toujours des télécommandes des années 80 dans nos salons.

Télécommandes

Image : Télécommandes - Florian Strzelecki - Creative Common By-NC-SA

Lire la suite - 1 commentaire

Livre numérique : kobo by fnac

Dans Geek par Florian Strzelecki - 17:44 - 09.12.2011

Tags : J'aime, Ma vie, Lecture, Format ouvert, Livre numérique, epub, Kobo

La semaine dernière, ma chère et tendre m'a offert la "Kobo by Fnac" - produit d'un partenariat entre l'enseigne de grande distribution et l'éditeur de "liseuse numérique".

Et j'en suis très satisfait.

Un ami - @mrjmad - s'est acheté la Cybook Odyssey par Virgin, et elles sont globalement équivalente. En tout cas, j'ai pu tester les deux, et ma Kobo me convient très bien. J'aime bien son design sobre et classique, son port pour carte micro SD, son écran de 9x12 cm à encre numérique, et son autonomie (pour tout dire, je n'ai toujours pas eu besoin de la recharger depuis que je l'ai eu).

Et puis, surtout, elle lit les epubs, et je n'ai aucune contrainte de plateforme pour mes achats de livres numériques. C'était, d'ailleurs, le critère principal de mes choix : pouvoir lire un format ouvert et avec la liberté d'acheter où je veux.

Kobo by Fnac, sur mon étagère

Image : Kobo by Fnac, sur mon étagère - Florian Strzelecki - Creative Common By-NC-SA

Lire la suite - 7 commentaires

Mon premier coworking à la Cantine de Rennes

Dans Geek par Florian Strzelecki - 23:29 - 08.12.2011

Tags : Premier, J'aime, Ma vie, Rennes

Le mois dernier (en Novembre donc), j'ai changé un peu mon orientation pour quitter le salariat et me diriger vers l'indépendance. Pour l'instant, cela se traduit par beaucoup de temps sur des projets personnels (Tapcaz en PHP, et JdrPost.it en Python/Django), et un statut d'auto-entrepreneur - statut que j'escompte bien faire évoluer vers autre chose, que ce soit une entreprise ou un statut d'indépendant, ou... on verra bien.

Cela va faire un an que je connais la Cantine Numérique Rennaise, que je la fréquente de temps en temps, au gré entre autre des Ateliers 46 animés par @nookeff, de conférences sur Wikipedia, de Twunch rennais, et j'ai même contribué à organiser l'événement annuel python - la Pycon France 2011 - à la Cantine.

Mais aujourd'hui, j'ai franchi un nouveau cap dans ma relation avec ce lieu très particulier : j'ai passé ma première journée de coworking.

Diantre. Qu'est-ce que cet anglicisme ? Heh, le "travail coopératif", c'est un principe très simple, qui repose sur le fait que ça fait du bien de sortir de chez soi pour travailler, et que pouvoir rencontrer des gens différents ne peut qu'être bénéfique.

Et c'est le cas. En une journée, j'ai organisé mon travail différemment (plus de lecture et moins de dispersion), mais surtout, j'ai pu discuter un peu au hasard avec d'autres personnes : sur le livre numérique notamment (sujet qui me passionne beaucoup en ce moment), mais aussi sur des livres, sur de la photo, et sur des initiatives communautaires (ça me fait penser au groupe python Rennes).

Bref, j'ai pris beaucoup de plaisir à être là dans cet espace ouvert, avec mon PC portable et mes pensées, à côté d'autres gens faisant à peu près la même chose que moi : pas juste leur travail, mais aussi des échanges.

Je crois que je vais revenir. D'ailleurs, j'ai pris un abonnement. Hé hé hé.

Lien permanent - Commentez l'article

DjangoCong 2012 à Montpellier, en face de la mer !

Dans Technique par Florian Strzelecki - 16:14 - 29.11.2011

Tags : Django, Python, Framework, Web, J'aime, Djangocong

J'étais à la DjangoCong 2011, c'était à Marseille, et c'était super. Et ça tombe bien, parce que pour l'édition 2012, j'assiste les organisateurs dans cet évènement, qui a été pris en main par une équipe locale... à Montpellier !

Plus exactement à Carnon-Montpellier, devant une immense étendue de sable chaud et la mer Méditerranée.

Quand ? Le 14 et 15 Avril 2012. Prévoyez vos billets de train !

Où ? À Carnon-Montpellier, dans le Sud de la France. Il y a une gare TGV et tout le confort sur place (la mer, et on l'espère tous du Soleil).

Le lieu ? Dans la journée, ce sera à la Maison Familiale EAGA, et le soir au Gédéon. Oui, ça vend du rêve en barre (j'ai hâte).

Les inscriptions ne sont pas encore ouvertes : elles le seront lorsque l'appel à conférences sera clôturé, c'est à dire aux environs du 13 - 15 Janvier 2012. Donc, si tu as quelque chose à proposer, il est temps de le faire !

La mer devant Carnon-Montpellier

Image : La mer devant Carnon-Montpellier - DjangoCong - DR

Lire la suite - Commentez l'article

Multi-Db avec Zend

Dans Technique par Florian Strzelecki - 18:20 - 07.10.2011

Tags : Framework, Web, Documentation, Programmation, PHP, SQL, loldev, Zend Framework

Depuis que je travaille avec le Zend Framework (et ce n'est définitivement pas par passion ni envie), je ne passe pas une semaine sans avoir besoin d'aller voir dans le code source du framework pour comprendre ce qu'il fait, pourquoi, comment, et en quel honneur.

Et généralement, je me marre - enfin pas vraiment, mais faites comme si.

Cette semaine pour le #loldev du vendredi, c'est la documentation qui m'a donné l'info qui me manquait pour résoudre un problème qui n'est pas trivial à l'origine, mais qui devrait l'être avec un framework web digne de ce nom : comment gérer une application qui doit se connecter à différentes bases de données ?

En voilà une question intéressante... voici ma réponse.

Pages and pages of source code.

Image : Pages and pages of source code. - Neil Crosby (http://www.flickr.com/photos/thevoicewithin/) - Creative-Common By-NC-SA

Lire la suite - 1 commentaire

Un nouveau look & Akismet en prime !

Dans Geek par Florian Strzelecki - 12:31 - 01.10.2011

Tags : Bonjour, Web, Ma vie, Typographie

Bonjour visiteur ! Merci de venir me lire sur mon blog - ou de lire mes articles via les flux rss. Un petit article qui parle de mon blog et de moi-même, parce que, quand même, c'est un blog quoi. Y parler de sa vie, c'est un peu la base du blogging.

Paraît-il.

Or donc, voilà un léger changement de look, pour se rapprocher du site principal Exirel.me avec des couleurs plutôt contrastes de gris & rouge sombre. Exit le bleu, donc, même s'il doit en rester quelques traces ici ou là.

Autre changement de taille : la typographie ! J'ai choisi de justifier le texte (on verra ce que ça donne à l'usage) d'une part, et de passer le corps de texte en Serif. Même chose : à voir à l'usage ce que ça donne.

Dernier point : si vous essayez de poster un commentaire, il n'y aura plus de Captcha. Il faut savoir que le spam aujourd'hui ne s'arrête même plus devant un captcha, et que ce n'était donc plus qu'un mécanisme pénible pour les gentils internautes comme vous qui venez me lire.

Bref, ce système a été remplacé par Akismet, système anti-spam à l'origine déployé pour Wordpress.com, mais qui peut être adapté pour n'importe quel blog. Je me suis même fendu d'une donation pour l'occasion, tellement ce service est réellement pratique et fonctionnel. Et puis l'implémentation en Python d'Akismet étant disponible... pourquoi se priver ?

Et pour l'implémentation pour django, c'est aussi très simple, je vous invite à lire ce billet : Using Akismet/TypePad AntiSpam with Django's new comments framework. Grosso modo, ce fut 30min à la louche entre la création de mon compte Akismet pour ce blog, la lecture de la doc, et l'implémentation dans mon app django.

Voilà voilà, et bon week-end !

Edit : Et donc, petit retour sur Akismet : les spams passent toujours, c'est particulièrement déprimant car le code derrière est le bon et ne lève aucune erreur. Il se trouve que j'ai droit à une série de spammeur qui ne sont pas encore reconnus comme tel par Akismet... Du coup, le Captcha est de retour. Désolé. :-(

Edit 2 : J'ai modifié la police par défaut de "Serif" à "Arial, sans-serif". Du coup, on revient à du sans-serif, je trouve ça moins "visuel", mais, bon, ok... c'est plus facile à lire. Damn... pourtant, ça avait l'air cool... :(

Lien permanent - 7 commentaires

Dédoublonner un tableau de tableau en php

Dans Technique par Florian Strzelecki - 14:01 - 30.09.2011

Tags : Documentation, Programmation, PHP, Optimisation, loldev

Halala... le array_unique est définitivement une fonction trompeuse de php. Pourquoi ? Parce que son mode de dédoublonnage par défaut est SORT_STRING, et pas SORT_REGULAR. D'ailleurs, c'est d'autant plus un problème que ce fut le cas en PHP 5.2.9, puis retour arrière en PHP 5.2.10.

Note : documentation php de array_unique.

Le #loldev du vendredi nous vient donc de cette petite fonction. En voici l'exemple :

$res = array(
        array('id' => 2),
        array('id' => 3907),
        array('id' => 7814),
        array('id' => 2),
    );
$unique = array_unique($res);
var_dump($unique);

// Résultat :
// array(0 => array('id' => 2));

Ce qui est un problème, puisque le but, c'est seulement de virer la deuxième ligne, comme il a été fait dans l'exemple suivant :

$id = array();
foreach ($res as $idRes) {
    $id[] = $idRes['id'];
}
$id = array_values(array_unique($id));

Donc, oui, cela fonctionne et on obtient bien un tableau dédoublonné par la valeur de la clé 'id' de chaque tableau. Heureusement, il y a mieux aujourd'hui.

Ce code provient d'une application pré-5.2.9, où le flag "SORT..." n'existait tout simplement pas. Ce n'est donc pas la faute du pauvre développeur qui a dû trouver à l'époque une solution qui fonctionne ! Je n'aurais pas aimer être à sa place.

Car aujourd'hui, il suffit d'écrire ceci :

$res = array_unique($res, SORT_REGULAR);

Pour dédoublonner le tableau. Simple, efficace. Mais il aura fallu attendre PHP 5.2.9 pour pouvoir le faire !

Remarque : suite à des remarques, voici le pourquoi du comment SORT_STRING pose problème :

Par défaut array_unique transforme en string le contenu de chaque élément du tableau, donc (string) array(...) ça donne "Array". Donc il trouve que le tableau de tableau, c'est un array de 'Array', 'Array', 'Array', ... qui sont donc des éléments identiques, et ne retourne que le premier élément.

Logique, imparable, mais particulièrement pénible.

Lien permanent - 4 commentaires

Ugly code

Dans Technique par Florian Strzelecki - 23:56 - 27.09.2011

Tags : Framework, Programmation, Bonne pratique, Chaton, Optimisation, Problème, loldev

Il est parfois difficile de dire d'un code qu'il est bon ou mauvais, qu'il est moche ou élégant. Parfois, les deux se confondent dans un doute profond sur la nature d'une idée, et sur son implémentation.

Beautiful is better than ugly.

Heureusement, parfois, il y a du code php/java/python/javascript/ruby/perl/autre bien sale et c'est très facile à repérer.

Notez l'effort pour ne pas troller toujours sur le même langage.

Lire la suite - 2 commentaires

Retour sur la Pycon Fr 2011

Dans Technique par Florian Strzelecki - 16:02 - 24.09.2011

Tags : Django, Python, J'aime, Ma vie, Informatique, Rennes, Pycon

C'était à Rennes, c'était les 17 et 18 Septembre dernier, et j'y étais en tant qu'organisateur local (en gros, cela veut dire aider l'équipe des organisateurs avec mes connaissances du terrain, et les avantages de la proximité).

Dans l'ensemble, ça s'est très bien passé : du monde, des gens contents, de belles rencontres, quelques soucis techniques avec un câble HDMI et une prise capricieuse, des centaines de croissants, des litres de cocas, de cafés et de jus d'orange.

Mais ce n'était pas juste un WE pour moi, puisque j'ai pu participer à son organisation depuis quelques mois déjà. Petit retour d'expérience sur cette édition 2011 de la Pycon Fr.

Lire la suite - Commentez l'article

Awesome Fontstacks : oh la belle typo !

Dans Technique par Florian Strzelecki - 19:49 - 23.08.2011

Tags : Web, Programmation, Typographie

Comment souvent je surf sur le grand Internet qu'il est plein de belles images, et je traîne mon curseur du côté du dossier "design & typo" de mon lecteur de flux rss. Tiens, un site qui propose... des ensembles de polices de caractères pour son site web ? Intéressant...

Il s'agit du site Awesome Fontstacks, et j'ai décidé de tester tout un tas de ensembles divers et variés... et c'est vrai que les résultats finaux sont plutôt très réussis !

Le concept : vous choisissez une police de caractères pour le titre, le sous-titre, le corps de texte, le texte à mettre en exergue, et pour le code source ; mais pas n'importe comment, car le site vous aide dans cette démarche.

En correspondance avec la première police choisie, il vous propose un ensemble de polices "qui se marient bien avec la première police choisie", et ainsi de suite pour chaque partie. Le résultat final est donc un ensemble de polices cohérent, et il faut le dire, qui sont plutôt élégantes.

Il ne reste alors plus qu'à récupérer les fichiers des polices qui vous intéresse, puis à faire un tour sur Font Squirrel pour générer les fichiers de polices pour le web, avec, en prime, le code CSS "font-face" qui va bien !

Le service est pratique, agréable, et le résultat est une réussite. Je regrette néanmoins qu'en fonction de vos choix, vous risquez de vous retrouver avec les mêmes ensembles pour le corps de texte / le code source. Pourtant, il y a déjà pas mal de choix : à tester !

Du coup, j'en ai profité pour ajouter la police "Incosolata" pour l'affichage des blocs "pre" de ce blog... et c'est vrai que c'est plus sympa comme ça.

Lien permanent - Commentez l'article

Ubuntu 11.04 et HD6850 : problème au démarrage

Dans Geek par Florian Strzelecki - 12:11 - 20.08.2011

Tags : Ma vie, Ordinateur, Informatique, Problème, ATI, Ubuntu

Ayant acquis récemment une nouvelle carte graphique ATI HD 6850 chez LDLC, je me suis empressé de la mettre dans ma belle unité centrale (dont il faudra sans doute que je vous parle ici un jour, dans un long article vous expliquant pourquoi c'est la plus belle #vantardise). J'ai, bien entendu, désinstallé les drivers sur Windows, et comme j'avais déjà une ATI, je n'ai rien eu à faire pour mon Ubuntu (j'ai vérifié, et il n'y a aucune contre-indication - j'ai peut-être raté un truc, si oui, dites le moi dans les commentaires !).

J'installe la bête, et je redémarre. Rien à dire sur Windows : ça marche tout de suite, j'installe le driver, et à moi les jeux avec des graphismes de folie. Super, j'ai pas le temps là. Passons à Ubuntu : je redémarre (vive les dual-boot), je passe l'écran du Grub, et... pouf, plus rien, l'écran noir !

N'ayant pas la patience de vérifier si, au bout de 5min, la machine fonctionne quand même, j'éteins, je remets l'ancienne carte, et heureusement ça fonctionne toujours. Je vérifie ensuite en utilisant un Live-CD : j'ai la même chose, c'est à dire l'écran noir à l'écran de chargement. Il semble bien qu'il y ait un problème entre le moment du boot et le moment où le bureau s'affiche (à ce moment là, je ne sais pas encore que le bureau est censé s'afficher quand même après un certain temps).

Je cherche sur le net, sans trouver grand chose. Et puis je me rappelle d'un truc, et je trouve ceci : ATI et usplash ; ainsi que ceci : Problèmes Usplash.

Ces deux articles présentent des problèmes qui correspondent bien à mes problèmes, et je décide, plutôt que de tenter d'installer / désinstaller des trucs, de simplement suivre la méthode évoquée dans le second article, à savoir, créer et écrire ceci dans le fichier /etc/usplash.conf :

xres=1280
yres=1024

Puis de lancer la commande suivante :

sudo update-initramfs -u

Et bien vous savez quoi ? Ça a marché ! Mon écran de démarrage est ré-apparu, Ubuntu se lance désormais comme il faut.

Donc, si cela vous arrive, ne paniquez pas : il y a probablement une solution, et le problème peut être quelque chose de particulièrement... inattendu ! J'ai pensé à regardé du côté de usplash car j'avais déjà entendu parlé de problèmes à peu près similaire au démarrage, mais c'était il y a quelques années maintenant...

... Comme quoi, les cartes ATI, c'est pas encore trop ça avec Ubuntu. Mais bon, là, ça marche bien, et je n'ai pas à me plaindre !

Enfin, si : j'ai pas assez de temps pour jouer et continuer tous ces petits projets que j'ai lancé à droite et à gauche. Mais ça, c'est un tout autre problème !

Lien permanent - 2 commentaires

Svn Id dans un template

Dans Technique par Florian Strzelecki - 11:11 - 19.08.2011

Tags : Web, Documentation, Programmation, Bonne pratique

Parfois j'y pense (et parfois j'oublie) : utiliser la propriété svn "svn:keywords" sur les fichiers, en utilisant tout particulièrement Id, et de temps en temps Author et Date (mais cela dépend du projet et des conventions de l'équipe).

Pour ceux qui ne connaissent pas, il s'agit d'une propriété que l'on peut mettre sur un fichier versionné avec svn (et pas un répertoire), de cette façon là :

svn propset svn:keywords "Id" fichier

Ensuite, dans le fichier, n'importe où (de préférence en entête du fichier, dans les commentaires), il suffit d'écrire ceci :

$Id$

Au commit du fichier, ceci sera remplacé par quelque chose comme :

$Id: Fichier 7814 2011-08-19 07:49:47Z Exirel $

En général, je pense à le mettre sur des fichiers de code, mais pratiquement jamais sur mes templates. Pourtant, c'est tout aussi pratique, surtout lorsque le template a plus d'importance que la façon de récupérer les données (ce qui est parfois une opération tout à fait triviale).

Du coup, au début de tous mes fichiers de template avec php, je mets ceci :

<?php /* @version $Id$ */ ?>

Avec smarty, je mets ceci :

{* @version $Id$ *}

Et avec django, je mets ceci :

{% comment %}
(...)
  - Version : $Id$
(...)
{% endcomment %}

Parfois, je me demande encore comment je peux oublier ça. Peut-être parce que je devrais l'automatiser, et plus le faire à la main ? Je dois être trop nostalgique de la ligne de commande...

Lien permanent - Commentez l'article

Cher et médiocre

Dans Geek par Florian Strzelecki - 22:21 - 10.08.2011

Tags : Société, Musique, Ma vie, Apple

Tous les matins, du Lundi au Vendredi, je prends le bus : chose tout à fait triviale de nos jours, d'autant plus que, comme bien d'autres collègues, c'est pour me rendre à sur mon lieu de travail. Et quel formidable observatoire du monde que sont les voyages en bus !

Il y a de tout, et j'aime bien observer les gens, leurs habitudes, leurs gestes, leurs petites manies du matin. Et ce matin, j'ai observé différentes personnes écoutant de la musique, que ce soit avec leurs téléphones ou avec un lecteur mp3 (si si, ça existe encore), le tout avec des écouteurs ou un casque sur les oreilles.

Certains portent des casques massifs, d'autres de tous petits écouteurs - et ce sont ces derniers qui, aujourd'hui, ont attiré mon regard. Il y a, pour moi, trois types d'écouteurs :

  • Les écouteurs de qualité, et chers
  • Les écouteurs de mauvaise qualité, et peu chers
  • Les écouteurs Apple, chers et de mauvaise qualité

J'ai utilisé de tout, et aujourd'hui si mon choix se porte sur les casques, ce n'est pas pour rien. Je ne vais pas m'attarder sur les écouteurs de mauvaise qualité et peu chers, tout le monde connaît (ou a connu, dans un passé lointain). Un son médiocre, qui frise le bas de l'échelle à côté des enceintes intégrées des anciennes générations de PC portable, et les générations encore très malheureusement actuelles des téléphones portables (qui sont plus des haut-parleurs que des enceintes, ce que ne semblent pas comprendre certains jeunes fort peu urbains).

Les écouteurs haut de gamme, j'ai aussi connu, mais je n'aime pas, pour une raison tout à fait personnelle : il me fond mal à l'oreille. Pourtant, la qualité du son est plutôt bonne : un son assez fidèle, des basses très correctes, et un isolement au monde extérieur très appréciable. Mais ce n'est pas mon truc.

Parlons de ces petites choses blanches infectes : les écouteurs Apple. Tout le monde se rappelle de ces publicités sur fonds colorés vifs, avec des silhouettes noires dansant au rythme d'une musique censée provenir de ces fils blancs qui se détachent, les "fameux" écouteurs Apple.

J'ai testé, et j'ai détesté. Non seulement ils se salissent et se dégradent très vite, mais le son est vraiment très mauvais. Il faut parfois mettre beaucoup trop fort pour entendre correctement la musique que l'on souhaite écouter - quant aux basses, elles sont quasis inaudibles. Et le pire, c'est que ces petites choses sont particulièrement chères pour ce qu'elles sont !

Alors, le matin, quand je vois quelqu'un avec ses écouteurs Apple dans les oreilles, j'ai l'impression qu'il me dit ceci :

Regarde mec ! Je mets du caca hors de prix dans mes oreilles, branché sur du matériel de luxe ! Je suis trop hype !

Respectez vos oreilles. N'utilisez pas vos écouteurs Apple fournis avec votre iPhone / iPod / iBidule hors de prix.

Lien permanent - 6 commentaires

(bool) $flag

Dans Technique par Florian Strzelecki - 11:00 - 08.08.2011

Tags : Framework, Web, Programmation, Bonne pratique, PHP, loldev

Je suis toujours autant amusé par ce que je peux trouver dans le code-source du Zend Framework. Oh, rien de grave, cela fonctionne très bien de cette façon là :

public function setNoRender($flag = true)
{
    $this->_noRender = ($flag) ? true : false;
    return $this;
}

Il s'agit d'une méthode de la classe Zend_Controller_Action_Helper_ViewRenderer, qui effectue un traitement fort simple et basique, mais d'une façon que je trouve "inutile".

Je veux dire... si j'analyse ce bout de code d'un coup d'oeil, je peux voir qu'un cast implicite en booléen est effectué, pour ensuite... affecter cette même valeur (mais écrit "explicitement"). En gros, ce bout de code est strictement équivalent au suivant :

$this->_noRender = (bool) $flag;

Pourquoi faire plus compliqué ? Pourquoi s'embêter à écrire explicitement "true" et "false" ?

Oui, c'est du pinaillage. Mais j'aime bien pinailler sur ce genre de choses.

Lien permanent - 5 commentaires

Décrets du 4 août 1789

Dans Divers par Florian Strzelecki - 11:05 - 04.08.2011

Tags : Bonjour

C'est fou tout ce qui a pu se passer le 4 Août. Entre autre, l'abolition du système féodal en France, lors de la Nuit du 4 Août 1789.

Ou aussi, la naissance de Barack Obama en 1961, et celle de Louis Armstrong en 1901.

Lien permanent - Commentez l'article

RSS