Re: [zope-pt] Importal noticias do CMF puro para o PLONE

2008-03-12 Por tôpico Rodrigo Senra

[ Andre Festrati ]:
-
|Agora nosso novo portal, já com o PLONE 2.5.3, está funcionando a
|toda prova, mas nos deparamos com um problema em migrar as notícias do
|CMF antigo..

Bem vindo ao clube.

|Pegamos e colocamos o antigo site com a mesma versão do CMF que  
|utiliza o PLONE 2.5.3 e quando fizemos um comparativos entre as  
|notícias e além das diferenças das propriedades dos objetos estamos  
|tendo tb problemas com ascii...

O encoding default do Python é ascii. O que é ótimo para países
de língua inglesa e péssimo para quase todo o resto do mundo ;o)
O que eu faço, despudoradamente é alterar o encoding default do
Python de ascii para utf-8 (ou iso-8859-1 quando era o caso).
E eu digo despudoradamente pois não uso o sitecustomize.py, mas
vou direto a fonte python_dir/lib/site.py e faço  a troca lá.
Todavia, ainda é preciso garantir que os objetos que estão dentro
estão coerentes com este encoding e que as trocas de dados com o mundo 
externo farão as conversões necessárias.

|Então geramos, pela interface do ZOPE, um XML  da notícia antiga com
|a ideia de comparar e gerar um script, mas novamente um problema que
|o na interface do ZOPE da erro ao tentar gerar um XML da notícia do
|PLONE.

Aí já não sei lhe orientar, pois nunca confiei na exportação em XML.
Mas vc poderia tentar habilitar o FTP e fazer um download de todo o diretório.
Em geral, os objetos são convertidos para uma forma textual (se não forem
arquivos - meta_type==File), e este pode ser um caminho de recuperação
de dados.

|Pergunto
|Alguém passou por isso aqui na lista?

O tempo todo. Ontem mesmo tive que migrar um Plone 2.0.5 para 2.5.5,
detalhe: portal feito por sei-lá-quem. Diversão pura.

Abração,
Senra


Re: [zope-pt] Re: Mesclar resultados encode e unicode

2008-01-18 Por tôpico Rodrigo Senra

[ Thiago M. Figueiredo ]:
-
|É que na veradade ele vem de um RSS pois o rss que estou chamando é
|ISO-8859-1

Então na rotina de recepção do RSS vc deve converter o encoding do
conteúdo RSS para UTF-8. Assim na hora de renderizar seu template de página
todo o conteúdo estará no mesmo encoding. 

Abração,
Rodrigo Senra


Re: [zope-pt] Problema na SESSION

2008-01-18 Por tôpico Rodrigo Senra

[ Pablo Nogueira ]:
-
|Pessoal,
|
|Estou com um problema na SESSION do zope. Quando tempo acessar
|context.REQUEST.SESSION acontece um erro muito estranho.

Isso acontece para qualquer acesso, ou para uma URL em específico ?

|
|Site Error
|
|An error was encountered while publishing this resource.
|
|*Error Type: KeyError*
|*Error Value: 1200574500*
|For more detailed information about the error, please refer to the
|error log.

Vc olhou o event.log no filesystem ? O que tinha lá ?

|Eu tenho uma ZEO e 7 instancias zope clients divididas em 2 maquinas
|diferentes.
|Na maquina que tem 4 instancias a SESSION funciona normalmente na outra
|maquina não. Tudo muito estranho

O ZOpe client com problemas já foi re-inicializado alguma vez depois
que este problema começou a se manifestar ?

|Eu pensei que o problema fosse com a montagem do temporary folder.

O que o levou a pensar que o problema estava nos temporary folders ?

|Esse problema é muito estranho. 


|Alguem já passou por algo desse tipo?

KeyError sim, 1200574500 não. ;o)
Mas a primeira só diz que vc tem uma referência para algo que não está mais lá.
Se remover quem fizer a referência, ou restaurar o caboclo referenciado
o problema vai embora.

|Alguem tem alguma ideia de como resolver?

Acho que precisamos entender melhor o problema antes de partir
para qualquer solução ;o)


I never guess. It is a capital mistake to theorize before one has data.
Insensibly one begins to twist facts to suit theories, 
instead of theories to suit facts.
Sir Arthur Conan Doyle (1859 - 1930), The Sign of Four, A Scandal in Bohemia


Arthur Conan Doyle foi o criador de Sherlock Holmes.
E, IMVHO, foi isso que influenciou a série de TV: House.
Mas esta teoria fica para outra ocasião ;o)

Abração,
Senra


Re: [zope-pt] Mesclar resultados encode e unicode

2008-01-16 Por tôpico Rodrigo Senra

[ Thiago M. Figueiredo ]:
-
|Opa galera,
|
|Estou tendo problema em fazer um resultado de um loop porque tenho 
|resultado em ISO-8859-1 e no mesmo loop tenho resultado UTF-8

Eu sugiro que vc examine a fonte dos dados (ou fontes) e tente
equalizar o padrão de codificação (encoding) já na fronteira
da sua aplicação. Por exemplo:
 - tenha certeza de que todos os dados armazenados
   no banco relacional estejam no mesmo encoding.
 - tenha certeza de que todos templates estejam escritos no mesmo encoding
 - ... e por aí vai



| eu devo transformar os dois em um encode unico
|correto? 

Correto. Mas *não* deve fazer isso no loop.

| mais não sei com fazer isso, alguém já passo por isso?

Corrija os dados manualmente na fonte, ou use utilitários
(editores de texto que suportam múltiplos encodings) ou 
até mesmo o aplicativo iconv que pode ser scriptizado.

Se precisar fazer a correção no código Python, use as funções
decode e encode.

  x = Represtação de origem
  x
 'Represta\xc3\xa7\xc3\xa3o de origem'
 # Está em UTF-8 note os 2 bytes - 1 caracter acentuado
  x.decode(utf-8).encode(iso-8859-1)
 'Represta\xe7\xe3o de origem'
 # Agora está em iso-8859-1, note 1 byte - 1 caracter acentuado

Abração
Senra





Atenciosamente,
Rodrigo Senra


Re: [zope-pt] [off-topic] Spam da Threepointsweb

2007-11-30 Por tôpico Rodrigo Senra

[ Luciano Ramalho ]:
-
|
|Alguém mais recebeu?

   (Infelizmente)
\o  v---
 |)
/ \

Abração,
Senra


Re: [zope-pt] Zeo com mount points

2007-11-14 Por tôpico Rodrigo Senra

[ Clayton ]:
-
|Sim,
|
|Ganha:
|
|*  uma performance considerável dependendo dos acessos aos seus
|portais;
|*  se você tiver uma infra-estrutura bacana você poderá escalar ainda
|mais os portais;
|*  facilidade em fazer e voltar backups;
|*  migração de versão de Zope/Plone para uma versão mais nova, você
|poderá migrar aos poucos;


Hehehe, desculpem só via agora a mensagem do Clayton que
já elucidava praticamente os mesmos tópicos (exceto o pack).
Em suma +1 p/ Clayton.

Atenciosamente,
Rodrigo Senra


Re: [zope-pt] Zeo com mount points

2007-11-14 Por tôpico Rodrigo Senra

[ pablon1182 ]:
-
|Pessoal,
|
|Aguem sabe me dizer se criando mount point (db file) para cada site na
|zeo, se há algum ganho de performance. 

Na minha humilde opinião, masi importante do que o ganho de
desempenho é o ganho em segurança e gerenciabilidade.
Com múltiplos mount-points para sites independetes vc :

 - não corre o risco de que a corrupção de um mountpoint (e seu
   respectivo Data.fs) afete os demais mountpoints
 - vc pode ter uma política (e frequência) de pack e backup
   independente para cada site
 - fica mais fácil migrar sites independentemente uns dos outros

Em suma, vale à pena.

Abração,
Rodrigo Senra


Re: [zope-pt] Propaganda de Zope no Governo

2007-09-04 Por tôpico Rodrigo Senra
|Em 28/08/07, Thiago Avila [EMAIL PROTECTED] escreveu:
|
|   Olá Rodrigo,
|
| O que tem de estranho neste site ? O vizualizado com Z ? Num
| consegui detectar.


[ Francisco Lopes de Faria ]:
-
|É que alguem que trabalha lá já concertou! mas estava indo para a
|página inicial de um zserver.

Exato! O que mostra que foi bom avisar ;o)

Abração,
Senra


Re: [zope-pt] Mudanças no TcheZope

2007-09-04 Por tôpico Rodrigo Senra

