Posts de ‘Rafael Biriba’

[Rafael Biriba] Não deixe de atualizar seu wordpress: versão 3.0.4 corrige falha de segurança

Thursday, December 30th, 2010

 

http://www.wordpress.org/

 

Dia 29 de dezembro a equipe do WordPress liberou a versão 3.0.4 com uma importante correção de segurança.

Um bug no core da biblioteca KSES foi corrigido. Essa biblioteca é usada em muitos lugares no wordpress, e parece que tem alguma ligaçao com a renderização dos htmls.

O wordpress.org não revela bem qual seria a vulnerabilidade, até para proteger os usuários que possuem as versões com a falha. Mas tudo indica um problema de XSS (Cross-site scripting), o que permitia até alteraçoes no blog, caso fosse bem explorada.

Pedido de atualização do wordpress para 3.0.4

Pedido de atualização do wordpress para 3.0.4

 

Infelizmente para que tem o blog em português, versão PT ou BR, ainda não tem essa atualização disponível. Resta sentar e esperar, ou então fazer a atualização na versão em inglês mesmo (US).

IMPORTANTE: Quem já possui o wordpress com a versão 3.*, esse update deve ser aplicado, pois foi considerado como (atualização crítica de segurança)!

Não se esqueça de fazer o backup antes de fazer qualquer atualização no seu blog…

Leia também: http://wordpress.org/news/2010/12/3-0-4-update/

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] Não deixe de atualizar seu wordpress: versão 3.0.4 corrige falha de segurança

Thursday, December 30th, 2010

 

http://www.wordpress.org/

 

Dia 29 de dezembro a equipe do WordPress liberou a versão 3.0.4 com uma importante correção de segurança.

Um bug no core da biblioteca KSES foi corrigido. Essa biblioteca é usada em muitos lugares no wordpress, e parece que tem alguma ligaçao com a renderização dos htmls.

O wordpress.org não revela bem qual seria a vulnerabilidade, até para proteger os usuários que possuem as versões com a falha. Mas tudo indica um problema de XSS (Cross-site scripting), o que permitia até alteraçoes no blog, caso fosse bem explorada.

Pedido de atualização do wordpress para 3.0.4

Pedido de atualização do wordpress para 3.0.4

 

Infelizmente para que tem o blog em português, versão PT ou BR, ainda não tem essa atualização disponível. Resta sentar e esperar, ou então fazer a atualização na versão em inglês mesmo (US).

IMPORTANTE: Quem já possui o wordpress com a versão 3.*, esse update deve ser aplicado, pois foi considerado como (atualização crítica de segurança)!

Não se esqueça de fazer o backup antes de fazer qualquer atualização no seu blog…

Leia também: http://wordpress.org/news/2010/12/3-0-4-update/

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] OI Velox invade a privacidade de seus usuários com campanha de seu navegador

Thursday, December 2nd, 2010

Desde o dia 30 de novembro, muitos usuários do OI Velox vem reclamando de terem recebido um spam com a campanha publicitária do novo navegador (Imagem abaixo)

http://navegador.oi.com.br/
http://navegador.oi.com.br/

Não há nada de errado com o navegador disponibilizado pela empresa, a não ser, pela forma inusitada de como foi divulgada.

Infelizmente passei pela experiência na madrugada do dia 02/dez/2010, onde eu estava navegando no site do submarino, e do nada, a minha requisição foi interceptada pela oi velox, e no lugar do produto que escolhi, apareceu a publicidade do navegador oi. (Tela abaixo)

Agora, eu fico me perguntando… E se eu estivesse efetuando uma compra no site ? Essa campanha publicitária poderia atrapalhar e muito no processo.

Ou melhor, uma prova online, daqueles tipos que tem uma mensagem “Verifique sua conexão de internet, para que não haja interrupção durante o teste”. Esses tipos de provas são aplicadas por empresas de RH por exemplo.

Continuei olhando a página do navegador, e fiquei surpreso quando li o conteúdo dessa página…

Para quem não consegue ler da imagem, vou transcrever abaixo:
O serviço NÃO ESTÁ ATIVO para esta conta de usuário neste computador. Se desejar desativar também para todas as contas de usuário e todos os computadores em sua CASA, clique no botão “Desativar para a sua CASA”.

