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 

Bien réussir une présentation

Lorsque vous faites une conférence, ou que vous présentez un nouveau produit à une audience, il y a quelques règles à respecter afin que cette présentation se déroule le mieux possible.

Nous commençerons par vous donner quelques conseils et nous enchaînerons avec 5 erreurs à ne pas faire.

Afin de bien réussir votre démonstration, il vous faut :

  • Bien la préparer : Envoyez une démo aux participants, partagez le ppt au moins un jour en avance.
  • Le présentateur doit avoir un bon accent, il doit parler lentement et clairement, afin d'être entendu distinctement par tout le monde
  • Le/les présentateur(s) doivent être présent au moins 30 minutes avant le début de la conférence, il n'ont aucun droit d'arriver en retard !
  • Faites tous les tests 20 minutes en avance : réseau, logiciel, ppt, net meeting. Tout doit fonctionner à merveille lorsque la conférence commence.
  • Accueillir l'audience, introduire les présentateurs, commencer l'introduction
  • Faites une description de ce que vous allez présenter et demandez à l'audience si rien ne leur semble avoir été oublié
  • Faites la démo. Soyez clair et précis
  • Lors de points sensible, n'hésitez pas à demander si l'audience comprends et s'ils n'ont pas de questions
  • Pendant la présentation, un des présentateurs prendra note de toutes les questions posées, afin d'améliorer la prochaine conférence
  • A la fin de la démo, répondez aux questions que vous avez mis de côté
  • Demandez à l'audience si cette démo convenait à leur attentes
  • Remerciez l'audience et finissez la démo
  • Envoyez un email pour les remercier de leur présence ainsi que des notes qui ont été enregistrées durant la conférence. Cela montre à quel point vous vous impliquez dans votre travail

