Un imprimante qui imprime mal ? On va la nettoyer ! (HP Officejet 6600)

J’ai récemment récupéré une imprimante, HP Officejet 6600, que je n’avais pas utilisé depuis quelques années (deux ans en fait…). Manque de bol, lorsque je l’avais rangé, j’avais laissé les cartouches (compatibles, pas originales) dedans. Après quelques années de non-utilisation, je vous laisse imaginer le résultat…

Ma première impression fut une calamité : le jaune sortait vert, le noir n’était pas net du tout, le cyan étant quasiment noir et le magenta, je n’en parle même pas… Je ne voulais cependant pas jeter une imprimante qui m’avait tout au plus servi une dizaine de fois. Après quelques recherches sur Internet, le problème viendrait probablement des buses d’impressions qui seraient bouchées (dû à la piètre qualité des cartouches compatible, ou de la longue période d’inactivité). Avec un petit budget inférieur à 5 €, j’ai entièrement nettoyé ces buses et l’imprimantes est maintenant comme neuve !

(suite…)

Lire la suite

Créer une clef bootable depuis OSX

Comme vous l’avez sans doute lu précédemment, j’ai eu quelques petits soucis de disques durs… Samsung m’en a enfin livré un nouveau, tout beau tout neuf.

J’ai donc voulu me créer une jolie clef bootable depuis OSX pour installer mon système sur ce nouveau venu. Au premier abord, effectuer cette manip sous OSX semble simple. Mais très vite, les erreurs du type Impossible de valider la source - erreur 254 arrivent.

Du coup, je me suis dit que la façon la plus « simple » de procéder était de passer par le terminal. Voici la procédure…

(suite…)

Lire la suite

Comment ce film aurait-il du finir ?

Hello !

En plus des nouvelles technologies, je suis également un grand fan de cinéma. Souvent, dans les films les personnages ont des réactions bizarres, qui du coup donnent lieu à des problèmes supplémentaires. Le dernier exemple ne date de pas plus tard qu’hier. Je suis allé voir Night Run et (attention, spoiler !) dans une des scènes, un des personnage a un des tueurs à ses trousses en joue, prêt à l’éliminer mais il ne saisit pas l’occasion… Plus tard dans le film, je vous laisse deviner qui revient à la charge ?!Eh oui ! Je suis sûr que ce genre d’absurdité vous a sauté aux yeux aussi !

Visiblement, je ne suis pas le seul !

Vous connaissez « How Should It Have Ended? » ? C’est une petite série de vidéos qui exploite ce genre d’absurdité et invente des fins/passages alternatifs… Je vous laisse admirer l’épisode sur Les Gardiens de la Galaxie :

 

Lire la suite

Les disques dur SSD – Encore trop tôt ?

Il y a un an, je décidais de booster un peu mon PC fixe en achetant un disque dur SSD. Malgré les mésaventures déjà encourues avec mon Macbook (qui en est déjà à son 3e disque dur, dont le 2e SSD) j’ai décidé de ne pas prendre le simple entrée de gamme, mais de bien faire la chose en lisant quelques tests. A l’époque, j’ai jeté mon dévolu sur le Samsung SSD 840 PRO 128 GB. Seulement, les problèmes ne sont pas tout de suite arrivés.

Un an et 10 jours (notons bien les 10 jours …) après son acquisition, voilà pas que la petite bête décidé subitement de mettre fin à ses jours, comme ça, sans prévenir. Soit, je me rends dans ma boutique, qui m’annonce que s’il avait claqué 10 jours auparavant, je serai reparti avec un joli disque tout neuf, mais pas de chance, je dois maintenant contacter directement Samsung. A première vue, rien de bien compliqué. Mais obtenir un retour chez Samsung demande visiblement plus de procédure que d’obtenir un rendez-vous avec Obama.

Première étape : Faire un bon de retour. Jusqu’ici pas très compliqué, on note le numéro de série, le modèle, les infos persos, tout ça et on valide. Super ! Le bon de retour est généré, je l’imprime en deux exemplaires, comme mentionné. Je signe un des deux exemplaires, comme mentionné. Je prépare ensuite le carton et … petit détail … je le renvoie où ? Aucune adresse n’est mentionnée sur le bon de retour, ni sur le site Samsung.

