Expresiones regulares

Hace algunos días me vi en la necesidad de aprender a usar expresiones regulares en python, justo en esos días me encontré con un comic con el que me sentí identificado…

Y es que a quien no le ha pasado que después de aprender alguna nueva habilidad, técnica, etc, no busca la manera de usarla tanto como sea posible.

Bueno en caso de que hallan entrado aquí para aprender a usar las expresiones regulares no se preocupen no pondré solo el comic sino que compartiré el programa que escribí, pero primero la explicación de lo que hace aunque no profundizare en el por que lo hice…

Primeramente para quien no conoce que es una expresión regular (tal vez entraron a este blog de forma accidental), les dejo la definición de la wikipedia:

Una expresión regular, a menudo llamada también patrón, es una expresión que describe un conjunto de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel, Händel y Haendel se describe mediante el patrón “H(a|ä|ae)ndel”. La mayoría de las formalizaciones proporcionan los siguientes constructores: una expresión regular es una forma de representar a los lenguajes regulares (finitos o infinitos) y se construye utilizando caracteres del alfabeto sobre el cual se define el lenguaje. Específicamente, las expresiones regulares se construyen utilizando los operadores unión concatenación y clausura de Kleene.

El programa lee un archivo de texto (por ejemplo un txt aunque originalmente lo pensé para un html) buscando todas las ocurrencias de una letra mayúscula seguida por un numero (X1, G6, Y77, R55, etc.) y lo le agrega “+ al inicio y +” al final ( X1 pasa a ser +X1+” ), solo buscara las letras mayúsculas de manera que cualquier ocurrencia en letras minúsculas no sea cambiada (h1, h4, t1, etc. quedan igual).

Adicionalmente agrega V1=” al inicio de cada linea y “: ASCII(5,V,1,2) al final ademas de un salto de linea (\n) por ejemplo:

Linea original: Si el valor de X1 es igual a H777 entonces…

Linea generada: V1=”Si el valor de “+X1+” es igual a “+H777+” entonces…\n“: ASCII(5,V,1,2)

Todo lo anterior lo almacena en un nuevo archivo con el mismo nombre pero extensión .kplr (miArchivo.txt se guarda como miArchivo.txt.kplr)

Bueno sin mas les dejo el código del programa

import sys          # sys (para el paso de argumentos),
import os.path    # os.path (para comprobar la validez del archivo)
import re          # y re (para las expresiones regulares)

if(len(sys.argv) > 1):   # comprobamos que exista un parámetro
    archivo=sys.argv[1]   # lo asignamos a la variable archivo
    existeF = os.path.exists(archivo)  #comprobamos que exista el archivo
    if existeF: # si existe el archivo...
        lee = open(archivo,"r")  # lo abrimos como solo lectura
        escribe = open(archivo+".kplr","w")  # creamos el archivo con extensión .kplr
        while True: # bucle para leer todas las lineas
            linea = lee.readline() # leemos una linea
            if not linea: # nos aseguramos que sea una linea
                break # de lo contrario terminamos el bucle
            lineaNueva=linea.rstrip() # quitamos a la linea los caracteres que no queremos (el salto de linea)
            lineaNueva=re.sub(r'([A-UW-Z]\d+)',r'"+\1+"',lineaNueva) # sustituimos las ocurrencias de nuestra expresion
            lineaEscribe='V1="'+lineaNueva+'": ASCII(5,V,1,2) \n' # añadimos lo que queremos al inicio y final de la cadena
            escribe.write(lineaEscribe) # guardamos la linea en nuestro archivo .kplr
        print "Codigo kplr creado correctamente" # al terminar mostramos el mensaje de todo correcto
    else: # si no existe el archivo
        print "El archivo no existe, debes indicar un nombre de archivo valido" # mostramos mensaje de error
else: # si no se paso un parámetro
    print "Debes indicar el nombre del archivo" # mostramos mensaje de error

En fin, espero que este preograma les sirva, aunque sea para darse una idea de como usar las expresiones regulares.

Links…

Comic xkcd

Expresiones regulares en la wikipedia.

Abrir documentos de Office 2007 en otras versiones.

Nos guste o no la suite ofimática de mayor difusión es la de Microsoft (Office) que actualmente se encuentra en su versión 2007.

