Après avoir passé du temps sur quelques petits accrochages, je partage aujourd’hui avec grand plaisir non pas une, mais deux astuces en SQL ! C’est gratuit, c’est cadeau, ça me fait plaisir.

La première te servira peut-être si tu utilises SOAP. SOAP c’est un peu comme le savon, sauf qu’au lieu de laver ça t’envoie des données XML via le protocole HTTP, cool non?

Bref, il arrive parfois qu’on ait besoin de convertir un champ SQL binaire en Base64, non ne pars pas, je te jure que ça arrive.

Tiens, mange ça.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- Variable contenant les données binaires
DECLARE @bin VARBINARY(MAX)

-- Variable contenant ces données en base64
DECLARE @base64 VARCHAR(MAX)

-- Récupération des données
SET @bin = (SELECT TON_CHAMP_BINARY FROM TA_TABLE WHERE TA_CLE = UNE_VALEUR)

-- Conversion
SET @base64 = CAST(N'' AS XML).VALUE('xs:base64Binary(xs:hexBinary(sql:variable("@bin")))', 'VARCHAR(MAX)')

-- Affichage
SELECT @base64 AS 'Base64'


Dans la requête « SELECT » tu remplaces bien entendu astucieusement les noms avec ceux de ta table et de ses champs.

La deuxième astuce te permettra d’obtenir le hash MD5 d’une chaine de caractères.

1
2
3
4
5
6
7
8
-- Mot de passe
DECLARE @password VARCHAR(200) = '12345'

-- MD5
DECLARE @md5 VARCHAR(32)

-- Conversion
SET @md5 = (SELECT LOWER(SUBSTRING(CONVERT(VARCHAR(MAX),HashBytes('MD5', @password),1),3,32)))


Tu peux laisser tes commentaires, même si tu comprends rien.


, , ,    
La vingtaine apporte toujours son lot de bonnes intentions, pour ne pas te sentir insignifiant après la période ingrate de l’adolescence tu cherches à participer à de grands projets qui sauvent si possible le monde. C’est ainsi qu’en ces temps lointains je me suis retrouvé à participer au projet SETI@Home, qui m’amène aujourd’hui à te parler du calcul distribué.



Certaines recherches scientifiques demandent des calculs informatiques phénoménaux, une seule machine ne suffisant pas ces calculs sont répartis entre plusieurs ordinateurs. Les données sont distribuées aux machines, calculées puis renvoyées à l’unité centrale. L’avènement d’Internet a apporté une touche mondiale à cette technologique, rendant accessible le calcul distribué (ou « calcul partagé », ou « calcul réparti ») au commun des mortels programmeurs.
Lire la suite



,    
Si tu lis ceci c’est que le titre ne t’a pas découragé, bravo!

Aujourd’hui donc, un article qui va te piquer les yeux.

Ayant récemment eu besoin (en PHP) d’afficher le contenu d’une variable tableau sous forme de treeview, je me suis rendu compte que les bouts de code permettant une telle opération étaient plus que rares sur la toile, et que ceux disponibles étaient compliqués voire complètement pourris. Tu noteras que je tiens en très haute estime certains de mes compatriotes développeurs.

N’étant jamais mieux servi que par soi-même je me suis lancé dans le codage d’une fonction récursive, le résultat s’est avéré être beaucoup plus simple que prévu.

Bref, voici le code miraculeux fait maison, basique et efficace, parce que c’est tout ce qu’on lui demande.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Fonction de dessin basique d'un "array" PHP sous forme de treeview
// 10.05.2011 - gael@memepasmal.ch - http://www.memepasmal.ch/2011/05/10/php-array-treeview/
function drawTree($myarray, $level = 0)
{

    // Boucle sur chaque élément du tableau
    foreach($myarray as $key => $value)
    {
   
        // En cas d'objet on convertit en tableau
        if (is_object($value)) $value = (array)$value;
       
        // Si l'élément est un tableau
        if (is_array($value)) {
       
            // On l'affiche en tant que noeud
            echo '<div style="padding-left: ' . ($level * 20) . 'px">[' . $key . ']</div>';
           
            // Puis on affiche son arborescence, à un niveau supérieur
            drawTree($value, $level + 1);
           
        } else {
       
            // C'est une valeur, on l'affiche
            echo '<div style="padding-left: ' . ($level * 20) . 'px">' . $key . ' = <b>' . $value . '</b></div>';
           
        }
       
    }

}