Deuxième étape : Contacter Samsung. On commence par la facilité, le fameux t’chat en ligne. Pas de pot, je me fais rembarrer en coréen par leur serveur Oracle :

samsung-oracle-bug

 

Bon, on respire, on décroche le téléphone et on appelle la hotline (ouverte jusqu’à 20h ! Magnifique !). On dégaine donc l’iPhone et on compose le petit numéro 01 48 63 00 00. Après moult interaction avec la dame du serveur vocal, je me trouve connecté à un technicien. La conversation a été relativement courte :

  • Moi : « Bonjour, je vous appelle au sujet d’un disque SSD Samsung 840 PRO 128 GB que j’ai acquis il y a un peu plus d’un an, et qui ne passe plus en garantie à la boutique mais directement chez vous. Il a cessé de fonctionner il y a quelques jours. Quelle est la procédure ? »
  • Le monsieur (serein) : « Bonjour Monsieur, pour tout ce qui concerne le stockage SSD, ce n’est pas cette hotline ci. Il faut appeler le 00 800 8010 8011. Bonne journée ! »

C’était court hein ?

Soit, j’appelle ce fameux numéro et une douce voix avec un accent très prononcé (indien peut être ?) m’annonce que leur bureaux sont ouverts de 8h30 à 17h00. Hum. Je vais rappeler pendant ces fameuses heures d’ouverture ! On verra bien !

Suite au prochain épisode… (comme ils disent dans les séries US…)

Edit 19/03 : Après avoir été en relation par e-mail avec les gens de Samsung (service SSD !), le problème est presque réglé. Ces messieurs se sont chargés de m’envoyer DHL récupérer le disque défectueux pour procéder à l’échange ! Comme quoi, si vous avez un disque qui pète, pas la peine d’aller sur le site de Samsung, passez directement par l’e-mail : samsungmemory@hanaro.eu. Vous serez en relation avec un service technique compétant qui règlera le soucis en moins de 48h !

Lire la suite

Middleware Bootstrap pour ExpressJS

Je suis souvent amené à travailler avec ExpressJS pour créer des applications disposant de hiérarchie plus ou moins complexes. Pour ceux qui ne connaissent pas, ExpressJS (ou Express) est un module pour NodeJS (encore ? et oui !), ou plutôt un framework pour créer des applications Web rapidement. Par application Web, j’entends le sens large du terme : aussi bien des API REST que des interfaces utilisateurs. Je reviendrai sur les API REST dans un avenir proche, car ici, ce sont les interfaces qui nous intéressent.

Pour réaliser les GUI, j’ai pour habitude d’utiliser Bootstrap. Il est simple, rapide d’installation et fournit les bases pour toute interface responsive bien faite. Cependant, je n’ai pas trouvé de façon aisée de combiner Bootstrap et ExpressJS. Sur tous les librairies que j’ai pu croiser, il fallait créer de nombreux chemins statiques pour pouvoir servir au Frontend les différents fichiers dont est composé Bootstrap.

Pour me faciliter la vie – et j’espère également la votre -, j’ai créé un petit middleware sous la forme d’un module NodeJS qui se charge de créer ces routes statiques, basées sur la dernière version de Bootstrap. Il s’agit de express-bootstrap-service. En trois lignes de codes, Bootstrap sera disponibles pour votre interface Frontend. Voici une application d’exemple :

var bootstrapService = require("express-bootstrap-service");
var express = require('express');
var app = express();
 
app.use(bootstrapService.serve);
app.get('/', function (req, res) {
  res.send('Hello World!');
});
 
var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;
  console.log('Example app listening at http://%s:%s', host, port);
});

Ce module va créer des routes permettant d’inclure les scripts JavaScript et feuilles de style CSS dans les différents templates.

La documentation complète est disponible sur la petite page dédiée : Bootstrap Middleware for ExpressJS ou bien sur Github.

