Página 2 de 5

Ejemplo práctico de TDD con Spring Boot

Hoy vas a aprender mucho con este sencillo ejemplo práctico de TDD (Test-Driven Development). Es una metodología de desarrollo de software que consiste, básicamente, en escribir antes los tests que la funcionalidad. De esta forma, conseguimos numerosas ventajas. Para empezar, una gran covertura de código. Y esque, en este caso, la covertura de código es una consecuencia de la metodología, no una simple meta a alcanzar (¿te suenan los assert(true)?). Además, conseguimos un diseño totalmente enfocado a las necesidades y requisitos el proyecto, ya que cada test sería (más o menos) reprensentativo de un caso de uso.

Antes de nada, permíteme avisarte de que este extenso artículo está hecho para gente con una experiencia moderada desarrollando. Si no tienes experiencia con Spring Boot o un framework similar, no sabes lo que es una API rest o cómo funciona por dentro, o no sabes distinguir entre controlardores, servicios, DAOS y POJOS, entonces primero aprende todo eso, coge experiencia, y con todo eso puedes empezar a mejorar tu forma de desarrollar apliando TDD. Seguir leyendo

Primeros pasos con AWS: creando una máquina virtual

Si eres desarrollador, seguramente has oído hablar de los servicios web de Amazon (AWS). Y bueno, si no has oído exactamente algo de Amazon seguro que sí has oído hablar del Cloud Computing, microservicios, serverless, y otros muchos conceptos que, de primeras, sabemos que implican tener una máquina sin acceso físico a ella. Puedes conectarte, administrarla, configurarla, instalar software, y mil cosas más; pero no puedes tocarla.

Para concretar un poquito más, debes saber que, si te creas cuenta nueva en AWS, tienes 12 meses de acceso al programa gratuíto. Este programa incluye, entre otras muchas cosas, la posibilidad de usar una máquina virtual 750 horas al mes. Bueno, o 10 máquinas virtuales 75 horas al més, depende cómo te organices.

Lo que te voy a enseñar en este tutorial es algo que, una vez descubierto, es una tontería enorme. Sin embargo, aprender esto desde cero sin alguien que te guíe y sin tener experiencia en entornos en la nube puede convertirse en algo un poco decepcionante. Seguir leyendo

Ahora tengo macbook, ¿vale la pena el cambio?

Hace unos 6 meses cambié de trabajo. En la nueva empresa trabajan mayoritariamente con Macbook y, tras 6 meses,  firmé por fin un contrato. Con él, vino de regalo un Macbook pro de 15 pulgadas nuevecito, con i7 de 6 núcleos y 12 hilos @2,6Ghz, 16 gb de ram, touch bar y bueno, en fin, todo lo que lleva un Macbook recién estrenado en 2019. Llevo pocas semanas usando este equipo pero, como llevo ya meses pegándome 8 horas diarias con el famoso ecosistema de Apple, hoy voy a contaros qué cosas tiene que lo hacen mejor que los demás, al igual que sus puntos débiles y por qué recomendar o no su compra.

Seguir leyendo

Crear una ventana emergente en Angular 7

A menudo necesitamos insertar datos en cualquier sistema. Normalmente, estos sistemas separan el Back con una API y el front con una aplicación construida en un framework como Angular, que separa la interfaz de usuario de la lógica de negocio. Vamos a ver cómo crear una ventana emergente o pop-up con Angular para interactuar con nuestros servicios.

En nuestro ejemplo tendremos una API construida con SpingBoot que nos permite visualizar una lista de cursos (con los datos correspondientes de su profesor, nivel, horas, etc) y, por supuesto, añadir nuevos cursos. Para escribir los datos que queremos insertar de un nuevo curso, lo más fácil sería optar por hacer otra vista y, con botones, enlazar las diferentes vistas. No obstante, cuando vamos a insertar pocos datos, ¿por qué no crear una ventana emergente o pop-up? Así el usuario no perderá de vista la venatana principal a la que hacen referencia los datos que está insertando. Seguir leyendo

Montecarlo en Python: cómo aproximar por tu cuenta el valor del número PI

Últimamente estoy demasiado matemático. No se si será por los vídeos de derivando o por la cantidad de algoritmos de IA que me estoy metiendo en vena (ambos, segurísimo). Hace un tiempo en un curso online una de las cosas que aprendí como ejemplo para manejar distribuciones aleatorias en Python fue a crear una simulación con el método de Montecarlo para averiguar el valor de PI.

Este método consiste en «simular» dardos disparados aleatoriamente a una diana rodeada a su vez por un cuadrado cuyo diámetro  es igual al lado del cuadrado. Seguir leyendo

Data Science en Python: cargar archivos brutos desde una URL y exportarlos a cualquier formato (xls, csv, json)

