[geeklog-devtalk] geeklog-devel digest, Vol 1 #460 - 11 msgs

geeklog-devel-request at lists.geeklog.net geeklog-devel-request at lists.geeklog.net
Fri Dec 17 17:24:01 EST 2004


Send geeklog-devel mailing list submissions to
geeklog-devel at lists.geeklog.net

To subscribe or unsubscribe via the World Wide Web, visit
http://lists.geeklog.net/listinfo/geeklog-devel
or, via email, send a message with subject or body 'help' to
geeklog-devel-request at lists.geeklog.net

You can reach the person managing the list at
geeklog-devel-admin at lists.geeklog.net

When replying, please edit your Subject line so it is more specific
than "Re: Contents of geeklog-devel digest..."


Today's Topics:

1. Re: GL2 and CVS (Tony Bibbs)
2. InnoDB (was: Draft of schema for GL2) (Dirk Haun)
3. Re: Draft of schema for GL2 (Dirk Haun)
4. Re: InnoDB (Tony Bibbs)
5. Re: Draft of schema for GL2 (Tony Bibbs)
6. Re: Draft of schema for GL2 (Tony Bibbs)
7. Re: Draft of schema for GL2 (Tony Bibbs)
8. GL2 License (Vincent Furia)
9. PHP Vulns (Tom Willett)
10. Re: GL2 License (Tony Bibbs)
11. Re: Article throttle. (Dirk Haun)

--__--__--

Message: 1
Date: Fri, 17 Dec 2004 12:46:56 -0600
From: Tony Bibbs <tony at tonybibbs.com>
To: geeklog-devel at lists.geeklog.net
Subject: Re: [geeklog-devel] GL2 and CVS
Reply-To: geeklog-devel at lists.geeklog.net

Subversion is fine. I've read enough and see a lot of reputable
projects moving to it. And, if we need any other reason for dropping
CVS, it's not being actively developed near as much.

My question still stands, though ;-)

--Tony

Vincent Furia wrote:


>CVS or Subversion? I'd like to see us switch to subversion as CVS

>support seems to be dropping off rapidly. Switching from CVS to

>subversion, from a user perspective, isn't too horrible a change if

>you spend just a little time with the subversion documentation.

>Obviously if we're voting on this, my vote goes to subversion.

>

>-Vinny

>

>

>On Fri, 17 Dec 2004 10:25:22 -0600, Tony Bibbs <tony at tonybibbs.com> wrote:

>

>

>>At what point should I start checking stuff into CVS? I've yet another

>>modified database schema that I added timezone stuff too along with

>>changes per Vinny's suggestions in his last email. I didn't touch the

>>date/time fields yet.

>>

>>Anyway, my point is I have a Propel build so do you want me to CVS this

>>as the first version or simply wait until we iron all the outstanding

>>database issues?

>>

>>--Tony

>>_______________________________________________

>>geeklog-devel mailing list

>>geeklog-devel at lists.geeklog.net

>>http://lists.geeklog.net/listinfo/geeklog-devel

>>

>>

>>

>_______________________________________________

>geeklog-devel mailing list

>geeklog-devel at lists.geeklog.net

>http://lists.geeklog.net/listinfo/geeklog-devel

>

>



--__--__--

Message: 2
From: "Dirk Haun" <dirk at haun-online.de>
To: <geeklog-devel at lists.geeklog.net>
Date: Fri, 17 Dec 2004 20:30:42 +0100
Organization: Terra Software Systems
Subject: [geeklog-devel] InnoDB (was: Draft of schema for GL2)
Reply-To: geeklog-devel at lists.geeklog.net

(trying to catch up with all the posts here ...)


>I think eventually ISP's will get their act together and start

>supporting versions of MySQL that support INNODB (why that wouldn't be

>the default table type moving forward is beyond me).


My hosting service still uses MySQL 3.23.57. They say they're not happy
with how MySQL 4.0.x performed in their tests. And no, InnoDB support is
not built into that 3.23.57 install.

There is some indication that they will move over to MySQL 4.x eventually
in the not too-distant future, though. But this is just a real-life
example. The hosting service has a good reputation and I'm very happy
with them, so they must be doing something right ...

