Publi

  • Ejecutando tareas desde consola simultáneamente con GNU Parallel


    Los ordenadores cada día son más potentes. Y una de las formas de poder ejecutar tareas de forma más rápida, es simultanearlas. Por un lado, es lógico que si una tarea está esperando un dato (ese dato puede venir del disco, del usuario por medio del teclado o el ratón, o descargándoselo de Internet), es normal que el ordenador decida ejecutar otras cosas para no perder el tiempo. Y de hecho se ha aprovechado esto para tener varios programas en ejecución, constantemente dando y quitando el acceso al procesador.… Leer artículo completo

  • Utilizando Eloquent para interactuar con bases de datos en nuestros proyectos paso a paso.

    Eloquent para bases de datos
    Parece que fue ayer cuando, cada vez que necesitamos hacer algo con bases de datos en algún proyecto, abríamos la conexión y hacíamos la consulta a mano… mysql_connect(), mysql_query(), mysql_fetch_assoc()… No está mal cuando queremos aprender cómo funciona todo, pero cuando vamos a ponernos a programar en el mundo real, nos viene mejor programar con sistemas que nos hagan la vida un poco más fácil y nos separen en cierto modo de las consultas que hacemos a la base de datos.… Leer artículo completo

  • Operaciones básicas con cadenas en C++: capitalización, conversiones, recorte, recorrido y más

    Como ha sucedido con otros lenguajes, C++ también ha evolucionado. Ha madurado mucho desde aquellos códigos que programábamos hace años y se nota. Por un lado, podemos pensar que al sumar abstracción en ciertos aspectos nos separa de la máquina y hace nuestro código más lento. Suma comprobaciones, hace más callbacks y en definitiva, una sencilla tarea que completaba en pocos cientos de operaciones, ahora son pocos miles. Aunque en su favor, podemos decir que aquello que programábamos en 15 o 20 líneas de código se ha reducido a una o dos, reduciendo así los puntos de ruptura, posibles bugs y calentamientos de cabeza futuros.… Leer artículo completo

  • Formas de eliminar etiquetas XML/HTML desde MySQL o MariaDb. strip_tags en MySQL

    popsometags
    Estamos haciendo una consulta a una tabla, y vemos que la tabla tiene un texto. Pero dicho texto contiene etiquetas HTML que nos molestan o no deberían estar ahí (puede que el valor lo hayamos extraído de un campo WYSIWYG) y cuando vamos a extraer la información nos molesta.

    Pero tenemos prisa y tendríamos que modificar o crear un programa y no tenemos tiempo. ¿Qué hacemos? Pues nada, implementar strip_tags() dentro de MySQL y luego pegarnos un baile.… Leer artículo completo

  • Creando webs dinámicas con PHP. Un recorrido de más de 10 años hasta hoy

    phpVShhvm

    PHP es uno de los lenguajes de programación en el lado del servidor más popular y uno de los pilares en los que se apoyan cientos de millones de sitios web actualmente (aunque su uso no es exclusivo para web y puede darnos mucho juego).

    Ya que PHP debe ser versátil y fácil de utilizar, se trata de un lenguaje interpretado o de script. Es decir, el código que programamos se escribe en un archivo de texto plano en un formato inteligible para los desarrolladores (aunque lento para los ordenadores).… Leer artículo completo

  • ¿Cómo crear un chat utilizando WebSockets en C++? Y no morir en el intento

    websockets_en_cpp
    Los WebSockets proporcionan un canal bidireccional entre el servidor y el navegador y nos permiten crear aplicaciones aún más dinámicas y rápidas. Hace unas semanas vimos cómo funcionan los WebSockets por dentro. En este post vamos a ver una implementación de los mismos en C++, en realidad la parte de navegador como habréis imaginado será Javascript, HTML y CSS, como siempre; será la parte de servidor la que programemos en C++.… Leer artículo completo

  • 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 aplicar filtros de GIMP a un vídeo

    photo-1464602083226-de2c1675e946

    Estoy subiendo vídeos a mi canal personal de Youtube. Aunque sólo tengo algunos pequeños tutoriales, postales de navidad y cosas así. He decidido subir algunos vídeos y cortos antiguos. Aunque están grabados con una cámara analógica y en cinta magnética, lo que significa que el vídeo tiene mucha pérdida y poca calidad. En un intento por darle algo más de definición, o al menos que el visionado sea algo más agradable, pensé en un filtro de Gimp (Desenfocado Gaussiano Selectivo), y estaría muy bien poder aplicarlo a todos los fotogramas.… Leer artículo completo

  • Instalar múltiples versiones de PHP y extensiones con phpfarm en Ubuntu/Mint/Debian…

    photo-1441749074938-1c6782303919
    Si llevas varios años trabajando con este lenguaje de programación. Tal vez se te ha presentado un pequeño problema: tienes varios desarrollos a lo largo del tiempo y tienes código en una versión de PHP antigua que no es compatible con versiones nuevas. Y, por otro lado, mientras mantienes una versión de producción de otro proyecto (para PHP 5.5 o PHP 5.6), quieres empezar a hacer pruebas para ver cómo se comporta con PHP7, y todo ello sin morir en el intento.… Leer artículo completo

  • En ocasiones, veo lenguajes de programación por la calle [ Frikada rápida ]


    Un día, paseando por Linares, me asomo a este escaparate y… veo tres llaveros cuidadosamente colocados formando las iniciales de uno de mis lenguajes de programación favoritos.
    Vale, es CPP y no C++, pero también se dice C plus plus y una de las extensiones típicas para esos archivos es cpp.
    Luego hay una B por ahí, que es otro lenguaje de programación… pero, ¿quién programa en B hoy en día?… Leer artículo completo