I Workshop Brasileiro de Otimização em Engenharia de Software

Jul 23
2010

No programa de mestrado é necessário atingir um número de publicações para conseguir o título de mestre. Além disso artigos e publicações contam como produção acadêmica e pesquisa. Então não tem jeito: tem que escrever! E como meu orientador costuma dizer: vamos escrever logo porque isso aqui é uma esteira de produção, temos que estar sempre produzindo no programa. Sendo assim resolvemos escrever um artigo técnico sobre o andamento da minha pesquisa de dissertação e tentar publicar em simpósios e congressos. Feliz foi a minha surpresa ao ser aceito logo de cara nos dois que tentei:

SSBSE: 2nd International Symposium on Search Based Software Engineering

WOES: XXIV Simpósio Brasileiro de Engenharia de Software (SBES´2010)

Portanto, setembro vai ser um mês cheio pra mim! Logo no início do mês vou à Itália apresentar o trabalho no SSBSE e esticar um pouco a estada, afinal ninguém é de ferro né! Na volta já me preparo para apresentar o trabalho de novo no WOES. Detalhe: em alguns dos comentários dos revisores eu tive um feedback muito positivo. Alguns dos pesquisadores que avaliaram a minha pesquisa lamentaram ela ainda estar num estágio inicial. Isso me deu mais força ainda para ir adiante e fechar esse estudo de caso. Num próximo post falarei do trabalho em si.

Bordeaux Vinhos – Petrópolis

Jul 19
2010

Em Petrópolis existe o Museu a Céu Aberto, mais conhecido como a Casa dos 7 Erros onde temos erros de construção (arquitetura) propositais colocados na casa. O Museu é particular e o bisneto do antigo dono é o próprio guia, contando a história de cada pedacinho da casa. Isso por si só já rende um bom passeio, mas o legal mesmo é o Bistro que montaram lá.

Na antiga cocheira da casa existe um restaurante chamado Bordeaux Vinhos e Cia. É uma casa de vinhos com uma parte aberta e outra fechada. Na fachada você já percebe que há uma pequena torre com um relógio de ponteiros bem antigo. Lá tem uma placa informando ser o primeiro do gênero em Petrópolis. A comida estava ótima, o atendimento também foi excelente e o ambiente era super agaradável. Recomendo muito, principalmente nesse época mais fria! Ótimo passeio.

Filme: A caixa – Você é a experiência

Jul 14
2010

Resumidamente: tosco. Eu realmente queria saber como é possível que invistam tempo e dinheiro para rodar um filme como esse! Terrivelmente tosco, num contexto péssimo e só com coisas ruins acontecendo. É filme para acabar com o final de semana! Ao vê-lo na locadora faça o seguinte … deixe ele lá mesmo!

Sinopse:

O que você faria se lhe entregassem uma caixa com apenas um botão e que se você o apertasse lhe deixaria milionário mas, ao mesmo tempo, tirasse a vida de alguém que você não conhece? Norma Lewis (Cameron Dias) é uma professora e o seu marido, Arthur (James Marsden), é um engenheiro da NASA. Eles são um casal com um filho que leva uma vida normal morando no subúrbio. Tudo muda quando um misterioso homem aparece com uma proposta tentadora: a caixa. Norma e Arthur têm 24 horas para fazer a escolha. Logo eles irão descobrir que certas escolhas estão fora de seu controle e vão muito além da fortuna e do destino.

Utilizando tecnicas de Hijack no javascript – Segurança de aplicação

Jul 07
2010

Dias desses fui pego de surpresa por um cliente de um site. Ele disse que haviam invadido o site e que os clientes dele podiam, de alguma forma obscura, ver os dados uns dos outros. No mercado financeiro isso é fatal pois trata da privacidade do cidadão. Ninguém quer seu sigilo bancário exposto na web para qualquer um. O desespero foi total!