Upgrading PHP seems to be less complicated. geeklog.info is running on
PHP 5.0.3 since yesterday, only hours after it was released (they let you
choose between PHP 4 and 5 on a per-domain basis).

bye, Dirk


--
http://www.haun-online.de/
http://www.tinyweb.de/


--__--__--

Message: 3
From: "Dirk Haun" <dirk at haun-online.de>
To: <geeklog-devel at lists.geeklog.net>
Subject: Re: [geeklog-devel] Draft of schema for GL2
Date: Fri, 17 Dec 2004 20:54:43 +0100
Organization: Terra Software Systems
Reply-To: geeklog-devel at lists.geeklog.net


>>Do we want an association table between items and categories so items

>>can be in multiple categories?

>>

>>

>Good question. It gives more flexibility...a tad bit more complexity.

>Any objections?


If this would enable stories to be in multiple topics, blocks to be in
multiple topics, and smililar constructs, then our users want it ...

I have to admit I'm not quite sure what you're actually talking about here ;-)

bye, Dirk


--
http://www.haun-online.de/
http://www.macosx-faq.de/


--__--__--

Message: 4
Date: Fri, 17 Dec 2004 15:15:17 -0600
From: Tony Bibbs <tony at tonybibbs.com>
To: geeklog-devel at lists.geeklog.net
Subject: Re: [geeklog-devel] InnoDB
Reply-To: geeklog-devel at lists.geeklog.net

Gotcha. Point well taken. Glad the INNODB issue isn't really an issue
since the MySQL folks were proactive enough to simply convert them to
MyISAM.

--Tony

Dirk Haun wrote:


>(trying to catch up with all the posts here ...)

>

>

>

>>I think eventually ISP's will get their act together and start

>>supporting versions of MySQL that support INNODB (why that wouldn't be

>>the default table type moving forward is beyond me).

>>

>>

>

>My hosting service still uses MySQL 3.23.57. They say they're not happy

>with how MySQL 4.0.x performed in their tests. And no, InnoDB support is

>not built into that 3.23.57 install.

>

>There is some indication that they will move over to MySQL 4.x eventually

>in the not too-distant future, though. But this is just a real-life

>example. The hosting service has a good reputation and I'm very happy

>with them, so they must be doing something right ...

>

>Upgrading PHP seems to be less complicated. geeklog.info is running on

>PHP 5.0.3 since yesterday, only hours after it was released (they let you

>choose between PHP 4 and 5 on a per-domain basis).

>

>bye, Dirk

>

>

>

>



--__--__--

Message: 5
Date: Fri, 17 Dec 2004 15:18:36 -0600
From: Tony Bibbs <tony at tonybibbs.com>
To: geeklog-devel at lists.geeklog.net
Subject: Re: [geeklog-devel] Draft of schema for GL2
Reply-To: geeklog-devel at lists.geeklog.net

Lol, well this is exactly that point. Items are the generic abstraction
of 'things' in GL2 (blocks, stories, links, etc). So, to be clear we
are allowing the article plugin, for example, to have a story tied to
more than one topic in 1.3.10 terminology.

--Tony

Dirk Haun wrote:


>>>Do we want an association table between items and categories so items

>>>can be in multiple categories?

>>>

>>>

>>>

>>>

>>Good question. It gives more flexibility...a tad bit more complexity.

>>Any objections?

>>

>>

>

>If this would enable stories to be in multiple topics, blocks to be in

>multiple topics, and smililar constructs, then our users want it ...

>

>I have to admit I'm not quite sure what you're actually talking about here ;-)

>

>bye, Dirk

>

>

>

>



--__--__--

Message: 6
Date: Fri, 17 Dec 2004 15:35:08 -0600
From: Tony Bibbs <tony at tonybibbs.com>
To: geeklog-devel at lists.geeklog.net
Subject: Re: [geeklog-devel] Draft of schema for GL2
Reply-To: geeklog-devel at lists.geeklog.net

Ok, I've attached the latest schema.

My next question is do we need to worry about the potential size of the
gl2_item table from a performance view point?

I just did some preliminary counts on key tables for Iowa Outdoors and I
would have in the neighborhood of 150,000 records in the item table. So
extrapolate that out to, say a Groklaw, I think you could get well into
the millions of records.

