IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Almost entirely Zope.
The data is stored externally in Postgres, however, and accessed through Zope's SQL methods. Inserts are done with stored functions. Selects, however, are not, as Postgres does not yet properly support returning result sets from stored procedures. The database uses a nested set tree for the thread hierarchies.

The actual forum functionality consists of a folder of SQL methods, a folder of GET actions, and a folder of renderable objects: board, forum, content, and user. Each of those folders has a 'show' method. Currently I am adding 'new', 'edit', 'history', and other methods to them. Methods can also be folders, as in the case of say the 'new' method on the content folder which contains a form object and a number of initialization and helper methods.

The only real "custom" bit of code (other than the objects and form helper methods) is the functional-style HTML parsing module I built back when Ben and I were discussing it.

All told I've spent maybe 30 hours on the thing. Zope is a good prototyping tool, but it has a number of annoying traits that get in the way of really understanding what is going on. Namely, "acquisition", which is merely a euphemism for "make sure everything is globally accessible", and it's a pain in the ass. :-)

Version 0.3 will see the release of the source code if you're that interested, although it's still fairly messy in many ways thanks to Zope's unique way of doing things.
Regards,

-scott anderson
New Incidentally...
To reimplement everything that I reused would take on the order of a few months of solid work. :-)
Regards,

-scott anderson
New Possible better way to do thread hierarchies
Can't remember where the links for this came up, but it suggests a different way of representing message threading. Seems odd at first, but the idea is that inserts, deletes and re-parenting are comparatively rare events most of the time compared to selects. This method optomizes the structure for easier selects, at the expense of some compute time to do an insert.

[link|http://www.dbmsmag.com/9603d06.html|http://www.dbmsmag.com/9603d06.html]
[link|http://www.intelligententerprise.com/001020/celko1_1.shtml|http://www.intellig...lko1_1.shtml]
This is my sig. There are many like it, but this one is mine.
New Muah.
Have you looked at the [link|/forums/SourceCode|SQL code] yet? :-)

I've been advocating nested set trees for hierarchical data for a long time. For forums specifically, too, since they are read-mostly. :-)
Regards,

-scott anderson
New Other article
[link|http://www.dbmsmag.com/9809d05.html|http://www.dbmsmag.com/9809d05.html]

I've found that the helper table (in figure 3) is a better solution for traversing trees from an aritrary starting point when you have a system in which the tree is changing often.

It's a trade off between space and speed. The table can take up quite a bit of space, but it's relatively easy and quick to update and it's fast to query against.


Darryl A. Peterson



I'm not as funny as I think I am.
     Inside the box? - (tablizer) - (6)
         Almost entirely Zope. - (admin) - (4)
             Incidentally... - (admin)
             Possible better way to do thread hierarchies - (drewk) - (2)
                 Muah. - (admin)
                 Other article - (dpeterson)
         Just guessing... - (CrisR)

There should be an opportunity for somebody here.
101 ms