[ Erico Andrei ]:
-
|Zopistas,
|
| Estou me afastando da edição do TcheZope. Foram alguns meses de
|transição entre a gestão do Jean Ferri e o momento em que fosse
|encontrada uma pessoa com disposição e capacidade para tocar o portal
|-- e fazê-lo crescer -- e fico feliz por ter conduzido a transição e
|ter auxiliado na indicação do novo editor: Daniel Veinsencher.
|
| O Daniel é diretor da Occam, presença constante nos eventos de
|nossa comunidade e tem sido um dos poucos a se dedicar com o mínimo de
|diligência ao TcheZope nos últimos meses.
|
| Nesta empreitada Daniel responderá a Sérgio Oliveira (seocam) que
|foi eleito o novo Diretor de Ações Online, no lugar de Jean Ferri que
|se dedicará um pouco mais a sua vida acadêmica. Sérgio também será o
|nome da APyB responsável pelas listas zope-pt, python-brasil e pelo
|site do Pythonbrasil.com.br.

Saudações fraternas para o Jean e para o Érico por um trabalho bem feito!
Bem vindos Daniel e Sérgio, sorte em suas novas atribuições.


Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


[zope-pt] Propaganda de Zope no Governo

2007-08-27 Por tôpico Rodrigo Senra

 Não é a melhor forma de fazer propaganda da plataforma,
 mas eu achei no mínimo curioso. Se alguém conhecer os
 responsáveis vale um alerta para corrigir a situação do...

 http://www.mpm.gov.br quando acessado por ...
 http://mpm.gov.br 

 ;o)

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Boleto bancário

2007-05-29 Por tôpico Rodrigo Senra

[ [EMAIL PROTECTED] ]:
-
|Pessoal,
|
|Alguém já fez algum algoritmo para impressões de boletos bancários via
|zope/python?

A resposta para essa pergunta  é sim [1],
esta versão é uma implementação em Zope 2 puro 
(não havia ainda Plone).

Colegas meus da GPr [2] implementaram
e o serviço é *gratuito*, ou seja vc pode 
cadastrar e emitir seus boletos sem ter que pagar nada.
Infelizmente, o código fonte não é livre nem gratuito.

Nada impede vc de fazer um robô para manipular
o site. Eu vou lançar a idéia para a equipe interna
de criar uma interface de serviço (XML-RPC por exemplo)
para geração automática de boletos. Tudo depende da demanda,
ou de alguém bancar o desenvolvimento ;o)
 

[1] http://gpboletos.achapramim.com.br/
[2] http://www.gpr.com.br

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Re: style sheet para cada navegador

2007-05-24 Por tôpico Rodrigo Senra

[ vinylll ]:
-
| Realmente eu gostaría de saber esse
|procedimento para utilzar folhas css separadas para cada browser, meu
|layout é fora do padrão do plone e está muito difícil de ajustá-lo.

 O que eu faço quando preciso gerar um css específico para Windows (=IE)
 é simplesmente customizar o arquivo portal_skins/plone_styles/IEFixes.css
 Por default no Plone, este css só é ativo por browsers que se identifiquem
 como Internet Explorer.

 Não sei se é a melhor solução ;o), mas é sem dúvida de baixo esforço.

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Re: Silva, o outro CMS baseado em Zope - SIMPLESMENTE NÃO INSTALA

2007-05-24 Por tôpico Rodrigo Senra

[ jgbalb ]:
-
|Pessoal,
|
|   alguém conseguiu instalar este Silva? Tentei fazer a 
|instalação colocando o arquivo do mesmo no diretório 'Products' do 
|Zope, re-startei o Zope mas nada aconteceu... Para que se tenha uma 
|idéia, o arquivo compactado disponível no site da infrae NÃO contém 
|um diretório com arquivos .py, como acontece com todos os outros 
|produtos do Zope. Assim, alguém poderia me dizer por favor como 
|instalar corretamente este Silva?
|


 # instalar os produtos em um diretório
 # por exemplo /usr/local/src/instance-2.9.7/Silva

 mkdir Silva
 tar xvzf /home/rodrigo/Desktop/Silva-2.0-all.tgz

 # editar instance-2.9.7/etc/zope.conf
 # Adicionei a linha 
 # products /usr/local/src/instance-2.9.7/Silva

 # Iniciar o Zope
 bin/zopectl fg

 Isso deveria ser suficiente, porém pelo que estou vendo
 aqui o Silva-2.0 não gostou muito do Zope 2.9.7 ;o)
 ImportError: No module named contenttype

 Não fui a fundo no problema, pois estava só tentando responder
 a sua pergunta, e não estou com tempo (e confesso nem motivação)
 para ver isso agora.
 
Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Tarefas agendadas

2007-05-23 Por tôpico Rodrigo Senra

| Existem os produto ZopeScheduller + TimerServer

Correção para quem for Googlearpor aí:

 s/TimerServer/TimerService/

TimerServer é o nome do módulo .py dentro do produto
TimerService. Buscas no Google vão encontrar TimerService,
mais fácil ;o)

[ Cleber J Santos ]:
-
|  File 
|/home/vespa03/develope/instance/Products/PluggableAuthService/PluggableAuthService.py,
 
|line 979, in __call__
|stack.append(resp._unauthorized)
|AttributeError: TimerResponse instance has no attribute '_unauthorized'
|--
|2007-05-11T14:54:00 INFO TimerService Ttimer tick at Fri May 11
|14:54:00 2007
|
|
|E o pior de tudo é que o atributo *_unauthorized* que ele reclama não 
|existir tá lá bonitinho no script *PluggableAuthService.py*...

Cleber, note que o atributo _unauthorized não foi encontrado 
na instância de TimerResponse que está definida em

 ./timerserver/TimerServer.py:class TimerResponse(BaseResponse):

ou seja, não está relacionado ao script *PluggableAuthService.py*.

E TimerResponse define o método:

   def unauthorized(self):
pass

Talvez (??) seja suficiente definir:

   def _unauthorized(self):
pass


Eu nunca usei estes produtos, mas talvez este
blá seja um empurrão na direção certa para vc
resolver seu problema.
 
Fiz o download do site [1]
[1] http://www.brehault.net/plomino/download-1

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Zope 2 x Zope 3

2007-05-21 Por tôpico Rodrigo Senra

[ Ruda Filgueiras ]:
-
|Não é clean por que Zope2 nunca foi clean e ele continua na pilha. :-(

Hehehe, olhem só como são as coisas.
Falei que a tecnologia Zope 3 estava 1/2 verde e quase me levaram
para a guilhotina. O Rudá diz que Zope2 *nunca* foi clean 
(==sempre foi sujo) e ele se safa desta frase limpinho.
É ou não é impressionante. É Rudá, vc tem a manha ;o)


[ Luciano Ramalho ]:
-
| Fui estudar outros frameworks, e agora que pintou o Grok,
| estou motivado para pegar de
|novo a onda do Zope 3. Mas repito: não me convidem para migrar nada...

Esse é o ponto nevrálgico. Acredito que a interseção entre o que
eu, o Xiru e o Jean expressamos aqui se resume a isso. Naturalmente
a *intensidade* das opiniões varia na razão direta do número de
sites que devem ser mantidos.


[ Ruda Filgueiras ]:
-
|Essa parte o pessoal já respondeu, porém você usa o Twisted certo?

Yes, Sir!

|Bom se Zope3 (arquitetura de componentes) estivesse tão verde, por que
| Twisted foi todo reescrito usando essa tecnologia/metodologia?

Até onde eu saiba, a única parte utilizada pelo Twisted importada
do Zope3 foram Interfaces. Portanto, eu diria que 
todo reescrito usando essa tecnologia é no mínimo uma hipérbole.

|Eu acho que justamente quem mais sofre com Zope3 no Zope2 são o perfil
|de desenvolvedores que programam mais em Zope2 no sentido TTW

Sério, eu achei que para esse povo não mudava praticamente nada,
uma vez que eles não olham debaixo do capô.

|Pois para quem programava para Zope2 código Python que interage de
|forma mais interna com as partes do Aplication Server Zope, o Zope3 é
|como um oásis. ;-)

Meu ânimo já está renovado pela veemente defesa do Zope3,
vou em busca deste oásis, rogo que não seja apenas uma miragem,
aos olhos do peregrino preso na areia movediça ;o)


Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Alguém utiliza o BOA com PLONE?

2007-05-17 Por tôpico Rodrigo Senra
||Jose Miguel Bezerra Filho escreveu:
|| Alguém tem experiência no uso do BOA com PLONE?
|| Gostaria de experimentar esta ferramenta mas estou
|| meio perdido.


