In his article [http://thecodist.com/fiche/thecodist/article/13-ways-to-avoid-building-web-applications-that-suck|13 Ways to Avoid Building Web Applications That Are Not Very Nice] ;) ... Andrew Wulf of thecodist.com writes how websites are not rocket science, yet he is "amazed at how companies with deep pockets manage to produce drecky sites. This is your public face, would you go on a date with mud on your face and spinach in your teeth?" Sooo, let's see how __bitweaver helps you to__:

!! 1. Put javascript and css in their place
Bitweaver's Javascript and CSS files are kept in separate files and not embedded in every page. Your visitor's browser downloads them only once - just how it's [http://archivist.incutio.com/viewlist/css-discuss/86347|supposed] [http://webdesign.about.com/od/css/qt/aatypesofcss.htm|to be done] [http://lists.evolt.org/archive/Week-of-Mon-20010604/034199.html|since 2001] and has lots of [http://www.wmtips.com/CSS/stylesheets-external-embedded-213.htm|advantages]. At bitweaver.org, there is a whole documentation category on [http://www.bitweaver.org/pigeonholes/1784|theming and styling].

!! 2. Use compression
In bitweaver's admin panel, you find a checkbox to activate [http://en.wikipedia.org/wiki/Gzip#Other_uses|gzip compression]. This very popular feature [http://www.webreference.com/internet/software/servers/http/compression/|speeds up the web] and is understood by virtually all servers and browsers. Bitweaver combines often used Javascript functions in one file bitweaver.js that is [http://dean.edwards.name/packer/|compressed] to one third its size. Bitweaver uses a template engine called [http://smarty.php.net/whyuse.php|Smarty] with features like [http://smarty.php.net/manual/en/caching.php|caching]. Upon installing bitweaver, it will be detected if the opcode caching applicaton [http://eaccelerator.net/|eAccelarator] is available on your server, and, if not, recommended. Bitweaver has also been succesfully tested with [http://xcache.lighttpd.net/|XCache], included in Ubuntu.


!! 3. If you put a DocType in your page, validate against it
For me, poor HTML was the reason to leave Tikiwiki when bitweaver was forking from it in 2003. Bitweaver adapted the so called [http://en.wikipedia.org/wiki/Web_standards|web-standards] from day one. Using Joomla, Moodle, Tikiwiki, Drupal, Typo3 and many single-feature OSS applications, I learned that bitweaver has some top notch HTML code and a very useful, [http://www.bitweaver.org/wiki/TemplateSchema|clean structure]. There are not dozens of wrapper-DIVs, no faked portal-layout that forces you to design "around it", and certainly no layout tables. Making a [http://www.bitweaver.org/pigeonholes/1784|custom style] is so easy, it's fun. Techniques like [http://blog.html.it/layoutgala/|Layout Gala] and [http://tango.freedesktop.org/Tango_Desktop_Project|Tango Icon Project] are incorporated into bitweaver. For the behaviour layer [http://mochikit.com/|Mochikit] and [http://www.prototypejs.org/|Prototype] have been used by several packages. For WYSIWIG editing you can choose between [http://tinymce.moxiecode.com/|TinyMCE] and [http://www.fckeditor.net/|FCKeditor], both with their own knobs to tune validation.

!! 4. Don't air your dirty laundry in public
Your bitweaver site won't throw exceptions and debugging information onto your users, if you don't want to. There is a switch for ''is live'' versus ''show errors, I'm debugging'' in /kernel/config_inc.php, and a checkbox to set this option during [http://www.bitweaver.org/wiki/index.php?page_id=247|install]. When your site has been live for a while and needs a break for maintainance, visit the admin panel to find an option to close the site completely, except for admins (or any other group). That being said, error pages do exist, of course, to indicate a page not found or a permission not granted. To avoid users running into "permission denied" pages, links to restricted content are only shown to users that have permission to enter.

!! 5. Use modern web design
"Dreamweaver is your enemy", Andrew Wulf wrote, and that makes bitweaver your friend :) "Accessibility, usability and maintainability" is exactly what bitweaver is about. When you install bitweaver, you don't need a program to build your website, it ''is'' your website. Just like any of those web content management systems out there. But none takes flexibility as far as bitweaver. Choose only the packages that you want (blogs, wiki, image galleries, chat, forums, rating and [http://www.bitweaver.org/wiki/bitweaverFeatures|many more]). Use the database of your choice (MySQL, Postgres, Firebird, and others), use the database abstraction layer of your choice ([http://adodb.sourceforge.net/|AdoDB] or [http://pear.php.net/|Pear]), choose an icon set that follows the [http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-0.4.html|Icon Naming Spec], choose out of [http://www.bitweaver.org/wiki/StyleLayouts|40 Layouts], choose between the included [http://www.bitweaver.org/downloads/gallery/1916|styles] or make your own design easily. The only reason ''not'' to install bitweaver is when you don't like choices.

!! 6. Support all modern browsers
For some of us, this is a ten year old topic. Today, it's Internet Explorer 6 that has to be "supported". For that, bitweaver has some code in place that takes care of CSS-based drop down menus ([http://alistapart.com/articles/dropdowns/|Suckerfish]), [http://dean.edwards.name/IE7/|PNG support] through Dean Edward's IE7 scripts, and other details.

!! 7. If your application has special needs, check up front
First of all, bitweaver's core and its admin panel work without Javascript, Flash, or even images. For some advanced packages like [http://www.bitweaver.org/wiki/GmapPackage|Gmap], Javascript has to be enabled. 3rd party software like the WYSIWYG-editors fall back to simple textareas if Javascript is disabled, the user can input either Wiki-Syntax or text (or handcode HTML). Cookies have to be enabled at least for a user to login. If the admin doesn't want that, there is an option to store session data in the database instead.

!! 8. Test your application usability with real users
To test your site, you need the input of your users. Bitweaver offers community features like [http://www.bitweaver.org/wiki/BoardsPackage|boards], which can be linked to any content, [http://www.bitweaver.org/wiki/chatterboxPackage|chat], [http://www.bitweaver.org/wiki/ShoutboxPackage|shoutbox], comments, [http://www.bitweaver.org/wiki/StarsPackage|rating] and [http://www.bitweaver.org/wiki/RecommendsPackage|recommending], and a contact form. For usage tracking, there is a statistics package. To monitor which bit has been tipped which way, see Liberty's action log.

!! 9. Use a real database
"Use [http://www.mysql.com/|MySQL], or even better [http://www.postgresql.org/|Postgres]", says Andrew Wulf, and that's the recommendation of many bitweaver core developers. Furthermore [http://www.oracle.com/database/index.html|Oracle], [http://www.firebirdsql.org/|Firebird] and [http://www.sybase.com/|Sybase] are supported.

!! 10. Don't use platform specific functionality
Bitweaver runs on [http://httpd.apache.org/|Apache servers] 1.3 or 2 on Unix, Linux, BSD, Solaris, Windows, and MacOS, and on Windows also on Microsoft's [http://www.iis.net/|IIS]. In the privacy of their homes, many users run bitweaver successfully in [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29#Operating_system|XAMP] environments. With either AdoDB or PEAR, bitweaver supports already many different [http://www.bitweaver.org/wiki/DatabaseComparison|databases]. Some free software products of world wide reputation are integrated into bitweaver: [http://phpmailer.sourceforge.net/|PHPMailer], [http://htmlpurifier.org/|HTMLPurifier], [http://www.puremango.co.uk/cm_home_2.php|freeCap], [http://qbnz.com/highlighter/geshi-doc.html|GeShi], [http://phpsniff.sourceforge.net/|phpSniff], [http://www.graphviz.org/|Graphviz], and several Javascript libraries have been known to be used by certain packages, like [http://mochikit.com/|MochiKit], [http://www.prototypejs.org/|Prototype], [http://www.openrico.org/|Rico], [http://www.bosrup.com/web/overlib/|Overlib], [http://www.dynarch.com/projects/calendar/|JSCalendar].

!! 11. Realize your customers don't all have T3 lines
You can check your own bitweaver installation with services like [http://www.websiteoptimization.com/services/analyze/wso.php?url=http://bitweaver.org|websiteoptimization.com] and [http://www.webwait.com/#bitweaver.org|webwait.com]. Compared with the homepages of other web content management systems, bitweaver.org is one of the fastest (around 20 objects, page size under 80 Kilobyte, 3 to 4 seconds average load time). In bitweaver's admin panel you control various kinds of caches. In addition to the GZIP compression of pages, Javascript files are automatically compressed and stored stored in /temp/, so are icons. Each module can be cached seperately. Some more settings are in /kernel/config_ing.php. Bitweaver's main bridge for content, [http://www.bitweaver.org/wiki/LibertyPackage|liberty], sports an additional multi-layer cache for fine grained control over each content particle.


!! 12. Deal about accessibility and internationalization early
Choose between [http://www.bitweaver.org/wiki/PrettyUrls|two] [http://www.bitweaver.org/wiki/FeaturePrettyUrlsExtended|types] of Pretty URLs with Apache's Mod Rewrite feature. Through an interface you can add semantic, [http://www.euronet.nl/~tekelenb/WWW/LINK/|link-based] navigation to your pages. Apart from the "usual" accessibility concepts (XHTML Strict + CSS, some access keys, use of label tags, forms that don't rely on Javascript), many features wait for you to be activated to improve your site's accessibility and usability. To mention a few: [http://meyerweb.com/eric/tools/s5/|S5] lets users create a standards compliant slide show from your wiki pages, real time PDF-conversion, RSS feeds from almost any content, and to comfort the admin, Bitweaver comes with a very powerful and helpful installer. Bitweaver's [http://www.bitweaver.org/wiki/LanguagesPackage|languages package] is heavy machinery. It gives you every possibility to tailor your site to an international audience. You can record untranslated strings, use an online interface to translate your site, base language selection on the browser's language, and let users select their language based on flag icons.

!! 13. Test early, test often
During development, to make code changes appear after refreshing the page in your browser, flush all caches (templates, icons, languages, modules) via admin panel, or make Smarty recompile all templates via /kernel/config_inc.php. When writing PHP, you can use [http://www.bitweaver.org/wiki/index.php?structure_id=198#Whatareyourgenericdevtools|certain functions like vd() and bt()] to get a visual feedback. If you're developing your own Style, use the Smarty function {debug} anywhere in your template to produce a popup window that tells you exactly which arrays and values are available to you.
Page History
Date/CommentUserIPVersion
21 Aug 2009 (15:53 UTC)
Just fixing some typos that I spottes, theres more if anyone would like to take that on.
Tyler Bello69.134.250.11210
Current • Source
laetzer85.178.17.1199
View • Compare • Difference • Source
laetzer85.178.63.2428
View • Compare • Difference • Source
laetzer85.178.60.367
View • Compare • Difference • Source
laetzer85.178.41.243
View • Compare • Difference • Source
laetzer85.178.41.241
View • Compare • Difference • Source