SOPA: Diga não!

17 janeiro 2012

No dia 28 de janeiro de 2012 será votado pelo congresso americano o SOPA (Stop Online Piracy Act – Ato para parar a pirataria online), projeto que se for aprovado, irá dar poderes ao governo americano de censurar ao seu bel prazer qualquer site que tenha conteúdo considerado hostil por eles.

Não precisa dizer que esse é o maior golpe contra a liberdade de expressão já visto na história atual, e logo de quem, do país que se diz defensor da liberdade.

A indignação foi geral no mundo inteiro, e pesquisas mostram que a maioria dos americanos é contra o projeto, tudo mostra que esse projeto serve mais como um instrumento de ataque dos lobistas da industria de música e filmes.

Para protestar, amanhã (dia 18/01) vários grandes sites da internet irão fechar suas portas e dizer NÃO ao SOPA. Grandes sites como Wikipedia, Reddit, Mozilla e WordPress já confirmaram suas participações. E essa tem tudo para ser a maior manifestação online já vista na história.

Se você quer saber mais sobre o SOPA, clique aqui. E se quiser aderir ao protesto, aqui.


Isso não sai na Globo

31 outubro 2011

 Esses dias eu vi essas fotos que foram tiradas em Porto, Portugal. Elas foram tiradas no dia 15 de Outubro, dia que foi marcado por protestos em todo o mundo contra a política econômica adotada na maioria dos países do mundo.

Esses protestos, começaram a ganhar força com a ocupação de Wall Street, e confesso que seu significado na nossa história atual e o impacto que terá no nosso futuro próximo são temas que ainda me deixam bastante pensativo. Quem sabe num outro post eu desenvolva mais esses pensamentos.

Isso não sai na globo. É o que sempre penso quando vejo certas notícias que tem bastante repercussão na internet e nas conversas entre amigos, mas que são meio que deixadas de lado pela TV. Ok, a Globo até noticiou isso, porém de forma totalmente superficial. Para quem não está acompanhando o tema, foi só mais um protesto num sei aonde reivindicando num sei o que. O que me chamou mais atenção em meio a quantidade de cartazes, foram aqueles que diziam “deslique a TV, ligue o cérebro”.

Já faz alguns anos que não assisto mais TV, no máximo sento no sofá pra compartilhar um momento com meus familiares, mas o conteúdo da TV já não me agrada há tempos. Vendo minha mudança de hábito e agora vendo que várias pessoas estão pensando o mesmo e tomando a mesma postura, vejo o destino fracasssado que será o da mídia televisiva, pelo menos no formato atual que se encontra.

É, não somos mais macacos adestrados vendo o que os gigantes da mídia nos mandam assistir, e o descaso com o qual eles mostram a respeito da voz povo nesses protestos mostra que eles já sabem disso.


Simples loading com Jquery

24 agosto 2011

Esse post requer um básico conhecimento de Ajax, HTML e Javascript

Uma das principais funcionalidades do Jquery é o método load do Ajax…

$("#meudiv").load("core.php", { 'action': 'atualizar' } );

Ele chama um script (core.php) e passa parâmetros por POST (action=’atualizar’), o script processa e retorna um resultado que é automagicamente inserido no meu div (meudiv).

Por debaixo dos panos, ele abre uma conexão via JavaScript, chama a seguinte URL http://meusite.com/core.php?action=atualizar, o resultado dessa url (algum texto qualquer, um registro de banco de dados, etc) retorna e o Jquery usando DOM substitui o conteúdo do div especificado pelo conteúdo do retorno do meu script, maravilha hein?

Uma chateação disso é quando o script demora um pouco pra processar, sua aplicação web fica lá paradona e isso pode dar a sensação pro usuário que nada está acontecendo.

Eis que surge a solução, vamos por um gif de loading, como esse: Daí quando eu chamar a função ele vai aparecer e o usuário vai saber que o script está trabalhando em segundo plano.

Eu resolvi esse impasse com um truque bem simples, digamos que seu gif está no subdiretório img (img/loading.gif), pois você é uma pessoa organizada e não mistura os tipos de arquivo da sua aplicação.

Então vamos lá, simplesmente adicione a seguinte linha antes do método load:

$("#meudiv").html("<img src='img/loading.gif'>");

$("#meudiv").load("core.php", { 'action': 'atualizar' } );

O método .html do Jquery vai inserir o código da imagem dentro do conteúdo do seu div, e ela ficará lá até o .load terminar, ou seja, quando seu script concluir o processamento.

É uma dica simples, mas que já vi muita gente complicando pra ter o mesmo resultado.


Swftools em deb 32 e 64bit

29 julho 2011

Eu estou usando há um tempo o Swftools, uma ferramenta de conversão de vários formatos (gif, pdf, png, etc) para swf (formato Flash).

Exatamente por estar trabalhando com essa tecnologia que eu escrevi o post anterior criticando o famigerado flash. Bom, mas como nem tudo são flores, o flash ainda é um mal necessário.