Tu copies ça quelque part dans ton code PHP, tu appelles la fonction « drawTree » en passant ta variable array en paramètre, et puis tu admires le splendide résultat en sirotant ta bière.

Merci de ton attention, tu peux maintenant reprendre une vie normale.


   

Il fût un temps où les relations sentimentales tumultueuses noircissaient des pages de papier dans les romans populaires. Aujourd’hui l’aspect romantique s’estompe, on vit en direct chaque moment intime de son entourage grâce à une des plus fantastiques inventions de l’humanité : Facebook.

Les fins de relations mouvementées annihilent toute retenue, les deux protagonistes semblent s’exprimer comme s’ils étaient seuls au monde, le résultat peut être parfois surprenant vu de l’extérieur, il suit toutefois un certain schéma régulier.

Prologue

Tu as toi aussi dans tes amis ce couple idéal, celui qui s’envoie chaque jour des messages d’amour mielleux sans aucune gêne apparente.

À ce stade chacun gère la lecture des statuts selon son niveau de tolérance à la douleur mentale. L’effet produit est similaire à celui qui consisterait à surprendre accidentellement son arrière-grand mère sous la douche, une sorte de gêne d’avoir pénétré l’intimité ultime d’une personne proche, accompagné d’un petit goût de bile qui remonte.

Mais tel le beurre au soleil rien ne dure jamais éternellement, et un jour…

Chapitre 1 – L’annonce


Tu remarqueras qu’il y a toujours une personne sensible pour cliquer sur « J’aime » , lançant ainsi les pires rumeurs.

On fulmine, on rumine, mais le sentiment prépondérant à cet instant précis est surtout une incompréhension générale.

Avec toujours cette même personne fidèle au poste qui, années après années, écrit régulièrement « ma belle » quand elle s’adresse à ses copines.

Chapitre 2 – Les témoignages à chaud

Les premières minutes qui suivent la publication officielle laissent souvent libre cours aux déjections hormonales, toujours de manière subtile cela va de soi. Les acteurs principaux laissent éclater leur joie ou leur désarroi avec le ton adapté à une telle situation.

En général les potes répondent rapidement, pour témoigner de leur virile solidarité. S’inspirant de nos exemplaires politiciens, certains n’hésite d’ailleurs pas à retourner leur veste de manière surprenante.

Le problème pour un couple qui vit en plein pêché biblique (en concubinage par exemple) c’est qu’un des deux doit se barrer rapidement de l’appartement. En effet, l’entente nécessaire à une cohabitation harmonieuse n’est plus vraiment au goût du jour.

Chapitre 3 – Les explications

La violence de la séparation passée de quelques heures (ce qui correspondrait à plusieurs jours dans le monde réel), l’ancien couple commence à expliquer les raisons de son explosion subite en laissant trainer quelques vagues indices.

Et là, tu commences à comprendre ce qui a causé cette terrible déchirure.

Heureusement nous sommes humains, et toute épreuve finit par passer.

Chapitre 4 – La reprise

Tout va bien dans le meilleur des mondes, du moins on essaie de s’en convaincre. L’abandonné (ou l’abandonnée) publie des messages encourageants, même s’ils donnent l’impression d’avoir été écrits suite à une injection directe de Prozac™ dans le cortex cérébral.

Parfois des citations célèbres sont évoquées, sans oublier d’indiquer son auteur, faux de préférence. Car sache-le vil païen, ce n’est pas Céline Dion qui a originalement prononcé « les derniers seront les premiers, et les premiers seront les derniers » .