[ Rodrigo Senra ]:
-
|
| Via FTP eu acesso o Zope normalmente e navego na BOA na árvore.
|
| Via acesso Zope (bliblioteca de acesso nativa do BOA para ZOPE)
| eu ainda não consegui, mas estou só começando a testar.

Já testei e minha conclusão é a seguinte:

 - o acesso via Zope (no BOA) está quebrado e não reflete
   as versões atuais do Zope (pelo menos não = 2.9.x)

 - esta implementação não tem sofrido manutenção 
   (página Wiki data de 3 anos atrás)

 - apesar de ser uma projeto interessante, é difícil obter
   sucesso pois o Zope hoje é um alvo móvel (digo múltiplos
   alvos móveis): vide evolução Zope 2.9.x, 2.1x, 3.x

Em suma, ainda que a ZMI não seja o mais legal para editar
os objetos, ainda é o mecanismo mais seguro para criá-los
em interações TTW.

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Alguém utiliza o BOA com PLONE?

2007-05-17 Por tôpico Rodrigo Senra

[ Jean Rodrigo Ferri ]:
-
|Jose Miguel Bezerra Filho escreveu:
| Olá,
|
|Olá José,
|
| Alguém tem experiência no uso do BOA com PLONE?
| Gostaria de experimentar esta ferramenta mas estou
| meio perdido.
|
|Qual ferramenta você quer experimentar, o Boa ou o Plone? Qual o
|motivo para você querer integrar eles?

 A pergunta do José faz sentido pois o Boa vem (v 0.4.4) com uma aba
 chamada Zope [1] e outra chamada FTP.

 Via FTP eu acesso o Zope normalmente e navego na BOA na árvore.

 Via acesso Zope (bliblioteca de acesso nativa do BOA para ZOPE)
 eu ainda não consegui, mas estou só começando a testar.

 [1] http://wiki.zope.org/zope2/BoaConstructor

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Zope 2 x Zope 3

2007-05-17 Por tôpico Rodrigo Senra

[ Jean Rodrigo Ferri ]:
-
|Dorneles Treméa escreveu:
| lembrando que a partir do (ainda distante) Zope 2.11, o módulo
| sets já estará liberado por padrão:
|
|Alguém já sabe onde isso vai parar? 2.99? =)

Não querendo ser muito pessimista, o sucesso prematuro (antes
da maturidade) pode ser uma maldição. Alguns exemplos:

 - Drew Barrymore e Macaulay Culkin. Estrelas mirims cujo
   sucesso levou a uma adolescência conturbada envolvendo
   alcolismo, drogas e dispustas familiares.

 - Cobol, uma tecnologia Dura de Matar, com sistemas legados
   que se recusam a morrer e forçam novas gerações a aprender
   `Latim` mesmo sabendo que é uma língua morta.

 - Zope 2 + Plone !
 
   Apesar do Zope 3 estar se desenvolvendo rápido, e apesar do
   bravo esforço do projeto Five, a pilha tecnológica está uma
   bagunça. Crescimento desenfreado é sinônimo de câncer, e isso
   em geral não é um bom sinal. Em suma, acho que vamos ter que
   conviver com  as idiossincrasias do Zope por um bom tempo. 
  

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Zope 2 x Zope 3

2007-05-17 Por tôpico Rodrigo Senra

[ Luciano Ramalho ]:
-
|On 5/17/07, Rodrigo Senra [EMAIL PROTECTED] wrote:
|Apesar do Zope 3 estar se desenvolvendo rápido, e apesar do
|bravo esforço do projeto Five, a pilha tecnológica está uma
|bagunça.
|
|Concordo com você, Senra. Mas é preciso clarificar: a pilha
|tecnológica que está uma bagunça é a pilha Zope2+CMF+Plone+Five.
|
|O Zope 3 em si não tem nada de bagunçado. 

Obrigado pela correção Ramalho. Foi isso que eu quis dizer.
O Zope 3 visto isoladamente está *limpo*. Mas ele está sendo
misturado no Zope 2+Five e por isso dei a entender que fazia
parte da bagunça (mas é a parte organizada que torna o resto
bagunça ;o)
 
A falta de um Plone que seja Zope3 native também é uma pena.

| Acredito que o Grok vai ajudar muito na adoção do Zope 3.

Espero que sim. Um teste rápido que eu fiz tempos atrás com
o Grok acabou explodindo na minha mão, o que me empurrou para
o Django de uma certa forma. Talvez esteja na hora de
revisitar o Grok =oD

De toda forma, grato pelo alerta!

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Zope 2 x Zope 3

2007-05-17 Por tôpico Rodrigo Senra

[ Ruda Filgueiras ]:
-
|Eu discordo que o fato de introduzir os componentes do Zope3 no Zope2
|tenha gerado uma bagunça,

E eu discordo que vc discorde hehehe ;o)
Ou seja, para vc Rudá que é um guru e super bizurado
em todo o histórico do Zope pode parecer *natural*  a
mesclagem de dois produtos que podem existir sozinhos,
que competem entre si, e existem em uma versão simbiótica.
Mas, quando se vai dizer isso para alguém que não faz parte
da comunidade, isso é encarado como bagunça.

| ao contrário, o próprio Zope2 está sendo
|refatorado gradativamente, ficando cada vez mais limpo e
|compartilhando mais componentes básicos com o Zope3 (servidor de
|aplicação).

Não estou dizendo que o Zope2 não precise disso ou que migrar
em direção ao Zope3 não seja uma coisa boa. 
Só estou dizendo que o estado atual da tecnologia, principalmente
*neste estado simbiótico* não é comfortável e quiçá aparenta
ser algo organizado e *clean*.

|  A falta de um Plone que seja Zope3 native também é uma pena.
|
|Se você der uma olhada de como está o Plone3, mesmo não rodando no
|Zope3, ele está totalmente orientado ao Zope3, ou seja, com todos os
|benefícios da componentização e com mais partes podendo ser apenas
|pacotes Python.

É possível treinar alguém só sabendo Zope3 para trabalhar com Plone3 ?
Ou vai ser preciso falar também de Zope2 para conferir esta capacitação ?
Five é completamente transparente ?
Tenho dois livros de Zope3, um deles ficou obsoleto antes que eu conseguisse
abrí-lo :o(

|
|Apesar do Zope3 introduzir conceitos novos e muito abstratos, ou
|seja, não acho que são complexos, mas que trabalham num nível de maior
|generalização e simplificação, foi justamente para se aproximar de
|Python e assim diminuir o degrau para se fazer algo para Zope, sem
|estar amarrado na hierarquia de classes do Zope2, entre outras coisas.

Acho isso ótimo. Depois quem tem medo de abstração deve repensar
se sua praia é a computação.

Inclusive esta semana no Daily-Python URL saiu o seguinte depoimento [1]:

«We've been using Zope 3 in earnest for just over a year and a half now.
I would like to report that in that year and a half our little company
has achieved more re-use than at any time in our history.»

[1] http://griddlenoise.blogspot.com/2007/04/reuse-and-non-use.html
 
O que é bastante encorajador em relação ao Zope 3.

|o Grook ajuda muito.

Acabei de testar:
 svn co svn://svn.zope.org/repos/main/grok/trunk grok
 python bootstrap/bootstrap.py
 bin/buildout 
 .. e tcham tcham tcham tcham ...

 Error: Couldn't find a distribution for zc.recipe.zope3checkout.

 Ou deveria dizer grok, grok, grok 
 Ah, talvez seja o Grok que precise muito de ajuda ;o)

 Brincadeiras à parte, tenho certeza de que este deve ser um erro besta.
 Mas é só uma forma de reforçar a impressão que eu tenho: apesar da
 promessa do Zope3, a tecnologia ainda está meio verde. 

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Busca sem um path específico

2007-05-16 Por tôpico Rodrigo Senra

[ Tania Andrea ]:
--

|Blz.. funciona legal na console, tanto meu teste abaixo[1] quanto a
|sugestão do Senra. Só que no script python dá os respectivos erros:
|
|b) global name 'set' is not defined
|

Oi Tania,

o lance é o seguinte. Para permitir o uso do módulo no Zope, 
vc pode adicionar o código abaixo a qualquer produto. 
Ou até mesmo criar um produto encarregado apenas da autorização.
No diretório Products eu criei o diretório AllowModules com
um único arquivo dentro __init__.py, cujo conteúdo é:

file path=Products/AllowModules/__init__.py
from AccessControl import allow_module, allow_class, allow_type
from AccessControl import ModuleSecurityInfo, ClassSecurityInfo
allow_module('Sets')
ModuleSecurityInfo('Sets').declarePublic('set')
from sets import Set
allow_class(Set)
/file