I don't think it's the number of rows in the database that bothers me as
much as doing the joins to all the plugin-specific one-to-one item
tables to the main item table at the same time.

Someone with a real DBA mindset needs to make sure I'm not going off my
rocker.

--Tony

Dirk Haun wrote:


>>>Do we want an association table between items and categories so items

>>>can be in multiple categories?

>>>

>>>

>>>

>>>

>>Good question. It gives more flexibility...a tad bit more complexity.

>>Any objections?

>>

>>

>

>If this would enable stories to be in multiple topics, blocks to be in

>multiple topics, and smililar constructs, then our users want it ...

>

>I have to admit I'm not quite sure what you're actually talking about here ;-)

>

>bye, Dirk

>

>

>

>



--__--__--

Message: 7
Date: Fri, 17 Dec 2004 15:39:41 -0600
From: Tony Bibbs <tony at tonybibbs.com>
To: geeklog-devel at lists.geeklog.net
Subject: Re: [geeklog-devel] Draft of schema for GL2
Reply-To: geeklog-devel at lists.geeklog.net

This is a multi-part message in MIME format.
--------------050702070008030600040506
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

(sigh) it's attached.

Tony Bibbs wrote:


> Ok, I've attached the latest schema.

>

> My next question is do we need to worry about the potential size of

> the gl2_item table from a performance view point?

>

> I just did some preliminary counts on key tables for Iowa Outdoors and

> I would have in the neighborhood of 150,000 records in the item

> table. So extrapolate that out to, say a Groklaw, I think you could

> get well into the millions of records.

>

> I don't think it's the number of rows in the database that bothers me

> as much as doing the joins to all the plugin-specific one-to-one item

> tables to the main item table at the same time.

>

> Someone with a real DBA mindset needs to make sure I'm not going off

> my rocker.

>

> --Tony

>

> Dirk Haun wrote:

>

>>>> Do we want an association table between items and categories so items

>>>> can be in multiple categories?

>>>>

>>>>

>>>>

>>>

>>> Good question. It gives more flexibility...a tad bit more

>>> complexity. Any objections?

>>>

>>

>>

>> If this would enable stories to be in multiple topics, blocks to be in

>> multiple topics, and smililar constructs, then our users want it ...

>>

>> I have to admit I'm not quite sure what you're actually talking about

>> here ;-)

>>

>> bye, Dirk

>>

>>

>>

>>

>

> _______________________________________________

> geeklog-devel mailing list

> geeklog-devel at lists.geeklog.net

> http://lists.geeklog.net/listinfo/geeklog-devel




--------------050702070008030600040506
Content-Type: text/plain;
name="create.sql"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="create.sql"

CREATE TABLE gl2_list_of_values (
lov_id int unsigned NOT NULL auto_increment,
group_name varchar(50) NOT NULL,
short_name varchar(50) NOT NULL,
description varchar(128),
enabled tinyint NOT NULL DEFAULT 1,
sort_order mediumint NOT NULL DEFAULT '0',
PRIMARY KEY (lov_id),
INDEX (group_name),
INDEX (short_name),
INDEX (enabled)
) TYPE=INNODB;

CREATE TABLE gl2_plugin (
plugin_id int unsigned NOT NULL auto_increment,
plugin_name varchar(50) NOT NULL,
version varchar(20) NOT NULL,
homepage varchar(255) NOT NULL,
enabled tinyint unsigned NOT NULL DEFAULT 1,
PRIMARY KEY(plugin_id),
INDEX(plugin_name),
INDEX(enabled)
) TYPE=INNODB;

CREATE TABLE gl2_action (
action_id int unsigned NOT NULL auto_increment,
plugin_id int unsigned,
action_name varchar(50) NOT NULL,
description varchar (255) NOT NULL,
PRIMARY KEY(action_id),
INDEX (plugin_id),
FOREIGN KEY (plugin_id) REFERENCES gl2_plugin(plugin_id),
INDEX(action_name)
) TYPE=INNODB;

CREATE TABLE gl2_actionListener (
action_id int unsigned NOT NULL,
plugin_id int unsigned NOT NULL,
PRIMARY KEY(action_id, plugin_id),
INDEX (action_id),
FOREIGN KEY (action_id) REFERENCES gl2_action(action_id),
INDEX (plugin_id),
FOREIGN KEY (plugin_id) REFERENCES gl2_plugin(plugin_id)
) TYPE=INNODB;

