Archives pour la catégorie Snippet

Un snippet est un petit morceaux de code source ou de texte réutilisable et donnant l’exemple sur de nombreux langages.

Snippet #19 ~ PHP: Une REGEX pour échelon

Sopa, Pipa, Acta, Lopsi, hadopi, échelon et tous les pros du toucher rectal: ne cherchez plus !!

J’ai LE snippet qu’il vous faut !

En effet je me suis récemment mis un peu plus sérieusement aux regex (parce qu’il faut bien y passer un jour), vous savez ces expressions régulières puissamment flippantes permettant de récupérer une expression précise dans un texte à l’aide de filtres (pattern) !!?

Et comme je suis un patriote un peu fasciste sur les bords, je me suis dis que j’allais commencer par un exercice  de contribution auprès de cette grande et fière nation que j’ai l’honneur de représenter :

 

image

 

Blague à part, pour ceux qui, comme moi, sont à la fois conscient de la puissance des expressions régulières et de leurs propre impuissance face à la syntaxe de “facho-violeur-de-chatons” associée à cette technique, je vous propose cette série de petites regex (légèrement liberticides) à décortiquer.

Evidemment, les patterns peuvent être améliorés, je débute dans ce domaine, les pro regex me pardonneront :p.

 

Cherche des bénévoles sur le projet CodeZ

Salut à tous !!

Entre deux lignes de développement DropCenter et de Leed, je me consacre au gestionnaire de snippet CodeZ dont je vous ai parlé lors de mon précédent post sur CodeX.

Comme vous pouvez le voir, le logiciel bureautique ci dessous est bien avancé

codezS1

Cependant je n’ai malheureusement pas beaucoup de temps à consacrer au logiciel et je cherche activement des développeurs sympa pour m’aider dans ma tâche.

Pour le logiciel, je cherche des gens s’y connaissant en C++ (notamment en Qt ça serait le top) ainsi que des pros de la “regex” pour améliorer la coloration syntaxique pour le moment pas jojo.

De même un site web est prévu pour donner un aspect communautaire au logiciel afin de pouvoir partager vos snippets de manière simple et gratuite.

codezS2 

Je cherche donc également des gens pour m’intégrer et me développer cette partie, ce qui signifie des connaissances au choix :

  1. HTML/CSS
  2. Javascript
  3. PHP/MySQL (ou autre SGBD intégrables)

Si vous êtes intéressés, contactez moi sur les commentaires ou par mail.

Bien à vous.

Codex, un gestionnaire de snippet simple et léger

Les “snippet” sont des petit bouts de codes “standards” illustrant des fonctions couramment utilisées comme lire et écrire dans un fichier ou récupérer une adresse ip, lister les champs d’une base de données etc…

 

Si vous êtes un peu tête en l’air comme moi, il vous arrivera souvent de rechercher le même snippet pour la nième fois sur le net… c’est agaçant pas vrai?

 

Codex est petit gestionnaire “portable” (mais pas cross system compatible) répondant a ce problème.

Développé par Uri Fridman, ce petit exécutable vous permettra de stocker, visualiser, trier et retrouver rapidement un bout de code par langages et par libellé.

 

image

 

A noter que le programme stocke tout dans des fichiers à plat (en .json) ce qui en fait un programme réactif et qui ne nécessite aucune bdd ou lourd pré requis du système.

De plus, le programme comprend une coloration syntaxique sur de nombreux langages, celle ci se met en place en fonction du nom de la rubrique.

 

Malheureusement, ce programme n’est plus distribué sur le net, son auteur semble en effet décidé à ne plus entendre parler du logiciel qu’il s’agisse dévolution ou de support donc inutile de le contacter à ce sujet.

D’ailleurs lorsque je l’ai contacté pour lui poser quelques questions et lui demander les sources je me suis pris un succin:

“Sorry. That program or any other windows programs are no longer supported or being actively developed.”

 

M’est avis que ce garçon à été traumatisé par le support bénévole (et je le comprends)

 

Bien que n’ayant pas distribué les sources, Uri m’a tous de même autorisé à diffuser le binaire du petit programme que la bloggeuse Akaiken m’avait auparavant généreusement envoyé (et fait découvrir par la même occasion).

 

je me permet donc de vous partager le lien de téléchargement de la ressource ici : http://idleman.fr/ressources/EXE/Codex.rar

 

NB : Uri fridman ne souhaite recevoir aucune demande de support ou d’évolution concernant ce programme, il a été très clair à ce sujet, merci de respecter son choix concernant l’abandon du logiciel.

 

Personnellement le concept me plais bien, si j’ai une minute, je redévelopperais quelque chose sur le même concept avec les plus-values suivante :

  1. Logiciel compatible Windows/linux/mac Os
  2. Possibilité de partager/récupérer des snippet directement a partir d’un site web communautaire dédié
  3. Sources libres publiées sur svn
  4. Design un peu plus poussé

 

Pour tout vous avouer, j’ai déjà codé la base :

image

L’avantage étant qu’il fonctionne avec exactement la même base que Codex (fichiers json) et qu’il est développé avec Qt (donc compilable sur les trois Os principaux).

 

Il reste évidemment beaucoup à faire (design, coloration syntaxique sur les principaux langages, synchro des snippet avec internet…), j’ignore si j’aurais le temps de m’y consacrer d’avantage, ça n’est pas une priorité.

