Comme vous l’avez probablement remarqué, hier M2i3 et certains autresprojets ont vu une page de « compte suspendu » être affiché. La raison en est simple et découle du fait que pour le moment nous utilisons un compte partagé chez Bluefur.
Voyez-vous, l’avantage d’un compte partagé est qu’il coûte moins cher que d’avoir un serveur dédié. L’espace disque y est, la bande passante aussi… le désavantage est que l’on doit partager les ressources du serveur avec d’autres gens et que le fournisseur de service peut suspendre le compte de quiconque utilise trop de ressources sur le serveur.
C’est ce qui est arrivé hier. Un des projets (actuellement hors ligne en attendant que le problème soit réglé) a vue le nombre de visiteurs augmenter énormément dans les dernières semaines et fait apparaître des problèmes de performances au niveau de l’application. Pour protéger les autres utilisateurs du serveur, Bluefur a donc suspendu notre compte le temps que l’on puisse leur expliquer la raison du problème.
Comme quoi, il n’est pas toujours avantageux de partager… ou pas toujours bien d’être populaire… du moins, sans les ressources nécessaires.
Vous êtes à travailler sur votre dernier projet en « Ruby on Rails » et pour faire vos traces, vous utilisez l’instruction « puts » du module « Kernel ». Après, le tout c’est envoyé à la console et non au fureteur web… Non ?
Cette approche est simple et fonctionne tant que vous utilisez « Webrick ». Vous aurez bien des problèmes si vous devez utiliser « fast-cgi » sous Apache. Voyez-vous, les informations retournées à la console sont retourné au serveur Apache et le texte qui pouvait vous aider à « debugger » votre application l’empêchera tout simplement de fonctionner.
Comment est-ce que je m’en suis rendu compte ce soir ? Par la ligne suivante dans mon log d’erreur : FastCGI: incomplete headers (0 bytes) received from server « /home/…/dispatch.fcgi ».
À bon entendeur!
Jean-Marc
Bon quoi faire dans ce temps la. Nous avons quelques clients qui ne nous ont pas payés encore. Pas tout les mauvais payeurs doivent être pendus haut et court. Je ne paye pas toujours ma facture de telephone cellulaire a temps. De plus nous avons des personnes qui ont des ententes de paiement différentes. C’est correct et normal. Mais quoi faire à ceux qui vous dises que le chèque est dans le courrier. Pas de problème on vous paye pour votre bon travail et puis on entends plus jamais parler d’eux. Je vends la dette à une agence de recouvrement ? Je le poursuis aux petites créances du Québec ? Je coule son portail Web en achetant des liens dans des link farms{en}, puis je mets un mémo sur notre portail qu’il est un mauvais payeur? Je clos le sujet et je passe à autre chose. C’est pas l’envie qui me manque d’utiliser la troisième option. Je crois que nous serons tolérant et tenterons d’avoir notre argent de manière légale.
Oops! Bon, nous sommes de retour en ligne. Un petit problème de serveur chez BlueFur.com. Je dois dire que bien que le problème leur était connu et que nous avions rien à voir avec leur problème. Il leur a prit 13 minutes pour répondre à l’appel de service placé. Je dois dire que leur service technique de BlueFur.com est vraiment bon. Bonne journée.
Vous connaissez l’émission « Des chiffres et des lettres » ? Oui ? Non ? Qu’importe. Nous allons jouer un des jeux de l’émission qui s’intitule « Le compte est bon« .
La définition du jeu tél que spécifié sur Wikipedia est « d’obtenir un nombre (de 100 à 999) à partir d’opérations élémentaires (+,−,×,÷) sur des entiers naturels, en partant de nombres tirés au hasard (de 1 à 10, 25, 50, 75 et 100) ».
Le défi, écrire le code qui vas résoudre le problème en respectant les règles de jeu.
J’ai attaché le code pour générer les nombres et le total à atteindre. À la création de l’objet un nombre à atteindre est choisit ainsi que les 6 nombres à utiliser.
Le reste du code est suffisamment explicite (enfin… je crois) et vous pouvez l’utiliser pour effectuer les opérations mathématiques.
Je vous suggère grandement d’aller dans la direction des heuristiques plutôt que d’analyser toutes les combinaisons possibles.
J’attends vos solutions dans les commentaires. Bonne chance!
Jean-Marc
Il y a bien longtemps que j’ai fais un blogue. Disons que j’ai pris un petit repos bien mérité et je suis de retour. Pour ce soir, je vous présente deux excellents artistes qui travaille dans le média électronique. Le premier, Daniel St-Hilaire qui nomme sont studio Arnak Studio. Rassurez vous, il démontre seulement son grand sens de l’humour. Daniel est un artiste, photographie et modéliste autodidacte. Il démontre un talent incroyable pour la création de model en Maya, la photographie numérique, la retouche sur Photoshop et la création d’image corporative à l’aide d’Illustrator. Daniel a réaliser le logo du nouveau produit de M2i3 qui s’en viens sous peu et qu’on ne peut rien dire pour le moment. Jeter un coup d’oeil à son portefolio il est très fort. Le deuxième est Benoît Goyette. Ingénieur de formation, il est incroyable pour le dessin style bande-dessiné. Il fait ses premiers éssais avec Starship in my
Head une parodie très lointaine de Star Trek. Cette bande dessiné totalement réalisée par ordinateur n’est qu’une pâle image de son réel talent. Inspiré par la bande dessiné Ctrl-Alt-Delete de Tim Buckley et Order of the Stick de Rich Burlew, il développera dans les années à venir un excellent style d’humour et dessin. Voyez Starship in my Head Episode 1, Starship in my Head Episode 2 et Starship in my Head Episode 3. Attention le dernier épisode est un peu en bas de la ceinture. Les gens qui sont facilement choqués ne devrais pas le regarder. Bonne journée.
Depuis 2 semaines, je voyage en terre inconnue… en Finlande, pays de Linus Torvalds (enfin… c’est une façon d’y penser). En fait, depuis 2 semaines je travaille avec différentes distros de Linux pour monter plusieurs environnement de travail, question d’accomplir le travail nécessaire aux annonces de Hugues 😉
Pour ceux qui n’auraient pas fait le lien, Linus Torvalds est le créateur du noyau de Linux. C’est une belle découverte que cet OS, considérant que j’ai passé la majeure partie de mon existence sur les OS de Microsoft.
Malgré mon premier choc d’une interface console, mon côté hacker a rapidement pris le dessus devant la puissance et la souplesse de l’OS. Au point où je me surprends à utiliser la syntaxe de Linux sur mon PC (qui roule sous WindowsXP).
Je suis tombé ces dernières journées sur un vidéo de Ryan McMinn intitulé All Roads Lead to Rails{en}. Ce vidéo fort intéressant a soulevé de nombreuses questions. Devrait-on offrir des contrats forfaitaires pour le développement d’application? Une facturation à l’heure contredit mon blogueur et gourou mercatique Brendon Sinclair. Comme Brendon explique dans son balado (Podcast pour les intimes – Merci Grand Dictionnaire terminologique), The Best Way to Price Your Services and Deliver Value to Your Clients{en}, ceux qui facture leur clients à l’heure sont des LOOOOOOOSSSSEEEERRRRRRS. Après de nombreuse discussions entre Jean-Marc et moi, nous avons décidé de ne plus offrir de contrats à prix forfaitaires, quitte à être traité de LOSER en défiant ouvertement mon gourou. Je vous explique le raisonnement : Martin Fowler explique bien la grande difficulté de réaliser du code. Dans son texte « The New Methodology{fr} », les conclusions que le code source est un document de conception et que la construction du logiciel est l’utilisation du compilateur change beaucoup de nos perspectives de travail mais surtout d’évaluation de la charge de travail. Évaluer un travail créatif est une tâche très ardue. Lors du développement du logiciel, la cible est toujours changeante avec des ajouts, retraits, oublies et modifications. Ryan McMinn dans sont vidéo explique que lorsqu’on travail à prix fixe, il est presque impossible d’arriver tout juste à la valeur prévue. Si on estime trop bas, nous allons perdre notre rentabilité, si nous estimons trop haut, le client se sentira arnaqué ou nous perdrons la vente. Peu de gens seront content. « Oui, mais Hugues : comment le client peut-il avoir confiance qu’il ne sera pas surchargé et que le travail avance bien ? » Cette question est bien valable et la réponse est très simple. Vous faite de petites itérations. Lorsqu’à tous les mois le client reçoit une livraison, il est capable de déduire votre avancement. Avec une approche par tests, il sera facile de le convaincre que le système fonctionne. Ce qui nous rappelle la deuxième règle du manifeste Agile{fr}. Le logiciel fonctionnel primant sur la documentation exhaustive. Dans le cas où vous pouvez avoir un processus répétable, je suis tout à fait en accord avec Brendon Sinclair sur le fait de facturer à la valeur du service. Un hébergement Web, un analyse en un nombre de points limités, un nom de domaine et plein d’autre service peuvent être inclus dans cette catégorie de processus répétable.
Ouf! Le temps me manque. Je suis à finir de rédiger nos termes et conditions. C’est ma troisième version. Jean-Marc trouve les précédentes un peu trop agressive. Je ne comprends pas, j’ai simplement écrit que si l’on était victime de maraudage, le coupable allait rôtir en enfer ! Ce n’est pas très juridique, mais le message est là. Blague à part, quel niveau de langage devrait-on adopter pour écrire nos termes et conditions ? La première question est : Quels sont nos clients potentiels. Un gros client comme les banques ou des entités gouvernementales qui ont une quantité d’avocat pour les conseiller. Dans notre cas, nos clients potentiels sont les petites et les moyennes entreprises (PME). Bien que certains entrepreneurs soient forts biens au courant des lois et règlements, la lecture d’un document au niveau du langage trop juridique aurait pour effet de faire fuir certains d’entre eux. Je suis donc en train de changer mon niveau de langage pour que ça compréhension soit plus simple. Est-ce que ce document tiendra la route devant un juge ? Vous savez ça ne me tente pas vraiment de le savoir. Pour essayer d’améliorer la compréhension, je suis en train d’écrire un document sur l’esprit du document légal. Je reprends donc chacune des phrases légales en décrivant le but de celles-ci. Bon aller, il n’y a pas assez de 24 heures dans mes journées ! J’ai encore du boulot. Bonne journée.
Une discussion intéressante est survenue récemment au bureau. Pas avec Hugues bien sûr… il est déjà convaincu (ou n’ose pas me dire qu’il n’est pas d’accord… mais ça c’est une autre histoire *grin*) En fait c’est avec un client que la conversation est survenue… au départ d’une simple question: « Gardez-vous plusieurs version de vos documents et surtout, les prenez vous en backup? »
La réponse: oui et oui… mais il était incapable de récupérer sa proposition d’affaire tel qu’elle était vendredi matin avant qu’il enregistre sa dernière modification sans remarquer que la deuxième partie avait disparu suite à une mauvaise combinaison de touches sur sont clavier. Lorsqu’il a remarqué l’erreur il est donc revenu à la dernière version qu’il avait pris en copie manuellement deux jours avant et à dû se retaper tout le travail.
Vous connaissez quelqu’un à qui s’est arrivé? Pas vous bien sûr… vous faites trop attention pour ça! Eh bien… pour cette connaissance à qui s’est arrivé, pourquoi ne pas utiliser Subversion avec Apache…
Pourquoi? eh bien… nous ne somme pas tous des programmeurs intéressé à faire des check-out/check-in de nos documents… en fait c’est que cette combinaison permet d’afficher le dépôt comme un répertoire sur le réseau (i.e. donc de vous permettre d’ouvrir des documents directement de ce dépôt). Et pour les utilisateurs de MAC ou Linux vous pouvez même monter ce répertoire réseau localement.
Au jour le jour votre gestion de documents en sera même simplifié puisque vous n’aurez plus à prendre les documents en copie manuellement sachant que chaque sauvegarde génère une nouvelle version du document sur le serveur. Vous ne vous inquiéterez pas non plus de l’espace disque puisque Subversion est efficace à mémoriser les changements plutôt que le fichier en entier. De plus vos documents deviennent disponible à partir de votre navigateur internet (à l’intérieur de votre compagnie) ce qui évite d’avoir à envoyer à votre collègue le document par courriel, un simple lien suffit.
Nous l’utilisons chez M2i3… en premier pour le code source… mais aussi pour tous le matériel de la corporation. Avec un peu de travail nous pourrions aussi:
Automatiser les listes de diffusion permettant d’informer les gens de modifications sur les différents documents
Sécuriser et décentraliser la gestion de la sécurité du dépôt
Lier la sécurité du dépôt à notre réseau de façon à n’avoir qu’un seul mot de passe pour l’ensemble des services.
Répliquer le dépôt sur une deuxième machine (dans le même building ou encore… dans un autre ville complètement. La réplication est l’équivalement d’un backup qui survient à chaque modification plutôt qu’une seule fois par jour… ainsi en cas de problème matériel la perte de données est pratiquement nulle.
Intéressé? Curieux d’en savoir plus? Nous pouvons vous aider à installer et configurer un serveur de fichier avec Subversion et Apache… Il s’agit de nous écrire à info@m2i3.com.
Jean-Marc