Tecnologia

Como redimensionar un video en Linux

Podemos redimensionar facilmente el tamaño de los videos usando la linea de comandos a traves del programa ffmpeg

$ ffmpeg -i archivooriginal.mp4 -vf scale=800:-1 archivodestino.mp4

El comando ffmpeg recibe dos parametros:

  • -i archivoorigina.mp4
    En este parametro indicamos el nombre del archivo de video que queremos redimensionar.
  • -vf scale=800:-1
    Aca le indicamos a ffmpeg que redimensione el video a 800px de ancho. El valor de -1 indica que la altura se redimensiona automaticamente.

Como bloquear una IP usando UFW en Ubuntu Server

Las nuevas versiones de ubuntu viene con una nueva herramienta para administrar el firewall del sistema. UFW es la version NO COMPLICADA de administrar el firewall.

Bloquear una IP

# ufw deny from 200.44.170.2 to any

Este comando le indica a nuestro servidor que cualquier peticion que provenga de la IP 200.44.170.2 la vamos a IGNORAR

Rechazar una IP

# ufw deny from 200.44.170.2 to any

Este comando le indica a nuestro servidor que debemos notificar a la IP 200.44.170.2 que no queremos atenderlo

Seleccion de una paleta de colores en el desarrollo web y movil

Al momento de hacer el desarrollo de una app movil o una web para un cliente una de las partes mas importantes para transmitir el mensaje adecuado es la seleccion de colores.

La psicologia de colores, nos permite identificar el mensaje adecuado a transmitir a traves de la seleccion de nuestro color predominante. Sin embargo, luego de seleccionarlo debemos encontrar los acompañantes adecuados para dicho color.

Existen diferentes formas de contruir una paleta de colores a partir de un colore base y aca te las vamos a explicar. Pero primero debemos conocer que son los colores primarios, secundarios, terciarios y como se construyen.

Colores Primarios

Son el Rojo, el verde y el azul ( RGB ) y a partir de ellos se crean el resto de colores.

Colores Secundarios

Son los que resultan de la combinacion directa de dos colores primarios

  • Rojo + Verde: Amarillo
  • Rojo + Azul: Magenta
  • Verde + Azul: Cian

Colores Terciarios

Son los colores que se encuentran entre un color secundario y un color primario

Una vez identificados los tipos de colores podemos identificar diferentes tipos de Paletas ( combinacion de colores ) que podemos usar en el desarrollo de nuestra aplicacion o web.

Paleta de colores monocromatica

A partir de la seleccion de un color, se crean variaciones del mismo color haciendo uso de tonalidades claras y oscuras.

Paleta de colores analoga

A partir de un color base puedes añadir dos colores que vecinos del color base en el circulo cromatico.

Paleta de colores complementaria

Son colores que se encuentran en posiciones opuestas en el circulo cromatico.

Paleta de colores Triadica

Dibuja un triangulo equilatero en el interior del circulo cromatico para seleccionar los colores adecuados

Paleta de colores Tetradicas

Una paleta tetraédrica forma un rectángulo en el círculo, por lo cual no usa uno, sino dos pares de colores complementarios.

Usando Adobe Colors para crear una paleta de colores

En el sitio web de Adobe Colors podemos una paleta de colores de una forma sencilla y rapida.

Instalar PGAdmin con Docker

PGAdmin es una herramienta de Interfaz grafica para administracion de nuestros servidores de base de datos postgres. En este articulo, vamos a añadirlo a nuestro archivo docker-compose para poder administrar nuestra base de datos remotamente.

Punto de inicio

Vamos a partir de una situacion donde ya tenemos nuetro docker corriendo y ejecutando postgresql. Para lo cual puedes guiarte de este otro articulo: Instalando Postgres en Docker

Agregando el servicio de pgAdmin

Para instalar pgadmin vamos a editar nuestro archivo docker-compose.yml y añadir un nuevo servicio

version: '2'

services:

  db:
    image: postgres
    user: postgres
    environment:
      POSTGRES_PASSWORD: 123456
      POSTGRES_USER: postgres

  pgadmin:
    image: dpage/pgadmin4
    ports:
      - 8080:80
    depends_on:
      - db
    links:
      - db:db
    environment:
      PGADMIN_DEFAULT_EMAIL: admin
      PGADMIN_DEFAULT_PASSWORD: 123456

Como pueden ver en el codigo anterior, hemos añadido un servicio pgadmin, el cual se crea a partir de la imagen docker dpage/pgadmin4. Este nuevo servicio se ejecuta en el puerto localhost:8080.

Y listo ya tenemos pgadmin instalado 😉

Si tienes alguna duda, dejamelo en los comentarios y juntos lo resolveremos. 😀

Como apagar los monitores cuando se activa el screensaver en GNOME

En mi configuracion de Workspace yo tengo 3 monitores ( esperemos muy pronto 4 ) y como tengo prendida la PC todo el dia … muchas veces los monitores se quedan prendidos TODO EL DIA. Ademas de esto, cuando finalmente se apagan los monitores mi perro roza el escritorio, yo llego a buscar un papel y se mueve ligeramente el mouse y listo monitores prendidos y que se niegan a apagarse.

