Un clon, por si las moscas

Que ciertas empresas pueden traicionar (o defraudar) a la comunidad sin previo aviso es algo que muchos sabemos desde hace mucho tiempo. Desgraciadamente, aun sabiéndolo, solemos olvidarlo o restarle importancia.

Uno de los ejemplos históricos más claros fue el de Sun Microsystems, que aunque impulsó fuertemente el software libre, también hizo lo contrario en los últimos años antes de ser fagocitada por Oracle. Y Oracle, claro está, fue peor aún. Otro ejemplo no tan recordado fue EyeOS, de mi “queridísimo” Pau García Milà (me robaba la comida en la oficina, aparte de programar como un chimpancé y enseñarnos el culo cuando se dignaba a pasar por las oficinas de Bananity).

Recientemente ha habido otro caso muy sonado, en el que Apple ha hecho desaparecer sin previo aviso los repositorios completos de FoundationDB en Github. Este no será nunca el caso de ColorSharp, ni el código es tan apetecible para una macrocorporación, ni yo permitiría que algo así sucediera. Sin embargo, visto lo visto, es mejor tomar precauciones: Github podría perder sus datos por un accidente, cerrar por algún problema económico (aunque no es creíble a corto plazo), censurar algunos repositorios (como de hecho sucedió, por tener que aplicar ciertas leyes estadounidenses)…

Por eso mismo he decidido mantener un mirror del proyecto en Gitlab: https://gitlab.com/Litipk/ColorSharp . Puntualizo, aunque el código de Gitlab es libre (a diferencia del de Github), me fío tanto de ellos como de los primeros. Que el código sea libre no los hace menos vulnerables a los problemas que he mencionado. Este clon no es para saltar de Github a Gitlab, sinó mas bien asegurar que habrá como mínimo un mirror. Y me estoy planteando crear otro en Bitbucket.

Anuncios

Nueva v0.7.0 y algunos apuntes

Hola a todos,

ayer lancé 2 nuevas versiones de ColorSharp con cambios significativos que podéis ver en el CHANGELOG, pero os hago un resumen de los más importantes:

  • Corregido un error importante en la conversión entre el espacio sRGB y el espacio CIE XYZ.
  • Eliminada dependencia de NUnit (he separado los tests en un proyecto distinto bajo la misma “Solución”).
  • Refactorización importante (que rompe la API anterior):
    • He eliminado el anterior sistema, que buscaba el “camino más corto” dentro de un “grafo de conversiones”. Era una característica de la que me encariñé, pero debido a limitaciones de C# (que le restaban elegancia a la implementación) y a que el número de espacios de color es acotado y “pequeño”, ésta no aportaba ventajas evidentes y sin embargo afectaba negativamente al rendimiento.
    • La componente Y del blanco de referencia pasa a ser 1.0 en vez de 100.0, se ahorran divisiones y se presta menos a confusión.
  • Añadida nueva documentación XML (el sistema de autocompletado o IntelliSense funcionará mejor con ColorSharp).
  • Ligeras mejoras en el fichero README, y por supuesto, por fin hay CHANGELOG.

Ok, esto en lo tocante al desarrollo del proyecto. También durante el día de ayer descubrí otros dos proyectos muy interesantes con objetivos muy parecidos a los de ColorSharp y en estadios de desarrollo bastante más avanzados.

Aun no he podido estudiarlos en profundidad, pero eso no es excusa para no darlos a conocer:

  1. El primero es Colourful , también centrado en .NET/Mono. Particularmente su arquitectura no me convence, pero aun así es una biblioteca muy potente y de la que seguramente sacaré ideas.
  2. El segundo es Colour-Science, un proyecto centrado principalmente en Python, pero que también provee código para otros entornos (como Matlab). Sinceramente, me ha dejado impresionado. El trabajo que hay detrás es descomunal y está claro que hay verdaderos expertos trabajando en él.

Tengo algunas cosas más sobre las que hablar (C#, .NET, Mono, NuGet, PowerShell, PASH…), pero se merecen sus propios artículos y un cierto esfuerzo de síntesis que soy incapaz de hacer a estas horas de la madrugada.