You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(19) |
Nov
(22) |
Dec
(19) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(35) |
Feb
(5) |
Mar
(13) |
Apr
(9) |
May
(3) |
Jun
(16) |
Jul
|
Aug
(6) |
Sep
(15) |
Oct
(5) |
Nov
(3) |
Dec
(7) |
2003 |
Jan
(16) |
Feb
(10) |
Mar
(19) |
Apr
(13) |
May
(5) |
Jun
(20) |
Jul
(33) |
Aug
(9) |
Sep
(1) |
Oct
(12) |
Nov
(17) |
Dec
(2) |
2004 |
Jan
(3) |
Feb
(9) |
Mar
(7) |
Apr
(16) |
May
(6) |
Jun
(6) |
Jul
(18) |
Aug
(8) |
Sep
(27) |
Oct
(8) |
Nov
(14) |
Dec
(29) |
2005 |
Jan
(1) |
Feb
(11) |
Mar
(33) |
Apr
(2) |
May
(4) |
Jun
(21) |
Jul
(41) |
Aug
(6) |
Sep
|
Oct
(1) |
Nov
|
Dec
(1) |
2006 |
Jan
(8) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Vsevolod (S. I. <si...@cs...> - 2004-11-01 01:32:25
|
Ray, Chris, and others, My current progress - code pretty much finalized, and a .t file with 64 tests (I'll have to add a few more tests to cover all combinations of features). I'd like to do some more internal testing before I send the official patch, but if anyone has time to play with the new features (yeah, right :), I'd be happy to share it. It's completely backwards compatible. > Just curious, at what level are you implementing this cache? Is it > *always* used for all SPOPS objects? Only for DBI? Only for DBI when you > are using the new functionality? It's only for DBI. > Do you have a documentation detailing the new syntax for the > functionality you are adding? Actually, possibly the simplest thing (and > probably the most helpful thing for me) would be to just take the > examples at the end of my proposal and modify them to your syntax so I > could see an example of what each case looks like. See below. > I forgot, did you implement any lazy loading features or is it just > manual and auto? I actually did not implement manual loading - I just can't see where it can be used (and a bit fuzzy on how it would work). So there is only auto and lazy loading. Autosaving is always off by default, to preserve compatibility. OTOH, there are three types of removes - 'auto', 'manual' and 'forget'. 'Auto' means complete removal of dependent objects, 'forget' - nullifying id fields pointing to the removed objects, and 'manual' - no action. The default should logically be 'forget', but it may conflict with no autosaving, so I'll have to set it to 'manual'. > If I understand correctly, one of the fundamental differences between > your implementation and my proposal is that for has_many and links_to > relationships the definition of the relationship is no longer specified > in the class containing the linking field, but rather in a class that is > linked to. I'm a bit concerned that with the way I use SPOPS (not to > create classes but simply to define the relationships and persistence of > traditionally defined *.pm-file classes, where linking classes have not > only extra fields, but also extra functionality), some of the > functionality I need which was present in my proposal will be missing > from your redesign ... but I guess I won't know until I see the details. As I mentioned, I am flexible on the matter of has_many. If you want, I can create an additional config option (you call it 'auto_by' etc, I think) and put it into the other class. Links_to is harder, because to preserve backward compatibility it has to stay in one of the edge classes. But if you want to add more variables to the linking class, you'll have to define it for SPOPS anyway, and there I can probably also implement your suggestion as an option. Below is the usage example that you posted originally, and after *** - my syntax. $CONF = { X_alias => { class => "X", field => [ qw/ x_id x_data myA myB / ], has_a => { myA => { class => "A", fetch => { type => "manual|auto|lazy|manual_by|auto_by|lazy_by", name => "someA", list_field => "list_of_Xs", }, link => { type => "manual|auto|lazy", field => "myB" name => "someB", list_field => "linked_Bs", }, remove => { type => "manual|auto|manual_by|auto_by|manual_null|auto_null" name => "removeSomeA", list_field => "list_of_Xs", } }, myB => { class => "B", fetch => { type => "manual|auto|lazy|auto_by|lazy_by", name => "someB", list_field => "linked_Bs", }, link => { type => "manual|auto|lazy", field => "myA" name => "someA", list_field => "list_of_As", }, remove => { type => "manual|auto|manual_by|auto_by|manual_null|auto_null" name => "removeSomeB", list_field => "list_of_Xs", } }, } }, A_alias => { class => "A", field => [ qw/ a_id a_data / ], list_field => { X => ["list_of_Xs"], B => ["linked_Bs"] } }, B_alias => { class => "B", field => [ qw/ b_id b_data / ], }, } *** $CONF = { X_alias => { class => "X", field => [ qw/ x_id x_data myA myB / ], has_a => { {A => {alias => "mya", fetch => { type => 'auto|lazy', save =>1 }, remove => { type => 'auto|manual' } reverse_remove => {type => 'manual|forget' } } }, has_many => { B => { fetch => { type => 'auto|lazy', save => 1, alias => 'list_of_Xs', reverse_alias => 'myx'}, remove => { type => 'auto|manual|forget' } } }, links_to => { 'D' => { table => 'spops_x_d', alias => 'list_of_Ds', link_class => 'Membership', link_class_alias => 'memberships', } } .. }, Membership_alias => { class => 'Membership', field => ['id, 'x_id', 'd_id', 'start_date', 'end_date'], ... } Simon -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com Terrorism is a tactic and so to declare war on terrorism is equivalent to Roosevelt's declaring war on blitzkrieg. Zbigniew Brzezinski, U.S. national security advisor, 1977-81 |
From: Ray Z. <rz...@co...> - 2004-10-22 13:04:06
|
Hi Simon, It's good to hear that this work is coming along ... On Oct 21, 2004, at 11:32 PM, Vsevolod (Simon) Ilyushchenko wrote: > 1. There will be a basic cache which will always return the cached > object, not its copy. This sounds like a good idea. This ensures that, within a given process, there is only ever one copy of an object in memory no matter how many times and in what contexts you fetch it, right? Just curious, at what level are you implementing this cache? Is it *always* used for all SPOPS objects? Only for DBI? Only for DBI when you are using the new functionality? > 2. The fetch_many() now will also use cache. It will still make a call > to the database, because it won't know which ids to request from the > cache, though. > 3. Auto-save and auto-delete are off by default. This is not what Ray > requested, but it's the only way to stay backwards compatible. With > auto-save on, the graph of object in memory will be traversed to > determine what has been changed. (Thus, I have deep_changed() instead > of changed().) > 4. It will be possible to use a separate class that corresponds to the > linking table in links_to (think ClubMembership). The syntax I came up > with is: > Club => { > class => 'Club', > ... > links_to => > { 'Person' => > { table => 'ClubMembership', > link_class => 'ClubMembership', > link_class_alias => 'memberships', > alias => 'members', > to_id_field => 'member_id', > from_id_field => 'club_id' }, > > The ClubMembership class can have extra attributes (like date), but > they will be specified in a regular way in the config file. The new > attribute 'link_class_alias' will return an arrayref of the > ClubMembership instances. Again, this is not as elegant as Ray > proposed, but backwards compatible. I'd like to give my feedback, but I'm not sure I have a clear understanding of which pieces of my proposal you implemented exactly, which pieces you implemented with small modifications, and for which pieces you chose an alternative approach entirely. Do you have a documentation detailing the new syntax for the functionality you are adding? Actually, possibly the simplest thing (and probably the most helpful thing for me) would be to just take the examples at the end of my proposal and modify them to your syntax so I could see an example of what each case looks like. I forgot, did you implement any lazy loading features or is it just manual and auto? If I understand correctly, one of the fundamental differences between your implementation and my proposal is that for has_many and links_to relationships the definition of the relationship is no longer specified in the class containing the linking field, but rather in a class that is linked to. I'm a bit concerned that with the way I use SPOPS (not to create classes but simply to define the relationships and persistence of traditionally defined *.pm-file classes, where linking classes have not only extra fields, but also extra functionality), some of the functionality I need which was present in my proposal will be missing from your redesign ... but I guess I won't know until I see the details. In any case, your actual working implementation is far better than any un-implemented proposal, so don't get me wrong, I really appreciate all the work you've done even if it doesn't end up covering everything I would have liked. > An open question is what to do with has_a. Currently it's implemented > in ClassFactory, not ClassFactory/DBI, but adding auto-save and > auto-delete functionality requires the has_a code to be DBI-aware. I > can add extra functionality into ClassFactory/DBI, but I am not sure > which effect it would have on LDAP storage, for example. > > Oh, and a style question. I have marked all of my changes with "tags": > #Simon > #/Simon > and I commented out, not deleted, all replaced code, for ease of > reference. Is this necessary? Might be nice initially for Chris to see this, but I'd think eventually he'll want to remove it. But of course, that's Chris's call. > I will grudgingly remove lc-ing of field names. I love it, but, as > pointed out before, it will break existing code. Thanks, this is appreciated since it was my existing code that was breaking. :-) Thanks again for your contributions, Ray Zimmerman Director, Laboratory for Experimental Economics and Decision Research 428-B Phillips Hall, Cornell University, Ithaca, NY 14853 phone: (607) 255-9645 |
From: Vsevolod (S. I. <si...@cs...> - 2004-10-22 03:32:28
|
Chris and Ray, Now that Chris has some time (hopefully) to consider the changes, I'd like to submit a patch that would add has_many, auto-save/auto-delete (optional) and full cache support (which is necessary for the consistency circular references). Before I do that, I'd like to get Chris's approval on the following architectural decisions: 1. There will be a basic cache which will always return the cached object, not its copy. 2. The fetch_many() now will also use cache. It will still make a call to the database, because it won't know which ids to request from the cache, though. 3. Auto-save and auto-delete are off by default. This is not what Ray requested, but it's the only way to stay backwards compatible. With auto-save on, the graph of object in memory will be traversed to determine what has been changed. (Thus, I have deep_changed() instead of changed().) 4. It will be possible to use a separate class that corresponds to the linking table in links_to (think ClubMembership). The syntax I came up with is: Club => { class => 'Club', ... links_to => { 'Person' => { table => 'ClubMembership', link_class => 'ClubMembership', link_class_alias => 'memberships', alias => 'members', to_id_field => 'member_id', from_id_field => 'club_id' }, The ClubMembership class can have extra attributes (like date), but they will be specified in a regular way in the config file. The new attribute 'link_class_alias' will return an arrayref of the ClubMembership instances. Again, this is not as elegant as Ray proposed, but backwards compatible. An open question is what to do with has_a. Currently it's implemented in ClassFactory, not ClassFactory/DBI, but adding auto-save and auto-delete functionality requires the has_a code to be DBI-aware. I can add extra functionality into ClassFactory/DBI, but I am not sure which effect it would have on LDAP storage, for example. Oh, and a style question. I have marked all of my changes with "tags": #Simon #/Simon and I commented out, not deleted, all replaced code, for ease of reference. Is this necessary? I will grudgingly remove lc-ing of field names. I love it, but, as pointed out before, it will break existing code. Simon -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com Terrorism is a tactic and so to declare war on terrorism is equivalent to Roosevelt's declaring war on blitzkrieg. Zbigniew Brzezinski, U.S. national security advisor, 1977-81 |
From: Kutter M. <mar...@si...> - 2004-10-14 13:59:51
|
Hi Chris ! ...no, I actually would like to see it in OI2, too. But until this is done, I think it's nice to allow a separate installation (actually this is how I'm using it right now). Regards, Martin Kutter -----Original Message----- From: Chris Winters [mailto:ch...@cw...] Sent: Donnerstag, 14. Oktober 2004 14:20 To: Kutter Martin Cc: ope...@li... Subject: Re: [Openinteract-dev] OpenInteract2 & SOAP > I've done a bit of rework on the SOAP addition to OI2 published on this > list > before. While the last version needed changes in OI2, this is no longer > the > case. > > A new version which should work with OI-1.99_04 is attached. > ... Are you planning on releasing this as a separate module? I'd like to see it in the OI2 core if possible -- we wouldn't require SOAP::Lite as a dependency, but it will be there if people need it. Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Chris W. <ch...@cw...> - 2004-10-14 12:17:28
|
> I've done a bit of rework on the SOAP addition to OI2 published on this > list > before. While the last version needed changes in OI2, this is no longer > the > case. > > A new version which should work with OI-1.99_04 is attached. > ... Are you planning on releasing this as a separate module? I'd like to see it in the OI2 core if possible -- we wouldn't require SOAP::Lite as a dependency, but it will be there if people need it. Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: Kutter M. <mar...@si...> - 2004-10-14 07:49:51
|
Hi all there, I've done a bit of rework on the SOAP addition to OI2 published on this list before. While the last version needed changes in OI2, this is no longer the case. A new version which should work with OI-1.99_04 is attached. The SPEC-file included may not work on all distributions - a standard perl Makefile.PL make make install should do. Please try out and comment. Regards, Martin Kutter |
From: Kutter M. <mar...@si...> - 2004-10-12 09:02:59
|
Hi * ! OI2::DataSourceManager::LDAP currently misses some functionality. One of these is the ability to use TLS (Transport Layer Security) on LDAP connections (Net::LDAP does support that). The attached patch makes the use of TLS in OI2 LDAP datasources configurable via the [datasource ldap] start_tls = 1|0 directive. The default is not to use TLS, which is the current OI2 behaviour. This change allows to use secure connection to OI2 backends, while being non-intrusive to existing applications. Regards, Martin Kutter |
From: Kutter M. <mar...@si...> - 2004-10-12 08:42:48
|
Hi * ! Recently I had the need to both use [% PERL %] blocks in TT templates and allow templates to [% INCLUDE %] themselves, i.e. allow TT recursion. The attached patch makes the use of [% PERL %] blocks configurable by the directive (patch against OpenInteract2-1.99_04). [content_generator TT] eval_perl = 1|0 in the server.ini configuration file. The default is not to allow the evaluation of [% PERL %] blocks in TT templates (OI2 currently does not allow Perl blocks). Recursion can be configured via the [content_generator TT] recursion = 1|0 directive. The default is not to allow recursion (OI2 currently does not allow recursion). Making recursion and PERL blocks configurable grealy increases OI2 functionality (especially recursion - some stuff like trees is quite difficult to display without). As the default values represent the current OI2 behaviour, the change should be non-intrusive for existing applications. Regards, Martin Kutter |
From: Heiko K. <Hei...@gm...> - 2004-10-04 14:29:04
|
I tend to use perls 'Taint' mode whenever writing web-applications. There are often problems in one or the other package but most of the time it was possible to fix those problems. And taint mode helps a lot when developing 'save' modules. I just started the latest cvs-version of oi with taint: perl -Tw script/oi2_daemon Using OPENINTERACT2 environment for website directory: /disk1/local/oi Could not include module 'OpenInteract2::SPOPS::LDAP' to handle SPOPS configuration information: Insecure dependency in require while running with -T switch at (eval 305) line 3. and with taint-warning: perl -tw script/oi2_daemon gave a real lot of warnings. I think most of the warnings are connected to libraries which are loaded from config-files and then 'eval'ed and thus are not really bad. I guess with some restrictions on security handling i.e. all modules/config-files contain 'save' data it should be possible to run OI in a tainted environment. (Well, this would mean, that installation of packages should only happen from the machine (as it is now), not from the net) I'm a bit unsure how SPOPS will handle tainted data from the db? Did somebody already try to make OI taint-save? Or running SPOPS with DBI's Taint=>1 setting? Or is the whole taint-idea of perl completely out of date, since no other language as far as I know implemented something similar. Best regards, Heiko |
From: Chris W. <ch...@cw...> - 2004-09-28 16:12:10
|
> In OI 1.60 ( # $Id: OpenInteract.pm,v 1.53 2004/05/30 15:13:49 lachoy > Exp $ ) there is a bug in function send_static_file, which is nasty > small bug preventing the delivery of static files. In line 500 there is > a redeclaration of $fh within a block ( my $fh = Apache->gensym ) which > hides the original declaration. This leads to the message "Bad file > handle" in all cases for file delivery. Removal of "my" helps. Yuck. I've committed an update to CVS which you can find here: http://openinteract.sourceforge.net/OpenInteract.pm I also added a JIRA issue: http://jira.openinteract.org/browse/OI-6 If it works for you -- it should; as you say, changes are very minor -- I'll release 1.62 shortly. Thanks for the report. Chris -- Chris Winters (ch...@cw...) Building enterprise-capable snack solutions since 1988. |
From: <And...@Be...> - 2004-09-28 15:20:05
|
Hi all, In OI 1.60 ( # $Id: OpenInteract.pm,v 1.53 2004/05/30 15:13:49 lachoy Exp $ ) there is a bug in function send_static_file, which is nasty small bug preventing the delivery of static files. In line 500 there is a redeclaration of $fh within a block ( my $fh =3D Apache->gensym ) = which hides the original declaration. This leads to the message "Bad file handle" in all cases for file delivery. Removal of "my" helps. Regards, Andreas |
From: Vsevolod (S. I. <si...@cs...> - 2004-09-24 15:59:21
|
Hi, Just to let you know that I've rewritten one small application at work to use the has_a feature and made sure that none of the other applications are broken by the changes in the SPOPS code. I still need, though, to convert a couple of other applications, plus probably write a new one to test all the new features in production environment. Simon -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com Terrorism is a tactic and so to declare war on terrorism is equivalent to Roosevelt's declaring war on blitzkrieg. Zbigniew Brzezinski, U.S. national security advisor, 1977-81 |
From: Chris W. <ch...@cw...> - 2004-09-21 10:07:02
|
On Sep 21, 2004, at 5:02 AM, Heiko Klein wrote: > Why is there the get_current function in Request in OI2 1.99_05? As > the documentation says, the current request can be fetched by > CTX->request or OI2::Request->get_current. > > get_current is not implemented for Request/Apache.pm and > Request/Apache2.pm, and the implementation for CGI, LWP and Standalone > might give different results from CTX->request when switching the > implementation (its stored in the implementation class). I think it was a pre-emptive "let's see if this will work" for running under threaded environments. But now I really don't know, and I don't think it's needed anymore. > I had some problems while debugging because of this double store of > request. Is a patch welcome? I'll get rid of this: http://jira.openinteract.org/browse/OIN-82 Thanks, Chris -- Chris Winters Creating enterprise-capable snack systems since 1988 |
From: Heiko K. <Hei...@gm...> - 2004-09-21 09:02:14
|
Why is there the get_current function in Request in OI2 1.99_05? As the documentation says, the current request can be fetched by CTX->request or OI2::Request->get_current. get_current is not implemented for Request/Apache.pm and Request/Apache2.pm, and the implementation for CGI, LWP and Standalone might give different results from CTX->request when switching the implementation (its stored in the implementation class). I had some problems while debugging because of this double store of request. Is a patch welcome? Best regards, Heiko |
From: Ivan P. <iv...@pe...> - 2004-09-19 01:41:22
|
Hi! The first five people who email me will get an invite to Gmail. |
From: Andrew S. H. <ste...@ci...> - 2004-09-15 14:13:27
|
DOH! Forgot to attached the patches...here they are. Regards, Sterling |
From: Andrew S. H. <ste...@ci...> - 2004-09-15 14:06:02
|
I found some bugs in my code. The first one was a pretty simple one in that fetch_group and fetch_iterator died if given no arguments. The second one was a little worse. If you requested all records from the database, or a significant number of them, you never got all of them. Instead, you got duplicates of some. This was because I misunderstood how paging worked. After a bit of investigation, I pinned down the problem and have stopped the dupes and all records are now being returned. Cheers, Sterling On Sep 9, 2004, at 6:55 PM, Andrew Sterling Hanenkamp wrote: > <ActiveDirectory-1.pm> -- <>< ><> <>< ><> <>< ><> <>< ><> <>< ><> <>< ><> <>< ><> <>< ><> Andrew Sterling Hanenkamp System Administration Manager Computing & Information Sciences Kansas State University http://www.cis.ksu.edu/~sterling/ ste...@ci... It's not that perl programmers are idiots, it's that the language rewards idiotic behavior in a way that no other language or tool has ever done. -- Erik Naggum |
From: Andrew S. H. <ste...@ci...> - 2004-09-09 23:55:52
|
I've attached my ActiveDirectory extensions: SPOPSx::ActiveDirectory and SPOPSx::Iterator::ActiveDirectory. There's nothing really linked to ActiveDirectory, these are just mods to make SPOPS function on ActiveDirectory better. Let me know what you think. Regards, Sterling |
From: Vsevolod (S. I. <si...@cs...> - 2004-09-09 13:08:05
|
> I'm actually keen to offload most/all of SPOPS improvements/maintenance on > other folks. (Simon, I'm looking in your direction.) If you're interested > shoot me an email -- folks contributing code/ideas to the mailing list are > *strongly* preferred. With pleasure. I still need to test my new code at my work projects, but if there are other things that are crying for a rewrite meanwhile, let me know. Simon -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com Terrorism is a tactic and so to declare war on terrorism is equivalent to Roosevelt's declaring war on blitzkrieg. Zbigniew Brzezinski, U.S. national security advisor, 1977-81 |
From: Chris W. <ch...@cw...> - 2004-09-09 02:03:36
|
> ... > My opinion from hanging on this list is, that Chris - though building > wonderful software - is packed with work up to the roof, so he just > doesn't > have the time to re-work subprojects like SPOPS (And he doesn't have an > LDAP > server handy - ain't that so ?). That's so, on both counts. > So, Chris - maybe you would like to "outsource" SPOPS::LDAP maintenance > for > a while ? > If someone else would join me, I'd offer to take over SPOPS::LDAP > maintenance for a limited time (say, a year). I love it! Send me your SF username offlist and I'll add you to the project; this will give you read/write CVS access. I'm actually keen to offload most/all of SPOPS improvements/maintenance on other folks. (Simon, I'm looking in your direction.) If you're interested shoot me an email -- folks contributing code/ideas to the mailing list are *strongly* preferred. Later, Chris -- Chris Winters Creating enterprise-capable snack systems since 1988 |
From: Kutter M. <mar...@si...> - 2004-09-08 15:24:48
|
Hi Teemu, Your step 6. is not an issue with perl >= 5.8.0 Perl >= 5.8 supports IO-Layers that can be used to filter/recode content almost transparently (almost means: exactly like your example). I don't think that all backends need to support utf-8 - if they don't that's no harm as long as we can recode it in the backend (currently we're recoding iso-8859-1 to utf8 for utf8-aware backends). As for 7., using perl's locale() should override the broad scope of utf8's \w meaning. And backends that support utf8, normally support searches etc on them, too. I agree with you that full utf8-support will probably require perl >= 5.8. But as we're probably talking about years until everything's up & working, this should not be an issue (hey, there's perl 5.10 out by nor - and perl6 will raise, too. Sure it will.). Regards, Martin Kutter -----Original Message----- From: ope...@li... [mailto:ope...@li...]On Behalf Of Teemu Arina Sent: Mittwoch, 8. September 2004 17:02 To: Kutter Martin Cc: 'ope...@li...' Subject: Re: [Openinteract-dev] Small i18n issue > Step 4 would probably be an issue for the Controller - OI2::Controller::Raw > should never re-code anything, and alternative controllers like, let's say > for outputting PDFs - probably shouldn't recode their stuff, too. I do agree. Although content_type should not include charset=iso-8859-1 as it does now. > This would allow OI2 to use UTF-8 only in it's internal processing, but > serve frontends with potentially different character encodings. Utf8 atleast for internal data presentation is the way to go. I would also pay attention that utf8 from backend to frontend is also possible without losing any bits or forcing to certain character set in the middle. i.e. russian interface with chinese content should be possible. This of course requires that all the backends speak utf8. > 1. get the charset from the request > 2. encode all parameters as UTF-8 when fetching them in the request object > (all but uploads) > 3. set the Content-type: charset="foo" for the response (if needed). > 4. encode all output in the Response object to the appropriate charset just > before sending it (if needed). For full UTF-8 support, also: 5. translation files (I18N/maketext framework) should be in standard GNU gettext (PO) format which is binary safe, instead of the current system which is poorly utf-8 compatible 6. Reading/writing OI2 configuration files should also be utf-8 compatible, with something like: open( INI, ">:utf8", "action.conf" ); 7. Searching and text parsing should be utf8 compatible. This means use utf8; and support for utf8 on the database backends. At the moment =~ /\w/ doesn't work very well with utf8 content ;) Full support most likely requires perl 5.8.x =(... 5.6.x utf8 support just sucks (Encode module for example does not work with 5.6.x). -- -------------- Teemu Arina www.dicole.org ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ openinteract-dev mailing list ope...@li... https://lists.sourceforge.net/lists/listinfo/openinteract-dev |
From: Teemu A. <te...@io...> - 2004-09-08 15:22:27
|
Also a slight note, it seems that some broken browsers (tm) do not obey the charset of the document when posting forms. It might be a good idea to use a form tag like the following by default: <form accept-charset="utf-8" enctype="application/x-www-form-urlencoded"> Sends the form in utf-8 to server. Notice also weird problems with utf8 and template toolkit: http://template-toolkit.org/pipermail/templates/2003-March/004314.html Also see: http://template-toolkit.org/pipermail/templates/2003-November/005342.html I don't know the status of utf-8 in the current version of TT. -- -------------- Teemu Arina Ionstream Oy / Dicole Komeetankuja 4 A 02210 Espoo FINLAND Tel: +358-(0)50 - 555 7636 http://www.dicole.fi "Discover, collaborate, learn." |
From: Teemu A. <te...@io...> - 2004-09-08 15:02:39
|
> Step 4 would probably be an issue for the Controller - OI2::Controller::Raw > should never re-code anything, and alternative controllers like, let's say > for outputting PDFs - probably shouldn't recode their stuff, too. I do agree. Although content_type should not include charset=iso-8859-1 as it does now. > This would allow OI2 to use UTF-8 only in it's internal processing, but > serve frontends with potentially different character encodings. Utf8 atleast for internal data presentation is the way to go. I would also pay attention that utf8 from backend to frontend is also possible without losing any bits or forcing to certain character set in the middle. i.e. russian interface with chinese content should be possible. This of course requires that all the backends speak utf8. > 1. get the charset from the request > 2. encode all parameters as UTF-8 when fetching them in the request object > (all but uploads) > 3. set the Content-type: charset="foo" for the response (if needed). > 4. encode all output in the Response object to the appropriate charset just > before sending it (if needed). For full UTF-8 support, also: 5. translation files (I18N/maketext framework) should be in standard GNU gettext (PO) format which is binary safe, instead of the current system which is poorly utf-8 compatible 6. Reading/writing OI2 configuration files should also be utf-8 compatible, with something like: open( INI, ">:utf8", "action.conf" ); 7. Searching and text parsing should be utf8 compatible. This means use utf8; and support for utf8 on the database backends. At the moment =~ /\w/ doesn't work very well with utf8 content ;) Full support most likely requires perl 5.8.x =(... 5.6.x utf8 support just sucks (Encode module for example does not work with 5.6.x). -- -------------- Teemu Arina www.dicole.org |
From: Vsevolod (S. I. <si...@cs...> - 2004-09-08 13:35:07
|
Not a complete rewrite - just adding the has_a functionality and a few related enhancements. Simon Kutter Martin wrote: > Hi Andrew ! > > As far as I know, Vsevolod (Simon) Ilyushchenko is working on a complete > SPOPS rewrite - maybe our ideas are something to integrate for him. -- Simon (Vsevolod ILyushchenko) si...@cs... http://www.simonf.com Terrorism is a tactic and so to declare war on terrorism is equivalent to Roosevelt's declaring war on blitzkrieg. Zbigniew Brzezinski, U.S. national security advisor, 1977-81 |
From: Kutter M. <mar...@si...> - 2004-09-08 12:22:31
|
Hi Teemu, Hi *, looks like we just found a not-so-small issue... While SPOPS::Tool::UTFConvert can handle conversion for SPOPS backends, there's nothing like that for the OI2 frontends (say, Template::Toolkit and the like). My suggestion for the "whole OI2 i18n charset encoding" would be: 1. get the charset from the request 2. encode all parameters as UTF-8 when fetching them in the request object (all but uploads) 3. set the Content-type: charset="foo" for the response (if needed). 4. encode all output in the Response object to the appropriate charset just before sending it (if needed). Step 4 would probably be an issue for the Controller - OI2::Controller::Raw should never re-code anything, and alternative controllers like, let's say for outputting PDFs - probably shouldn't recode their stuff, too. This would allow OI2 to use UTF-8 only in it's internal processing, but serve frontends with potentially different character encodings. It would also remove the need for charset conversions in SPOPS backends (as long as the backends are UTF-8 capable - most perl modules should be) - they would have the appropriate form already, and, the number of supported charsets would largely superseed the current sad 'Latin1'. Regards, Martin -----Original Message----- From: Teemu Arina [mailto:te...@di...] Sent: Mittwoch, 8. September 2004 11:56 To: ope...@li... Cc: Kutter Martin; 'ope...@li...' Subject: Re: [Openinteract-dev] Small i18n issue > I've been able to track this down to a charset problem. > LDAP expects directoryString attributes to be in UTF-8 encoding. The > perl-ldap interface (Net::LDAP) does not provide UTF-8 conversions by > default, so these are to be done by the application using Net::LDAP. This > is no big deal - just a > > use Encode; > $value = decode($charset, $value); I had a similar problem with DBD::mysql and UTF-8. DBI has no general policy for UTF-8, so it has to be implemented by DBD:s themselves. DBD::mysql does nothing to that issue. If you store UTF-8 strings in the database and retrieve them back, these strings do not get marked as UTF-8. Later it might happen that your UTF-8 strings get encoded as UTF-8, because Perl didn't mark those as UTF-8 already =) Encode module helps fixing this problem for example in SPOPS::DBI::MySQL (define a post_fetch_action() that converts all data fields). I wonder when you are able to write utf-8 compatible software without mocking all the internals on several layers... It has been around so many years and still many module writers ignore it. It also wasn't until mysql 4.x when they included UTF-8 support in character type fields. > The problem is, that the only available solution to get the charset used in > the request is to grab it from the underlying Apache::Request or > CGI::Request handle - not really easy and not really portable: > > my $contentHeader = CTX->request->apache->headers_in()->{ Content-Type }; I noticed the same thing. I also found another way to set it: CTX->response->content_type( 'text/html; charset=utf-8' ) CTX->response->charset() would be nice to have. Greetings, - Teemu |