# Brea
Home | Timeline | Tickets | Files |
A simple dynamic distributed web site generator for public & open data, combining: - **Backend**: [Fossil][fossil] for resilient and distributed storage of information . - **Front-end**: - [Material Design Lite][mdl] and [HTML5UP](https://html5up.net/): for responsive, beauty and mobile friendly web user interface. - [Mustache][mustache]: a logic-less HTML template system to inject data into web interfaces. - [Markdeep][markdeep]: for agile and structured light documentation. - **Middleware**: [Teapot][teapot]: for defining behavior, data models and connecting front-end and backend. This is the [documentation and issues repository][brea-fossil]. And this is the [source code repository](https://code.tupale.co/Offray/Brea). To start run this code from [Pharo](http://pharo.org/) 8.x: ``` location := FileLocator localDirectory / 'iceberg' / 'Offray' / 'Brea'. (IceRepositoryCreator new location: location; remote: (IceGitRemote url: 'https://code.tupale.co/Offray/Brea.git'); createRepository) register. Metacello new repository: 'gitlocal://', location fullName; baseline: 'Brea'; load ``` For further instructions and documentation the recommended way to proceed is by downloading, reading and executing the [Brea Grafoscopio interactive notebook](./doc/tip/brea.ston) (you will need to have [Grafoscopio][grafoscopio:en] installed and to know how to use it). ![The Grafoscopio interactive notebook documenting Brea.](https://i.imgur.com/Cq8ygi9.png) The name came out as part of a friends joke, talking about how [brea][w:brea] ([pitch][w:pitch]) allows the easy creation and preservation of fossils. This is the current incarnation of an old project prototyped with the excellent [web2py][web2py], but this time with the advantages of Pharo ecosystem, particularly [live coding][w:live-coding]. ## Why two source code repositories? For historical reasons, different Smalltalk communities developed and hosted their source code in [SmalltalkHub](http://smalltalkhub.com/) which gives them the autonomy of a simple and self-contained DVCS, that was wrote in the language they knew. At that time we We split the repositories in two: the Fossil powered one is well suited for files and tickets, and SmalltalkHub which is best suited for Smalltalk source code. That was before the popularity of DVCS advanced by Git and GitHub, and now most projects are being migrated to GitHub to get more visibility and improve collaboration (SmalltalkHub uses an simple optimistic versioning system that was showing its age), while sacrificing autonomy, simplicity and self-containment. We think that Fossil as a back end could provide the advantages of a modern DVCS, while keeping the properties we like to have regarding autonomy, simplicity and self-containment. Meanwhile, we split them in the ones mentioned before: Gitea and Fossil for self-hosted coding without relying on sorce code oligopolies, becasue Gitea, as a Git based project integrates better with Pharo, but Fossil was already beeing used in our local communities for pretty much every other non software project. At some point we hope that the work is being done in the Git/GitHub front to migrate source code from Smalltalk would be useful to host a single Fossil repository containing software and documentation (and issues for both). [brea-fossil]: http://mutabit.com/repos.fossil/brea/home [fossil]: http://fossil-scm.org/ [grafoscopio:en]: http://mutabit.com/grafoscopio/index.en.html [markdeep]: https://casual-effects.com/markdeep/ [mdl]: https://getmdl.io/ [mustache]: http://mustache.github.io/ [teapot]: http://smalltalkhub.com/#!/~zeroflag/Teapot [w:brea]: https://es.wikipedia.org/wiki/Brea [w:live-coding]: https://en.wikipedia.org/wiki/Live_coding [w:pitch]: https://en.wikipedia.org/wiki/Pitch_(resin) [web2py]: http://web2py.com/