Maintenant, vous devriez absolument éviter de :

  • faire une présentation floue, ce qui rends tout le processus inutile
  • faire une présentation tellement longue que l'audience s'ennuie et n'écoute plus
  • donner des informations qui n'ont aucun rapport avec la conférence
  • faire une conférence tellement précise et pointue que le sens général en est perdu (et l'audience aussi du coup !)
  • passer d'un point à un autre sans transitions, ce qui à pour effet de perturber l'audience et perdre des personnes au passage, ce qui les rends plus confus qu'au départ.

Les articles d'origine (en anglais) :

Filed under  //  General   Projects   audience   conférence   démo   démonstration   participants   personnes   presentation   public   question  
Posted by Cyril Nicodème 

Les 10 questions à poser à un DBA senior

Le blog de Brent Ozar propose 10 questions à poser à un DBA senior afin d'évaluer ses capacités.

  • Le FizzBuzz programme. Demandez lui d'écrire une requête T-SQL qui affiche des nombres de 1 à 100, et pour tous les multiples de 3, afficher "Fizz", pour tous les multiples de 5, afficher "Buzz", et pour tous les multiples des deux nombres à la fois, afficher "FizzBuzz". L'idée derrière cette question est de voir comment la personne attaque le sujet, son enthousiasme, sa méthodologie, etc
  • "Je suis un manager, vous êtes mon DBA Senior. Expliquez moi pourquoi nous ne devrions pas passer de MySQL à Oracle."
  • "Je suis un développeur, expliquez moi pourquoi ai-je besoin d'une clé unique dans mes tables."
  • Un chef de projet à besoin d'un nouveau SQL Server. Quelle question vous lui posez ?
  • Où et quand les groupes d'utilisateurs locaux se rencontrent-ils ?
  • Pouvez-vous me donner des références d'autre DBA senior et développeurs ne travaillant pas dans la même entreprise que la vôtre ?
  • Comment vous tenez-vous informés ?
  • Quels outils de gestion de base de données préférez-vous ?
  • Posez des questions stressantes.
  • Pourquoi êtes-vous ici ?

Tous les détails ici.

Filed under  //  Projects   dba   entretien   interview   question   senor  
Posted by Cyril Nicodème 

Utiliser un framework ? Pourquoi faire !

En ce moment, la grande mode, c'est les frameworks. Tellement une grande mode, que la liste est immense !

Au niveau PHP, on connais les principaux :

  • Zend Framework
  • Code Igniter
  • Symfony
  • CakePHP
  • EZPublish
  • ...

Mais de l'autre côté, on entends aussi beaucoup parler du fait que les frameworks sont lourds, qu'ils embarquent plein (trop) de choses inutiles, qu'ils ralentissent la distribution des pages web. Même Rasmus Lerdorf le pense !

Mais alors qui croire ?

Paul Jones, au travers du site phpadvent.org (sorte de calendrier de l'avent pour PHP) à publié un article sur lequel il exprime sa pensée sur les frameworks. Une idée générale sort de sont article. Une idée que de plus en plus de développeur commencent à suivre.

Développer son propre framework depuis le début, c'est bien ! Si vous êtes tout seul, vous aurez une base réutilisable pour créer des applications en ligne. Mais à partir du moment ou vous serez plusieurs, les conflits vont commencer à menacer votre réalisation. Que ce soit une architecture complexe, une vision différente du style de développement (camelCase, etc), il y aura toujours quelque chose qui ne vas pas.

De plus, avec le temps, vos clients vont vous demander de plus en plus de fonctionnalitées. Très souvent, ce sera demandé dans l'urgence. Tellement urgent que vous ne prendrez pas le temps de faire la documentation. Dans un an, vous aurez un framework relativement complet, mais inexploitable que par vous. Quiconque tentra de comprendre quelque chose y sera perdu, la manque de documentation ne faisant qu'empirer les choses.

Mais alors ? quelle est la solution ?

D'après moi, et malgré les deux écoles qui s'affrontent sur le oui/non de l'utilisation d'un framework, je dirai que cela dépends. En effet, utiliser un framework comme ZF pour réaliser le site d'un village de 500 personnes, c'est un peu comme apporter un missile nucléaire pour faire sortir un cambrioleur !

Par contre, si la mairie est plus importante, et demande des moyens plus conséquents (gestion du personnel, des évènements, etc). L'usage d'un framework semble plus approprié. De plus, il est fort probable qu'ensuite, la mairie vous demande, à vous ou à une autre agence d'implémenter de nouvelles fonctionnalitées. Si vous avez utilisé votre propre framework pour ce type de site, vous risquez de rencontrer des problèmes lorsque la mairie souhaitera passer commande auprès d'une autre companie. Et si vous vous dites que c'est pas grave, comme ça elle sera obligée de traiter avec vous, vous vous mettez le doigt dans l'oeil ! Elle tentera de contacter une autre agence qui refusera le travail car ce qui est déjà en place est un véritable chantier, inintelligible pour eux, ou qui mettrait trop de temps à comprendre. Elle sera obligé de traiter avec vous (alors qu'elle aura traité avec une autre agence pour une bonne raison) et votre relation sera plus que tendue.

C'est vraiment cela que vous voulez ?

Donc avant de réaliser un site web/une application en ligne. Réfléchissez à l'usage de votre réalisation, maintenant et demain, afin de prendre la bonne décision.

Si votre soucis face aux framework est un problème de temps de réponses, sachez que vous pourrez gérer la plupart de vos visiteurs sans aucun soucis ! En moyenne, les frameworks sont capable de retoruner en moyenne 100 pages par secondes ! Ce qui corresponds à 100 visiteurs par secondes !

C'est énorme !

Si vous êtes toujours sceptique, vous pouvez toujours mettre en place des systèmes de cache, tel qu'APC, qui réduira fortement le temps de traitement !

Enfin, si vous êtes toujours sceptique, sachez que Yahoo et Dailymotion utilisent Symfony (qui est l'un des pires en terme de temps de traitement d'apès le benchmark de Rasmus Lerdorf !). Alors vous allez me faire croire qu'avec vos 500 visiteurs par jours, un framework n'est pas adapté ?

Laissez moi rire (:

Filed under  //  Development   General   Projects   Rasmus Lerdorf   Symphony   Zend Framework   apc   benchmark   cakephp   codeigniter   ezpublish   question   temps   utile  
Posted by Cyril Nicodème