[imc-cms] [bitweaver-core] Indymedia.org CMS Developers Survey - please read!
Nick Palmer
nick at sluggardy.net
Sun Feb 11 03:49:11 PST 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hey Guys,
I normally wouldn't take the time to answer this sort of thing but I
like bitweaver so much that I felt compelled to do so. Bitweaver is
by far the best CMS I have found from a developers perspective and is
great from an administrative side as well both which are important to
me. There are some CMS out there that have shiny bells and whistles
not in Bitweaver yet but are a pain to write code for. Few have the
fine grained controls over users that Bitweaver offers.
> Please fill in as many questions as you can. When you are completed,
> you should email your responses to imc-cms at lists.indymedia.org
>
> 1) Survey Part 1 - Personal Details
> a) Your name?
Nick Palmer
> b) Your geographic location?
Amsterdam, The Netherlands
> c) How long have you worked with Bitweaver and what work do you do
> with the project?
7 months. I have written several packages for bitweaver including a
few that have not been released including the fckeditor package. I
hack on internals of bitweaver and am working on integrating
HTMLParser to ensure that bitweaver is the most secure system around
against various attacks.
> d) Do you work on any other CMS projects?
No. I did an extensive survey of CMS systems before I began working
with bitweaver, much as you are doing now though. While there are
other CMS systems that have nice features NONE have the ease of code
development and architecture for advanced integration between
independent packages that bitweaver offers. Furthermore I did not
find any with the scalability of bitweaver. This is why I am here. I
know some of the other developers work with Tikiwiki though since
Bitweaver is a fork of sorts.
> 2) Survey Part 2 - CMS Basics
> a) What programming language is Bitweaver written in?
PHP with Javascript and CSS
> b) What is the backend database used by Bitweaver?
Anything AODB will write to including MySQL, Postgresql, Oracle,
Firebird and a few others.
> c) Are there other servers required (application server, Tomcat,
> etc)?
No. Classic LAMP or LAPP stack though there is a Java Lucene indexer
if you want to run it. Not required though.
> d) How do you describe the overall software design of Bitweaver?
Amazing! Spiderr did an amazing job of making a modular system with a
lightweight core. I am regularly amazed at new aspects of what he has
done. The Liberty Content system is really amazing and makes things
extremely fast on the server side providing the great scalability of
Bitweaver. The Liberty Services system makes it easy to make powerful
packages that can add data and features onto all content oriented
packages. The plugin oriented architecture of Liberty makes it easy
to add parsing oriented features to all content objects as well as
add image processing libraries and new storage back ends. It has a
generic system for attaching uploads to content and uploaded content
can be attached to more than one object. The architecture of
bitweaver is the best I have seen of any CMS I evaluated and I
evaluated many before coming here.
> e) Can you give details about real-world scaleability
> considerations for Bitweaver?
Bitweaver was designed from the ground up with scalability and
flexibility in mind. The system is designed to fetch a content object
and all associated data in a single query. The developers have spent
a considerable amount of time ensuring that the number of queries
required to render a page is low and that the code to do so is fast
while still preserving an easy to use object oriented system. The
storage system ensures that no single directory is filled with more
than 1000 files in order to keep file access times for uploaded
content low. There are several VERY large websites running bitweaver
and it has proven itself in the scalability department. There is even
a server performance module that allows developers to see how many
queries are done, how long a page takes to load, how much memory it
consumed in rendering and what part of the time was spent doing
queries. There is also an advanced caching system for caching page
results for pages that are unlikely to change quickly as well as
caching languages and compiled smarty templates. Bitweaver has the
best scalability characteristics of any CMS I evaluated and was one
of the major selling points that brought me to Bitweaver.
> 3) Survey Part 3 - CMS Functionality
> a) A core feature of our software is the ability for anonymous
> users to post media to appear on the site. Is this easily
> added to a site using Bitweaver?
Yes. The Bitweaver permission system makes it easy to allow or forbid
whatever actions you want to any user group including the anonymous
group. It has fine grained access controls that are really amazing to
work with.
> b) Can you describe the site search functionality available?
There are a couple different search packages available the most
powerful of which is based on lucene and is a great search tool. You
can build multiple indexes that make it fast to do queries for
various content types.
> c) How is RSS/XML/RDF support included?
There is an RSS package which provides RSS feeds in every format
under the sun for any content type. Integration of feeds with custom
packages is really quite easy. There is an XML-RPC package but I
haven't tried it at all. I am not sure anybody has done anything with
RDF yet. Generally I think of XML as the XMLelephant and try to avoid
it myself since it is much more heavyweight than I need for what I do
but I can see if being of value to something of your scale.
> d) We would like to have one server per site which allows many
> instances of actual websites, each with different admin logins
> and different websites altogether. Is this easy to set up with
> Bitweaver?
Yes. Bitweaver supports multiple instances on the same server through
either multiple databases or a prefix on all tables in the database.
There is also a multisites package for supporting multiple sites with
the same content however administration is not split with this package.
> e) Can you describe the multimedia support in the software? We
> allow users to upload and manipulate online all types of media -
> mpeg, mp3, ogg, jpg, pdf, etc.
There is a fairly new package called Treasury for more powerful
management and storage of files of all kinds. I am not sure how
strong the feature set is for manipulating files of the types you are
interested in but I am sure contributions in this area would be
welcome. There is a fisheye package for making photo galleries that
has some nice features. Liberty has some basic functionality for
image manipulation and extensions to support more advanced photo
manipulation features could easily be added and I am sure would be
welcome.
> f) Internationalization is very important to us. Many of our sites
> support 2-3 or more languages. Can you describe how this is
> accomplished in Bitweaver?
Bitweaver has a Languages package that can provide localization to
any package as well as support for on the fly translations. Languages
are easy to make requiring a simple flat file to be built with the
localization.
> g) What types of anti-abuse or anti-spam measures are in the code?
Bitweaver has a system wide check against XSS which I am in the
process of improving through the use of HTMLParser. It prevents all
SQL injection attacks through binding all queries. It has an advanced
Captcha system which has recently been added to prevent spam in
boards and such.
> h) Is there a calendar included in the codebase?
There is a calendar for viewing the last content changes in place but
there is not currently a good Events package for posting shows and
such like I imagine you all are looking for. However this is on my
needs list and I expect to begin development of a module to do so in
the next 6 months. I would welcome contributions to that effort.
> i) How do you describe how a user would edit a given piece of
> content
> on the website, or briefly describe the model used in this part
> of the functionality?
SInce bitweaver is a fork of Tikiwiki almost all bits of content are
edited like a wiki page. However due to the plugin system of liberty
formats other than tikiwiki for editing content are supported. I
prefer plain HTML format myself. Even with that format there are
still many plugins which parse additional special tags. Users who
have permission to edit usually click on an edit link and are
presented with a tabbed form for modifying the content. They can then
hit preview to see what their changes look like (in most packages and
places) or hit save.
> j) How do you describe any type of user moderation system that
> is built into Bitweaver?
Various packages have moderation features in one way or another.
Articles can be moderated by giving some user groups only permission
to submit an article which an editor must approve. Boards has some
moderation features for moderating posts. There isn't a system wide
moderation feature set though but I imagine work on one would be
welcomed.
> k) What types of integration is there with P2P networks?
None that I know of but it would be easy to write a tracker package
for example to track torrents. I am sure such a package would be
welcomed.
> l) Another important feature for us is networking between the
> websites. If we want users from one website to have rights on
> another website in the network, how could we do this?
Bitweaver supports pluggable authentication modules including an IMAP
module. You could either write your own authentication module or use
a centralized IMAP server to allow logon to multiple sites.
Individual administrators would then grant rights to users on their
site.
> m) We are concerned with the ability to easily rsync pages from a
> website to other servers and setup a type of mirroring scheme.
> How would this be accomplished with Bitweaver?
This would be pretty easy as all content is stored in the database so
you would simply replicate records from one database to another. You
would have to be careful about sequences though to ensure that there
isn't a key collision in the database.
> 4) Survery Part 4 - Miscellaneous
> a) What do you believe are the top selling points for Bitweaver?
Modular, scalable architecture that is unparalleled in the CMS world.
The liberty system is amazing and developing unique content packages
is a snap. Developing "service" packages that add features to all
content packages is also a snap. The categorization package is
amazing. The variety of packages and integration between them is also
amazing. Take the boards package for instance. It allows comments on
any content object to be linked to a discussion board. No other CMS
has that kind of integration. Stars allows ratings on all content
types as another example.
> b) From what you know about the Indymedia network, how well do you
> think IMC would mesh with the development community for the CMS?
I am sure that contributions would be welcomed. Bitweaver is a very
open community and the general attitude is to allow developers to do
whatever they want with the code base as long as they aren't breaking
it for other users of the code.
> c) What are the top 3 areas you believe the development team for
> the CMS needs to be improved?
Hard to say. I think some of the best developers around are working
with Bitweaver.
> d) Where do you see Bitweaver in five years?
Still the best CMS around with a considerably larger user and
development community and many new and great features and packages.
> Thank you for your time and consideration.
Your welcome. I hope to see you all contributing to Bitweaver soon.
I noticed that you have some sites running TikiWiki code. You should
know that upgrading from TikiWiki to Bitweaver is possible though it
is a multistep upgrade process. This makes bitweaver a great choice
for those sites moving forward. It should be relatively easy to port
the custom code you have written for TikiWiki to bitweaver as well
though this may be a little more hassle than the upgrade.
Namaste,
~ Nick
P.S. The development community on IRC is pretty responsive and the
guys hacking on bitweaver are a really friendly bunch of guys.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (Darwin)
iD8DBQFFzwK7WRxj7DCRpGURAkchAJoCrolYlwosqG4jWDKKEc16nJYKkgCfXl+k
eyaA96w/TL13fxHdMCLVBME=
=R0CN
-----END PGP SIGNATURE-----
More information about the imc-cms
mailing list