Une nouvelle année pleine d'espoirs

Comme tous les ans, j'écris un article sur l'évolution du projet Reflectiv ainsi qu'une petite réflexion personnelle. Cela fait maintenant 3 ans que c'est le cas (2008, 2009, 2010) et c'est un rite que j'aime prendre, qui permet de voir ce qui a été accomplit et ce qu'il reste à faire.

En commençant par un petit compte rendu sur l'année 2010, l'ensemble est mitigé: Nos trois principaux projets (Skual, GSpanel et le framework Catapult) n'ont pas très bien évolué. Skual et GSpanel toujours au stade de projet et le framework n'a pas vraiment été retravaillé depuis sa première sortie. J'ai tenté de le refaire de fond en comble, mais rien d'officiel n'en est sorti. Mais tout n'est pas perdu, j'ai l'idée de base pour un framework performant et complet, reste plus qu'à lier toutes les briques ensembles.

Durant cette année, nous avons aussi mis en place un nouveau projet, pendant la fuite de pétrole géré par BP. Le projet n'a pas duré très longtemps et n'a pas vraiment eu l'intéressement escompté. Tant pis.

De manière générale, le projet Reflectiv à tourné quelque peu au ralenti, principalement dû à mon stage de fin d'étude qui m'a pris beaucoup de temps et de disponibilité.

Mais tout n'est pas noir, notre projet Black-Frames se porte à merveille, avec plus de 800 visiteurs en moyenne et un pic prometteur à 1003 le 23 décembre!

Media_httpblog1reflec_bwtam

Ensuite, le début de cette année s'annonce original puisque je me suis mis officiellement à mon compte, à temps plein. Cela signifie que je vais pouvoir vraiment m'investir dans nos projets. Mais qu'en est-il ?

Tout d'abord, mon fil rouge n'aura pas vraiment de rapport avec Reflectiv, donc je ne vais pas m'étendre ici, mais c'est LE projet sur lequel je travaillerais en priorité.

En parallèle, voici les 4 projets que nous allons tenter de mettre en place durant l'année 2011 :

  • Une refonte de Reflectiv, avec l'externalisation du blog sur un service dédié
  • Un redesign de Black-Frames, entre autres afin d'accueillir vraiment les images des visiteurs
  • Probablement travailler sur Catapult
  • Avec Antoine, on envisage de faire 1 design par semaine, avec HTML/CSS/JS, qui seront publiés sur ThemeForest (au moins au début). Si la vente marche très bien, pourquoi pas ouvrir une boutique à côté

Voilà pour ce premier article de l'année. Ce sera probablement le dernier sur cette plateforme, avant la migration vers la nouvelle version de Reflectiv. Nous n'avons pas encore de date quant à cette évolution, espérons juste que ce soit rapidement :)

Tous nos vœux de réussite pour cette nouvelle année, dans tous les domaines !

Filed under  //  2011   Development   GSPanel   General   Projects   Think2Gather   black-frames   nouvelle année   projets   reflectiv   skual  
Posted by Cyril Nicodème 

6 techniques pour éviter les blocages

Ce coup-ci, c'est le blog de Zurb qui nous donne 6 conseils pour éviter les "barrages routiers" lors de la réalisation de site web, bien qu'à mon avis, ses conseils s'adressent à tout type de projets.

Dans cette liste, nous avons :

  1. Pas de deadline claire
  2. Perfectionnisme
  3. Objectifs de lancement mal définis
  4. Mauvaise gestion de planning projet
  5. Un manque d'ingénieurie
  6. Aucune interface client

En plus, l'article est bien détaillé et agréable à lire ! :)

Filed under  //  Advices   Development   General   Projects   barrage   client   deadline   gestion   goal   interface   objectifs   perfection   planning   projet  
Posted by Cyril Nicodème 

Taille de certaines balises HTML pour les moteurs de recherche

Voici une petite image qui vaut bien plus que de longues explications sur les tailles prises en comptes par les principaux moteurs de recherche pour les balises html title, description et url :

Media_httpblog1reflec_hqdic

De manière générale, je vous conseille les articles de Seomoz.org pour leurs conseils sur l'optimisation de vos sites.

Filed under  //  Projects   Search Engine Optimization   balise   bing   description   engine   google   meta   moteur   recherche   search   tag   title   yahoo  
Posted by Cyril Nicodème 

10 Golden Principles of Successful Web Apps

Lors de la FOWA conférence qui s'est déroulée à Miami, Fred Wilson à présenté ce qui correspondait selon lui aux 10 principes essentiels à la réussite d'une application web.

Carsonified à publié la conférence de Fred Wilson sur Vimeo, et les conseils donnés par ce dernier sont très intéressants !

Pour information, voici les 10 conseils :

  1. Speed
  2. Instant utility
  3. Voice
  4. Less is more
  5. Programmable
  6. Personal
  7. Restful (pas dans le sens software architecture)
  8. Discoverable
  9. Clean
  10. Playful

Vous pouvez voir la vidéo ci-dessous ou lire directement le transcript.

L'article de blog dont fait référence Fred Wilson se trouve ici et je vous conseille aussi fortement de lire les commentaires (malgré le nombre rebutant), qui apportent eux aussi leur brin d'idée sur les autres points utiles à la réussite d'une application web.

Filed under  //  Fred Wilson   Projects   apps   carsonified   future   golden   principle   success   video   vimeo   web  
Posted by Cyril Nicodème 

[Frameworks] Un Controller ne doit pas avoir de logique métier!

Il existe de nombreuses pratiques pour développer du code propre, pérenne et accessible. Nommer la liste ici serait une perte de temps.

Parmi toutes ces lois, techniques et conseilles, la liste des 13 plus mauvaises pratiques appliquées à Rails soulève un point intéressant que l'on ne retrouve pas forcément dans les sites à base de Frameworks :

Chubby Controllers Must Die

There should be no business logic in a controller.

Read that again.

There should be no business logic in a controller.

Controllers do two things: they take data from the params or session and send it to the model. The MODEL performs all the necessary logic. Then, the controller does the other thing that's completely necessary: it decides what should be shown to the user. That's it. The sum total of a controller action is two steps long.

  1. Send information to the model.
  2. Decide what to display.
If you are doing ANYTHING ELSE in your action, you are doing it in the wrong place. The end.

Le problème n'est pas forcément le développeur, qui ignore cette pratique, mais aussi les créateurs du framework, qui, par l'absence de composants adaptés, force le développeur à mettre du code métier dans ses controlleurs.

J'apprécie particulièrement cette remarque qui soulève un point fondamental sur l'usage des frameworks et prouve que leur utilisation n'est pas le stade ultime en matière de développement efficace.

Ce n'est pas parce que vous utilisez un framework que vous faites les choses bien !

Filed under  //  Development   Projects   chubby   controller   framework   practices   techniques   tips  
Posted by Cyril Nicodème 

Black-Frames est à vendre.

Nous considérons que le temps est venu de nous séparer de Black-Frames car ce dernier ne corresponds pas à nos objectifs en terme de projets.

Ainsi nous proposons l'acquisition du nom de domaine, des images, des sources et des différents scripts au plus offrant.

Voici ce que représente Black-Frames :

  • Un site développé en Django (Python) avec une base de donnée MySQL
  • Actuellement plus de 1100 images (et le nombre ne cesse d'augmenter)
  • Un minimum de 100 visiteurs unique par jours
  • Déjà plus de 18.000 visites depuis sa sortie le 20 août 2009
  • Plus de 195.000 pages vues
  • Une moyenne de 130 visiteurs par jours
  • Une moyenne de 10.60 pages vues par visites
  • Un temps moyen passé sur le site de 4 minutes et 17 secondes
  • Et 43.07% de nouvelles visites

Vous pouvez nous contacter par email ou par téléphone, pour avoir plus de détails et/ou nous faire votre offre.

Filed under  //  General   Projects   black-frames   code   domaine   image   proposition   script   source   vente  
Posted by Cyril Nicodème 

Question de conception, GSPanel

La réalisation de GSPanel avance tranquillement, et je bloque actuellement sur un point, donc j'aimerai votre avis.

Lorsqu'un utilisateur aura ajouté une machine, il devra ajouter des jeux. Au niveau structurel, la page d'ajout proposera au tout début une simple liste déroulante, contenant tous les jeux proposés. Une fois que l'utilisateur aura fait son choix, le vrai formulaire apparaîtra avec les valeurs adéquates (nom du jeu, version, dossier d'installation, etc).

Le problème est au niveau des jeux. A la base, je pensais que le mieux était de faire un fichier xml par jeux. Ce fichier contiendrait les informations suivantes :

  • Nom (du jeu)
  • Version
  • Logo
  • Chemin du script d'installation (sur nos serevurs)
  • Liste de paramètres pour le script
  • Chemin d'exécution du jeu
  • Paramètres pour lancer le jeu (tel que port, ip, etc)

