SlideShare uma empresa Scribd logo
Plone Yak Shaving and
Bikeshedding
FISL 14
Fabiano Weimar dos Santos
Yak Shaving
● Any apparently useless activity which, by
allowing you to overcome intermediate
difficulties, allows you to solve a larger
problem.
● The actually useless activity you do that
appears important when you are consciously
or unconsciously procrastinating about a
larger problem.
Plone Yak Shaving and Bikeshedding
Como é?
● Você pensa: vou receber visitas em casa, mas
a cozinha está uma bagunça! Preciso lavar a
louça, mas não tenho detergente. Decido ir
comprar detergente, mas o mercado é muito
longe! Precisarei ir de carro! Ligo o carro e
vejo que preciso abastecer. Chego no posto e
troco o óleo. Saio do posto apressado e volto
para casa sem ter ido ao mercado.
– E agora... que tal uma pizza?
Plone Yak Shaving
● Bad “Yak Shaving”: tentar fazer as coisas “perfeitamente”
geralmente impede que você resolva os problemas reais.
●
Quer alguns exemplos? Basta não ser cuidadoso com...
– Portlets (não parametrizáveis)
– Viewlets (não reutilizáveis)
– Views (com lógica de negócio trivial)
– Adapters (só pra mostrar que sabe usar “design patterns”)
●
Alguns conceitos do Plone já são suficientemente complexos.
Plone Yak Shaving
● Good “Yak Shaving”: criar hábitos de
desenvolvimento seguro e monitoramento.
● Você não se sente confortável em desenvolver
código fonte seguro?
– OWASP Top 10
– Entender como a segurança do Plone funciona
● Você não se preocupa em monitorar como suas
aplicações se comportam em produção?
● nagios e munin podem salvar você de muita dor de cabeça!
Dicas
● Usar a última versão estável do Plone para
desenvolvimento de novos projetos
● Aplicar patches de segurança
● Não reinventar a roda! Se você quer criar algo
revolucionário, pergunte-se: os riscos
envolvidos são compensados pelos
benefícios?
– Deco?
Dicas
● Diminua dependências entre serviços
● Avalie com seriedade seus critérios de:
– Disponibilidade
– Tolerância a Falhas
– Performance
– Complexidade
Plone Yak Shaving
● Invista em infraestrutura inteligente (tolerância
a falhas, balanceamento de carga, cache
distribuído, monitoramento ativo).
● Proxies reversos são importantes não apenas
para performance, mas também para manter a
segurança.
● “Nem sempre” é simples garantir que todas as
aplicações em sua rede foram bem
desenvolvidas ou devidamente mantidas.
Dicas de Squid para Plone
acl webdav method PROPFIND PROPPATCH
MKCOL COPY MOVE LOCK UNLOCK TRACE
http_access deny webdav
Dicas de Squid para Plone
acl badurl urlpath_regex -i "badurl.txt"
http_access deny badurl
acl googlebot browser Googlebot/2.1
acl google src "google.txt"
acl bingbot browser bingbot/2.0
acl bing src "bing.txt"
acl badrobot browser -i "badrobot.txt"
acl plone urlpath_regex -i "plone.txt"
Dicas de Squid para Plone
http_access deny googlebot !google
http_access deny bingbot !bing
http_access deny badrobot !googlebot !bingbot
http_access deny badrobot plone
$ cat badurl.txt
.php
.asp
/p_/webdav
/author/
/personalize_form
/MSOffice$
/_vti_bin$
/
w00tw00t.at.ISC.SANS.DFind
cleardot.gif
?select_tv_home=
$ cat badrobot.txt
bot
crawler
spider
Slurp
heritrix
coccoc
ZmEu
Python-urllib
libwww-perl
^Java
^Jakarta
^$
<?php system
pear.php.net
Bork-edition
Arachnophilia
HTTrack
Nutch
LoadImpactRload
SiteExplorer
$ cat plone.txt
/edit$
/portal_
/sendto_form
/day
/month
/multimonth
/weekbyhour
/weekbyday
/getCaptchaImage/
b_start=
b_start:int=
SearchableText=
searchterm=
set_language=
Bikeshedding
● Technical disputes over minor, marginal issues
conducted while more serious ones are being
overlooked.
● The implied image is of people arguing over
what color to paint the bicycle shed while the
house is not finished.
Very Common Web Bikeshedding
● Discutir a respeito de webdesign (se você não
é profissional designer, deveria aprender a
“ficar quieto”).
● Discutir políticas de segurança e
monitoramento de aplicações sem conhecer
normas (ou mesmo boas práticas) da área.
● Reinventar a forma como conteúdo é
gerenciado sem conhecer categorização,
indexação, busca, permissões, workflow, etc.
Plone Yak Shaving and Bikeshedding
Plone Development Bikeshedding
● Open bug reports for “software improviments”
● Create PLIP for really simple stuff
– Simple improviments could be discussed directly
with the Release Manager
form.widget(data_responsavel=DateFieldWidget)
data_responsavel = schema.Date(
title=_(u'Data como Responsável.'),
description=_(u'foobar'),
defaultFactory=datetime.date.today)
zope.schema = 3.8.1
Exemplo
Plone Bikeshedding
● Precisamos ser mais cuidadosos a respeito
das expectativas de nossos usuários
– Nem sempre entregar o que nos pedem, mas sim
o que os usuários precisam
● Cuidado com requisitos não funcionais
Obrigado
Fabiano Weimar dos Santos
<xiru@xiru.org>
Twitter: @xiru

