Yeah guys, I finally took courage to get my own domain and setup a new blog there . I’d like to thank a lot Michael Rumminer for the opportunity to host my blog here! It was a really good way to get my thoughts organized and express myself! Thanks man!…(read more)
Posts de May, 2010
[Bernardo Heynemann] This blog has moved to http://blog.heynemann.com.br
Wednesday, May 26th, 2010[Rafael Biriba] XIV Semana Tecnológica do IST-Rio: Ciência e tecnologia da Web
Wednesday, May 19th, 2010
O evento conta com palestras e mini-cursos de diversos assuntos tecnológicos, durante os dias 24 à 29 de maio e a entrada é gratuita.
Estarei palestrando nos dias 25 e 27:
dia 25 > às 08:00h (Terça-feira) falando um pouco sobre meu projeto de conclusão: Retivico (Real Time Video Collaboration).
dia 27 > às 10:30h (Quinta-Feira) falando sobre Cloud Computing com a Amazon Web Services
(Depois do evento, eu publico o conteúdo da palestra aqui no blog)
Não perca essa oportunidade de participar de excelentes palestras, apresentações de TCC e mini-cursos voltados para a área de internet.
O endereço é: (Veja também no google maps)
Instituto Superior de Tecnologia em Ciência da Computação do Rio de Janeiro.
Rua Clarimundo de Mello,847 - Quintino - RJ
Tel: (21) 2332-4048
Abaixo segue a agenda do evento, espero ver vocês lá ! ![]()
Mais informações pelo site da instituição: http://www.faetec.rj.gov.br/ist-rio
XIV SEMANA TECNOLÓGICA E CULTURAL DO IST-RIO
24 a 29 de maio de 2010
2ª FEIRA- 24/05/2010 – Manhã
08:00h - Café da manhã, Credenciamento e Abertura - na Praça de Convivência
08:30h - PETRÓPOLIS DAY - na Sala Múltipla
11:00h - Palestra: A universidade no século XXI – Prof. Ronaldo Goldschmidt - na Sala Múltipla
11:50h - Abertura Exposição de Artes Plásticas – Prof. Horácio Ribeiro - na Praça de Convivência
2ªFEIRA- 24/05/2010 – Noite
18:30h - Credenciamento e Abertura - na Praça de Convivência
19: 00h - Video Conferência: mix leitor D -Murilo Marinho e Diego Mello - Mixtecnologia/Recife/PE - na Sala Múltipla
20:00h - Coffee-Break - na Praça de Convivência
20:30h - Palestra: Uso de Frameworks para construção de ambientes – Prof. Ricardo Marciano - na Sala Múltipla
21:10h - Espaço Videos e Curtas - na Praça de Convivência
3ªFEIRA- 25/05/2010 – Manhã
08:00h - Apresentação de TCC: RETIVICO (Rafael Biriba, Nilton Gonçalves) - na Sala Múltipla
09:00h - Palestra: SCRUM – Marcos Santos - na Sala Múltipla
10:00h - Coffee-Break - na Praça de Convivência
10:30h - PALESTRA – Web e Redes Sociais: Prof. Fernando Mota – DESUP/FAETEC - na Sala Múltipla
3ªFEIRA- 25/05/2010 – Noite
18:30h - Apresentação de TCC:
1.SORRENTO (David Rodrigues, Jailson Santos , Luciana Cruz, Rosiene Santos) - na Sala Múltipla
2. SIRO (Camila Areal Santana, Dyego Silva Pinto, Rodrigo Henrique de Oliveira Vieira) - na Sala Múltipla
3.TÉCNICAS PARA CRIAÇÃO DE JOGOS EDUCACIONAIS (Saulo Estêvão Marques Machado, Daiana Rodrigues Paula) - na Sala Múltipla
20:00h - Coffee-Break - na Praça de Convivência
20:30h - Apresentação de PIC:
1.Prospecção e Implantação de Tecnologia de Identificação Biométrica/ Alunos: Leandro Costa Coelho e Felipe Rotilho/Prof. Marcio Belo - na Sala Múltipla
2.Base do Coruja - Helder, Luciana, Marcelo Atie/Prof. Belo - na Sala Múltipla
3.Data WareHouse e o Ensino Superior da FAETEC - na Sala Múltipla
20:30h - Talk Show: Prof. Ricardo Portella - na Sala Múltipla
4ªFEIRA- 26/05/2010 – Manhã
08:00h - Apresentação de PIC:
1.Repositorio Virtual de Ferramentas e Informações para leitura e Redação Automatizadas- Alunos Alice e Hugo Antonio/Profa. Rute Candida – na Sala Múltipla
2. Data WareHouse e o Ensino Superior da FAETEC – na Sala Múltipla
09:00h - PALESTRA: Mapas Mentais e conceituais como apoio a engenharia de software: Prof. Ricardo Marciano – na Sala Múltipla
10:00h - Coffee-Break - na Praça de Convivência
10:30h - MINICURSOS:
1. Instalando, configurando e entendendo as utilidades dos CMS Wordpress e Wikimedia aluno: Hugo Antonio - na Sala Híbrida 1
2. Solução de escalabilidade: Um escritório na nuvem – aluna Alice Helena - na Sala Híbrida 1
4ªFEIRA- 26/05/2010 – Noite
19:00h - PALESTRA: RELATÓRIOS NA WEB: Prof. Marcio Belo e Marcelo Atie - na Sala Múltipla
20:00h - Coffee-Break - na Praça de Convivência
20:30h - PALESTRA: Desenvolvimento de jogo para celular em JAVA. Sérgio Marcelo - Analista de Sistemas - na Sala Múltipla
5ªFEIRA- 27/05/2010 – Manhã
08:30h - Palestra: Ontologias para Web Semântica - Prof. Alfredo Boente - IST-Rio - na Sala Múltipla
09:30h - SARAU – Profs. Guilherme Azeredo e Eduardo Barreto - na Sala Múltipla
10:00h - Coffee-Break - na Praça de Convivência
10:30h - Palestra: Cloud Computing com a Amazon Web Services – Aluno: Rafael Biriba - na Sala Múltipla
5ªFEIRA- 27/05/2010 – Noite
18:30h - PALESTRA: Escola Mandala e sua Fábrica de Softawres - Prof. Márcio Campos-IST-RIO - na Sala Múltipla
19:30h - MiniCURSO: Introdução ao Linux para desktop (ubuntu 10.04) - Prof. Eduardo Barreto - na Sala Híbrida 1
19:30h - Palestra: Boas práticas de programação orientada a objetos – Alunos: Renan Cabral e Higor Rufino - na Sala Múltipla
20:30h - Coffee-Break - na Praça de Convivência
21:00h - Apresentação de PIC: Compério – alunos Higor, Flávia e Hudson – Orientador Prof. Ronaldo Goldschmidt - na Sala Múltipla
6ªFEIRA- 28/05/2010 – Manhã
08:00h - Palestra: Esclarecimentos sobre estágio e extensão – Prof. Vasco Amaral - na Sala Múltipla
09:00h - PALESTRA : ‘LHC - A Máquina da humanidade’ – Renata Santana/Prof. Horácio Ribeiro - na Sala Múltipla
10:00h - Coffee-Break - na Praça de Convivência
10:30h - CINECLUBE – filme: FAHRENHEIT 451 - na Sala Múltipla
6ªFEIRA- 28/05/2010 – Noite
18:30h - Palestra:Ontologias para Web Semântica - Prof. Alfredo Boente - IST-Rio - na Sala Múltipla
19:10h - Palestra: Desenvolvimento de Aplicações WEB orientadas por Teste – TDDP - Alunos: Renan Cabral e Higor Rufino - na Sala Múltipla
19:40h - Coffee-Break - na Praça de Convivência
20:00h - CINECLUBE – filme: FAHRENHEIT 451 - na Sala Múltipla
21:30h - ENCERRAMENTO
SÁBADO - 29/05/2010
14:00h -Visita à Exposição: “EINSTEIN”: Museu Histórico Nacional – Praça Mal. Âncora - Centro/RJ
Leia também:
[Tiago Motta] Site de Passione estréia nova plataforma de novelas da Rede Globo
Monday, May 17th, 2010Entrou no ar hoje a tarde o novo site de Passione, a nova novela das oito da Rede Globo. Mas por trás deste site está muito mais que um site. É o ínicio de uma nova experiência de consumo da dramaturgia da Rede Globo na internet.
Para quem não sabe, depois de quatro anos na equipe de videos da globo.com, me engajei logo no inicio deste projeto no time dedicado a ele. Apesar de ser a mesma empresa, é um mundo totalmente novo. Novas tecnologias, novas formas de gestão, novas pessoas. Tudo novo. Foi e está sendo muito bom.
E agora, com a entrega no prazo, e o feedback de dezenas de pessoas no twitter elogiando nosso trabalho, só tenho a agradecer ao meu time que me acolheu tão bem, e a todos as equipes que nos ajudaram, seja nos dando suporte, seja nos dando dicas, seja nos incentivando. Sem vocês o resultado não seria igual. Parabéns a todos nós!
[Gabriel Falcão] Apresentando Lettuce, BDD em python
Wednesday, May 12th, 2010Depois de muitas horas de hacking intenso, venho apresentar a primeira release candidate do Lettuce.
Trata-se de uma ferramenta de BDD 100% baseada no Cucumber.
O nome teve duas motivações:
- Lettuce (Alface) é um vegetal verde, assim como Cucumber (Pepino), a idéia é que os testes sempre estejam verdes
- Letuce é também o nome de uma banda à qual tenho muita admiração.
Mãos ao código
Deixei links para a documentação no fim deste post, mas aqui vai uma prévia:
Funcionalidades são descritas em arquivos com a extensão .feature, e devem ficar por padrão, dentro do seu projeto, chamada features
Por sua vez, features são descritas assim:
In order to show it working
As lettuce author
I want to create a scenario that passes
Scenario: Concatenate names
Given I have the following names:
| name | surname |
| john | doe |
| ian | murdock |
When I join them
Then I see the data:
| joined |
| Doe, John |
| Murdock, Ian |
Para implementar as steps, basta criar um arquivo python qualquer dentro da pasta features o Lettuce importará todos eles recursivamente.
Exemplo:
from lettuce import step, world, before
from some_module import NameJoiner
# setup
@before.each_scenario
def set_joined(scenario):
world.joined = []
# steps
@step(‘I have the following names’)
def set_names(step):
world.people = step.hashes
@step(‘join them’)
def join_names(step):
for person in world.people:
joiner = NameJoiner(
name=person["name"],
surname=person["surname"]
)
world.joined.append(joiner.join())
@step(‘I see the data’)
def check_names(step):
for name, data in zip(world.joined, step.hashes):
assert name == data[‘joined’]
(baixe o exemplo completo aqui)
Motivação
Desde que comecei a praticar TDD em Python tive várias experiências, testei várias bibliotecas de mock e técnicas de teste.
Em projetos de aplicações web usei o Pyccuracy, assim podia descrever o comportamento da aplicação ao mesmo tempo que fazia testes automatizados da interface.
No entanto, tive a chance de testar o Cucumber num projeto Django aqui na globo.com, me apaixonei por funcionalidades incrivelmente produtivas, como step tables que permite desenhar uma tabela com caracteres, e mapear como lista de hashes, bem como scenario outlines.
Daí veio a grande inspiração: implementar uma ferramenta como o Cucumber, mas em python puro.
Por que?
Para programadores python, é mais cômodo usar bibliotecas em python puro. Eu pessoalmente evito misturar linguagens, a não ser que a melhor solução seja realmente em outra linguagem.
Cucumber é, na minha opinião, uma lib que torna ruby ainda mais sexy ![]()
Criar uma aplicação robusta, bem testada requer paciência, que tal tornar isso mais divertido ?
É mais fácil empacotar módulos python para debian/ubuntu
Além disso, apesar de Cucumber dar suporte a Python, seria interessante usar python puro dentro das step definitions.
Supondo o desenvolvimento de uma aplicação Django com cucumber, seria útil manipular os models dentro de step definitions. Entretanto, para isso acontecer, é necessário usar algo como rubypython, cuja última release data outubro de 2009.
Exemplos de bibliotecas similares/equivalentes entre python e ruby
Framework web:
ruby: rails python: django
Micro-framework web:
ruby: sinatra python: cherrypy
Deploy automatizado:
ruby: capistrano python: fabric
Behaviour-driven development:
ruby: cucumber python: lettuce ?! (quem sabe)
Direto ao assunto!
Hoje estou liberando oficialmente a primeira release candidate do Lettuce, que atualmente possui as seguintes features:
- Hooks pre/pós execução de:
- Toda a suíte de testes
- Cada feature
- Cada scenario
- Cada step
- Contexto global: world
- Scenario outlines
- Step tables
- Nomes e formato de arquivo de features compatível com cucumber
- Output colorido
- Output sem cor
Mas… O que falta para fechar a primeira release oficial? Além de ter feedback sobre possíveis bugs das features já implementadas para melhorá-las, a intenção é que a primeira release também tenha as seguintes funcionalidades:
Documentação
Não poderia faltar, mas ainda está sendo escrita.
De qualquer forma, já possui o básico para colocar o um novo projeto funcionando. E se você já conhece o Cucumber, não terá dificuldades.
Ou melhor ainda, vá direto ao “quick start”
Contribua!
Estou sedento por feedbacks (negativos e positivos), sendo assim:
- Obtenha o código no repositório git
- Junte-se à lista de discussão de usuários do lettuce
- Acesse o bugtracker !
Por fim, o lettuce está sob GNU GPL 3+ e ainda tem um longo caminho pela frente. Toda forma de ajuda é bem vinda, seja com patches, documentação, suporte para outros idiomas, etc.
Happy hacking
[Emerson Macedo] No Limite, Lata Velha e uma plataforma que nasce
Wednesday, May 5th, 2010Quem é telespectador da TV Globo já está acostumado com os diversos programas de TV que oferecem a oportunidade de participação ao público. Geralmente esses programas abrem uma inscrição através do envio de uma carta ao programa, email, download de um formulário para preenchimento, etc.
Nos últimos anos, alguns sistemas foram construídos para melhorar esse canal de casting (i.e seleção de pessoas)desses programas para a TV Globo. Porém, a cada iniciativa nova de casting por parte de um programa, era necessário criar um novo sistema de acordo com as necessidades. Até ai tudo bem, afinal de contas cada programa tem uma necessidade específica. Por muito tempo, usamos também o nosso 8p para ajudar nesse sentido, inclusive para clientes importantes, como Musas do Brasileirão e Big Brother Brasil.
Passado algum tempo, percebemos alguma semelhança entre as iniciativas de casting. Em sua maioria, a opção era um formulário de perguntas e respostas e o envio de um vídeo. Sendo assim, resolvemos desenvolver uma solução para possibilitar o cliente criar uma nova campanha de casting em alguns dias.
De toda essa experiência, criamos um projeto chamado Plataforma de Participações, com o objetivo de oferecer aos nossos clientes da TV essa forma simples de criar campanhas. Basicamente quem monta uma campanha hoje pode escolher se tem formulário, vídeo ou ambos e pode fazer uma definição completa do seu formulário (caso exista), configurando cada pergunta e seu tipo de resposta, precisando de pouca ajuda técnica para colocar sua campanha de casting no ar. Cada cliente também personaliza seu header, preservando assim a identidade visual da sua marca.