E no Zope fiz o seguinte teste:
script
from sets import Set as set
lista_recente = [1,2,3,4,5,6,7]
lista_especifica = [2,3,5,6,8]
recente, especifica  = set(lista_recente), set(lista_especifica)
print especifica-recente 
return printed
/script

A partir do Python 2.5, set é um tipo nativo.
No Python 2.4 é preciso fazer: from sets import Set.
Para manter a compatibilidade de código eu recomendo
no Python2.4 usar: from sets import Set as set

É isso aí!

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


[zope-pt] Medo de Migrar

2007-05-16 Por tôpico Rodrigo Senra

[ Dorneles Treméa ]:
-
|lembrando que a partir do (ainda distante) Zope 2.11, o módulo
|sets já estará liberado por padrão:

Valeu Deo,

mas bota distante nisso. Ainda estou com Zopão 2.9.6 e
Plone 2.5 e tomando coragem para migrar ! O problema 
são trocentos sites pequenos, usando trocentos produtos
(inclusive Localizer que tem um componente chamado Hotfix
cheio dos monkey patches). 

Fazer esta migração me faz pensar em um transplante de 
coração entre um chimpanzé e um gorila, feito por um 
dermatologista. Além de presepadas no processo, há
risco de rejeição ;o)

Me pergunto se alguém aqui já fez migrações radicais
para o Zope 2.10.x e tem bizzus para dividir. 


Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Busca sem um path específico

2007-05-15 Por tôpico Rodrigo Senra

[ Rodrigo Castardo ]:
--
|
|Uma coisa simples como:
|
| lista=[]
| lista_recente = [1,2,3,4,5,6,7]
| lista_especifica = [2,3,5,6,8]
| for cada in lista_especifica:
|... if cada not in lista_recente:
|... lista.append(cada)
|...
| lista
|[8]


E por que não:
 recente, especifica  = set(lista_recente), set(lista_especifica)
 especifica-recente
set([8])

;o)

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Associação Python Brasil

2007-05-09 Por tôpico Rodrigo Senra
críticas públicas a respeito. Simplesmente, mandar uma pergunta
para várias listas e perguntar o que mais de mil pessoas acham
não leva a nada. Nem Python, nem Zope, nem Plone foram criados
assim. E os três se tornaram transparentes e esforços
comunitários, por tanto não se preocupe. Espere o boot terminar. 
No princípio alguém ter que ir lá e fazer.
;o)


|Todos sabemos que a propriedade deve ser respeitada, mas como software
|livre, todos nós temos uma parcela de propriedade. E a melhor forma de
|fazermos isso é democraticamente.

A propriedade é da Python Software Foundation, da Zope Corp e da Plone
Solutions. A Associação Python não terá propriedade nenhuma, mas o papel
de defender legalmente os legítimos donos caso suas marcas sejam
usadas indevidamente e com seu consentimento. Depois, os donos
já deram licenças permissivas de uso, de forma que eu não sei qual é
de fato a sua preocupação ?

|Como muitas pessoas nos procuraram pedindo esclarecimentos à respeito,
|espero uma resposta sobre as perguntas acima.

Espero que eu tenha conseguido atender a esta demanda.
Mas todos estão convidados a debater o assunto durante 
a PyConBrasil deste ano em Joinville.

|Obrigado e Longa vida a Associação Python Brasil :-)

Amém.

Abração,
Senra

-
Rodrigo Senra


Re: [zope-pt] erro na inicialização do plone-zope S.O.S

2007-05-07 Por tôpico Rodrigo Senra

[ alex_cardoso2006 ]:

|Amigos eu estou enrrolado pois não tenho muita eperiencia com zope-
|plone pois minha area e mais suporte um portal de controle de 
|herbario do inpa roda com zope-plone e a +/- 15 dis esta fora do ar, 
|apos uma queda de energia estou reistalando do zero mais no final le 
|dar esse erro

Alex, 

 vc re-instalou exatamente a mesma versão de Plone que rodava antes
 ou aproveitou para fazer  um upgrade ? ;o)
 
 Se vc fez um upgrade, tipo do Plone 2.0.5 para o 2.5 ou coisa parecida
 então é mais fácil.

 Duas opções:

 1) Instale exatamente a mesma versão de python, zope e plone que
rodava antes ;o)
Se vc não souber, só faça um downgrade na versão de Plone.

 2) Mantenha as versões que vc está usando, e verifique em 
portal_skins/customize se tem um monte de scripts e page
templates lá. Provavelmente, se tiver, um deles está usando
definições que não estão presentes na nova versão.
O que eu faço nestes casos é, exportar os page_templates,
re-customizar os templates e fazer as correções (das diferenças
na mão). 
if passo2 == grego:
goto passo1 # ;o)

Se vc manteve as versões exatas que já funcionavam antes então
algo bixou feio, mas eu duvido e aposto no upgrade ;o)

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Onde eu consigo o 'Zope Book' em portug uês?

2007-04-17 Por tôpico Rodrigo Senra

[ Clayton Caetano ]:

|Existem um livro em português que é  Zope - Kit de Construção de
|Aplicativos de Web  que é possível compra-lo nas livrarias.

Eu tenho e atualmente não recomendaria mais, está **muito** 
desatualizado.

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Módulo AutoPack.py

2007-03-28 Por tôpico Rodrigo Senra

[ Cleber J Santos ]:

  |Galera,
|   
|  Gostaria de uma opinião de todos, eu desenvolvi um módulo para dar
| um pack automaticamente, sempre que o Zope for reiniciado, sem a
| necessidade de passar usuários, senhas ou qualquer outro dado
| confidencial...

 O que eu faço [1] é criar um script Python pela ZMI e chamá-lo via
 wget no crontab do usuário zope no próprio servidor. Nenhuma senha
 trafega na rede, e só que conhece a senha é o próprio usuário 
 adm do zope. Pelo crontab, fica fácil controlar a periodicidade 
 do pack. E detalhe, este script dá pack em *todos* os mount-points
 (por default só tem um, mas no meu site tem vários).

 [1] http://www.mail-archive.com/zope-pt@yahoogrupos.com.br/msg04857.html

| A questão é a seguinte, tenho que inserir duas
| linhas dentro de um script python padrão do Zope que fica em
| ($ZOPE_SOFTWARE/lib/python/Zope2/Startup/run.py), eu testei e
| funciona direitinho, ele gera os logs, valida a data de pack e etc...
| Não sei se seria legal mecher nos scripts padrões do Zope, então
| gostaria de saber qual a opinião de todos quanto a isso,

 Se vc quiser pode fazer um monkey patch. Consiste em criar um produto
 que, ao ser inicializado, faz um override em uma determinada função.
 Ou seja:

 sample
 # nomes são fictícios para proteger os inocentes
 from zope.packages import zopemodule

 old_func = zopemodule.func

 def wrap_func(*args, **kw):
 # do that thing you do
 old_func(*args, **kw)

 zopemodule.func = wrap_func
 /sample


Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Atualizando o plone

2007-03-28 Por tôpico Rodrigo Senra

[ cauluss ]:

|Bom dia,
|  estou com um problema e não estou conseguindo resolver.
|Tenho um portal plone na versão 2.0.4 funcionando normalmente em 
|Windows 2003, preciso atualizar para versão 2.5.2.

Essas atualizações são sempre sofridas.

|
|Instalei a mesma versão 2.0.4 e copiei as pastas do servidor

Não entendi exatamente o que vc quer dizer com isso:
 - copiou os diretórios /var, /Products, /etc, 
   ou objetos do tipo Folder entre Zopes ?

|Os testes que fiz com o 2.5.2 foi estes.
|instalei por cima do 2.0.4

Eu normalemnte descompacto em diretórios diferentes
e depois altero ZOPE_INSTANCE/etc/zope.conf - products
para apontar para o diretório onde está o Plone que
eu quero. Assim, se eu precisar trocar de versão de Plone
basta comentar uma linha e descomentar outra.

|   executing the command'setupSite.py'failed

Não façco idéia do que seja isto.

|   ImportError: No module named zope.interface

Aparentemente está faltando um pedaço da árvore
que corresponde a bibliotecas do Zope 3 disponibilizadas
via Five.

|Como faço para atualizar o plone 2.0.4 para o 2.5.2 sem perder minhas 
|funcionalidades?

Eu faço uma instalação *independente*, exporto o Portal via .zexp
e tento importar na versão nova. Só copio os diretórios de produtos.
Via ZMI, nos portal_* que aparecerem com uma exclamação ! em vermelho,
vc entra e clica em Migrate, para atualizar definições de objetos.