Foi aí que entrei na jogada para entender o problema e procurar as alternativas. O primeiro dos problemas era bem básico: passagem de parâmetros por querystring. Que vacilo deixar isso passar. Porém, como já conheço bem a equipe e a forma como os requisitos não-funcionais são tratados no ambiente, não culpo os desenvolvedores. De qualquer forma o acerto emergencial foi mesmo criptografar os parâmetros. O método foi o RC4. Ele gera uma criptografia boa o suficiente para esses casos. Apesar de a url ficar enorme esse foi o método mais rápido possível para fechar logo a brecha. Depois mudamos para passar os parâmetros por post. O correto mesmo e que foi sugerido é que mesmo enviando dados de forma segura se valide se o usuário em questão tem acesso aqueles dados. Em todas as consultas que sejam críticas esse tipo de verificação é a unica forma de garantir que apenas ele consegue visualizar seus dados. Alguém pode até se passar por ele mas aí já é outra história!

O outro bendito problema era o javascript injection. Esse me arrepiou os cabelos!!! Isso porque o site já havia sido projetado de forma deixar essa brecha fechada. Como diabos isso foi acontecer. Os usuários estavam conseguindo mudar parâmetros dentro do javascript da página usando o prompt do navegador. Ao menos para mim foi sinistro descobrir isso! Solução: hijack de função e uso de método privado em javascript.

No primeiro caso o que implementamos foi modificar o comportamento das funções dinamicamente. Atribuiu-se a função que gerava os links com parâmetros um alert de acesso negado conforme o exemplo:

<a href=”javascript: funcao.Link.Cms(’sasasas’, ‘asasasas’);”>asas</a>

<script>
var antiga = funcao.Link.Cms;
funcao.Link.Cms = function(){alert(‘acesso negado’);}
for por todos os links
Verifico se tem no atributo href =funcao.Link.Cms
var href = link.getAtt(href);
link.href= function() {javascript void(0);}
link.onlick = function()
{funcao.Link.Cms = antiga;
eval(href);
funcao.Link.Cms = function(){alert(‘acesso negado’);}
}
</script>

Logo em seguida foi tudo modificado para não permitir a utilização direta (pública) dessas funções usando um conceito básico de métodos privados em javascript. Pronto! Agora não é possível acessar as funções e variáveis publicamente e o comportamento só é setado quando um click de link é disparado! Ufa!

Só para relembrar: o correto mesmo é já projetar a aplicação com esse tipo de proteção. Isso pode ser feito de muitas maneiras. Esse exemplo foi uma solução às pressas!!! Não siga isso. Aprenda com o exemplo e desenvolva uma solução melhor!

Estudo sobre Métodos Heurísticos com foco em testes de software

Jun 30
2010

Tenho uma amiga virtual, a Ananda Menali, que sempre me pergunta: “Por que os títulos das coisas que você escreve são tão esquisitos e complexos?”. Pois é, isso se deve porque na linha de pesquisa em que me encontro inscrito no PPGI (Programa de Pós-Graduação em Informática) na UniRio (Universidade Federal do Estado do Rio de Janeiro) o negócio é assim: complicado! Existe uma divisão na parte de Engenharia de Software onde temos o pessoal da área soft, que trata de processos e nós da área hard, que tratamos de desenvolvimento. Apesar da brincadeira o trabalho em ambos os campos é bem pesado. Numa pós graduação Strictu Senso em TI, não tem como os títulos dos trabalhos serem normais né Ananda? ;)

Na parte hard da coisa, que é a minha praia, temos um grupo de pesquisa em Engenharia de Software Orientada a Buscas (SBSE – Search Based Software Engineering), onde realizamos pesquisas de otimização combinatória. Todas as pesquisas são direcionadas à desenvolvimento de aplicações e gerência de projetos. Otimização combinatória é um “troço” de doido. Das pesquisas que estão em andamento, apenas duas já fecharam. Eu sou da terceira turma do programa e só o pessoal da primeira turma conseguiu defender. A pesquisa que eu acompanhei trata de um método para propor uma organização para a equipe de testes com o objetivo de atender à correção de bugs. Achei o assunto muito interessante afinal sou desenvolvedor e trabalho com isso  diariamente. Ela motivou meu trabalho no campo de otimização. Mas então: o que é otimização combinatória? Vamos falar português?