O Swftools não está disponível nos repositórios debian e ubuntu, portanto você pode baixar o fonte no site do projeto ou baixar os dois pacotes que eu gerei da versão 0.9.1 em 32 e 64bit, testados no debian 5 e no ubuntu 11.

O Swftools usa a licença GPL.

Swftools 0.9.1 32 bit
Swftools 0.9.1 64 bit


Flash e o Linux

11 julho 2011

Como usar Webcam, criar jogos ou rodar vídeos na Web? Até pouco tempo a grande maioria das pessoas te diria: Flash. Hoje o plugin da Adobe é o mais usado pra fazer essas duas tarefas, fazendo com que quase todo navegador tenha a obrigação de vir com o flash instalado por padrão. A hegemonia do flash nessas áreas fez com que hoje tenhamos vários frameworks, add-ons, plugins de CMS, etc, e jogar um player de vídeo no seu site é uma tarefa muito simples. Todo esse ecossistema faz com que o flash tenha o monopólio nessas áreas da web, em algumas mais do que outras.

E o que o Linux tem a ver com isso?
Bem, eu vejo por aí muita gente reclamando do Linux ou do Firefox nos fóruns da vida, e quando vamos ver o problema muitas vezes é o danado do flash. O que a maioria das pessoas não entende é que o flash que elas instalam no Windows não é o mesmo flash do Linux, o fato de termos o mesmo número na versão de ambos dá essa impressão que é o mesmo, passando então o problema para o andar de cima, o navegador, e em seguida o sistema operacional.

Mesmo sendo a mesma versão, os dois são plugins diferentes, sua construção é diferente, basta lembrar que em muito tempos o usuário linux sempre usava uma versão anterior do flash.

Portanto, o plugin é diferente, não é tão maduro quanto a versão Windows, tem muitos bugs por natureza, mas sinto que na versão linux tem mais ainda, e o porque dessa quantidade de bugs eu não vou abordar aqui.

O fato do flash ser proprietário também ajuda a manter a má qualidade do produto, já que ninguém pode colaborar com seu desenvolvimento e adaptação ao Linux.

E o que fazer então?
Bom, o primeiro passo é reclamar com a Adobe, que é responsável pelo produto. Embora eu já aviso logo que o suporte deles não é dos melhores nas respostas aos usuários.

Felizmente há uma luz no fim do túnel, os players de vídeo html5 estão abocanhando uma fatia cada vez maior do mercado, já há protótipos de implementação de ferramentas de webconferência, e o html5 também tem se saído uma boa alternativa pra área de games.

Conclusão
Não saia jogando a culpa desses erros de flash no firefox ou no linux.
Nesse ponto eu concordo com o Steve Jobs, o flash tem que sumir, ele é bugado, requer muito hardware e ainda por cima é um padrão fechado.


II São Paulo Perl WorkShop

7 abril 2011

Vai ser realizado no dia 7 de maio de 2011 (Sábado) o II São Paulo Perl Workshop. Evento organizado pelos monges perl de SP, que conta com grandes nomes da Informática mundial como Larry Wall (Criador da linguagem Perl) e Brian D foy(Autor de vários livros sobre Perl). O evento também vai abordar diversos temas como Web, Storage, OpenData, etc, portanto além do alto nível do evento, você ainda pode trocar uma idéia com grandes profissionais do Brasil e exterior.

Infelizmente não vou poder estar no evento, até tentei (e olhe que moro em Fortaleza), mas vou estar num curso pelo trabalho no Rio de janeiro na época.

Mais detalhes no site do evento.


LibreOffice e o poder do modelo livre

22 março 2011

Como todos sabem o OpenOffice e o BrOffice agora se chamam LibreOffice. Trocando em miúdos, a venda da Sun (mantenedora do OpenOffice) para a Oracle e por consequente a visão da nova mantenedora não ser compatível com os anseios da comunidade, fez com que a comunidade saísse do projeto OpenOffice (que era da Sun/Oracle) e ser obrigada a fazer um fork da suite de escritório, nasceu assim a Document Foundation, entidade responsável pelo LibreOffice.

Ponto positivo para o LibreOffice, que agora fica independente de uma grande empresa, deixando as decisões estratégicas do produto nas mãos de quem realmente o faz: a comunidade.

Eis que a comunidade se pronuncia e diz que para criar a nova entidade, precisariam de 50 mil Euros, valor a ser pago ao governo alemão para a criação dessa modalidade de entidade.

O pedido foi feito, e foi atendido, as doações após 5 semanas, não conseguiram somente os 50 mil Euros, já passaram dos 100 mil.

Algumas pessoas até não acreditam nesses números, não entendem porque esses “malucos” escrevem código livre e – de graça! -, pois é, eu vou dizer o porquê: Compartilhar é uma das maiores virtudes do ser humano, é algo que aprendemos desde pequenos, e faz muito bem, e o bem vicia, venha fazer parte dessa nação de malucos.

Para Doar para o projeto LibreOffice, clique aqui.

Para baixar o LibreOffice, clique aqui.

