Blog geekesque... ou pas

Aller au contenu | Aller au menu | Aller à la recherche

14/11/2011

Adapter la présentation de Weechat

Si vous utilisez weechat comme client IRC, peut-être n'appréciez-vous pas que la fenêtre de tchat soit alignée sur le pseudonyme le plus long et préférez une présentation sans alignement.

Cela peut se faire en trois réglages:

/set weechat.look.prefix_align none
/set irc.look.nick_prefix <
/set irc.look.nick_suffix >

Si vous voulez revenir à la présentation d'origine, il vous suffit de faire:

/set weechat.look.prefix_align right
/set irc.look.nick_prefix ""
/set irc.look.nick_suffix ""

Bien entendu, pensez à sauvegarder après avoir fait les changements.

10/10/2011

Créer un patch et l'utiliser

Lorsqu'on développe une (ou des) application(s), il y a fréquemment des mises à jour à faire.

Très souvent, et moi le premier, la méthode la plus simple consiste à purement et simplement écraser ce que l'on a mis en place par les nouveaux fichiers, ce qui peut parfois être lourd (en quantité transférée) alors que les modifications sont mineures, et comporte des risques dûs au transfert FTP.

Heureusement, si votre application est gérée par SVN (je le conseille fortement) et si vous avez accès à l'hébergement de votre application par SSH (ce qui est malheureusement rarement le cas dans le cadre des applications web), diff et patch vont vous simplifier grandement le travail.

Lire la suite...

05/09/2011

Vérification d'adresse IP

Bien qu'il soit rare que l'on ait à mettre une adresse IP dans un formulaire, il arrive que l'on ait besoin de les vérifier.

Donc, pour faire suite au billet Les assertions et vérification de formulaire, voici la petite fonction qui me permet de vérifier la syntaxe d'une adresse IP.

Fonction

<?php
function isIPAddress($ip) {
   $pattern = '/^\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b$/';
   if (preg_match($pattern, $ip) == 1) return true;
   else return false;
}
?>

Explications de l'expression régulière

L'expression vérifie que l'adresse contient 4 termes séparés par des points. La partie importante est celle que l'on retrouve deux fois:

(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)

Cette partie vérifie que les termes:

  • commencent par 25 et sont suivi d'un chiffre de 0 à 5
  • ou commencent par 2, suivi d'un chiffre de 0 à 4, suivi d'un chiffre de 0 à 9
  • ou peut commencer par un 0 ou un 1, suivi des nombres de 0 à 99

Ceci nous permet donc de vérifier que les termes couvrent la plage 000 à 255.

18/04/2011

Réveiller un NAS

Si vous êtes l'heureux possesseur d'un NAS, vous appréciez très certainement son économie d'énergie et le fait qu'il se mette "à l'arrêt" lorsqu'il n'est pas sollicité depuis un certain temps.

Enfin, ceci est de la théorie parce qu'en pratique, si vous êtes plutôt Linux que MacOS ou Windows, il va falloir chercher un peu. J'ai moi-même cherché et j'ai trouvé sur un forum une contribution de themadmax.

Je me permet donc de traduire (et expliquer) la contribution.

Lire la suite...

03/01/2011

Screen et Ctrl+Z

J'utilise screen sur mon serveur pour avoir différents processus disponibles via SSH et surtout qu'ils ne s'arrêtent pas lorsque j'ai une coupure réseau, mais parfois je fais une mauvaise manipulation et appuie malencontreusement sur les touches Ctrl (control) et Z simultanément, ce qui a pour effet de mettre le terminal virtuel en tâche de fond.

La solution pour récupérer ces processus n'est pas propre à Screen mais à linux, c'est le moyen de récupérer tout processus, avec la commande de switch %, ou sur le bash fg (les deux fonctionnent, fg est plus facile à retenir à mon avis).

Exemple

# Programme mis en background
vous@local:~$ mutt &
[1] 6106
[1]+  Stopped       mutt
# Liste des processus arrêtés
vous@local:~$ jobs
[1]+  Stopped       mutt
# Récupération
vous@local:~$ fg 1

29/12/2010

Authentification SSH par clé RSA

Lorsque l'on doit fréquemment accéder par SSH à une machine, il est fastidieux de chaque fois devoir taper son mot de passe. Il existe heureusement une méthode permettant d'avoir une connexion automatique et sécurisée, utilisable pour tout ce qui est habituellement fait à travers le SSH (connexion en console, sftp ou même scp), il s'agit des clés RSA.

Lire la suite...

10/12/2010

Attention à la fausse mise à jour de firefox

