Fanatiques des nouvelles technologies ou simple utilisateur, tu n’es surement pas passé à côté du terme « cloud » qui regroupe la centralisation en ligne des différents services qui tournent actuellement sur ton vieil ordinateur.

Côté stockage en ligne, un grand nombre de prestataires se disputent la part du gâteau. On peut nommer en vrac Dropbox, Sugarsync, Box, et plus récemment Google Drive.

Les prix proposés étant extrêmement bas par rapport au marché, un certain nombre d’adeptes ont opté pour cette solution.

Le problème avec ce genre de répertoire en ligne, c’est qu’il est par défaut dupliqué dans ton profil Windows, sur le disque « C » en général dont la capacité est déjà mise à rude épreuve par la taille du système d’exploitation ainsi que par les programmes qui y sont installés.

Je vais aujourd’hui te montrer comment modifier l’emplacement local de tes fichiers Google Drive, pour éventuellement les localiser sur un autre disque dur.

Il est important de noter que durant cette étape, une synchronisation complète de tes fichiers aura lieu. En d’autres termes, si tu as une énorme quantité de fichiers sur ton Google Drive alors tu devras tous les importer à nouveau depuis le Net. Normalement tu ne perds rien. Normalement.

Premièrement, tu cliques droit sur l’icône de Google Drive dans ta barre des tâches, puis tu choisis « Preferences » .

Sur la fenêtre qui va s’ouvrir, tu cliques sur le bouton « Disconnect account » .

Puis tu valides en cliquant sur « Yes. »

Tu vas maintenant aller sur ton disque dur pour y créer un répertoire à l’emplacement de ton choix, logiquement il faudrait opter pour un disque qui contient plus de place que ta limite de stockage en ligne.

Fais attention, ce répertoire doit être vide, ne t’amuse pas à y placer des fichiers! S’il contient quelque chose au moment de la synchronisation alors il peut t’arriver certains désagréments fâcheux comme la perte de fichiers, la perte de fichiers, la perte de fichiers ou même la perte de fichiers. Te voilà prévenu.

Tu fais maintenant à nouveau un clic droit sur l’icône Google Drive puis tu choisis « Sign In » . Tu t’authentifies, une fenêtre va ensuite s’ouvrir.

Tu cliques sur « Next » .

Une fois ici tu cliques sur « Advanced Setup » , une fenêtre va s’ouvrir. Ici tu peux voir l’emplacement local des fichiers de ton stockage en ligne à droite du libellé « Folder location » .

Tu cliques donc sur « Change » puis tu choisi le répertoire vide que tu as créé tout à l’heure.

Tu cliques finalement sur « Start sync » et tu attends plusieurs années que tout se synchronise.

, ,    

Avec un titre comme celui-ci, si tu ne brûles pas d’envie de lire ce billet c’est que tu as un gros problème.

Parmi les évolutions notables du réseau ARPANET, on peut noter son changement de nom en « Internet », l’apparition du porn en masse, l’explosion de World of Warcraft et la dernière mouture des feuilles de style en cascade.

Appelé « CSS3 », ce standard est aujourd’hui supporté par la majorité des navigateurs web récents, et même par cette saleté d’Internet Explorer si on en croit les bruits de couloir.

Après cette charmante introduction, il est plus que de temps de sauter dans le vif du sujet. Je vais aujourd’hui te montrer comment créer simplement et en CSS un bloc de citation comme celui-ci.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae metus arcu, vel rhoncus purus. Donec leo leo, ullamcorper ac pretium eget, cursus vestibulum libero. Donec quis odio mi. Nam interdum dictum est id scelerisque. Cras lacus est, sagittis in pulvinar id, volutpat vel felis. Nunc in ipsum nulla, a hendrerit tellus. Curabitur adipiscing felis quis quam blandit rhoncus. Nullam eu justo metus. Nullam non metus purus, sed vehicula sem.

Tu remarqueras les guillemets situés en haut à gauche et en bas à droite, ce bel arrangement relevant du défi il y a quelques années est aujourd’hui fort simple grâce à une nouveauté de CSS3, à savoir la possibilité d’avoir plusieurs images de fond dans une seule balise « DIV ».

Pour faire la même chose chez toi il te suffit de créer deux images contenant ces guillemets, puis de les placer dans le répertoire qui contient ta feuille de style.

Tu peux voler les miennes si tu veux.

J’y ai ajouté un petit espace de quelques pixels sur le haut, afin que l’image ne soit pas collée à la barre traversante.

De même que pour l’image du haut, un espace a été ajouté sur le bas de celle-ci.

Ensuite, dans ton fichier CSS tu crées un bloc que tu appelles par exemple « citation ».