Não satisfeitos em interceptar a conexão no meu computador, ele ainda me diz que vai fazer isso com todos os computadores da casa. Não teve jeito, corri no meu outro computador (um desktop velhinho), e comecei a navegar até que finalmente a mensagem apareceu, e como sempre, indevidamente.

Investigando o problema mais a fundo, descobri que o site da OI cria cookies locais para identificar os usuários que optaram ou não pelo uso do navegador. Sabe o que isso significa ? Que se você limpar seus cookies, logo a mensagem do navegador da oi aparecerá para você novamente !!!

Não acredita que ele faz essas verificações com cookies ? É tudo tão ridículo, que está escrito na política de privacidade, no item cookies (http://navegador.oi.com.br/status/politica_de_privacidade.html)

Tenho certeza que existem leis que proibem esse tipo de atitude. Quando eu assinei o Oi Velox, assinei um provedor de internet e não lembro de ter aceitado nada referente a campanhas publicitárias, principalmente as que invadem a sua tela, interrompendo a minha experiência de navegação…

Agora, o que esse tal navegador faz ? Monitora você… Todos os links que você clicar, todas as buscas que fizer, ele armazena tudo… Com simples propósta de armazenar para te sugerir links de acordo com o seu perfil.

Mas na verdade esse rastreamento é de interesse da OI e seus parceiros, que permite a segmentação do público por publicidade fornecida. Assim fica mais fácil de mostrar anúncios de esporte para que navega muito nas páginas de esporte…

O pior dessa história toda, é que esse rastreamento não é explicado com clareza para os usuários. Não sabemos ao certo, o que pode ser feito com todos esses dados coletados e muito menos a que nível de segurança eles estão guardados.

Isso para mim é uma trapaça, onde é fornecido um serviço( como uma máscara) que promete facilitar a navegação, mas em troca, todo o seus histórico de acesso e navegação ficam a disposição da Oi…

O Serviço é tão ruim, que eu habilitei só para testar e também para poder escrever essa matéria, e depois não consegui achar nenhum link para desativar, ou quepudesse me informar se o serviço estava ativo ou não.

Depois de tanto procurar, achei o link abaixo e parece que consegui desativar. Mas infelizmente, não há nenhum link que possa me garantir que esse serviço não está ativo.

Conclusão: Recomendo que NÃO habilitem esse serviço !! Visite o link: http://navegador.oi.com.br/status/desativado.html e escolha a opção: Desativar para sua a casa. Na dúvida, exclua os seus cookies de navegação para garantir que ainda está no sigilo de sua navegação.

Curiosidade para reforçar a matéria… Você usuário velox, experimente digitar algum link errado… Ao invés de receber a tradicional página não encontrada, aparece uma página da oi, com muitos banners publicitários relacionado ao link que você digitou errado ! Sensacional não ? Até na página de erro existe uma exploração comercial…


Deixo essa matéria em aberto para quem quiser compartilhar a sua opnião…

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] OI Velox invade a privacidade de seus usuários com campanha de seu navegador

Thursday, December 2nd, 2010

Desde o dia 30 de novembro, muitos usuários do OI Velox vem reclamando de terem recebido um spam com a campanha publicitária do novo navegador (Imagem abaixo)

http://navegador.oi.com.br/
http://navegador.oi.com.br/

Não há nada de errado com o navegador disponibilizado pela empresa, a não ser, pela forma inusitada de como foi divulgada.

Infelizmente passei pela experiência na madrugada do dia 02/dez/2010, onde eu estava navegando no site do submarino, e do nada, a minha requisição foi interceptada pela oi velox, e no lugar do produto que escolhi, apareceu a publicidade do navegador oi. (Tela abaixo)

Agora, eu fico me perguntando… E se eu estivesse efetuando uma compra no site ? Essa campanha publicitária poderia atrapalhar e muito no processo.

Ou melhor, uma prova online, daqueles tipos que tem uma mensagem “Verifique sua conexão de internet, para que não haja interrupção durante o teste”. Esses tipos de provas são aplicadas por empresas de RH por exemplo.

Continuei olhando a página do navegador, e fiquei surpreso quando li o conteúdo dessa página…