Ya habiamos tocado este tema en una entrada anterior Como apagar los monitores cuando se activa el screensaver en KDE, pero yo no soy mucho de usar KDE.  En ese articulo vimos, que para apagar los monitores solo teniamos que ejecutar el comando

xset dpms force off

El problema era ejecutarlos en el momento adecuado ( al bloquear la session, posiblemente con CTRL + L o por inactividad ) sin embargo, recientemente encontre un codigo que me avisa cuando el screensaver se activa y cuando se apaga. Entonces programe un script para que los monitores se apaguen automaticamente, xq eso de estar ejecutando un comando manualmente cuando me iba a retirar de la PC como que era mucho estress para mi.

MOUSEID=`xinput list | grep Mouse | egrep -o “id=([0-9]{1,2})” | egrep -o “[0-9]{1,2}”`

dbus-monitor –session “type=’signal’,interface=’org.gnome.ScreenSaver'” |
while read x; do
case “$x” in
*”boolean true”*)
echo SCREEN_LOCKED + `date`
sleep 2s
xset dpms force off
xinput –disable $MOUSEID
;;
*”boolean false”*)
echo SCREEN_UNLOCKED + `date`
xinput –enable $MOUSEID
;;
esac
done

Ustedes solo deben guardar este script en su $HOME y ejecutarlo al iniciar session. Por ejemplo, añadiendolo al archivo $HOME/.profile

Ahora paso a explicar un poco mas a detalle el script para todos los interesados:

MOUSEID=`xinput list | grep Mouse | egrep -o “id=([0-9]{1,2})” | egrep -o “[0-9]{1,2}”`

Esta linea me obtiene el ID del dispositivo mouse en mi sistema. Este id es diferente en cada computadora

dbus-monitor –session “type=’signal’,interface=’org.gnome.ScreenSaver'” |

Esta linea se encarga es escuchar permanentemente el BUS de log del sistema y me avisa cuando sucede un evento de org.gnome.ScreenSaver

Este solo puede ser de dos tipos:

  • TRUE cuando se activo el screensaver
  • FALSE cuando se desactivo el screensaver

 

Cuando se activa el screensaver, le indico al sistema que espere 2 segundos ( sino lo hago a veces la pantalla no se apaga 🙁 ) y luego le indico a las pantallas que se apaguen. E inmediatamente deshabilito el mouse. Esto, porque basta que me pare bruscamente del escritorio para que se mueva el mouse y por ende se activen las pantallas.

Cuando se desactiva el screensaver, le indico al sistema que me reactive el mouse

Como instalar wordpress usando Docker

Si quieres hacer una instalación local de wordpress, te mostrare los pasos a seguir usando docker.

NOTA: La instalación de Docker esta pensada para Ubuntu pero pueden replicarse en windows Mac u otra distribucion Linux.

Instalar Docker

Descubrir docker es algo que te cambia la vida. Finalmente puedes hacer instalaciones de sistemas de forma rapida. Ya no tienes miedo de desconfigurar tu maquina principal. Y puedes hacer cuantas pruebas requieras en la configuracion de los servidores. Sin embargo, aun debes crear las imagenes y lanzar los containers de forma manual. Montar volumenes, configurar las redes internas, etc. Para evitar ese trabajo manual yo recomiendo usar docker-compose.

Docker-compose es una herramienta que intrepreta un archivo de texto docker-compose.yml y ejecuta por ti todos los comandos docker correspondientes.

En este caso, para instalar Docker, Docker-compose y todas sus dependencias necesarias ejecutamos el comando:

sudo apt install docker-compose

Una vez terminado, estamos listos para instalar nuestro wordpress.

Instalar WordPress

Creamos una carpeta donde residira el proyecto:

mkdir proyecto-wordpress

En dicha carpeta creamos un archivo docker-compose.yml:

version: ‘2’
services:
web:
image: wordpress
volumes:
– ./wp-content/:/var/www/html/wp-content/
ports:
– 80: 80
depends_on:
– db
links:
– db : db

db:
image: mysql: 5.7
environment:
– MYSQL_ALLOW_EMPTY_PASSWORD=true
– MYSQL_DATABASE=wordpress
– MYSQL_USER=root

El archivo en cuestion le indica al sistema que se descargue la ultima version de wordpress, que ejecute el servidor en el puerto 80 de nuestro localhost, y que la proyecto-wordpress/wp-content contenga toda la informacion que se sube a wordpress.

Ahora procedemos a ejecutar el servicio de wordpress ejecutando el comando

docker-compose up -d

Al realizar la configuración inicial de wordpress a traves de localhost, debemos tomar en cuenta, que al usar docker el Database Host ya no sera localhost sino db. ( En el archivo docker-compose.yml, en la seccion services => web => links => le pusimos el nombre db al servidor de la base de datos ).

Instalación Finalizada Exitosamente 😉

 