Mais conteúdo relacionado

Semelhante a Plone Yak Shaving and Bikeshedding

Organizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gostaOrganizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gosta
Johnathan Cardoso
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
iMasters
 
Test First, TDD e outros Bichos
Test First, TDD e outros BichosTest First, TDD e outros Bichos
Test First, TDD e outros Bichos
Kleitor Franklint Correa Araujo
 
WCM_Ebook_PT.pdf
WCM_Ebook_PT.pdfWCM_Ebook_PT.pdf
WCM_Ebook_PT.pdf
TonFelix1
 
Melhorando continuamente através de práticas ágeis
Melhorando continuamente através de práticas ágeisMelhorando continuamente através de práticas ágeis
Melhorando continuamente através de práticas ágeis
Vladson Freire
 
Camada de Negócios de Verdade com Spring
Camada de Negócios de Verdade com SpringCamada de Negócios de Verdade com Spring
Camada de Negócios de Verdade com Spring
elliando dias
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Maurício Linhares
 
Lidando de forma eficaz com mentalidade legada
Lidando de forma eficaz com mentalidade legadaLidando de forma eficaz com mentalidade legada
Lidando de forma eficaz com mentalidade legada
Rodrigo Yoshima
 
Refatorando para Testes de Unidade
Refatorando para Testes de UnidadeRefatorando para Testes de Unidade
Refatorando para Testes de Unidade
Andre Baltieri
 
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
Gleicon Moraes
 
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em AndroidPalestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
Professor Isidro
 
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudeCriando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Pablo Dall'Oglio
 
Visões sobre Lean & Agile - Victor Hugo & Manoel Pimentel
Visões sobre Lean & Agile -  Victor Hugo & Manoel PimentelVisões sobre Lean & Agile -  Victor Hugo & Manoel Pimentel
Visões sobre Lean & Agile - Victor Hugo & Manoel Pimentel
Manoel Pimentel Medeiros
 
2PHP_Metodologia
2PHP_Metodologia2PHP_Metodologia
2PHP_Metodologia
Bruno Emanuel Silva
 
Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um Software
Pablo Dall'Oglio
 
Agilidade: Scrum e Xp
Agilidade: Scrum e XpAgilidade: Scrum e Xp
Agilidade: Scrum e Xp
Fernando Costa
 
Quebrando Histórias de Usuário
Quebrando Histórias de UsuárioQuebrando Histórias de Usuário
Quebrando Histórias de Usuário
Giuliano Sposito
 
Criando plugin para o Nagios em Shell Script _ Nagios
Criando plugin para o Nagios em Shell Script _ NagiosCriando plugin para o Nagios em Shell Script _ Nagios
Criando plugin para o Nagios em Shell Script _ Nagios
Carlos Eduardo
 
Developer 0.0 - Tiago Pascoal
Developer 0.0 - Tiago PascoalDeveloper 0.0 - Tiago Pascoal
Developer 0.0 - Tiago Pascoal
Comunidade NetPonto
 
Cópia de monkey runner
Cópia de monkey runnerCópia de monkey runner
Cópia de monkey runner
Vinicius Delgado
 

Semelhante a Plone Yak Shaving and Bikeshedding (20)

Organizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gostaOrganizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gosta
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
 
Test First, TDD e outros Bichos
Test First, TDD e outros BichosTest First, TDD e outros Bichos
Test First, TDD e outros Bichos
 
WCM_Ebook_PT.pdf
WCM_Ebook_PT.pdfWCM_Ebook_PT.pdf
WCM_Ebook_PT.pdf
 
Melhorando continuamente através de práticas ágeis
Melhorando continuamente através de práticas ágeisMelhorando continuamente através de práticas ágeis
Melhorando continuamente através de práticas ágeis
 
Camada de Negócios de Verdade com Spring
Camada de Negócios de Verdade com SpringCamada de Negócios de Verdade com Spring
Camada de Negócios de Verdade com Spring
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Lidando de forma eficaz com mentalidade legada
Lidando de forma eficaz com mentalidade legadaLidando de forma eficaz com mentalidade legada
Lidando de forma eficaz com mentalidade legada
 
