Le patch productivité

Le 20-10-2014 à 10:29 par erwin

Comment s'assurer de sa propre concentration afin d'être plus productif ?

Ayant toujours un accès Internet et en étant son propre chef, comme s'assurer de ne pas dériver sur Youtube & co ? Voici (pour linux) le patch qui vous donne rappelle à l'ordre toutes les 5 minutes !

sudo vi /usr/bin/estu

while true; do notify-send "Es-tu en train de bosser ?"; sleep 300; done &

sudo chmod +x /usr/bin/estu

Il suffit alors de lancer la commande "estu" pour démarrer l'auto-surveillance.

Corrupted data : malformated strings serialization in PHP (wordpress or other)

Le 23-09-2014 à 14:47 par erwin

Try to replace in SQL something in PHP serialized objects is a bad idea. But at first I didn't know why. If you replace http://www.mydomain.com by http://mydomain.com, serialized string character count will be deprecated. Don't ask me why some wordpress plugin devs use serialization of objects to store strings instead of clean SQL. I don't know myself as I don't see any benefit. In my case it was the Elegant Theme content builder plugin.

Many developpers seem to have this problem :

http://stackoverflow.com/questions/15138893/fix-serialized-data-broken-due-to-editing-mysql-database-in-a-text-editor
http://stackoverflow.com/questions/14123299/bash-sed-causing-error-in-serialized-array
http://stackoverflow.com/questions/3148712/regex-code-to-fix-corrupt-serialized-php-data

And answers are :
- Don't do that, revert to your backup.
- Hum ok and what if I don't have one ?
- It's not possible to fix it

This sounds like a challenge ! Count me in (also motivated by a full wordpress site corrupted without backup of the work)

Some give scripts or wordpress plugins but I tried the solutions given in the first thread. It broked even more my wordpress database. There are also some scripts which works for strings without double quotes. But with French, many are used. I modified a plugin for the options table fixing. I didn't find anything so I coded it. This is the functions I made to make things in order :

// this is the main function which go through postmeta table, meta_value replacements
function fix_table() {
            global $wpdb;
      
      $strings_fixed_count = 100;
 
            $sql = "SELECT meta_id, meta_value FROM $wpdb->postmeta";
            $options = $wpdb->get_results($sql);
            foreach ( $options as $option ) {
        $c1++;
                $fixed_string = fix_serialized($option->meta_value);
                if ( $fixed_string != $option->meta_value ) {
          $c2++;
                    // update the table
                    $wpdb->update(
                        $wpdb->postmeta,
                        array('meta_value' => $fixed_string), // data
                        array('meta_id'    => $option->meta_id) // where
                    );
                    $strings_fixed_count++;
                }
            }
      // just to see things moving
      echo "[[[ c1=$c1 c2=$c2 Well ".$strings_fixed_count.' strings modified]]]';
}
    
    
function fix_serialized($string) {
  // securities
  if ( !preg_match('/^[aOs]:/', $string) ) return $string;
  if ( @unserialize($string) !== false ) return $string;
  
  $string = preg_replace("%\n%", "", $string);
  // doublequote exploding
  $data = preg_replace('%";%', "µµµ", $string);
  $tab = explode("µµµ", $data);
  $new_data = '';
  foreach ($tab as $line) {
    $new_data .= preg_replace_callback('%\bs:(\d+):"(.*)%', 'fix_str_length', $line);
  }
 
  return $new_data;
}

    
function fix_str_length($matches) {
            $string = $matches[2];
            $right_length = strlen($string); // yes, strlen even for UTF-8 characters, PHP wants the mem size, not the char count
            return 's:' . $right_length . ':"' . $string . '";';
}

Make a backup (of the corrupted database, yes). Read this code to understand it without breaking anything else, put it in any call from any plugin you want. And run it. You should see [[[ c1=X c2=Y Well Z strings modified]]]

Piwik 2 : Modifier le thème CSS

Le 21-06-2014 à 10:25 par erwin

Pour modifier le CSS, direction Firebug, comme d'habitude suivi d'un grep ou tout autre outil pour trouver le fichier css à modifier (généralement dans le dossier Plugins). Par contre :

  1. Vous verrez que les css sont des fichiers .less (une libraire de compilation des css)
  2. Vos modifications ne seront pas prises en compte puisque less garde dans /tmp un fichier asset compilant tous les css

Un petit mv asset_manager_global_css.css asset_manager_global_css.css2 pour ma part a fait comprendre à less qu'il fallait recompiler tout ça. Et mes modifications CSS ont été prises en compte.

Voir plus de 15 ou 16 sites dans Piwik

Le 19-06-2013 à 10:42 par erwin

Piwik est un magnifique outil "analytics" open source. Si vous y gérez plus de 16 sites, vous ne verrez dans la sélection (entouré en bleu à droite) que les 16 premiers.

Pour augmenter cette limite, il faut modifier le fichier config/global.ini.php et modifier une ligne telle que :

; maximum number of websites showed in search results in autocompleter
site_selector_max_sites = 100

Supprimer des accents en ligne

Le 10-10-2012 à 16:35 par erwin

Comment supprimer les caractères accentués d'un fichier texte ?

Il suffit d'utiliser la page suivante qui les remplacera par leurs équivalents sans accent :

http://www.upme.fr/supprimer-les-accents-en-ligne.html

Et si vous êtes développeur javascript jquery, la solution toute simple est dans le code source de la page en question