Publi

  • Cómo actualizar /etc/hosts con todos los contenedores docker que hay en ejecución

    Si tenemos varios contenedores docker arrancados en nuestro ordenador. Muchas veces, nos interesará conectar con servicios corriendo dentro de cada uno de ellos. Algunos estarán lanzados simplemente con docker, otros con docker-compose, cada uno trabajando en un sistema distinto, y necesitamos una forma más o menos sencilla de acceder a cada uno de ellos.

    Con un pequeño script podemos recorrer todos los contenedores, pedir la dirección IP de cada uno de ellos y añadirlas al nuestro archivo /etc/hosts de forma que este archivo se actualice automáticamente cada vez que lanzamos el comando.… Leer artículo completo

  • Crear redirecciones en Apache en función de una cookie

    Servidor de pruebas

    En estos días que asusta leer la palabra cookie en cualquier sitio. Si nos remontamos al siglo pasado, los navegadores solían preguntarnos cada vez que iban a a definir una cookie para ver si aceptábamos o no. Cosa que se terminó volviendo insostenible ya que los sitios web definían varias cookies y empotraban contenido de otros sitios que querían definir cookies y terminábamos con unas diez ventanas emergentes cada vez que entrábamos en una web.… Leer artículo completo

  • Cómo hacer carpetas IMAP compartidas con Cyrus

    Un servicio de correo electrónico suele ser algo personal. Sin embargo hay ocasiones en las que nos interesa que varios usuarios sean capaces de gestionar conjuntamente un buzón de correo. Podemos pensar el caso de una empresa en la que varios empleados reciben los mensajes de una dirección de correo determinada, por ejemplo info@miembpresa.com, y que de vez en cuando el jefe viene a echar un vistazo a dichos correos. O que, por ejemplo tenemos que enviar decenas o cientos de mensajes a otro usuario dentro del mismo servidor, podemos pensar en que un empleado deja la empresa y otro compañero va a encargarse de las conversaciones que tenga actualmente con los clientes.… Leer artículo completo

  • Contenedores docker de aplicaciones de escritorio [con ejemplos listos para usar]

    En los últimos años, han surgido varias tecnologías para compartimentar aplicaciones. Desde ejecutar una aplicación desde una jaula, hasta virtualizar un sistema operativo completo dentro de nuestro sistema. Algo que se utiliza mucho en servidores. Actualmente hay una tecnología en auge, y es Docker. Docker nos permite encerrar una aplicación, junto con las bibliotecas que necesita para funcionar y ejecutarla en un entorno aislado, de forma que la aplicación compartimentada no pueda ver nada del exterior.… Leer artículo completo

  • Proyectos, programación, y vidas online y offline

    Han pasado varios meses desde mi último post. Creo que ha sido la temporada más larga sin escribir nada en el blog. Además, teniendo algnos posts programados que se publicaron automáticamente. Han sido unos meses de reflexión, nuevos proyectos y acontecimientos en mi vida online y offline.

    Durante este tiempo, aunque no he estado muy activo en redes sociales (no tanto como antes), he contestado mensajes, comentarios, y tweets. He retomado antiguos proyectos y rescatado ideas que tenía en mi cabeza hace más de diez años.… Leer artículo completo

  • Píldora: Utilizar arrays con nombre dinámico en Bash

    Arrays con nombre dinámico en Bash

    Una de las grandes ventajas de los lenguajes interpretados es que podemos almacenar en una variable el nombre de otra variable y trabajar con su valor. ¿Punteros? Bueno, al final es parecido a la utilización de punteros en C, aunque aquí podemos hacer referencia por el mismo nombre de la variable incluso, previo filtrado y con mucho cuidado, preguntarle al usuario el de la variable para trabajar con ella.

    Esto nos puede dar mucha flexibilidad en nuestro código.… Leer artículo completo

  • Programación de tareas en segundo plano para nuestras aplicaciones web (Introducción. Parte 1 de 3)

    Tareas programadas en segundo plano

    Las aplicaciones web se van complicando cada vez más. Es un hecho y es algo bueno. Los ordenadores tienen más potencia, y los creadores cada vez más opciones e imaginación para destacar sobre la competencia. Una práctica interesante es la posibilidad de realizar tareas en segundo plano o en un momento concreto del tiempo sin que exista una mediación por parte del usuario.

    Tenemos varias posibilidades y en estos posts vamos a centrarnos en cada una de ellas.… Leer artículo completo

  • 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

  • Ejemplo para analizar y procesar expresiones matemáticas (y más) en PHP (Parsear en PHP)

    Parsear expresiones en PHP

    Una de las mayores armas de doble filo en cuanto a los lenguajes de programación interpretados es la función o expresión eval. Esta orden nos suele permitir escribir una cadena de caracteres con un texto en el mismo lenguaje que estamos escribiendo y ejecutarla. Es decir, si nos encontramos en Python y escribimos:

    1
    eval("100+23")

    Devolverá 123. O si estamos en PHP y hacemos:

    1
    2
    <?php
    eval("echo 100+23;");

    En la cadena de caracteres que introducimos podemos utilizar variables, bucles, condiciones… vamos, todo lo que nos permite el lenguaje de programación.… Leer artículo completo

  • Implementación de filtros de contenido “después de la cola” en Postfix [Ejemplos en Bash y Python]

    Filros de contenido en Postfix
    Como hemos visto en anteriores artículos, Postfix nos da una gran flexibilidad a la hora de aplicar reglar y filtros a los mensajes que van llegando. Como ejemplo tenemos la implementación de Milters. Estos filtros se ejecutan antes de introducir los mensajes en la cola de entrega por lo que, a veces, puede no ser lo que buscamos. Cuando filtramos un correo con milters, el emisor del mensaje va a saber si se entrega o no.… Leer artículo completo