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: GauravJeet S. <gau...@gm...> - 2006-02-17 11:28:40
|
Hi Folks, Starting the oi2_daemon, the following message is thrown on the xterm. Cannot process error template to '/base/websites/error/2006-02/09/175707- 000.txt': undef error - Cannot compare a datetime to a regular scalar at /sumin/lib/perl/5.8.4/DateTime.pm line 1436. The default OI test page comes up, but when new templates and modules are created they dont work and the browser shows the same error. On creating test site as per http://www.openinteract.org/docs/oi2/OpenInteract2/Manual/QuickStart.htmlgi= ves same error but in the browser window itself. |
From: <au...@hc...> - 2005-12-14 06:25:34
|
Hi Antti! Thanks for your response! There doesn't seem to be much activity on OpenInteract so I decided to try Catalyst instead. Regards, Stephan |
From: <ant...@he...> - 2005-12-02 13:33:30
|
Stephan Austerm=C3=BChle wrote: > - Is there any ongoing development for this tool? Mostly it is Chris who develops the core OI2, but occasional patches come from other people. > - Can I download the OI(2) documentation (PDF or similar) somewhere? AFAIK no. It would be nice if somebody took the time to make a conversion script for the manuals to PDF, but as to date this has not happened. > - Shall I use OI2 for new projects or will it be better to use OI1 and > migrate later? Migration from OI1 to OI2 is not very painless so I would recommend starting off with OI2. We have been using OI2 for quite a long time already and haven't found any showstoppers. Also I think the API does not currently have any major changes in the planning so upgrading the development versions should not be a big issue. - Antti |
From: Stephan <au...@hc...> - 2005-11-29 07:49:20
|
Hi, currently I'm looking for a web application server written in Perl. I discovered OpenInteract and it looks suitable for my project. Before starting with this tool I have three questions: - Is there any ongoing development for this tool? - Can I download the OI(2) documentation (PDF or similar) somewhere? - Shall I use OI2 for new projects or will it be better to use OI1 and migrate later? Thank you very much for your help, Stephan |
From: Ken Youens-C. <ky...@gm...> - 2005-11-03 23:01:43
|
Hi, I believe I've located a bug in the way the "links_to" works as described under "Advanced 'links_to' configuration" here: http://search.cpan.org/~cwinters/SPOPS-0.87/SPOPS/Manual/ Relationships.pod 1: links_to => { 'My::Book' => 2: { table => 'publisher_book', 3: to_id_field => 'b_id', 4: from_id_field => 'p_id', }, 5: } Looking at "SPOPS::ClassFactory::DBI," I see that the "from_id_field" is captured into a variable: $from_id_field = $link_info->{from_id_field} || $this_id_field; And then just below that the substitutions are made like so: my $link_subs = $generic_linksto; $link_subs =~ s/%%ID_FIELD%%/$this_id_field/g; $link_subs =~ s/%%GEN_CLASS%%/$class/g; $link_subs =~ s/%%LINKSTO_CLASS%%/$to_class/g; $link_subs =~ s/%%LINKSTO_ALIAS%%/$to_alias/g; $link_subs =~ s/%%LINKSTO_ID_FIELD%%/$to_id_field/g; But nowhere is the $from_id_field var used in a substitution. Further, there is nowhere in the template to use it. It seems that somewhere around here: sub %%GEN_CLASS%%::%%LINKSTO_ALIAS%% { my ( $self, $p ) = @_; my $log = Log::Log4perl::get_logger(); $p ||= {}; $p->{select} = [ '%%LINKSTO_ID_FIELD%%' ]; $p->{from} = [ '%%LINKSTO_TABLE%%' ]; my $id_clause = $self->id_clause( $self->id, 'noqualify', $p ); That it should be used in the generation of the $id_clause variable. This is killing me right now because I have a primary key "div_stock.div_stock_id" that is used as a foreign key in a table called "div_allele_assay" as "div_ref_stock_id." In my "div_stock" config, I try describing the "links_to" like so: links_to => { 'GDPDM::SPOPS::DivAlleleAssay' => { table => 'div_allele_assay', from_id_field => 'div_ref_stock_id', }, But it's not working. I've been mucking around with the code, but everytime I try fixing one thing, I end up breaking another. Is there anyone who can help me with this? ky |
From: Ken Youens-C. <ky...@gm...> - 2005-11-03 14:53:41
|
Here's a very tricky little thing that got me for a few hours. In SPOPS::DBI at line 342, there's this: next ROW unless ( $obj ); # How could this ever be true? In my SPOPS hierarchy, I had defined a class that overloads q{""} to stringify an SPOPS object. I had a bug in that code that caused the object to stringify to the empty string, so the above test failed every time causing "fetch_group" to return nothing. I'd like to suggest that be changed to something else, possibly "defined" or maybe check "keys %$obj" or something a little more rigorous. Granted, the error was mine, but what if a stringification returned a valid "0"? ky |
From: Teemu A. <te...@io...> - 2005-09-04 09:23:48
|
> I've been thinking for a while that the best plan would be to keep the 'SPOP' part of 'SPOPS' and > re-implement security checks from scratch. But, you all seem to be getting along with OI and lots > of users so swimmingly, that I must wonder what more I can do to squeeze extra performance out of > SPOPS. That's what we have done. We have a fairly large application which serves a lot of users. We abandoned the SPOPS object security model and implemented an application level security instead for performance. We have places where we need object level security but we try to avoid that situation. In my opinion, SPOPS is great for small applications and in theory it makes your application very secure if you use it in combination with application level security. In larger applications it becomes the single performance hog and you have to come up with custom optimization to get things done. -- Teemu Arina, CTO Dicole Ltd. Itämerenkatu 5 00180 Helsinki FINLAND Tel: +358-(0)50 - 555 7636 skype: infe00 Corporate website: http://www.dicole.com FLOSS in education blog: http://flosse.dicole.org Personal weblog: http://infedelic.blogspot.com "Discover, collaborate, learn." |
From: Nick F. <Ni...@st...> - 2005-09-04 05:25:31
|
Hi All, SPOPS has become a nightmare for us, and I am wondering if it is because = we used the wrong tool for the job, or if it is because we did not use = it correctly. Since SPOPS is pretty dynamic and capable in lots of ways, = I'm leaning towards the second. Our issue is simple. We use SPOPS both for wrapping our database into = neat little objects... sort of the first four letters of the name (SPOP) = and we use it for security. That is the area we are having issues. SPOPS = is too thorough, perhaps. Let us pretend we have one class. That class has four basic security = rights associated with it: no access by default (0 world access), = read-only access to the class, add-access to the class, and full write = access to the class. Heck, let's drop the 'add' right and just say we = have the other three rights. So, a user without read or write access is = denied access. A user with either of the other two has the appropriate = access. SPOPS works quite well at allowing and denying based on these rules. Now, lets say that the class I spoke of is to objectify a table, a table = with 100,000 records. So, the SPOPS table is now roughly 300,000 records = in size, just to maintain the security information for the records of = that one table. Now, a user with access (read or write) decides to initiate a search = through those records (select * from where foo =3D bar). Even if we = allow the user to only see 25 records per page of our web application, = SPOPS needs to do security checks on all 100,000 records for that table. = Normally, running a select on 100,000 records for a PC class machine is = not entirely fast, but not so slow either. However, once we throw in the = SPOPS security checks, things start to bog down significantly. Usually, we won't have a user doing a select on 100,000 records, but it = could happen. I say usually, right now, because we are just starting = with our application and have not had to grow it too much beyond its = initial deployment. As we continue further deployment, we will be = dealing with far more than 100,000 records in a table. Of course, indexing tables and so on has been done, so that is a bit = faster. But it sure seems from viewing our MySQL debug log that SPOPS = makes a whole lot of security queries for each object access, and those = start to build up. As our CGI processes start to wait for the database = operations to finish, they all start to gang up and hang around together = in memory and the process table (i.e. as more users are using the system = and doing searches). Eventually, with enough users, the server dies. I know that this could happen without SPOPS involved at all. But, it = sure seems from reviewing stats and logs and such that SPOPS is = responsible for such an increase in database usage based solely on = security checks that we experience dramatic slow down a lot 'easier' = than we would like. I've been thinking for a while that the best plan would be to keep the = 'SPOP' part of 'SPOPS' and re-implement security checks from scratch. = But, you all seem to be getting along with OI and lots of users so = swimmingly, that I must wonder what more I can do to squeeze extra = performance out of SPOPS. So, how about it? I am still a relative novice to being a DBA and I'm only moderately good = at getting what I want to out of SPOPS. Maybe not even. I've read the = manual, but have not yet seen the alternatives. Thanks for any guidance. Nicholas Floersch |
From: Andreas N. <an...@kl...> - 2005-09-03 06:15:13
|
Hi folks, after several months of just working w/o an contemplation, we are now seeing the results of living with some unsolved problems, which I want to share here, since we are discussing, how to react to them and there are so many bright people on this list.. ;-) The system we are running is an Intranet application server for serving mainly callcenter agents for various purpuses ( e.g. outbound telefonie, order entry, messaging, news, production time and mis capturing etc ) for about 1000 users. This is a very dynamic business, where we need to install new packages / updates almost every day. We reacted to this by making things dynamic as much as possible, so you can do e.g. an MIS with Excel export only by dynamically defining things in the database. Still the statement is true, that OpenInteract 1 is not very well suited for that many changes. Another problem in with this is, that one package can easily turn down the whole site. This is also true for databases. It does not help in all cases to distribute the load to many databases, because the failure of one database might render OpenInteract unusable, even if they are only used for one application. One condition where this happens is when you are using field discovery and are restarting OpenInteract while one database is down - it will never start... To make one point clear: I am only focussing on the problems here, because we are really heavy users or OI and ran into some design issues, because of not thinking about them - we still like all the pros about OI. So bright list folks - any suggestions for us? cheers Andreas -- Andreas Nolte <an...@kl...> |
From: Andreas N. <an...@kl...> - 2005-09-03 05:56:30
|
Hello all, we are currently falling about a problem, where our MySQL servers are swamped with DB connections. The problem is, that for each OI project ( and we really have lots of them.. ), we define a database object in server.ini, although many of those really only go to different database instances on the same server, like this: dbname test = server1 database test dbname addr = server1 database addr etc. If we would not kick connections with wait_timeout, then our server would have 1000 connections within seconds. Now from my memory ( which is sometimes imagination, though #:-o ), there was a SPOPS configuration parameter for this, which would add the correct "use database" statement before each statement. If this comes from my imagination, how about implementing this - would that be hard ? Another related issue: can you add a sort of "init statements" somewhere, which the server runs when establishing connections ? This would be handy for setting db session related parameters. thanks and cheers Andreas -- Andreas Nolte <an...@kl...> |
From: Ken Youens-C. <ky...@gm...> - 2005-08-26 19:53:11
|
I'd like to get access to the processed version of the "has_a" of a SPOPS class. So far I've just been looking at my main hash config, but now I've got a situation where I'm using some more complicated relationships (two FKs in one table to the same table), so I'd just as soon use the parsed out version from SPOPS. Any smooth way to get that? ky |
From: Eric V. <er...@te...> - 2005-08-26 08:35:00
|
On Thu, Aug 25, 2005 at 02:29:24PM -0500, Ken Youens-Clark wrote: > Sorry if this is in the docs somewhere, but is there a recommended way=20 > to use transactions with SPOPS. I can't find anything in the POD, but=20 > it seems I can grab the "global_datasource_handle" and set=20 > "AutoCommit=3D0" and then call "commit" at the end? I believe there is some documentation somewhere in the docs, but to get you started, this is what I use in my SPOPS base class with postgres as a datab= ase backend. The global $DBH variable holda the Database Handle as returned by = DBI and is set by the global_datasource_handle method. Whenever you need to do things in a transaction, just call start_transactio= n() en commit the transaction with commit(), or call rollback if something went wrong. This also allows some form of nested transactions. Postgress itself doesn't, so only the outer transaction is a real transaction. Which is usua= lly what you want anyway. =3Dhead2 start_transaction Start a transaction =3Dcut sub start_transaction { # Disable AutoCommit, start transaction if ($transactionlevel =3D=3D 0) { if (!$DBH->{AutoCommit}) { warn "commiting"; $DBH->commit(); $transactionlevel =3D 0; } $DBH->begin_work(); $DBH->do('SET TRANSACTION ISOLATION LEVEL SERIALIZABLE'); $DBH->do('SET CONSTRAINTS ALL DEFERRED'); } $transactionlevel++; } =3Dhead2 commit Commit your changes to the database =3Dcut sub commit { if ($transactionlevel =3D=3D 1) { my $rc =3D eval { $DBH->commit }; SPOPS::Exception->throw ($DBH->errstr || 'Commit failed') if (!$rc = || $@); $transactionlevel =3D 0; } else { if ($transactionlevel > 0) { $transactionlevel--; } } } =3Dhead2 rollback Rollback any changes you made to the database =3Dcut sub rollback { # Don't do a rollback if we were not in a transaction. if (!$DBH->{AutoCommit}) { # Enable AutoCommit, ends transaction support $DBH->rollback() or SPOPS::Exception->throw ($DBH->errstr || 'Rollback failed'); $transactionlevel =3D 0; } } --=20 #!perl # Life ain't fair, but root passwords help. # Eric Veldhuyzen http://terra.nu/ $!=3D$;=3D$_+(++$_);($:,$~,$/,$^,$*,$@)=3D$!=3D~ # eric@ter= ra.nu /.(.)...(.)(.)....(.)..(.)..(.)/;`$^$~$/$: $^$*$@$~ $_>&$;` #Perl Monger |
From: Ken Youens-C. <ky...@gm...> - 2005-08-25 19:29:36
|
Sorry if this is in the docs somewhere, but is there a recommended way to use transactions with SPOPS. I can't find anything in the POD, but it seems I can grab the "global_datasource_handle" and set "AutoCommit=0" and then call "commit" at the end? ky |
From: Ken Youens-C. <ky...@gm...> - 2005-08-25 15:35:56
|
I've been playing around with SPOPS and liking it. As part of the SQL::Translator group (http://sqlfairy.sourceforge.net/), I was interested in generating the configuration for SPOPS directly from my schema, which is fairly large (39 tables). I came up with the template at the bottom of this message. Saved to "spops.tt," I use it like so: $ mysqldump --no-data diversity19 > div19.sql $ sqlt -f MySQL -t TTSchema --template spops.tt div19.sql > /opt/gdpdm/lib/GDPDM/Config.pm And that produces something that looks like this: package GDPDM::Config; our $Config = { 'cdv_allele_curated_allele' => { class => 'GDPDM::CdvAlleleCuratedAllele', isa => [ qw/GDPDM::Datasource SPOPS::DBI::MySQL SPOPS::DBI/ ], rules_from => [ 'SPOPS::Tool::DBI::DiscoverField' ], code_class => [], field_discover => 'yes', base_table => 'cdv_allele_curated_allele', id_field => 'cdv_allele_curated_allele_id', increment_field => 1, no_insert => ['cdv_allele_curated_allele_id'], no_update => ['cdv_allele_curated_allele_id'], has_a => { 'GDPDM::CdvCuratedAllele' => 'cdv_curated_allele_id', 'GDPDM::DivAllele' => 'div_allele_id', 'GDPDM::CdvCuration' => 'cdv_curation_id', }, }, ... Then in my code to use SPOPS, I have this: use lib '/opt/gdpdm/lib'; use GDPDM::Config; Log::Log4perl::init( '/opt/gdpdm/spops/log4perl.conf' ); SPOPS::Initialize->process( { config => $GDPDM::Config::Config } ); Is that essentially the Right Way to do things? I'm cross-posting to the SQLT list just so people are aware of this. I'll probably add this as a "official" Producer to SQLT. ky [% MACRO case(n) n | lower | ucfirst; MACRO class(n) BLOCK; names = []; FOREACH part IN n.split('_'); names.push( case( part ) ); END; names.join(''); END; SET tables = {}; FOREACH table IN schema.get_tables; SET tname = table.name; SET fks = []; FOREACH field IN table.get_fields; IF field.is_foreign_key; SET fkref = field.foreign_key_reference; SET fktable = fkref.reference_table; fks.push( { fk => field.name, table => fktable } ); UNLESS tables.${fktable}.links.defined; tables.${fktable}.links = []; END; tables.${fktable}.links.push( tname ); END; SET tables.${tname}.name = table.name; SET tables.${tname}.pk = field.name IF field.is_primary_key; END; SET tables.${tname}.fks = fks; END; # USE dumper; dumper.dump(tables); -%] package GDPDM::Config; our $Config = { [%- FOREACH tname IN tables.keys.sort %] [%- table = tables.${tname}; NEXT UNLESS table.name; %] '[% table.name %]' => { class => 'GDPDM::[% class( table.name ) %]', isa => [ qw/GDPDM::Datasource SPOPS::DBI::MySQL SPOPS::DBI/ ], rules_from => [ 'SPOPS::Tool::DBI::DiscoverField' ], code_class => [], field_discover => 'yes', base_table => '[% table.name %]', id_field => '[% table.pk %]', increment_field => 1, no_insert => ['[% table.pk %]'], no_update => ['[% table.pk %]'], [%- IF table.fks.size > 0 %] has_a => { [%- FOREACH fk IN table.fks %] 'GDPDM::[% class(fk.table) %]' => '[% fk.fk %]', [%- END %] }, [%- END %] [%- IF table.links.size > 0 %] links_to => { [%- FOREACH link IN table.links %] 'GDPDM::[% class(link) %]' => '[% link %]', [%- END %] }, [%- END %] }, [%- END %] }; 1; |
From: Salve J N. <sal...@me...> - 2005-08-23 13:09:26
|
Any OI'ers attending YAPC::Europe next week? :) - Salve -- Salve J. Nilsen <salvejn at met dot no> / Systems Developer Norwegian Meteorological Institute http://met.no/ Information Technology Department / Section for Development |
From: Cory B. <ope...@co...> - 2005-06-14 15:35:32
|
On a somewhat related note ... I have been playing around with themes and I got stuck on how to drop new templates into the server's template directory. If I use my own SQLInstall module to update the theme and theme_prop tables to have a new theme_id and that theme has a "main_template" of something I created, say "foo_main_template", then how do I put that template in the servers template directory when my theme (foo_theme) package is installed? At first, I tried to just use the package's template directory, but apparently you can't set the main_template to a package template file, like setting 'main_template' to 'foo_theme::foo_main_template', I just get: Content generator failed to execute: Template with name [foo_theme::foo_main_template] not found. Suggestions? Is it possible? Thanks! -Cory On Saturday 11 June 2005 10:41 pm, Cory Bennett wrote: > Still learning oi2, and now I am wondering what is the 'right' way to > create a website of my own. I didnt see anything in the docs, so if I > missed it, just let me know. I did the "oi2_manage create_website", and > that creates the sample website. So to create one with a totally different > look-and-feel, do I make a new package with html/index.html etc in it to > overwrite the base_page package? Do I remove_package on base_page and > install my own? Or do I update the existing html and templates in > base_page to my desire and 'update_package' to create my own base_page > package? > > Any suggestions? > > Thanks! > -Cory > > > ------------------------------------------------------- > This SF.Net email is sponsored by: NEC IT Guy Games. How far can you > shotput a projector? How fast can you ride your desk chair down the office > luge track? If you want to score the big prize, get to know the little guy. > Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20 > _______________________________________________ > openinteract-help mailing list > ope...@li... > https://lists.sourceforge.net/lists/listinfo/openinteract-help |
From: Cory B. <ope...@co...> - 2005-06-12 05:35:17
|
Still learning oi2, and now I am wondering what is the 'right' way to create a website of my own. I didnt see anything in the docs, so if I missed it, just let me know. I did the "oi2_manage create_website", and that creates the sample website. So to create one with a totally different look-and-feel, do I make a new package with html/index.html etc in it to overwrite the base_page package? Do I remove_package on base_page and install my own? Or do I update the existing html and templates in base_page to my desire and 'update_package' to create my own base_page package? Any suggestions? Thanks! -Cory |
From: Teemu A. <te...@io...> - 2005-04-19 15:50:40
|
> Teemu recently committed a change to OI2::Request to add a property of > 'forwarded_for' so adapters can store the actual IP address rather > than just pass the proxy address back. I'm not sure if any adapter > changes were made though. Yes, now you can access the X-Forwarded-For which is set by most proxies (like squid) when a request passes through: CTX->request->forwarded_for Which ususally contains something like this: 125.12.154.2, Unknown, 142.111.123.123, 212.222.21.4 where 125.* is set by your farest proxy and 127.* is set by your nearest proxy (for example, one in localhost). It's up to you to decide which one these to trust. I haven't implemented anything additional adapter functionality or such to override what you have in CTX->request->remote_host I think a server.ini configuration parameter which sets the number of trusted steps backwards in the forwarded_for chain would do it. Something like: trusted_proxies = 2 Would set 142.111.123.123 as the clients real IP address, as you know that both 142.* and 212.* were provided by proxies you control and there is no way to access your server through any other IP address. This is important: it's easy to forge the X-Forwarded-For to what ever you want if you can access the server directly. Regards, Teemu Arina Dicole Komeetankuja 4 A 02210 Espoo FINLAND Tel: +358-(0)50 - 555 7636 skype: infe00 Corporate website: http://www.dicole.com FLOSS in education blog: http://flosse.dicole.org Personal weblog: http://infedelic.blogspot.com "Discover, collaborate, learn." |
From: Chris W. <ch...@cw...> - 2005-04-19 14:55:57
|
* Ken Youens-Clark (ky...@gm...) [050419 10:42]: > I'm trying out a ProxyPass set up in mod_perl to say something like > "/foo" proxies to "localhost:8080." I'm using the "http_modperl.conf" > file for my proxied VirtualHost, and it has the line: > > PerlPostReadRequestHandler OpenInteract::ProxyRemoteAddr That shouldn't be there anymore. IIRC modern mod_proxy implementations make it unnecessary, but I'm a little fuzzy on that. (I'll remove it from CVS, thanks for the catch -- again.) Teemu recently committed a change to OI2::Request to add a property of 'forwarded_for' so adapters can store the actual IP address rather than just pass the proxy address back. I'm not sure if any adapter changes were made though. Chris -- Chris Winters (http://www.cwinters.com) Building enterprise-capable snack solutions since 1988 |
From: Ken Youens-C. <ky...@gm...> - 2005-04-19 14:29:32
|
I'm trying out a ProxyPass set up in mod_perl to say something like "/foo" proxies to "localhost:8080." I'm using the "http_modperl.conf" file for my proxied VirtualHost, and it has the line: PerlPostReadRequestHandler OpenInteract::ProxyRemoteAddr But Perl can't find that module installed, CPAN doesn't seem to know about it, and I can't find it here: http://search.cpan.org/~cwinters/OpenInteract-1.99_06/ ky |
From: Chris W. <ch...@cw...> - 2005-04-19 11:59:16
|
On Apr 18, 2005, at 6:01 PM, Ken Youens-Clark wrote: > I had trouble running the "update_package" command with > OpenInteract-1.99_06's "oi2_manage." It kept telling me I wasn't > providing a valid "package_dir." I traced the error to > "OpenInteract2::Manage::Website::UpdatePackageFromWebsite." It was > looking for the file "package.conf" in the "package_dir," but only > "package.ini" exists. Here's a diff: Whoops, missed that one when we did the conversion! Thanks for the catch, applied. > BTW, if I'm really trying to get going with OI2, should I be using the > "developer" version of 1.99 or should I downgrade to the 1.62 version? > If I should be bleeding-edge, should I be working with the CVS > version or stick to the CPAN developer release? I can provide a couple of tips: 1) Do not downgrade to 1.62; it is quite (!) different. It still works well, but you'll wind up rewriting a good deal when you upgrade to OI2 2) The released version (1.99_06) is pretty stable; I run my website on it (but that's not heavily trafficked). 3) Whether you use CVS is kind of up to you: if there's anything on the road map for 1.99_07 (which is considered 2.0 RC1) you think would be useful then it might be a good idea: http://jira.openinteract.org/secure/IssueNavigator.jspa? reset=true&pid=10010&fixfor=10040 Otherwise you should be able to develop with _06 and have to change little or nothing when _07 comes out. 2.0 final (after 1.99_07) is currently scheduled for mid-June. Hopefully we can keep to that. Chris -- Chris Winters Creating enterprise-capable snack systems since 1988 |
From: Ken Youens-C. <ky...@gm...> - 2005-04-18 22:01:13
|
On Apr 15, 2005, at 2:41 PM, Chris Winters wrote: > You're doing it the right way. The other useful workflow is to edit > the live website files (especially for templates/HTML files) and once > you're done run a 'update_package' command to sync your development > package from the live package. I had trouble running the "update_package" command with OpenInteract-1.99_06's "oi2_manage." It kept telling me I wasn't providing a valid "package_dir." I traced the error to "OpenInteract2::Manage::Website::UpdatePackageFromWebsite." It was looking for the file "package.conf" in the "package_dir," but only "package.ini" exists. Here's a diff: $ diff -cu UpdatePackageFromWebsite.pm UpdatePackageFromWebsite.orig diff: conflicting specifications of output style --- UpdatePackageFromWebsite.pm Mon Apr 18 16:49:44 2005 +++ UpdatePackageFromWebsite.orig Mon Apr 18 16:49:28 2005 @@ -56,7 +56,7 @@ return "Must be a valid directory"; } my $changelog = catfile( $param_value, 'Changes' ); - my $package_conf = catfile( $param_value, 'package.ini' ); + my $package_conf = catfile( $param_value, 'package.conf' ); unless ( -f $changelog && -f $package_conf ) { return "Does not appear to be a valid package directory"; } And now it works. Schweet! BTW, if I'm really trying to get going with OI2, should I be using the "developer" version of 1.99 or should I downgrade to the 1.62 version? If I should be bleeding-edge, should I be working with the CVS version or stick to the CPAN developer release? ky |
From: Chris W. <ch...@cw...> - 2005-04-17 23:56:29
|
On Apr 16, 2005, at 11:10 PM, Ken Youens-Clark wrote: >> That's a half-truth -- when you fire up the server the libs from >> pkg/book-xx/ are copied to tmplib/. We do this so we don't have 15+ >> directories on @INC. > > When you say "when [I] fire up the server," do you mean when using > "oi2_daemon"? To try to understand this copying-to-tmplib part > better, I tried altering in the "pkg" dir and starting both oi2_daemon > and Apache, and I couldn't see how/when the copy was being made. It happens whether you start up the server from apache, standalone, cgi-bin, whatever sets up the OpenInteract2::Context object kicks off the process. However, what I left out from my earlier explanation (didn't think it was relevant) is that we don't do it every single time. It can be an expensive operation, especially if you're using network-mounted drives. So after the first time we only do the copying if the directory doesn't exist or if you've installed a new package. You can see the docs (and code) in OpenInteract2::Setup::CreateTemporaryLibraryDirectory for more. Chris -- Chris Winters Creating enterprise-capable snack systems since 1988 |
From: Chris W. <ch...@cw...> - 2005-04-17 23:51:22
|
On Apr 17, 2005, at 6:58 PM, Cory Bennett wrote: > I have been looking around to see if there is any pre-made packages > that I > could look at for examples and so that I dont reinvent wheels. > > I did not see anything on the Twiki site, or on sourceforge. I did > see the > extra packages on the SF files page, but I could not find any > documentation > (like what are the for?). I downloaded a few of those and it seems > the are > all for OI1. > > Is there an OI package repository somewhere that I missed? Nope. There are a few packages in the OI2 CVS under 'extra_packages' (at least the 'wiki' package is unfinished though). The problem is that OI has most often been used as an internal application server. So people write intranet applications but don't release them because there's too much company-specific code -- and because there's always too much to do. That said, the fact that there's no repository doesn't help. But since you can now distribute OI2 applications as CPAN packages you'll hopefully see more soon. Chris -- Chris Winters Creating enterprise-capable snack systems since 1988 |
From: Cory B. <ope...@co...> - 2005-04-17 23:07:23
|
Hello, I have been looking around to see if there is any pre-made packages that I could look at for examples and so that I dont reinvent wheels. I did not see anything on the Twiki site, or on sourceforge. I did see the extra packages on the SF files page, but I could not find any documentation (like what are the for?). I downloaded a few of those and it seems the are all for OI1. Is there an OI package repository somewhere that I missed? Thanks! -Cory |