17 de septiembre de 2013

BASH: Pasar de Segundos a Horas Minutos y Segundos

Veamos este BashScript de ejemplo para pasar de SEGUNDOS a HORAS:MINUTOS:SEGUNDOS

#!/bin/bash
segundos=1000
hms=`date -d "1970-01-01 $segundos sec" +"%H:%M:%S"`
echo "$segundos segundos son $hms H:M:S"
exit 0

..y problema resuelto en 00:00:01 horas, minutos y segundos.

BASH: Comparar fechas de archivos

Útil para Bash Scripts que operen con fechas de modificación de archivos:

#!/bin/bash

tiempo=$((60*60*6)) # 6 horas, si quieres seis días: 
                    # tiempo=$((60*60*24*6))

fichero=`stat -c %Y mi_fichero` # Fecha y hora en segundos de ultima actualizacion
ahora=`date +%s` # Fecha y hora actual en segundos

diferencia=$((${ahora} - ${fichero})) # Calculamos la diferencia

if [ ${diferencia} -gt ${tiempo} ]; then
  echo "Hace mas de ${tiempo} segundos que se actualizó"
else
  echo "Tan solo hace ${diferencia} segundos que se actualizó"
fi

13 de septiembre de 2013

Python: Argumentos de un script python

Ejemplo un script de python con 4 argumentos:

script-python.py a1 a2 a3 a4

Es el script de python hay que importa la lierir sys:

import sys

Número de argumentos:   len(sys.argv)

Acceso a cada argumento
    sys.argv[0]   es igual al nombre del archivo script
    sys.argv[1]   es igual a a1
    sys.argv[2]   es igual a a2
    sys.argv[3]   es igual a a3
    sys.argv[4]   es igual a a4

Para comprobar si hay algún argumento:

    if len(sys.argv) >= 2:
        print "Ok, hay argumento "
    else:
        print "Debes indicar un argumento"
        sys.exit()

Python: comprobar la existencia de un fichero

#!/usr/bin/python
import os
try:
    os.stat("ruta del fichero")
    print "Fichero SI existe"
except:
    print "El fichero NO existe"

Python: concatenar variables

En Python al concatenar variables que no sean de tipo string, dará error.

Por ejemplo ...

$python
Python 2.7.4 (default, Apr 19 2013, 18:28:01)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 1000
>>> b = "www.misnotaslinux.blogspot.com"
>>> c = a + b
Traceback (most recent call last):
  File "", line 1, in
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Hacerlo pasando las variables int a str antes de concatenar:

>>> a = 1000
>>> b = "www.misnotaslinux.blogspot.com"
>>> c = str(a) + b
>>> print c
1000www.misnotaslinux.blogspot.com
>>>

8 de septiembre de 2013

Separador de miles en Bash

Usar printf.

Aqui un par de links que lo explica:
http://www.rokerias.com/2013/06/imprimir-separador-de-miles-en-bash.html
http://linux.about.com/library/cmd/blcmdl3_printf.htm

jQuery: un toolkit de JavaScript

Un objetivo que tengo es aplicar JavaScript a página web www.pedeefes.com para aumentar su interactividad y capacidad de respuesta con los usuarios.

Como es habitual en el actual mundo web, los temas de diseño son críticos y para optimizar el tiempo empleado y el resultado obtenido hay que acudir a frameworks o toolkits que hagan mas productiva la tarea de programación .


Uno de los que mas desarrollo y expansión esta teniendo es jQuery.

Mas que un framework se trata de un toolkit que hace mucho mas llevadera la programación de efectos gráficos e interactividad con el usuario basado en JavaScript.

Su lema: Escribir menos, hacer mas, realmente se cumple.
Aunque finalmente siempre es necesario escribir algo de código en JavaScript, el trabajo duro lo realiza jQuery con una sintaxis sencilla y una enorme potencia.

La curva de aprendizaje es rápida y se puede comenzar sin saber nada de JavaScript o mejor dicho, ir aprendiendo los fundamentos de JavaScript al mismo tiempo.

También es necesario tener conocimientos de HTML, CSS y DOM para sacar el máximo partido a jQuery.

En cuanto a bibliografia os remito a www.pedeefes.com donde podréis encontrar numerosos pedeefes sobre jquery, javascript, html, css3, y muchas muchas cosas mas.

23 de agosto de 2013

Cambiar el UUID de un disco virtual .vdi de Virtual Box

Cuando hago una copia de un disco virtual e intento arrancarla en una nueva máquina virtual con Virtual Box, aparece un error diciendo que el UUID del disco ya existe.

Para solucionar esto podemos cambiar la UUID del disco virtual .vdi copiado con el siguiete comando desde MS-DOS:


C:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands sethduuid "C:\HDfile.vdi"
UUID changed to: 1727a910-2037-4d8d-866b-ae6d52c5a6cd

y problema resuelto.

Python: ejecutando comandos linux

Para ejecutar comandos de Linux desde Python podemos usar los módulos os y commands.

Con os se ejecuta el comando ls y retorna un bit de ejecución, no el resultado del comando:

import os
out = os.system("ls")



Si necesitamos el resultado del comando linux ejecutado usar commands:

import commands
out = commands.getoutput("ls")