To give an
idea, I have extended Pier with structures for
generating diagrams with Graphviz and lists of items matching a
query. I have also developed Pier with visitor objects for
outputting the content of a Pier instance as a collection of
static files.
That sounds very interesting? Is it proprietary or do you have an
URL so that other people could use your extensions as well?
It is proprietary for now but I will try to publish portions of this
code in the future.
I've started looking at Pier's code, and
unfortunately, I'd have
to say it's not the clearest.
Yes, it is not very easy to understand how it works but on the
other hand it is quite easy to extend.
What could I do to make it clearer, despite the lack of missing
documentation? Would more method comments help? Are the existing
ones useful?
I think that the hardest part was to understand the architecture
until I figured out that the key was to learn the design patterns
used by Pier. I am still impressed by its flexibility and how it
nicely complements Seaside without standing in the way.
I have written an architecture document but I can't publish it. Maybe
I will extract some drawings and put them somewhere.
I still have some troubles when I want to extend Pier with complex
structures. For example, I have a structure to represent a project
with its history and its stakeholders. It requires a lot of
subcommands and subviews and it feels a bit clunky. I am not sure I
am making a good use of Magritte reports.
Start with a
fresh 3.8 basic image and with SqueakMap Package
Loader, install:
1. DynamicBindings (1.2)
2. KomServices (1.1.2)
3. KomHttpServer (7.0.3)
4. Seaside (2.5)
5. Magritte (1.0.6)
6. Pier (1.0.2-alpha)
That's not required, just load the package 'Pier' from SqueakMap
Yes, this method works but then SqueakMap doesn't update its list of
loaded packages. It seems that the problem lies in its way it manages
the dependencies of dependencies.
and it will pull in all the requirements
automatically.
It would be a nice addition if Pier could start automatically the
http server if the KomHttpServer package was not previously installed.