You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(131) |
Jun
(104) |
Jul
(35) |
Aug
(22) |
Sep
(113) |
Oct
(82) |
Nov
(98) |
Dec
(124) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(75) |
Feb
(18) |
Mar
(44) |
Apr
(59) |
May
(82) |
Jun
(78) |
Jul
(131) |
Aug
(82) |
Sep
(29) |
Oct
(118) |
Nov
(281) |
Dec
(134) |
2004 |
Jan
(116) |
Feb
(247) |
Mar
(159) |
Apr
(133) |
May
(65) |
Jun
(104) |
Jul
(83) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: JT S. <jt...@pl...> - 2004-07-07 03:53:03
|
This is part of the 7.x roadmap, which we have not yet publicly published. I think it's in 7.1, but that's a long way off. What we have planned is a dashboard wobject. The dashboard will have some sort of pluggable component (portlet, widget, gizmo, dashlet, whatever). Each component will serve a different function. Here are some we have planned: stock ticker, rss feed viewer, weather, server monitor, todo list, calculator, discussion agregator (gets data from all the discussions in WebGUI), mini calendar, pop3 watcher, link list, box scores (sports scores). When in admin mode the the administrator creates a default state for the dashboard, file drawer (an upload place to store files). When a new user (except visitor, they get the default) browses to the dashboard, a clone of the default is made for them, and they can then add/remove/rearrange to their hearts content. Each component will have three "views": class properties (only admin can set), instance properties (the user sets), and display (the resulting output). The user can also configure how many columns the dashboard has, the width of each columan, and the organization of the dashlets in each column. On Tue, 06 Jul 2004 22:37:13 -0400 "Roy Johnson" <RJo...@sp...> wrote: >I would like to develop a "My Home" page for WebGUI. I looked at the Roadmap for 6.x >and did not see this on the list. Basically what I'm referring to is a page that is >unique to every registered user in WebGUI on which they can do everything one could do >when adding a normal page in WebGUI. > >This would basically be like a sandbox for each user to put things (content) that they >found useful. In our company, we use WebGUI to run our corporate intranet so this >would be extremely useful to us. > >I'm thinking it could work something like this: > >1) User logs in and within the navigation system there is automatically a link to "My >Home" or something similar. > >2) When the user clicks on this page they are free to do everything they could do on a >regular page that was added in WebGUI. The difference would be that the content on the >page would be unique to their login. > >Has this concept/idea been explored before? Can anyone think of a way to implement >this functionality within WebGUI as it exists now? > >If anyone has any ideas on ways to approach this or would be interested in working on >it with me please let me know. I'm fairly new to the WebGUI API but am willing to >devote a large amount of time to the project. > >Comments/Feedback/Flames are welcomed {:-) Thanks! > >Roy > > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - >digital self defense, top technical experts, no vendor pitches, >unmatched networking opportunities. Visit www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: Roy J. <RJo...@sp...> - 2004-07-07 02:37:31
|
I would like to develop a "My Home" page for WebGUI. I looked at the = Roadmap for 6.x and did not see this on the list. Basically what I'm = referring to is a page that is unique to every registered user in WebGUI = on which they can do everything one could do when adding a normal page in = WebGUI. This would basically be like a sandbox for each user to put things = (content) that they found useful. In our company, we use WebGUI to run = our corporate intranet so this would be extremely useful to us. I'm thinking it could work something like this: 1) User logs in and within the navigation system there is automatically a = link to "My Home" or something similar. 2) When the user clicks on this page they are free to do everything they = could do on a regular page that was added in WebGUI. The difference would = be that the content on the page would be unique to their login. Has this concept/idea been explored before? Can anyone think of a way to = implement this functionality within WebGUI as it exists now? If anyone has any ideas on ways to approach this or would be interested in = working on it with me please let me know. I'm fairly new to the WebGUI = API but am willing to devote a large amount of time to the project. =20 Comments/Feedback/Flames are welcomed {:-) Thanks! Roy |
From: JT S. <jt...@pl...> - 2004-07-06 21:48:35
|
BTW. We strongly encourage you to give your code back to the community, because: 1) You can be critiqued, and become a better coder. 2) You can save someone else the work you've done. 3) You can help pay the community back for giving you everything that WebGUI is already. 4) Someone else may enhance your code and then you get more features. 5) Someone else can learn from your code, and what you learned from us. If you choose to give your code back, see this page: http://www.plainblack.com/user_contributions On Tue, 06 Jul 2004 17:28:16 -0400 "Roy Johnson" <RJo...@sp...> wrote: >Hi JT, > >You understood me perfectly. I was unaware of the 'in' keyword for MySQL. The trick >for returning the template vars as the column names also greatly simplifies the code I >have presently. I can't thank you enough for your patience and help with this. I'm >just starting out with Perl and the WebGUI API and obviously have a lot to learn. > >Thanks again, > >Roy > >>>> jt...@pl... 07/06/04 04:12PM >>> >Pardon me if I misunderstood what you're trying to do. > >Your query only returns one row of data because you're where clause includes the >primary >key, which by definition will only give you one row of data. If you want to get back >all >the rows that match the primary keys in that array try something like: > >$sql = "select...from...where priKey in (".join(",",@PKlist).")"; > > >Again, if I misunderstood, I'm sorry about that. If I haven't, the join trick should >work nicely. > >Also, another neat trick (if you don't mind your template variables being named your >field names) is that you can dump the paginator directly into your template variables >like this: > >$var{data_loop} = $p->getPageData; # this creates your loop >$p->appendTemplateVars(\%var); # this adds your paginator variables > >NOTE: Requires 6.0 or higher. > > > >On Tue, 06 Jul 2004 16:43:09 -0400 > "Roy Johnson" <RJo...@sp...> wrote: >>Greetings, >> >>I'm slowly learning the WebGUI API and am currently developing a macro for our company >>and have a few questions. Before I ask my question, I'm basing most of my code and >>assumptions on the SQLReports Wobject. >> >>Basically, I have an array with a single column of values that represent primary key >>field values in a table. I'm executing the query once for each element of the array >>and returning multiple columns from the query using the >>WebGUI::Paginator->SetDataByQuery() method. >> >>ex: >> >>foreach $primaryKey (@PrimaryKeyList) { >> >> $sql = "Select value1, value2, From tblBlah Where primaryKey=$primaryKey"; >> >> $page = WebGUI::Paginator->new($url); >> $err = $page->setDataByQuery($query, $dbh); >> $rowData = $page->getPageData(); >> >> #Code to create hashes necessary for returning Template vars >> >>} >> >>The code that I have is working but I'm not sure that I'm approaching the problem >>correctly. Because my query will never return more than one row during a single >>itteration of the foreach loop (because the where clause is based on a primary key >>field) it seems this is the wrong approach to take. >> >>The problem is that I must execute the query once for each value in my array so the >>cummulative result (what is sent to the macro in the form of template vars) almost >>always has more than one row of information. So my template for the macro looks >>something like this: >> >><tmpl_loop rows_loop> >><tmpl_var row.field.value1.value><br/> >><tmpl_var row.field.value2.value> >></tmpl_loop> >> >>In case anyone is wondering why I didn't write my SQL statement better to avoid the >>need for an array of the necessary primary key values, it's because we are not running >>MySQL 4.1 and don't have the support for subselects and the 'having' keyword. If we >>were, I could accomplish what I'm doing without the need for the array of primary key >>values. >> >>Sorry for the long post. If anyone could nudge me in the right direction for this type >>of programming challenge I would GREATLY appreciate it. >> >>Thanks, >> >>Roy Johnson >> >> >> >>------------------------------------------------------- >>This SF.Net email sponsored by Black Hat Briefings & Training. >>Attend Black Hat Briefings & Training, Las Vegas July 24-29 - >>digital self defense, top technical experts, no vendor pitches, >>unmatched networking opportunities. Visit www.blackhat.com >>_______________________________________________ >>Pbwebgui-development mailing list >>Pbw...@li... >>https://lists.sourceforge.net/lists/listinfo/pbwebgui-development > > >JT ~ Plain Black > >Create like a god, command like a king, work like a slave. > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - >digital self defense, top technical experts, no vendor pitches, >unmatched networking opportunities. Visit www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - >digital self defense, top technical experts, no vendor pitches, >unmatched networking opportunities. Visit www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: JT S. <jt...@pl...> - 2004-07-06 21:45:18
|
No problem. BTW, if you don't want to use the IN keyword you could do it the more long winded way: $sql = "select...from...where pk=".join("or pk=",@pklist)." order by blah"; On Tue, 06 Jul 2004 17:28:16 -0400 "Roy Johnson" <RJo...@sp...> wrote: >Hi JT, > >You understood me perfectly. I was unaware of the 'in' keyword for MySQL. The trick >for returning the template vars as the column names also greatly simplifies the code I >have presently. I can't thank you enough for your patience and help with this. I'm >just starting out with Perl and the WebGUI API and obviously have a lot to learn. > >Thanks again, > >Roy > >>>> jt...@pl... 07/06/04 04:12PM >>> >Pardon me if I misunderstood what you're trying to do. > >Your query only returns one row of data because you're where clause includes the >primary >key, which by definition will only give you one row of data. If you want to get back >all >the rows that match the primary keys in that array try something like: > >$sql = "select...from...where priKey in (".join(",",@PKlist).")"; > > >Again, if I misunderstood, I'm sorry about that. If I haven't, the join trick should >work nicely. > >Also, another neat trick (if you don't mind your template variables being named your >field names) is that you can dump the paginator directly into your template variables >like this: > >$var{data_loop} = $p->getPageData; # this creates your loop >$p->appendTemplateVars(\%var); # this adds your paginator variables > >NOTE: Requires 6.0 or higher. > > > >On Tue, 06 Jul 2004 16:43:09 -0400 > "Roy Johnson" <RJo...@sp...> wrote: >>Greetings, >> >>I'm slowly learning the WebGUI API and am currently developing a macro for our company >>and have a few questions. Before I ask my question, I'm basing most of my code and >>assumptions on the SQLReports Wobject. >> >>Basically, I have an array with a single column of values that represent primary key >>field values in a table. I'm executing the query once for each element of the array >>and returning multiple columns from the query using the >>WebGUI::Paginator->SetDataByQuery() method. >> >>ex: >> >>foreach $primaryKey (@PrimaryKeyList) { >> >> $sql = "Select value1, value2, From tblBlah Where primaryKey=$primaryKey"; >> >> $page = WebGUI::Paginator->new($url); >> $err = $page->setDataByQuery($query, $dbh); >> $rowData = $page->getPageData(); >> >> #Code to create hashes necessary for returning Template vars >> >>} >> >>The code that I have is working but I'm not sure that I'm approaching the problem >>correctly. Because my query will never return more than one row during a single >>itteration of the foreach loop (because the where clause is based on a primary key >>field) it seems this is the wrong approach to take. >> >>The problem is that I must execute the query once for each value in my array so the >>cummulative result (what is sent to the macro in the form of template vars) almost >>always has more than one row of information. So my template for the macro looks >>something like this: >> >><tmpl_loop rows_loop> >><tmpl_var row.field.value1.value><br/> >><tmpl_var row.field.value2.value> >></tmpl_loop> >> >>In case anyone is wondering why I didn't write my SQL statement better to avoid the >>need for an array of the necessary primary key values, it's because we are not running >>MySQL 4.1 and don't have the support for subselects and the 'having' keyword. If we >>were, I could accomplish what I'm doing without the need for the array of primary key >>values. >> >>Sorry for the long post. If anyone could nudge me in the right direction for this type >>of programming challenge I would GREATLY appreciate it. >> >>Thanks, >> >>Roy Johnson >> >> >> >>------------------------------------------------------- >>This SF.Net email sponsored by Black Hat Briefings & Training. >>Attend Black Hat Briefings & Training, Las Vegas July 24-29 - >>digital self defense, top technical experts, no vendor pitches, >>unmatched networking opportunities. Visit www.blackhat.com >>_______________________________________________ >>Pbwebgui-development mailing list >>Pbw...@li... >>https://lists.sourceforge.net/lists/listinfo/pbwebgui-development > > >JT ~ Plain Black > >Create like a god, command like a king, work like a slave. > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - >digital self defense, top technical experts, no vendor pitches, >unmatched networking opportunities. Visit www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - >digital self defense, top technical experts, no vendor pitches, >unmatched networking opportunities. Visit www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: Roy J. <RJo...@sp...> - 2004-07-06 21:28:34
|
Hi JT, You understood me perfectly. I was unaware of the 'in' keyword for MySQL. = The trick for returning the template vars as the column names also = greatly simplifies the code I have presently. I can't thank you enough = for your patience and help with this. I'm just starting out with Perl and = the WebGUI API and obviously have a lot to learn. Thanks again, Roy >>> jt...@pl... 07/06/04 04:12PM >>> Pardon me if I misunderstood what you're trying to do. Your query only returns one row of data because you're where clause = includes the primary=20 key, which by definition will only give you one row of data. If you want = to get back all=20 the rows that match the primary keys in that array try something like: $sql =3D "select...from...where priKey in (".join(",",@PKlist).")"; Again, if I misunderstood, I'm sorry about that. If I haven't, the join = trick should=20 work nicely. Also, another neat trick (if you don't mind your template variables being = named your=20 field names) is that you can dump the paginator directly into your = template variables=20 like this: $var{data_loop} =3D $p->getPageData; # this creates your loop $p->appendTemplateVars(\%var); # this adds your paginator variables NOTE: Requires 6.0 or higher. On Tue, 06 Jul 2004 16:43:09 -0400 "Roy Johnson" <RJo...@sp...> wrote: >Greetings, > >I'm slowly learning the WebGUI API and am currently developing a macro = for our company=20 >and have a few questions. Before I ask my question, I'm basing most of = my code and=20 >assumptions on the SQLReports Wobject. > >Basically, I have an array with a single column of values that represent = primary key=20 >field values in a table. I'm executing the query once for each element = of the array=20 >and returning multiple columns from the query using the=20 >WebGUI::Paginator->SetDataByQuery() method. > >ex: > >foreach $primaryKey (@PrimaryKeyList) { > > $sql =3D "Select value1, value2, From tblBlah Where primaryKey=3D$primar= yKey"; > > $page =3D WebGUI::Paginator->new($url); > $err =3D $page->setDataByQuery($query, $dbh); > $rowData =3D $page->getPageData(); > > #Code to create hashes necessary for returning Template vars > >} > >The code that I have is working but I'm not sure that I'm approaching the = problem=20 >correctly. Because my query will never return more than one row during = a single=20 >itteration of the foreach loop (because the where clause is based on a = primary key=20 >field) it seems this is the wrong approach to take. =20 > >The problem is that I must execute the query once for each value in my = array so the=20 >cummulative result (what is sent to the macro in the form of template = vars) almost=20 >always has more than one row of information. So my template for the = macro looks=20 >something like this: > ><tmpl_loop rows_loop> ><tmpl_var row.field.value1.value><br/> ><tmpl_var row.field.value2.value> ></tmpl_loop> > >In case anyone is wondering why I didn't write my SQL statement better to = avoid the=20 >need for an array of the necessary primary key values, it's because we = are not running=20 >MySQL 4.1 and don't have the support for subselects and the 'having' = keyword. If we=20 >were, I could accomplish what I'm doing without the need for the array of = primary key=20 >values. > >Sorry for the long post. If anyone could nudge me in the right direction = for this type=20 >of programming challenge I would GREATLY appreciate it. > >Thanks, > >Roy Johnson > > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 -=20 >digital self defense, top technical experts, no vendor pitches,=20 >unmatched networking opportunities. Visit www.blackhat.com=20 >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li...=20 >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development=20 JT ~ Plain Black Create like a god, command like a king, work like a slave.=20 ------------------------------------------------------- This SF.Net email sponsored by Black Hat Briefings & Training. Attend Black Hat Briefings & Training, Las Vegas July 24-29 -=20 digital self defense, top technical experts, no vendor pitches,=20 unmatched networking opportunities. Visit www.blackhat.com=20 _______________________________________________ Pbwebgui-development mailing list Pbw...@li...=20 https://lists.sourceforge.net/lists/listinfo/pbwebgui-development |
From: JT S. <jt...@pl...> - 2004-07-06 20:58:33
|
Pardon me if I misunderstood what you're trying to do. Your query only returns one row of data because you're where clause includes the primary key, which by definition will only give you one row of data. If you want to get back all the rows that match the primary keys in that array try something like: $sql = "select...from...where priKey in (".join(",",@PKlist).")"; Again, if I misunderstood, I'm sorry about that. If I haven't, the join trick should work nicely. Also, another neat trick (if you don't mind your template variables being named your field names) is that you can dump the paginator directly into your template variables like this: $var{data_loop} = $p->getPageData; # this creates your loop $p->appendTemplateVars(\%var); # this adds your paginator variables NOTE: Requires 6.0 or higher. On Tue, 06 Jul 2004 16:43:09 -0400 "Roy Johnson" <RJo...@sp...> wrote: >Greetings, > >I'm slowly learning the WebGUI API and am currently developing a macro for our company >and have a few questions. Before I ask my question, I'm basing most of my code and >assumptions on the SQLReports Wobject. > >Basically, I have an array with a single column of values that represent primary key >field values in a table. I'm executing the query once for each element of the array >and returning multiple columns from the query using the >WebGUI::Paginator->SetDataByQuery() method. > >ex: > >foreach $primaryKey (@PrimaryKeyList) { > > $sql = "Select value1, value2, From tblBlah Where primaryKey=$primaryKey"; > > $page = WebGUI::Paginator->new($url); > $err = $page->setDataByQuery($query, $dbh); > $rowData = $page->getPageData(); > > #Code to create hashes necessary for returning Template vars > >} > >The code that I have is working but I'm not sure that I'm approaching the problem >correctly. Because my query will never return more than one row during a single >itteration of the foreach loop (because the where clause is based on a primary key >field) it seems this is the wrong approach to take. > >The problem is that I must execute the query once for each value in my array so the >cummulative result (what is sent to the macro in the form of template vars) almost >always has more than one row of information. So my template for the macro looks >something like this: > ><tmpl_loop rows_loop> ><tmpl_var row.field.value1.value><br/> ><tmpl_var row.field.value2.value> ></tmpl_loop> > >In case anyone is wondering why I didn't write my SQL statement better to avoid the >need for an array of the necessary primary key values, it's because we are not running >MySQL 4.1 and don't have the support for subselects and the 'having' keyword. If we >were, I could accomplish what I'm doing without the need for the array of primary key >values. > >Sorry for the long post. If anyone could nudge me in the right direction for this type >of programming challenge I would GREATLY appreciate it. > >Thanks, > >Roy Johnson > > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - >digital self defense, top technical experts, no vendor pitches, >unmatched networking opportunities. Visit www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: Roy J. <RJo...@sp...> - 2004-07-06 20:43:21
|
Greetings, I'm slowly learning the WebGUI API and am currently developing a macro for = our company and have a few questions. Before I ask my question, I'm = basing most of my code and assumptions on the SQLReports Wobject. Basically, I have an array with a single column of values that represent = primary key field values in a table. I'm executing the query once for = each element of the array and returning multiple columns from the query = using the WebGUI::Paginator->SetDataByQuery() method. ex: foreach $primaryKey (@PrimaryKeyList) { $sql =3D "Select value1, value2, From tblBlah Where primaryKey=3D$primary= Key"; $page =3D WebGUI::Paginator->new($url); $err =3D $page->setDataByQuery($query, $dbh); $rowData =3D $page->getPageData(); #Code to create hashes necessary for returning Template vars } The code that I have is working but I'm not sure that I'm approaching the = problem correctly. Because my query will never return more than one row = during a single itteration of the foreach loop (because the where clause = is based on a primary key field) it seems this is the wrong approach to = take. =20 The problem is that I must execute the query once for each value in my = array so the cummulative result (what is sent to the macro in the form of = template vars) almost always has more than one row of information. So my = template for the macro looks something like this: <tmpl_loop rows_loop> <tmpl_var row.field.value1.value><br/> <tmpl_var row.field.value2.value> </tmpl_loop> In case anyone is wondering why I didn't write my SQL statement better to = avoid the need for an array of the necessary primary key values, it's = because we are not running MySQL 4.1 and don't have the support for = subselects and the 'having' keyword. If we were, I could accomplish what = I'm doing without the need for the array of primary key values. Sorry for the long post. If anyone could nudge me in the right direction = for this type of programming challenge I would GREATLY appreciate it. Thanks, Roy Johnson |
From: Martin K. <ma...@pr...> - 2004-07-06 15:40:17
|
Dan Collis Puro wrote: >from Martin, the perl god from Procolix. > > Thanks man, I'm gonna put this on my businesscards ;) Martin |
From: Dan C. P. <dp...@ml...> - 2004-07-06 15:21:14
|
Folks, I released a new version of DBIx::Tree::NestedSet last night, I'm going to be integrating some changes and maybe building in some new methods after getting some additional feedback from Martin, the perl god from Procolix. I'll release again tonight, hopefully. Big changes: Abstracting the RDBMS specific SQL into separate driver classes and writing both MySQL and SQLite drivers. The module works on both RDBMSs perfectly fine. If some champ out there wants to write a PostgreSQL driver (or any other RDBMS) I'd be happy to include it. See: http://search.cpan.org/~djcp/DBIx-Tree-NestedSet-0.11/ -DJCP On Mon, 2004-07-05 at 18:42, Martin Kamerbeek wrote: > Some things didn't go as fast today as I hoped, I still have come a long > way though. The hard stuff has been done. What's left is to actually > integrate the Caching which is pretty trivial, and check if the > WebGUI::Operation::Page ops still work, which seems easy, but you never > know ;) > > Martin > -- *-._.-*^*-._.-*^*-._.-*^*-._.-*^*-._.-*^*-._.-*^*-._.-*^*-._.-* Daniel Collis Puro CTO and Lead Developer, MassLegalServices.org Massachusetts Law Reform Institute 99 Chauncy St., Suite 500 Boston, MA 02111 617-357-0019 ext. 342 dp...@ml... http://www.masslegalservices.org |
From: JT S. <jt...@pl...> - 2004-07-05 23:09:51
|
That should be this saturday for the release.. July 10 On Tue, 06 Jul 2004 00:42:18 +0200 Martin Kamerbeek <ma...@pr...> wrote: >Some things didn't go as fast today as I hoped, I still have come a long way though. >The hard stuff has been done. What's left is to actually integrate the Caching which is >pretty trivial, and check if the WebGUI::Operation::Page ops still work, which seems >easy, but you never know ;) > >Martin > >JT Smith wrote: > >> Awesome. Can't wait to see it. >> >> On Sun, 04 Jul 2004 23:20:56 +0200 >> Martin Kamerbeek <ma...@pr...> wrote: >> >>> Hi, >>> >>> I've been busy with transforming WebGUI::Page to use nested sets. So >>> far so good, I've been extending it quite a lot. It now has a lot of >>> functions to getcertain nodes and subtrees and I can add pages. >>> Finishing it shouldn't be to difficult and transforming >>> WebGUI::Operation::Page shouldn't raise to many problem either. I >>> think the thing is done somewhere tomorrow. >>> >>> Martin >>> >>> >>> >>> >>> ------------------------------------------------------- >>> This SF.Net email sponsored by Black Hat Briefings & Training. >>> Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital >>> self defense, top technical experts, no vendor pitches, unmatched >>> networking opportunities. Visit www.blackhat.com >>> _______________________________________________ >>> Pbwebgui-development mailing list >>> Pbw...@li... >>> https://lists.sourceforge.net/lists/listinfo/pbwebgui-development >> >> >> >> JT ~ Plain Black >> >> Create like a god, command like a king, work like a slave. >> >> ------------------------------------------------------- >> This SF.Net email sponsored by Black Hat Briefings & Training. >> Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital >> self defense, top technical experts, no vendor pitches, unmatched >> networking opportunities. Visit www.blackhat.com >> _______________________________________________ >> Pbwebgui-development mailing list >> Pbw...@li... >> https://lists.sourceforge.net/lists/listinfo/pbwebgui-development > > > > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top >technical experts, no vendor pitches, unmatched networking opportunities. Visit >www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: JT S. <jt...@pl...> - 2004-07-05 23:08:51
|
Cool. I too have come a long way, yet haven't gotten everything done I need to. I'll be doing more tonight, and hopefully working on it all day tommorrow as well. My goal is that we can have a 6.1 release next Saturday. On Tue, 06 Jul 2004 00:42:18 +0200 Martin Kamerbeek <ma...@pr...> wrote: >Some things didn't go as fast today as I hoped, I still have come a long way though. >The hard stuff has been done. What's left is to actually integrate the Caching which is >pretty trivial, and check if the WebGUI::Operation::Page ops still work, which seems >easy, but you never know ;) > >Martin > >JT Smith wrote: > >> Awesome. Can't wait to see it. >> >> On Sun, 04 Jul 2004 23:20:56 +0200 >> Martin Kamerbeek <ma...@pr...> wrote: >> >>> Hi, >>> >>> I've been busy with transforming WebGUI::Page to use nested sets. So >>> far so good, I've been extending it quite a lot. It now has a lot of >>> functions to getcertain nodes and subtrees and I can add pages. >>> Finishing it shouldn't be to difficult and transforming >>> WebGUI::Operation::Page shouldn't raise to many problem either. I >>> think the thing is done somewhere tomorrow. >>> >>> Martin >>> >>> >>> >>> >>> ------------------------------------------------------- >>> This SF.Net email sponsored by Black Hat Briefings & Training. >>> Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital >>> self defense, top technical experts, no vendor pitches, unmatched >>> networking opportunities. Visit www.blackhat.com >>> _______________________________________________ >>> Pbwebgui-development mailing list >>> Pbw...@li... >>> https://lists.sourceforge.net/lists/listinfo/pbwebgui-development >> >> >> >> JT ~ Plain Black >> >> Create like a god, command like a king, work like a slave. >> >> ------------------------------------------------------- >> This SF.Net email sponsored by Black Hat Briefings & Training. >> Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital >> self defense, top technical experts, no vendor pitches, unmatched >> networking opportunities. Visit www.blackhat.com >> _______________________________________________ >> Pbwebgui-development mailing list >> Pbw...@li... >> https://lists.sourceforge.net/lists/listinfo/pbwebgui-development > > > > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top >technical experts, no vendor pitches, unmatched networking opportunities. Visit >www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: Martin K. <ma...@pr...> - 2004-07-05 22:31:53
|
Some things didn't go as fast today as I hoped, I still have come a long way though. The hard stuff has been done. What's left is to actually integrate the Caching which is pretty trivial, and check if the WebGUI::Operation::Page ops still work, which seems easy, but you never know ;) Martin JT Smith wrote: > Awesome. Can't wait to see it. > > On Sun, 04 Jul 2004 23:20:56 +0200 > Martin Kamerbeek <ma...@pr...> wrote: > >> Hi, >> >> I've been busy with transforming WebGUI::Page to use nested sets. So >> far so good, I've been extending it quite a lot. It now has a lot of >> functions to getcertain nodes and subtrees and I can add pages. >> Finishing it shouldn't be to difficult and transforming >> WebGUI::Operation::Page shouldn't raise to many problem either. I >> think the thing is done somewhere tomorrow. >> >> Martin >> >> >> >> >> ------------------------------------------------------- >> This SF.Net email sponsored by Black Hat Briefings & Training. >> Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital >> self defense, top technical experts, no vendor pitches, unmatched >> networking opportunities. Visit www.blackhat.com >> _______________________________________________ >> Pbwebgui-development mailing list >> Pbw...@li... >> https://lists.sourceforge.net/lists/listinfo/pbwebgui-development > > > > JT ~ Plain Black > > Create like a god, command like a king, work like a slave. > > ------------------------------------------------------- > This SF.Net email sponsored by Black Hat Briefings & Training. > Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital > self defense, top technical experts, no vendor pitches, unmatched > networking opportunities. Visit www.blackhat.com > _______________________________________________ > Pbwebgui-development mailing list > Pbw...@li... > https://lists.sourceforge.net/lists/listinfo/pbwebgui-development |
From: JT S. <jt...@pl...> - 2004-07-04 22:51:43
|
Awesome. Can't wait to see it. On Sun, 04 Jul 2004 23:20:56 +0200 Martin Kamerbeek <ma...@pr...> wrote: >Hi, > >I've been busy with transforming WebGUI::Page to use nested sets. So far so good, I've >been extending it quite a lot. It now has a lot of functions to getcertain nodes and >subtrees and I can add pages. Finishing it shouldn't be to difficult and transforming >WebGUI::Operation::Page shouldn't raise to many problem either. I think the thing is >done somewhere tomorrow. > >Martin > > > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top >technical experts, no vendor pitches, unmatched networking opportunities. Visit >www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: Martin K. <ma...@pr...> - 2004-07-04 21:13:08
|
Hi, I've been busy with transforming WebGUI::Page to use nested sets. So far so good, I've been extending it quite a lot. It now has a lot of functions to getcertain nodes and subtrees and I can add pages. Finishing it shouldn't be to difficult and transforming WebGUI::Operation::Page shouldn't raise to many problem either. I think the thing is done somewhere tomorrow. Martin |
From: alan r. <al...@ag...> - 2004-07-03 16:45:09
|
> This message is headed to aritari but might be of interest for > others with CVS commit access as well. > > If you make changes to the database structure, it is sufficent to alter > only the corresponding docs/upgrades/upgrade_x.x.x-x.x.x.sql script. The > create script is generated automagically just before releasing a new > version. > I know this because I've made the same mistake myself once :) Thanks Len, I didn't know that! alan ritari al...@ag... |
From: JT S. <jt...@pl...> - 2004-07-03 16:25:27
|
That's by design. WebGUI does not cache wobject functions other than www_view. You'll note if no func= is specified then process functions doesn't get called. That's when www_view is engaged, and where the cache takes over. On Sat, 03 Jul 2004 18:12:26 +0200 "Len Kranendonk" <le...@pr...> wrote: >It looks to me that when page caching is switched on, the wobjects on a page are still >executed. >See WebGUI.pm, line 153: > if ($useCache) { > $cache = >WebGUI::Cache->new("page_".$session{page}{pageId}."_".$session{user}{userId} ); > $output = $cache->get; > } > my $operationOutput = _processOperations(); > WebGUI::Affiliate::grabReferral(); > my $wobjectOutput = _processFunctions(); > >the _processFunctions() routine (which executes all wobjects for a page) is called >regardless whether caching is switched on or off. >Am I confused or is this a design flaw ? >Len > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top >technical experts, no vendor pitches, unmatched networking opportunities. Visit >www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: Len K. <le...@pr...> - 2004-07-03 16:09:33
|
It looks to me that when page caching is switched on, the wobjects on a page are still executed. See WebGUI.pm, line 153: if ($useCache) { $cache = WebGUI::Cache->new("page_".$session{page}{pageId}."_".$session{user}{userId} ); $output = $cache->get; } my $operationOutput = _processOperations(); WebGUI::Affiliate::grabReferral(); my $wobjectOutput = _processFunctions(); the _processFunctions() routine (which executes all wobjects for a page) is called regardless whether caching is switched on or off. Am I confused or is this a design flaw ? Len |
From: JT S. <jt...@pl...> - 2004-07-03 15:55:01
|
Len's right about not needing to update create.sql. However, Len, when creating your dev environment you should always use previousVersion.sql and then perform the upgrade process to get a working environment. On Sat, 03 Jul 2004 12:09:57 +0200 "Len Kranendonk" <le...@pr...> wrote: >This message is headed to aritari but might be of interest for >others with CVS commit access as well. >If you make changes to the database structure, it is sufficent to alter only the >corresponding docs/upgrades/upgrade_x.x.x-x.x.x.sql script. The create script is >generated automagically just before releasing a new version. >I know this because I've made the same mistake myself once :) >Current create.sql was broken. I've revert it to the penultimate version. >Len > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top >technical experts, no vendor pitches, unmatched networking opportunities. Visit >www.blackhat.com >_______________________________________________ >Pbwebgui-development mailing list >Pbw...@li... >https://lists.sourceforge.net/lists/listinfo/pbwebgui-development JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: JT S. <jt...@pl...> - 2004-07-03 15:53:28
|
>>> Is there a reason to keep the the "forrest" model if we are going for >>> the Nested Set model? >> >> The way pages work in WebGUI force you to use a forrest model. Every >> page-root is actually a seperate tree. Those are bound together with a >> (non-exeistent) node with pageId=0. If you want to drop the forrest >> model, you'll end up having one (existent) 'master' page (ie. only one >> page root) under which alle the other pages are hung. > >Yes, but same result could be achieved with one root. It will also make things easier >when moving nodes. From a performance view, the forrest model is better as it will >lower the number of affected rows when updating. If it helps anything, there's no reason we couldn't put a master root page in the database with an ID of 0 and a parent ID of -1. JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: Len K. <le...@pr...> - 2004-07-03 10:07:11
|
This message is headed to aritari but might be of interest for others with CVS commit access as well. If you make changes to the database structure, it is sufficent to alter only the corresponding docs/upgrades/upgrade_x.x.x-x.x.x.sql script. The create script is generated automagically just before releasing a new version. I know this because I've made the same mistake myself once :) Current create.sql was broken. I've revert it to the penultimate version. Len |
From: Christian H. <ch...@ng...> - 2004-07-02 17:14:12
|
On 2004-07-02, at 12.40, Martin Kamerbeek wrote: [...] > The mesurements for the Nested Set module are not consistent with the=20= > timings i posted earlier on. Please not that these values of the=20 > nested set module are taken without using the get_root method.=20 > Measuring with using get_root brings the timeing for the small tree on=20= > about 3 miliseconds. Thats still a factor 2 difference, but it's only=20= > off by 3 ms. > > The big tree with using get_root, however, has a runtime of 0.050=20 > which still differs an order of magnitude. Someone knows why this is=20= > this way? Try running timethese( 100, ...) or any other number. I'm not sure if=20 that will fix it but it=B4s worth a try. Please also try the attached benchmark and see if you get the same=20 inconsistency. [...] > >> If you don't have the time, I could whip up something by the weekend. > > If something is flawed with my method, please do so. It looks that you are pulling the hole tree, but i could be wrong. [...] >> Is there a reason to keep the the "forrest" model if we are going for=20= >> the Nested Set model? > > The way pages work in WebGUI force you to use a forrest model. Every=20= > page-root is actually a seperate tree. Those are bound together with a=20= > (non-exeistent) node with pageId=3D0. If you want to drop the forrest=20= > model, you'll end up having one (existent) 'master' page (ie. only one=20= > page root) under which alle the other pages are hung. Yes, but same result could be achieved with one root. It will also make=20= things easier when moving nodes. =46rom a performance view, the forrest=20= model is better as it will lower the number of affected rows when=20 updating. >>>> >>>> Depth also comes for free, just count nodes lft between ancestors=20= >>>> lft and rgt. >>> >>> >>> Which would take a traversal of some kind. >> >> >> Yes. >> > So it doesn't come for free, which it does when you calc the depth a=20= > creation/modification time and put it in the db as a property. It does, try this: SELECT node.*, ( COUNT(node.lft) - 1 ) AS depth FROM tree AS node, tree AS ancestor WHERE node.lft BETWEEN ancestor.lft AND ancestor.rgt GROUP BY node.lft ORDER BY node.lft --=20 Christian Hansen nGmedia +46 40 660 17 50 |
From: Martin K. <ma...@pr...> - 2004-07-02 10:40:55
|
Christian Hansen wrote: > I'm sorry. I did misread your previous mail. Try doing the same > benchmark and pull a subtree in the middle of the tree, that would > probably be a more fair benchmark. > > Please also consider using cmpthese from Benchmark.pm module that > ships with perl, it will report some valuable cpu stats. > I actuallly never used this module before Results for a small tree: Benchmark: running Ajacency, Nested Set for at least 3 CPU seconds... Ajacency: 3 wallclock secs ( 2.99 usr + 0.04 sys = 3.03 CPU) @ 67.33/s (n=204) Nested Set: 8 wallclock secs ( 2.91 usr + 0.11 sys = 3.02 CPU) @ 419.21/s (n=1266) Rate Ajacency Nested Set Ajacency 67.3/s -- -84% Nested Set 419/s 523% -- Results for a big tree: Benchmark: running Ajacency, Nested Set for at least 3 CPU seconds... Ajacency: 4 wallclock secs ( 3.27 usr + 0.03 sys = 3.30 CPU) @ 1.82/s (n=6) Nested Set: 36 wallclock secs ( 3.03 usr + 0.05 sys = 3.08 CPU) @ 20.45/s (n=63) Rate Ajacency Nested Set Ajacency 1.82/s -- -91% Nested Set 20.5/s 1025% -- The numbers for the ajency list are consistent with the timing benchmark I did: 67.3/s => 0.015 sec 1.82/s => 0.550 sec The results I get for the nested set module are: 419/s => 0.0024 sec, this is off by factor 3 20.5/s => 0.049 sec, this is off by about factor 10! The mesurements for the Nested Set module are not consistent with the timings i posted earlier on. Please not that these values of the nested set module are taken without using the get_root method. Measuring with using get_root brings the timeing for the small tree on about 3 miliseconds. Thats still a factor 2 difference, but it's only off by 3 ms. The big tree with using get_root, however, has a runtime of 0.050 which still differs an order of magnitude. Someone knows why this is this way? /--- The code I used: ---/ #!/usr/bin/perl our ($webguiRoot, $configFile); BEGIN { $configFile = "WebGUI-zes.conf"; $webguiRoot = "/data/domains/zes"; unshift (@INC, $webguiRoot."/lib"); } #-----------------DO NOT MODIFY BELOW THIS LINE-------------------- #use CGI::Carp qw(fatalsToBrowser); use strict; use WebGUI; use WebGUI::Session; use WebGUI::Page; use Tree::DAG_Node; use WebGUI::SQL; use Time::HiRes qw(gettimeofday); use DBIx::Tree::NestedSet; use Benchmark qw(:all); WebGUI::Session::open($webguiRoot, $configFile); my ($result, $count); $result = timethese( $count, { 'Ajacency' => sub {WebGUI::Page->getPage;}, 'Nested Set' => sub { my $ns = DBIx::Tree::NestedSet->new( dbh => $session{dbh}, left_column_name => 'lft', right_column_name => 'rgt', table_name => 'page' ); my $ds = $ns->get_self_and_children_flat(id=>$ns->get_root); } } ); cmpthese($result); /--- end of code ---/ > If you don't have the time, I could whip up something by the weekend. If something is flawed with my method, please do so. > > [...] > >>> >>>> I've got some other suggestions: >>>> -While some properties are very easily extracted from NestedSet >>>> nodes (like hasDaughter, isDescendant, etc.) others (like >>>> isTopLevel, depth, isChild, etc.) require some kind of traversal. >>>> For a big part this can be avoided by including ajacency list >>>> properties like parentId, and depth in the table. I therefore think >>>> it would be a good idea to keep those properties, if we were to go >>>> for Nested Sets. >>> >>> >>> >>> If isTopLevel is the same as root, it comes for free. Root node in >>> Nested Set always has lft == 1 >> >> >> Well it's not. You could see the page tree as forrest hold together >> by a dummy root. So if you also count the dummy root a toplevelpage >> is a child of a (webgui)root page which in turn is a child of the >> dummy root (page id: 0) > > > Is there a reason to keep the the "forrest" model if we are going for > the Nested Set model? The way pages work in WebGUI force you to use a forrest model. Every page-root is actually a seperate tree. Those are bound together with a (non-exeistent) node with pageId=0. If you want to drop the forrest model, you'll end up having one (existent) 'master' page (ie. only one page root) under which alle the other pages are hung. >>> >>> Depth also comes for free, just count nodes lft between ancestors >>> lft and rgt. >> >> >> Which would take a traversal of some kind. > > > Yes. > So it doesn't come for free, which it does when you calc the depth a creation/modification time and put it in the db as a property. Martin |
From: Martin K. <ma...@pr...> - 2004-07-02 09:21:44
|
Dan Collis Puro wrote: >2) Gives you control over what the name of the id is. Dammit. What's >wrong with "id"? > > > Because for WebGUI, for instance, the id i need is called 'pageId' and not 'id'. |
From: JT S. <jt...@pl...> - 2004-07-02 03:22:58
|
>I don't think that caching the tree will be necessary. > >This will cost: > - one statement for $root > - one statement for $current > - one statement for $root->children > - one statement for $ancestor > - one statement for $ancestor->descendants > - one statement for $current->ancestors > >Six statements in total, thats cheap IMO. Agreed. It is cheap, especially when compared with what we're doing now. However, on a busy system you can keep adding web nodes that can each have their own cache. It's a lot harder to set up a reliable database cluster. For performance we don't really need the cache, but I think for scalability we do. JT ~ Plain Black Create like a god, command like a king, work like a slave. |
From: JT S. <jt...@pl...> - 2004-07-02 03:16:42
|
>http://www.newvotersproject.org Great site. I just linked it on the main webgui page under featured sites. You should do a small write-up on it and post it in our news section. It helps promote WebGUI, and at the same time you can show your client that you're going the extra mile giving them good publicity. JT ~ Plain Black Create like a god, command like a king, work like a slave. |