Legendas sem stress.
Uma coisa que sempre me irritou quando precisei baixar legendas era ter que ir até o site de legendas , buscar a legenda que eu preciso e baixar ela… nada mais chato que executar uma tarefa mecânica…
Para resolver isso a algum tempo atrás um amigo meu criou o ltv-script , achei uma ótima idéia e eu fiz uma adição a ele criando um script que me permite baixar uma legenda no estilo “estou com sorte” do google , recentemente precisei usar novamente meu script e a legenda retornada estava incorreta , então novamente fiz uma adição agora , ele me permite buscar e selecionar de uma lista a legenda a ser baixada.
Se você sabe rodar scripts em ruby e tem essa mesma necessidade , basta acessar o github da app: http://rdso.me/ltv
Para usar preencha os dados relativos a sua conta no arquivo ltv-account.cfg e depois rode o script ruby passando como parâmetro o que deseja: ruby legenda-downloader.rb Monty Python
Projeto SyFyHome - Update | Identificação facial concluída!
Esse post é uma continuação do post http://tocomsono.com.br/post/15855145668/projeto-syfyhome
Acabo de concluir o processo de identificação facial do projeto SyFyHome, foi mais fácil do que eu pensava mas primeiro vamos falar sobre as dificuldades:
Primeiro usei o OpenCV para capturar a imagem da webcam , a principio estava tentando utilizar a gem rb_webcam que utiliza FFI para se comunicar com a lib opencv , porem após algumas frustrações com ela e após descobrir que o formato que ela me entrega é incompatível com a outra gem que ia utilizar desisti dela. Porem ela me deu o insight que a outra gem que tambem lida com o opencv tambem deveria ser capaz de se comunicar com a webcam já que está é uma função da lib e não da gem.
Adicionei a gem ruby-opencv (https://github.com/ryanfb/ruby-opencv) no Gemfile e …. ela quebrou ao tentar compilar… por algum motivo que não perdi tempo tentando descobrir o que era, a gem só compilou corretamente fazendo o download pelo git e compilando com o make para depois rodar o comando rake install_gem, talvez seja algo relacionado ao bundler.
Por conta da falta de documentação tive que mergulhar no codigo c++ da gem, +- 1 hora depois consegui desvendar o funcionamento da gem e ficou bem mais tranquilo e o melhor agora eu podia utilizar a mesma gem para capturar a imagem e consultar se haviam faces presentes.
Depois de capturada e identificada a presença de faces, fiz o envio via rest para o faces.com , utilizei a gem face ( https://github.com/rociiu/face ) e a unica dificuldade que esbarrei nela foi que o criador da gem esqueceu de adicionar o campo “file” para a operação de face_recognize, adicionado ele problema resolvido.
Relatadas as dificuldades vejamos como ficou o funcionamento:
1 passo , Adquirir faces.
Após me cadastrar no face.com , para ter minha api e secret key, anoto tambem o meu namespace privado que é onde vou guardar as imagens dos meus usuarios.
Então fiz um script que captura 10 fotos do usuario com intervalo de 1 segundo entre cada uma , envia as 10 fotos (note que você pode enviar qualquer arquivo de imagem) para o servidor do face executando a operação de detecção de faces que me retorna um TID , que guardo numa array, pego todos esses TID’s e executo a operação “tags.save” onde registro no face que aqueles TID’s pertencem a um uid de usuário especifico do meu namespace privado (sim… eu sei… é confuso o nome da operação para esse fim…) e então após registrar os TID’s envio uma pedido pra operação “faces_train” passando o uid do usuário, para o faces rodar seus algoritmos.
2 passo, monitoramento.
Para fazer o monitoramento , fiz o seguinte, fico tirando fotos consecutivas com o opencv e verificando a presença de faces , quando faces são encontradas espero até que tenha 3 imagens seguidas com faces sejam encontradas (para reduzir a sensibilidade…) e então envio a ultima face para a operação “face recognize” do face que me retorna lindamente quantas faces foram encontradas e os ids de todos os usuarios presentes na foto com diversos dados extras.
ps.: para buscar no seu namespace privado inteiro basta passar o uid “all@nome_do_namespace”
3 Fun and profit.
Apartir dai é só adicionar as firulas que desejar , por exemplo vou fazer um registro de alguns amigos com suas musicas e artistas favoritos no mongodb , alem de sistema de envio de email com foto para o caso de alguém desconhecido entrando no ap.
O código dessa aplicação , juntamente com um video demonstrativo vou colocar depois de dar uma limpada no código , adicionar umas besteirinhas para tornar mais dinâmico e junto da pagina do projeto para o site ratosdelaboratorio.com.br :)
por hoje é só pessoal.
qualquer duvida tweet-me @regismesquita
PROJETO SyFyHome
Me mudei recentemente para são paulo, onde estou trabalhando para a Codeminer42, uma empresa nerd até no nome, vim a convite do meu amigo Stephano Zanzin , agora que estou estabilizado aqui com meu apartamento quase todo montado (faltam alguns moveis ainda…) decidi que está na hora de deixar essa residência mais nerd , a primeira atitude
tomada foi a compra de diversos posters e comics em papel especial do XKCD que serão emoldurados em breve, o segundo eu tive a idéia durante uma conversa com meu colega de trabalho e excelente dev, criador do infinity_test, Tomas Stefano, fazer reconhecimento facial no meu ap, idéia que se tornou parte do projeto SyFyHome.
O projeto SyFyHome tem como objetivo deixar a casa parecendo uma nave espacial de um seriado de ficção científica, com direito a robozinho falando e tudo mais. A primeira etapa do projeto que decidi fazer foi a parte de reconhecimento facial, o sistema irá ficar monitorando uma camera provavelmente utilizando o OpenCV e quando dectectar faces no video , irá tirar uma foto , selecionar os rostos e enviar para a API do face.com que então irá consultar num repositório pessoal de faces se aquelas pessoas estão cadastradas , se estiverem irá adicionar musicas presentes no last.fm da pessoa a playlist do iTunes e começará um slideshow com imagens de artistas(previamente cadastrados) que aquela pessoa gosta.
A aplicação responsável por isso irá tambem registrar a pessoa que entrou em um log e me enviar um sms / email contendo a foto da pessoa no momento que entrou e a identificação dela e porque não com o sintetizador de voz do mac dar as boas vindas ou acionar um spray de pimenta caso não seja cadastrada.
Graças a API Rest do faces.com boa parte desse sub-projeto será extremamente rápida , ainda falta alguma pesquisa sobre o funcionamento do OpenCV com o ruby (acho que tem um gem com bindings e afins pro ruby , vou checar isso melhor) mas acredito que estarei com tudo pronto amanhã a noite.
e vamos caminhando em direção ao home made HAL9000 (farei meu melhor para jamais mentir para ele.)
Qual onibus eu pego para ir pra lá?
Um rapaz chamado Thibault Durand , criou um sistema para localizar as rotas de onibus em fortaleza , considerando que o google não dá suporte para as rotas de onibus e que segundo o durand a base utilizada é atualizada pela própria ETUFOR (orgão responsavél pelos onibus em fortaleza) , achei esse projeto extremamente util e decidi colaborar , adicionei um botão que permite adicionar markers no mapa e que as rotas então são filtradas pela localização desse marker.
Apenas serão mostradas as rotas que passam ao menos em um raio de 1km do ponto marcado.
Quem quiser ver o projeto funcionando pode acessar http://regismesquita.github.com/mapafortaleza/ ou ver o codigo fonte no meu github http://rdso.me/github
Espero que seja util para vocês.
Quem me conhece melhor sabe que minhas musicas favoritas são pesadas mas sem gritarias como “You’re a better man than I” na versão do sham69 ou um bom ska , mas essa banda chamada The Weppies com uma melodia suave e ótimas letras me pegou legal, se você curte um som suave de vez em qunado #FikDik
Para ver o que mais eu escuto: Last.fm
Hacker Monthly e Ratos de Laboratório
Após um tempo parado “semi-forçado” (eu tinha pego um projeto difícil) que usei para fazer um “detox” de redes sociais e trabalhar volto das cinzas com novidades.
Hacker Monthly
a primeira é uma recomendação , nesse tempo afastado de blogging e redes sociais comecei a ler uma revista digital chamada Hacker Monthly que eu recomendo fortemente , conta com diversos artigos de excelente nível agregados confortavelmente numa edição mensal que possuí versão para kindle , te permitindo ler confortavelmente de onde estiver.
Um artigo sensacional que lí nela recentemente foi o “The Full stack” a parte 1 pode ser acessada em http://rdso.me/fullstack , nele o escritor comenta sobre a importância de conhecer o que você está trabalhando de ponta a ponta , se você da aulas ou ensina novos programadores no seu trabalho não encaminhar esse artigo para eles caracteriza um pecado mortal , punível com horas e horas de refactoring em um projeto com prazo já estourado.

não perca tempo e assine http://hackermonthly.com/ , garanto que não vai se arrepender.
(BTW esse clever code em JS ai é show :P)
Ratos de laboratório
Esse é o nome do novo projeto que estou iniciando com o meu amigo Renan Souza ( http://www.csrenan.com/ ) , nós sempre tivemos um grande interesse em comum , criar projetos que nós achamos interessantes ignorando detalhes como se esse proj. tem utilidade , recentemente ele fez um computador de bordo para o seu carro e eu o ajudei nesse projeto fazendo coisas como… ligar um leitor de Diagnóstico veicular no meu carro que eu tinha acabado de comprar arriscando tostar minha central eletrônica.

Enfim inspirados por esse tipo de aventuras e pelo nosso novo projeto , para encontrar pessoas semelhantes , ajudar quem tá com dificuldade em um projeto e divulgar esse espírito hacker DIY , estamos criando o blog ratos de laboratório onde vamos publicar:
- Podcast com notícias da área , dispositivos , softwares e história engraçadas sobre invenções.
- Tutoriais e mini-aulas escritas por nós , amigos e pessoas da net que nós acharmos que são úteis para novos projetos.
- Lista de projetos , lista contendo projetos nossos e de usuarios onde a pessoa pode divulgar seu projeto for fun , profit e para achar
lacaiosajudantes.
O Blog tá terminando de ser construído ( http://ratosdelaboratorio.com.br/ ) , devemos gravar o primeiro podcast até domingo e até sexta ter alguns textos publicados.
O Código do blog vai estar disponível no meu github: http://rdso.me/github
Enfim por enquanto é só ,vou dar uma trabalhadinha em uns side-projects e nos vemos em breve…
Realidades Alternativas
Matrix , 13 Andar , Neuromancer , Inception , Gamer, Todas essas obras de ficção estão centradas no mesmo tema , a expansão da realidade através do meio digital.
Esse tema esteve sempre presente em minha vida , e hoje após assistir 13 andar , cheguei a conclusão que é isso que eu quero melhorar no mundo , a primeira vez que utilizei algoritmos genéticos fiquei espantado pela possibilidade de se simular tão facilmente gerações e gerações de seres com o objetivo de se resolver determinados problemas , mais recentemente comentei com uns amigos a idéia de gerar “autômatos” não eletrônicos , que fossem capaz de resolver certos problemas através de métodos baseados nas leis do mundo real.
Hoje juntei os pensamentos e cheguei a conclusão do que eu realmente busco. Eu busco criar formas de resolver problemas reais através de realidades alternativas, no Guia dos mochileiros da galáxia ratos (que possuem um péssimo setor jurídico ao ponto de deixar uma auto-estrada destruir seu sistema mais importante) criam o planeta terra pra descobrir a pergunta para a resposta fundamental , no neuromancer pessoas de conhecimentos valiosos são para sempre armazenados em meio digital para solucionar problemas no futuro e por ai vai…
A utilização de realidades alternativas para resolução de problemas como ao simular um mundo semelhante ao nosso em sua totalidade mas que podemos acelerar ou desacelerar pode permitir descobrir mais rapidamente soluções para doenças , estudar as melhores formas de se responder a desastres , novos produtos para empresas e por ai vai , podemos mudar nessa realidade alternativa virtual variáveis que não podemos no mundo real , permitindo se criar novas coisas e ter novas visões sobre coisas ou problemas já existentes que surgiriam através da interação do mundo mundo simulado e que poderíamos extrair para o nosso mundo.
As possibilidades são incontáveis e o poder de melhorar (ou piorar) o mundo dessa tecnologia é inimaginável , sendo assim , diante de tão magica possibilidade resolvi que vou me dedicar fortemente a isso , a expandir e tornar mais próximo da realidade esse cenário que citei agora a pouco.
Vou começar a pesquisar mais sobre esse assunto , ler papers e afins , enfim correr em busca desse objetivo quem sabe em 40 anos não consigo algo próximo disso rs.
Que comecem os jogos.
One Point O

Fazia tempo que eu não via um filme que fosse tão bom como “One point O” a.k.a. “Paranoia 1.0”.
A ultima vez que vi algo tão foda foi “Serial Experiments Lain” outra série que DEVE ser assistida.
O Filme conta a história de um programador que recebe um pacote marrom vazio , diversos acontecimentos em seu prédio o deixam confuso e ele não consegue trabalhar porque aparentemente seu computador foi infectado.
E infelizmente isso é tudo que é possivel dizer sem informar nenhum spoiler é o tipo de filme que não deve ser assistido se você não estiver afim de botar seu cerebro para trabalhar , esse filme vai te angustiar , vai te sufocar e vai te fazer pensar em N coisas ao mesmo tempo.
É o tipo de filme que te levará a um nivel de confusão extremo e quando você achar que entendeu , assistirá novamente e verá mais N detalhes que mudarão boa parte do que você achou ter entendido.
Um ótimo filme , com um ótimo final e que irá te transportar para o mundo dele , onde o que valem são as regras deles.
Excelente Filme.
Dica: Dividir um diretorio em vários sub-diretorios
Estava prescisando dividir uma pasta com milhares de arquivos em varias subpastas para tal você pode usar o comando abaixo que divide em varias subpastas de 0 a 100. [comando só para linux]
ls | awk 'BEGIN { x=0;while( x<101){ print "mkdir "x; x=x+1 } } {x=x+1; print "mv \""$0 "\" \"" x%100"/"$0"\""}' |sh
