Archive

Archive for novembro \24\UTC 2011

Apresentando: HaavokIPC

Então você pega um projeto de sistema feito em PHP 4 (um dos ~7% de sites que ainda usam essa versão) e precisa usar algum componente que só funciona no PHP 5. Você pensou em um web service local em uma segunda instância do Apache rodando PHP 5, mas dadas as características do ambiente onde a aplicação roda e da dificuldade de fazer o deploy do segundo servidor, você foi proibido pelo chefe de fazer isso. Você pode também executar código entre diferentes versões de PHP ou mesmo na mesma versão, mantendo uma parte da sua aplicação em uma sandbox.

Para isso há várias soluções, dependendo dos requisitos. O HaavokIPC dá conta destes: chamadas síncronas a funções ou métodos de objetos/classes; uso dos dados retornados através de callbacks; uso em parte da aplicação que não exige alta performance. Ele não usa servidores ou conexões, ele executa o binário do PHP e se comunica com ele através de um arquivo serializado ou persistência. Os objetos responsáveis pela persistência e serialização são plugáveis e novos objetos podem ser desenvolvidos sem perda de tempo, apenas respeitando a interface. Por enquanto estão disponíveis os seguintes objetos de persistência, chamados de Drivers: File, Memcache e Shm, que usam, respectivamente, um arquivo, um servidor do memcache ou shared memory de ambientes *nix. Para a serialização, estão disponívels os Serializers Default, que usa as funções serialize e unserialize nativas do PHP e Msgpack, que usa a extensão msgpack.

Ele foi desenvolvido para ser compatível com boa parte das versões de PHP entre 4 e 5.

A documentação ainda não está madura e há muito a se fazer no código em termos de performance e arquitetura, como todo bom projeto experimental.

O código está disponível no GitHub -> HaavokIPC/PHP

Update 25/11/2011
Estou portando o HaavokIPC para Ruby e isso me obrigou a fazer mudanças na arquitetura, a fim de tornar a configuração e a conversa entre front end e back end mais fácil, seja de PHP para PHP, PHP para Ruby ou de Ruby para PHP. Criei um novo repositório para este port, disponível em HaavokIPC/Ruby. Mais pra frente espero portá-lo para outras linguagens.

Update 30/11/2011
O desenvolvimento do HaavokIPC em Ruby está congelado enquanto trabalho no refactoring da versão em PHP, com alterações mais profundas do que simplesmente tornar sua configuração mais flexível.

Provocações + Gabações

Vou parar de me gabar por ter um smartphone, um bom computador, um bom trabalho com um nobre título. Espero que todos que possuem um bom tênis, um bom carro, o melhor smartphone ou o melhor sonho material façam o mesmo. Vou começar a me gabar por ter um teto, água potável, esgoto encanado, comida na mesa e a oportunidade de sair de casa sem medo de levar um tiro de lugar nenhum. Porque, afinal, o sentido da “gabação” é se sentir superior ao indivíduo ao lado por ele não ter o que você não tem. Mas ora, vejo todos os dias pessoas no metrô com seus bons tênis e smartphones doentemente se comparando aos que já tem, sendo esse ato correspondido pelo indivíduo ao lado. Portanto, não há mais sentido em tal tipo de gabação. Todos já chegaram ao topo com seus bons computadores e bons trabalhos de nobre título. Agora chegou a hora de fazer a gabação valer a pena. Vamos nos gabar para os que vivem abaixo da linha da pobreza, para os que comem palma todos os dias e consideram um raro calango uma iguaria chique para seus padrões. Vamos nos gabar para quem tem que fazer suas necessidades fisiológicas em um buraco no meio da terra – junto a outras 100, 200 pessoas. Vamos nos gabar para aquele garoto obrigado pela mãe a pedir uns trocados no farol e pra sua irmãzinha que está se prostituindo a duas quadras.

Mais importa exibir nosso mundinho cada vez mais fechado em uma vitrine mentirosa.

Doentes.

Categorias:Divagações

Critério

Outro dia eu ouvi de um colega que eu deveria ter mais critério na hora de reparar em uma mulher.

O lucro de empresas que oferecem conteúdo de auto-ajuda do tipo “conquiste uma parceira” ou “envie seu nome e o nome da sua paixão via SMS para BLABLABLA está alto por causa disso: muitos limites, pouca verdade na hora de gostar de uma pessoa.

O cara encontra alguém dentro do critério que faz parte do “senso comum da sociedade”, digamos “alta, magra, loira, olhos azuis” e por medo de perdê-la, acaba colocando uma máscara e a partir daí, só se relaciona com ela usando essa máscara.

Eu sou muito mais viver com quem eu gosto, tendo a certeza que o máximo que me fez escolhê-la foram preferências (que não são opções, escolhas e muito menos obrigações) e não limitações. É isso que faz um relacionamento respirar e ser confortável enquanto durar.

É isso que me faz ser feliz pra caralho com uma morena gordinha de estatura média e olhos castanhos. Se eu não “tive critério” para ficar com ela, que dirá na hora de reparar em outras mulheres.

Critério reduzindo uma gama de possibilidades de ser feliz? Ah, vá.

Categorias:Divagações

Cada um merece o ópio que tem

