From owner-freebsd-advocacy@FreeBSD.ORG Tue Mar 30 10:11:52 2004 Return-Path: Delivered-To: freebsd-advocacy@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 217B316A4CE for ; Tue, 30 Mar 2004 10:11:52 -0800 (PST) Received: from pr93.lublin.sdi.tpnet.pl (pr93.lublin.sdi.tpnet.pl [217.97.36.93]) by mx1.FreeBSD.org (Postfix) with SMTP id A57F343D54 for ; Tue, 30 Mar 2004 10:11:50 -0800 (PST) (envelope-from michal@pasternak.w.lub.pl) Received: (qmail 4862 invoked by uid 1001); 30 Mar 2004 18:11:49 -0000 Date: Tue, 30 Mar 2004 20:11:49 +0200 From: Michal Pasternak To: John Von Essen Message-ID: <20040330181149.GA74596@pasternak.w.lub.pl> Mail-Followup-To: John Von Essen , freebsd-advocacy@freebsd.org References: <40695EDA.10793.7ABE6086@localhost> <20040330115339.D3419@beck.quonix.net> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline In-Reply-To: <20040330115339.D3419@beck.quonix.net> cc: freebsd-advocacy@freebsd.org Subject: Re: The Website X-BeenThere: freebsd-advocacy@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Michal Pasternak List-Id: FreeBSD Evangelism List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 18:11:52 -0000 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? > 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. * clean, easy to maintain code - that lets new people contribute to such project easier * separate data from page design/look. Always. Learn about MVC pattern, if you didn't do that already. * 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. * translations! Every letter of text on the page (images included) should be translateable to other languages. Think about this, while writing a web engine. * 2-clicks rule, cross-browser compatibility, coding - utf, of course, similar webinterface stuff * security! slashdot-like trolls on forums, bruteforce webform password crackers... remember about this. 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? 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. * 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 divmod.org) - 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. 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. * 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. Just my $.25. 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. -- m