Comandos de Docker-Compose

El servicio de docker no es algo que debe estar permanentemente en memoria. Podemos prenderlo y apagarlo cuando lo necesitemos.

Ejecutar WordPress

docker-compose up -d

Detener WordPress

docker-compose stop

Borrar la instalación

docker-compose down

Revisar los logs

docker-compose logs web

Hibernar en Ubuntu

Siempre he tenido la costumbre de dejar mis PC prendidas 24/7. Principalmente por si me despertaba a las 3am y queria jugar un AOC ? o para evitar tener que volver a abrir las 30 pestañas de chrome. Sin embargo, desde que me compre mi disco solido habia decidido poner a hibernar mi maquina. Sin embargo, por algun motivo en ubuntu no funcionaba correctamente. Buscando encontre un script ( en el repositorio de ubuntu ) llamado hibernate.

sudo apt search hibernate

Y si, hace lo que su nombre sugiere. Te permite poner a hibernar tu maquina. Con dos comandos principalmente hibernate-ram hibernate-disk

Cualquiera de ellos, debe ser ejecutado como root. La diferencia esta que hibernate-ram pone tu maquina en bajo consumo de energia e hibernate-disk copia la ram al disco duro y te permite desenchufar completamente tu maquina.

VSCode – Asociar archivos .module con PHP

Cuando trabajamos con VSCode, el editor nos reconoce el tipo de lenguaje de programacion y establece los colorcitos necesarios para identificar facilmente errores o bloques de codigo. TEST

Sin embargo, algunos archivos no son reconocidos como escritos en PHP. Un ejemplo de estos, son los archivos .module en Drupal.

Para poder indicarle a VSCode que los archivos .MODULE son archivos en PHP debemos ir a FILE -> PREFERENCES -> SETTINGS

Ahi usamos el buscador de propiedades y buscamos files associations

Ahi, seleccionamos la opcion Edit in settings.json y escribimos la siguiente configuracion:

Creamos un objeto “files.associations” y dentro de el una propiedad por cada extension “*.module” y le indicamos que lenguaje de programacion va a parsear el archivo.

 

🐳 Dockerfile – Instalar paquetes noninteractive

Al momento de crear una imagen personalizada usando dockerfile es necesario instalar paquetes de software y algunos de estos vienen con un set de preguntas para ti.

Hoy dia por ejemplo, tuve que instalar un apache sobre una imagen de ubuntu y queria saber en que Region / Ciudad vivia. Al ejecutar el comando docker-compose build … ahi quedaba mi intento por configurar mi sistema. No habia forma de saltar ese paso.

Para poder evitarlo, le indique al script de docker ( dockerfile ) que estableciera la variable de sistema DEBIAN_FRONTEND como noninteractive.

FROM ubuntu

ARG DEBIAN_FRONTEND=noninteractive
RUN \
apt-get update && \
apt-get install -qq -y php-pgsql postgresql-all libapache2-mod-php

Una vez realizado esto, ya disponia de mi entorno listo para trabajar.

#HappyCoding

🐍Como crear un xls en Django

Django es un framework muy popular ( el omnipresente ) en proyectos web con Python. El modulo que vamos a usar para generar archivos Excel ( XLS ) se llama openpyxl.

Puedes instalarlo en tu computadora usando el comando pip, y puedes usarlo no solo en proyectos Django, sino tambien en scripts de administracion de python, etc.

pip install openpyxl

OpenpyXL es una libreria muy completa para el manejo de archivos XLS. Te permite trabajar con pestañas, formulas, estilos, etc. En NODEJS suelo utilizar otra libreria ( json-to-xls ) que como su nombre lo indica es mucho, mucho mas simple. Sin embargo, OpenpyXL a pesar de poder abarcara muchas opciones mantiene su simplicidad, lo cual se agradece.

Ahora bien, vamos al codigo. Lo primero es importar la libreriria

import openpyxl

Y con eso crear nuestro woorkbook ( este sera nuestro archivo xls final )

book = openpyxl.Workbook()

Recuerden que en excel tenemos pestañas en la parte inferior, esas se llaman sheets y con openxl podemos manejarlas a nuestro antojo. De momento solo vamos a seleccionar la pestaña por defecto.

sheet = book.active

Una vez que tenemos la variable sheet podemos agregar los registros a nuestro XLS, en este caso vamos a agregar una fila de cabecera primero y luego los datos

sheet.append( ( “Nombre”,”Telefono”, “Email” ) )
for p in personas:
sheet.append( ( p.nombre, p.telefono, p.email  ) )

Con esto ya tenemos listo nuestro archivo XLS. Ahora solo hace falta guardarlo o descargarlo. Vamos a mostrar las dos opciones:

Guardarlo

book.save(“/tmp/nuevoxls.xls”)

Descargarlo

response = HttpResponse(content_type=’application/msexcel’)
response[‘Content-Disposition’] = ‘attachment; filename=nuevoxls.xls’
book.save(response)
return response

Y listo, ya tienen su nuevo XLS generado.

#HappyCoding