[Interop-dev] Software design
Sat Apr 7 15:12:51 CEST 2012
> We are indeed building something like pinax but for networks.
Great example, but I am not so sure if this is what we would like to
build. I have idea of building more like Trac for network.
Like Trac is for developing open source projects (you install it and it
helps developing them), our project would be for deploying open networks.
I think that Pinax is in some way a meta-framework, providing many
functionalities included when you want to build your own web site. But
you still have to develop something.
I would like more that our projects is a standalone application already
(like Trac), but which is heavily customizable/pluggable/themable.
So that you can install it and you immediately get some basic things
working. Then you configure it (could maybe even through web interface)
and adapt it to your needs, but that maybe even defaults are already
good enough for you.
> Why no html templates? Because not everyone wants the same template,
> same design, same functionalities. Also the plugins you choose determine
> your design so it is not possible to make an html template that is good
> for every case.
I don't think this is really a problem. Why wouldn't you like same
templates? In most cases you just want to override logo and colors and
this is it. So change CSS a bit and it works. Look:
But this is Trac, but it is already themed. I think that for quick
startup you want something to be there. Then you slowly adapt, theme,
and so on.
If we will make Django templates modular enough, then this is not a
problem. And for CSS in nodewatcher we have been using Compass:
This means you just change some variables (like colors) and you have
your own color-style, if you want.
No templates is maybe good for development framework (but even there I
do not agree with that - why you would force everybody to use different
templates, if somebody likes the provided ones, great - and they are
often great source of wisdom and initial ideas how to do something).
Even Django itself provides basic templates.
> So for that reason maybe the core apps should not contain any design
> or user interface functionality other than skeletons.
Design can always be overriden. I do not see the reason why we shouldn't
provide some defaults?
I thing Pinax is too low level. It is not meant as end-user application.
I think that we want to develop end-user (new community wanting to
deploy a network) application, which would still allow customization for
different needs for different networks. But allow it, not require it. :-)
> so I guess it could become one of the web interfaces available for
> the framework we will develop.
At initial phase, I would move the whole nodeshot as one module of our
new platform. Just change it to store data in common (core) way.
> I also suggest to take a look at this django ecommerce framework:
Again, I know it and we will even probably use it for ourselves. But I
think it is again centered for developers, not users.
> /*For developers*: Django-Shop will not be an "out-of-the-box" shop
> solution. People will have to write templates for it. Shipping an
> example shop is not out of the question, but it must be well
> separated from a code perspective./
They say it. :-)
> /*Livesettings*: Sorry./
This is exactly the thing we would like: that users could set some
things also through the web interface.
> /*Shipping and maintaining templates in the basic codebase*: This is
For framework, Django Shop is a e-commerce framework, not application.
Thank you for very good and constructive question. I think we should
really understand what we are doing. And I have a bit different view. I
don't see it as completely opposing, just as an extension: we will have
things very modular (in a Django compatible way), but we should on top
of this modularity provide some out-of-the-box solution. I do not see a
reason why not? If we would be developing an application framework,
maybe, but we are not developing that, but a network framework.
What this means is that arguments you are talking about should in our
case mean that, for example:
- we do not have preconfigured IP space configured in our application -
each community should configure this
- we should not fix DNS values to something predefined
So all your arguments hold, but for network level, not application
level. (But even in our case some good-practice examples could be
provided. I am just showing that it is a different level where should we
be asking ourselves those questions. In my opinion.)
> Here in Italy there are 2 guys other than me that can do stuff in
> django, but they don't have much time available. Moreover they don't
> really like web stuff, they prefer networking. It would be cool if we
> could find django experts that would be interested in the project and
> would help us out.
Interesting. I found 10 students this year in Slovenia, willing to
develop things in Django (for GSoC), once I made some effort of finding
them. I believe we could at least made initial ideas with their help.
More information about the Interop-dev