Recuperar contraseña de usuario "postgres" en PostgreSQL

  Como ya se ha visto en otra entradaPostgreSQL es un gestor de bases de datos de tipo relacional gratuito.
  Cuando se termina de instalar, este gestor de bases de datos posee un usuario estándar por defecto con permisos de administrador llamado "postgres".
  Sin embargo, hay que distinguir entre el usuario de sistema y el usuario del gestor de bases de datos, puesto que cada uno de ellos, a pesar de llamarse del mismo modo, poseen características diferentes, entre las que se encuentra su contraseña, lo que puede llevar al usuario a cometer equivocaciones.
  Un usuario de PostgreSQL puede despistarse por cualquier circunstancia y acabar perdiendo la contraseña, lo que suele ser un problema grave.
  En la presente entrada se explicará el modo de crear una nueva contraseña (que puede ser igual a la que ya se tenía previamente) para el usuario genérico de administración del gestor de bases de datos "postgres".

Desplegar un gestor de contenidos con Docker Compuesto

  Como ya se ha visto en entradas anteriores de la presente bitácora, el Docker Compuesto es una herramienta avanzada del programa de virtualización Docker.
  Dicha herramienta suele emplearse para desplegar diversos tipos de aplicaciones y de sitios web. En el caso de estos útlimos, también los basados en sistemas de gestión de contenidos (lo que, a veces, implica contenedores extra para el gestor de bases de datos).
   Como los gestores de contenidos de páginas web requieren de gestores de bases de datos, estos últimos suelen instalarse desde el mismo archivo YAML que los primeros. No obstante, puede estar todo en un mismo contenedor, o bien en contenedores separados pero interconectados mediante una red creada durante su instalación.
  En la presente entrada se verán ambas opciones utilizando como ejemplo el gestor de contenidos WordPress y el Drupal.

El programa de gestión de relación con el cliente

  En la actualidad gran parte de la tecnología se emplea en el mundo de los negocios, razón por la cual existen numerosos programas destinados a mejorar las tareas relacionadas con dicho mundo (los programas de ofimática son el ejemplo más popular).
  Un tipo de programas que se han comenzado a emplear desde hace unos años es el de gestión de relación con el cliente ["customer relationship management" (CRM), en inglés], que es conocido popularmente como programas CRM.
  Desde el punto de vista informático, un programa CRM consiste en un sistema informático de apoyo a la gestión de las relaciones con los clientes, a la venta y al marketing,​ y que se integra en los llamados Sistemas de Gestión Empresarial (SGE), y que incluyen CRM, ERP, PLM, SCM y SRM. El software de CRM puede comprender varias funcionalidades para gestionar las ventas y los clientes de la empresa: automatización y promoción de ventas, tecnologías de almacén de datos ("data warehouse", en inglés) para agregar la información transaccional y proporcionar capa de informes, tableros de instrumentos ("dashboard", en inglés) e indicadores claves de negocio, funcionalidades para seguimiento de campañas de marketing y gestión de oportunidades de negocio, capacidades predictivas y de proyección de ventas.

Crear un bot en Telegram

  Un bot (aféresis de robot) es un programa informático que efectúa automáticamente tareas repetitivas a través de Internet, cuya realización por parte de una persona sería imposible o muy tediosa.
  Algunos ejemplos de bots son los rastreadores web de los motores de búsqueda de Internet, que recorren los sitios web de forma automática y recopilan información de los mismos de manera mucho más rápida y efectiva de lo que lo haría una persona. Los bots "buenos" cumplen los estándares de exclusión de robots, que los operadores de servidores pueden usar para influir en el comportamiento de un robot dentro de unos límites. Los bots "maliciosos" se utilizan, por ejemplo, para recopilar direcciones de correo electrónico con fines publicitarios, para hacer copias masivas no autorizadas de contenidos web o para espiar de manera sistemática las vulnerabilidades de software de los servidores con el objetivo de penetrar en ellos. En las redes sociales, los bots se utilizan para simular la interacción humana, hinchando artificialmente el número de visitas o seguidores, o automatizando respuestas para posicionar mensajes o influir en debates. Los denominados bots conversacionales son sistemas de inteligencia artificial que simulan una conversación con una persona utilizando el lenguaje natural.
 El concepto de bot es una definición funcional, y no hace diferencias en cuanto a su implementación. Un bot puede estar diseñado en cualquier lenguaje de programación, funcionar en un servidor o en un cliente, o ser un agente móvil, etc. A veces son llamados Sistemas Expertos, pues muchos se especializan en una función específica.
  La programación de un bot puede estar diseñada para cumplir tareas muy básicas como lo son el recordar alguna tarea o bien automatizar algún proceso, también existen bots con programación más compleja que buscan realizar actividades que conllevan toma de decisiones; estas decisiones son tomadas a partir de filtros o parámetros que el programador incluye en el código de programación. En estos días existen asistentes avanzados amigables que ayudan a manipular más fácilmente el código del bot.

  En esta bitácora ya se ha hablado del programa de mensajería instantánea Telegram. Una de sus funciones consiste en la creación de bots.