CREATE TABLE gl2_timezone (
timezone_id mediumint unsigned NOT NULL auto_increment,
code char(3) NOT NULL,
offset int NOT NULL,
description varchar(128),
PRIMARY KEY(zone_id),
INDEX (code)
) TYPE=INNODB;

CREATE TABLE gl2_user (
user_id int unsigned NOT NULL auto_increment,
registration_date datetime NOT NULL,
profile_views mediumint unsigned NOT NULL DEFAULT 0,
items_per_page tinyint unsigned NOT NULL DEFAULT 10,
language_id int unsigned NOT NULL,
timezone_id mediumint unsigned NOT NULL,
user_name varchar(50) NOT NULL,
password varchar(35) NOT NULL,
enabled tinyint unsigned NOT NULL,
email VARCHAR(128) NOT NULL,
comment_mode_id int unsigned NOT NULL,
comment_order_id int unsigned NOT NULL,
comment_limit tinyint unsigned NOT NULL default '0',
cookie_timeout int unsigned NOT NULL,
locale varchar(3),
date_format_id int unsigned NOT NULL,
blocks_enabled tinyint unsigned DEFAULT 1,
signature varchar(128),
biography text,
first_name varchar(50),
last_name varchar(50),
homepage varchar(255),
PRIMARY KEY(user_id),
INDEX (user_name),
INDEX (enabled),
INDEX (email),
INDEX (comment_mode_id),
FOREIGN KEY (comment_mode_id) REFERENCES gl2_list_of_values(lov_id),
INDEX (comment_order_id),
FOREIGN KEY (comment_order_id) REFERENCES gl2_list_of_values(lov_id),
INDEX (date_format_id),
FOREIGN KEY (date_format_id) REFERENCES gl2_list_of_values(lov_id),
INDEX (timezone_id) REFERENCES gl2_timezone(timezone_id)
) TYPE=INNODB;

CREATE TABLE gl2_group (
group_id int unsigned NOT NULL auto_increment,
group_name varchar(50) NOT NULL,
description varchar(255) NOT NULL,
PRIMARY KEY (group_id)
) TYPE=INNODB;

CREATE TABLE gl2_privilege (
code varchar(30) NOT NULL,
description varchar(255) NOT NULL,
PRIMARY KEY(code)
) TYPE=INNODB;

CREATE TABLE gl2_privilege_access (
code varchar(30) NOT NULL,
user_id int unsigned,
group_id int unsigned,
INDEX(code),
INDEX (user_id),
FOREIGN KEY(user_id) REFERENCES gl2_user(user_id),
INDEX (group_id),
FOREIGN KEY(group_id) REFERENCES gl2_group(group_id)
) TYPE=INNODB;

CREATE TABLE gl2_group_assignment (
main_group_id int unsigned NOT NULL,
assigned_user_id int unsigned,
assigned_group_id int unsigned,
INDEX(main_group_id),
FOREIGN KEY(main_group_id) REFERENCES gl2_group(group_id),
INDEX(assigned_user_id),
FOREIGN KEY(assigned_user_id) REFERENCES gl2_user(user_id),
INDEX(assigned_group_id),
FOREIGN KEY(assigned_group_id) REFERENCES gl2_group(group_id)
) TYPE=INNODB;

CREATE TABLE gl2_item (
item_id int unsigned NOT NULL auto_increment,
type_id int unsigned NOT NULL,
user_id int unsigned NOT NULL,
enabled tinyint unsigned NOT NULL DEFAULT 1,
date_created datetime NOT NULL,
num_views mediumint unsigned NOT NULL DEFAULT 0,
state_id int unsigned NOT NULL,
num_emails mediumint unsigned NOT NULL DEFAULT 0,
num_ratings mediumint unsigned NOT NULL DEFAULT 0,
rating_sum int unsigned NOT NULL DEFAULT 0,
expiration_date datetime DEFAULT NULL,
left_index mediumint unsigned NOT NULL,
right_index mediumint unsigned NOT NULL,
INDEX (left_index),
INDEX (right_index),
PRIMARY KEY(item_id),
INDEX (type_id),
FOREIGN KEY(type_id) REFERENCES gl2_list_of_values(lov_id),
INDEX (user_id),
FOREIGN KEY(user_id) REFERENCES gl2_user(user_id),
INDEX (state_id),
FOREIGN KEY(state_id) REFERENCES gl2_list_of_values(lov_id)
) TYPE=INNODB;