Para quem não consegue ler da imagem, vou transcrever abaixo:
O serviço NÃO ESTÁ ATIVO para esta conta de usuário neste computador. Se desejar desativar também para todas as contas de usuário e todos os computadores em sua CASA, clique no botão “Desativar para a sua CASA”.

Não satisfeitos em interceptar a conexão no meu computador, ele ainda me diz que vai fazer isso com todos os computadores da casa. Não teve jeito, corri no meu outro computador (um desktop velhinho), e comecei a navegar até que finalmente a mensagem apareceu, e como sempre, indevidamente.

Investigando o problema mais a fundo, descobri que o site da OI cria cookies locais para identificar os usuários que optaram ou não pelo uso do navegador. Sabe o que isso significa ? Que se você limpar seus cookies, logo a mensagem do navegador da oi aparecerá para você novamente !!!

Não acredita que ele faz essas verificações com cookies ? É tudo tão ridículo, que está escrito na política de privacidade, no item cookies (http://navegador.oi.com.br/status/politica_de_privacidade.html)

Tenho certeza que existem leis que proibem esse tipo de atitude. Quando eu assinei o Oi Velox, assinei um provedor de internet e não lembro de ter aceitado nada referente a campanhas publicitárias, principalmente as que invadem a sua tela, interrompendo a minha experiência de navegação…

Agora, o que esse tal navegador faz ? Monitora você… Todos os links que você clicar, todas as buscas que fizer, ele armazena tudo… Com simples propósta de armazenar para te sugerir links de acordo com o seu perfil.

Mas na verdade esse rastreamento é de interesse da OI e seus parceiros, que permite a segmentação do público por publicidade fornecida. Assim fica mais fácil de mostrar anúncios de esporte para que navega muito nas páginas de esporte…

O pior dessa história toda, é que esse rastreamento não é explicado com clareza para os usuários. Não sabemos ao certo, o que pode ser feito com todos esses dados coletados e muito menos a que nível de segurança eles estão guardados.

Isso para mim é uma trapaça, onde é fornecido um serviço( como uma máscara) que promete facilitar a navegação, mas em troca, todo o seus histórico de acesso e navegação ficam a disposição da Oi…

O Serviço é tão ruim, que eu habilitei só para testar e também para poder escrever essa matéria, e depois não consegui achar nenhum link para desativar, ou quepudesse me informar se o serviço estava ativo ou não.

Depois de tanto procurar, achei o link abaixo e parece que consegui desativar. Mas infelizmente, não há nenhum link que possa me garantir que esse serviço não está ativo.

Conclusão: Recomendo que NÃO habilitem esse serviço !! Visite o link: http://navegador.oi.com.br/status/desativado.html e escolha a opção: Desativar para sua a casa. Na dúvida, exclua os seus cookies de navegação para garantir que ainda está no sigilo de sua navegação.

Curiosidade para reforçar a matéria… Você usuário velox, experimente digitar algum link errado… Ao invés de receber a tradicional página não encontrada, aparece uma página da oi, com muitos banners publicitários relacionado ao link que você digitou errado ! Sensacional não ? Até na página de erro existe uma exploração comercial…


Deixo essa matéria em aberto para quem quiser compartilhar a sua opnião…

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] HTML5: Trocando mensagens entre a página e iframes

Saturday, November 27th, 2010

Por questões de segurança e privacidade, os navegadores impedem que haja comunicação entre os conteúdo de diferentes domínios. Ou seja, scripts em diferentes dominios (cross-domain) não podem se interagir.

Na prática seria assim… Já imaginou, se um simples anúncio do google adsense, pudesse controlar a página em que ele foi colocado ? Ele iria alterar o background, trocar titulos na página e bagunçar tudo.

Por isso essa é uma importante funcionalidade nos navegadores, pois evita com que páginas desconhecidas (em domínio diferente) de controlar a página atual em que está visitando.

Com o HTML5, podemos contornar esse problema facilmente. Utilizando o Cross-document messaging, podemos estabelecer comunicação entre páginas e documentos no html, sem se procupar com a origem do domínio. Foi desenvolvido justamente para permitir essa comunicação, sem colocar em risco a segurança da página. (cross-site scripting attacks).

Cross-site messaging funciona apenas no HTML5, e está disponível nas seguintes versões de navegadores:

  • Internet Explorer 8.0+
  • Firefox 3.0+
  • Safari 4.0+
  • Google Chrome 1.0+
  • Opera 9.5+

