Categoría: Sofware & tech (Página 1 de 3)

Potencia tus formularios en Flask con WTF

Hace una semana publiqué, en la web de adictos, una guía completa con las bases para construir un sitio web con Flask.

Lo último que hicimos en aquel proyecto guiado fue la introducción de datos a través de formularios. Lo hicimos de forma nativa, aplicando solamente algunos estilos de bootstrap. Vamos a continuar con el mismo repositorio de github como proyecto guiado.

Hoy vamos a aplicar un módulo extra de Flask: WTF.

Esta guía no prentende ser una simple reproducción de ejemplos a modo de documentación. Encontrarás diferentes formas de hacer las cosas y recomendaciones para poder hacer el código con las mejores prácitcas posibles. Seguir leyendo

Aplica plantillas a tus Merge Requests

Que cualquier persona del equipo sea capaz de entregar el nivel deseado de calidad en el trabajo.

Esta es una meta ambiciosa y, a la vez, necesaria a la que debemos evolucionar. Esto se aplica tanto al desarrollo de software como a otros sectores o trabajos.

Una de las claves para conseguirlo es procedimentar o guionizar los trabajos a realizar. De forma que se extraigan las normas comunes que cualquier tarea debe incluir. Por ejemplo: un taller de coches en el que, al terminar cualquier labor, te lavan el coche. Independientemente de quién lo haga, debe completar esa tarea tanto si tiene que cambiar una rueda como si tiene que hacer un reglaje de válvulas. Si todo está debidamente guionizado y el proceso de onboarding empapa de esa cultura hasta al más junior, vamos a conseguir que incluso el becario que lleva dos semanas con nosotros entregue ese coche lavado como si lo hubiera arreglado el mecánico más experto de nuestro equipo.

Entrando ya en el sector del desarrollo de software, hoy traigo una herramienta muy útil para conseguir esto: una estrategia de checklist que deben ser seguidas tanto por el desarrollador como por el revisor al mergear código a ramas principales (desarroll, master, main…).

Seguir leyendo

Conceptos básicos de GitLab CI

Hoy voy a enseñarte a dar tus primeros pasos con algunos conceptos básicos de GitLab CI, que es la herramienta de integración continua de nuestros amigos de GitLab. De esta forma, podrás configurar tu repositorio para construir los proyectos automáticamente cuando hagas push a una rama, por ejemplo. O pasar los tests e, incluso, automatizar despliegues automáticos en tus diferentes servidores de una forma más que sencilla. Seguir leyendo

Probando minería de zCash con una gtx 960: no es rentable y por qué

No me digas por qué, pero tras meses sin escribir he encontrado esto en borradores. Me olvidé completamente de publicarlo. Hoy ya no es la mitad de útil de lo que sería entonces, pero seguro que te gusta mi aventura. ¡No te la pierdas!

Hasta ahora había estudiado mucho el mundo de la minería, pero no me había metido de fondo en él. He hecho un pequeño estudio, de primera mano, para estudiar tres aspectos principales: ¿de verdad se gana dinero minando? ¿Es cierto que una tarjeta gráfica mediocre (como mi gtx960) no es rentable para minar o solo se ha llegado a esa afirmación por puro márketing? ¿Cómo se mina, qué programas me tengo que descargar y cómo funcionan? ¿Cómo funciona una pool cuando estás en ella? ¿Dónde crear mi cartera? Y muchas otras preguntas a las que encontrarás respuesta en este artículo. Seguir leyendo

Instala una unidad SSD en tu portátil sin quitar tu HDD

Actualmente está muy de moda eso de cambiar el disco duro de tu portátil por un disco de estado sólido. El problema que presentaban estos nuevos inventos es el precio, por lo que normalmente los usuarios no podían permitirse unidades de más de 120 o 240 gb. Y esa falta de almacenamiento es lo que a muchos de mis amigos les tira atrás cuando les recomiendo unidades SSD.

Actualización 2020: si quieres sabér más sobre todos los tipos de SSD que existen y cuáles te recomiendo, pásate por este artículo!

¿Tú también quieres tener un ssd en tu portátil sin renunciar a toda la capacidad de almacenamiento de tu HDD actual? Continúa leyendo y verás como hacerlo.

Seguir leyendo

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

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

« Entradas anteriores