2019-02-10 02:57:47 +00:00
|
|
|
# Brea
|
|
|
|
|
|
|
|
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]: 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].
|
|
|
|
The [source code repository](http://smalltalkhub.com/#!/~Offray/Brea) is hosted in SmalltalkHub.
|
|
|
|
|
|
|
|
To start run this code from [Pharo](http://pharo.org/) 6.1:
|
|
|
|
|
|
|
|
```
|
|
|
|
"Start by loading the configuration of Brea"
|
|
|
|
Gofer new
|
|
|
|
url: 'http://smalltalkhub.com/mc/Offray/Brea/main';
|
|
|
|
package: 'ConfigurationOfBrea';
|
|
|
|
load.
|
|
|
|
|
|
|
|
"After that load Brea"
|
|
|
|
|
|
|
|
ConfigurationOfBrea 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?
|
|
|
|
|
|
|
|
We split the repositories in two because the Fossil powered one is well suited for files and tickets,
|
|
|
|
while the SmalltalkHub one is best suited for Smalltalk source code.
|
|
|
|
For historical reasons, different Smalltalk communities developed and hosted their source code there,
|
|
|
|
which gives them the autonomy of a simple and self-contained DVCS, that was wrote in the language they knew.
|
|
|
|
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 is 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.
|
|
|
|
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).
|
|
|
|
Meanwhile, we will split them in the ones mentioned before.
|
|
|
|
|
|
|
|
[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/
|