Vejamos então um exemplo prático:

Digamos que em sua página inicial, você tem o seguinte iframe.

1
<iframe id="exemplo-iframe" src="http://www.exemplo.com/teste.html"></iframe>

Se você quiser mandar o titulo do seu site para o iframe, você precisa usar o cross-document messaging pois ele está em um outro domínio. Veja abaixo como você faria para disparar essa mensagem:

1
2
3
4
<script language="javascript">
var iframe = document.getElementById("exemplo-iframe").contentWindow;
iframe.postMessage("Titulo do Site", "*");
</script>

Na linha 2 é onde obtemos o controle do iframe. Na linha 3 é onde disparamos a mensagem. Note que estamos passando um “*” como segundo argumento do postMessage, o que significa que a mensagem é enviada para todos os domínios. Poderiamos ser mais específicos e disparar apenas para o domínio do iframe (exemplo.com).

Agora, no lado do iframe, só falta receber essa mensagem. Veja abaixo o exemplo do código que o iframe deve carregar:

1
2
3
4
5
6
7
8
<script language="javascript">
function displayMessage(event) {
    var message = event.data;
    alert(message);
    event.source.postMessage("Recebido com sucesso!",  "*");
}
window.addEventListener("message", displayMessage, false);
</script>

Vou começar explicando pela linha 7,  onde é estabelecido o listener, que é responsável por “escutar” as mensagens recebidas e chamar a função displayMessage. Na linha 3, recebemos a mensagem numa variável. Na linha 4 exibimos ela no alert do javascript. Na linha 5, é disparado uma mensagem para o “remetente”, ou seja, podemos enviar uma mensagem para confirmar o recebimento por exemplo.

Lembrando que para que a mensagem enviada na linha 5 seja recebida corretamente pela sua página inicial, você tem que adicionar um listener, da mesma forma que foi feito no iframe. Fazendo assim, é possível fazer trocas de informações entre as páginas de diferentes domínios.

No exemplo acima, qualquer site estaria habilitado em trocar informações com aquela página do iframe (http://www.exemplo.com/teste.html) e dependendo do contexto e de como foi implementado, pode vir a ser uma falha de segurança, portanto, utilize com cuidado.

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] HTML5: Trocando mensagens entre a página e iframes

Saturday, November 27th, 2010

Por questões de segurança e privacidade, os navegadores impedem que haja comunicação entre os conteúdo de diferentes domínios. Ou seja, scripts em diferentes dominios (cross-domain) não podem se interagir.

Na prática seria assim… Já imaginou, se um simples anúncio do google adsense, pudesse controlar a página em que ele foi colocado ? Ele iria alterar o background, trocar titulos na página e bagunçar tudo.

Por isso essa é uma importante funcionalidade nos navegadores, pois evita com que páginas desconhecidas (em domínio diferente) de controlar a página atual em que está visitando.

Com o HTML5, podemos contornar esse problema facilmente. Utilizando o Cross-document messaging, podemos estabelecer comunicação entre páginas e documentos no html, sem se procupar com a origem do domínio. Foi desenvolvido justamente para permitir essa comunicação, sem colocar em risco a segurança da página. (cross-site scripting attacks).

Cross-site messaging funciona apenas no HTML5, e está disponível nas seguintes versões de navegadores:

  • Internet Explorer 8.0+
  • Firefox 3.0+
  • Safari 4.0+
  • Google Chrome 1.0+
  • Opera 9.5+

Vejamos então um exemplo prático:

Digamos que em sua página inicial, você tem o seguinte iframe.

1
<iframe id="exemplo-iframe" src="http://www.exemplo.com/teste.html"></iframe>

Se você quiser mandar o titulo do seu site para o iframe, você precisa usar o cross-document messaging pois ele está em um outro domínio. Veja abaixo como você faria para disparar essa mensagem:

1
2
3
4
<script language="javascript">
var iframe = document.getElementById("exemplo-iframe").contentWindow;
iframe.postMessage("Titulo do Site", "*");
</script>

Na linha 2 é onde obtemos o controle do iframe. Na linha 3 é onde disparamos a mensagem. Note que estamos passando um “*” como segundo argumento do postMessage, o que significa que a mensagem é enviada para todos os domínios. Poderiamos ser mais específicos e disparar apenas para o domínio do iframe (exemplo.com).