Refatorando para Testes de Unidade
Refatorando para Testes de UnidadeRefatorando para Testes de Unidade
Refatorando para Testes de Unidade
 
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
 
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em AndroidPalestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
 
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudeCriando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
 
Visões sobre Lean & Agile - Victor Hugo & Manoel Pimentel
Visões sobre Lean & Agile -  Victor Hugo & Manoel PimentelVisões sobre Lean & Agile -  Victor Hugo & Manoel Pimentel
Visões sobre Lean & Agile - Victor Hugo & Manoel Pimentel
 
2PHP_Metodologia
2PHP_Metodologia2PHP_Metodologia
2PHP_Metodologia
 
Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um Software
 
Agilidade: Scrum e Xp
Agilidade: Scrum e XpAgilidade: Scrum e Xp
Agilidade: Scrum e Xp
 
Quebrando Histórias de Usuário
Quebrando Histórias de UsuárioQuebrando Histórias de Usuário
Quebrando Histórias de Usuário
 
Criando plugin para o Nagios em Shell Script _ Nagios
Criando plugin para o Nagios em Shell Script _ NagiosCriando plugin para o Nagios em Shell Script _ Nagios
Criando plugin para o Nagios em Shell Script _ Nagios
 
Developer 0.0 - Tiago Pascoal
Developer 0.0 - Tiago PascoalDeveloper 0.0 - Tiago Pascoal
Developer 0.0 - Tiago Pascoal
 
Cópia de monkey runner
Cópia de monkey runnerCópia de monkey runner
Cópia de monkey runner
 

Mais de Fabiano Weimar

Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Fabiano Weimar
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Fabiano Weimar
 
Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???
Fabiano Weimar
 
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo AlheioPortal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Fabiano Weimar
 
Introducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo PloneIntroducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo Plone
Fabiano Weimar
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com Plone
Fabiano Weimar
 
Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)
Fabiano Weimar
 
Faça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFaça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.caching
Fabiano Weimar
 
Adaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveisAdaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveis
Fabiano Weimar
 
Otimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesOtimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websites
Fabiano Weimar
 
Understanding Plone Security
Understanding Plone SecurityUnderstanding Plone Security
Understanding Plone Security
Fabiano Weimar
 
Tips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile PlatformsTips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile Platforms
Fabiano Weimar
 
Segurança no plone
Segurança no ploneSegurança no plone
Segurança no plone
Fabiano Weimar
 
Dicas e truques de otimização de websites python
Dicas e truques de otimização de websites pythonDicas e truques de otimização de websites python
Dicas e truques de otimização de websites python
Fabiano Weimar
 
Conhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECConhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UEC
Fabiano Weimar
 
Sistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOSistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDO
Fabiano Weimar
 
Novidades do plone 4
Novidades do plone 4Novidades do plone 4
Novidades do plone 4
Fabiano Weimar
 
O novo plone 4
O novo plone 4O novo plone 4
O novo plone 4
Fabiano Weimar
 
Reconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroReconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiro
Fabiano Weimar
 
IPv6
IPv6IPv6

Mais de Fabiano Weimar (20)

Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???
 
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo AlheioPortal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
 
Introducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo PloneIntroducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo Plone
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com Plone
 
Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)
 
Faça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFaça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.caching
 
Adaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveisAdaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveis
 
Otimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesOtimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websites
 
Understanding Plone Security
Understanding Plone SecurityUnderstanding Plone Security
Understanding Plone Security
 
Tips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile PlatformsTips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile Platforms
 
Segurança no plone
Segurança no ploneSegurança no plone
Segurança no plone
 
Dicas e truques de otimização de websites python
Dicas e truques de otimização de websites pythonDicas e truques de otimização de websites python
Dicas e truques de otimização de websites python
 
Conhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECConhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UEC
 
Sistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOSistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDO
 
Novidades do plone 4
Novidades do plone 4Novidades do plone 4
Novidades do plone 4
 
O novo plone 4
O novo plone 4O novo plone 4
O novo plone 4
 
Reconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroReconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiro
 
IPv6
IPv6IPv6
IPv6
 

