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

La importancia de conocer a tus usuarios

Imagina esto: acaba de aterrizar un proyecto en el que el cliente necesita un rediseño de su sitio web y aplicación.

Cliente: “Nos gustaría mejorar la experiencia del usuario. Queremos que nuestros clientes se enamoren de nuestro producto, ¡tiene que ser alucinante!”

Estas son las buenas noticias: al menos este cliente conoce la experiencia del usuario (UX), se preocupa por las necesidades de sus clientes y ve el valor de invertir en una gran experiencia de usuario. Pidieron un experto con habilidades en UX para ayudar … pero ¿entienden realmente lo que significa brindar una experiencia de usuario excepcional?

UX es más que seguir una colección de reglas y heurísticas en el proceso de diseño del producto. Como su nombre lo sugiere, es subjetivo, la experiencia que experimenta una persona al usar un producto. Por lo tanto, es necesario comprender las necesidades y los objetivos de los usuarios potenciales, sus tareas y el contexto, que son únicos para cada producto.

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

Mejorando el servidor en python: cpuBurn y ramKiller. Creando pythonServerInfinity

La semana pasada os traje un tutorial sobre cómo crear de forma rápida y muy sencilla nuestra propia aplicación cliente – servidor en Python. He seguido trabajando en ella añadiendo un par de funcionalidades curiosas que pueden hacer divertido el ejercicio. En este caso lo he convertido en una especie de System Killer. Tiene dos funcionalidades: quemar cpu y quemar ram. Con ellas ponemos en marcha una serie de bucles dando la orden desde el cliente que permiten poner a funcionar la CPU y llenar toda la RAM pudiendo provocar la caída del sistema. ¿Útil? Creo que es poco útil. Ahora, divertido es un rato. Seguir leyendo

« Siguientes entradas