[zope-pt] Re: Workflow - Abortar transição

2009-04-02 Por tôpico vinicius_marco
--- Em zope-pt@yahoogrupos.com.br, Luciano Pacheco lucm...@... escreveu

 2009/3/31 vinicius_marco marco_vinic...@...
 
  Pessoal,
 
   Preciso criar uma validação que impeça a transição para determinado estado
  enquanto as condições não forem atendidas.
 
   Assim, por exemplo, caso se deseje publicar um objeto inconsistente, a
  transição deve ser abortada e uma mensagem exibida.
 
   Tentei utilizar os scripts nos eventos de pre e pos transição, mas não vi
  forma de abortar a transição uma vez iniciada.
 
 
 Na transição tem como usar um expression, pense nele como sendo um condition
 (do template). Eu já utilizei e funcionou.
 
 A diferença de usar o expression é que enquanto o objeto estiver
 incosistente a transição não poderá ser feita.
 
 Crie um método no seu objeto que diga se ele está insconsistente e no
 expression use algo como here/estaInconsistente.
 
 Ou crie uma browser view que diga se o objeto está incosistente e use algo
 como here/@@estaInconsistente no expression.
 
 Lá na tela da transition na ZMI tem uma ajuda ao lado do campo Expression,
 lá vc encontra mais informações.
 
 Até mais,
 -- 
 Luciano Pacheco
 Simples Consultoria
 www.simplesconsultoria.com.br


Obrigado Luciano, mas desta forma o usuário fica sem saber que há transição 
possível até que uma determinada condição seja atendida. Isto é, até que o 
usuário preencha uma informação a transição não aparecerá no combo superior.   

Precisávamos de uma solução onde a transição estivesse sempre lá, mas houvesse 
uma validação prévia sempre que a mesma fosse disparada de modo a permitir ou 
não a continuidade do processo. 

Acabamos por utilizar uma solução de contorno. Consiste em alterar no 
workflow o parâmetro URL da transição específica. Ao invés de invocar o 
content_status_modify, alteramos para um cpt ou cpy que se encarrega de dar o 
devido tratamento e decidir pela execução da transição. 

Não foi como imaginávamos, mas não ficou tão deselegante. 

[]'s



[zope-pt] Workflow - Abortar transição

2009-03-31 Por tôpico vinicius_marco
Pessoal, 

  Preciso criar uma validação que impeça a transição para determinado estado 
enquanto as condições não forem atendidas. 

  Assim, por exemplo, caso se deseje publicar um objeto inconsistente, a 
transição deve ser abortada e uma mensagem exibida. 

  Tentei utilizar os scripts nos eventos de pre e pos transição, mas não vi 
forma de abortar a transição uma vez iniciada. 

[]'s



[zope-pt] Re: Problema bizarro com ImageField

2008-10-09 Por tôpico vinicius_marco
Clayton, 

Em princípio sim, pelo seguinte: 

O comportamento é estranho porque, apenas para estas novas
edições, ao se colocar o sufixo _mini, o erro retornado é '404 objeto
não encontrado'. É como se ao invés de interpretar a requisição e
identificar que se trata de uma solicitação de redimensioanamento, o
Zope tentasse encontrar a imagem coma extensão _mini, que, de fato,
não existe. O sufixo é apenas para informar o tamanho desejado. 

Para as edições que já existiam antes da migração de servidor,
tudo funciona normalmente. 

De qualquer maneira, vou fazer o teste que você indicou. 

Valeu. 

--- Em zope-pt@yahoogrupos.com.br, Clayton [EMAIL PROTECTED] escreveu

 Vinicius,
 
 O PIL pode não esta instalado corretamente. Você executou o teste após
 a instalação do PIL ? Se não me engano é python selftest.py.
 
 abraços,
 
 Clayton
 
 2008/10/8 vinicius_marco [EMAIL PROTECTED]:
  Pessoal,
 
O problema é o seguinte: A aplicação estava funcionando normalmente
  no servidor 'A' rodando junto com outras aplicações, mas decidiu-se
  disponibilizá-la num Servidor dedicado para evitar a concorrência com
  as ouytas aplicações hospedadas.
 