Plone Yak Shaving and Bikeshedding

  • 1. Plone Yak Shaving and Bikeshedding FISL 14 Fabiano Weimar dos Santos
  • 2. Yak Shaving ● Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem. ● The actually useless activity you do that appears important when you are consciously or unconsciously procrastinating about a larger problem.
  • 4. Como é? ● Você pensa: vou receber visitas em casa, mas a cozinha está uma bagunça! Preciso lavar a louça, mas não tenho detergente. Decido ir comprar detergente, mas o mercado é muito longe! Precisarei ir de carro! Ligo o carro e vejo que preciso abastecer. Chego no posto e troco o óleo. Saio do posto apressado e volto para casa sem ter ido ao mercado. – E agora... que tal uma pizza?
  • 5. Plone Yak Shaving ● Bad “Yak Shaving”: tentar fazer as coisas “perfeitamente” geralmente impede que você resolva os problemas reais. ● Quer alguns exemplos? Basta não ser cuidadoso com... – Portlets (não parametrizáveis) – Viewlets (não reutilizáveis) – Views (com lógica de negócio trivial) – Adapters (só pra mostrar que sabe usar “design patterns”) ● Alguns conceitos do Plone já são suficientemente complexos.
  • 6. Plone Yak Shaving ● Good “Yak Shaving”: criar hábitos de desenvolvimento seguro e monitoramento. ● Você não se sente confortável em desenvolver código fonte seguro? – OWASP Top 10 – Entender como a segurança do Plone funciona ● Você não se preocupa em monitorar como suas aplicações se comportam em produção? ● nagios e munin podem salvar você de muita dor de cabeça!
  • 7. Dicas ● Usar a última versão estável do Plone para desenvolvimento de novos projetos ● Aplicar patches de segurança ● Não reinventar a roda! Se você quer criar algo revolucionário, pergunte-se: os riscos envolvidos são compensados pelos benefícios? – Deco?
  • 8. Dicas ● Diminua dependências entre serviços ● Avalie com seriedade seus critérios de: – Disponibilidade – Tolerância a Falhas – Performance – Complexidade
  • 9. Plone Yak Shaving ● Invista em infraestrutura inteligente (tolerância a falhas, balanceamento de carga, cache distribuído, monitoramento ativo). ● Proxies reversos são importantes não apenas para performance, mas também para manter a segurança. ● “Nem sempre” é simples garantir que todas as aplicações em sua rede foram bem desenvolvidas ou devidamente mantidas.
  • 10. Dicas de Squid para Plone acl webdav method PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK TRACE http_access deny webdav
  • 11. Dicas de Squid para Plone acl badurl urlpath_regex -i "badurl.txt" http_access deny badurl acl googlebot browser Googlebot/2.1 acl google src "google.txt" acl bingbot browser bingbot/2.0 acl bing src "bing.txt" acl badrobot browser -i "badrobot.txt" acl plone urlpath_regex -i "plone.txt"
  • 12. Dicas de Squid para Plone http_access deny googlebot !google http_access deny bingbot !bing http_access deny badrobot !googlebot !bingbot http_access deny badrobot plone
  • 13. $ cat badurl.txt .php .asp /p_/webdav /author/ /personalize_form /MSOffice$ /_vti_bin$ / w00tw00t.at.ISC.SANS.DFind cleardot.gif ?select_tv_home= $ cat badrobot.txt bot crawler spider Slurp heritrix coccoc ZmEu Python-urllib libwww-perl ^Java ^Jakarta ^$ <?php system pear.php.net Bork-edition Arachnophilia HTTrack Nutch LoadImpactRload SiteExplorer $ cat plone.txt /edit$ /portal_ /sendto_form /day /month /multimonth /weekbyhour /weekbyday /getCaptchaImage/ b_start= b_start:int= SearchableText= searchterm= set_language=
  • 14. Bikeshedding ● Technical disputes over minor, marginal issues conducted while more serious ones are being overlooked. ● The implied image is of people arguing over what color to paint the bicycle shed while the house is not finished.
  • 15. Very Common Web Bikeshedding ● Discutir a respeito de webdesign (se você não é profissional designer, deveria aprender a “ficar quieto”). ● Discutir políticas de segurança e monitoramento de aplicações sem conhecer normas (ou mesmo boas práticas) da área. ● Reinventar a forma como conteúdo é gerenciado sem conhecer categorização, indexação, busca, permissões, workflow, etc.
  • 17. Plone Development Bikeshedding ● Open bug reports for “software improviments” ● Create PLIP for really simple stuff – Simple improviments could be discussed directly with the Release Manager
  • 18. form.widget(data_responsavel=DateFieldWidget) data_responsavel = schema.Date( title=_(u'Data como Responsável.'), description=_(u'foobar'), defaultFactory=datetime.date.today) zope.schema = 3.8.1 Exemplo
  • 19. Plone Bikeshedding ● Precisamos ser mais cuidadosos a respeito das expectativas de nossos usuários – Nem sempre entregar o que nos pedem, mas sim o que os usuários precisam ● Cuidado com requisitos não funcionais
  • 20. Obrigado Fabiano Weimar dos Santos <xiru@xiru.org> Twitter: @xiru