É possível que customizações de templates em portal_skins/customize
tenha que ser refeitas caso vc tenha alterado main_template ou 
similares. Nestes casos, use a versão nova e refaça as customizações
manualmente sobre a versão nova.

Fora isso, tem algumas outras dicas de migração em plone.org

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Re: Módulo AutoPack.py

2007-03-28 Por tôpico Rodrigo Senra

[ Cleber J Santos ]:
|  E então, eu vi um exemplo que você postou aqui na lista,

Ah, então belex. Só mencionei caso vc não tivesse visto. ;o)

E como vc regula a periodicidade do pack ? 
Pergunto isso pois eu não gosto de executar um pack durante
a subida do Zope.

| que realmente não sei se seria legal colocar senhas a mostra, mesmo
| que seja de conhecimento apenas do ADM saca?

A exposição da senha foi pura preguiça de configurar a aparelhagem
de segurança do Zope. Como a senha só ficaria exposta no ambiente
em que ela já é conhecida não me dei ao trabalho de melhorar isto.
Discordo que seja uma vulnerabilidade, mas concordo que é possível
fazer algo mais elegante.

| posso posta-lo aqui na lista para quem desejar testar,

Acho que o portal do TcheZope seria mais adequado.
Mas se for pequeno pode mandar para cá na boa.

|  Pô eu não sabia disso, bacana, posso testar, gostaria que se pudesse
| você assim como a lista pudesse me dar uma mão,

Bom, fique à vontade para mandar suas dúvidas e reportar o 
andamento dos testes aqui. Se vai dar para ajudar já são outros 500:
depende de know-how, tempo e motivação.

| uma solução bacana para o pack, sem a necessidade de senhas,

Sendo absolutamente sincero, eu tenho outras prioridades no meu
TODO. Isso significa que por enquanto o autopack é um problema
resolvido para mim. Naturalmente que na hora que surgir um
esquema super bacana (e acho que vc tem a motivação para ir
atrás deste objetivo), ficarei *feliz* em substituir meu esquema
meia-boca por um lance profissional.
 
Todavia, apesar de eu ter comentado o lance do monkey_patch como
um caminho para solucionar o seu problema, não acho que uma 
*robusta* possa estar baseada neste recurso. Talvez voce possa
investigar um tal de ZopeScheduler. Eu ouvi falar que já vem (ou
pode ser instalado) em versões +recentes de Zope. Talvez seja
por aí. 

Outra opção seria vc propor sua alteração para os Zope developers
como um patch que poderia ser futuramente incorporado no Zope definitivo.
Aí seria massa hein ;o)

| não se desfazendo da sua solução, 

Obrigado pela preocupação ;o)
Mas está sussu.

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Duvida para pesquisar meu Archetype com searchResults do portal_catalog

2007-03-26 Por tôpico Rodrigo Senra

[ pablon1182 ]:

|Prezados colaboradores da lista,
|
|
|Eu criei indice no schema da Insticuição (index=FiledIndex)

s/FiledIndex/FieldIndex/
Mas aparentemente este não é o problema, uma vez que 
no código abaixo aparenta estar certo.

|Meu field ficou assim:
|StringField(
|name='organizacao_governamental',
|index=FieldIndex,
|widget=MultiSelectionWidget(
|label=Organização Governamental - Poder Público,
|description=Selecione  as opções,
|format=checkbox,
|   


Será que não faltou um 'searchable=True'
na definição do esquema  ? Pode ser isso.

|Eu tentei algo do tipo:
|
|results =
|context.portal_catalog.searchResults(portal_type=Instituicao,
| review_state=published,

Vá na pasta portal_catalog, pela ZMI, e verifique para o índice que vc criou 
quantas 
entradas existem. Pode ser que nenhuma entrada tenha sido criada.



Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Ubuntu troca Plone por Drupal

2007-03-21 Por tôpico Rodrigo Senra

[ Luciano Ramalho ]:

|
|No final do post, o Matt Nuzum diz que escolheram Drupal para o novo
|site do Ubuntu, que já está no ar. [2]
|
|Peguei a notícia na lista plone-dev, onde o John Stahl (organizador da
|PloneConf 2006), postou perguntando se alguém sabia o que se passou
|[3]
|
|O Wiggy respondeu dizendo que na época em que ocorreram os problemas o
|pessoal do Ubuntu disse para ele que simplesmente não tinham nenhum
|expert em Plone na equipe, e por isso decidiram abandonar a
|plataforma.

Bom, li a thread em plone-dev até o ponto em que Justizin foi ameaçado
de ser banido por uso de linguagem de baixo calão e ataques a Canonical.
Segundo o Limi, a escolha do Plone (pela Canonical) sempre foi temporaria.
Na época serviu para apagar um incêndio usando Plone 2.0 e com a ajuda
do próprio Limi. Em suma, aparentemente não houve nenhum demérito específico
para o Plone, apenas uma decisão estratégica interna da Canonical de escolher
ferramentas cuja equipe interna já domina.
Aparentemente há muito expertise PHP *além de Python) dentro da Canonical, 
e mexer nas entranhas do Drupal *aparentemente* é mais straightforward do 
que mexer nas do Plone -- mas isso eu não sei pois desconheço o Drupal e PHP.


|Para quem vende projetos em Plone, a lição é clara: se você quer
|clientes satisfeitos a longo prazo, deixe claro para eles desde o
|início os desafios da plataforma. Se o cliente não está preparado para
|enfrentá-los, é melhor para o cliente, o fornecedor e a comunidade que
|outra solução seja indicada.

+1, a pergunta é o quê ?

\me deve estudar mais os web frameworks leves ;o)

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Chamar um método quando algum campo for alterado (Era: index_object() sendo chamado várias vezes)

2007-03-08 Por tôpico Rodrigo Senra

[ Rafael Oliveira ]:

|A não ser que eu tenha como requisito registrar todas as modificações
|nos objetos ...

Outra idéia que surgiu agora é usar Workflows como hook
Ou seja, em cada edição do objeto o Workflow é notificado
e scripts (before/after) podem ser usados para rastrear
as mudanças de estado.

Eu nunca fiz isso, de forma que talvez Gurus tenham que 
se manifestar aqui para dar coordenadas precisas.
Todavia, uma rápida busca na Internet (aka Google) 
por plone automatic workflow  transition triggered 
mostrou resultados promissores, como [1].


You could also arrange to trigger workflow transitions during your 
edit handling scripts;  this is what the old, now-deprecated 
WorkflowMethod wrapper did.

Tres


Eu não sei qual é o novo jeito, já que o mencionado pelo
Tres Seaver está deprecated ? Todavia, acho que é por aí.


[1] http://mail.zope.org/pipermail/zope-cmf/2004-August/021125.html


Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Ser ou não ser ?

2007-03-08 Por tôpico Rodrigo Senra

[ Joel ]:

|No ano de 2000, eu programava em Clipper, e precisava decidir por uma 
|linguagem para Windows.
|Ai então optei pelo Delphi,

Boa escolha (para a época).

|Agora estou precisando optar por uma ferramenta para a Web, e estava 
|pensando em utilizar o Zope/Python,

Está em um bom caminho. ;o)

| mas tenho encontrado dificuldades 

 It is not how much you can punch, but how much
  beaten you can take and still walk forward that matters
  - Rocky Balboa

| em relação a cursos que na minha região não existe.

Não sei que região é essa ;o)
Mas não duvido. Tirando alguns pólos metropolitanos,
e o público coorporativo, não existe uma abordagem
de treinamento PZP para o público em geral.
Também, desenvolvimento de portais Web não é algo
tão comum como trabalhar em uma planilha ou usar
um editor de textos.

Mesmo assim, existe *abundante* informação na Web
e em diversas línguas. Portanto motivação e 
alfabetização são os dois pré-requisitos essenciais
para uma divertida trilha autodidática em rumo 
ao PZP. E há o suporte gratuito (melhor do que o
da sua operadora de telefonia -- seja ela qual for,
mas igualmente sem nenhuma garantia de que vc será
efetivamente atendido) seja por esta lista ou
pelo canal de IRC.

|Eu trabalho com o banco de dados FireBird, e agora não estou
|conseguindo instalar o KInterBasDB no ZOPE para conseguir
|trabalhar com o FB.

Então a pergunta é: Interoperabilidade entre Zope e 
KInterBasDB - qual o status ?
Eu não sei responder pois nunca usei KInterBasDB.
Tenho certeza de que se alguém souber (e tiver tempo)
vai dar algum bizzu.