Como todo produto ágil, existem outras features no backlog para atenderem algumas demandas dos nossos clientes.
Nossos primeiros clientes são o No Limite e o Lata Velha do Caldeirão do Huck que já estão no ar há algumas semanas e mostrando que essa Plataforma de Participações tem se comportado muito bem nesse começo.
Post Footer automatically generated by Add Post Footer Plugin for wordpress.
[Emerson Macedo] No Limite, Lata Velha e uma plataforma que nasce
Wednesday, May 5th, 2010Quem é telespectador da TV Globo já está acostumado com os diversos programas de TV que oferecem a oportunidade de participação ao público. Geralmente esses programas abrem uma inscrição através do envio de uma carta ao programa, email, download de um formulário para preenchimento, etc.
Nos últimos anos, alguns sistemas foram construídos para melhorar esse canal de casting (i.e seleção de pessoas)desses programas para a TV Globo. Porém, a cada iniciativa nova de casting por parte de um programa, era necessário criar um novo sistema de acordo com as necessidades. Até ai tudo bem, afinal de contas cada programa tem uma necessidade específica. Por muito tempo, usamos também o nosso 8p para ajudar nesse sentido, inclusive para clientes importantes, como Musas do Brasileirão e Big Brother Brasil.
Passado algum tempo, percebemos alguma semelhança entre as iniciativas de casting. Em sua maioria, a opção era um formulário de perguntas e respostas e o envio de um vídeo. Sendo assim, resolvemos desenvolver uma solução para possibilitar o cliente criar uma nova campanha de casting em alguns dias.
De toda essa experiência, criamos um projeto chamado Plataforma de Participações, com o objetivo de oferecer aos nossos clientes da TV essa forma simples de criar campanhas. Basicamente quem monta uma campanha hoje pode escolher se tem formulário, vídeo ou ambos e pode fazer uma definição completa do seu formulário (caso exista), configurando cada pergunta e seu tipo de resposta, precisando de pouca ajuda técnica para colocar sua campanha de casting no ar. Cada cliente também personaliza seu header, preservando assim a identidade visual da sua marca.

