Récupérer tous les mots composés de 11 caractères chiffres ET lettres

Dans un premier temps on récupère tous les mots qui peuvent être composé soit de chiffres seuls, soit de lettres seules ou les 2 à la fois. Après on utilise 2 grep différents qui nous enlèvent les mots composés de chiffres seuls et de lettres seules.

 cat toto | grep -o '[a-zA-Z0-9][a-zA-Z0-9]\{10,10\}' | grep -v '[a-zA-Z][a-zA-Z]\{10,10\}' | grep -v '[0-9][0-9]\{10,10\}'
Capture d’écran 2015-05-06 à 16.27.06

Faire des stats de ses locations autolib.

Updated: 6 mai 2015

autolibAttention il s’agit de la 1ère mouture il peut y avoir des bugs (merci de me les signaler) …

Voici mon petit programme python qui permet de faire des statistiques de vos locations autolib. Celui-ci permet de faire des histogrammes de vos locations concernant:

  • la durée
  • le prix
  • la distance parcourue

historique-2015-03-13-22-22-28

Pour être plus précis je fournis ici un notebook ipython. J’utilise le module xlrd pour parser le fichier excel de votre historique. Celui-ci est à récupérer sur votre compte. Une fois le fichier parser je calcul la distance du trajet parcouru. Je convertis les adresses des stations de prise et de retour du véhicule en coordonnées GPS. Pour ce faire je vais appel au module GeoPy. La distance parcouru est alors facilement calculable. Attention il s’agit ici d’une distance type vol d’oiseau (je prends pas en compte votre detour pour déposer belle maman).
Attention le calcul des positions GPFS peuvent s’avérer longue (tout depend de la taille de votre historique).

En utilisant le package gmaps on peut positionner ses departs et ses arrivées de locations sur une belle google map. C’est pas mignon ça:
Capture d’écran 2015-05-06 à 16.27.06

Décaler des sous-titres srt

Updated: 20 octobre 2015

Script .py fourni par Nicos Correction de bug Thanks to Thierry

Il arrive souvent que l’on récupère un fichier srt qui est désynchronisé par rapport au film. On aimerait bien alors pouvoir décaler les sous-titres de quelques secondes pour que ça soit un peu plus raccord avec le film. Il y a sur ici une application qui permet de faire ca on line (vous pouvez aussi jeter un oeil sur comment re-synchroniser des sous-titresavec VLC). Comme il n’y a pas le code source j’avais entrepris de faire ça en bash mais après quelques heures à me battre avec les regexp j’ai lâchement abandonné pour une solution python. Je propose ici une solution sous forme d’un notebook ipython. C’est très simple et le lecteur pourra l’adapter à sa convenance.
Il faut modifier srt_name par votre fichier srt et add_second pour le décalage que vous voulez effectuer.
A la fin le programme vous sort le fichier srt avec le décalage que vous vouliez.

NB:
J’ai considéré que le srt avait cette forme
N° du sous titre : 692
Début et fin du sous titre (que l’on va modifier avec le programme): 00:54:26,746–>00:54:28,748
Sous titre: Nous sommes là.

''' 
Olivier Dadoun
For comments and questions www.dadoun.net
ipython notebook for shifting the time line of your srt file
I have supposed here that 
March 2015
'''
srt_name="OLD.srt"
shifted_srt_name="shifted_"+srt_name
add_second=10
import re
pattern="[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}"
prog = re.compile(pattern)
with open(shifted_srt_name, 'w') as shifted_file:
    with open(srt_name, 'r') as the_file:
        lecture=the_file.read()
        line=lecture.split("\n")
 
        for li in line:
            if prog.match(li):
                begin_time=li.split(" ")[0]
                begin_hours=begin_time.split(":")[0]
                begin_minutes=begin_time.split(":")[1]
                begin_seconds_milliseconds=begin_time.split(":")[2]
                begin_seconds=begin_seconds_milliseconds.split(",")[0]
                begin_milliseconds=begin_seconds_milliseconds.split(",")[1]
 
                end_time=li.split(" ")[2]
                end_hours=end_time.split(":")[0]
                end_minutes=end_time.split(":")[1]
                end_seconds_milliseconds=end_time.split(":")[2]
                end_seconds=end_seconds_milliseconds.split(",")[0]
                end_milliseconds=end_seconds_milliseconds.split(",")[1]
 
                shifted_file.write(begin_hours+":"+begin_minutes+":"+
                                   str(int(begin_seconds)+add_second)+","+begin_milliseconds
                                   +"-->"+
                                   end_hours+":"+end_minutes+":"+str(int(end_seconds)+add_second)
                                   +","+end_milliseconds+"\n")        
            else:
                shifted_file.write(li)

Merci à Nico qui en fournit un .py:

'''
Olivier Dadoun
For comments and questions www.dadoun.net
ipython notebook for shifting the time line of your srt file
I have supposed here that 
March 2015
'''
import os
import re
 
prog = re.compile("[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}")
 