Para falar de otimização primeiro precisamos falar de problemas e suas classes. Existem duas classes de problemas que os dividem em tipo P e NP. Problemas do tipo P são aqueles para os quais existem soluções que podem ser encontradas num tempo exeqüível. Tempo exequível significa, de fato, viável. Matematicamente estamos falando de tempo polinomial, ou seja, o crescimento do tempo pode ser descrito por um polinômio. Dada uma instância (uma entrada) N do problema, o tempo para encontrar a solução é algum polinômio do tipo 2N.  Português: você leva duas vezes o tamanho da entrada para resolver o problema. Sendo assim se a entrada tem tamanho 3 a solução é encontrada em 6. Crescimento alto, sem dúvida. Porém exeqüível, polinomial.

Porém, esse é um grupo restrito de problemas. Problemas de otimização são problemas complexos por natureza, afinal o objetivo é melhorar uma solução, otimizar. É aí então que entram os problemas do tipo NP.  Problemas do tipo NP são aqueles para os quais não há solução em tempo polinomial, ou seja, não pode ser descrito por um polinômio. Esse tipo de problema possui características que fazem com que o tempo para encontrar uma solução cresça exponencialmente. Usando o mesmo exemplo se a equação que descreve o crescimento do tempo de um problema NP é 2N, então para uma entrada de tamanho 3 temos 23 que é 8. Conforme o tamanho da instância do problema cresce, o tempo para encontrar a solução vai se tornando inviável. Aplicações práticas de alguns problemas não permitem que eles demorem muito para encontrar uma resposta. Um exemplo clássico na área é o da Mochila binária.  Encher uma mochila com itens que tem peso e valor, sabendo que não pode ultrapassar a carga da mochila é fácil. Existem N métodos que podem fazer isso. Agora encontrar o melhor grupo de itens de forma que maximize o valor e minimize o peso já não é tão simples. Se permitirmos também colocar na mochila frações desses itens, o problema fica tão complexo que vai para um grupo específico de problemas chamado NP-Hard. Agora imaginem que seria necessário, por exemplo, 8 horas para encontrar a forma otimizada (solução ótima) de encher a mochila. Quem usaria uma solução dessas? Na prática você colocaria os melhores itens que coubessem e pronto, já está bom! Em geral uma solução boa (próxima da ótima) já atende bem ao problema.

Levando em consideração essas duas características podemos concluir que se existir um método que encontre uma solução boa num tempo melhor do que varrer todas as opções, podemos aplicá-lo. Esse raciocínio permitiu a criação de métodos quem encontram boas soluções com alguma garantia de distância da solução ótima. Esses métodos usam heurísticas para chegar nesses resultados. Através da implementação de algoritmos heurísticos é possível, por exemplo, que um roteador decida uma determinada rota boa num tempo bom. Determinar um rota tem que ser algo rápido e explorar todas as possibilidades é inviável. Portanto usa-se uma heurística e aceita-se um certo nível de qualidade da solução.

Acho que para esse post já está bom. Falamos dos tipos de problemas e sobre a SBSE. Num próximo falo da minha pesquisa e de como estou evoluindo com ela.

Alguns links relacionados:

SBSE Repository
Programa de Pós-Graduação em Informática – Unirio
2nd International Symposium on Search Based Software Engineering

Filme: Toy Story 3!

Jun 26
2010

Os studios Pixar de novo mandaram muito bem. O último longa deles, UP, já havia superado as minhas expectativas. Tanto a produção quanto o roteiro foram muito bons mesmo. Agora com o final da aventura de Woody e Buzz eles conseguiram subir mais um nível. Eles encerram a história (ao menos não percebi ganchos na história pra mais nada) com uma aventura muito divertida e bonita, onde conceitos sobre a amizade e a família se sobressaem a outros aspectos. Recomendo muito mesmo! Com certeza uma produção dessa vai deixar saudade, mas fico contente que eles tenham enfim encerrado. Assista o Trailer.

