Presentando ColorSharp

Versión en Inglés

Introducción

En esta primera entrada del blog quiero presentar el proyecto ColorSharp. ColorSharp es una biblioteca .NET/Mono de código libre que tiene como objetivo ayudar en la manipulación de espacios de color y espectros lumínicos.

La versión actual es la 0.5.2, y se encuentra en estado alfa. La cobertura de pruebas unitarias es a día de hoy muy baja, el rendimiento debe mejorar y todavía no puedo prometer una API estable, aunque en pocas semanas debería cambiar la situación.

En general (salvo excepciones por errores metodológicos), las versiones que he ido lanzando siguen el sistema de “versionado semántico“, y seguirá siendo así (sin excepciones). Durante las primeras semanas es probable que el número de nuevas versiones sea relativamente elevado, esto es así porque uso la biblioteca en otros proyectos de código cerrado y suelo necesitar nuevas características sobre la marcha.

Como usar ColorSharp

Para empezar a usar ColorSharp fácilmente recomiendo instalarlo como dependencia en tu proyecto .NET/Mono usando la herramienta NuGet (hablaré más adelante sobre esta horrible y detestable herramienta y como lidiar con ella en entornos Linux). Asumiendo que hemos instalado NuGet en nuestro sistema, el siguiente comando sirve para descargar los ficheros DLL de ColorSharp y sus dependencias.

nuget install ColorSharp

El fichero DLL que distribuyo a través de NuGet está firmado y es “strong-named”, por lo que puede usarse como dependencia de otros binarios .NET/Mono firmados.

Como colaborar

Si quieres colaborar, hay distintos frentes abiertos (listados más adelante). Independientemente de lo que quieras mejorar de la biblioteca, seguramente deberás ser capaz de construirla.

Empecemos pues por pasos. En lo que sigue asumiré una cierta familiaridad con el sistema de control de versiones distribuido GIT.

Clonar el repositorio GIT

Puedes encontrar el repositorio de código en la siguiente dirección:

https://github.com/Litipk/ColorSharp/

Preparar el entorno de trabajo

Si trabajas en Windows, recomiendo usar la última versión de Monodevelop (ahora Xamarin Studio :s). Si trabajas en Linux recomiendo usar Monodevelop >= 5.0 . Esto es un problema porque a día de hoy la mayoría de distribuciones Linux tienen como versión más reciente la 4.0.

Particularmente he tenido que compilar Mono 3.8 y Monodevelop 5.3 por mi cuenta para poder trabajar cómodamente con ColorSharp (para poder usar la versión integrada de NuGet y su “Package Manager Console”).

Mono es una dependencia fuerte en Linux para poder usar Monodevelop, pero en Windows no. Sugiero que si se está en Windows también se instale Mono para poder comprobar que los cambios que efectuáis no rompen la compatibilidad de ColorSharp con Mono.

Como extra, recomiendo descargar el binario ejecutable de la utilidad NuGet. En el caso de Linux se tiene que usar Mono para poder ejecutar la utilidad NuGet (sugiero escribir un pequeño wrapper en Bash para simplificar la llamada) e “instalarlo” en /opt (añadiendo la ruta a la variable PATH).

Lista de (algunas) tareas pendientes

  •  Documentar la biblioteca en la wiki de Github.
  • Mejorar la documentación interna (los comentarios de código).
  • Añadir nuevos espacios de color (actualmente solo están soportados CIE XYZ de 1931, CIE xyY de 1931, sRGB y espectros lumínicos) :
    • CIELAB
    • CIELUV
    • CMYK
    • HSV
    • HSL
  • Añadir nuevas rutinas de extracción de características:
    • Color Temperature
    • Color Quality Scale (CQS)
    • Color Rendering Index (CRI)
  • Mejorar el rendimiento (profiling, mejor arquitectura…)
  • Aumentar la cobertura de pruebas unitarias.
  • Integrar builds automáticos con TravisCI
  • Integrar builds automáticos con Coverity.
  • Crear paquetes .DEB y .RPM para Debian, Ubuntu, Fedora y Redhat.

Me quedaré aquí por hoy, pero tengo que escribir mucho más sobre el desarrollo (y traducir este mismo artículo al inglés). Saludos!

Anuncios

One thought on “Presentando ColorSharp

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s