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 

A quoi ressemble du beau HTML ?

J'était déjà tombé sur cet article et déjà à l'époque il m'avait beaucoup plus.

Chris Coyier, de Css-Tricks propose une mise à jour de son article parlant de la beauté du code HTML.

Media_httpblog1reflec_edosb

Voici une traduction pour les non anglophones des différents points.

  • HTML5 - HTML5 et ses nouveaux éléments rendent le HTML encore plus beau que jamais.
  • DOCTYPE - HTML5 a le meilleur doctype !
  • Indentation - Le code est indenté de façon a montrer la relation père/fils des différents noeuds et mettre en valeur cette hiérarchie
  • Charset - Déclaré en tout premier dans la partie head, avant tout contenu.
  • Title - Le titre du site est simple et propre. Le but de la page apparaît en premier, suivi d'un séparateur et finis par le titre du site.
  • CSS - Un seul style est utilisé (les différents types de médias sont déclarés dans la feuille de style) et appliqués uniquement aux bons navigateurs. IE 6 et les versions précédentes ont une feuille de style universelle.
  • Body - ID appliqué au body afin de proposer un style unique de page sans ajouter de tags superflus.
  • Javascript - jQuery est chargé depuis les serveurs Google. Un seul fichier javascript est chargé. Les scripts sont indiqués à la fin de la page.
  • Chemin vers les fichiers - Les ressources chargés utilisent des chemins relatifs pour être plus efficaces. Le chemin vers des contenus est quant à lui absolu, afin de pouvoir le proposer à travers d'autres plateforme (lecteur de flux rss par exemple).
  • Attribut des images - Les images possède un texte alternatif, principalement pour les personnes utilisant des navigateurs adaptés mais aussi pour la validation. Hauteur et largeur sont indiquées afin d'améliorer le rendu.
  • Le contenu principal en premier - Le contenu principal de la page arrive après les éléments principaux (titres, menus, etc) mais avant les contenus secondaires (sidebar).
  • Utilisation des éléments descriptif appropriés - Header, Nav, Section, Article, Aside ... toutes ces propriétés décrivent le contenu qu'elles contiennent de façon plus efficace que l'utilisation de divs.
  • Hierarchie - le tag Title est réservé pour du contenu concret, et suis une hiérarchie claire.
  • Description appropriée des Tags - Les listes sont marquées comme des listes, dépendants du type de liste : ordonnée, non ordonnée, et la liste de définitions
  • Contenu récurrent est inclus - Les éléments qui sont utilisés dans plusieurs pages sont incluses via un traitement côté serveur.
  • Classes sémantiques - Utilisation de nom, classes, ids appropriés sémantiquement : Elle décrive ce qu'elle font et pas comment ("col" au lieu de "leftbar")
  • Classes - Elles sont utilisées à chaque fois qu'un style doit être appliquée plusieurs fois.
  • IDs - Ils sont utilisés à chaque fois qu'un élément apparait qu'une seule fois.
  • Element dynamique - Ce qui doit être dynamique est dynamique.
  • Encodage des caractères - Si c'est une caractère spécial, il sera encodé.
  • Liberté de rendu - Aucun point dans la page applique un style visuel et aucun ne doit le faire. Tout dans la page doit être contextuel.
  • Commentaires - Les commentaires présents ne peuvent pas avoir l'air évident au premier abord, mais pourrons aider lors d'une prochaine relecture.
  • Valide - Le code doit respecter les recommandations W3C. Les tags doivent être clos, les attributs requis utilisés et aucun élément ne doit être déprécié.

Filed under  //  Development   General   Html   beautiful   code   image   tag  
Posted by Cyril Nicodème 

Is your code ready for production ?

Thats it, you have just finished to develop your new impressive, amazing web application, and you are ready to show it at the rest of the world. You send your files to your production server, you goes to the welcome page to check if everything is ok, and you get this :

Access denied for user 'user'@'server' (using password: YES)

Ok ! You just forget to modify your config files for the server.

But wait ! WAIT ! Are you really display this kind of errors in a production use ? Seriously ?

Your users DON'T CARE if your application cannot access to the database, really !

They just want to see nice pages with nice ajax effets (wahou!)

When an error occurs, a good solution would be to display a message like :

Sorry,
our site isn't accessible for the moment,
please try later.

But NO errors !