Muitos filmes e series pecam exatamente nesse ponto: esticam demais a história e não acabam ela nunca. Recentemente Lost passou pelo mesmo problema. O planejamento era um, o sucesso foi outro e então a execução foi um desastre. Pecaram pelo olho grande e estragaram uma história que tinha tudo para arrebentar e virar referência. Hoje Lost acabou e não tem mais chance de virar referência devido a essas falhas fominhas. Paciência né? Pensando nisso foi bom encerrarem Toy Story com uma boa história que fala exatamente disso: mudanças e finais. Foda!!!

Sinopse

Woody, Buzz, e o resto de seus amigos, são despejados para uma creche depois que seu dono, Andy, vai para a faculdade. Embora estando animados no começo pelo novo ambiente, e os brinquedos aparentemente amigáveis que também vivem no centro, não demora muito para se tornarem determinados a voltar para casa, uma decisão partilhada por Andy, que começa a perceber que seus brinquedos sempre tiveram um lugar no seu coração.

O Fim da Eternidade

Jun 25
2010
Tinha que ser do Asimov. O melhor conto sobre viagem no tempo que já li. Lembro de que no prefácio ele disse que nunca havia escrito sobre viagem no tempo e não sabia se ia ficar bom. Porra Asimov, ficou bom pra cacete! O Fim da Eternidade fala dos Eternos que são técnicos especializados em Mudanças de Realidade, ou seja, de forma controlada e muito planejada executavam alterações na história da humanidade visando minimizar o sofrimento das pessoas. O título do blog, Infinidade, vem desse livro. Meu irmão mais novo, André Farzat, leu e me recomendou. Eu devorei o livro. Desde então ele deixou o domínio registrado para quando fosse o caso de usar. Estamos usando agora! ;)
Da extensa obra de Isaac Asimov, “O Fim da Eternidade” está entre os melhores livros escritos pelo autor e é considerada uma das mais bem-sucedidas histórias de viagem no tempo.
Enredo
A Eternidade do título é uma organização que existe fora do tempo. Ela se compõe de, na maioria, homens chamados Eternos (note que não passa de um título, e que eles não são de fato imortais) que são recrutados de diferentes eras da história humana, a começar pelo século XXVII. Os Eternos são capazes de viajar “aoravante” e “aoutrora” (compare: acima e abaixo; doravante e outrora) através da Eternidade e entrar no mundo de tempo convencional em quase qualquer lugar e hora que quiserem, exceto uma seção do futuro distante na qual eles não conseguem entrar. Coletivamente, eles formam um exército de guardiões que executam ações ínfimas, calculadas e planejadas com extremo cuidado, chamadas Mudanças de Realidade, sobre o mundo convencional a fim de minimizar o sofrimento humano ao longo da História toda.

2012 Onda Zero – A websérie!

Jun 20
2010

A websérie 2012 Onda Zero é um projeto nacional (em todos os sentidos) do qual sou o produtor executivo. Esse projeto é sem dúvida o mais interessante e diferente do qual já participei.  Infelizmente não posso, ao menos hoje, contar detalhes dos bastidores do projeto. Pois é, como citado na matéria da Folha Online, ares de super produção. E por isso mesmo sigilosa até que tudo esteja pronto. E que trabalho para aprontar tudo.

A websérie em si nasceu de um projeto maior. A idéia era criar um ambiente onde fosse possível testar a interatividade desse outro projeto. Uma história rolando na internet, com interação dos espectadores, descoberta de detalhes e montagem de quebra-cabeças soltos pelo site e vídeos, parecia perfeita. Era um excelente ambiente de testes. Tudo foi preparado para o lançamento do projeto em agosto de 2009, quando o site da websérie foi ao ar disponibilizando o primeiro spot promocional da websérie. Muita gente comentou o vídeo e sempre a ênfase dos comentários era sobre a qualidade do trabalho e da história.