Agora, no lado do iframe, só falta receber essa mensagem. Veja abaixo o exemplo do código que o iframe deve carregar:

1
2
3
4
5
6
7
8
<script language="javascript">
function displayMessage(event) {
    var message = event.data;
    alert(message);
    event.source.postMessage("Recebido com sucesso!",  "*");
}
window.addEventListener("message", displayMessage, false);
</script>

Vou começar explicando pela linha 7,  onde é estabelecido o listener, que é responsável por “escutar” as mensagens recebidas e chamar a função displayMessage. Na linha 3, recebemos a mensagem numa variável. Na linha 4 exibimos ela no alert do javascript. Na linha 5, é disparado uma mensagem para o “remetente”, ou seja, podemos enviar uma mensagem para confirmar o recebimento por exemplo.

Lembrando que para que a mensagem enviada na linha 5 seja recebida corretamente pela sua página inicial, você tem que adicionar um listener, da mesma forma que foi feito no iframe. Fazendo assim, é possível fazer trocas de informações entre as páginas de diferentes domínios.

No exemplo acima, qualquer site estaria habilitado em trocar informações com aquela página do iframe (http://www.exemplo.com/teste.html) e dependendo do contexto e de como foi implementado, pode vir a ser uma falha de segurança, portanto, utilize com cuidado.

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] Net-SFTP: Calculando o progresso do upload

Thursday, November 18th, 2010

Estou escrevendo esse post, para complementar o post sobre o timeout do net-sftp, onde fiquei devendo essa a solução de calculo do progresso…

Para obter o progresso durante o upload, você precisa usar o callback do método upload! e jogar numa variável os valores do tamanho local e do tamanho do arquivo no destino.

Vejamos um pequeno exemplo, retirado da documentação:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
require 'rubygems'
require 'net/sftp'
Net::SFTP.start('192.168.0.2', 'rafaelbiriba', {:password => 'teste', :timeout => 3}) do |sftp|
  sftp.upload!("/Users/rafaelbiriba/Projects/temp/video-teste-sftp.mp4", "/home/rafaelbiriba/video-teste-sftp.mp4") do |event, uploader, *args|
    case event
    when :open then
      # args[0] : file metadata
      puts "starting upload: #{args[0].local} -> #{args[0].remote} (#{args[0].size} bytes}"
    when :put then
      # args[0] : file metadata
      # args[1] : byte offset in remote file
      # args[2] : data being written (as string)
      puts "writing #{args[2].length} bytes to #{args[0].remote} starting at #{args[1]}"
    when :finish then
      puts "all done!"
    end
  end
end

No exemplo acima podemos verificar:

  • Ao abrir a conexão (when open), podemos chamar args[0].size e obter o tamanho total do arquivo
  • Durante a transferência (when put), ao chamar args[1] podemos obter o tamanho do arquivo remoto

Com isso, quando o tamanho total do arquivo for igual ao tamanho do arquivo remoto, então o upload estará terminado (100%). Para obter as porcentagens, basta fazer o cálculo.

Confira no exemplo abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
require 'rubygems'
require 'net/sftp'
@total_size = 0
@remote_size = 0
@current_progress = 0
 
def update_sftp_progress
  progress = (@remote_size*100)/@total_size)
  if @current_progress < progress then
    @current_progress = progress
    puts "Uploading: #{@current_progress}%"
  end
end
 
Net::SFTP.start('192.168.0.2', 'rafaelbiriba', {:password => 'teste', :timeout => 3}) do |sftp|
 sftp.upload!("/Users/rafaelbiriba/Projects/temp/video-teste-sftp.mp4", "/home/rafaelbiriba/video-teste-sftp.mp4") do |event, uploader, *args|
   case event
     when :open then
       @total_size = args[0].size
       puts "Starting upload..."
     when :put then
       @remote_size = args[1]
       update_sftp_progress
     when :finish then
       puts "Finished!"
     end
   end
end

Toda vez que o arquivo no destino for incrementado, o evento (:put) será disparado, chamando o método update_sftp_progress.

