The Website

Devon H. O'Dell dodell at
Tue Mar 30 11:12:35 PST 2004

Michal Pasternak wrote:

> John Von Essen [Tue, Mar 30, 2004 at 12:02:20PM -0500]:
>>I believe I was the one that requested a core sanction. The reason is I
>>remember when this thread came up before... It's difficult to go out and
>>start doing something and dedicate alot of time when you are not
>>absolutely sure that it will be accepted.
> On the other hand, how do they have to sanacize something, that they didn't
> see?

This is a very good point. See my last email.

>>A core sanction would also help in other areas... What is the decided
>>platform? Perl, PHP, MySQL, Postgresql.
>>What happens if I go out and do it in mod_perl and mysql, and then a core
>>member says, "It should be done in php like site xyz".
> Well, that's a good question.
> First, philosophy. Sorry, if that's obvious, but:
>  * structure of the site: what do we want to have, what we will be introducing
>    in the future. Very important, start from creating it. Discuss it. Many
>    times.

And then discuss it again.

>  * clean, easy to maintain code - that lets new people contribute to such
>    project easier

Indeed. Unfortunately, here is where you start to get into popularity. 
More people will be able to contribute (code-wise) to a PHP-based 
project than a, say, Ruby-based project.

>  * separate data from page design/look. Always. Learn about MVC pattern, if 
>    you didn't do that already.

This can not be stressed enough. Content can NOT rely on layout or vice 
versa. If one page has no content in some area _it has to be able to do 
without_. Extensibility is a necessity.

>  * remember about machine, that serves the content. Not everything has to 
>    be a dynamic PHP script, you can save rendered HTML pages to save CPU
>    time, perhaps in many areas of the site.

Indeed. Caching is used in many platforms (I know that PHP and Java use 
these, for instance).

>  * translations! Every letter of text on the page (images included) should
>    be translateable to other languages. Think about this, while writing 
>    a web engine.

Native-English speakers tend to forget about this, but there's a whole 
world out there with a tech market. We can't just advertise to the US, 
UK, Canada, Australia and other (semi-)majority English-speaking countries.

>  * 2-clicks rule, cross-browser compatibility, coding - utf, of course,
>    similar webinterface stuff

For those not familiar, all vital content should be within 2 clicks. 
XHTML compliancy? What version?

>  * security! slashdot-like trolls on forums, bruteforce webform password
>    crackers... remember about this.

Should the site even have forums? I personally think they make a 
``corporate'' site look tacky. ZDNet, CNN, and news sites, for instance, 
let their viewers post feedback, but that's very limited on sites 
belonging to companies such as IBM, Sun, Intel, and Microsoft.

> Tools, tools, tools.
>  * choose by features and possibilities, that the tool gives you, not by
>    popularity. "More people use PHP & MySQL, so it's better" sounds just like 
>    "More people use Windows XP, than FreeBSD, so Windows's better".


>  * choose by features, not by speed. According to extreme programming rules,
>    you should optimize only the bottleneck; how can you predict the bottleneck
>    if you have no project?

One other thing I would add to this list is distribution. 
has content that is mirrored across the globe via CVS or CVSup. How do 
you distribute the content of this site?

> Only those tools I know a bit, sorry for not providing more information:
>  * PHP: very popular among fresh webdevelopers, sometimes very criticized by
>    the senior ones, especially by people, who like real object-oriented
>    languages. Objects in PHP 5 are getting much better, perhaps PHP 6 or PHP
>    7 will be really good in this area. DOM XML module, except ugly syntax,
>    seems to be pretty useable at parsing XML forms. It is quite easy to
>    implement basic Adapter/Interface pattern in PHP; on the other hand,
>    language syntax has still much TBD. Popular. Popularity should *not*
>    be the _only_ factor considered.

PHP 5's objects are fashionable, though I'd still argue that OO 
development isn't necessary for web development. WRT the syntax: it's 
short, sweet, easy to pick up, and offers the largest developer base, 

>  * Python: there are a few interesting Python projects to do webdevelopment,
>    which intensivley utilize Python's syntax & object-oriented features; they
>    are definetley worth giving them a look, among others:
>      * Zope and Plone. Enough said - very complete, very sophisticated,
>        still easy to use.
>      * Twisted Python together with Newov (from - that's a quite
>        interesting webdevelopment framework, if you ask me. Strongly
>        suggested, if you don't plan to use it, at least have a look at
>        the way problems are solved there. And, you can turn your simple
>        test webserver into load-balancing spread cluster with single
>        line of code.

I know very little about Python, but there are other languages to 
consider. Namely:

	* C
	* Perl
	* Ruby
	* Combination of any of the above

> Database?
>  * PostgreSQL is pretty good. In fact, it is very advanced database. MySQL
>    could be an option, if you don't need that much features. Speed of 
>    database should *not* be the _only_ factor considered. Pros? Data can
>    be shared between no-matter-what-language-you-write-it-in software.   
>    I have modified some sites, that used MySQL, and suffered because of lack of
>    some features, that were already present in PostgreSQL. I don't know,
>    how this two DBMS compare to each other at the time of this writing,
>    but personally I'd choose PostgreSQL, unless someone will proove me 
>    the existence of the same features in MySQL server.

Backplane is a database that could be considered for storage, due to its 
native distribution/scalability focus. I don't know what, if any, 
languages support it/have hooks for it. If its in the interests of the 
project, I'm sure I could write hooks for it for whatever language(s) we 
decided to go for. One thing to consider is definitely distribution. 
There's no way we're going to manage a on 1 server.

I can host some content, but mirrors will be necessary.

>  * Zope uses ZODB, object oriented database engine. ZODB is definetley
>    worth having a look; together with IndexedCatalog it can be quite
>    fast. Pros? Many. Cons? Python-only, AFAIK.

There have been some ridiculous security vulnerabilities in Zope as of 
late. (From what I've heard. Don't jump on me, I'm repeating what's been 
told to me.) I don't know if ZODB can be clustered/distributed, which is 
my personal main concern with a database.

> Just my $.25.

Well, I've just turned it to $0.50.

> Starting - as an open project - "the new corporate FreeBSD site" - requires
> much more discussion. Not to mention your own (yes, yours) time and
> resources. And, the discussion, if the page should be red, green or black
> should come after 40 - 75% of the code is done, not earlier.

Let me add a bit of stress on the ``your own time'' part.

This begs the question though: develop your own CMS or use/expand an 
existing system. These are all things that need to be discussed. BTW, 
folks, these are all things that are discussed when corporations make 
webpages as well.

Kind regards,

Devon H. O'Dell

More information about the freebsd-advocacy mailing list