Portanto, fez-se a cópia do *.fs do site e levantou-se a nova
  instância com as mesmas configurações da plataforma (python, zope e
  plone, PIL e etc).
 
O site subiu normalmente mas um comportamento muito estranho passou
  a ocorrer:
 
Os campos ImageField de um determinado tipo (edição) deixaram de
  aceitar o tag para os sizes definidos, ou seja,
  http://endereço/tipo/edicao_imagem funciona normalmente, mas
  http://endereço/tipo/edicao_imagem_mini retorna '404 não encontrado'.
  O mais curioso é que para as edições criadas antes da migração de
  servidor  o sufixo '_mini' continua retornando as imagens
  redimensionadas, já as edições que foram criadas depois da migração
  dão o erro 404 já citado.
 
Alguma suspeita? Uma única diferença entre os ambientes é a
  existência do CacheFu e do Squid configurados no novo servidor.
 
  Valeu!
 
 
  
 
  Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
  Para desistir envie uma mensagem em branco para:
[EMAIL PROTECTED] do Yahoo! Grupos
 
 
 





[zope-pt] Re: Problema bizarro com ImageField

2008-10-09 Por tôpico vinicius_marco
Pessoal,

 Parece que encontramos a causa do problema.

http://plone.org/documentation/error/ioerror-decoder-jpeg-not-available

[]'s



--- Em zope-pt@yahoogrupos.com.br, vinicius_marco [EMAIL PROTECTED]
escreveu

 Pessoal,

O problema é o seguinte: A aplicação estava funcionando
normalmente
 no servidor 'A' rodando junto com outras aplicações, mas decidiu-se
 disponibilizá-la num Servidor dedicado para evitar a
concorrência com
 as ouytas aplicações hospedadas.

Portanto, fez-se a cópia do *.fs do site e levantou-se a nova
 instância com as mesmas configurações da plataforma (python,
zope e
 plone, PIL e etc).

O site subiu normalmente mas um comportamento muito estranho passou
 a ocorrer:

Os campos ImageField de um determinado tipo (edição) deixaram de
 aceitar o tag para os sizes definidos, ou seja,
 http://endereço/tipo/edicao_imagem funciona normalmente, mas
 http://endereço/tipo/edicao_imagem_mini retorna '404 não
encontrado'.
 O mais curioso é que para as edições criadas antes da
migração de
 servidor  o sufixo '_mini' continua retornando as imagens
 redimensionadas, já as edições que foram criadas depois da
migração
 dão o erro 404 já citado.

Alguma suspeita? Uma única diferença entre os ambientes é
a
 existência do CacheFu e do Squid configurados no novo servidor.

 Valeu!





[zope-pt] Problema bizarro com ImageField

2008-10-08 Por tôpico vinicius_marco
Pessoal, 

   O problema é o seguinte: A aplicação estava funcionando normalmente
no servidor 'A' rodando junto com outras aplicações, mas decidiu-se
disponibilizá-la num Servidor dedicado para evitar a concorrência com
as ouytas aplicações hospedadas. 

   Portanto, fez-se a cópia do *.fs do site e levantou-se a nova
instância com as mesmas configurações da plataforma (python, zope e
plone, PIL e etc). 

   O site subiu normalmente mas um comportamento muito estranho passou
a ocorrer: 
   
   Os campos ImageField de um determinado tipo (edição) deixaram de
aceitar o tag para os sizes definidos, ou seja,
http://endereço/tipo/edicao_imagem funciona normalmente, mas
http://endereço/tipo/edicao_imagem_mini retorna '404 não encontrado'.
O mais curioso é que para as edições criadas antes da migração de
servidor  o sufixo '_mini' continua retornando as imagens
redimensionadas, já as edições que foram criadas depois da migração
dão o erro 404 já citado. 

   Alguma suspeita? Uma única diferença entre os ambientes é a
existência do CacheFu e do Squid configurados no novo servidor. 

Valeu!



[zope-pt] Re: Meio milhão de notícias

2008-04-18 Por tôpico vinicius_marco
Até fizemos isso no nosso site. Mas não usamos o at_post_create e nem
o subscriber. O script de criação de notícia já estava customizado e
acrescentamos a regra da pasta lá. 