So, before launching your website, here is some stress tests you can do, to see how your application will react :

  • Shutdown MySQL (of course, the development one ...).  You will be amazed to see how many page display strange errors :p
  • Rename your database or delete it (of course, do a backup before ...)
  • Rename some table (Do I really need to mention the backup ?). You can rename one and test, then rename an other, or few others at the same time, and every time : check your application.
  • Rename/Move some files. What happens if the inclusion don't work ? (yes .. it's a bit extrem, but why not ?)
  • Make some code mistakes voluntary (forgot a ";", "}", etc)
  • Move/Rename the css folder, and the js folder. What you'll see is what could happen in a browser with js/css disabled.
  • Move/Rename the images folder. What you'll see could happen for someone that have a slow bandwidth (56k for example).

And if your application use Ajax request, load a page and retry all the checks before, to see how your javascript code react. You can also shutdown the web server (Apache, Glassfish, IIS, ...) to see how your ajax handlers will responds.

If, with all the tests you made, the only information you receive is an nice page or a nice dialog with a human readable and simple message, your website is really ready for production use.

Of course, tracking errors is important. Don't forget to log all occured errors ! (in a file, by mail, it depends on how your sure about your work ;)).

I hope you enjoyed reading this article. I probably made some English mistakes and I apologize for that. I try to do my best (:

Feel free to add comments. I'll enjoy discuss about that with you :)

Filed under  //  Development   Projects   check   code   error   production   ready   stress   test   use  
Posted by Cyril Nicodème 

Quelques expressions de devs

"Les premiers 90% de code comptes pour les 90% du temps de développement. Les 10% derniers compte pour les autres 90% de temps de développement.", Tom Cargill

"Beaucoup d'entre vous sont familiers avec les vertus d'un programmeur. Il y en a 3, Paresse, Impatience, Prétention.", Larry Wall

"Mesurer la progression du développement par le nombre de ligne de code, c'est comme mesurer la réalisation par son poids.", Bill Gates

"Débugguer est deux fois plus compliqué qu'écrire le code. Par conséquent, si vous écrivez le code aussi intelligement que possible, vous n'êtes, par définition, pas suffisament intelligent pour le débugguer.", Brian W. Kernighan

"Quand une nouvelle technologie se développe, si vous ne faites pas partie du rouleau compresseur, vous faites partie de la route.", Stewart Brand

"En theorie, il n'y a aucune différence entre la théorie et la pratique. En pratique, si.", Jan L. A. van de Snepscheut

"La partie la plus difficile du design, c'est de garder les caractéristiques principales en dehors.", Donald Norman

"Avant qu'un logiciel soit ré-utilisable, il doit d'abord être utilisable.", Ralph Johnson

"Si débugguer c'est le processus qui consiste à enlever les bugs, alors développer doit être le processus qui consiste à les mettres.", Edsger Dijkstra

"Les logiciels et les cathédrales sont identiques. En premier on les construits, ensutie on prie.", Anonyme

"Un logiciel n'est réellement terminé que lorsque le dernier utilisateur est mort."

"Mieux vaut former des utilisateurs et risquer de les perdre, plutôt que de ne rien faire et qu'ils restent."

"Programmer, c'est 10% de Science, 20% d'ingénieusité et 70% de réfléxion sur comment faire fonctionner la science et l'ingénieusité ensemble."

"Tous les programmeurs sont des auteurs et les pc des acteurs minable."

"Un mauvais code n'en est pas un, il est juste mal compris."

"Il est plus facile de mesurer quelque chose que de comprendre ce que l'on mesure."

"Lorsqu'un langage de développement est crée permettant au programmeurs de coder en Anglais, on se rends compte que les programmeurs ne parlent pas Anglais."

"Les tests de performances ne mentent pas, mais les menteurs font des tests de performance."

La version originale se trouve ici. Et oui... je sais ... mon anglais tend à être amélioré ! (:

Filed under  //  Development   Humour   adage   code   expression   logiciel   programme   quote   user   utilisateur  
Posted by Cyril Nicodème 

Potsteet

Today I discover a new kind of social group, called potsteet (http://www.posteet.com/), it's particularity is on the kind of social group : We can share ... source of our codes, between only you, private friends, or everybody.

It's very interesting because you can find a lots of tricks on this website :)

Filed under  //  Development   code   group   potsteet   share   social  
Posted by Cyril Nicodème