CREATE TABLE gl2_category (
category_id int unsigned NOT NULL,
catalog_id int unsigned NOT NULL,
category_name varchar(50) NOT NULL,
image_url VARCHAR(255) DEFAULT 'NULL',
sort_num tinyint unsigned DEFAULT NULL,
enabled tinyint unsigned NOT NULL DEFAULT 1,
PRIMARY KEY(category_id),
FOREIGN KEY(category_id) REFERENCES gl2_item(item_id),
INDEX (catalog_id),
FOREIGN KEY (catalog_id) REFERENCES gl2_list_of_values(lov_id),
INDEX (enabled)
) TYPE=INNODB;

CREATE TABLE gl2_item_category (
item_id int unsigned NOT NULL,
category_id int unsigned NOT NULL,
INDEX (item_id),
INDEX (category_id),
PRIMARY KEY (item_id,category_id),
FOREIGN KEY(item_id) REFERENCES gl2_item(item_id),
INDEX (category_id),
FOREIGN KEY(category_id) REFERENCES gl2_category(category_id)
) TYPE=INNODB;

CREATE TABLE gl2_item_acl (
acl_id int unsigned NOT NULL auto_increment,
item_id int unsigned NOT NULL,
user_id int unsigned,
group_id int unsigned,
rights smallint unsigned NOT NULL,
PRIMARY KEY(acl_id),
INDEX (item_id),
FOREIGN KEY(item_id) REFERENCES gl2_item(item_id),
INDEX (user_id),
FOREIGN KEY(user_id) REFERENCES gl2_user(user_id),
INDEX (group_id),
FOREIGN KEY(group_id) REFERENCES gl2_group(group_id)
) TYPE=INNODB;

CREATE TABLE gl2_comment (
comment_id int unsigned NOT NULL auto_increment,
item_id int unsigned NOT NULL,
subject varchar(50) NOT NULL,
comment_text text NOT NULL,
left_index mediumint unsigned NOT NULL,
right_index mediumint unsigned NOT NULL,
ip_address varchar(11) NOT NULL,
PRIMARY KEY(comment_id),
INDEX (item_id),
FOREIGN KEY(item_id) REFERENCES gl2_item(item_id),
INDEX (left_index),
INDEX (right_index)
) TYPE=INNODB;

CREATE TABLE gl2_block (
block_id int unsigned NOT NULL,
name varchar(50) NOT NULL,
title varchar(50) NOT NULL,
is_configurable tinyint unsigned NOT NULL DEFAULT 0,
is_collapsable tinyint unsigned NOT NULL DEFAULT 0,
is_undockable tinyint unsigned NOT NULL DEFAULT 0,
type_id int unsigned NOT NULL,
location_id int unsigned,
rdf_url varchar(255),
last_rdf_update datetime,
function_name varchar(50),
content text,
sort_num tinyint unsigned,
PRIMARY KEY(block_id),
FOREIGN KEY(block_id) REFERENCES gl2_item(item_id),
INDEX (location_id),
FOREIGN KEY(location_id) REFERENCES gl2_list_of_values(lov_id),
INDEX (type_id),
FOREIGN KEY(type_id) REFERENCES gl2_list_of_values(lov_id),
INDEX(sort_num)
) TYPE=INNODB;

CREATE TABLE gl2_user_block (
block_id int unsigned NOT NULL,
user_id int unsigned NOT NULL,
state_id int unsigned NOT NULL,
location_id int unsigned NOT NULL,
sort_order tinyint unsigned NOT NULL,
INDEX (block_id),
INDEX (user_id),
PRIMARY KEY(block_id, user_id),
FOREIGN KEY(block_id) REFERENCES gl2_block(block_id),
INDEX (user_id),
FOREIGN KEY(user_id) REFERENCES gl2_user(user_id),
INDEX (location_id),
FOREIGN KEY(location_id) REFERENCES gl2_list_of_values(lov_id)
) TYPE=INNODB;
--------------050702070008030600040506--

