}

¡idealista alcanza 50 repositorios públicos en GitHub! 🎉

Nos costaba mucho imaginarlo hace aproximadamente dos años. Pero casi sin darnos cuenta y con la firme intención de devolverle a la comunidad Open Source un poco de lo que tomamos de ella, hemos llegado a los 50 repositorios en nuestra cuenta de GitHub.

Contenido de los repositorios

El contenido de nuestros repositorios es el siguiente:

Roles de Ansible

La gran mayoría de ellos sirven para instalar/configurar servicios que usamos en nuestra organización, disponen de tests unitarios (que ejecutan sobre Vagrant y algunos también sobre Docker, usando Molecule y Testinfra o Goss).

Últimamente también nos estamos esforzando en que todos ellos tengan integración continua vía Travis, y que se publiquen automáticamente en Ansible Galaxy.

¿Que puedes instalar usando estos roles? Cosas como Apache Airflow, Apache Kafka, Apache ZooKeeper,  Apache Solr (Cloud), Apache Tomcat, Jenkins, Consul, Prometheus (servidor, Alertmanager y varios exporters), Grafana, Redis (también en modo «cluster»), FluentD…

Frameworks y bibliotecas

También tenemos publicadas varios frameworks y bibliotecas que en algún momento han solucionado alguna necesidad específica. En algunos casos hemos partido de bibliotecas ya implementadas y en otros las hemos desarrollado desde cero.

Todas nuestras bibliotecas se encuentran disponibles en Maven Central y/o NPM.

Elves

Elves es un framework de Clean Arquitecture para Android que nos ayuda el trabajo con una arquitectura separada por capas bien definidas. Este proyecto se divide en dos librerías Elves y Elves-Android.

Elves es una librería con componentes Java puros en los que se definen objetos de casos de uso, patrones comandos para la ejecución de los casos de uso, o incluso objetos para poder ejecutar dichos casos de uso con distintas estrategias de threading (basados en Bolts).

Elves-Android se encarga de añadir ciertos componentes utilizados desde Android. Componentes que tengan una relación de dependencia con el framework, con las Activities, View y otros componentes.

Además ofrece elementos que facilitan la creación de custom views, así como la separación de capas de presentación a través de MVP.

Estas dos librerías son las que utilizamos en nuestra aplicación para facilitar la comprensión, la extensión, el mantenimiento y la reutilización de nuestro código, y que actualizamos con nuestros cambios y mejoras de arquitectura.

YATM

YATM es una biblioteca escrita en JavaScript y C++ que usamos para poder acceder a libvips y Exiv2 desde Node.js.

Fundamentalmente la usamos para poder escalar las imágenes de los anuncios de idealista y adaptarlas al dispositivo del visitante en tiempo real.

TLSH

Es una biblioteca escrita en Java y JavaScript para aplicar locality sensitive hashing. Está basada en la oficial de TrendMicro.

Además, hay otros proyectos Open Source como Apache Nifi que lo usan como dependencia y Apache Metron que lo mencionan en sus tests y eso nos hace sentir doblemente orgullosos 😊

Format-preserving-encryption

format-preserving-encryption es una biblioteca escrita en Java para cifrado de datos con preservación del formato que, entre otras cosas, usaremos en un futuro para la generación de diversas url’s.

Herramientas y servicios

En su día trabajamos sobre una versión del repositorio de SolrMeter para poder ejecutar pruebas de carga sobre un clúster de SolrCloud.

También hemos desarrollado prom2teams, un sencillo servicio escrito en Python que permite redireccionar notificaciones de Prometheus al servicio de mensajería Microsoft Teams. Está disponible como imagen en DockerHub, aunque también distribuimos un role de Ansible que permite su instalación desde Pypi.

Otros

También tenemos versionadas pruebas de código como el Game of Thrones Android Challenge, forks de algunos repositorios, katas

Agradecimientos

Poco a poco vamos recibiendo issues y contribuciones en muchos de nuestros repositorios.

Desde aquí queremos agradecer a todas las personas que han dedicado algo de tiempo a mejorar nuestro código. Al estar todo publicado bajo Licencia Apache 2.0 en definitiva ese «nuestro» te incluye 🙂

Trabaja con nosotros

¿Te han llamado la atención las tecnologías que usamos? ¡Entonces no dudes en aplicar a alguna de las vacantes que tenemos abiertas!

Deja una respuesta