Ir al contenido principal

Entradas

Protocolos, qué son?

 En el pasado (y en el presente también) siempre he querido incluir en el contenido de la materia de estructura de datos la posibilidad de hacer un práctico que tenga que ver con redes. Este breve artículo trata de cómo se pueden conectar dos computadoras en red y de las bases por las cuales tenemos protocolos. Veremos: Significado de las direcciones IP y conceptos muy básicos de redes Cómo usar sockets para abrir canales de comnicación entre dos computadoras Concepto de un protocolo y de cómo podemos usar uno para hacer un chat básico Conceptos básicos de redes Si eres de sistemas o te interesan las computadoras pues probablemnte el concepto de conectar dos computadoras en la red parece algo tan sencillo como respirar. Sin embargo, hasta mediados de los 90 era algo que: 1) era complejo; 2) tenía atisbos de magia negra. Por suerte con el tiempo esto se ha ido masificando y ahora es algo muy sencillo. Para poder conectarnos con otra computadora debemos conocer la dirección y el puerto d
Entradas recientes

Instalaste Docker y se come espacio en tu disco

Básicamente este post traduce la ayuda que vi en la siguiente página: https://stackoverflow.com/questions/62441307/how-can-i-change-the-location-of-docker-images-when-using-docker-desktop-on-wsl2 Entonces, la instalación que hice en mi máquina fue la siguiente: Activar Virtualización en el BIOS Instalar Docker Elegir que el motor linux se manejará con WSL2 En este caso tenemos dos cosas a tomar en cuenta: El archivo de SWAP que utiliza docker para los contenedores El archivo donde se guardan todas las imágenes. En ambos casos el lugar de los archivos que se usan están en la carpeta del usuario. A veces este lugar puede crecer mucho y nos quedamos sin espacio en disco. Liberando el SWAP de docker Primeramente vamos a parar el servicio de docker. Luego, En la carpeta del usuario se encuentra un archivo llamado .wslconfig. Solamente se lo debe editar y cambiar la línea # Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx swapfile=E:\\temp\\wsl-swap.v

Nuget muy grande en tu carpeta personal

Problema : Veo que mi disco duro C ha crecido bastante y necesito espacio. Cuando veo que una carpeta .nuget dentro de mi cuenta de usuario tiene 15 GB. Solución : Esa carpeta existe como cache para que VS no busque el paquete cada vez desde la web. Entonces, la solución consiste en los siguientes pasos. Listar cuales son los folders o contenedores de estos paquetes nuget dotnet nuget locals all --list http-cache: <USER>\AppData\Local\NuGet\v3-cache global-packages: <USER>\.nuget\packages\ temp: <USER>\AppData\Local\Temp\NuGetScratch plugins-cache: <USER>\AppData\Local\NuGet\plugins-cache Limpiar las direcciones que tienen estos paquetes nuget con el utilitario de nuget dotnet nuget locals http-cache --clear Clearing NuGet HTTP cache: C:\Users\Vladimir\AppData\Local\NuGet\v3-cache Local resources cleared. y así para cada uno de los locals que se ve en la lista anterior. Luego se debe cambiar las variables de entorno para que esto no nos vuelva a pasar. Como se

Hangfire, si no lo estás usando, estás haciendo algo mal (.NET world)

Hangfire es una librería espectacular que permite encolar tareas en un servidor de tareas que funciona dentro de tu aplicación web. Existen varios tutoriales que muestran de manera bastante sencilla cómo puedes ir integrando esto a tu aplicación. En esta publicación vamos a repetir, pero en español, y sobretodo vamos a tratar de ir lo más al punto posible. Qué es? Es una librería que la cargas a través de NUGET como cualquier otra librería. En realidad tenemos que cargar 3 librerías pero eso lo veremos más adelante. Una vez que hayas cargado todo lo necesario en tu aplicación web tendrás lo siguiente: Un servidor de colas : es decir, un lugar al cual le puedes mandar hacer cosas y no se olvida de esas cosas y las va ejecutando a medida que puede o tiene tiempo. Esto es muy útil para que tu aplicación no pierda tiempo haciendo algo que no necesita realmente hacer en ese instante y devolver más rápido al usuario final. Un tablero de control de colas : una serie de

Automapper para nuestra arquitectura limpia

El modelo de MVC que tenemos en una aplicación ASP.NET Core nos dice que podemos utilizar un modelo en nuestra vista y así mostrar los datos que ahí se encuentran. Lo más lógico es utilizar el objeto del dominio en la vista, sin embargo, la buena práctica te dice que ya en producción NUNCA utilices un objeto del dominio sino que utilices objetos que tienen estrictamente los atributos que vas a usar en tu vista. De esta manera la persona que está haciendo el front-end no tiene ninguna tentación de dejar algunos campos 'por si acaso' en elementos tipo hidden en la página. Y es siguiendo la buena práctica que nos enfrentamos a nuestro problema: EmpresaViewModel evm = new EmpresaViewModel(); evm.Nombre = e.Nombre; evm.Correo = e.Correo; ... Tenemos que mapear los campos de nuestro objeto de dominio a los campos de nuestro ViewModel. Aquí es donde nos rescata AutoMapper. 1. Usar los paquetes Automapper y Automapper injection para que los incorporemos a nuestra soluci

Base de datos a DDD

El nuevo paradigma de Arquitectura limpia, adaptado con todos los patrones de diseño que ofrecen ahora las plataformas: Mediator, CQRS, Repository, etc; hace que normalmente primero creemos nuestro modelo y luego nos dediquemos a ir generando los miembros externos como la base de datos y los servicios.  Muchas veces sin embargo ya tenemos la base de datos creada y solamente necesitamos crear el modelo a partir de esa base de datos. Un buen punto de partida nos lo da un comando de scaffold en Visual Studio.  De la manera siguiente:  Scaffold-DbContext "connectionstring" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models/DB Donde connectionstring es por supuesto una cadena con la información de conexión a la base de datos: Server=Servidor;Database=BaseDeDatos;Trusted_Connection=True;user id=Usuario;password=Clave; El enlace original al articulo completo está aquí y además te muestra una manera en la cual recuperas las llamadas a tus SPs.

Despido y algunas medidas para que no te saboteen durante 11 minutos

En días pasados la cuenta de Twitter  @ realDonaldTrump  fue bloqueada durante 11 minutos. Por mucho que a algunos la medida nos causó algo de gracia; el incidente no deja de ser una reflexión en cómo manejar a tus empleados cuando debes despedirlos... y viceversa, qué nos ocurre como empleados cuando aprovechamos nuestra posición. Un empleado de soporte a cliente de Twitter, aparentemete con el permiso para suspender cuentas, en su último día de trabajo; suspendió la cuenta de the Donald.... del mismísimo, sí! Y claro, fue una catástrofe interna en la empresa. Siempre hay que tomar en cuenta que los riesgos de seguridad mayores son y siempre serán por parte de personal interno. Ellos son el mayor riesgo de seguridad, porque crees que con ellos tienes un nivel de confianza.... el cual es cierto. Salvo en ocasiones las cuales deben ser correctamente identificadas. En todos los casos estamos suponiendo que, como jefes, estas en constante contacto con tus empleados, los conoces bien,