Como todo produto ágil, existem outras features no backlog para atenderem algumas demandas dos nossos clientes.
Nossos primeiros clientes são o No Limite e o Lata Velha do Caldeirão do Huck que já estão no ar há algumas semanas e mostrando que essa Plataforma de Participações tem se comportado muito bem nesse começo.
[Felipe Santiago] Criando um sitemap.xml em Rails
Monday, May 3rd, 2010Dica rápida para quem está precisando criar um arquivo sitemap.xml, aquele mesmo que auxilia os navegadores a indexar melhor as páginas de um site.
Levando em consideração, neste exemplo, que temos um root_controller.rb, criaremos um método sitemap nele.
def sitemap @urls = [ ["1.0", "http://www.domain.com/", "daily"], ["0.5", "http://www.domain.com/about", "monthly"], ["0.5", "http://www.domain.com/contact", "monthly"], ] @objects = Object.find( :all, :order => "updated_at DESC", :limit => 50000) response.headers['Content-Type'] = 'application/xml' render :action => 'sitemap', :layout => false end
Como podemos observar, foi criado um hash com as URLs que são estáticas (podem até ter conteúdo dinâmico, mas são URLs que nunca mudarão). Definimos no hash alguns parâmetros como a importância e a frequência que as páginas são atualizadas. Em seguida, recebemos de uma consulta ao banco, objetos que formarão as URLs dinâmicas do site. Definimos também que a resposta da requisição está no formato XML e que aquele determinado método não é renderizado pelo template padrão.
No arquivo de rotas (routes.rb), criaremos uma rota para o método sitemap. Veja abaixo:
map.sitemap "/sitemap.xml", :controller => "root", :action => "sitemap"
Agora precisamos criar o template do XML que vai renderizar os parâmetros do método:
xml.instruct! :xml xml.urlset "xmlns" => "http://www.sitemaps.org/schemas/sitemap/0.9" do @urls.each do |url| xml.tag! 'url' do xml.tag! 'loc', url[1] xml.tag! 'changefreq', url[2] xml.tag! 'priority', url[0] end end @objects.each do |o| xml.tag! 'url' do xml.tag! 'loc', object_url(o) xml.tag! 'changefreq', 'monthly' xml.tag! 'priority', '0.2' end end end
Este arquivo, sendo salvo como sitemap.rxml, será responsável por formatar o documento XML. Podemos observar que o primeiro bloco de código é responsável pelas urls estáticas, e a segunda parte faz um loop do objeto que recuperamos do banco de dados.
Agora você já tem um um sitemap.xml para utilizar nas ferramentas de webmasters dos mecanismos de busca.
[Felipe Santiago] Futebol e os novos tempos
Monday, May 3rd, 2010
Lendo a última entrevista do Eurico Miranda, ex-presidente-achando-que-era-dono do meu clube de coração Vasco da Gama, tive a inspiração para divagar um pouco sobre os negócios que o futebol pode gerar. E o ponto central de onde tirei esses minutos de inspiração foi quando ele mencionou que uma gestão amadora no futebol ainda é mais “produtiva” que a gestão profissional. Segundo ele, a gestão amadora garante a um clube de futebol a manutenção da sua tradição (ignorando os atores principais por manter a tradição de um clube: os torcedores). Ele afirma que só um presidente amador saberia tomar decisões sábias para o futuro do clube.
Para começar, essas afirmações são totalmente furadas: futebol virou negócio, e quem não pensar assim ficará para trás. Um dos exemplos nacionais mais dramáticos é o time do Santa Cruz, com milhares de torcedores no Nordeste, e mesmo assim foi parar na quarta divisão do futebol nacional. Em 2008 foi a vez do meu time, o Vasco da Gama descer a segunda divisão e disputar a competição no ano seguinte. E tantos outros exemplos, como o Corinthians, Fluminense, Bahia, Atlético Mineiro, Botafogo, Palmeiras, entre outros. Os inúmeros exemplos, não só nacionais quanto internacionais, só comprovam a tese que se clubes de futebol tiverem administrações ruins, mesmo sendo de grande porte (com grandes torcidas), não suportarão a forte competição dos concorrentes e não obterão sucesso.
Seguindo esse argumento, chegou a hora de pensar nos negócios que o futebol pode gerar. Até porque, também temos no mundo inúmeros clubes e times-empresa que conseguem gerar ‘N’ formas de receita. Renda dos jogos, produtos, TV e patrocínios não são as únicas fontes. Na verdade, todo trabalho de marketing é baseado no fortalecimento da marca e a aproximação dos torcedores. E os serviços básicos para aproximar seus torcedores são oferecidos e cumpridos a rigor. Um torcedor, que se associa a um clube, consegue comprar ingressos de forma antecipada para todas as partidas de seu clube. E pela internet, sem enfrentar filas!! Além disso, ele tem descontos nos produtos licenciados do clube e pode participar ativamente e consumir as instalações do clube. Não preciso nem comentar sobre as instalações dos clubes europeus, que botam no chão qualquer clube do Brasil.
Então como podemos mudar esse cenário ? No Brasil nós ainda precisamos do básico. Vender ingressos pela internet e garantir um lugar confortável ao torcedor que é associado é o começo. Precisamos melhorar nossos estádios e instalações também. Alguns clubes nacionais já criaram o seu “dia do torcedor”, onde ele paga um valor determinado e faz um passeio pelas instalações do clube, estreitando assim o relacionamento. Além de promoções pela internet (que geram incentivos), montar equipes fortes e promover uma administração transparente também são fatores importantes. E a lista não para por aqui. Poderia passar o dia inumerando ações no futebol, mas esse ainda não é o meu trabalho. Quem sabe, um dia.