1
2
3
4
5
6
7
8
9
10
11
12
13
.citation {

    background-image: url("quote_haut.jpg"), url("quote_bas.jpg");
    background-position: left top, right bottom;
    background-repeat: no-repeat, no-repeat;

    color: #555;
    margin: 0px;
    padding: 10px 50px 10px 50px;
    border-top: 2px solid #c8c8c8;
    border-bottom: 2px solid #c8c8c8;
    display: block;
}

Tu noteras que la propriété « background-image » n’a pas une, mais deux images de fond. Ouais mon gars, deux! Le séparateur étant la virgule entre les deux.

La première image sera affichée en haut à gauche, et la deuxième en bas à droite. Tout cela grâce à la propriété « background-position » , qui a également deux valeurs, toujours séparées par des virgules.

Même concept pour « background-repeat » .

N’oublie pas de régler les valeurs de « padding » , afin que le texte ne viennent pas se superposer aux guillemets. Je te rappelle l’ordre des quatre valeurs de ce genre de propriété : haut, droite, bas, gauche. Comme une montre.

Le reste n’est que formatage de couleur, ainsi que l’affichage de deux barres en dessus et en dessous grâce à « border-top » et « border-bottom » .

Finalement, tu te débrouilles pour que ton texte de citation soit correctement formaté en l’entourant de la balise « DIV » utilisant cette classe.

1
2
3
<div class="citation">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</div>

Si tu utilises WordPress tu peux alors faire en sorte que toutes tes citations utilisent cette mise en page. Pour cela il te faut modifier le bloc « blockquote » dans ton fichier CSS, tout comme « citation » plus haut mais sans le point à gauche (on modifie la balise entière, pas une classe).