Sin embargo esta utiliza un formato de archivos diferente que nos impide abrir sus documentos en versiones anteriores (por ejemplo Office 2003), sin embargo hay una solución disponible y sin costo (no, no me refiero a instalar el Office 2007 pirata), se trata de un paquete de compatibilidad proporcionado por el mismo Microsoft.

Más detalles aqui.

Instalando AVG Free

Una de las tareas principales (por no decir vitales) que debemos llevar a cabo en nuestra computadora es la instalacion y configuracion de un buen antivirus (bueno a menos que no usemos windows).

Pues bien para llevar a cabo esta tarea existe numerosas opciones disponibles en el mercado pero dada la temática de este blog , usaremos AVG Free (una versión gratuita del antivirus de Grisoft)

Recomendación: En la sección de descargas de la pagina del antivirus ademas del instalador encontraremos las actualizaciones disponibles y el manual de usuario, en caso de que no contemos con internet en nuestra casa y estemos leyendo esto en un cibercafé o en el trabajo (vagos) podemos descargar todo (instalador + actualizaciones + opcionalmente el manual) para instalarlo en la casa sin problemas.

En fin pasemos al manual =P (Imágenes disponibles)

Instalar AVG Free es bastante sencillo pues en realidad son pocas las cosas que habrá que configurar

  1. Inicialmente damos clic en Next (siguiente)
  2. Aceptamos el contrato
  3. Veremos una pantalla que nos dice que esta checando en sistema
  4. Si todo sale bien tendremos 2 opciones de instalación la estándar (standard) y la personalizada (custom), como en realidad no podemos personalizar gran cosa elegimos estándar
  5. Escribimos el nombre de usuario y compañía (ponemos lo que queramos) la licencia la dejamos tal como esta.

  6. Damos clic en finalizar y nos mostrar una pantalla del progreso de instalación y después una ventana notificándonos que se instalo correctamente, damos clic en OK
  7. Si la instalación se logra sin problemas veremos una pantalla felicitación damos clic en Next para dar los primeros pasos
  8. Lo primero será actualizar nuestro antivirus dando clic en check for updates
  1. Nos preguntara donde localizaremos nuestras actualizaciones si contamos con una buena conexión a Internet elegimos esa opción si decidimos descargar las actualizaciones desde la pagina de AVG elegimos folder
  2. Si elegimos Internet las actualizaciones se descargaran e instalaran solas solo basta esperar en caso de que haya un problema de conexión nos mandara un mensaje de error y un botón de OK damos clic ahí y revisamos nuestra conexión
  3. Si elegimos folder nos pedirá elegir la ubicación de los archivos descargados, la elegimos y damos clic en aceptar
  4. Si encontró actualizaciones disponibles nos preguntara si deseamos actualizar ahora damos clic en yes
  5. Nos mostrara una pantalla de progreso y al final un mensaje de que ha actualizado correctamente damos clic en OK (si no aparece esta pantalla algo estuvo mal inténtalo nuevamente)
  6. Una vez terminado esto nos regresara al inicio a la pantalla de felicitaciones damos clic en next apareceremos en actualizaciones nuevamente y ahora damos clic en next (ya hemos actualizado)
  • Ahora configuraremos las revisiones diarias (búsqueda de virus en toda la maquina), a menos de que constantemente estemos en peligro de virus recomiendo desactivarlo (quita la marca a la opción Eneable Sheuduled…), si queremos dejarlo podremos elegir entre 2 prioridades baja (low) y alta (high) la segunda es mas rápida pero la maquina podría alentarse la primera opción o se alentara tanto pero es mas lenta (toma más tiempo)
  • Posteriormente nos preguntara si deseamos escanear la PC (scan computer!) si hace tiempo que no tenemos antivirus o creemos que puede estar infectada nuestra maquina damos clic en scan computer y esperamos a que termine, si lo queremos hacer después damos clic en Next
  • Si elegimos escanear la computadora nos mostrara una pantalla de progreso, con los virus que vayan apareciendo (en acaso de haberlos)
  • Después nos mostrara una opción para registrar el antivirus, podemos registrarnos (necesitamos conexión a Internet pues nos abrirá una pagina) o simplemente damos clic en Next
  • Por ultimo nos aparecerá una ventana avisándonos que nuestra maquina esta protegida, damos clic en continue…
  • Nos mostrara la pantalla del centro de escaneo (donde entramos para buscar virus)
  • Por ahora nos centraremos a configurarlo; damos clic en control center
  • Una vez en el control center nos vamos a sheduler (es para tareas programadas), aquí podremos configurar las horas en las que hará la búsqueda de actualizaciones y la revisión diaria (en caso de que la hayamos activado) además de configurar la hora podremos activar o desactivar esas opciones
  • Después no vamos a resident shield ahí marcaremos la opción scan all files para que revise todos los archivos sin excepción y damos aceptar
  • A continuación en shell extension test marcamos las 2 opciones de scanning parameters y scanning properties y en file extensions volvemos a marcar scan all files
  • Por ultimo nuevamente en el test center vamos al menú test y en complete test y selected areas test hacemos lo mismo que en shell extension
  • OK hemos terminado instalamos AVG y lo configuramos para la máxima protección espero les sirva
  • Si necesitas Imagenes puedes ver mi álbum a continuacion

    Instalacion de AVG Free

    Creando tus propios timbres

    Cansado de los timbres de tu celular y no quieres gastar en DaHouseCat’s Blog encontraras la solucion

    He recibido muchos comentarios acerca de como cortar una canción en MP3 o como comprimir una canción en MP3 para usarlas como tono de Timbre (Ringtone) en los celulares, la inquietud viene de celulares como el Motorola PEBL U6 y el V3 RAZR que tienen poquita memoria.

    Lo que vamos a necesitar van a ser:

    • Audacity, Software libre de edición de audio muy ligero; que nos servirá para cortar la canción, denle al enlace que dice Instalador de Audacity 1.2.6.
    • LAME, esta es una librería DLL que le permitirá al Audacity guardar nuestros archivos en MP3, deben descargar la que dice For Audacity on Windows

    Personalizando el arranque de windows

    En ocasiones podemos tener una excelente computadora y aun así puede tardarse mucho tiempo en encender, aunque pueden existir varias razones para esto (falta de mantenimiento, virus, windows vista =P) la razón más común es no fijarnos que instalamos y como lo hacemos.

    Muchas aplicaciones se agregan solos (o algún componente) a la lista de procesos en la carga de windows, esto provoca que con el tiempo y la falta de cuidado terminemos juntando cientos de procesos que se arrancan al inicio de windows haciendo que el tiempo de encendido se vuelva enorme.

    Si bien existen algunos programas que nos permiten cambiar estos procesos de manera sencilla también lo puedes hacer por tu propia cuenta sin necesidad de instalar nada…

    Antes de comenzar quiero hacer una aclaración DEBES TENER CUIDADO, fíjate bien en que procesos cambias no vaya a ser que deshabilites algo que necesites, puedes usar google para buscar de que se trata alguno de esos procesos, también pon atención a la dirección (o ruta) de donde proceden (c:/archivos de programa/… etc.)

    Una vez hecha la aclaración estos son los pasos a seguir:

    1. da clic en inicio -> ejecutar
    2. en la ventana de ejecutar escribe: msconfig
    3. en la ventana que aparece dirígete a la pestaña inicio
    4. PON ATENCIÓN y deshabilita lo que no necesitas y/o no quieras que inicien desde el inicio (usualmente todo -en especial el messenger-, menos antivirus, ni firewall, etc.)
    5. opcionalmente en la pestaña servicios puedes deshabilitar algunos, para esto te recomiendo marcar la opción ocultar los servicios todos los servicios de microsoft (desactivar algunos de estos sin saber para lo que sirven seria “mortal”)
    6. listo por ultimo te preguntara si deseas reiniciar (sugiero termines de leer esto y da clic en reiniciar)
    7. ya has hecho todos los cambios necesarios una vez que reinicies te enviara un mensaje de aviso en el cambio de configuración solo marca la opción de no mostrar de nuevo y reinicia

    Imagenes al respecto:

    Si has hecho todo bien el tiempo que se tardaba en iniciar windows se habrá reducido, sin embargo no hace milagros así que si aun tarda mucho tal vez necesites darle mantenimiento o de plano comprar una nueva