Nesse método é feito o cálculo da porcentagem(ver no exemplo acima). Ao invés de imprimir a porcentagem(com puts), você também pode salvar no banco de dados, ou utilizar o valor para fazer uma barra de progresso.

Espero ter ajudado, ;)

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] Net-SFTP: Calculando o progresso do upload

Thursday, November 18th, 2010

Estou escrevendo esse post, para complementar o post sobre o timeout do net-sftp, onde fiquei devendo essa a solução de calculo do progresso…

Para obter o progresso durante o upload, você precisa usar o callback do método upload! e jogar numa variável os valores do tamanho local e do tamanho do arquivo no destino.

Vejamos um pequeno exemplo, retirado da documentação:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
require 'rubygems'
require 'net/sftp'
Net::SFTP.start('192.168.0.2', 'rafaelbiriba', {:password => 'teste', :timeout => 3}) do |sftp|
  sftp.upload!("/Users/rafaelbiriba/Projects/temp/video-teste-sftp.mp4", "/home/rafaelbiriba/video-teste-sftp.mp4") do |event, uploader, *args|
    case event
    when :open then
      # args[0] : file metadata
      puts "starting upload: #{args[0].local} -> #{args[0].remote} (#{args[0].size} bytes}"
    when :put then
      # args[0] : file metadata
      # args[1] : byte offset in remote file
      # args[2] : data being written (as string)
      puts "writing #{args[2].length} bytes to #{args[0].remote} starting at #{args[1]}"
    when :finish then
      puts "all done!"
    end
  end
end

No exemplo acima podemos verificar:

  • Ao abrir a conexão (when open), podemos chamar args[0].size e obter o tamanho total do arquivo
  • Durante a transferência (when put), ao chamar args[1] podemos obter o tamanho do arquivo remoto

Com isso, quando o tamanho total do arquivo for igual ao tamanho do arquivo remoto, então o upload estará terminado (100%). Para obter as porcentagens, basta fazer o cálculo.

Confira no exemplo abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
require 'rubygems'
require 'net/sftp'
@total_size = 0
@remote_size = 0
@current_progress = 0
 
def update_sftp_progress
  progress = (@remote_size*100)/@total_size)
  if @current_progress < progress then
    @current_progress = progress
    puts "Uploading: #{@current_progress}%"
  end
end
 
Net::SFTP.start('192.168.0.2', 'rafaelbiriba', {:password => 'teste', :timeout => 3}) do |sftp|
 sftp.upload!("/Users/rafaelbiriba/Projects/temp/video-teste-sftp.mp4", "/home/rafaelbiriba/video-teste-sftp.mp4") do |event, uploader, *args|
   case event
     when :open then
       @total_size = args[0].size
       puts "Starting upload..."
     when :put then
       @remote_size = args[1]
       update_sftp_progress
     when :finish then
       puts "Finished!"
     end
   end
end

Toda vez que o arquivo no destino for incrementado, o evento (:put) será disparado, chamando o método update_sftp_progress.

Nesse método é feito o cálculo da porcentagem(ver no exemplo acima). Ao invés de imprimir a porcentagem(com puts), você também pode salvar no banco de dados, ou utilizar o valor para fazer uma barra de progresso.

Espero ter ajudado, ;)

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] Realidade aumentada no submarino: experimente as obras de arte antes de comprar

Friday, October 29th, 2010

http://www.submarino.com.br/

Essa semana o submarino implementou um sistema com realidade aumentada, onde você pode experimentar uma obra de arte em sua parede, antes mesmo de comprar.
Confira você mesmo: http://www.submarino.com.br/portal/galeria_motor_ra

Para quem não sabe o que é isso, segue um pouco do conceito de Realidade Aumentada:

“Realidade Aumentada (RA) é uma linha de pesquisa dentro da ciência da computação que lida com integração do mundo real e elementos virtuais ou dados criados pelo computador (Retirado do wiki)”

Na prática, usamos a realidade aumentada da seguinte forma:
Um desenho é posicionado em algum lugar, de forma que essa figura seja a “única” no cenário. Então apontamos uma camera em direção ao desenho, e uma aplicação no computador transformará essa figura em algum elemento virtual.