1
blockquote {

Merci qui? Merci CSS3!

   

Les téléphones portables achetés dans les magasins officiels réservent parfois quelques surprises désagréables. Voici l’histoire qui résulte de l’acquisition d’un HTC Desire HD sous Android dans un Swisscom Shop en 2011.

Depuis plusieurs années, les grands opérateurs préinstallent des applications verrouillées sur les téléphones mobiles vendus, elles sont protégées et donc impossibles à désinstaller. Cette technique d’utilisation forcée hautement discutable leur rapporte un peu d’argent grâce à des accords passés avec les différents fournisseurs de logiciels.

Ainsi, après une analyse des programmes préinstallés je me suis rendu compte que certains ne sont même pas publicitaires. Il s’agit en effet d’applications de gestions propres à des opérateurs téléphoniques étrangers, qui n’ont de ce fait clairement rien à foutre sur un mobile suisse.

Parmi eux on dénombre sept applications autrichiennes de l’opérateur A1 Telekom Austria :

- A1 Apps
– A1 HANDY Parken
– A1 TV Player
– A1 Gutschein Box
– A1 Music
– A1 Wisepilot
– Mein A1

Notons également la présence de quatre applications françaises de l’opérateur SFR :

- SFR Répondeur +
– SFR TV
– SFR WiFi
– SFR Mon Compte

Ainsi que quelques jeux ou divertissements :

- Monopoly
– Facebook
– Soundhound
– Peep
– Texas Poker

Toutes ces applications sont stockées dans le répertoire « system » d’Android et ne peuvent donc pas être supprimées, à moins d’avoir un téléphone « rooté » (dont on est administrateur). Certaines présentent la particularité louche de démarrer toutes seules, même après avoir été tuées inlassablement par un gestionnaire de tâches.

Le HTC Desire HD vendu par Swisscom (pour ne citer que lui) est en « S-ON », ce qui signifie qu’une sécurité empêche l’installation de versions alternatives d’Android ainsi que le fameux « rootage » (opération consistant à devenir administrateur de son téléphone).

Le client se retrouve donc avec un téléphone portable dont le système Android contient une vingtaine d’applications non désirées et inutiles, parmi lesquelles certaines ont accès à la fois aux données confidentielles et à Internet, un duo effrayant pour la protection de la sphère privée.

, , , , ,    

Toute personne qui possède un blog sous WordPress a normalement installé une extension permettant de filtrer les nombreux commentaires indésirables, notons par exemple l’excellent Akismet qui se démarque des autres par sa transparence et sa facilité d’emploi.

Le problème étant que les spams sont notés comme tels et apparaissent quand même dans le tableau de bord, obligeant l’administrateur du site à faire le ménage de temps en temps.

Sans intervention manuelle, l’extension Akismet supprime normalement les spams après un mois, ce délai est malheureusement trop long et impossible à modifier.

C’est pour cette raison que j’ai créé une extension pour WordPress qui supprime automatiquement chaque jour à minuit tous les commentaires marqués comme indésirables. Il faut bien entendu avoir une confiance aveugle en Akismet, ou son équivalent.

Pour l’utiliser c’est très simple, tu télécharges le fichier ZIP « auto-delete-spam.zip » en faisant un clic droit, puis « Enregistrer sous… »

A l’intérieur de ce ZIP se trouve un fichier nommé « auto-delete-spam.php », tu l’envoies via FTP dans le répertoire « wp-content\plugins » de ton site, puis tu actives l’extension depuis ton interface d’administration.

Le spam sera enfin à la place qu’il mérite, celle où personne ne s’occupe de lui.

Voici basiquement comment la Bête fonctionne sous le capot, tu peux t’arrêter de lire ici si tu désires rester simple utilisateur.

Donc, un « hook » est effectué lors de l’activation de l’extension, il appelle la fonction « ads_activate ».

1
register_activation_hook(__FILE__, 'ads_activate');

Cette fonction « ads_activate » planifie chaque jour à minuit l’appel à un évènement appelé « ads_event ».

1
2
3
function ads_activate() {
    wp_schedule_event(strtotime('midnight'), 'daily', 'ads_event');
}

Si tu veux que la purge s’effectue agressivement chaque heure au lieu de chaque jour, tu remplaces la ligne de code par la suivante.

1
wp_schedule_event(time(), 'hourly', 'ads_event');

N’oublie pas de désactiver l’extension avant de faire cette manipulation, puis de la réactiver ensuite.

L’évènement « ads_event » appelle juste la fonction « auto_delete_spam ».

1
add_action('ads_event', 'auto_delete_spam');

Cette fonction « auto_delete_spam » exécute finalement une simple requête SQL de purge, en utilisant l’objet global de connexion à la base de données « $wpdb ».

1
2
3
4
function auto_delete_spam() {
    global $wpdb;
    $wpdb->query("DELETE FROM $wpdb->comments WHERE comment_approved = 'spam'");
}

Basique, efficace.

,    

La guerre des navigateurs fait rage depuis des années sur Internet, la course à celui qui dominera le World Wide Web est loin d’être terminée. Celles et ceux qui ont le choix opteront peut-être pour le célèbre Chrome de Google.

Si tel est ton cas c’est ton jour de chance, car voici en exclusivité l’extension « Même Pas Mal! » pour Chrome.

Cette extension t’ajoute bêtement un gros icône sur l’onglet d’accueil, et te permet d’accéder à ton blog favori rapidement et en un seul clic.

L’installation est facile et rapide. Premièrement, tu cliques sur l’image ci-dessus. Un avertissement apparaîtra alors en bas de la fenêtre, tu acceptes avec « Continuer » parce que tu me fais confiance. Une dernière fenêtre de confirmation devrait alors s’ouvrir.

Tu choisis « Installer » et le tour est joué.

Si tu n’en veux plus, tu fais un clic droit sur l’icône et tu choisis « Supprimer de Chrome ».

Simple, efficace.

,    

Il y a deux manières de vendre un journal. La première consiste à engager des professionnels payés pour écrire des articles soignés, la seconde est plus basique puisqu’elle ne nécessite qu’une manchette alarmiste et trompeuse.

C’est cette deuxième solution qui a été choisie hier par un quotidien suisse romand bien connu.

Sois rassuré, la gratuité sur le Net n’est pas finie.

Internet, alias « le Net », est souvent confondu avec le Web, les deux termes sont volontairement mélangés sur la manchette incriminée.

Internet est un vaste réseau qui véhicule des informations numériques d’un point à un autre. Plusieurs applications utilisent ce moyen de transport, on peut noter pêle-mêle certains exemples notables tels que le World Wide Web, les courriels, les jeux en ligne, les téléchargements peer-to-peer, les discussions vocales, les webcams publiques, la discussion instantanée, le Cloud Computing et des centaines d’autres plus discrets, chacun ayant son propre protocole de communication.

Alors oui, effectivement, sous la pression de très riches industriels certains sites Web de partages de fichiers tels que Megaupload ont malheureusement été censurés par le gouvernement américain.

Mais la gratuité sur le Net n’est pas finie.

Le Net a toujours été payant, du simple fait de l’abonnement obligatoire pour s’y connecter. Hormis cela, lire et envoyer des courriels sera toujours gratuit, consulter les sites web sera toujours gratuit (sauf les sites de cul), télécharger tes séries américaines sur des réseaux peer-to-peer sera toujours gratuit, discuter avec ta tantine américaine sur Skype sera toujours gratuit, jouer à certains jeux en ligne sera toujours gratuit, passer ta journée devant la webcam du Taj Mahal sera toujours gratuit, flirter sur MSN sera toujours gratuit, télécharger de la musique sur Jamendo sera toujours gratuit, et venir fébrilement chaque jour sur memepasmal.ch sera toujours gratuit.

Non vraiment, la gratuité sur le Net n’est pas finie.

,    

Des plaies s’abattent régulièrement sur notre monde, le plongeant dans un chaos qui éclipse malheureusement un grand nombre de lumières.

Suivant ce postulat, nous pouvons aisément affirmer qu’Internet Explorer est au World Wide Web ce que la Peste Noire est à l’humanité.

En tant que développeur PHP je suis sans cesse confronté au non-respect des standards qui incombent à cette ersatz de navigateur, il est en effet rare d’avoir une feuille de style qui ne contient pas de ligne dédiée à contourner un problème dû implicitement à Internet Explorer.

1
<!--[if IE 7]>

En plus de cela s’ajoutent plusieurs effets étranges relevés sur des opérations basiques, on peut citer l’exemple de la très courante instruction JavaScript « getElementById » qui provoque des plantées monumentales lorsque l’on a le malheur de l’imbriquer un peu trop, renvoyant un message d’erreur à la con.

Les raisons qui poussent les utilisateurs à utiliser Internet Explorer sont nombreuses, elles vont de l’ignorance simple à l’obligation due une politique d’entreprise rigoureuse ou obscure.

Je vais aujourd’hui te montrer comment s’attaquer à la première catégorie, à savoir les ignorants.

Tel les messies des temps moderne nous allons leur montrer la voie de la lumière en affichant un message d’avertissement en haut de nos blogs WordPress, leur indiquant la marche à suivre pour installer un navigateur digne de ce nom.

Ce message ne s’affichera bien entendu qu’aux visiteurs dont le navigateur est Internet Explorer, tu peux tester cette fonctionnalité ici-même, en visitant ce blog avec l’erreur informatique susmentionnée.

, ,    

Si tu suis un peu l’actualité de ces derniers temps tu auras certainement remarqué que la presse adore parler des notes aléatoires données par les trois principales agences de notations financières que compte la planète. Du coup il ne se passe pas une seule journée sans qu’un pays ou une banque ne perde un précieux « A », comme si le commun des mortels en avait quelque chose à carrer.

Pour combattre cette morosité je te propose donc aujourd’hui de certifier ton blog « AAA+ », en ajoutant simplement une superbe bannière en haut à gauche.

L’image originale a été créée sous GIMP, si tu veux la modifier tu peux télécharger le fichier XCF en enregistrant la cible de ce lien.

La procédure à suivre sera expliquée pour un blog tournant sous WordPress, mais un débutant en création web devrait s’en sortir sans problème pour transposer ce tutoriel à n’importe quel site.

Note bien que l’ajout de la bannière est une opération qui nécessite une certaine maitrise dans le transfert par FTP ainsi qu’une vague connaissance des fichiers qui régissent ton thème WordPress, pour le reste ça devrait jouer avec les indications fournies.

, , , , ,    

WinDev est un outil franchement efficace qui permet à toute personne calée en programmation de créer rapidement de superbes applications telles que le très célèbre Logbook Factory, élu meilleur logiciel du millénaire par la fédération galactique des développeurs.

L’entreprise qui commercialise cet outil organise chaque année des séminaires destinés à présenter les nouvelles fonctionnalités des versions qui s’écoulent au rythme des saisons. Si tu as eu l’honneur de participer à l’une de ces présentations privées tu auras alors instinctivement noté la violente odeur de testostérone qui flotte dans la salle, gracieusement répandue par la gente masculine qui représente alors la totalité des auditeurs.

Tout chasseur te le dira, pour attraper une bête il te faut un appât, et pour attraper une grosse bête il te faut un gros appât.

Pour attraper un développeur c’est plus facile, il te suffit d’une femme à poil. On se souvient effectivement de la cow girl de 2008, qui ouvrait la porte de son garage en petite tenue depuis ses pâturages texans.

Ainsi, la brochure PDF 2011 de douze méga-octets met en avant les qualités indiscutables de la nouvelle version 17 de WinDev, dont la gestion de l’Unicode qui apporte « ouverture et simplification » est illustrée sobrement par une femme ouverte et simple.


« Oh là là, grâce à l’Unicode je peux enfin écrire mon code source en Russe, hi hi! »

Le nouveau champ organigramme te donne visiblement envie de prendre la boite du logiciel dans tes mains et de la garder bien au chaud contre ta poitrine, comme s’il s’agissait d’un mignon petit chaton ou d’un sextoy cubique.

Les nouveautés concernant les masques d’affichage et de saisie sont vraiment incroyables, il semblerait que les dernières constantes et fonctions font subitement apparaitre une asiatique en talons aiguilles au dessus du carton d’emballage.

On explore une piste sur un lien éventuel avec la nouvelle capacité de surcharge des masques monétaires, mais cette théorie n’a pas encore été démontrée.

Nous laisserons le mot de la fin à cette demoiselle de 17 kilos qui a gentiment pris le temps de se faire vomir avant de revêtir sa plus belle robe de gala.

,    
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. , , ,