Café, rotina, computadores, televisão, esmaltes, redes sociais, grifes, gadgets, futebol, big mac, piriguetes, música, dinheiro, conforto, chicotes, teatro, informação, fotografia, cigarro, amor, rock’n’roll, mainstream, underground, cerveja, espelhos, solidão, efusão, café da manhã na cama, tazos, anéis de latas de alumínio, memes, gatos, pornografia, rua augusta, igreja universal, micareta, festival, instant messenger, sms, 21 centavos fale-o-quanto-quiser, onanismo, sexo verbal, sexo a dois, sexo com mais de dois, trollar, kibar, repercutir, sorrir com 100 RTs, livros, bolachões, 2 marcas de refrigerante de cola, i-qualquer-coisa, sofativismo, croutons, encaminhar e-mails pedindo doações, apresentações de slides que atingem o âmago da alma, apresentações de slides que sequer tocam a superfície, esnobar, abraçar forte sem conhecer direito, deixar pra conhecer direito depois, mmorpg, vomitar sozinho, vomitar com os amigos, vomitar longe de quem acabou de conhecer, som alto, nem ligar, rir, registrar, criticar, opinar, reclamar, lembrar, regozijar, muitas calorias, deixa pra segunda, gozar uma, gozar duas, gozar onde não pode, gozar com quem não pode, errar, se arrepender, demonstrar, afeto, disposição, chocolate, bom dia, durma bem, adorar a sexta-feira, adorar a segunda-feira, por que não?, ídolos, anti-heróis, conspirações, métricas, prazos, deadlines, traço fino, traço forte, amém, vai se foder, vintage, politicagem, confusão, prazer, dor, manhãs, madrugadas, cinema em casa, zippos, graves, ruivas, bebês, lingeries, funk alto no ônibus, funk no fone de ouvido alheio e só, céu azul, céu cinza, céu rosa, apartamento grande, distância pequena, euforia, estados mentais alterados, metrô vazio, ceia cheia, nostalgia, imagens bizarras, imagens alegres, a mãe, o pai, os avós, os irmãos, os primos, o primeiro beijo da vizinha, o primeiro beijo da colega de escola na 2ª série, a primeira mão boba, o primeiro negativo de muitos resultados de exames de sangue, o primeiro negativo revelado, a última pedra e o primeiro perdão.

Cada um merece o ópio que tem, o vício que agradavelmente o consome, que o faz ser único e que dá o direito de ser distante de quaisquer tendências, inclusive as deste texto.

Eu acho que consegui juntar um pouco do que eu reparei que as pessoas que eu conheço gostam e de certa forma pode ser uma homenagem a quem está na minha vida, que já passou ou que um dia irá embora da minha vida. Um passo no leito do rio, certo ou errado, tropeço ou sorte, tem poder de mudar o curso dele para sempre.

Categorias:Divagações

Facebook Deorkutizator

Admito, pra mim, o Facebook da forma como está hoje é incômodo. Em tom de brincadeira, “Orkutizado” com tantas imagens compartilhadas que antes só apareciam no Orkut e em e-mails dos anos 90. Não que eu não goste, mas acho que lá não é o lugar pra isso. O pior é que o Facebook oferece um botão “bloquear” pra quase tudo nele, exceto as Pages. Quer dizer, se não quer ver o conteúdo de uma Page na sua timeline, ou bloqueia quem fica compartilhando ou oculta manualmente.

Pensando nisso, tive a idéia de criar um userscript – mais um userscript em uns 3 ou 4 anos brincando com JavaScript no Greasemonkey – que esconde as Pages que não me agradam da minha lista de atualizações do Facebook, sem ter que bloquear ninguém ou ficar ocultando uma por uma. O resultado é o Deorkutizador de Facebook e pode ser baixado do meu repositório através daqui:

https://github.com/MendelGusmao/Userscripts/blob/master/deorkutizador_de_faceboo/deorkutizador_de_faceboo.user.js

As instruções de instalação estão no arquivo. Já adianto que é necessário que a extensão Greasemonkey esteja instalada no Firefox. Também coloquei as instruções para a instalação no Chrome, mas ainda não testei nele.

Copiei o código Me baseei neste artigo chamado How to play nicely with jQuery and Greasemonkey que ensina a como usar o jQuery dentro do Greasemonkey. Considero essencial porque o modo como o jQuery faz para acessar os elementos em uma página tornou a tarefa de encontrar aqueles que contém as atualizações incômodas e removê-los muito fácil. O “Deorkutizador de Facebook” possui uma lista de páginas bloqueadas que é atualizada automaticamente conforme eu encontro as páginas. Essa lista está disponível na minha conta do Dropbox e é carregada sempre que o Facebook for aberto e o script estiver ativado.

http://dl.dropbox.com/s/pn104hbhmqs77fu/paginasBloqueadas.js?dl=1

Para garantir transparência, a mesma lista está sincronizada com o GitHub

https://github.com/MendelGusmao/Deorkutizador-de-Facebook/blob/master/paginasBloqueadas.js

Quem for usuário do GitHub poderá fazer pull requests na lista, sugerindo novas páginas a serem bloqueadas e também “forkar” o script e sugerir modificações.

Essa primeira versão só esconde os históricos, então toda vez que o Facebook for aberto, as publicações estarão lá e em instantes serão ocultas. Estou trabalhando em um jeito de fazer o script “clicar” no botão “Ocultar histórico” automaticamente, assim, na próxima vez o histórico incômodo não estará mais lá de verdade. Ainda há alguns bugs, em especial um que eu apelidei de “só pega no tranco”, porque ele carrega os scripts mas não executa a limpeza, então a página tem que ser recarregada para ele funcionar.

O script é seguro, não incomoda ninguém, não acessa seus dados (muito menos sua senha), não interfere com a sua timeline nem com a de seus amigos e também não faz propaganda no seu mural.

Tchau

%d blogueiros gostam disto: