Twitter Phishing Attack e “Mais Followers”

2/2/2010 | Tags:, , , | Escrito por: Dirceu Pauka Jr.

Ultimamente tenho observado uma infestação de serviços que prometem uma grande quantidade de seguidores no Twitter.

O esquema é parecido com técnicas malignas de SEO como Google Train e como não chega a atrapalhar diretamente o Twitter não é combatido pela empresa.

Alguns desses serviços utilizam oAuth como promessa de proteção. Mas, por mais que a autorização por oAuth possa ser negada depois, a aceitação inicial permite acesso e alteração dos dados do usuário.

As contas dos participantes desses esquemas estão comprometidas

Para mim está claro que os criadores desses esquemas possuem objetivos nada sinceros. Roubar senhas e acessar timelines de forma a direcionar trafego para urls maliciosas.

Assim os participantes e amigos de participantes desses esquemas estão sim com suas contas comprometidas.

Os amigos também?

Existem vários motivos para usar o perfil no modo “protegido”. O mais comum é reservar a privacidade do cidadão.
Se alguém com perfil protegido autorizar um amigo a ver seus updates e esse amigo usar um “Mais Followers” os updates do usuário são expostos para no mínimo os sujeitos que criaram esse serviço.

O Twitter está sofrendo um ataque de phishing. Isso pode ser evitado?

Creio que sim. É difícil enxergar legitimidade em serviços como esses. O Google classifica serviços maliciosos e publica listas com esses dados na web. Se o Twitter verificar URLs nessa lista e não permitir o envio das mesmas para a timeline, pode começar a evitar que essa praga se espalhe.

Enquanto isso?

Não digite sua senha em nenhum lugar. Evite serviços que não possuem autentificação por oAuth e mesmo nos que possuirem, só autorize se confiar.



Google Phone

6/1/2010 | Tags:, , , , , , , , , , , , , , , , | Escrito por: Dirceu Pauka Jr.

A URL http://google.com/phone é legal. Não só isso é legal no celular do Google.

Finalmente o Android ficou pronto a ponto do Google anunciar publicamente sua marca junto a HTC, fabricante dos aparelhos. Alguns destaques do NexusOne:

Search do Google por voz (GPS + voz, na verdade, o que possibilita você falar “pizza” para o telefone e ele te mostrar no Google Maps o caminho às pizzarias próximas).

Hardware e resolução de tela (800×480) para rodar jogos muito melhor que qualquer PSP e o marketplace para baixar legalmente jogos muito melhores até que jogos de PS2. Tudo pelo 3G.

Marketplace dos modelos anteriores da HTC que rodam Android, com mais de 20 mil apps prontas para rodar no telefone do Google (Android 2.1).

Google Phones

Aparelho fino (1,19cm).

E o mais importante para os devs: SDK simples e publica.

Veja também sobre o Zeebo, um video game da brasileira TecToy que tem um Android dentro e os jogos são baixados pelo 3G.



abbr-log 2009

22/12/2009 | Tags:, | Escrito por: Dirceu Pauka Jr.

Seguindo a tradição vou publicar meu log de abreviações:

2009 no BuzzVolume e na Doin Apps

html, css, javascript, svn, git, twitter api, ruby, memcached, tokyo cabinet, nginx, sinatra, thin, web crawler, solr, mysql, chrome extensions, c, cocoa, obj-c, webos mojo js framework

Veja o do ano passado



Melhor Preço: Extensão para Chrome

18/12/2009 | Tags:, , , , , , | Escrito por: Dirceu Pauka Jr.

Eu e o @mauricio desenvolvemos uma extensão para o Google Chrome que encontra os melhores preços enquanto o usuário navega em sites de comércio eletrônico.

Após instalar a extensão “Melhor Preço“, um botão no navegador alerta o usuário para a possibilidade de encontrar preços menores do produto que está pesquisando. Ao clicar no botão são apresentadas as ofertas disponíveis em diversos sites de comércio eletrônico brasileiro.

A ferramenta que deve ajudar o internauta brasileiro a economizar nas compras deste Natal, pode ser instalada a partir da galeria oficial de extensões do Google: https://chrome.google.com/extensions.

