Archive for March, 2009

Pesquisa Popular com o Twitter

sherlock-holmes-dvd-3

O nosso tão amado github está fora do ar há algumas horas já. Após desconfiar de que o site pudesse estar fora do ar (e não era problema do meu proxy), resolvi dar uma olhada no twitter para ver se mais alguém estava chorando as mágoas por lá.


require 'twitter'
Twitter::Search.new("github").each{|t| puts "#{t.from_user}: {#{t.text}"}

E os resultados me tiraram qualquer dúvida que eu ainda pudesse ter:

———————————————————————–
juliogreff: github, agora você já pode voltar a funcionar. eu agradeço

zacharydanger: @github has been down all day. My githubris is fading. (j/k I know what the “D” in “DCVS” means)

nateabbott: It appears github is down. Tragic. I guess I’ll just go to the beach!
dougoftheabaci: Is anyone else having issue visiting the Github site?

mja: Dear internet, Stop complaining about http://github.com being down. It is D-I-S-T-R-I-B-U-T-E-D version control.

okiess: too bad that the “disaster guide” for github is also down ;) #git #github
nmeans: Having a ridiculously frustrating day between the GitHub outage and ajax-form-submission-inside-modal-box issues.

kogent: herakles outage highlights the need for distributing hosting across multiple datacenters/cloud providers #engineyard #github

cartab: Github still down :(

nikolay: GitHub is down, but thanks to Git, development does not completely stall like it would with Subversion or CVS.

notio: As I prepare to research signing up for github, the server is unavailable.

adam_elliot: Wow so Github is down, I just figured it was my internet connection…

cyberfox: It’s bad out there; network failure took out EngineYard’s W.Coast ISP, thus much of the Rails ecosystem: GitHub, Lighthouse, NewRelic, etc..

marcjeanson: proudly not effected by github being down

cwalcott: I hope that after today Github, Pivotal Tracker, Hoptoad et al will be changing hosting providers. This much downtime is unexceptable

—————————————————————-

É interessante como o Twitter se tornou uma ferramenta muito mais profunda do que parece. Coisas como esse tipo de pesquisa em tempo real se tornam muito úteis se conseguirmos explorar melhor os recursos disponíveis pela ferramenta.

Acessando o Orkut com Ruby e Scraping

Se você é brasileiro, provavelmente deve fazer parte do que foi chamado de “WTF Crazy Brazilian Invasion“, lá pelos idos de 2006/2007, ao site de relacionamentos Orkut. Quando assumimos a liderança no número de usuários do Orkut, logo um efeito colateral começou a se manifestar: o excesso de scams, spams e outras filhadaputices tão típicas de brasileiros e países do leste europeu.

Essa ploriferação do mal, fez com que o Google começasse a aprimorar a parte de segurança do site, tornando ele hoje um dos sub-sites do conglomerado mais difíceis de se acessar por vias “automatizadas”.

Mas que tipo de informação seria possível de obter do site?

Acessando o Orkut com Ruby

Uma das medidas adotadas pelo Google para evitar os bots que atazanavam a vida de todos, foi a adoção de chamadas via Ajax, muito mais difíceis de ser capturadas e entendidas. Passei um bom tempo tentando entender o fluxo de dados de login, através do firebug, mas sempre esbarrava em arquivos javascript como esse, obviamente ofuscados de propósito.

Antigamente, alguns já haviam conseguido quebrar o Orkut com Ruby e scraping, mas hoje os mesmos métodos não funcionam mais.

A solução encontrada para evitar as chamadas com Ajax foi acessar o “lado sem javascript” do site, no caso, a interface para dispositívos móveis do site.

Read more…

A Lógica Segundo Ruby

Preparando-me para o início do meu mestrado, me vi com uma vontade forte de rever meus materiais da faculdade. Logo veio a lembrança de como eu me divertia nas cadeiras de lógica. Pouca coisa eu ainda lembro de cabeça, e dessas, resolvi reproduzí-las à maneira Ruby:

Silogismo Aristotélico

O silogismo consiste no fato de duas premissas inferirem, através de um termo em comum, na conclusão de uma terceira premissa também verdadeira.

“Todos os humanos são mortais”
“Aristóteles é humano”
-
“Logo, Aristóteles é mortal”

#Todos os humanos são mortais
class Human
	self.module_eval do
  	define_method :mortal? do
    	true
	  end
 	end
end

#Aristóteles é humano
class Aristotle < Human
end

#logo...
a = Aristotle.new
a.mortal?     #=> true

Lógica Proposicional

Segundo o wikipedia:

Em lógica e matemática, uma lógica proposicional (ou cálculo sentencial) é um sistema formal no qual as fórmulas representam proposições que podem ser formadas pela combinação de proposições atômicas usando conectivos lógicos, e um sistema de regras de derivação que permite que certas fórmulas sejam estabelecidas como “teoremas” do sistema formal.

Dessa, os teoremas clássicos que me veem à cabeça são os seguintes:

Read more…

RS on Rails

logo

Ótima iniciativa da comunidade gaúcha, criada durante uma sessão de mirc.

Tentaremos organizar um grande evento e contaremos com a ajuda de todos dispostos a divulgar a causa.

Mais notícias em breve!

http://rsrails.com.br/