Publi

  • Cómo saber si existe una función en Bash, saber qué estamos ejecutando y más

    photo-1457317680121-ef12e98979e8

    En nuestra historia como programadores, hacemos infinidad de llamadas a funciones propias, de terceros, de biblioteca, a otros programas a un alias, etc Y si queremos que nuestros scripts sean lo más robustos posible, debemos tener claro antes de la ejecución que aquello que llamamos se puede ejecutar o dar opciones si algún comando o función no existe.

    Por ejemplo, nuestro script necesita hacer una llamada a wget de este tipo:

    wget -O salida http://totaki.com

    Pero queremos hacer que sea compatible con otros sistemas, por ejemplo, con cURL, y no podemos cambiar uno por otro, pues con curl sería con o minúscula:

    curl -o salida http://totaki.com

    Nuestro script podrá ser:

    1
    2
    3
    4
    5
    6
    7
    8
    if [ -n "$(which wget)" ]; then
        wget -O salida http://totaki.com
    elif [ -n "$(which curl)" ]; then
        curl -o salida http://totaki.com
    else
        echo "No puedo descargar el fichero"
        exit 1
    fi

    De modo que probamos la existencia de diferentes programas y utilizamos el que tengamos a disposición.… Leer artículo completo

  • Cómo localizar ese script en PHP que no para de enviar spam…

    photo-1424296308064-1eead03d1ad9

    Si administras un servidor en el que hay varias webs alojadas, tal vez te hayas encontrado alguna vez con envíos de correos indiscriminados en el servidor. O tal vez, tu proveedor de hosting te haya avisado de actividad maliciosa o ilegal por tu parte. Muchas veces se trata de un script malicioso que se ha instalado en el servidor que utiliza la función mail() de PHP, que a su vez llama al programa sendmail del sistema para el envío masivo de correos electrónicos.… Leer artículo completo

  • Vicio con el teclado, comandos, manías y coletillas que nos salen sin pensar

    photo-1445605081472-9788fb3bc02f

    Como apasionado de la consola, soy una de esas personas que tarda menos en escribir un comando y pulsar enter que en cargar una interfaz gráfica, click, click, control, clic, arrastrar, soltar, click… y el tiempo es muy valioso.
    Eso sí, cuando empiezas a pegarle al teclado y escribir comandos en la terminal, parece que todo va más lento, una simple coma, o un espacio es capaz de fastidiarlo todo, pero cuando llevas mucho tiempo, lo tienes todo tan automatizado que te sale el alma.… Leer artículo completo

  • Cómo conocer CPU y memoria ocupada por un grupo de procesos con el mismo nombre

    photo-1463123081488-789f998ac9c4

    En multitud de ocasiones, mientras estamos trabajando con nuestro ordenador, o incluso con un servidor remoto, se presenta la necesidad de saber la memoria ocupada o la CPU consumida por un determinado proceso.
    Para ello tenemos herramientas como top o ps (entre otras) que nos permiten conocer dicha información. Podemos encontrar multitud de tutoriales para ambos comandos, sólo daré una pincelada aquí.

    ps

    Casi siempre que uso ps suelo hacerlo de la siguiente manera:

    $ ps ax

    para así mostrar todos los procesos que están corriendo actualmente, y si queremos obtener información sobre memoria y CPU podremos ejecutar:

    $ ps axl

    o

    $ ps axo pid,pcpu,pmem,size,cmd

    Si queremos obtener más datos como ID de proceso (pid), % de CPU (pcpu), % de memoria (pmem), tamaño en memoria (size), comando que genera el proceso (cmd).… Leer artículo completo

  • Los principales partidos políticos y el software libre para las próximas elecciones

    elecciones_red2

    En España, tenemos elecciones generales dentro de unos días. Unas elecciones que llegan en un momento histórico y complicado en este país. En el blog no me gusta hablar de mis ideologías políticas sencillamente, porque no es el lugar idóneo para ello.
    Pero, voy a hacer un análisis lo más objetivo posible de los programas electorales de los principales partidos (Partido Popular o PP, Partido Socialista Obrero Español o PSOE, Ciudadanos, Podemos y Unidad Popular o UP).… Leer artículo completo

  • Cómo gestionar los parámetros de un programa en C (parte 2: parámetros largos)

    photo-1415348667647-9e035495cfb7_r

    Hace unos días publiqué Cómo gestionar los parámetros de nuestros programas con getopt en C como una introducción a la gestión de los argumentos desde nuestros programas en C. De esta forma podremos hacer nuestros programas más flexibles aceptando una entrada del usuario en forma de parámetros y así modificar el comportamiento.

    Antes de nada: WordPress cuando ve dos guiones seguidos (- y -) lo interpreta como un guión largo.… Leer artículo completo

  • Programas que me han salvado la vida este 2015

    programas

    En 2012 hice un post con las 5 aplicaciones que me salvaban la vida cada día. Esta vez no pondré límite, aunque para este año quiero analizar la persistencia en el tiempo de dichos proyectos. Como siempre, estos programas tienen licencias libres y corren bajo Linux, y no incluyo en la lista un navegador de Internet, un gestor de correo, servidor gráfico, etc; sino algunos programas para aumentar la productividad o hacer algo que no podía hacer antes, es más, voy a poner sólo programas con interfaz gráfica, que veamos que en GNU/Linux no sólo usamos una terminal:

    Blender

    Screenshot 01-10-2015-181000
    Aunque ya lo había utilizado para cosas pequeñas (no es que lo que he hecho sea muy grande), ha sido el gran descubrimiento de este 2015 para mí.… Leer artículo completo

  • Monitorizar nuestro sistema desde una aplicación en C++11

    14255861975_42cb043745_k

    Nuestros programas, muchas veces necesitan conocer información sobre el ordenador donde se están ejecutando. Una característica muy interasante y útil (para mi gusto) es que los sistemas Unix nos proporcionan una interfaz para conocer muchas cosas a través del sistema de archivos, de esta forma podemos conocer la información estemos donde estemos y usemos en lenguaje que usemos (no tenemos que tener una API en nuestro lenguaje que pida al sistema la información ni nada).… Leer artículo completo

  • Scripts multilingües en bash con gettext / Traducciones en scripts


    Hace tiempo, empecé un proyecto en el que comparto algunos scripts que utilizo para hacerme la vida un poco más fácil. En esta colección, encontramos algunos scripts que ejecutaremos desde consola, y otros que, suelo tenerlos vinculados a una tecla rápida para ejecutarlos más rápidamente. El caso es que, los mensajes que se muestran en pantalla a través de diálogos suelo ponerlos en español, pero me gusta compartirlos con el mundo, y comprendo que cada uno quiera verlo en su idioma.… Leer artículo completo

  • Usando SQLite en nuestros programas en C/C++ (II): Nueva interfaz v2 y prepared statements

    Hace unos días empezamos a programar utilizando SQLite para gestionar nuestra información usando SQL de toda la vida.

    Bien, SQLite tiene la interfaz clásica, que vimos en el post anterior: sqlite3_open(), sqlite3_close(), sqlite3_exec()… con utilidades básicas para trabajar.

    Por un lado, podemos tener más control sobre la base de datos, por ejemplo, podemos definir cómo abirmos la base de datos, tenemos códigos de error extendidos, ventajas con respecto al tratamiento interno de la memoria y algunas cosas más.… Leer artículo completo