Lançadas em fase beta no último dia 8, as extensões para o Google Chrome permitem que desenvolvedores aumentem as funcionalidades do navegador do Google.

3001



mobile application software – doin apps

3/12/2009 | Tags:, , , , , , | Escrito por: Dirceu Pauka Jr.

doin

O celular nunca mudou tanto desde sua invenção quanto mudou com a chegada da banda larga. Com sua história recente mais relacionada com Internet as coisas acontecem mais ou menos da mesma maneira: o custo de desenvolvimento, promoção e distribuição fica cada vez mais barato, permitindo a criação de aplicativos por mais pessoas.

Como vemos atualmente, 3 novas “grandes” plataformas estão sendo construídas: iPhone OS, Android, webOS. Todas são plataformas já consideradas sucedidas e apesar de dizerem que já fechou a conta e o futuro é iPhone, Android e WebOS eu acho que em breve outras também adotarão uma interface boa o suficiente combinada com o WebKit (touch é o grande trunfo do iPhone, Androids e webOS).

Então o mercado está aquecido. Isso é verdade?

As empresas que se arriscaram a construir essas plataformas conseguiram uma base instalada absurda em pouco tempo.

Em novos mercados a concorrência é baixa e a audiência de cada “player” é alta. Por isso muitos estão ganhando com publicidade em apps com baixa qualidade no iPhone. Também por isso outros estão ganhando com apps de boa qualidade em plataformas mais novas…

No último ano coloquei aplicações na iTunes Store e na Palm Pre Store e venho tentando tanto o modelo de publicidade quanto apps pagas.

Eu não ganho muito. Principalmente devido ao fato do AdMob ser um sistema quebrado. Mas pretendo ganhar um pouco e por isso acho interessante tornar a brincadeira um pouco mais seria: criei a página da doin apps. Não é nada muito serio (por enquanto fazemos somente nossas apps), mas também sem deixar o profissionalismo de lado.

Logo mais o Mikael faz uma logo ;) E a gente coloca um site no ar…

card

Valeu :D



Opções de CDN no Brasil

13/10/2009 | Tags:, , | Escrito por: Dirceu Pauka Jr.

Antes de mais nada queria reforçar que o último post não foi meu e sim do Stéfano. Quem está mudando de vida é ele. Eu continuo na minha de pesquisar siglas desconhecidas:

CDN é sigla de Content Delivery Network que em português significa rede de distribuição de conteúdo.

Uma CDN é formada por vários computadores distribuídos geograficamente. Esses computadores mantém copias dos mesmos arquivos de forma que quando um usuário tenta acessar um arquivo – um vídeo do YouTube por exemplo – o arquivo possa ser baixado do lugar mais próximo.

Esse tipo de serviço é usado para melhorar a experiência do cliente diminuindo o tempo de resposta e aumentando a velocidade.
Além disso, o uso de uma CDN permite a redução dos gastos com banda e facilita a distribuição de carga entre os servidores de aplicação.

Recentemente tive “problemas” com banda em um site. Esse site usa muitas fotos e tem muitos pageviews…
O “box” que configurei aguenta as requisições porém o consumo de banda excede o limite mensal do VPS em uma semana.

Isso me levou a procurar um serviço de CDN e apesar de não ter escolhido nenhuma brasileira, acho interessante colocar aqui as opções que encontrei. As seguintes empresas possuem servidores no Brasil e oferecem o serviço de CDN:

Distribui: Me pareceu interessante uma vez que o foco deles é justamente CDN no Brasil.
Exceda: Akamai no Brasil. Muito bom e caro.
Global Crossing: Essa empresa é provedora de banda para as ISPs brasileiras. Possui quilômetros de fibra no território brasileiro.
Samba Tech: O R7 da Record fica lá.
Admotion: Interessante porém somente 2 pontos de acesso por aqui (São Paulo e Buenos Aires).

Infelizmente não tenho mais informações sobre cada um dos serviços. Seria interessante saber quantos pontos de distribuição cada um oferece (e a localização deles). Mas mesmo assim espero já ter ajudado.