def go(srt_path, add_second):
    dirname, srt_name = os.path.split(srt_path)
    shifted_path = os.path.join(dirname, "shifted_" + srt_name)
    with open(shifted_path, 'w') as shifted_file:
        with open(srt_path, 'r') as the_file:
            for li in the_file.read().split("\n"):
                if prog.match(li):
                    begin_time=li.split(" ")[0]
                    begin_hours=begin_time.split(":")[0]
                    begin_minutes=begin_time.split(":")[1]
                    begin_seconds_milliseconds=begin_time.split(":")[2]
                    begin_seconds=begin_seconds_milliseconds.split(",")[0]
                    begin_milliseconds=begin_seconds_milliseconds.split(",")[1]
 
                    end_time=li.split(" ")[2]
                    end_hours=end_time.split(":")[0]
                    end_minutes=end_time.split(":")[1]
                    end_seconds_milliseconds=end_time.split(":")[2]
                    end_seconds=end_seconds_milliseconds.split(",")[0]
                    end_milliseconds=end_seconds_milliseconds.split(",")[1]
 
                    shifted_file.write("%s:%s:%s,%s-->%s:%s:%s,%s\n" % (
                                           begin_hours, begin_minutes, int(begin_seconds) + add_second, begin_milliseconds,
                                           end_hours, end_minutes, int(end_seconds) + add_second, end_milliseconds
                                       ))        
                else:
                    shifted_file.write(li + '\n')
 
 
if __name__ == '__main__':
    import sys
    argvL = len(sys.argv)
 
    try:
        srt_name = sys.argv[1]
 
    except:
        raise IOError('You must specify an SRT file')
 
    try:
        add_second = int(sys.argv[2])
    except IndexError:
        add_second = 10
    except Exception, error:
        raise IOError('Failed to convert "%s" in integer' % sys.argv[2])
 
    go(srt_name, add_second)

Pour le lancer depuis son terminal:
python shiftSRT.py chemin_vers_srt [offset]

Les pubs MacSpend me polluent …

aghhhhhhhh plus possible de surfer car des pubs MacSpend apparaissent sur mon browser durant ma navigation. C’est atroce, insupportable …
Il faut pour retrouver la quiétude supprimer l’extension MacSpend sur votre browser (euh je me souviens pas l’avoir installée …). Je suis sur OSX mais ca doit être la même chose sur un autre OS.
Alors si vous êtes:

  • Chrome
  • Menu préférences (en haut à gauche), sélectionné extensions sur le coté gauche puis jeter à la poubelle MacSpend

  • Firefox
  • Menu outil (en haut à droite), sélectionné « Modules Complémentaires » et effacer MacSpend

    Voilà j’ai perdu un peu de temps à trouver comment faire et ça m’a bien pris la tête …

    Récupérer les flux RSS dans mail

    J’ai upgradé mon mac en passant de 10.6 à 10.9. Du coup j’ai perdu mes flux RSS qui étaient stockés dans Mail.
    En cherchant un peu j’ai trouvé cette page qui décrit comme faire pour récupérer ces flux RSS. Le petit hic est que le script fourni ne marche pas… Du coup je l’ai modifié un peu. Il faut donc remplacer le find par celui-là :

     find . -name "Info.plist" -exec grep -A 1 Feed {} \; | grep string | sed 's/^[^>]*>//' | sed 's/\<\/string\>//'

    Usefull GPFS commands

    Updated: 7 octobre 2014

    07/10/2014

    In the following the name of the GPFS file system is totofs
    Display the state of the GPFS damemon

     mmgetstate  -aLv

    Display current configuration and of the disk

     mmlsdisk  totofs

    Disks listing

     mmlsnsd

    Available space disk

     mmdf totofs

    Delete disk01,disk02 & disk03 from GPFS file system (all the data will be copy on other disks)

     mmdeldisk totofs "disk01;disk02;disk03"

    Delete disk01,disk02 & disk03 from the GPFS cluster

     mmdelnsd totofs "disk01;disk02;disk03"

    Change the state of disk01 from down to up:

     mmchdisk totofs start -d disk01

    Rebalances or restores the replication of all files in totofs

     mmrestripefs totofs -r

    VIM avec la souris

    Depuis le temps que je devais faire ça …
    j’utilisais VIM en mode terminal (sous mac os X 10.7) mais j’avais pas mis l’activation de la souris (par flemme). Je viens donc d’installer MouseTerm (qui nécessite SIMBL), du coup non seulement je peux mettre mon curseur où je veux mais en plus je peux utiliser le scroll pour naviguer dans mon document édité.
    Temps nécessaire pour ces 2 installations environ 15 s ! 🙂

    On trouvera MouseTerm ici

    Ne pas oublier de mettre dans son .vimrc

    if has("mouse")
        set mouse=a
    endif

    Le petit désavantage est que lorsque l’on clique sur la souris on passe en mode visuel donc le copier-coller de la souris ne marche plus …. arghhhhh
    En fait il faut utiliser maintenir la commande alt/option avant de sélectionner le texte que l’on désire copier-coller, ca marche aussi sur Linux (source).