Depuis peu de temps, des sites (http: // supportfirefox .perl .sh, http: // firefoxcenter .perl .sh) vous conseille de mettre à jour votre firefox et vous propose le téléchargement de firefox-update.exe.

Ne le téléchargez pas !

Et n'hésitez pas à bloquer l'accès à http://*.perl.sh dans vos navigateurs.

22/10/2010

Traiter le BBCode

Le BBCode est fréquemment utilisé, voici une fonction qui permet de s'en servir sur son site. Il y a en fait plusieurs fonctions, la plus importante est bbcode() qui traite la chaîne (donc à utiliser à l'affichage).

Les autres fonctions servent à reformater les chaînes particulières qui ont besoin d'un remplacement plus évolué, comme les liens, les images ou les listes.

<?php
function bbcode($string) {
    $pattern = array(
        '/\\n/',
        '/\\r/',
        '/\[list\](.*?)\[\/list\]/ise',
        '/\[b\](.*?)\[\/b\]/is',
        '/\[strong\](.*?)\[\/strong\]/is',
        '/\[i\](.*?)\[\/i\]/is',
        '/\[u\](.*?)\[\/u\]/is',
        '/\[s\](.*?)\[\/s\]/is',
        '/\[del\](.*?)\[\/del\]/is',
        '/\[url=(.*?)\](.*?)\[\/url\]/ise',
        '/\[email=(.*?)\](.*?)\[\/email\]/is',
        '/\[img](.*?)\[\/img\]/ise',
        '/\[color=(.*?)\](.*?)\[\/color\]/is',
        '/\[quote\](.*?)\[\/quote\]/ise',
        '/\[code\](.*?)\[\/code\]/ise'
    );
 
    $replace = array(
        '',
        '',
        'sList(\'\\1\')',
        '<b>\1</b>',
        '<strong>\1</strong>',
        '<i>\1</i>',
        '<span style="text-decoration: underline;">\1</span>',
        '<span style="text-decoration: line-through;">\1</span>',
        '<span style="text-decoration: line-through;">\1</span>',
        'urlfix(\'\\1\',\'\\2\')',
        '<a href="mailto:\1" title="\1">\2</a>',
        'imagefix(\'\\1\')',
        '<span style="color: \1;">\2</span>',
        'sQuote(\'\1\')',
        'sCode(\'\1\')'
    );
 
    return preg_replace($pattern, $replace, nl2br(htmlspecialchars(stripslashes($string))));
}
 
function sQuote($string) {
    return '<div class="quote">' . stripslashes(trim($string)) . '</div>';
}
 
function sCode($string){
    $pattern =  '/\<img src=\\\"(.*?)img\/smilies\/(.*?).png\\\" alt=\\\"(.*?)\\\" \/>/s';
    $string = preg_replace($pattern, '\3', $string);
    return '<pre>' . trim($string) . '</pre>';
}
 
function sList($string) {
    $tmp = explode('[*]', stripslashes($string));
    $out = null;
    foreach($tmp as $list) {
        if(strlen(str_replace('', '', $list)) > 0) {
            $out .= '<li>' . trim($list) . '</li>';
        }
    }
    return '<ul>' . $out . '</ul>';
}
 
function imagefix($img) {
    if(substr($img, 0, 7) != 'http://') {
        $img = './images/' . $img;
    }
    return '<img src="' . $img . '" alt="' . $img . '" title="' . $img . '" />';
}
 
function urlfix($url, $title) {
    $title = stripslashes($title);
    return '<a href="' . $url . '" title="' . $title . '">' . $title . '</a>';
}
?>
 
// Utilisation:
echo bbcode($texte)

28/07/2010

URLs raccourcies et encodage en base 62

De plus en plus de systèmes de raccourcissement d'URL existent, et le système est somme toute relativement simple à mettre en place. Il demande un peu de logique et l'utilisation d'un encodage en base 62: les 10 chiffres et les 26 lettres (minuscules et majuscules).

Lire la suite...

22/07/2010

Transformer des sources en paquets

Le gros problème lorsqu'on installe une application sous linux depuis les sources, donc qui n'est pas sous la forme de paquets gérables simplement, c'est qu'il est très difficile de la désinstaller complètement.

Heureusement, un utilitaire permet de créer un paquet (rpm, slackware, debian) qui permettra de dé/ré-installer facilement votre application, il s'agit de checkinstall.

L'utilisation est très simple: il faut bien sûr avoir installé checkinstall, qui est disponible sur la plupart des sources linux, et prendre les bonnes habitudes lors de l'installation. Voici ce que cela donnerait avec le logiciel dummy:

# Example sous debian
~$ tar xvfz dummy.tgz
~$ cd dummy
~$ ./configure
~$ make
~$ checkinstall make install
~$ dpkg -i dummy.deb
 
# Suppression
~$ dpkg -r dummy

Comme indiqué dans le manpage, vous pouvez forcer le type de paquet à utiliser ainsi que d'autres options.

- page 1 de 7