Instalar aplicación en Java, dependiente de base de datos, en Tomcat dependiente de Nginx

 Ya se ha visto en entradas anteriores cómo instalar un entorno apropiado para el despliegue de una aplicación en Java simple. Este entorno consistía en el empleo de un servidor de red Nginx como servidor de proxy inverso y un contenedor de red Tomcat.
  En esta ocasión se va a añadir una variable más a la "ecuación" que constituye el mencionado entorno, y se va a instalar también una base de datos que formará parte del mismo.
  En primer lugar, comentar que Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos, que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo, lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Esto lo hace idóneo para la creación de aplicaciones de red y, de hecho, muchas aplicaciones de red de la actualidad están hechas, en mayor o menor parte, con este lenguaje.
  Los ejemplos de la siguiente explicación se han probado con éxito en  un sistema operativo Debian 9, que tiene alojados en él un servidor Nginx 1.14 como servidor de proxy inverso, un Tomcat 8 como contenedor de red, y una base de datos PostgreSQL 10.5.

Instalación de PostgreSQL en servidor Debian

  En otra entrada de la presente bitácora se ha visto qué es un gestor de bases de datos PostgreSQL.
  La entrada que ahora nos ocupa profundizará algo más en este sistema de gestión de bases de datos y mostrará el mejor modo de realizar su instalación en un servidor Debian de Linux.
  En primer lugar se ha de hacer hincapié en el método de uso de los disparadores ("triggers", en inglés) que realiza este gestor de bases de datos. Debido a que un disparador es una acción específica que se realiza de acuerdo a un evento, cuando éste ocurra dentro de la base de datos, en PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Esto hace que todos los disparadores se definan por seis características: El nombre del disparador, el momento en que el disparador debe arrancar, el evento del disparador deberá activarse sobre…,  la tabla donde el disparador se activará, la frecuencia de la ejecución, la función que podría ser llamada, y si la función no es correcta. Combinando estas seis características, este gestor de bases de datos permite al usuario crear una amplia funcionalidad a través de su sistema de activación de disparadores.

Cálculo de subredes

 Una red de ordenadores, o red informática, es un conjunto de equipos  informáticos conectados por medio de cables, señales, ondas o cualquier otro método de transporte de datos, que comparten información (archivos), recursos (CD‐ROM, impresoras, etc.) y servicios (acceso a Internet, e‐mail, chat, juegos), etc.
 Cada uno de los equipos informáticos que componen la red se denomina "anfitrión" ("host", en inglés); no obstante, una red puede dividirse en varias redes más pequeñas si se considera necesario. Cada una de estas pequeñas redes que conforman el conjunto de una red se denominan "subred" ("subnet", en inglés).

Preparación básica de un servidor de Linux

  Se ha hablado, en anteriores entradas, acerca de numerosos tipos de servidores, en especial, de servidores de red, pero poco se ha tratado el tema de los servidores de base donde suelen ir instalados todos los demás, así como otros programas que realizan tareas junto al servidor.
  Y es que Internet Information Services, Nginx, Tomcat, los sistemas de gestión de bases de datos, los servidores de DNS o de DHCP, y otros programas que gestionan redes de todo tipo suelen estar instalados como parte o en un sistema operativo de servidor (Ubuntu Server, Windows Server, Red Hat, CentOS, Debian, etc.).
  En los ejemplos de la siguiente explicación se empleará un sistema operativo Debian 9.