Articulo de referencia

Casuario (software)

Cassowary es un conjunto de herramientas para la resolución incremental de restricciones que resuelve de manera eficiente sistemas de igualdades y desigualdades lineales . Las r...

Cassowary es un conjunto de herramientas para la resolución incremental de restricciones que resuelve de manera eficiente sistemas de igualdades y desigualdades lineales . Las restricciones pueden ser requisitos o preferencias. El código del cliente especifica las restricciones que se deben mantener, y el solucionador actualiza las variables restringidas para que tengan valores que satisfagan dichas restricciones.

Cassowary fue desarrollado por Greg J. Badros , Alan Borning y Peter J. Stuckey , y se optimizó para aplicaciones de interfaz de usuario. [ 1 ] Badros utilizó Cassowary, entre otras cosas, para implementar Constraint Cascading Style Sheets (CCSS), una extensión de Cascading Style Sheets (CSS). CCSS añade soporte para restricciones de diseño . Estas permiten a los diseñadores describir el diseño de una página web de forma más flexible. Cassowary se utiliza para resolver estas restricciones y calcular el diseño final.

La distribución original, [ 2 ] sin mantenimiento desde 2000, incluía implementaciones de Smalltalk , C++ y Java , junto con enlaces para GNU Guile , Python y STk. Existen implementaciones de terceros para JavaScript , [ 3 ] Dart , [ 4 ] Squeak , [ 5 ] Python , [ 6 ] [ 7 ] el .NET Framework , [ 8 ] y Rust . [ 9 ]

Aplicaciones

  • Desde septiembre de 2014, The Grid está desarrollando GSS, un lenguaje y motor de maquetación para la web. [ 10 ] Es una extensión moderna de CCSS. [ 11 ]
  • Layx, un lenguaje de maquetación para la web diseñado pensando en la facilidad de uso. [ 12 ]
  • Scwm , el gestor de ventanas de restricciones de esquema.
  • Desde 2011, Cassowary se utiliza como algoritmo en el motor de maquetación de Mac OS X (Lion y versiones posteriores) e iOS (6 y versiones posteriores).
  • El motor de diseño de Enaml está construido sobre el optimizador de restricciones lineales Cassowary. [ 13 ] [ 14 ] [ 15 ] [ 16 ]

Referencias

  1. El algoritmo de resolución de restricciones aritméticas lineales Cassowary , Autores: Greg J. Badros , Alan Borning y Peter J. Stuckey
  2. "Kit de herramientas para la resolución de restricciones del casuario" . Universidad de Washington.
  3. cassowary.js en GitHub
  4. google/cassowary.dart , Google, 12/08/2020 , consultado el 08/12/2020
  5. Casuario
  6. casuario en GitHub
  7. kiwi en GitHub
  8. ^ Vermeulen, Jo. "Casuario.Net" . jovermeulen.com . Consultado el 10 de diciembre de 2020 .
  9. cassowary-rs en GitHub
  10. "Historial de desarrollo de hojas de estilo de cuadrícula" . GitHub .
  11. "Acerca de CCSS" . Archivado del original el 11 de septiembre de 2014. Consultado el 22 de septiembre de 2014 .
  12. "Página principal del sitio web de Layx" .
  13. "Casuarius proporciona enlaces de Python a una implementación en C++ del algoritmo Cassowary" . Archivado del original el 14 de agosto de 2017. Consultado el 19 de septiembre de 2017 .
  14. casuarius en GitHub
  15. Kiwi , un reemplazo para Casuarius/Cassowary. El nuevo solucionador elimina ese cuello de botella. Sigue usando el mismo algoritmo Cassowary, pero es una implementación desde cero del algoritmo basada en el artículo de Cassowary, no en el código fuente existente de Cassowary. Si bien el algoritmo Cassowary es bueno, la implementación existente en C++ tiene muchas ineficiencias. El nuevo solucionador es entre 12x y 500x más rápido dependiendo del problema (40x típico) y usa alrededor de 5 veces menos memoria. Y como suelo hacer, opté por escribir las vinculaciones de Python manualmente en C++ en lugar de usar Cython. El código resultante es más rápido y ahora tenemos una dependencia externa menos.
  16. kiwi en GitHub