Publi

  • Monitorizar el sistema y obtener gráficas de uso

    Cuando tenemos un servidor bajo nuestro control, es muy importante saber cómo vamos de recursos. Si hemos contratado un VPS, por ejemplo, debemos saber cuándo es hora de ampliarlo, o de contratar algo más pequeño porque vamos sobrados de recursos… o incluso poder comprobar que una parada del servicio se debe a un pico de uso del sistema. Esto también nos puede ayudar para comprobar cuándo nuestro server se ha parado debido a un kernel panic o algo parecido.… Leer artículo completo

  • Introduciendo datos al servidor MySQL desde CSV con ejemplos (importar desde CSV)

    Esto nos resultará muy util a la hora de cargar datos en nuestra base de datos. imaginemos que tenemos una tabla como esta:

    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE Testing.NewTable (
        Id BIGINT,
        Nombre VARCHAR(100),
        Email VARCHAR(100),
        Telefono VARCHAR(100)
    )
    ENGINE=MyISAM;

    por ahora vacía, pero tenemos todos los datos que necesitamos en un archivo CSV como este:

    Caso más simple

    1;Antonio;antonio@dominio.com;123456789
    2;Armando;armando@dominio.com;234567891
    3;Carlos;carlos@dominio.com;345678912
    4;Ceferino;cefe@dominio.com;456789123
    5;Cipriano;cipri@dominio.com;567891234

    El primer ejemplo es fácil, simplemente hacemos:

    1
    2
    3
    LOAD DATA INFILE '/tmp/nombres.csv'
      INTO TABLE Testing.
    Leer artículo completo
  • Ver la fecha de dmesg en formato humano

    Cuando ejecutamos el comando dmesg, normalmente la fecha y la hora viene dada en un formato extraño, unos números decimales normalmente largos, indescifrables que nos pueden traer de cabeza cuando queremos saber cuándo sucedió el evento que estamos leyendo.

    [280213.568809] type=1701 audit(1360483429.151:991): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=4 compat=0 ip=0x7f2f734d9205 code=0x50000
    [280213.568815] type=1701 audit(1360483429.151:992): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=4 compat=0 ip=0x7f2f734d9205 code=0x50000
    [280213.568819] type=1701 audit(1360483429.151:993): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=4 compat=0 ip=0x7f2f734d9205 code=0x50000
    [280213.568822] type=1701 audit(1360483429.151:994): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=4 compat=0 ip=0x7f2f734d9205 code=0x50000
    [280213.568826] type=1701 audit(1360483429.151:995): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=4 compat=0 ip=0x7f2f734d9205 code=0x50000
    [280213.570694] type=1701 audit(1360483429.151:996): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=21 compat=0 ip=0x7f2f734d9957 code=0x50000
    [280213.570701] type=1701 audit(1360483429.151:997): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=91 compat=0 ip=0x7f2f734d95a7 code=0x50000
    [280214.706376] type=1701 audit(1360483430.291:998): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=2 compat=0 ip=0x7f2f734d96b0 code=0x50000
    [280217.461365] type=1701 audit(1360483433.047:999): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=2 compat=0 ip=0x7f2f734d96b0 code=0x50000
    [280217.461376] type=1701 audit(1360483433.047:1000): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=2 compat=0 ip=0x7f2f734d96b0 code=0x50000

    Tenemos varios modos de hacer esto:

    Un argumento

    Vale, todo esto podemos simplificarlo, si hacemos

    $ dmesg -T
    [dom feb 10 08:57:39 2013] type=1701 audit(1360483429.151:991): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=4 compat=0 ip=0x7f2f734d9205 code=0x50000
    [dom feb 10 08:57:39 2013] type=1701 audit(1360483429.151:992): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=4 compat=0 ip=0x7f2f734d9205 code=0x50000
    [dom feb 10 08:57:39 2013] type=1701 audit(1360483429.151:993): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=4 compat=0 ip=0x7f2f734d9205 code=0x50000
    [dom feb 10 08:57:39 2013] type=1701 audit(1360483429.151:994): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=4 compat=0 ip=0x7f2f734d9205 code=0x50000
    [dom feb 10 08:57:39 2013] type=1701 audit(1360483429.151:995): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=4 compat=0 ip=0x7f2f734d9205 code=0x50000
    [dom feb 10 08:57:39 2013] type=1701 audit(1360483429.151:996): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=21 compat=0 ip=0x7f2f734d9957 code=0x50000
    [dom feb 10 08:57:39 2013] type=1701 audit(1360483429.151:997): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=91 compat=0 ip=0x7f2f734d95a7 code=0x50000
    [dom feb 10 08:57:40 2013] type=1701 audit(1360483430.291:998): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=2 compat=0 ip=0x7f2f734d96b0 code=0x50000
    [dom feb 10 08:57:43 2013] type=1701 audit(1360483433.047:999): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=2 compat=0 ip=0x7f2f734d96b0 code=0x50000
    [dom feb 10 08:57:43 2013] type=1701 audit(1360483433.047:1000): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=20049 comm=»chromium-browse» reason=»seccomp» sig=0 syscall=2 compat=0 ip=0x7f2f734d96b0 code=0x50000

    Aunque en algunos sistemas no encontraremos este argumento.… Leer artículo completo

  • Generando fotogramas de vídeo en C con frei0r (y MLT) [Parte I – Introducción]

    frei0r es una API Sencilla para crear efectos de vídeo capaz de generar vídeo, filtrarlo y generar transiciones entre dos o tres fuentes de vídeo. Lo realmente interesante de esta API es que la utilizan otras APIS más grandes para generar parte de sus efectos (como FFMPEG (hay que compilarlo con soporte frei0r), MLT, GStreamer, etc) y es usado además por aplicaciones de vídeo com Lives, Open Movie Editor y por supuesto, está presente en aplicaciones que utilizan MLT como KDEnlive, OpenShot o ShotCut.… Leer artículo completo

  • 5 consejos para internacionalizar nuestros programas con gettext [PHP]

    Hace unos meses publicaba un artículo para hacer traducciones con gettext en nuestras aplicaciones, ahora vamos a ampliar aquello con algunos consejos útiles y trucos.

    1 – Conocer globalmente la locale

    No todo es gettext(), que usaremos para mensajes de la interfaz, puede que incluyamos textos desde base de datos y necesitemos tener a mano en todo momento esa locale, además de mucha más información sobre nuestro proyecto. Para ello, una buena forma es crear una clase estática que almacene esa información.… Leer artículo completo