Bref, tous cette confiture aux monologues continue de s’étaler paisiblement sur ta page d’accueil, jusqu’à ce que…

Et là, personne n’est à l’abri d’un retour de flamme.

Du coup, l’homme (ou la femme) volage commence à culpabiliser, il montre quelques signes de remords et l’annonce à son entourage.

Le plus difficile à cet instant est de résister à l’envie de bannir de ta liste d’amis cet enragé qui vient de t’insulter ouvertement, mais ce serait dommage de rater la fin de l’histoire.

Chapitre 5 – La vengeance

Il faut dorénavant s’y faire, ce couple charmant, amoureux et surtout utopique auquel nous étions habitués n’existe plus. Les douceurs verbales s’envolent pour laisser place à la haine pure, et dès cet instant, tous les moyens sont bons pour rendre l’autre jaloux.

On note en général une nette régression de la qualité éditoriale, cette personne que l’on croyait si mature se met soudainement à écrire comme un adolescent hormonalement déréglé, utilisant même parfois le très vomitif langage SMS.

Les annonces euphoriques fusent plusieurs fois par jour, donnant souvent la curieuse impression d’avoir été pondues sous antidépresseurs. Par le biais de son entourage l’intéressé tente visiblement de se convaincre lui-même de son propre bonheur à grand coup d’adverbes quantitatifs, avec si possible beaucoup de points d’exclamations. Il relate sa dernière « virée à moto trop trop trop bien » , une soirée passée avec « une fille trop trop trop bien » , le fait que « la vie est trop trop trop belle » et qu’il faut « vachement en profiter à fond » .

Des coups-bas sont de temps à autre utilisés, l’adversaire ne recule devant aucun obstacle pour atteindre son objectif, à savoir pourrir le moral (voire le nouveau couple) de son ancien amant.

Et des fois, ça fonctionne.

Ainsi, comme dans un conte de fées condensé, il arrive que tout finisse bien, ou presque.

Merci à tous mes « amis » de Facebook qui étalent chaque jour l’intégralité de leur vie privée sans la moindre pudeur, vous êtes ma muse. Kissous kissous à vous!

Images : Gombinoscope, sauf pour Brassens, ça va de soi.

   
Tu auras surement remarqué les quelques vertical comics postés ces derniers jours, tu te seras alors peut-être demandé comment diable une telle prouesse technologique était possible. Sèche tes larmes, car dans quelques minutes tu sauras toi aussi comment faire. Je ne m’attarderai toutefois pas sur les plans photographiques rapprochés, mais sur la création des bulles de dialogue, avec GIMP bien entendu.

On fait simple pour commencer, tu ouvres ton image dans le GIMP.



Tu écris ensuite ton texte à l’endroit précis où il devra être situé définitivement, tiens bien compte du futur contour de la bulle.



Afin de ne pas pourrir l’image de fond nous allons dessiner la bulle sur un calque dédié, sur la fenêtre des calques tu cliques donc sur l’icône « Créer un nouveau calque » .



Tu le nommes comme bon te sembles, et tu valides.



N’oublie pas de bien sélectionner ce nouveau calque dans la liste, sinon tu risquerais de faire des dégâts sur ton image.
Lire la suite



, ,    

Nous autres geeks avons toujours tendance à chercher des solutions compliquées aux problèmes simples, juste par compétition. Aujourd’hui je vais donc te montrer comment éteindre automatiquement ton PC a une heure précise, et ceci en utilisant les outils à disposition dans Windows 7, aucun téléchargement nécessaire, c’est pas magnifique ça?

Nous allons utiliser deux programmes intégrés : Le planificateur de tâches et la commande en ligne permettant d’éteindre ton ordinateur.


,    
Grâce à mes conseils technologiques de la veille tu pouvais faire tomber la magie enneigée de nouyelle sur ton blog, je vais aujourd’hui te montrer comment améliorer cette féerie ambiante.

