<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<font face="Helvetica, Arial, sans-serif">When I develop things I
like to check out how other successful open source projects
managed to build things.<br>
<br>
Let's take a look at <b>pinax</b>.<br>
<a class="moz-txt-link-freetext" href="http://pinaxproject.com/">http://pinaxproject.com/</a><br>
<br>
<i>"Pinax is an open-source platform built on the Django Web
Framework. By integrating numerous reusable Django apps and
providing starter projects and infrastructure tools, Pinax takes
care of the things that many sites have in common so you can
focus on what makes your site different. Pinax has been used for
everything from social networks to conference websites, and from
intranets to online games."</i><br>
<br>
We are indeed building something like pinax but for networks.<br>
I tried pinax and there are few things which I really like and I
think we could emulate in this project.<br>
<br>
Pinax is basically a set of libraries and django apps, with very
basic or nonexistant html templates.<br>
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.<br>
<br>
But how can you see how it works if it doesn't have any html
templates? Here it comes the interesting thing, Pinax includes
also a set of example projects that are out of the core, these
example projects include also html templates, with a clean design
and some basic user interface functionalities.</font><font
face="Helvetica, Arial, sans-serif"><br>
You can basically copy and paste one of those example project,
configure the settings file, create the database for it with:<br>
<b>python manage.py syncdb<br>
</b>and then run the development server<br>
<b>python manage.py runserver</b><br>
and then see it on <a class="moz-txt-link-freetext" href="http://localhost:8000">http://localhost:8000</a><br>
<br>
This is really awsome, for these reasons:<br>
</font>
<ul>
<li><font face="Helvetica, Arial, sans-serif"> it gives you many
functionalities out of the box</font></li>
<li><font face="Helvetica, Arial, sans-serif">but it doesn't force
you to use them</font></li>
<li><font face="Helvetica, Arial, sans-serif">you can infact
modify the example project, rename it, change the design, make
it something completely different</font></li>
<li><font face="Helvetica, Arial, sans-serif">you can also
directly build something new from scratch using the several
apps available with pinax</font></li>
<li><font face="Helvetica, Arial, sans-serif">you can use
additional django apps, and some interesting additional django
apps are developed by the pinax team</font></li>
<li><font face="Helvetica, Arial, sans-serif">you don't loose
compatibility with the basecode. By using the example projects
you are infact not modifying pinax's code. When a new version
comes you just update the core of pinax hopefully it will
still work.<br>
</font></li>
</ul>
<font face="Helvetica, Arial, sans-serif">I think the web interfaces
will have to be standalone apps, it could also be compared to the
"example project" of pinax.<br>
It's very possible that different communities might develop
different web interfaces. So for that reason maybe the core apps
should not contain any design or user interface functionality
other than skeletons.<br>
<br>
</font><font face="Helvetica, Arial, sans-serif">I'm taking a look
at nodewatcher, I see some steps in that direction have been
taken.<br>
Nodeshot instead is a monolithic piece of code, not abstract at
all. It focuses more on the user interface, so I guess it could
become one of the web interfaces available for the framework we
will develop.<br>
</font><br>
I also suggest to take a look at this django ecommerce framework:
<a class="moz-txt-link-freetext" href="https://www.django-shop.org/">https://www.django-shop.org/</a><br>
<br>
They write:<br>
<blockquote><b><i>If you don’t have the time to read</i><br>
<i>Check out the most important facts</i></b><br>
<br>
<i><b>KISS</b>: Keep It Simple, Stupid. The process of using a
shop is simple - reading the code should be too.</i><br>
<br>
<i><b>Djangonic</b>: The shop should run on Django, not alongside
it. We should not reinvent ways to solve problems Django already
solves for us, such as settings management.</i><br>
<br>
<i><b>Modular</b>: Most shops have specificities. Instead of
trying to solve all problems, let's have a clean core for which
people can write modules.</i><br>
<br>
<i><b>For developers</b>: 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.</i><br>
<br>
<i><b>Community friendly</b>: This should be developed by and for
the Django developers community. If we end up having no
traction, that means there is no reason for this project to
exist.</i><br>
<br>
<b><i>What it definetely should not have</i></b><br>
<b><i>The no-no’s</i></b><br>
<br>
<i><b>Livesettings</b>: Sorry.</i><br>
<br>
<i><b>Shipping and maintaining templates in the basic codebase</b>:
This is wrong.</i><br>
</blockquote>
I quite agree with all these statements and I would be happy to
improve my way of coding in order to follow this pattern.<br>
<br>
The point about the django community is interesting. We are
developing this for wireless communities, but what if some people in
the django community might like this project? They might offer their
expertise in helping out! I think that would be great. Also we have
to consider that we don't have many django developers in our
wireless communities. 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. They might
not know much about wireless communities but maybe they might need
some apps in the core so they might want to help out in developing
something they need.<br>
<br>
<div class="moz-signature"><br>
<b>Federico Capoano</b><br>
Web Designer & Web Developer<br>
Portfolio/Blog: <a href="http://nemesisdesign.net">nemesisdesign.net</a><br>
Twitter: <a href="http://twitter.com/nemesisdesign/">@nemesisdesign</a><br>
PGP Key ID: 308BD46E</div>
</body>
</html>