Se alguém souber de outra ou de mais informações, ajuda ai ;)



Módulos do Nginx

30/9/2009 | Tags:, , , , | Escrito por: Dirceu Pauka Jr.
nginx-logo

Nginx é um web server e proxy de alta performance capaz de servir milhares de requisições simultâneas.

Tendo usado desde a época da boo-box, recentemente em dois sites que hospedo e também no BuzzVolume, eu posso dizer algo sobre o famoso “nginx bem configurado”: funciona e me faz dormir tranquilo.

O nginx é um web server. Responde as requisições na porta configurada, faz redirecionamentos, retorna arquivos estáticos e aceita módulos:

A comunidade está contribuindo bastante e é sobre alguns módulos “3th party” que vou falar.

Obs: Por “backend” entenda que é a aplicação Ruby, PHP, Python, “escolha sua linguagem”, que estiver rodando.

NginxHttpUpstreamFairModule

O upstream_fair faz com que as requisições batam no backend que estiver com menos carga. Sem esse módulo as requisições são distribuídas para qualquer backend, mesmo que esse estiver ocupado.

NginxHttpEmptyGifModule

O ngx_http_empty_gif_module mantém na memória um GIF de 1×1 pixels e o entrega diretamente, sem buscar no disco.
Eu considero esse o módulo mais curioso. Ele mostra a preocupação com performance e a facilidade de fazer algo assim com o nginx.
Esse gif de 1×1 pode servir como favicon.ico em sites que não usam icone, evitando que o arquivo (que não existe) seja procurado e retorne um erro. Também pode ser usado como “beacon” para rastreamento de impressões de ads.

NginxHttpLimitReqModule

Construindo o próximo Twitter? Mais um encurtador de URL? O módulo NginxHttpLimitReqModule permite impor limite de requisições por cliente nas suas páginas. Acabe com os engraçadinhos que abusam da API no seu URL-Short.

nginx-ey-balancer

Com o nginx-ey-balancer é possivel limitar o número de requisições simultâneas passadas ao backend. Ao invés de todas requisições cairem na aplicação elas ficam em fila no nginx aguardando um processo disponível. Segurar a requisição na aplicação precisa de mais memória e faz a performance da aplicação cair consideravelmente. Ótima solução desenvolvida pela EngineYard.

NginxHttpMemcachedModule

Memcached é um software desenvolvido para diminuir a carga da base de dados. Ele faz cache de objetos na memória e permite acesso pela interface rede. O NginxHttpMemcachedModule dá ao nginx o poder de procurar por um objeto no memcached e caso encontrar retorna o seu conteúdo para o navegador.

NginxHttpImageFilterModule

NginxHttpImageFilterModule é outro software interessante. Esse desenvolvido pelo criador do nginx, muda o tamanho da imagem na hora de entregar para o cliente evitando armazenar vários “thumbnails” do mesmo arquivo.

Estão surgindo cada vez mais módulos para o nginx. Confira outros “oficiais” e “3th party“.



O desenvolvimento do AlarmGame – Um jogo despertador

2/9/2009 | Tags:, , , , , , , | Escrito por: Dirceu Pauka Jr.

Um dia o Mafra mandou um e-mail interessante. O plano era ficar milionário com um aplicativo de iPhone. Eu não tinha o aparelho e também não fazia parte do Apple Developer Program.
Aplicativo iPhone AlarmGame
No Simulador comecei a fazer algumas brincadeiras com PhoneGap que poderiam um dia se tornar o aplicativo pronto. Não me preocupei com o problema que o PhoneGap enfrentou na App Store e continuei implementando o que precisava em JavaScript.

Quando implementei em JS uma copia do componente de DatePicker da SDK do iPhone ficou claro que eu teria que deixar o PhoneGap de lado e me apoiar em algo mais robusto.

O Cocoa tem suas peculiaridades mas depois que se aprende a ler e brincar com o Objective-C nos exemplos da Apple, tudo fica mais fácil.

Minha App se tornou um frankenstein. Em partes roda no WebKit (HTML/CSS/JS) e onde algo se move rápido na tela usa as animações da SDK.