--__--__--

Message: 8
Date: Fri, 17 Dec 2004 16:51:46 -0500
From: Vincent Furia <vfuria at gmail.com>
To: Geeklog Devel <geeklog-devel at lists.geeklog.net>
Subject: [geeklog-devel] GL2 License
Reply-To: geeklog-devel at lists.geeklog.net

We should decide on a license now, before we get into any serious
coding (I know, too late for Tony). I'd like to see us use the LGPL,
assuming there is no conflict with using the LGPL with PHP licensed
code (I don't think there is one). Plugins of course could be
licensed however the developer see fits.

Of course if no one else wants to go the LGPL route I'd accept a PHP
style license. Other licenses will be considered on a case by case
basis.

-Vinny

--__--__--

Message: 9
Date: Fri, 17 Dec 2004 16:57:45 -0500
From: Tom Willett <tomw at pigstye.net>
To: "Geeklog-Devel at Lists.Geeklog.Net" <geeklog-devel at lists.geeklog.net>
Subject: [geeklog-devel] PHP Vulns
Reply-To: geeklog-devel at lists.geeklog.net

Looking at the latest php vulnerabilities

http://www.hardened-php.net/advisories/012004.txt

It looks like the code in Geeklog proper is OK but pear distributed with
Geekloog and magpierss (used in spamx) use some of the vulnerable functions.

At least Geeklog was not listed as a vulnerable script like:

- phpBB2
- Invision Board
- vBulletin
- Woltlab Burning Board 2.x
- Serendipity Weblog
- phpAds(New)

were.

--

Tom Willett
tomw at pigstye.net


--__--__--

Message: 10
Date: Fri, 17 Dec 2004 16:01:29 -0600
From: Tony Bibbs <tony at tonybibbs.com>
To: geeklog-devel at lists.geeklog.net
Subject: Re: [geeklog-devel] GL2 License
Reply-To: geeklog-devel at lists.geeklog.net

I say dual license. This would force us to take all community based
contributions and rewrite them into GL2 (ala MySQL) but it gives us
flexiblity. The only thing I want to prevent is ISP's leeching from us
by offering GL2 as a service offering and not giving anything back. I'm
not saying they have to give money (which would be nice) but hosting
(like pair does now) or some other value add for the project would be nice.

Just my two cents.

--Tony

Vincent Furia wrote:


>We should decide on a license now, before we get into any serious

>coding (I know, too late for Tony). I'd like to see us use the LGPL,

>assuming there is no conflict with using the LGPL with PHP licensed

>code (I don't think there is one). Plugins of course could be

>licensed however the developer see fits.

>

>Of course if no one else wants to go the LGPL route I'd accept a PHP

>style license. Other licenses will be considered on a case by case

>basis.

>

>-Vinny

>_______________________________________________

>geeklog-devel mailing list

>geeklog-devel at lists.geeklog.net

>http://lists.geeklog.net/listinfo/geeklog-devel

>

>



--__--__--

Message: 11
From: "Dirk Haun" <dirk at haun-online.de>
To: <geeklog-devel at lists.geeklog.net>
Subject: Re: [geeklog-devel] Article throttle.
Date: Fri, 17 Dec 2004 23:17:56 +0100
Organization: Terra Software Systems
Reply-To: geeklog-devel at lists.geeklog.net

Justin,


>What this does is extremely simple. The owner of the website sets a

>throttle, which is a number of guest users. Once this number is

>reached, any article accessed from an external link or directly

>accessed will display in print mode. This should greatly reduce the

>number of database queries


Sounds interesting.

My suspicion, though, is that in most cases, it's the index page that is
hit by most of the traffic. Especially Slashdot readers are known not to
RTFA :P

Are our friends from Groklaw still around? Niels, Peter?

bye, Dirk


--
http://www.haun-online.de/
http://www.tinyweb.de/



--__--__--

_______________________________________________
geeklog-devel mailing list
geeklog-devel at lists.geeklog.net
http://lists.geeklog.net/listinfo/geeklog-devel


End of geeklog-devel Digest



More information about the geeklog-devtalk mailing list