You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(35) |
Nov
(38) |
Dec
(112) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(20) |
Feb
(24) |
Mar
(47) |
Apr
(18) |
May
(28) |
Jun
(17) |
Jul
(15) |
Aug
(40) |
Sep
(14) |
Oct
(5) |
Nov
(26) |
Dec
(31) |
2003 |
Jan
(8) |
Feb
(14) |
Mar
(38) |
Apr
(34) |
May
(33) |
Jun
(32) |
Jul
(24) |
Aug
(9) |
Sep
|
Oct
(20) |
Nov
(43) |
Dec
(22) |
2004 |
Jan
(23) |
Feb
(25) |
Mar
(15) |
Apr
(3) |
May
(31) |
Jun
(13) |
Jul
(3) |
Aug
(3) |
Sep
(13) |
Oct
(15) |
Nov
(3) |
Dec
(5) |
2005 |
Jan
|
Feb
|
Mar
(16) |
Apr
(24) |
May
|
Jun
(2) |
Jul
|
Aug
(5) |
Sep
(4) |
Oct
|
Nov
(3) |
Dec
(2) |
2006 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Stathy G T. <sto...@tu...> - 2003-12-04 15:52:25
|
Sorry about the previous messages wrong subject line ... >I was wondering how other users were setting object 'permissions' for >their application other than hard coding and/or setting in the config. As >an example I would like to be able to dynamically assign certain groups >object permissions. Will I have to create my own 'acl' type screens for >doing this? What are the drawbacks to doing this other than complexity? |
From: Stathy G T. <sto...@tu...> - 2003-12-04 15:34:44
|
Hi, I was wondering how other users were setting object 'permissions' for their application other than hard coding and/or setting in the config. As an example I would like to be able to dynamically assign certain groups object permissions. Will I have to create my own 'acl' type screens for doing this? What are the drawbacks to doing this other than complexity? |
From: Chris W. <ch...@cw...> - 2003-12-04 02:23:33
|
Steve Sapovits wrote: > I finally got back to some OI work. So far I like it. I managed > to install it and start morphing it into the intranet site I want > over the weekend. Today I started down the package path. I think > I did okay until package install time. After pass one, I realized > a bunch of things I forgot. Rather than upgrade I tried to remove > then reinstall the existing package. I followed the instructions > that describe necessary manual file removal, etc. On the second > install I get "already exists in the base installation repository" > errors. Any idea what I missed? Or was removal just a bad idea I > should stay away from? The latter. There's a catalog (for lack of a better word) of the packages installed to the repository at: $REPOSITORY/conf/package_repository.perl When OI complains about something already being installed, that's what it's checking. The repository was designed so that multiple websites could use it as a definitive source for packages, so it doesn't make sense to delete packages since other websites might still need them. That said, this design is a solution without a real problem, and OI2 does away with it entirely -- each website gets its own packages, and that's it. > Also, I'm not always 100% clear in the docs on website_dir ... I > created a base site directory in /usr/local/sites. I named a site > after that that has a subdirectory. It appears that for package > installs I want to reference /usr/local/sites, not /usr/local/sites/XXX, > but I'm not always clear. I want the current packages to be available > to all sites, even though it will just be one in the short term. Here are the players: base repository - maintains a copy of all packages installed to OI; this is where 'install_package' puts the files; (This is what you'd set the 'OPENINTERACT' environment variable to as a shortcut.) I normally create this in /opt/OpenInteract, but your layout may vary. website - all the packages (plus old copies) for a particular website; this is where 'apply_package' or 'upgrade_package' puts the files and metadata, and where your website actually runs from. I normally create these under /home/httpd with the site name as the directory (e.g., /home/httpd/mysite.com, /home/httpd/funyuns.com, etc.) Under the main site directory are the top-level OI directories: conf/, pkg/, html/, log/, etc. Each website is associated with a base repository from which it draws the package information when 'apply_' or 'upgrade_package' is run. So when you 'install_package' it gets put into the base repository and is then available to all websites associated with that repository. Does that make sense? Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Steve S. <ste...@co...> - 2003-12-03 00:23:54
|
I finally got back to some OI work. So far I like it. I managed to install it and start morphing it into the intranet site I want over the weekend. Today I started down the package path. I think I did okay until package install time. After pass one, I realized a bunch of things I forgot. Rather than upgrade I tried to remove then reinstall the existing package. I followed the instructions that describe necessary manual file removal, etc. On the second install I get "already exists in the base installation repository" errors. Any idea what I missed? Or was removal just a bad idea I should stay away from? Also, I'm not always 100% clear in the docs on website_dir ... I created a base site directory in /usr/local/sites. I named a site after that that has a subdirectory. It appears that for package installs I want to reference /usr/local/sites, not /usr/local/sites/XXX, but I'm not always clear. I want the current packages to be available to all sites, even though it will just be one in the short term. Any help appreciated. -- Steve Sapovits ste...@co... |
From: Nikollos <ni...@fb...> - 2003-12-01 16:59:43
|
Hello Chris, Monday, December 1, 2003, 5:22:13 PM, you wrote: CW> A modified version is attached. Let me know how it works. New version works wonderfully! Chris, I admire your work. It's great! Thank you for a perfect support! -- Best regards, Nikollos mailto:ni...@fb... |
From: Chris W. <ch...@cw...> - 2003-12-01 14:26:43
|
Nikollos wrote: > Saturday, November 29, 2003, 9:20:52 PM, you wrote: > > CW> First, is this the first time you've used session_cleanup.pl? > > This is first time. > > CW> Next, what Apache::Session module are you using? (File, MySQL, etc.) > Apache::Session v1.53 > Apache::Session::MySQL v1.01 Looking at the source, Apache::Session::MySQL uses Storable by itself for serialization. So --decode=storable should work properly... ...but, looking at 'session_cleanup.pl', and after adding an option for you to force session removal on error, I can now see why it's not working properly. The right data aren't being passed to Storable's 'thaw()' method! A modified version is attached. Let me know how it works. Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Chris W. <ch...@cw...> - 2003-11-29 18:21:19
|
Nikollos wrote: > CW> Good question... try running with the '--decode=storable' option and see > CW> what happens. > > Running: perl session_cleanup.pl --decode=storable > Response: > Using (/.../OI/WWW) for 'website_dir'. > Scanning [4972] sessions... > Removing those before Tue Sep 30 21:50:10 2003 > Storable binary image v57.116 more recent than I am (v2.6) > at blib/lib/Storable.pm (autosplit into > blib/lib/auto/Storable/thaw.al) line 364, > <IDLIST> line 1, at session_cleanup.pl line 115 First, is this the first time you've used session_cleanup.pl? If not, what could have changed in the meantime? Next, what Apache::Session module are you using? (File, MySQL, etc.) Each of these can have different serialization schemes -- maybe session_cleanup.pl isn't using the right one... Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Nikollos <ni...@fb...> - 2003-11-29 17:54:38
|
Hello Chris, >> But session_cleanup.pl died with: >> Premature end of base64 data at session_cleanup.pl line 115, <IDLIST> line 1. >> Storable binary image v54.171 more recent than I am (v2.6) >> at blib/lib/Storable.pm (autosplit into >> blib/lib/auto/Storable/thaw.al) line 364, >> <IDLIST> line 1, at session_cleanup.pl line 115 >> >> Upgrading Storable up to 2.8 does not help :-( CW> Good question... try running with the '--decode=storable' option and see CW> what happens. Running: perl session_cleanup.pl --decode=storable Response: Using (/.../OI/WWW) for 'website_dir'. Scanning [4972] sessions... Removing those before Tue Sep 30 21:50:10 2003 Storable binary image v57.116 more recent than I am (v2.6) at blib/lib/Storable.pm (autosplit into blib/lib/auto/Storable/thaw.al) line 364, <IDLIST> line 1, at session_cleanup.pl line 115 -- Best regards, Nikollos mailto:ni...@fb... |
From: Chris W. <ch...@cw...> - 2003-11-29 16:15:26
|
Nick Tkachenko wrote: > But session_cleanup.pl died with: > Premature end of base64 data at session_cleanup.pl line 115, <IDLIST> line 1. > Storable binary image v54.171 more recent than I am (v2.6) > at blib/lib/Storable.pm (autosplit into blib/lib/auto/Storable/thaw.al) line 364, > <IDLIST> line 1, at session_cleanup.pl line 115 > > Upgrading Storable up to 2.8 does not help :-( Good question... try running with the '--decode=storable' option and see what happens. Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Chris W. <ch...@cw...> - 2003-11-29 16:12:22
|
Vsevolod (Simon) Ilyushchenko wrote: > While I am at it, a suggestion. In SPOPS::_w, would it not make sense to > print the whole stack, and not just the caller's name? Because it's > always called from SPOPS::AUTOLOAD, which is not much help in debugging. This seems like a good opportunity to note that I'll be moving debugging/logging messages to Log::Log4perl in the near future. (Not the next version which will be out shortly, but the one after that most likely.) It makes debugging much, much less painful. Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Vsevolod (S. I. <si...@cs...> - 2003-11-29 16:02:54
|
Chris, While I am at it, a suggestion. In SPOPS::_w, would it not make sense to print the whole stack, and not just the caller's name? Because it's always called from SPOPS::AUTOLOAD, which is not much help in debugging. > Well... the code ain't perfect, but some folks have been using SPOPS on > fairly large projects and AFAIK never had a problem like this. Sorry, I did not imply that the code is not good. More worried about myself changing things in the database manually and screwing something up. > I think > one of the keys with object-level security is to use it sparingly. Most > of the time application-level security will suffice -- normally if a > user can edit one record she can edit another. My intranet applications actually contain data for many different users, and in some cases users should not even see each other's data. Plus there are operator access rules, department head access rules and all kinds of fun. I used the action security system from Metadot, but they had no notion of data security. But you are right, I may be going too far sometimes. I'll keep the balance in mind. Simon -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com America's business leaders simply don't want to think about complex technology issues - they want to think about golf. Microsoft promises them that. Andrew Grygus, www.aaxnet.com |
From: Nick T. <ni...@fb...> - 2003-11-27 10:16:33
|
Hi Chris, OI v1.56, SPOPS v0.75, Apache::Session v1.53 Storable v1.006 Web-site sessions created, updated, etc. But session_cleanup.pl died with: Premature end of base64 data at session_cleanup.pl line 115, <IDLIST> line 1. Storable binary image v54.171 more recent than I am (v2.6) at blib/lib/Storable.pm (autosplit into blib/lib/auto/Storable/thaw.al) line 364, <IDLIST> line 1, at session_cleanup.pl line 115 Upgrading Storable up to 2.8 does not help :-( Thanks, Nikollos |
From: Chris W. <ch...@cw...> - 2003-11-26 15:33:37
|
Apologies for the delay. David C. Reed wrote: > Just installed OI2 on a Win Xp box. Was setting up the quick start site and > everything worked fine until trying to run oi2_daemon. This is what I got > back: > > C:\.cpan\build\OpenInteract-1.99_03>oi2_daemon > Using OPENINTERACT2 environment for website directory: > c:\OI2\FirstSite > Using daemon configuration from website directory > OpenInteract2 now running at URL 'http://localhost:8080/' > Cannot remove PID file [C:\OI2\FirstSite\conf\oi2.pid] > > My version of Perl is: Perl, v5.6.1 built for MSWin32-x86-multi-thread Not sure why this is so. I haven't tried this on XP yet. One idea: try setting 'OPENINTERACT2' to 'c:/OI2/FirstSite' instead and see what happens. (2000/XP can use forward or back slashes as directory separators, but not both.) Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Chris W. <ch...@cw...> - 2003-11-26 15:31:55
|
Vsevolod (Simon) Ilyushchenko wrote: > Thanks for looking at the setter method. I assume the fix is > straightforward (I'd like to start using it asap). You also have a note > about this in the SPOPS man page: Yes, it's pretty straightforward. It's in CVS now, but I plan on releasing 0.80 in the next couple days (Fri/Sat probably, since Thu is a holiday). One bonus I added: you can override an internal method and generate your own getter/setter/clearer methods. I updated the docs as well, thanks for the pointer. > Paranoia. I had a home-grown security system (SPOPS without steroids :) > which at first utilized a single table. A couple of times bugs in the > persistence code screwed the whole table up, so I broke up the security > info into separate tables. Then yesterday I was changing something in > the spops_security table on the mysql command line and made a mistake > again. So the old fears flared up. Well... the code ain't perfect, but some folks have been using SPOPS on fairly large projects and AFAIK never had a problem like this. I think one of the keys with object-level security is to use it sparingly. Most of the time application-level security will suffice -- normally if a user can edit one record she can edit another. Another approach is to use a hierarchical security model. That is, each object has some characteristic that places it on a leaf in a tree. Rather than defining security for each leaf we define it on branches to be inherited by other branches and leafs. Just like a filesystem. This way doesn't generate many security records and is fairly easy to check and cache the results. > AFAIU, you call this potentially bug-ridden because this assumes that, > if I put this in a superclass, each subclass will have to process its > config before next class's global_security_object_class() is invoked? > I'll give it a try. It's potentially bug-ridden because I'm assuming everything uses 'global_security_object_class()' properly. I *think* this is so but I'm not certain, and it only takes one exception to screw everything up -- for instance, caching a security class name for one SPOPS class, using another SPOPS class, and then using the cached class name. The trick I used previously (resetting the table name in 'global_security_object_class()') would fail miserably and it could be difficult to sort out. Good luck! Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Vsevolod (S. I. <si...@cs...> - 2003-11-25 15:27:41
|
Chris, Thanks for looking at the setter method. I assume the fix is straightforward (I'd like to start using it asap). You also have a note about this in the SPOPS man page: *** Note that unlike get, You cannot use the shortcut of using the parameter name as a method. So a call like: my $username = $obj->username( 'new_username' ); Will silently ignore any parameters that are passed and simply return the information as get() would. *** > The SPOPS model is one class == one table, so the general answer is no. > It would probably be best to just have SPOPS create a separate class for > every table you want to access. > > (BTW, why do you want to do this?) Paranoia. I had a home-grown security system (SPOPS without steroids :) which at first utilized a single table. A couple of times bugs in the persistence code screwed the whole table up, so I broke up the security info into separate tables. Then yesterday I was changing something in the spops_security table on the mysql command line and made a mistake again. So the old fears flared up. > Something else you could do: each of your SPOPS classes could override > 'global_security_object_class()' and have each call set the table name > in the one security object class. This is very tricky and potentially > bug ridden, but it might look like: > > # 'My::SecurityObject' is your application's security class > # 'my_table' is the table you want to use for this class > > sub global_security_object_class { > my ( $item ) = @_; > My::SecurityObject->CONFIG->{table_name} = 'my_table'; > return 'My::SecurityObject'; > } AFAIU, you call this potentially bug-ridden because this assumes that, if I put this in a superclass, each subclass will have to process its config before next class's global_security_object_class() is invoked? I'll give it a try. Thanks, Simon -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com America's business leaders simply don't want to think about complex technology issues - they want to think about golf. Microsoft promises them that. Andrew Grygus, www.aaxnet.com |
From: Chris W. <ch...@cw...> - 2003-11-25 03:21:13
|
Vsevolod (Simon) Ilyushchenko wrote: > Is there an easy and supported way of using different security tables > for different classes? (That is, without changing SPOPS code.) > > I realize that the table is referenced in the security class's config > file (like 'spops_security' in My::Security), but the only way to do it > now is to have a different security class for each data class. But I > would like to pass a parameter to _base_config() in the security class > to tell it which table to use. I can't do it now, though, because my > code only return the security class name and never explicitly constructs > it. The SPOPS model is one class == one table, so the general answer is no. It would probably be best to just have SPOPS create a separate class for every table you want to access. (BTW, why do you want to do this?) Something else you could do: each of your SPOPS classes could override 'global_security_object_class()' and have each call set the table name in the one security object class. This is very tricky and potentially bug ridden, but it might look like: # 'My::SecurityObject' is your application's security class # 'my_table' is the table you want to use for this class sub global_security_object_class { my ( $item ) = @_; My::SecurityObject->CONFIG->{table_name} = 'my_table'; return 'My::SecurityObject'; } You could do this programmatically in a superclass as well, mapping your application class to security table name in a hash and using that rather than hardcoding it per app class. Hope this makes sense, Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Chris W. <ch...@cw...> - 2003-11-25 03:10:29
|
Vsevolod (Simon) Ilyushchenko wrote: > Another question - why exactly do you not allow the user to set field > values via function calls like this: > $object->field($value); > in addition to > $object->{field} = $value; > ? Okay, this is now fixed and will be in SPOPS 0.80. As for why this wasn't done originally, I have no idea. Thanks much for bringing it up. Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Chris W. <ch...@cw...> - 2003-11-25 02:46:03
|
Vsevolod (Simon) Ilyushchenko wrote: > Another question - why exactly do you not allow the user to set field > values via function calls like this: > $object->field($value); > in addition to > $object->{field} = $value; > ? You should be able to do both. But I ran the attached script and got the following: $ perl use_spops_method_mutators.pl Field: Set by hash Field: Set by hash Oops... I'll do some research into this. Chris |
From: Vsevolod (S. I. <si...@cs...> - 2003-11-25 00:04:43
|
Chris, Another question - why exactly do you not allow the user to set field values via function calls like this: $object->field($value); in addition to $object->{field} = $value; ? Thanks, Simon -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com America's business leaders simply don't want to think about complex technology issues - they want to think about golf. Microsoft promises them that. Andrew Grygus, www.aaxnet.com |
From: Vsevolod (S. I. <si...@cs...> - 2003-11-24 19:49:02
|
Chris, Is there an easy and supported way of using different security tables for different classes? (That is, without changing SPOPS code.) I realize that the table is referenced in the security class's config file (like 'spops_security' in My::Security), but the only way to do it now is to have a different security class for each data class. But I would like to pass a parameter to _base_config() in the security class to tell it which table to use. I can't do it now, though, because my code only return the security class name and never explicitly constructs it. Thanks, Simon -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com America's business leaders simply don't want to think about complex technology issues - they want to think about golf. Microsoft promises them that. Andrew Grygus, www.aaxnet.com |
From: David C. R. <dr...@xo...> - 2003-11-21 17:42:16
|
Hi: Just installed OI2 on a Win Xp box. Was setting up the quick start site and everything worked fine until trying to run oi2_daemon. This is what I got back: C:\.cpan\build\OpenInteract-1.99_03>oi2_daemon Using OPENINTERACT2 environment for website directory: c:\OI2\FirstSite Using daemon configuration from website directory OpenInteract2 now running at URL 'http://localhost:8080/' Cannot remove PID file [C:\OI2\FirstSite\conf\oi2.pid] My version of Perl is: Perl, v5.6.1 built for MSWin32-x86-multi-thread Any suggestions most appreciated. Thanks, Dave |
From: Chris W. <ch...@cw...> - 2003-11-19 20:16:08
|
Andreas Nolte wrote: >... > is not a good idea. Today we build separete classes that ( most of the > times ) inherit from SPOPS and put the functionality in them. This on > one side lets you use the functionality in scripts without a GUI, but > also gives you the full power directly within the templates ! A slight sidenote here: I think this pattern is one I'm going to encourage much more explicitly in OI2. That is, something like: # in spops.ini ---------------------------------------- [myobject] # This is the generated class class = My::ObjectPersist # This is what OI2 will return on a call of: # my $object_class = CTX->lookup_object( 'myobject' ); alias_class = My::Object ... ---------------------------------------- And then you'd create: ---------------------------------------- package My::Object; use strict; @My::Object::ISA = qw( My::ObjectPersist ); sub my_custom_functionality { my ( $self ) = @_; $self->{my_field} = 'foo'; $self->save; } ... ---------------------------------------- This is in-place of using the 'code_class' element in the SPOPS configuration, which I've always considered very hackish. This also fits in with the philosophy that you can just add in persistence behavior to an existing object, implementing your normal object behavior (plus any additional persistence behavior like canned queries) in code and your persistence in configuration. Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Andreas N. <an...@kl...> - 2003-11-19 19:53:56
|
On Tue, 2003-11-18 at 23:39, Teemu wrote: > > .. are you talking about porting mimerdesk to OI?? > > Not only porting, but creating something new on top of it in the same time. It > will have additional functionality necessary in learning organizations and > education. Today I had more time to look at it and the demo and this is really great ! I see, you aim at the educational area, but some tools like projects and calendar definetly have a broader usage. Acutally, you obviously implemented quite a bit, that we are also thinking about! Great! Also, I talked to a colleague, who does consultancy for public schools in Germany. He said, that many larger schools are looking for open source tools for such tasks and that there are funds for this ( called N21 ). We will check this out... Apart from this, we have our own fund for our tools and would like to cooperate, if this is imaginable. Our focus in the last months was to work on a configurable workflow framework, we call NATS. As soon as we have a sample app and more documentation, we will release this to the open source. Looking at mimer desk, this could be hiden behind the Tasks screen and pull in all types of tasks in the workflow? What do you think ? > > For a long time I have searched for time to get rid of current MimerDesk code > base (which is scarce, complicated and has its' limits) to replace it with > something better. OI and additional time (money) for open source development > came to rescue. Now I also have better possibilities to put my improved OO > programming kung fu in practice.. This is the key solution ! When I stumbled over OI two years ago, I was in the middle of thinking about a self written framework, because at that time there was really nothing you could work with - all OO Perl things needed to be done from scratch. Looking back, we definetly made the right decision to take OI. I am really convinced, that there is no other tool, that can make you just as productive - regardless of dev language. Our first tries had there problems, of course, one of which was the misuse of SPOPS. Also, at that time there was no OpenInteract::CommonHandler, which is really the way to go for most things. Then we put to much functionality in the handler packages, which is not a good idea. Today we build separete classes that ( most of the times ) inherit from SPOPS and put the functionality in them. This on one side lets you use the functionality in scripts without a GUI, but also gives you the full power directly within the templates ! later, Andreas |
From: Teemu <te...@io...> - 2003-11-18 22:16:25
|
> .. are you talking about porting mimerdesk to OI?? Not only porting, but creating something new on top of it in the same time. It will have additional functionality necessary in learning organizations and education. For a long time I have searched for time to get rid of current MimerDesk code base (which is scarce, complicated and has its' limits) to replace it with something better. OI and additional time (money) for open source development came to rescue. Now I also have better possibilities to put my improved OO programming kung fu in practice.. -- Sincerely, Teemu Arina Ionstream Oy / Dicole Komeetankuja 4 A 02210 Espoo FINLAND Tel: +358-(0)50 - 555 7636 http://www.dicole.fi |
From: Andreas N. <an...@kl...> - 2003-11-18 21:10:43
|
> > Since I am curious: what type of app are you thinking about ? > > What I have built so far is a school (student) management system. Some > screenshots here (shots in finnish, sorry): http://www.mimerdesk.org/RX/oi/ > > The next application I'm building at the moment is a collaborative learning > environment. You could compare such systems to groupware solutions to get an > idea how heavy the application will be. .. are you talking about porting mimerdesk to OI?? |