Mas não é só na velocidade que o desenvolvimento com PhoneGap pode limitar o que o aplicativo pode fazer. Fazer requisições HTTP é complicado com as restrições impostas no navegador com o sentido de evitar cross-domain HTTP.

Código Objective-C pode ser usado para permitir chamadas em funções da SDK via JavaScript. Na verdade para mim é isso que resume o PhoneGap.

AlarmGame

O aplicativo tinha poucas funções programadas e não tinha nome definido ainda quando o @laka começou a desenhar e a criar o visual para ele. Foi nesse dia que fiz a inscrição para o concurso ARENA INFO. Concorreríamos na categoria iPhone. O premio: R$1000 para os primeiros de cada categoria e uma viagem a NY + U$2000 para o primeiro geral.

Em vez de tentar vender um aplicativo que não funciona*, tentei ir para NY na faixa.
Não deu certo. O aplicativo não foi classificado para a última fase de concurso.

Não vou ficar milionário nem ir para NY, mas fico feliz se você baixar o aplicativo.

Available on the App Store

Na próxima versão vou apostar no Admob.

*A SDK do iPhone não tem uma API de Alarm como o Palm Pre tem, fazendo com que para usar o despertador o aplicativo não possa ser fechado.



SVN #fail com muitos arquivos

26/8/2009 | Tags:, , , , | Escrito por: Dirceu Pauka Jr.

Durante a semana precisei trabalhar em um projeto que tem muitas imagens geradas por script. Decidi fazer cache dessas imagens deixando em disco/memcached.

O problema: SVN lento para fazer operações com muitos arquivos (no meu caso nem são muitos: 10000).

A solução: tar -zcvf buttons.tar.gz buttons/

E no deploy: tar -zxvf buttons.tar.gz

Comprimi todos arquivos em um só e depois de colocar em produção descomprimi. Assim o SVN não dá azia e não preciso me preocupar com RMagick no server ;)



YQL + Y! Geocoding API + Google Maps

14/7/2009 | Tags:, , , , , | Escrito por: Dirceu Pauka Jr.

Sábado eu comecei a procurar uma casa para morar. Eu preciso de uma casa grande e sem vizinhos, assim posso fazer umas festinhas e vender minha cervejinha artesanal. A casa também precisa ficar próxima ao “busão da UEL“.

O problema: nenhum site de imobiliária presta, quanto mais em Londrina.

Poucos sites de imobiliárias mostram as opções em um mapa e nenhuma das páginas que “unem os imóveis de várias imobiliárias” funcionam.

A solução: escrever código.

Com Yahoo Query Language (YQL) eu busquei as “casas para alugar” de 7 imobiliárias.
De fato essa é a parte mais complicada e demorada uma vez que cada imobiliária usa um “padrão” diferente para apresentar as informações e o trabalho aumenta ainda mais por causa da má construção de certas páginas.

Das 7 imobiliárias foi possivel extrair cerca de 100 casas para locação.

Para inserir as informações no mapa foi preciso de uma API de Geocoding. Esse tipo de serviço transforma um endereço (rua e número) em coordenadas geográficas (latitude, longitude).
Minha primeira tentativa foi usar a API de Geocoding do Google porém a Geocoding API do Yahoo! se saiu melhor quando o endereço tem “sujeira” (erros de digitação e/ou encoding zuado).

O resultado:

Picture-6

Muito mais fácil agora.

Tech stuff

O código que une os resultados das imobiliárias foi escrito em Ruby.
A gem typhoeus faz as requisições HTTP.
YQL foi usado para filtrar o conteúdo das páginas.
A gem geokit permite fazer Geocoding em apenas uma função: YahooGeocoder.geocode(”rua”).
Memcache faz cache dos resultados (muitas requisições HTTP machucam).
Sinatra para que o código Ruby vire uma aplicação web.
Google Maps API para inserir os resultados no mapa.

Códigos:
nerd_searching_house.rb
/ index.erb

Exemplo

Veja o resultado da brincadeira.

Colocar em produção e manter esse “toy project” não está nos meus planos. O exemplo ficará desatualizado em breve e se você precisar de algo atualizado fique a vontade para fazer o código funcionar ;)