|Será, que terei que utilizar o Java só porque ele tem mais cursos, 
|tutoriais e até mesmo mão de obra ?
|O Zope/Python me parece mais simples, no entanto eu preciso de uma
|ajuda para começar, e não estou conseguindo encontrar.
|O que vocês me sugerem ?
|Trabalhar dobrado com o Java mesmo, ou ficar me batendo e me batendo 
|atrás de ajuda para começar com o Zope/Python ?

Gol de cabeça (traduzindo do Inglês: Go Ahead).
Vai fundo, se vc sabe Java e tem os recursos, 
não vejo porque trocar algo que resolve seu problema
(segundo vc Java) por algo que está lhe criando um
problema (segundo vc Zope).
Usar Zope por Zope não faz sentido, apenas quando isso
lhe traz um benefício (agrega valor).

Agora, com o perdão da palavra, querer fazer chantagem
emocional dizendo ou alguém me ajuda ou vou usar Java
-- que está subjacente na sua mensagem -- além de ser
uma abordagem muito ingênua eu considero um desrespeito
aos participantes desta comunidade.

Por isso, eu peço que vc reflita sobre o título do
seu e-mail Ser ou não ser.

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Chamar um método quando algum campo for alterado (Era: index_object() sendo chamado várias vezes)

2007-03-07 Por tôpico Rodrigo Senra

|Rodrigo Senra:
|
|  Acho que vc pode criar um mutator para o campo.
|  O  AT cria setters default para cada campo, mas estes
|  podem ser sobrescritos por rotinas suas (bem como getters).

[ Rafael Oliveira ]:
|Essa solução funcionaria sim. Porém o meu cenário é um pouco pior (eu
|não deixei muito claro): eu gostaria de ter esse comportamento para
|todos os campos de vários tipos de objetos diferentes. Ou seja, eu
|quero registrar qualquer mudança em qualquer campo.

Só no momento da criação, ou em qualquer atualização de campo ?
Pelo que vc disse, me parece ser a segunda opção, ou seja 
um hook em qualquer atualização de campo.

Eu trabalhei em uma arquitetura genérica para isso [1] em 1997
(caraca já faz 10 anos) em parceria com o lendário Alexandre Oliva
(hoje secretário da FSF para a América Latina).
Uma das lições aprendidas com isso (ainda que não fosse aplicado a
PZP) é que hooks em *tudo* são os assassinos do desempenho.
Por isso tome bastante cuidado, em geral hooks devem ser colocados
em *poucos* objetos e mediante uma escolha cuidadosa de onde colocar.

Feita essa advertência, uma forma seria no at_post_create_script()
da classe Base (da qual todos seus tipos herdam) vc coloca um 
código reflexivo que inspeciona os campos (percorrendo o atributo 
schema) e troca os getters/setters por wrappers que chamam o seu
método de hook (em pré-chain ou pós-chain) e chamam também o
getter/setter original. Não é trivial, mas também não é nada
do outro mundo. 

É preciso ter dois cuidados:

  1) evitar recursão infinita - de dentro do hook, se vc tentar
 inspecionar o campo (que está sendo interceptado) tem que 
 fazê-lo de uma forma que não redispare o acesso ao getter/setter
 que por conseguinte irá disparar uma chamada recursiva  para
 o seu hook. Uma forma fácil de detctar isso é ver a CPU em 100% e
 a memória livre indo para o saco (se não estourar o maximum recursion
 depth antes) ;o)
  
   2) O outro cuidado é não causar efeitos colaterais com os encantamentos
  do AT, CMF, ExtensionClass do Zope. 



|Como eu não preciso dessa fucionalidade urgentemente eu não parei para
|pensar na solução mais elegante.

Touché, não sei se essa é elegante tampouco.

|A primeira coisa que me veio a cabeça
|foi sobrescrever o __getattr__() das classes para interceptar as
|chamadas dos setters de todos os campos 

Acho que *não* vai funcionar, pois o __getattr__ só é chamado se
os atributos *não estiverem previamente definidos*. Ou seja, só
funciona para atributos virtuais. Nessa linha seria melhor
usar __getattribute__, que é chamado até mesmo para atributos
*já definidos*. Todavia, esta estratégia recai no problem de
interceptar tudo - vai ficar uma carroça-de-boi-manco e vai
ser difícil escrever o código do hook. 
Mas, se vc quiser ir por essa linha eu ficaria *contente* 
se vc me provasse que eu estou errado a este respeito.
Toda a comunidade ganharia com isso.

[1] http://www.lsd.ic.unicamp.br/~oliva/guarana/

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Chamar um método quando algum campo for alterado (Era: index_object() sendo chamado várias vezes)

2007-03-06 Por tôpico Rodrigo Senra

[ Rafael Oliveira ]:

  |Olá Rodrigo,
|
|obrigado pela dica, ela me levou a outras questões:
|
|1. Continuo achando estranho o método index_object() ser chamado várias
|vezes. Acabei de fazer um teste onde ele é chamado 20 vezes durante a
|criação de um objeto.

Eu já vi isso acontecer. Simplesmente acho que por segurança/simplicidade
este método é chamado *muito* mais vezes (não sei o quanto do número 20
é influência do seu código ou das entranhas do CMF/Plone) do que seria
necessário. Consertar isso já é outra história, espero que em um 
refactor do CMF/Plone isso seja melhorado (não está no meu TODO ;o).


|2. A funcionalidade que eu procurava era de ter um gatilho ativado a
|cada vez que um campo de um objeto fosse alterado, mesmo que isso não
|acontecesse através da interface web. Por exemplo, se em algum lugar
|eu executasse  obj.setMeuField('meuvalor') eu queria que um método
|fosse chamado. Pelo o que eu verifiquei nem o index_object do meu
|índice nem o at_post_edit_script são chamados nessa situação.
|
|Alguma idéia ?

Acho que vc pode criar um mutator para o campo.
O  AT cria setters default para cada campo, mas estes
podem ser sobrescritos por rotinas suas (bem como getters).

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Como importar usuário com GenericSetup?

2007-03-02 Por tôpico Rodrigo Senra

[ Fabio Montefuscolo ]:

  |Olá,
|
|Eu exportei as configurações do meu Plone Site usando o
|GenericSetup. Neste Plone site havia um usuário chamado 'admin'. No
|resultado da minha exportação havia um XML chamado 'source_users.xml'
|que continha esse usuário 'admin'. Entretando, quando carrego as
|configurações para outro Plone Site o usuário 'admin' desaparece. 
|Alguém sabe o que acontece?

Quando eu testei o GenericSetup nem tudo que ele exportava
(via diff de snapshots e colocando depois no filesystem) ele
conseguia importar(== criação de outro site com extension
Profile) e materializar no site depois.
Talvez valha a pena vc verificar se a versão que vc está usando
(e se existe alguma versão que) suporta este recurso de fato.

Sobre o seu problema em particular, o admin é um usuário especial
no sentido que o Zope cria o usuário admin na raiz de contextos para
a gerência do site. Se foi vc que criou o usuário 'admin' dentro de
um Plone site eu recomendo usar outro nome para evitar confusão
(ainda que o Plone/Zope permitam perfeitamente que vc crie o usuário
com mesmo nome em escopos aninhados).

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Funcao dtml-MIME em ZPT?

2007-02-26 Por tôpico Rodrigo Senra

[ Luciano Ramalho ]:
|
|Enviar e-mail a partir do Python, indepedente do Zope, é muito
|simples. Aqui tem uns exemplos:
|http://www.eskimo.com/~jet/python/examples/mail/smtp1.html

Não sei como está hoje, mas tinha uma época em que o MailHost
não enviava e-mails para Servidores SMTP que exigissem autenticação
e também não suportava o **envio de anexos**.
Então em 2003 eu fiz esta versão que faz essas coisas [1]. ;o)

A função sendmail() em [1] pode ser envelopada por um ExternalMethod
e usada em Scripts ou PageTemplates diretamente.

http://www.pythonbrasil.com.br/moin.cgi/EnviarEmail [1]


Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Como gravar as configurações de um site Plone?

2007-02-22 Por tôpico Rodrigo Senra

[ Fabio Montefuscolo ]:

|Olá,
|
|Além da Skin, gostaria de gravar as customizações que fiz no
|portal_actions, portal_workflow e as templates que criei, para serem
|reutilizadas em outro site Plone. Tem algum modo de fazê-lo que não
|seja serializar o Plone Site?

Vc pode criar um produto (no filesystem) que manualmente cria (via
Python) estas estruturas, e depende da sua versão de Plone vc pode usar
o GenericSetup [1, 2] para obter o mesmo efeito.

[1] http://plone.org/documentation/tutorial/genericsetup
[2] http://plone.org/documentation/how-to/genericsetup-howto

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Ocultando o conteúdo de uma pasta