(d'ailleurs, si j'en oublie, n'hésitez pas !)

Le problème, est que pour afficher une liste de 50 jeux, il faudra parcourir 50 fichiers, et en plus ouvrir celui que l'utilisateur aura sélectionné pour récupérer les autres données, et cela à chaque fois que l'utilisateur affichera la page "Ajouter".

Ça peux vite devenir lourd !

Du coup, j'aurais deux solutions, mais j'aimerai vos avis (quelle solution serait la meilleure ? (d'autres propositions sont permises)) :

  1. Faire un master file xml, qui contiendrait la liste des fichiers xml avec le nom du jeu (la liste affichera le nom et aura comme clée le fichier).
    Le problème avec cette méthode est qu'il faut mettre à jour le master file à chaque fois qu'un nouveau jeu est ajouté.
  2. L'autre solution consisterait à tout mettre en base. On oublie complètement le chargement des fichiers xml dans ce cas. Là, le problème est que cette implémentation impose la création de trois nouvelles tables : les informations du jeu, les paramètres du script d'installation et les paramètres du jeu.

D'après vous, quelle serait la meilleure méthode, laquelle utiliseriez-vous ? Serait-ce la 1 ? la 2 ? ou une autre carrément plus adaptée ? :)

Merci de me laisser vos avis !

Filed under  //  Development   GSPanel   Projects   Python   avis   base   installation   jeu   liste   paramètres   question   script   table   xml  
Posted by Cyril Nicodème 

Netbeans : Only using space tabs for python

I like to use tab as separator for all my files (html/css/js) but it is recommended to use space tabulation for python files.

With netbeans, the problem is if you go in the preferences :

Tools > Options > Editor > Formatting

you can see the parameter "Expand tabs to spaces" when you are using "Language : All Languages" and "Category : Tabs and Indents" (Of course, I didn't checked this one in order to have tabs and not space).

But, now if you choose Python as Language, there is no "Tabs and Indents" category.

So by default, you had to choose to expand tabs to space for all your files in order to have the python files to work.

But I've found the solution to just using space for python files, and tab for the rest.

All you have to do is to add the following lines to the file

[Netbeans Installed Folder]/.netbeans/6.8/config/Editors/text/x-python/Preferences/org-netbeans-modules-editor-settings-CustomPreferences.xml
<entry javaType="java.lang.String" name="code-template-expand-key" xml:space="preserve">
        <value><![CDATA[TAB]]></value>
    </entry>
    <entry javaType="java.lang.Boolean" name="expand-tabs" xml:space="preserve">
        <value><![CDATA[true]]></value>
    </entry>

Restart your editors and that's it ! You can now have space for python and tabs for the rest of your script files !

Hope this helps !

Filed under  //  Development   Netbeans 6.8   Projects   Python   expand   indent   size   space   tabs  
Posted by Cyril Nicodème 

GSPanel - Coming soon en page d'accueil

Nous venons de mettre à jour la page d'accueil de notre projet GSPanel.

Cette page affiche maintenant un très joli "Coming soon".

Pour faire suite à notre précédent article sur le sujet, la deadline définitive est prévue pour début juin.

Nous espérons respecter cette limite et vous proposer un produit de qualité dans les temps impartis ! (qui a dit "impossible" ? ;)).

Une version alpha est cependant prévue pour la fin mars (30/03). Nous contacterons les personnes ayant déjà renseignée leur email pour leur proposer de tester l'application.

Rendez-vous donc fin mars !

Filed under  //  Development   GSPanel   Projects   coming   newsletter   release   soon  
Posted by Cyril Nicodème 

Amélioration du script d'ajout d'image sur Black-Frames

Le script cron que l'on utilisais pour mettre à jour les images sur Black-Frames souffrait d'un bug gênant.

En effet, lorsqu'il n'y avait plus d'images à afficher, le script envoyait quand même un tweet vide et moche, du genre :

http://black-frames.net/i- - :

C'est maintenant chose corrigée. Lorsqu'il n'y a plus d'images dans le système de queue, le script prends une ancienne image affichée et la remet au goût du jour, ce afin de toujours proposer des images.

Certains vont penser que du coup, le site semblera un peu répétitif. Nous avons une base de plus de 1500 images. Si on part du principe que l'on affiche 5 images par jours, vous verrez la même image au bout de 300 jours.

Mais cela ne veux pas dire que nous n'ajouterons plus de nouvelles images ! Nous avons encore de côté 300 images à ajouter (il faut juste trouver le temps de le faire) et nous récupérons régulièrement de nouvelles images !

Ce script nous permettra juste d'effectuer une mise à jour constante du site afin de vous proposer des images régulièrement !

Filed under  //  Development   Php   Projects   Scripts   black-frames   bug   cron   tweet   twitter  
Posted by Cyril Nicodème