Le problème du tutoriel d’hier est qu’il te faut modifier ton fichier « header.php » pour y inclure le code JavaScript chaque début décembre et le re-modifier à la fin de l’hiver pour retirer le script, au risque de voir tomber des flocons sur ton blog en plein mois d’août. On n’a pas tous la patience nécessaire de l’exercice, et demander des modifications à son webmaster trop souvent risque fort de finir par l’énerver profondément.

Voici donc un petit bout de code PHP fait maison qui permet de limiter magiquement automatiquement l’exécution du script des flocons entre décembre et janvier compris.

Dans ton fichier « header.php » tu remplaces donc la ligne que je t’ai suggérée hier.

1
<script type="text/javascript" src="/snowstorm.js"></script>


Par celles-ci.

1
2
3
4
5
6
<?php
    // Limite l'intégration du script de tempête de neige entre décembre et janvier compris
    if ((date("n") == 12) || (date("n") == 1)) {
        echo '<script type="text/javascript" src="/snowstorm.js"></script>';
    }
?>


Et ainsi, chaque année cette saleté de magie s’opérera toute seule.

J’en profite pour te souhaiter un noyeux Joël, que les jolis flocons et le cholestérol te soient propices en cette fin d’année!


, ,    
Les fêtes de fin d’année approchent à grand pas et tout blog chrétien digne de ce nom doit évoluer dans le respect de Jésus et du petit Papa Nouyelle.

Je te propose donc aujourd’hui d’enjoliver tes publications grâce à un magnifique script qui fera tomber de petits flocons sur ton blog WordPress. Ça fonctionne évidemment sur d’autres plateformes mais il te faudra juste adapter l’intégration du script.

Tout d’abord il te faut charger un fichier JavaScript magique (tout est magique à Noël), pour cela il te suffit de faire un clic droit ici, de choisir « Enregistrer la cible du lien sous… » puis d’envoyer ce fichier à la racine de ton site web grâce à ton client FTP favori. Si t’as rien compris à cette dernière phrase alors file te boire un verre de vin chaud et parle-en à ton webgod (on ne dit plus « webmaster » depuis peu, ça ne mettait pas assez en valeur la profession).

Ensuite, tu vas dans le répertoire de ton thème WordPress et tu ouvres le fichier « header.php » , entre les balises <head> et </head> tu vas ajouter le code magique suivant.

1
<script type="text/javascript" src="/snowstorm.js"></script>


Ho ho hoooo!

Ouais je sais, mais faire le Père Noyel en onomatopée c’est pas évident.

Tu peux paramétrer plein de trucs magiques, comme par exemple la couleur des flocons. Cherche la ligne magique suivante dans le fichier JavasScript et modifie selon tes envies (magiques elles aussi).

1
this.snowColor = '#fff';


Ah ouais, au passage, ce script est distribué sous la licence BSD que voici.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Software License Agreement (BSD License)

Copyright (c) 2003, Scott Schiller (schillmania.com)
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice, this
  list of conditions and the following disclaimer in the documentation and/or
  other materials provided with the distribution.

* Neither the name of schillmania.com nor the names of its contributors may be
  used to endorse or promote products derived from this software without
  specific prior written permission from schillmania.com.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Le script intégral ainsi qu’un mode d’emploi plus complet est disponible en anglais sur schillmania.com, le site original du créateur.


, ,    

Le vrai titre de ce billet aurait dû être « Comment créer de manière simple une alerte spoiler sur son blog WordPress » , ça faisait juste un peu long.

Tu l’auras ainsi peut-être deviné, je vais te montrer comment créer de manière simple une alerte spoiler sur ton blog WordPress. Si si, je t’assures.

Si tu prends la peine d’aller consulter mes différents billets parlant de cinéma ou de séries télévisées, tu constateras que dernièrement, chacun d’entre-eux est précédé d’une alerte spoiler qui se présente sous la forme d’une image explicite.