Snippet #18 ~ PHP: les opérateurs ternaires

Petite piqure de rappel, les barbons du code m’en voudront de sortir quelque chose d’aussi évident mais certains d’entres vous pourraient se coucher moins bête Sourire (et si au passage certains de mes collègues pouvaient en prendre de la graine… *sifflote* )

Saviez vous que vous pouviez résumer ceci :

a cela :

Il s’agit d’une opération ternaire, outre le fait que c’est beaucoup plus rapide à écrire, cela économise des performances sur PHP.

La condition se trouve avant le “?” la conséquence (si la condition est validée) se trouve derrière le “?” et enfin le “else” signifiant “dans les autres cas” se situe après le “:”

A noter que ce type d’opération existe dans de nombreux langages et non seulement dans PHP, renseignez vous Sourire

Snippet #17 ~ C++/QT: Faire un screenshot (capture d’écran)

Voila un moment que je n’ai pas posté de snippet, pour me rattraper, voici un petit exemple de screenshot avec la formidable librairie QT pour C++:

évidemment dans cet exemple, ui->labelScreenShot représente l’élément QLabel de votre interface graphique qui contiendra le screenshot.

Snippet #16 ~ PHP : Récupérer la couleur dominante d’une image

Voila un petit snippet pratique pour ceux qui souhaitent gérer par exemple une galerie photo en triant les images par couleurs approchantes.

Ce snippet étudie les images point par point et définis la couleur dominante de l’image:

 Nb : ne fonctionne que pour les png, si vous souhaitez du jpeg, remplacer imagecreatefrompng par imagecreatefromjpg etc…

 

 

Snippet #15 ~ PHP : Récuperer et afficher un code source distant

Commençons la semaine sur un petit snippet inutile si vous le voulez bien :) .

Cette fonction permet la récupération et l’affichage ligne par ligne (numérotées) d’un code source distant à partir d’une url.

 

 

Wala ce que ça donne :

Snippet #14 ~ JAVA : Crypter et décrypter une chaine de caractère

Salut  !! Tout le monde s’en fout mais c’était mon anniversaire hier !!

Et à cette occasion, c’est moi qui vous fais cadeaux de ce petit snippet permettant de crypter ou de décrypter des String Java et ce en utilisant une clé de cryptage ainsi que les outils du package Cypher.

(en passant, je trouve inquiétant que ce package précis porte le nom du traître de Matrix mais bon…)

Crypter le mot de passe :


public String encrypt(String password,String key){
try
{
Key clef = new SecretKeySpec(key.getBytes("ISO-8859-2"),"Blowfish");
Cipher cipher=Cipher.getInstance("Blowfish");
cipher.init(Cipher.ENCRYPT_MODE,clef);
return new String(cipher.doFinal(password.getBytes()));
}
catch (Exception e)
{
return null;
}
}

 

Décrypter le mot de passe :


public String decrypt(String password,String key){
try
{
Key clef = new SecretKeySpec(key.getBytes("ISO-8859-2"),"Blowfish");
Cipher cipher=Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE,clef);
return new String(cipher.doFinal(password.getBytes()));
}
catch (Exception e)
{
System.out.println(e);
return null;
}
}

 

Si vous ne souhaitez pas utiliser la crypto Cypher, vous pouvez utiliser un code plus simple :

Crypter

    public String encrypt(String password){
        String crypte= » »;
        for (int i=0; i<password.length();i++)  {
            int c=password.charAt(i)^48; 
            crypte=crypte+(char)c;
        }
        return crypte;
    }

 

Décrypter

    public String decrypt(String password){
        String aCrypter= » »;
        for (int i=0; i<password.length();i++)  {
            int c=password.charAt(i)^48; 
            aCrypter=aCrypter+(char)c;
        }
        return aCrypter;
    }

Snippet #13 ~ PHP : Lister un répertoire et ses sous répertoires

Joyeux noël bande de moules !!! Z’avez été gaté ? Non? C’est pas grave !! Voila un petit snippet cadeaux de Papy Idle pour vous remonter le moral !!

 

Voila un bout de code qui permet de lister un répertoire de manière récursive, c’est à dire que le code php liste les fichiers du répertoire et des sous répertoires :


public function scanRecursiveDir($dir){
$files = scandir($dir);
$allFiles = array();
foreach($files as $file){
if($file!='.' && $file!='..'){
if(is_dir($dir.$file)){
$allFiles = array_merge($allFiles,Fonction::scanRecursiveDir($dir.$file));
}else{
$allFiles[]=str_replace('//','/',$dir.'/'.$file);
}
}
}
return $allFiles;
}

Simple mais efficace :).

Snippet #12 ~ Transformer une chaine en couleur

Voila une petite fonction qui définit une couleur en fonction de la chaine de caractère qu’on lui passe.

Les applications sont nombreuses, vous pouvez par exemple l’utiliser pour définir une couleur par pseudonyme sur les systèmes de commentaires anonyme.

La fonction n’utilise aucune données aléatoire pour déterminer la couleur, ainsi  vous êtes certain que vos utilisateurs anonymes seront toujours de la même couleur (enfin  tant que le pseudo reste le même).