A propósito, o site da Agência Brasil que você citou parece ter cerca
de 1 milhão de notícias catalogadas. 

Alguém tem idéia de quem participou do seu desenvolvimento? Qual a
estrutura utilizada? 

Está com uma performance razoável mesmo pesquisando e navegando por
uma boa quantidade de registros.

[]'s,  


--- Em zope-pt@yahoogrupos.com.br, Davi Medeiros [EMAIL PROTECTED] escreveu

 O pessoal aqui http://www.agenciabrasil.gov.br/ costuma separar as
 notícias por ano, mês e dia. Faz bastante sentido, se alguém puder dar
 uma dica de como operacionalizar isso, agradeço. (quando o relógio
 virar meia-noite, crie uma nova pasta. quando acrescentarem uma
 notícia na raiz do site, mova este objeto para a pasta do dia)
 
 Bom dia!
 DL
 
 --- Em zope-pt@yahoogrupos.com.br, vinicius_marco
 marco_vinicius@ escreveu
 
  
 Talvez a quantidade exagerada de notícias numa única pasta seja a
  causa... Mas qual o recomendado? 
  
  Abs..





[zope-pt] Re: Meio milhão de notícias

2008-04-02 Por tôpico vinicius_marco
--- Em zope-pt@yahoogrupos.com.br, Fabiano Weimar dos Santos
[EMAIL PROTECTED] escreveu

Caros, 

   O site hoje está com 50.000 notícias e a performance está inaceitável. 

   1. Utilizamos BTreeFolder para armazenar as notícias. 
   2. Existe um indíce para as datas. 
   3. As pesquisas usam exclusivamente o portal_catalog e as listagens
não invocam o getObject(), usando apenas os Brains. 
   4. Não há um grande número de usuários acessando o site. 

   O servidor é quadriprocessado com 4 GB de RAM. 

   Será que o Zope/Plone é recomendado apenas para pequenas soluções? 
   
   Existe algo que seja feito para prepará-lo para grandes volumes
de informação? 

Abs, 
   


 2008/3/6 vinicius_marco [EMAIL PROTECTED]:
Não sei se você percebeu, mas para um volume de informações
como esse,
eu acho que vale a pena tomar cuidado e adotar soluções de SGDB
relacional e indexação externa (estilo XAPIAN)/Lucene).
 
   Pois.. mas o ZODB não é otimizado para gerenciar e buscar conteúdo?
   Não é esse o propósito? Vou ter que apelar para o relacional por
causa
   de volume?
 
 Como eu disse, talvez.
 
   Uma pasta por dia? Certo, mas aí vem uma dúvida. Como otimizo uma
   busca que envolva 10 dias de notícias? Dá para informar mais de um
   path para o portal_catalog numa única consulta? Se eu não informar o
   path a pesquisa será feita em todos os milhares de registros sem
   necessidade.
 
 Para fazer buscas por data, use um DateIndex e não busca por path.
 
   Não.. Mas supondo que seja isso. Não há solução? Não dá para
fazer uma
   leitura bufferizada e ir persistindo em disco imediatamente? O commit
   feito em nosso código melhorou a performance, mas não foi o
suficiente.
 
 Persistir imediatamente significa fazer um commit para cada objeto.
 Isso com certeza tornaria as transações menos e o consumo de memória
 seria menor, mas terias mais atividade de IO (disco).
 
 -- 
 Fabiano Weimar dos Santos (xiru)
 Weimar Consultoria
 
 Hospedagem Plone, Zope e Python
 http://www.pytown.com





[zope-pt] Re: Meio milhão de notícias

2008-04-02 Por tôpico vinicius_marco
Clayton, 

   A questão é que a lentidão acontece com apenas um acesso. 

   Com mais detalhes, existe um BTreeFolder que armazena todas as
notícias. Após importar cerca de 60K notícias para este BTreeFolder a
aplicação apresentou lentidão. 

   1. Acessar a FolderNoticias e adicionar um novo item leva mais de
minutos. 
   2. As pesquisas feitas por usuário anônimo até que apresentam uma
