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 ...
Como é?
● Você pensa: vou receber visitas em casa, mas
a cozinha está uma bagunça! Preciso lavar a
louça, mas não tenho de...
Plone Yak Shaving
● Bad “Yak Shaving”: tentar fazer as coisas “perfeitamente”
geralmente impede que você resolva os proble...
Plone Yak Shaving
● Good “Yak Shaving”: criar hábitos de
desenvolvimento seguro e monitoramento.
● Você não se sente confo...
Dicas
● Usar a última versão estável do Plone para
desenvolvimento de novos projetos
● Aplicar patches de segurança
● Não ...
Dicas
● Diminua dependências entre serviços
● Avalie com seriedade seus critérios de:
– Disponibilidade
– Tolerância a Fal...
Plone Yak Shaving
● Invista em infraestrutura inteligente (tolerância
a falhas, balanceamento de carga, cache
distribuído,...
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...
Dicas de Squid para Plone
http_access deny googlebot !google
http_access deny bingbot !bing
http_access deny badrobot !goo...
$ cat badurl.txt
.php
.asp
/p_/webdav
/author/
/personalize_form
/MSOffice$
/_vti_bin$
/
w00tw00t.at.ISC.SANS.DFind
cleard...
Bikeshedding
● Technical disputes over minor, marginal issues
conducted while more serious ones are being
overlooked.
● Th...
Very Common Web Bikeshedding
● Discutir a respeito de webdesign (se você não
é profissional designer, deveria aprender a
“...
Plone Development Bikeshedding
● Open bug reports for “software improviments”
● Create PLIP for really simple stuff
– Simp...
form.widget(data_responsavel=DateFieldWidget)
data_responsavel = schema.Date(
title=_(u'Data como Responsável.'),
descript...
Plone Bikeshedding
● Precisamos ser mais cuidadosos a respeito
das expectativas de nossos usuários
– Nem sempre entregar o...
Obrigado
Fabiano Weimar dos Santos
<xiru@xiru.org>
Twitter: @xiru
Plone Yak Shaving and Bikeshedding
Plone Yak Shaving and Bikeshedding
Próximos SlideShares
Carregando em…5
×

Plone Yak Shaving and Bikeshedding

274 visualizações

Publicada em

Palestra realizada no FISL 14

Publicada em: Internet
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
274
No SlideShare
0
A partir de incorporações
0
Número de incorporações
8
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Plone Yak Shaving and Bikeshedding

  1. 1. Plone Yak Shaving and Bikeshedding FISL 14 Fabiano Weimar dos Santos
  2. 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.
  3. 3. 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?
  4. 4. 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.
  5. 5. 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!
  6. 6. 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?
  7. 7. Dicas ● Diminua dependências entre serviços ● Avalie com seriedade seus critérios de: – Disponibilidade – Tolerância a Falhas – Performance – Complexidade
  8. 8. 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.
  9. 9. Dicas de Squid para Plone acl webdav method PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK TRACE http_access deny webdav
  10. 10. 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"
  11. 11. 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
  12. 12. $ 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=
  13. 13. 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.
  14. 14. 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.
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. Obrigado Fabiano Weimar dos Santos <xiru@xiru.org> Twitter: @xiru

×