2007-02-21 Por tôpico Rodrigo Senra

Oi Konrad,

[ Konrad Scorciapino ]:

|Essa página não deveria ser visível a um usuário comum. Eu tentei:
| - Desabilitar a opção List folder contents

Esta opção significa que o objeto cuja permissão foi setada,
quando interpretado como folder, não deve permitir que seus
sub-objetos (objetos contidos na pasta) sejam listados.
No popular, seria como desabilitar o dir ou ls no conteúdo.
Nestes casos, o container/pasta/próprio objeto ainda será visível.

| - Coloquei como propriedade selectable_views do tipo lines valor
| 

Esta opção também *não restringe* nada sobre a visualização default
do objeto.

|Mas nada disso funcionou. Alguém tem alguma dica/solução?

- Se o objeto for do tipo Folder (ATFolder) e vc queira que *apenas*
  esta instância seja invisível para o usuário que não estiver logado
  (role Anonymous) uma forma é mudar o estado da instância para private.
  No workflow default do Plone para folders, private só é visível para
  membros. (Como foi sugerido nesta thread de discussão).
  Essa é a saída mais fácil.

- Se o objeto for um objeto de outro tipo (que vc definiu) e que herda
  de AtFolder (responde True para isFolderish), e se toda instância
  deste tipo for invisível para o usuário com perfil Anonymous, aí é
  muito mais jogo criar um workflow customizado para este TIPO onde
  o estado default é private, ou customizar as permissões de segurança
  deste workflow.
 
- Também seria possível manipular diretamente as configurações de
  Security do objeto alvo (tipo View, Access Folder Contents, etc).
  Mas dá mais trabalho e vc pode perder estas configurações se usar
  um Update Security Settings no portal_workflow.
 

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Objeto deletado antes de ser criado?

2007-02-21 Por tôpico Rodrigo Senra

[ Konrad Scorciapino ]:

|Olá Pessoal,
|
|Eu tinha um produto, no caso ZWiki, funcionando aqui no portal. Depois
|de um tempo, não sei o que fizeram, tornou-se impossível editar uma
|página da wiki, dando erro de privilégios insuficientes.

É um erro de configuração de permissões, que poderia estar em um zilhão
de lugares. Em geral, eu ativo  o VerboseSecurity no arquivo zope.conf
(exige restart) para tentar rastrear qual a permissão ofendida
e em que objeto. Geralmente é precisso examinar o error_log pela
ZMI para identificar isso.  

| Como ela ainda era muito pequena, salvei o conteúdo, deletei, reinstalei o
|produto, mudei as permissões, etc, e quis recomeçar do zero.

Hehehe foi para as cucuias ;o)

|Para minha surpresa, não podia mais criar instâncias dessa ZWiki,
|mesmo como administrador, resultando no seguinte erro:
|
|Este site encontrou um erro tentando atender sua requisição. Os erros
|foram: Tipo de ErroIndexErrorValor do Errolist index out of
|rangeRequisição feita em2007/02/15 21:45:26.874 GMT-2
|Reiniciei o zope em foreground, e vi que o erro foi gravado como:
|
|2007-02-15 21:45:26 ERROR Zope.SiteErrorLog
|http://www.mc.unicamp.br/desafio/pequeno-desafio/portal_factory
|Traceback (innermost last):
|  Module ZPublisher.Publish, line 106, in publish
|  Module ZPublisher.BaseRequest, line 275, in traverse
|  Module Products.CMFPlone.FactoryTool, line 320, in
|__before_publishing_traverse__
|IndexError: list index out of range
|
|Procurando no Google, encontrei essa página (
|http://dev.plone.org/plone/ticket/4946), que relata o mesmo erro em um
|acontecimento reproduzível. Aparentemente, isso ocorre quando tentamos
|editar um objeto que foi temporariamente criado e deletado, e, como não
|deletei essas páginas, creio que algo esteja fazendo isso.

Nunca tive esse problema e também não uso o ZWiki. O que eu sugiro
é pela ZMI tirar alguns elementos do portal_factory (por exemplo ZWiki)
e depois ver se o problema ainda se manifesta. Usar o catálogo para
identificar instâncias de ZWiki perdidas e tentar limpar estas
instâncias. Se nada disso funcionar, fazer um backup do Data.fs e
talvez realizar UNDO's voltar até o estágio inicial e usar a dica
do verbose security. Todos estes são tiros no escuro, pois este problema
que vc esbarrou é muito específico do seu cenário.


Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Zope, Plone e FreeBSD

2007-02-14 Por tôpico Rodrigo Senra

[ Daniel Magalhães Bicalho ]:

|Sou novo no uso do Zope/Plone. 

Bem vindo a lista Daniel.

|Instalei no FreeBSD 6.2, consegui rodar na porta 8080 e na porta 80
|paralelamente.

Rodar o quê ? Duas instâncias Zope ? Outros servidores (Apache) ?
Não que seja muito relevante, mas está faltando informação na frase
acima.

| Eu adiciono o portal Plone 

Com isso vc quer dizer criar uma instância de Plone através da interface
de gerência do Zope (a ZMI, acessível através do /manage)?
Ou quer dizer que vc rodou um Plone empacotado do tipo que já vem
pré-configurado e esconde o Zope que está *sempre* por baixo ? 

| e não consigo fazer com que o Plone rode na porta 80,

Bom, o plone rodará na porta 80 desde que o Zope subjacente esteja
rodando nesta porta. Para isso é necessário editar /etc/zope.conf,
mudar a porta default HTTP e effective-user e depois disparar como
root.

| sendo que a página do Quick Start do Zope inicia nas duas portas.

Eu não entendi. Para estar rodando nas duas portas vc deve estar com
duas instâncias de Zope (é isso) ? Tem certeza de que vc adicionou o
Plone na instância que está rodando na porta 80 ?

| Alguém sabe como posso fazer o Zope rodar na
|porta 8080 e o Plone na porta 80?

Essa pergunta não faz muito sentido, uma vez que o Plone *sempre* roda
sobre o Zope. O que vc pode fazer é restringir o acesso a ZMI (só via
porta 8080 por exemplo) e deixar seu portal acessível pela porta 80.
Uma forma de obter esse resultado é colocando um Apache (na porta 80)
na frente do Zope e usando mod_rewrite para bloquear URL com /manage no
final.

Acho que seria importante vc explicar em mais alto nível qual o seu
objetivo, e talvez possamos dar uma orientação.


Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Archetype

2007-02-13 Por tôpico Rodrigo Senra

[ Fabio Montefuscolo ]:
|Eu queria que meu documento se comportasse como o item 'página',
|ou melhor, que fosse adicionado somente após sua edição.

 Vá em portal_factory pela ZMI e coloque um check mark 
 no nome do seu tipo.

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Mover instalação Plone para outra máquina

2007-02-13 Por tôpico Rodrigo Senra

[ Paul Eipper ]:

|
|Estou precisando mover a instalação do Plone/Zope para outra máquina.
|É suficiente mover o arquivo Data.fs e os produtos instalados para
|fazer essa migração? Ou preciso de algo mais?

Supondo que não haja mudança de versão, e lembrando que os paths devem
ser preservados (por exemplo zopectl e zope.conf tem paths hardcoded),
lembrando que se vc tiver algo no /Extensions então os módulos
dependentes na intalação do Python também devem ser migrados,
supondo que não haja acesso a bases SQL locais...
então tem uma boa chance de dar certo ;o) 

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Tratamento de 'Tab' no Python

2007-02-07 Por tôpico Rodrigo Senra

[ diego.ucha ]:

  |Olá,
|
|A pesar de não ser uma dúvida relacionado diretamente a Zope, mas por
|ser um fórum com as mais variadas experiências no assunto
|python/zope/plone, resolvi postá-la aqui.
|É o seguinte, estou querendo fazer uma api no python para realizar um
|tratamento de diretórios conforme o caminho dos diretórios for
|digitado pelo usuário (igual ao Linux).
|A questão que tenho é que não conheço biblioteca em Python que realize
|essa interpretação de que tecla foi pressionada pelo usuário. 
|Para Windows encontrei uma solução, a biblioteca msvcrt, mas preciso
|de uma solução para Linux também.
|Em suma, existe alguma biblioteca para tratamento de qual tecla foi
|pressionada no Python?
|

Para vc poder começar a brincar...

code

import readline
import rlcompleter

# para restaurar no futuro
old_func = readline.get_completer()

# defina aqui seu tratador
def new_func(text,state):
if state==0:
return text+_que?
else:
 return None

readline.set_completer(new_func)   

readline.parse_and_bind(tab: complete) 
 ask = raw_input()
