Tecnologia

Como instalar una app ASPNETCore en Linux

ASPNET Core es un framework de desarrollo web OpenSource de Microsoft. En este articulo, vamos a detallar los pasos para configurar tu servidor Linux una aplicacion ASPNET Core.

Creacion del VPS

Creamos nuestros VPS en cualquiera de las plataformas disponibles actualmente ( DigitalOcean, Linode, AWS Ligthsail, etc ). En nuestro ejemplo en particular utilizamos Ubuntu 20.04

Instalacion del Framework ASPNET Core

Para instalar las librerias basicas del framework debemos ejecutar los siguientes pasos con permiso de root

snap install dotnet-sdk --classic --chanel=5.0
snap install dotnet-runtime-50 --classic

Creamos un alias del comando de ejecucion dotnet

snap alias dotnet-runtime-50.dotnet dotnet

Configuramos la variable de entorno DOTNET_ROOT. Esta variable indica donde estan instaladas las librerias de dotnet

export DOTNET_ROOT=/snap/dotnet-sdk/current

Publicacion de nuestra app

Una vez instalada el framework debemos levantar nuestra aplicacion usando el comando dotnet.

Para esto, debemos copiar nuestra aplicacion/bin/Release a una carpeta local, luego entramos a la carpeta donde copiamos el proyecto y ejecutamos nuestra aplicacion indicando en este caso el puerto donde se accedera.

cd webapp
dotnet webapp.dll --urls "http://*:3000"

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