Ne crois pas que je me casse le derche à envoyer ce fichier image à chaque article, j’utilise en effet une fonctionnalité très pratique de WordPress, les fameux shortcodes. Concrètement, il me suffit d’écrire tout simplement le code [spoileralert] dans le texte de mon billet pour que cette image viennent s’y incruster.

Tu veux faire pareil hein?

Pour commencer, tu crées ton images à partir de ton éditeur favori, puis tu la sauves dans un format reconnu par les navigateurs web, soit JPEG ou PNG.

Ensuite, tu envoies ce fichier sur ton site web, précisément dans le sous-répertoire « images » du thème WordPress que tu utilises. Par exemple si ton thème se nomme « bisounours » alors le répertoire ressemblera à quelque chose comme « wp-content/themes/bisounours/images » .

Tu vas ensuite aller éditer le fichiers « functions.php » qui se trouve dans le répertoire du thème. Pour ce faire tu dois d’abord le récupérer via un outil FTP standard, genre FileZilla Client. Tu l’ouvres ensuite avec n’importe quel éditeur de texte, le Bloc-Notes suffit.

Tout à la fin de ce fichier, juste avant la balise de fermeture PHP, tu vas ajouter le code suivant.

1
2
3
4
5
6
7
// Création de la fonction
function spoiler_alert_func() {
    return "<center><img src='/wp-content/themes/bisounours/images/spoiler_alert.png' /></center>";
}

// Ajout du shortcode
add_shortcode('spoileralert', 'spoiler_alert_func');

C’est bien entendu à toi de remplacer le chemin du répertoire de ton thème, ainsi que le nom du fichier, que j’ai nommé ici « spoiler_alert.png » .

Tu enregistres le fichier, et tu le renvoies sur ton site, au même endroit.

Et voilà, dorénavant dans tes billets il te suffira d’écrire [spoileralert] pour prévenir tes lecteurs du danger qui les attend.

,    
Toi qui as un blog WordPress tu as surement dû déjà publier un article de manière accidentelle, le bouton « Publier » étant relativement proche du bouton « Enregistrer brouillon » .



Une soirée basée sur le thème de l’éthylisme, un matin difficile et voilà un article non désiré qui se retrouve jeté en pâture à un public peu réceptif.

Je vais aujourd’hui te montrer comment éviter ce désagrément en affichant tout simplement une fenêtre de confirmation à chaque fois que tu cliqueras sur le si puissant bouton « Publier » .

Pour cela nous allons créer ensemble un plugin basique, ce qui te permettra d’activer et désactiver facilement cette fonctionnalité si l’envie t’en prend. Pour effectuer cette manipulation il te faut posséder un bête éditeur de texte ainsi qu’un logiciel de transfert FTP configuré pour envoyer tes fichiers vers ton site WordPress.

Premièrement, tu vas créer où bon te semble un fichier texte nommé « confirm-publish.php » , puis tu y places le code PHP suivant.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php

    /*
    Plugin Name: Confirm publish
    Description: Affiche un message de confirmation lors de la publication d'un billet ou la modification d'un billet publi&eacute;
    Version: 1.0
    */


    // Fonction de confirmation
    function confirm_publish() {
   
        // Message de confirmation
        $message = 'Voulez-vous vraiment publier ou mettre a jour ce billet?';

        // Code JavaScript
        echo '<script type="text/javascript">
        <!--
            var publish = document.getElementById("publish");
            if (publish !== null) publish.onclick = function(){ return confirm("'
.$message.'"); };
        // -->
        </script>'
;
    }

    // Ajout du code JavaScript dans le code
    add_action('admin_footer', 'confirm_publish');

?>


À l’aide du logiciel de transfert FTP susmentionné, tu envoies gaillardement ce fichier dans le répertoire « /wp-content/plugins » de ton site.

Puis, depuis l’interface d’administration de ton blog, tu vas dans la section « Extensions » , tu cherches « Confirm publish » puis tu cliques sur « Activer » .

Les matins difficiles seront dorénavant moins dévastateurs pour ton image de marque.

Source: Forums WordPress.org




,