Sendo assim, é possível fazer o que o submarino fez. Você imprime uma figura e cola na parede onde quer colocar a pintura. Depois disso, ele utiliza a sua webcam para capturar a imagem do ambiente e a aplicação troca a figura impressa por alguns quadros, e você pode ver virtualmente os quadros na sua parede, facilitando assim a escolha e a compra.

Hoje, a realidade aumentada já é utilizada em alguns lugares, como jogos e aplicativos comerciais.

No Big Brother Brasil (no inicio de 2010), a Globo.com usou também a realidade aumentada numa aplicação de interação virtual com os participantes.

Outro exemplo, são os aplicativos para iPhone, como o do Bradesco, que junto com a bússola, gps e a camera do aparelho, mostra a você onde tem um caixa mais próximo e a distância até ele.

Confesso que essa nova proposta do submarino foi bastante inovadora! Dá para aplicar o modelo com vários produtos… Já pensou poder ver qual tamanho de TV fica melhor na sua sala usando realidade aumentada ? Ou ver se o fogão branco combina mais com a sua cozinha do que um fogão preto ?

Embora já existam vários exemplos, acredito que seja uma tecnologia em crescimento e que ainda possui muitos pontos a serem explorados. Então, vamos esperar para ver as novidades… ;)

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também outros assuntos:


[Rafael Biriba] [off-topic] Blogueiros de todo o mundo à favor da “água para todos” (Blog Action Day)

Friday, October 15th, 2010
http://blogactionday.change.org/

http://blogactionday.change.org/

Blog Action Day é um evento anual que acontece todo dia 15 de outubro, onde blogueiros de todo o mundo se unem, publicando informações e levantando discussões sobre um importante problema global. Participei no ano passado  falando sobre as mudanças climáticas (ver post), esse ano será sobre a Água.

A campanha já conta com mais de 4950 blogs, 38 milhões de leitores e 137 países envolvidos (Dados obtidos em 15/10/2010 – http://blogactionday.change.org/)

Mas por que Água ?

Exatamente agora, bilhões de pessoas na terra não tem acesso a água limpa e segura para beber. O acesso a essa água não é só um direito humano, mas um problema ambiental. A água é um problema global e está afetando todos nós !

O que posso fazer para ajudar ?

O Blog Action Day 2010 está aí pra isso. Ajudar a divulgar o assunto para estimular as pessoas a economizar àgua e reconhecer que é um problema global. Blogueiros de mais de 125 países estarão escrevendo sobre isso nesse dia 15 de outubro.

Você também pode ajudar assinando a petição no final desse post!!!

Assuntos abordados pela campanha:

- O problema da escassez de água:

  • 40 bilhões de horas: Mulheres africanas caminham por mais de 40 bilhões de horas carregando mais de 18 kg de água impŕopria para beber. Ler mais >>>
  • 38.000 crianças por semana: Toda semana, morrem aproximadamente 38.000 crianças abaixo dos 5 anos por beber água em péssima condição. Ler mais >>>
  • Guerra pela água: A escassez de água será uma das causas dos conflitos na África. Ler mais >>>

- Países industrializados utilizando água em excesso:

  • Para produzir um hambuger são gastos 24 litros de água.Significa que são gastos 19.9 bilhões de litros de água para produzir apenas um hambuger para cada pessoa na Europa. Ler mais >>>
  • Para cada iPhone na sua bolsa são necessários meio litro de água para carregar. Não parece muito, mas são 80 milhões de iPhone ativos no mundo, o que significa que 40 milhões de litros de água são gastos. Ler mais >>>
  • Cada pessoa nos EUA compram uma média de 200 garrafas de água por ano. Aproximadamente 17 milhões de galões de óleo são usados para fazer as garrafas. Ler mais >>>

- Água e o ambiente:

  • Todo dia, 2 milhões de toneladas de lixo são jogados em fontes de água. Isso não só prejudica o ambiente, mas também ameaça as comunidades próximas. Ler mais >>>
  • Mortes e doenças causadas por poluição das águas costeiras custam mais de 12.8 bilhões de dolares para a econômia global. Ler mais >>>
  • Hoje, 40% dos rios e 46% dos lagos americanos estão tão poluidos que não se pode pescar nem nadar.  Ler mais >>>

- Videos da campanha: http://blogactionday.change.org/fundraise

Não fique de fora dessa luta !!! Ajude a campanha assinando a petição abaixo:

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também: