Obtener valores por defecto para columnas de una tabla PostgreSQL

En PostgreSQL la forma de asignar valores automaticamente a una columna (AUTOINCREMENT en MariaDB, por ejemplo) es mediante la asociacion de una secuencia de la que obtener los valores para la columna. Esto se hace automaticamente sin que nos tengamos que preocupar si el tipo elegido para la columna al crearla es SERIAL, que equivale a asignar a dicha columna la propiedad IDENTITY del estandar SQL [1].

Continuar leyendo “Obtener valores por defecto para columnas de una tabla PostgreSQL”

Eliminar doble salto de línea de un fichero

Varias veces había intentado utilizar sed para eliminar el doble salto de línea que aparece en algunos ficheros, normalmente en las copias de la configuración de algunos switches. Nunca lo había conseguido y no entendía muy bien por qué. Creía que sed no entendía la especificación del caracter salto de línea como \n, claro que tampoco funcionaba \\n ni \\\n.

Continuar leyendo “Eliminar doble salto de línea de un fichero”

Cambiar el TTL de paquetes IP ya enviados por la aplicación

Cada paquete IP tiene en su cabecera un campo llamado TTL (Time To Live) destinado a evitar que el paquete quede eternamente circulando por la red en caso de algún problema de enrutamiento. Aunque el significado de sus siglas haga referencia al tiempo de vida, en realidad el valor del campo TTL representa el número máximo de saltos que puede dicho paquete realizar entre distintas redes.

Continuar leyendo “Cambiar el TTL de paquetes IP ya enviados por la aplicación”

Importar un módulo Python dinámicamente

Para poder utilizar un mismo código Python que tenía duplicado con distintas configuraciones en distintos directorios pensé en poner las variables que definen la configuración del trabajo a realizar en ficheros .py particulares y cargarlos como un módulo desde el ahora único fichero de código con lógica. Pensé en esta chapuza de ficheros de configuración para ahorrarme trabajo y no tener que analizar archivos JSON, YAML o cualquier otro formato. Al final el trabajo me lo ahorré gracias a un experto en Python que trabaja conmigo.

Continuar leyendo “Importar un módulo Python dinámicamente”

Deshacer un merge de git después de hacer un push como si no hubiera pasado nada

La receta es simple, basta con devolver la rama erróneamente mezclada (merge) a su estado anterior y forzar la actualización en el repositorio (push).

Continuar leyendo “Deshacer un merge de git después de hacer un push como si no hubiera pasado nada”

Instalando dvd::rip en Wheezy

dvd::rip permite, entre otras cosas, extraer el contenido de un DVD y convertirlo a distintos formatos de video. Para eso lo utilizaba y ahora quería volver a instalarlo en Wheezy. Aunque el fichero que se descarga desde la web oficial contiene ya binarios precompilados, se necesita instalar varios módulos Perl para hacerlo funcionar.

Continuar leyendo “Instalando dvd::rip en Wheezy”