A ver, según la wikipedia, el data cleaning es «el acto de descubrimiento y corrección o eliminación de registros de datos erróneos de una tabla o base de datos». Por este significado propiamente dicho, lo que voy a explicar a continuación no estaría dentro del data cleaning. Sin embargo, siendo realmente estrictos, lo que vamos a hacer va a ser la primera limpieza o formateo de los datos. No es tanto corregir datos, sino adecuarlos a un formato que podamos utilizar en nuestro ecosistema (python con pandas en este caso usando dataframes). Utilizaremos dos librerías: pandas y urllib3. La tarea se compone de tres sencillos pasos: la conexión y descarga de los datos en bruto, el formateo en filas y columnas para crear el diccionario y por último la creación del dataframe para exportarlo directamente al formato que queramos. Seguir leyendo

Cómo conectar (bien) el Logitech Mx Master en Ubuntu (16.04 y 18.04)

Hace ya unos meses adquirí el ratón que más estaba deseando desde hace tiempo: el Logitech Mx Master. Como siempre, tenía pensado subir review y opiniones personales, pero la complicación de la vida me lo ha impedido y además, para ver cómo es el ratón y qué cosas puedes hacer tienes cientos de sitios diferentes. Vamos a aportar algo nuevo.

Una de las cosas que mas odio de este producto es que no funciona del todo bien con Linux (Ubuntu). A ver, funcionar funciona. Pero este tipo de productos que dependen de un software de terceros para aprovechar todas sus funcionalidades siempre ocurre que olvidan desarrollar o compilar versiones para GNU Linux. En este caso el software necesario es el Logitech Options. Con este programita oficial de Logitech y gratuito podemos configurar todos los botones de las múltipls funcionalidades de nuestro Mx Master y es cuando se le saca todo el partido posible. En Windows genial, pero en Linux lo primero que te encuentras es que no funciona.

Seguir leyendo

Organizador de escritorio y herramientas impreso en 3D

Hoy os traigo una de mis primeras creaciones con mi impresora 3D. Y os esperan muchos tutoriales y guías si quieres empezar en este mundillo. Se trata de un organizador de herramientas para la mesa donde tengo situada la impresora 3D. Estuve buscando uno por Thingiverse pero no encontraba ninguno que me complaciera totalmente, así que me puse manos a la obra y creé mi propio ejemplar. Tras varios días de laborioso esfuerzo lo conseguí: tenía mi organizador completamente diseñado. Solo quedaba imprimirlo, y no es fácil (más de 40 horas de impresión…). Hoy os lo enseño, con todo detalle. Llevo ya casi un año con impresora 3D (la famosísima Anet A8) y nunca he enseñado ningún proyecto. Es hora de comenzar a compartir.

 

Seguir leyendo

El día en que «hackeé» una red wifi pública

A menudo pasamos por lugares con wifi gratuito y siempre se nos dice que debemos tener cuidado. Y sí, eso es cierto, aunque no es tan peligroso como parece. ¿Te conectarías a la aplicación del banco usando una red wifi pública? En un futuro os contaré por qué no es tan «inseguro» utilizar redes públicas, sobretodo si más o menos conoces cómo funcionan. Si quieres saber un poquito más por qué es casi imposible que te roben las credenciales de tu banco, por ejemplo, aún conectandote a una wifi pública (a menos que te hagan una buena de Phishing) puedes buscar información acerca de los protocolos de desafío – respuesta con cifrado criptográfico: ellos son la solución.

Bueno, pero a lo que íbamos. Esta historia se remonta hace unos meses: agosto de 2017. Estaba yo de vacaciones solitarias por Cantabria y visité un bar con servicio de wifi gratis. Mi intención era tomarme unas cervecitas bien acompañado mientras utilizaba el wifi para bajarme un par de peliculillas y algún que otro capítulo de alguna serie. Esto es gracias a que Netflix permite desdeno hace mucho descargar contenido utilizando la aplicación nativa para dispositivos con Windows 10. Seguir leyendo

Tarbajando con MIBs (introducción SNMP): interpretación de OIDs

SNMP (Simple Network Management Protocol) es un protocolo muy utilizado para la gestión y monitorización de redes. Pertenece a la capa de aplicación y facilita la transmisión de información entre elementos de una red. Todo tiene (o puede tener) SNMP. Desde tu smartphone hasta tu impresora o nevera inteligente (si es que tienes).

El protocolo SNMP trabaja con sintaxis ASN.1 y utiliza estructuras MIB (no, no es MEN IN BLACK) como modelo de información. Para que me entendási: podriamos decir que ASN.1 es la sintaxis (como la gramática del español), las MIBs son los modelos de información (lo que sería el diccionario en un idioma normal) y SNMP es el protocolo (lo que sería el protocolo de comunicación entre personas: como decir un saludo a alguien que dice «hola» o decir «por favor», esas cosas). Seguir leyendo

« Entradas anteriores Entradas siguientes »