performance razoável, mas só após um restart e pack de 0 dias efetuado. 
   3. O Data.fs está com mais de 1GB e, de acordo com o estimado, deve
chegar a quase 10GB. 

   Assim, entendo que alguns ajustes devem ser realmente efetuados
quando a aplicação for para produção. Mas é visível que o
comportamento antes desta etapa já me mostra que a plataforma
Zope/Plone do jeito que está não vai aguentar o tranco. 

   Uma série de práticas de desenvolvimento para boa performance foram
utilizadas, como, por exemplo, o uso de índices para data, uso da
BTreeFolder em função do grande volume de notícias, evitar o uso de
getObject(), etc.. 

   Talvez a quantidade exagerada de notícias numa única pasta seja a
causa... Mas qual o recomendado? 

Abs.. 
   


--- Em zope-pt@yahoogrupos.com.br, Clayton [EMAIL PROTECTED] escreveu

 Vinicius,
 
 - Como esta as configuração do seu Zope ?
 
 - Ele esta fazendo cache dos objetos mais utilizados ?
 
 - Qual tamanho do cache de cada instância ?
 
 - O que você esta usando para balanceamento de carga ?
 
 - Quantas instâncias estão rodando no seu servidor ?
 
 - O que tem instalado no mesmo servidor  do Zope ? instâncias, zeo,
 apache, squid, bd relacional ?
 
 - Você esta usando algum Web Cache ?
 
 O Zope como qualquer outra aplicação que exige uma demanda grande
 necessita de ajustes finos para melhorar a sua performance, caso você
 não tenha esses conhecimentos sugiro que busque um profissional para
 mostrar o que pode esta ocorrendo.
 
 
 abraços,
 
 Clayton





[zope-pt] Meio milhão de notícias

2008-03-04 Por tôpico vinicius_marco
Pessoal, 

   Estamos desenvolvendo um sítio que armazenará mais de meio milhão
de notícias já quando entrar em produção. Estes registros virão de uma
migração de uma base já existente. 

  Questões: 

  1. Zope/Plone agüenta o tranco? 

  2. Posso colocar todos os registros em uma única pasta (LargeFolder
- BtreeFolder)? Tenho que separar por algum critério (notícias de 2005
numa pasta chamada not_2005, not_2006, not_2007, por exemplo)? Sendo
que cada ano tem mais de 200.000 registros..

  3. Instalamos o TextIndexNG3 por considerá-lo mais robusto que o
ZCTextIndex. Contudo estamos tendo problemas quando o usuário coloca
caracteres não convencionais no campo de busca. Ex.: 1. , (vírgula) 2.
Abertura de parenteses sem fechamento (parece que ele tenta
interpretar a consulta), etc. Vale à pena? Volto patra o ZCTextIndex?

  4. A importação de cada registro da notícia que vem do banco SQL é
feita via um ExternalMethod que lê um arquivo texto do disco e insere
no ZODB via invokeFactory. Quando executamos a importação de um
arquivo com 3000 registros o comportamento é satisfatório até os
primeiros 100 registros (menos de um segundo por registro).. a partir
daí há uma degradação de performance muito grande, levando a inserção
durar mais de 3 segundos por registro. Existe algum macete para este
tipo de operação? Já tentamos realizar o commit a cada 50 registros
inseridos para aliviar o backlog do ZODB e tivemos um ganho rezoável.
Mas acima de 5000 registros por arquivo não vai nem com reza brava. 

É isso aí pessoal. 

Toda dica é bem vinda. 

[]'s 

Marcov, 



[zope-pt] Viewlets Plone 3.0

2007-09-19 Por tôpico vinicius_marco
Galera, 

  Fui ver as novidades do Plone 3.0 e vi que, entre muitas coisas
muito interessantes, as viewlets, que são usadas em praticamente toda
a nova versão, foram, pra mim, uma incógnita. 

  Não consegui enxergar as melhorias por trás desta nova abordagem.
Sinceramente, vi um nível de complexidade a mais, desnecessário, dada
a facilidade com que se pode customizar qualquer template através das
velhas e batidas macros. 

  Sem contar que, pelo que vi, até que o template fique 100%, vão ser