bele TAB PRESSED
bele_que?   
/code

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] Unicode e ZMySQLDA

2007-01-31 Por tôpico Rodrigo Senra

[ Paul Eipper ]:

|Além disso, como configurar o Zope para trabalhar em unicode com
|codificação utf-8 ?

No arquivo zope.conf (no diretório da instancia do Zope, subdir etc).

default-zpublisher-encoding utf-8

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [zope-pt] quantidade de usuários x desempenho

2007-01-25 Por tôpico Rodrigo Senra

[ Ivo Couto ]:

|Administro um Portal com mais de 18 mil usuários e constantemente
|este portal está caindo ou ficando muito lento.
|A informação que obtive de algumas pessoas é que o problema é a grande
|quantidade de usuários no Portal. Essa informação procede?

Pode ser. Vc vai precisar fazer um profiling para identificar melhor
a razão da queda e o gargalo. Está faltando CPU ? Está faltando
memória ? A autenticação é que demora ?  A geraçcão de páginas
(renderização) é que demora ? O acesso a dados (banco relacional, ZODB)
é que demora ? 

Não existe resposta mágica, vc vai ter que fuçar para diagnosticar
o problema.

| O zope não é capaz de gerenciar uma grande quantidade de usuários?

Os usuários se logam no Plone ou apenas vizualizam páginas geradas
pelo Plone ? Se for o primeiro caso, o problema pode ser a dificuldade
de gerar uma cache com páginas pré-renderizadas. Sem isso, para cada
acesso de usuário autenticado será necessário rodar o engine de
geração de páginas dinâmicas e a infra-estrutura de check de segurança
e aí o bixo pode pegar para um número tão alto. 

Abração,
Senra

-
Rodrigo Senra
GPr Sistemas 
http://www.gpr.com.br


Re: [Zope-pt] ZODB Várias duvidas...

2006-04-17 Por tôpico Rodrigo Senra

On 17Apr 2006, at 8:09 AM, Francisco Lopes de Faria wrote:

 Olá Pessoal?

 Tenho algumas dúvidas sobre o ZODB que se me ajudassem iria ser de  
 grande vália! :D

 1 - O ZODB é indicado para por exemplo uma aplicação que tem grande  
 quantidade de processos de escrita e leitura por dia? Como por  
 exemplo um portal de uma agencia de notícias como por exemplo o  
 www.estadao.com.br?

Em geral ele é mais adequado para muitas leituras e poucas escritas,
pelo menos usando FileStorage (default) no backend.
Tudo depende do que significa *muito* e com que frequência em relação
a capacidade do hardware.

 2 - Se sim! Como seria a configuração ideal do mesmo?

Bom, eu respondi que não ;o)

 3 - Se o arquivo Data.fs por um acaso alcansar os 4G de um sistema  
 de arquivos ReiserFS como faço pra resolver esse problema?

Não sei se 4 Gb é um problema. Mas em geral é importante monitorar o  
crescimento
e realizar packs de tempos em tempos. Talvez a criação de múltiplos  
mount
points (cada um mapeado para um arquvio diferente), seja uma forma  
eficiente
de evitar este problema. É preciso editar o zope.conf e criar ZODB  
Mount Points
pela ZMI.

Um exemplo de entrada no zope.conf:

zodb_db main
 # Main FileStorage database
 filestorage
   path /var/Zope-2.9/main/Data.fs
 /filestorage
 mount-point /
/zodb_db

zodb_db rodsenra
 filestorage
   path /var/Zope-2.9/rodsenra/Data.fs
 /filestorage
 mount-point /rodsenra
/zodb_db


 4 - O que seria melhor? Usar em uma aplicação como essa citada  
 acima o Archetypes + MySQL ou utilizar o ZODB mesmo?

Vou deixar para os AT gurus responderem essa.

 5 - Quais as vantagens do ZODB sobre o Mysql nesse tipo de aplicação?

Não sei qual é o tipo de aplicação ? Mas olhe mais para os dados e  
como estão
estruturados, se o modelo relacional atender MySQL é melhor, se o modelo
hierárquico atender ZODB é melhor.

 6 - Alem de uma boa politica de backup que todos os SGDBs  
 necessitam qual seria uma outra extratégia de recuperação de quedas  
 que o ZODB teria?

Existe um diretório Tools cheio de ferramentas para restaurar/ 
examinar arquivos.
Às vezes rola, às vezes não. Um backup *sempre* rola ;o)

 7 - estatisticamente falando onde consigo um comparativo de  
 probabilidade de crachs em ZODBs e outros SGDBs?

Eu nunca vi um, se vc achar me avisa.

Abração,
Senra

Rodrigo Senra
_
GPr Sistemas Ltda
http://www.gpr.com.br





Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[Zope-pt] Fwd: [OFF-TOPIC] Pesquisa Floss

2006-03-20 Por tôpico Rodrigo Senra
Galera,

o Rubens Queiroz, famoso pela dicas-l e que *muito* nos ajudou
com a organização do 1o PyConBrasil em 2005, requisitou que a
mensagem abaixo fosse divulgada em listas de desenvolvedores:

Begin forwarded message:
 From: Rubens Queiroz de Almeida [EMAIL PROTECTED]
 Date: 20March2006 1:09:02 PM GMT-03:00
 To: Rodrigo Dias Arruda Senra [EMAIL PROTECTED]
 Subject: Pesquisa Floss

 Estamos ajudando o pessoal da comunidade europeia a conduzir uma  
 pesquisa sobre software livre no Brasil e Argentina.
 No momento estamos apenas coletando nomes e emails.
 O pessoal da comunidade européia é que vai fazer o contato final.
 O cadastro que estamos fazendo fica em
 http://rau-tu.ccuec.unicamp.br/floss

 Um abraço,

 Queiroz

Vamos participar.

Obs: Desculpem o cross-post com a lista python-brasil@

Rodrigo Senra
_
GPr Sistemas Ltda
http://www.gpr.com.br





Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [Zope-pt] Near distance TextIndexNg2

2006-01-27 Por tôpico Rodrigo Senra

On 27Jan 2006, at 4:39 PM, Wilton Alencar wrote:

 Alguém sabe o real significado do Near Distance em um textindexng2?
 Estou precisando otimizar minha busca no catálogo e estou usando o  
 default 5.

Tom,
nunca olhei as entranhas do textindexng, mas minha bola de cristal
está dizendo que há boas chances de near distance estar relacionado
a distãncia de edição [1,2].

[1] http://www.nist.gov/dads/HTML/editDistance.html
[2] http://www.personal.psu.edu/staff/i/u/iua1/python/apse/

Abração
Senra

Rodrigo Senra
_
GPr Sistemas Ltda
http://www.gpr.com.br





Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [Zope-pt] CRUD

2006-01-22 Por tôpico Rodrigo Senra

On 22Jan 2006, at 1:04 AM, Sidnei da Silva wrote:

 Hum? CRUD e Zope 3? O que voces estao procurando ja existe a mais ou
 menos dois anos. Procurem no Google por 'sqlos'. Eh o jeito mais
 rapido e pratico de integrar SQL e transacoes no Zope 3 sem realmente
 precisar escrever SQL.

 Com umas views bem genericas e uns arquivos de configuracao pra nao
 precisar definir interfaces e classes do SQLObject na mao seria o
 killer app.

 http://codespeak.net/z3/sqlos/

Valeu Sidnei, ótima referência. Estou *muito* desatualizado em
matéria de Zope3, pelo visto está na hora de *bitolar* em Zope3.
# O que para mim significa só em fevereiro :o(

Eu tenho o livro do Phillip W., vc considera esta fonte ainda atualizada
e uma boa opção para começar, ou seria melhor começar pelas referências
on-line ?

E aproveitando o ensejo, como está a migração do CMF para o Zope3.

Abração
Senra

Rodrigo Senra
_
GPr Sistemas Ltda
http://www.gpr.com.br





Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [Zope-pt] CRUD

2006-01-21 Por tôpico Rodrigo Senra

On 20Jan 2006, at 8:03 PM, Luciano Ramalho wrote:

 Concordo que usar toda a pilha CMF+Plone para fazer aplicações CRUD  
 é como usar um canhão para matar uma mosca, mas acho que a melhor  
 saída não seria investir numa solução baseada em Zope2 a essa  
 altura do campeonato, e sim partir logo para implementar algo em  
 Zope 3.

 Se conseguirmos juntar massa crítica para fazer isso, poderíamos  
 ajudar muito a plataforma. Alguém mais se interessa pelo assunto?

+1

Abração
Senra

Rodrigo Senra
_
GPr Sistemas Ltda
http://www.gpr.com.br





Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html