Cassowary (software) - Cassowary (software)
Cassowary je přírůstkové řešení omezení sada nástrojů, která efektivně řeší systémy lineárních rovností a nerovností. Omezeními mohou být požadavky nebo preference. Kód klienta určuje omezení, která mají být udržována, a řešitel aktualizuje omezené proměnné tak, aby obsahovaly hodnoty, které splňují omezení.
Cassowary vyvinul Greg J. Badros, Alan Borning a Peter J. Stuckey a byla optimalizována pro aplikace uživatelského rozhraní.[1] Badros použil Cassowary mimo jiné pro implementaci kaskádových stylů omezení (CCSS), rozšíření do Kaskádové styly (CSS). CCSS přidává podporu pro rozložení omezení. Ty umožňují návrháři popsat rozložení a webová stránka flexibilnějším způsobem. Cassowary se používá k řešení těchto omezení a výpočtu konečného rozvržení.
Pokec, C ++ a Jáva verze jsou k dispozici v hlavní distribuci. Dále existují vazby pro GNU Guile, Krajta,[2] a STk.
Řešitele přenesli další lidé JavaScript,[3] Šipka, Kvičet, Krajta,[4] the .NET Framework (Cassowary.net) a Rez.[5]
Aplikace
- Od září 2014 společnost The Grid vyvíjí GSS, jazyk pro rozložení a modul pro rozložení pro web.[6] Jedná se o moderní rozšíření CCSS.[7]
- Layx, jazyk pro rozložení webu navržený s ohledem na snadné použití.[8]
- Scwm, správce okna Omezení schémat.
- Od roku 2011 se Cassowary používá jako algoritmus v modulu rozložení pro Mac OS X (Lion a větší) a iOS (6 a vyšší).
- Enamlovy layout engine je postaven na optimalizátoru lineárních vazeb Cassowary.[9][10][11][12]
Reference
- ^ Algoritmus řešení lineárních aritmetických omezení Cassowary, Autoři: Greg J. Badros, Alan Borning a Peter J. Stuckey
- ^ https://github.com/brodderickrodriguez/cassowary
- ^ https://github.com/slightlyoff/cassowary.js/
- ^ https://github.com/brodderickrodriguez/cassowary
- ^ https://github.com/dylanede/cassowary-rs
- ^ "Historie vývoje mřížkových stylů".
- ^ „O CCSS“. Archivovány od originál dne 11. 9. 2014. Citováno 2014-09-22.
- ^ „Domovská stránka webu Layx“.
- ^ „Casuarius poskytuje vazby Pythonu na implementaci algoritmu Cassowary v C ++“. Archivovány od originál dne 2017-08-14. Citováno 2017-09-19.
- ^ casuarius na GitHub
- ^ Kiwi, náhrada za Casuarius / Cassowary. Nový řešič toto úzké místo odstraní. Stále používá stejný algoritmus Cassowary, ale jde o implementaci algoritmu od základu založeného na papíru Cassowary, nikoli o existujícím zdrojovém kódu Cassowary. I když je algoritmus Cassowary dobrý, stávající implementace C ++ má mnoho neefektivností. Nový řešič je kdekoli mezi 12x a 500x rychlejším v závislosti na problému (40x typicky) a využívá zhruba 5x méně paměti. A jak to obvykle dělám, místo použití Cythonu jsem se rozhodl psát vazby Pythonu ručně v C ++. Výsledný kód je rychlejší a nyní máme o jednu externí závislost méně.
- ^ kiwi na GitHub
externí odkazy
- Sada nástrojů pro řešení omezení Cassowary:, stránka projektu na University of Washington
- Přístavy Cassowary
- JavaScript: cassowary.js
- Krajta: kasowary na GitHub, kiwi na GitHub
- Pískání (Smalltalk): Cassowary
- Rez: cassowary-rs
- Šablony stylů GSS / Grid, řešič rozložení na webových stránkách implementovaný v coffeescript (který se kompiluje do javascript).