necessários alguns restarts no Zope já que arquivos .py passam a fazer
parte da parafernália. 

   Alguém poderia me esclarecer as vantagens concretas? 

  Abs, 



[zope-pt] Certificado Digital

2007-06-28 Por tôpico vinicius_marco
Pessoal, 

   Alguém já trabalhou com certificado digital em PZP? 

   A idéia é usar o certificado do usuário para autenticá-lo, permitir
verificar assinaturas de documentos assinados por outros usuários, etc. 

   Já dei uma pesquisada e vi que existem libs ativas do python para
trabalhar com criptografia, geração de par de chaves, assinatura
usando diversos algoritmos.. Mas como usar isso no ambiente WEB? 

   Não consegui ver nem por onde começar.. Como fazer, por exemplo, o
navegador exibir a tela onde estão os certificados na estação do
usuário? E como recuperar o certificado pelo Request? 

[]'s 

Marco



[zope-pt] Manutenção de usuários - deficiências.

2007-06-28 Por tôpico vinicius_marco
Pessoal, 

   O cadastro de usuários no Plone é realizado via MembershipTool e a
definição dos seus dados (MemberData) segue um conceito diferente do
Archetypes. 

   O que quero dizer é que este cadastro, até onde pude perceber, é um
pouco deficiente, por alguns motivos. Por exemplo, não podemos fazer
referência aos usuários a partir de nossas classes de dados em
Archetypes. Ou seja, não dá para um ReferenceField apontar para um
usuário, já que este não é um Archetype. Além disso, não vi como criar
índices que me permitam realizar buscas eficientes por qualquer campo
presente no memberdata. 

Sítios com milhares de usuários acabam por sofrer em termos de
performance quando é preciso manter de alguma forma o cadastro de
usuários via Plone. Dei uma olhada no código fonte do searchMemberData
e me deparei com uma busca sequencial!!! E o pior, só posso buscar por
um determinado campo de cada vez e este tem que ser do tipo String.
Uma outra coisa que achei muito estranha é a tela de acl_users da ZMI
exibir todos cadastrados de uma só vez, sem nenhum tipo de paginação.
Se meu site tiver 100 mil usuários, tenho de esperar, na ZMI, que
todos eles sejam exibidos... 

Não sei se vocês já usam um outro tipo de solução para este caso
ou se eu estou sabendo pouco e, por isso, sofrendo sem necessidade. 

Dei uma olhada no Membrane, e este parece ser a salvação da
lavoura, na medida em que permite usar tipos Archetypes como
informação de usuários e grupos. Assim eu poderia definir meu usuário,
montar meus índices à vontade, e empurrar uns milhoezinhos de membros
para o sítio. Mas, até onde li, me pareceu que vou perder toda a
funcionalidade de manutenção de usuários que já vem pronta no site
Plone. Alguém já o utilizou, ou usou algum outro tipo de solução que
melhore o desempenho? 

Até o momento eu não acredito que uma ferramenta que se propõe a
sustentar Portais, não tenha uma preocupação com o que ele terá em
maior quantidade (depois de informação, é claro), ou seja, USUÁRIOS.
Por isso vim até aqui saber de vocês. 

[]'s

Marco



[zope-pt] Re: Certificado Digital

2007-06-28 Por tôpico vinicius_marco
Valeu Gustavo, 

Agora, o documento explica direitinho como lidar com certificados,
só que a manipulação das informações é feita com PHP. 

Já viu algo com python? 

[]'s

--- Em zope-pt@yahoogrupos.com.br, Gustavo Lepri [EMAIL PROTECTED]
escreveu

 Marco,
 
 Se você estiver utilizando o Apache é só aproveitar os recursos de SSL
 e certificado digital que ele oferece.
 
 No link[1] abaixo tem um material que explica como utilizar esses
recursos.
 
 Gustavo
 
 [1]
http://mosel.estg.ipleiria.pt/files/3_Autenticacao_Web_com_certificados_digitais.pdf
 
 
 Em 28/06/07, vinicius_marco[EMAIL PROTECTED] escreveu:
  Pessoal,
 
 Alguém já trabalhou com certificado digital em PZP?
 
 A idéia é usar o certificado do usuário para autenticá-lo, permitir
  verificar assinaturas de documentos assinados por outros usuários,