Lire la suite

Mon environnement de test / development

Si, comme moi, vous aimez bien bricoler des langages server-side mais n’avez pas forcément une vieille machine à recycler en serveur, ou l’utilité de claquer une centaine d’euros par mois en serveur dédié, j’ai la solution ! Je me suis installé un petit environnement de test (notamment pour NodeJS, mon langage du moment) qui n’est -certes- pas aussi puissant qu’un serveur dédié mais qui s’en rapproche.

J’ai donc souscrit à un Virtual Private Server (VPS) chez OVH. Pour la modique somme de 2,39 € / mois, je dispose d’un petit environnement sur le Cloud (c’est à la mode en plus !) ayant des caractéristiques assez similaires à un serveur dédié, juste avec un espace et un processeur assez limité.

Mon installation est relativement simple. Lors de la commande, j’ai choisi d’installer la dernière version de Debian disponible. En quelques minutes, le serveur a été créé et j’ai reçu par email mes identifiants de connexion. Ci-dessous, nous allons voir comment installer simplement NodeJS pour effectuer des petits tests !

(suite…)

Lire la suite

Annoncer la météo avec NodeJS

Hello !

Voici un petit guide qui va vous montrer comment réaliser un script NodeJS qui va vous informer du temps qu’il fait :-). Nous aurons recours à deux API externes :

  • l’API de OpenWeatherMap : http://openweathermap.org/api
  • l’API (non officielle) de Google Text-to-speech : translate.google.com/translate_tts

Avant tout, cette étape m’a permise de tester le service TTS proposé par Google. Bien que je ne m’attendais pas à une voix aussi parfaite qu’un réel humain, j’avoue que j’ai un peu été déçu par la voix retournée par l’API de Google. Je m’attendais quand même à quelque chose de plus proche de la commande « say » de OSX qui, elle, est relativement fluide dans la parole.

L’idée est de faire dire – pour le moment manuellement – à cette douce voix une phrase du style : « Bulletin météo : *le temps qu’il fait*. Il fait actuellement *température* degrés. »

(suite…)

Lire la suite

Comment calculer l’âge en PHP ?

Voici une question qui me revient assez souvent : comment calculer l’âge à partir d’une date de naissance en utilisant PHP ? Et bien la réponse est assez simple ! Je vous propose ci-dessous une petite méthode que vous pourrez garder sous le coude pour accomplir cette tâche :

/**
 * Méthode permettant de calculer l'âge en PHP
 * à partir d'une date au format JJ/MM/AAAA (à la française)
 */
function getAge($dateOfBirth) {
    // On split la date de naissance au caractère "/"
    $segments = explode('/', $dateOfBirth);

    // On calcule le timestamp UNIX correspondant à cette date
    $timestampDoB = strtotime($segments[2]."-".$segments[1]."-".$segments[0]);

    // On calcule le nombre de secondes se sont écoulées entre 
    // ce timestamp et maintenant
    $deltaSec = time() - $timestampDoB;

    // Combien de secondes y a-t-il dans une année ? Réponse ci-dessous...
    // (d'après Google...)
    $secPerYear = 31556926;

    // On fait un peu de maths...
    return floor($deltaSec / $secPerYear);
}

echo "Vu que je suis né le 15 octobre 1989, j'ai ". getAge('15/10/1989') ." ans";

Et voilà ! Fastoche non ?

Lire la suite

Émulation d’un sous domaine

L’émulation de sous-domaine est une pratique très utile pour les projets offrant par exemple un espace privé pour les membres, ou encore un SaaS. Bien que cela paraisse très compliqué, c’est relativement simple à mettre en oeuvre. Toutefois, il y a quand même quelques pré-requis liés à votre hébergeur :

  • Le serveur sur lequel votre projet sera hébergé doit utiliser un serveur HTTP Apache ou Nginx (du moins pour ce guide, je mettrais à jour si j’ai d’autres noms :-)).
  • Ce guide utilisera PHP, votre serveur doit donc pouvoir exécuter les scripts PHP.

(suite…)

Lire la suite