Fonte: http://blog.documentfoundation.org/2011/03/22/libreoffice-3-3-2-is-now-available/


Vim: grave mesmo sem o sudo

21 março 2011

Acontece com muita frequência no ubuntu, você abriu um arquivo e quando foi gravar ele avisou que você não tem permissões, há um tempo, eu descobri que no vim, digitando isso resolvia:

:w !sudo tee % >/dev/null

Ai descobri uma forma de por isso no meu .vimrc, ai quando esqueço simplesmente digito :w!!, que é um atalho pro comando acima.

Para adicionar o mesmo atalho ao sem Vim, edite seu ~/.vimrc e adicione a linha

cmap w!! w !sudo tee % >/dev/null

Fonte: google

[]z

 


Morre Ken Olsen, pioneiro da computação.

8 fevereiro 2011

Se você é de alguma forma ligado a computação, deveria conhecer a história desse homem, Ken Olsen, co-fundador da Digital, uma das pessoas que mais contribuiu para o desenvolvimento dos computadores, um homem que não só era um gênio, mas que tinha toda uma filosofia de vida para passar. Ver o depoimento de seus ex-funcionários é emocionante.

Ken Olsen morreu hoje, dia 8/2/11, mas seu legado está em toda parte, em todo computador que usamos diariamente.

Fonte: http://abcnews.go.com/Technology/wireStory?id=12864374


Gstreamer – Conhecendo mais ainda – Parte 1

13 janeiro 2011

Vamos por a mão na massa, já falei como fazer um simples player usando Gstreamer, usando shell e pipes, agora vamos fazer o mesmo, mas usando uma linguagem de programação séria. Brincadeira, eu adoro bash, mas alguém imagina fazer isso (Clique para ampliar) com pipes em shell?

O Objetivo a partir de agora é entrar cada vez mais no Framework Gstreamer, e não em particularidades de linguagens específicas.

Bindings

O Gstreamer tem ports para várias linguagens: Python, Perl, .Net, C++, Java, Ruby, etc. Eu vou usar Perl nos exemplos.

Resumo

Entender o básico do Framework agora se torna necessário para fazermos uma aplicação, portanto vou passar por alguns conceitos do Gstreamer.

Eu recomendo fortemente para quem está interessado em Gstreamer, que leia esse manual, nele é criada uma aplicação em C usando Gstreamer, porém, mesmo que você não conheça a fundo C, dá pra se ter uma idéia de como funciona cada parte do Framework.

Primeiramente o Gstreamer usa uma estrutura de desenvolvimento muito semelhante ao GTK+. No tutorial citado acima você encontrará mais da relação do Gstreamer com a Glib e o Gobject.

A grande vantagem de se usar esse Framework é que ele já vem com certas funcionalidades:

  • Plugins com acesso direto a memória
  • Uso de threads gerenciadas pelo Kernel
  • Acesso a recursos de aceleração de Hardware de forma transparente
  • Estrutura core/plugins, o core do Framework é separado de seus plugins, permitindo carregar somente o que for necessário para a aplicação.

Conceitos básicos

Elements

Um element (elementos) é a estrutura mais importante do Framework, é a unidade básica do Framework, é através de uma grupo de elementos linkados que o fluxo de dados irá percorrer sua aplicação Gstreamer. Cada Element funciona com uma ou mais entrada de dados (sources), os dados são processados e enviados a uma ou várias saídas (sinks). Ao grupo de elementos linkados se dá o nome de Pipeline.

Exemplo de um element:

Pads

Pads são os objetos de Entrada (source) e saída (sink) dos elements. São através dos Pads que ligamos um element ao outro. Uma analogia aos Pads, é que eles são os “plugs” ou “ports” dos elements. O link criado entre Pads de elements diferentes tem que ser compatíveis entre si, senão a ligação não poderá ser feita. A negociação dessa ligação é chamada de caps negociation.

Bins

Um Bin é um conjunto de Elements, portanto, podemos dizer que um conjuntos de Elements, linkados por seus Pads, pode ser agrupado num único Bin. Dessa forma, você pode controlar um Bin como se fosse um único grande Element, inclusive adicionando Pads ao seu Bin. Esse recurso será bem útil para grandes estruturas de pipelines, fazendo com que seu programa tenha um nível menor de complexidade.

Os Bins também irão repassar todas as mensagens (Erro, Status, etc) de cada um de seus Elements inclusos.

Pipelines

Um Pipeline é um grande Bin. Ele é o resultado dos links criados pelos vários Elements ou Bins do seu programa, agindo como uma estrutura única. Ele tem um estado (PLAYING ou PAUSED) que faz o controle do fluxo de dados que irá passar pelos Elements ou Bins criados. Uma vez iniciados, uma thread será gerada e só será parada por sua intervenção direta ou quando terminar o fluxo de dados.

Exemplo de um Pipeline:

 

Continua…

PS: Realmente esse post tomou dimensões que eu não esperava, portanto acho melhor dividi-lo em partes, aguardem cenas do próximo capítulo. :D


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.