etc.
 
 Já dei uma pesquisada e vi que existem libs ativas do python para
  trabalhar com criptografia, geração de par de chaves, assinatura
  usando diversos algoritmos.. Mas como usar isso no ambiente WEB?
 
 Não consegui ver nem por onde começar.. Como fazer, por exemplo, o
  navegador exibir a tela onde estão os certificados na estação do
  usuário? E como recuperar o certificado pelo Request?
 
  []'s
 
  Marco
 
 
 
  Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
  Para desistir envie uma mensagem em branco para:
[EMAIL PROTECTED]
  Links do Yahoo! Grupos
 
 
 





[zope-pt] Re: Archetypes - Field com restrição unicidade

2007-03-17 Por tôpico vinicius_marco
Valeu Fernando, 

   Mas aí acaba caindo justamente na pesquisa na mão que eu achava
que seria evitável. Pelo validator resolve, com certeza, mas eu creio
que uma solução nativa fosse mais eficiente e mais produtiva. 

   Por exemplo, algo como a solução HoldingReference para as situações
onde haja possibilidade de quebra de integridade referencial. 

   De qualquer forma, valeu pela atenção. 

Abs, 




--- Em zope-pt@yahoogrupos.com.br, Fernando Correa Neto [EMAIL PROTECTED]
escreveu

 Opa!
 
 On 3/16/07, vinicius_marco [EMAIL PROTECTED] wrote:
 
 
 
 
 
 
  E aí galera, como vocês resolvem isso?
 
   Abs,
 
 Acredito que a abordagem correta seria especificar um validator que
 faça essa checagem para você.
 Procure no google ou no plone por validators ou custom validators.
 
 []'s
 Fernando
 
   --- Em zope-pt@yahoogrupos.com.br, vinicius_marco
   marco_vinicius@ escreveu
   
Pessoal,
   
qual a melhor maneira de se criar um tipo que tenha um field
que não
possa ter valor repetido? Existe algum tipo de índice que
ofereça este
recurso?
   
Exemplo:
   
Uma funcionalidade de envio de notícias para os emails cadastrados.
O portal deve verificar se o email informado por um novo usuário já
existe no registro de inscritos e só permitir a sua inscrição
em caso
negativo.
   
Ao invés de pesquisar na mão antes de permitir o registro deste
email,
não há uma forma de definir esta unicidade no schema?
   
grato pelas ajudas,
   
 
 





[zope-pt] Re: Archetypes - Field com restrição unicidade

2007-03-16 Por tôpico vinicius_marco
E aí galera, como vocês resolvem isso? 

Abs, 

--- Em zope-pt@yahoogrupos.com.br, vinicius_marco
[EMAIL PROTECTED] escreveu

 Pessoal, 
 
 qual a melhor maneira de se criar um tipo que tenha um field que não
 possa ter valor repetido? Existe algum tipo de índice que ofereça este
 recurso? 
 
 Exemplo: 
 
 Uma funcionalidade de envio de notícias para os emails cadastrados. 
 O portal deve verificar se o email informado por um novo usuário já 
 existe no registro de inscritos e só permitir a sua inscrição em caso
 negativo. 
 
 Ao invés de pesquisar na mão antes de permitir o registro deste email,
 não há uma forma de definir esta unicidade no schema? 
 
 grato pelas ajudas,





[zope-pt] Archetypes - Field com restrição unicidade

2007-03-14 Por tôpico vinicius_marco
Pessoal, 

qual a melhor maneira de se criar um tipo que tenha um field que não
possa ter valor repetido? Existe algum tipo de índice que ofereça este
recurso? 

Exemplo: 

Uma funcionalidade de envio de notícias para os emails cadastrados. 
O portal deve verificar se o email informado por um novo usuário já 
existe no registro de inscritos e só permitir a sua inscrição em caso
negativo. 

Ao invés de pesquisar na mão antes de permitir o registro deste email,
não há uma forma de definir esta unicidade no schema? 

grato pelas ajudas,