Product
Novedades semanales del producto: mejoras en el panel de control y un corrector ortográfico 135 veces más rápido para la verificación de emails
Esta semana nos hemos centrado en mejorar el panel de control de Mailgun y el corrector ortográfico para la API de validación de emails.
Lavado de cara y nuevas funcionalidades para el panel de control
Puede que no te hayas dado cuenta, pero nuestro panel de control no ganó ningún premio de diseño. : ) Históricamente, el equipo ha tenido un enfoque más orientado a la ingeniería y ha dominado mejor Python y Golang que HTML5 y CSS. Sin embargo, hace poco contratamos a profesionales excelentes en diseño UX y desarrollo front-end para ayudar a mejorar la experiencia de uso de Mailgun a través del panel de control. Por eso, esta semana hemos lanzado una nueva versión del panel de control con varias mejoras visuales sutiles y una nueva funcionalidad que creemos que te resultará muy útil: el estado del dominio. Esto es solo el primer paso; en el futuro lanzaremos más funcionalidades y mejoras de experiencia de usuario.
Estado del dominio
Cualquier dominio de Mailgun puede tener uno de estos tres estados: activo, no verificado y desactivado. Aquí te explicamos qué significa cada uno y por qué deberías tenerlo en cuenta:
- Activo: significa que tu dominio tiene configurados todos los registros DNS correspondientes y está en regla.
- No verificado: significa que tu dominio no tiene configurados algunos (o ninguno) de los registros DNS de envío necesarios. Esto supone un problema, ya que sin estos registros es muy probable que tus emails acaben en la carpeta de spam. Deberías solucionarlo lo antes posible.
- Desactivado: significa que tu dominio ya no puede enviar emails, probablemente debido a una gran cantidad de rebotes o quejas recibidas. Ponte en contacto con el equipo de asistencia a través de support@mailgun.com para solucionarlo.
Estos estados te ofrecen una visión rápida de todos tus dominios, lo que resulta especialmente útil si gestionas una plataforma a gran escala para tu clientela con Mailgun. Ahora será mucho más fácil comprobar quiénes de tu clientela están teniendo problemas en su cuenta y quiénes necesitan tu ayuda. El estado del dominio también está disponible como parte de la API de dominios por si prefieres consultar el estado de esta forma.
Aceleramos 135 veces el corrector ortográfico del validador de emails
Cuando empezamos a trabajar en Guardpost, nuestra API de validación de emails, sabíamos que queríamos incorporar las sugerencias de errores tipográficos en el servicio (para detectar errores como gmall.com en lugar de gmail.com). Cada día vemos muchísimos emails que no se entregan a los destinatarios deseados debido a errores tipográficos y queríamos ponerle solución. Hicimos una lluvia de ideas a nivel interno e investigamos cómo otras personas resolvían este problema. Como a tanta otra gente, dimos con el artículo de Peter Norvig sobre cómo crear un corrector ortográfico y diseñamos nuestro corrector inicial basándonos en su idea para la primera versión de Guardpost que lanzamos.
Enseguida nos dimos cuenta de que nuestra CPU estaba saturada, lo que ralentizaba Guardpost, y eso que el servidor que utilizábamos era bastante potente. Al analizar el rendimiento, pronto vimos que dedicábamos una cantidad de tiempo desproporcionada al corrector ortográfico.
Volviendo al corrector ortográfico, la versión inicial funcionaba creando varias combinaciones diferentes de cadenas de texto (llamadas ediciones) a partir de la palabra original; luego, se buscaba en todas esas ediciones la que tenía la menor cantidad de ediciones respecto a la palabra original (distancia de edición) y esa era la corrección ortográfica sugerida.
Esto es estupendo para las palabras en inglés, pero no buscábamos palabras en inglés, sino un subconjunto de ellas muy concreto: los dominios. Así que empezamos a buscar otros algoritmos que rindieran mejor en nuestro caso de uso particular de corrección de errores tipográficos en los dominios. Hicimos un montón de experimentos para ver qué funcionaba mejor. En cuanto al rendimiento, buscábamos un algoritmo que nos ofreciera tanto velocidad como precisión.
Después de mucha investigación, experimentación y ajustes, acabamos utilizando una biblioteca integrada en Python llamada difflib que utiliza el algoritmo Ratcliff-Obershelp para calcular la similitud entre dos cadenas de texto. Este algoritmo no solo es preciso, sino también muy rápido a la hora de corregir dominios. ¿Y hasta qué punto es más rápido? ¡135 veces más rápido!
¿Y qué hay de la precisión?
Para medir la precisión, creamos un conjunto de datos de prueba que incluía tanto errores tipográficos comunes que detectaba nuestro servidor DNS como mutaciones aleatorias. Las mutaciones aleatorias consistían, por ejemplo, en eliminar caracteres del dominio de forma aleatoria, añadir otros caracteres, acortar palabras y alargar palabras. En total, hicimos unas 1000 pruebas.
Con todo este conjunto de datos, el nuevo corrector demostró una precisión del 93,9 %, mientras que el antiguo tenía una precisión del 98,9 %.
Como puedes comprobar, parece que estas pruebas estaban diseñadas para favorecer enormemente al corrector original, porque ahí es cuando realmente destaca: al fijarse en las ediciones.
Sin embargo, si descartamos estas pruebas y nos fijamos únicamente en los errores tipográficos reales que han detectado nuestros servidores DNS, ¡vemos que nuestro nuevo corrector tiene una precisión del 95,8 %, mientras que la del original era del 96,3 %! Hablamos de una pérdida de precisión inferior al uno por ciento en errores tipográficos realistas a cambio de una velocidad 135 veces mayor. No es un mal intercambio en absoluto.
Esto es solo una de las cosas en las que hemos estado trabajando entre bastidores para mejorar Guardpost y la experiencia de las personas que lo utilizan. Todo esto (y mucho más) pronto será de código abierto, de modo que podrás echarle un vistazo y trastear con ello. ¡No te la pierdas!
Eso es todo por esta semana.
¡Feliz envío!
El equipo de Mailgun