A maioria dos internautas perguntava sobre como os vídeos eram feitos, quanto custaram e principalmente sobre os locais de gravação. Quinze dias após liberamos o spot promocional dois. Novamente a grande surpresa dos internautas foi o uso de efeitos visuais para compor a cena final, onde JP fica preso num elevado destruído no futuro. Comentários como: “Como vocês fizeram aquilo?” e  “Parece com produção de série americana!” são comuns no site da websérie.

O projeto 2012 Onda Zero começou a tomar uma proporção maior do que esperávamos. Resolvemos enfim liberar o episódio I – Encontro com o Destino (fotos)  com 07:47min de duração. O sucesso foi estrondoso. Contando com os canais de distribuição, como o Videolog, o episódio I passou das 100 mil visitas. Para uma websérie nacional, sem divulgação na mídia, até que é um bom número! ;)  Tivemos uma longa lista de referência e entrevistas, das quais vou destacar a que nosso diretor Flávio Langoni e o protagonista Thiago Neri deram ao Scrap MTV.

Contudo, a websérie ainda era um ambiente de testes. E a quantidade de acessos serviu, além da conta, para os primeiros resultados começarem a ter forma e a guiar as próximas escolhas. Isso, sem nenhuma dúvida, foi um dos grandes entraves em liberar mais episódios. Apesar de a produção já ter rodado e editado bastante coisa, o ritmo da websérie precisava acompanhar o do seu projeto pai. E o bendito mudou o rumo da websérie. Isso fez com que parte do material já pronto fosse jogado fora, para então o que restou ser adaptado.

O episódio II – Relâmpagos no Horizonte (trailerfotos) foi completamente modificado. Ganhou mais tempo e ficou com 14:47min e com cenas novas rodadas só pra ele. Deu foi trabalho! Recentemente, a convite do próprio Videolog, o episódio II – Relâmpagos no Horizonte (trailerfotos)  foi exibido no Circuito 4×1. O público do evento, em sua maioria profissionais de marketing digital além produtores de vídeos para a web, aplaudiu o conteúdo. A prévia já nos deu uma boa noção de que o projeto está no caminho certo.

De qualquer forma fica ainda a situação de que, como a websérie está “presa” a um cronograma maior, o timing para acompanhar a vontade dos espectadores de assistir novos episódios é perdido. Para se ter uma idéia, liberamos no site da websérie o trailer do episódio II – Relâmpagos no Horizonte. Porém, não divulgamos nada. O trailer está com mais de mil visitas e subindo. Temos público buscando o tempo todo novo conteúdo no site.

Só agora, e por isso mesmo escrevo sobre, o projeto ganhou aval e liberação para ser tocado independente do seu projeto pai. Isso dará liberdade para a produção criar um cronograma mais curto para liberação dos episódios. Vamos correr atrás de apoio oficial para a websérie de forma que possamos presentear os fãs com episódios mensais ou quinzenais, dependendo exclusivamente de orçamento para tal. Hoje o projeto já conta com o apoio do Prezunic, TGI Fridays, Rio Sul, CommCenter, Nova Unig, Faculdade CCAA, Add Technologies, Bolsa de mulher e Videlog.

Espero ter boas novas sobre a 2012 Onda Zero logo em breve!

Produção: FABIO FARZAT – FLAVIO LANGONI
Direção: FLAVIO LANGONI
Ass. de Direção: CESAR SARAT
História: FLAVIO LANGONI – WAGNER RIBEIRO
Roteiro: – WAGNER RIBEIRO – CLÁUDIO DOS ANJOS – CRISTIANO CARLOS – PACHA URBANO
Produção Executiva: ALESSANDRA PINESCHI – FABIO FARZAT
Fotografia: FLAVIO LANGONI – LUCIANA MARTINEZ
Camera: MARCELO SARAMAGO – JOÃO HENRIQUE
Trilha Sonora: HYDRIA
Efeitos Especiais: KILMERSON
Edição: CHARLES ALEXCHAIVIKE
Computação Gráfica: MARLON SALDANHA – CHARLES ALEXCHAIVIKE

Invictus!

Jun 19
2010

Mais um filmasso dirigido pelo Clint Eastwood: Invictus conta uma parte da história de Nelson Mandela, quando esse assume o poder na África do Sul e usa o esporte como parte de sua estratégia política e de unificação da nação. Filmasso. Recomendadíssimo!!!

Sinopse

Recentemente eleito presidente, Nelson Mandela (Morgan Freeman) tinha consciência que a África do Sul continuava sendo um país racista e economicamente dividido, em decorrência do apartheid. A proximidade da Copa do Mundo de Rúgbi, pela primeira vez realizada no país, fez com que Mandela resolvesse usar o esporte para unir a população. Para tanto chama para uma reunião Francois Pienaar (Matt Damon), capitão da equipe sul-africana, e o incentiva para que a selação nacional seja campeã.

Informações Técnicas:

título original: Invictus
gênero: Drama
duração: 02 hs 14 min
ano de lançamento: 2009
site oficial: http://wwws.pt.warnerbros.com/invictus/
direção: Clint Eastwood
roteiro:Anthony Peckham, baseado em livro de John Carlin
produção:Clint Eastwood, Robert Lorenz, Lori McCreary e Mace Neufeld
música:Kyle Eastwood e Michael Stevens
fotografia:Tom Stern
direção de arte:Tom Hannam e Jonathan Hely-Hutchinson
figurino:Deborah Hopper
edição:Joel Cox e Gary Roach
efeitos especiais:CIS Hollywood / CIS Vancouver / Hirota Paint Industries

Elenco:

Morgan Freeman (Nelson Mandela)
Matt Damon (Francois Pienaar)
Tony Kgoroge (Jason Tshabalala)
Patrick Mofokeng (Linda Moonsamy)
Matt Stern (Hendrick Booyens)
Julian Lewis Jones (Etienne Feyder)
Adjoa Andoh (Brenda Mazibuko)
Marguerite Wheatley (Nerine)
Leleti Khumalo (Mary)
Patrick Lyster (Sr. Pienaar)
Penny Downie (Sra. Pienaar)
Sibongile Nojila (Eunice)
Bonnie Henna (Zindzi)
Shakes Myeko (Ministro dos Esportes)
Robin Smith (Johan De Villiers)
Dan Robbertse (Boer)
Zak Feaunati (Jonah Lomu)
Langley Kirkwood (George)
Grant Roberts (Ruben Kruger)

Peça: O Diário de Anne Frank

Jun 15
2010

Eu não li o livro, mas tá aí a dica de uma ótima para o final de semana: O Diário de Anne Frank. Gostei muito da atuação do elenco, todos muito bons.

Resumidamente: as famílias Frank e Van Daan são obrigadas a se esconder durante o holocausto. A caçula Anne Frank mantém diário durante a vida no pequeno espaço dividido por eles. O relato final é do pai de Anne, Otto Frank, que foi o único sobrevivente da família de dos judeus escondidos ali.

TEATRO MAISON DE FRANCE PSA PEUGEOT CITROËN
Av. Presidente Antonio Carlos, 58. Centro. Rio de Janeiro.
Curta Temporada, 6 semanas – De 10/06/2010 a 08/08/2010
Horários: De quinta a sábado às 20h, domingo às 19h

Elenco:

Helena Varvaki
Milton Gonçalves
Priscila Steinmam
Yasmim Gomlevsky
Isaac Bardavid
Debora Olivieri
Pierre Baitelli
Julio Levy
Jaime Leibovitch
Inez Viegas

Visit Our Friends!

A few highly recommended friends...

Archives

All entries, chronologically...

Pages List

General info about this blog...