My two cents about Ello.co, Facebook and Social Networks

Ello is an evolution of Facebook because it isn't evil. It doesn't sell our info/profiles to advertisers without our agreement. Facebook indeed has a checkbox that you have to click to register, that supposedly means that we agree with all the policies and things they do to us. However, nobody really cares what is written in any of these terms of service, they just click the damn checkbox and register, just to be able to communicate with all their friends that are reachable by Facebook's services.

Nobody really agrees with all these Terms and Conditions. They just want to use the service, and to do that, they click any checkbox they are given.


However, there's still lots to evolve. I don't think this model of having a Wall, and being pushed to publish your life to everyone is healthy. Neither is healthy this encouragement to create this eternal bonds, when you click "follow" or "add as a friend". Social relationships don't work this way. In the past, we had just a phonebook, or an electronic organizer, and when we needed or wanted to have contact with someone, we would go there and talk to them. When these people changed their phone numbers, they would call everyone that mattered and ask them to update their phonebooks/organizers. I don't want to sound nostalgic. I just think that technology brought us new powers to communicate, but the excess of contact is making things worse.

Social Networks seemed to be more healthy, at least in a way, when we just had phonebooks and electronic organizers.


Social networks are awesome to make people self-sufficient in regards of being aware of what happens in the world. Most of the press are just texts that agree with what their advertisers think, or want people to think. And making press less powered is what social networks should be built for. Also should be built to help people work together, like the so cool Open Source Projects we see out there, that unites great people from countries so far from each other. Social networks shouldn't be built to make people even more concerned with what others think about them, and waste their time trying to show how good their life is, or how interesting they are. Social networks neither should be built to make people judge each other even more, while they watch what others publish.

Some Facebook-like websites push people to publish their lives to everyone, and that stimulates people to judge each other even more than they were used to, before this kind of interaction existed.


I think Ello is still not what I would like to have as a tool for enhancing Social Networks. I think Whatsapp is closer to the real deal, than all of these Facebook-like websites.

Dias de Inferno na Síria - por Klester Cavalcanti

Acabei de ler o relato de Klester Cavalcanti sobre sua experiência na Síria em maio de 2012. Jornalista recifense, ele viajou ao país em plena guerra civil para escrever sobre a situação de Homs, principal foco de resistência do Exército Livre da Síria.

Contexto da guerra

Em março de 2011, inspirados pela Primavera Árabe, o povo sírio se rebelou contra o governo de Bashar al-Assad, presidente da Síria desde 2000, sucessor do falecido pai Hafez al-Assad que governou a Síria desde 1971 quando assumiu o poder através de um golpe de Estado.

Hafez pertencia a um grupo étnico-religioso chamado Alauíta, minoria na Síria, e durante seu governo, favoreceu os cidadãos desta etnia. Os sunitas, a maioria do povo, descontentes com o governo de Hafez, já tentaram derrubá-lo no passado, culminando em um bombardeio das Forças Armadas da Síria sobre a cidade de Hama, matando 20 mil pessoas (grande maioria civis), passando a ser conhecido como o Massacre de Hama.

O descontentamento do povo sempre foi presente, mas quaisquer manifestações contra o governo al-Assad sempre foram duramente repreendidas através de força militar. No entanto, após a queda dos ditadores da Tunísia e Egito em 2011, os sírios decidiram ir às ruas com esperança de conseguirem o mesmo. Bashar repetiu as atitudes do seu falecido pai, e respondeu com mais mortes dos opositores. Órgãos como ONU e União Europeia rechaçaram as atitudes do ditador, mas a situação só fez piorar. No texto do livro, Klester explica o contexto da guerra e menciona que cerca de 3000 soldados desertaram do Exército Sírio e se juntaram aos civis, formando o Exército Livre da Síria, principal força opositora ao governo de Bashar.

Sofrimento de Klester

O livro passa com clareza a falta de escrúpulos do governo de Bashar al-Assad, desrespeitando qualquer protocolo diplomático e todo tipo de direito fundamental. O jornalista adentrou território sírio portando visto para trabalhar por 7 dias, concedido pelo Consulado Sírio em São Paulo, assim como um documento oficial descrevendo todos os equipamentos que estaria autorizado a portar como máquina fotográfica, filmadora, entre outros. Todo o cuidado de Klester para fazer seu trabalho legalmente não impediu o governo sírio de prendê-lo por 6 dias até seu visto vencer, sem nunca tê-lo explicado o motivo da prisão. Como se não bastasse, foi ameaçado de morte diversas vezes e torturado para assinar documentos em árabe, trazendo como souvenir da viagem uma queimadura de cigarro no rosto, aplicada por policial sírio.

Mesmo não tendo alcançado seu objetivo inicial, de acompanhar a rotina dos rebeldes do ELS (Exército Livre da Síria) em Homs, o livro consegue retratar a guerra muito bem, através das impressões de Klester na prisão em que ficou, assim como o que sofreu para entrar e sair dela.

End of a cycle and plans to the next

As I get closer to the end of my graduation in Computer Engineering, I ask myself how my future would be like.

Will I turn into an ordinary programmer, software engineer, or maybe occupy a management position and get far from coding? Will I apply for being a Masters Candidate, as some of my colleagues are doing?

My experience in college was not very comfortable. It started back in 2006 and should have ended in 2010, totalling 5 years, but here I am, in 2013, after almost dropping out several times, when I thought about moving to economics, psychology, advertising/marketing, and probably many more. A couple years ago, telling from my grades, I didn't feel I belonged to engineering nor computing and I've felt I would be useless to society, as I wasn't turning into a competent professional.

In 2009, I started being an undergraduate researcher, supervisioned by Prof. Paulo Maciel, and loved the experience. My motivation didn't come from the subject of the research (embedded systems performance analysis), but from the feeling of being useful to someone.  I was really thirsty for that feeling. At that time, I was still getting some bad grades, as I hated to study things just for a freaking exam, but was doing very well on my activities on the research. At a specific time, I had to quit the research, as I was getting threatened to be expelled from university, after several failures in different courses, so I really needed to get good grades. I even managed to get good grades, but the feeling of not belonging to computer engineering remained. Fortunately, things got better after I was accepted as an intern in a Research & Development laboratory, from a big company in Brazil (Itautec). A couple weeks ago, I completed one year there and I really feel competent in my job and that my contribution there is relevant, so I am finally happy with the choice I made almost ten years ago, when I was 17 and told myself I would be a Computer Engineer, without really realizing the meaning of this.

In CIn/UFPE, one of the last things you do when finishing your Computer Engineering graduation is chosing  a project to work on for a semester (you chose any subject you want), and then present the results to a teacher that will give you a grade for it.
I was thinking about that for a while, and some months ago I finally discovered the subject I want to work on. I've always been an enthusiast of computer security related stuff, and always wanted to work with something related to it. Without totally being aware of the relationship between these two, I  started researching about China's censorship in the Internet, just out of curiosity. I was kind of afraid of this government behavior getting spread to other countries, and wanted to be able to do something against it. So I discovered this project called Tor.
It's a technological solution (still a work in progress, but already useful to lots of people) against governments censorship and surveillance in the global network. And that's exactly what I plan to work on in the next semester: studying about governmental methods of censorship and surveillance, as well as ways to avoid them, and also contribute to the Tor project. I am already kind of involved with it, as I posted in another blog (in portuguese: Tor: Entendendo o projeto and Tor: Primeira contribuição).

So today, after reading the Introduction of Assange's book Cypherpunks, I realized I would like this  last semester to last more like 5 years or something, as I am so pleased to study about this subject. It was a very inspiring text, giving me a feeling close to the one a priest has when hearing his god's call, just before he choses to be a priest. I'm not religious, but I've felt I had to extend this semester work to be the subject of a research project in a future Masters course in Computer Science. Maybe I will change my mind, as I learned that it  happens very often with myself, but that's ok, I just would like to thank Julian Assange (and some other guys like the ones from Tor Project) for being so inspiring. Thank you!

O que é um framework de desenvolvimento web?

Durante este período (meu penúltimo) do curso de Engenharia da Computação, no Centro de Informática da UFPE, cursei três disciplinas que exigiam a utilização de um framework de desenvolvimento web. A intenção em nenhuma delas era ensinar algo sobre desenvolvimento web. Os frameworks foram utilizados apenas como meio de pôr em prática os conceitos aprendidos em sala, criando uma aplicação funcional, mas sem gastar tanto esforço em detalhes que já aprendemos em disciplinas anteriores.

As disciplinas foram:

Tópicos Avançados em Engenharia de Software (Prof. Paulo Borba)
Framework utilizado: Grails


Análise de Projetos e Sistemas (Prof. Augusto Sampaio)
Framework utilizado: Play


Engenharia de Software Educativo  *é preciso ter uma conta no Redu e permissão para acessar a página (Prof. Alex Sandro Gomes)
Framework utilizado: Ruby on Rails



Antes de cursar estas disciplinas, eu já havia mexido com o framework Django, então ao utilizar os outros três, não tive um choque tão grande quanto outros alunos sem esta experiência.



Eis então que, sem nunca ter sido um desenvolvedor web experiente, acabei tendo contato com quatro frameworks diferentes. Continuo me considerando amador nesta área, no entanto, ao menos consegui responder o que era um framework de desenvolvimento web, quando meus colegas de disciplina perguntavam.

Pequena história do desenvolvimento Web

Nos primórdios (anos 90) da popularização da WWW, a interação do usuário com as páginas era simplesmente baixar páginas estáticas, com links para outras páginas e em alguns momentos preencher algum formulário, ou fazer upload de um arquivo pela página.

Os servidores Web funcionavam praticamente como servidores de arquivos, servindo páginas através do protocolo HTTP, sem realizar muito processamento ou execução de programas por baixo dos panos.

Já nos anos 0x (~2004 em diante),  os servidores Web começaram a trabalhar mais. Os usuários passaram a ter cadastro nas páginas, e o conteúdo de cada uma delas dependia do usuário que estava logado. Nessa época o Orkut estava dando seus primeiros passos.

Os sites mais atuais deixaram de ser simplesmente um conjunto de páginas .html e passaram a ser Aplicações Web. Não eram mais arquivos de texto com hiperlinks, e sim um software rodando no servidor Web, que interagia com o usuário através do browser, via Internet.

Naturalmente, o desenvolvimento dessas páginas tornou-se muito mais complicado. Criar uma página .html estática dos anos 90 era tão fácil, que crianças de 11 anos curiosas tinham as suas. Bastava conhecer o Microsoft FrontPage (vinha junto com o pacote Office), se cadastrar num host grátis como Xoom, Geocities, HpG, iG e enviar seus arquivos para lá. Criar uma página era quase tão fácil quanto editar um documento do Word. Para ter uma ideia de como as páginas eram, viste este site. Nostálgico para alguns!

O desenvolvimento da Web 2.0 (como passaram a chamar), passou a exigir conhecimentos de programação, e não mais utilizar um FrontPage ou editar um HTML. Além disso, era muito provável que fosse necessário persistir os dados em algum banco. Ou seja, também era preciso conhecer algo de SQL e modelagem de bases de dados.

As trocas de arquivos entre o servidor Web e os usuários também mudou. Antes, o mesmo arquivo .html que o pirralho de 11 anos enviava para o servidor Web era aquele que seria "baixado" (visualizado) por todos os visitantes do seu site amador. Esta era a forma de o pirralho atualizar seu site.
Agora, o desenvolvedor (não mais um pirralho de 11 anos), passa a enviar programas ao servidor Web. E aí, quando os visitantes acessam um endereço, não é baixado o arquivo que o desenvolvedor enviou, e sim executado o programa. O que o visitante visualiza é exatamente o resultado da execução daquele programa. O código-fonte dos sites passou a ser "secreto".

A linguagem mais popular era a PHP. Através desta linguagem, você pode tratar as requisições do usuário, fazendo consultas no banco de dados se necessário, e exibindo os resultados através do velho HTML. Pro usuário, as páginas continuavam a mesma coisa, sendo exibidas pelo browser. A diferença era que o conteúdo era personalizado. Pro desenvolvedor, tudo mudou. HTML passou a ser um detalhe do desenvolvimento, fazendo parte do chamado Front-End. O restante do programa (não relacionado à visualização) que antes não existia, chamou-se Back-End. Hoje temos até programadores Web especializados em Front-End (mais próximos à area de Design), e outros especializados apenas em Back-End (mais próximos à area de computação)!

Com o tempo, percebeu-se que algumas partes do desenvolvimento Web eram extremamente repetitivas, como o armazenamento e consulta de dados no banco e interface entre código executável e exibição das páginas. Foi aí que algumas pessoas tiveram uma ideia de automatizar parte desse desenvolvimento, e criaram os Frameworks de Desenvolvimento Web.

O que esses frameworks fazem?


É possível programar aplicações web em praticamente qualquer linguagem de programação, como PHP, Python, Java, Perl e até C/C++. Basta que o servidor web seja capaz de fornecer as entradas do usuário (cliques ou dados de formulários) ao programa, executá-lo e exibir a saída (página resultante) de volta ao browser do usuário.


Para algumas dessas linguagens foram criadas ferramentas que auxiliam o desenvolvimento web de várias formas. Por exemplo, para a linguagem Python, criaram o Django. Com ele, utilizando apenas um comando, você pode criar todas as tabelas do banco de dados a partir do código das classes Python que você criou. O Django também traz pronto o código de comunicação HTTP para envio de páginas e recebimento de dados de formulários, código de comunicação com o banco de dados, e até o código que separa as regras de negócio/dados (conteúdo) da exibição (formatação).

O mesmo acontece com Ruby on Rails (criado para quem quer programar em Ruby), Play (para Java) e Grails (para Groovy), entre vários outros. Com o advento desses frameworks, desenvolvimento Web utilizando PHP puro ficou fora de moda e já é encarado como ultrapassado por muitos. É importante salientar que PHP continua sendo usado, inclusive pelo Facebook. A vantagem destes frameworks é agilidade de desenvolvimento e não necessariamente performance (ponto crítico para o Facebook e qualquer aplicação massiva como esta). Como a maioria das aplicações não possuem mais que algumas centenas de usuários simultâneos, utilizar estes frameworks é quase sempre uma excelente ideia.




Representações binárias de inteiros negativos

Este é um guia rápido para aprender como funciona a representação de inteiros negativos em computadores. Independentemente da convenção, inteiros positivos sempre têm a mesma representação. O que muda entre as convenções é a representação dos negativos.

Neste post listarei três tipos de representações. Em todas elas, utiliza-se o bit mais significativo (Most Significant Bit - MSB) para determinar o sinal. Se for 1, é negativo, se for 0, é positivo.

Sinal e Magnitude

Esta é simples. Para transformar um número positivo num negativo, basta trocar o sinal, através do MSB. Ou seja, se 00000010 é +2, 10000010 é -2.

O problema desta representação é que ela não é eficiente na hora de realizar cálculos aritméticos. Então antes de enviar um número negativo para a unidade aritmética, os processadores que utilizavam essa representação convertiam para outra representação (complemento a um, por exemplo), e quando liam o resultado, convertiam de volta para o "Sinal e Magnitude" antes de gravar no registrador.

Outro problema é a dupla representação do zero. Há o zero 0000000 e o zero negativo 10000000. Graças a isto, a operação de comparação com zero seria formada por duas operações na prática.

Num inteiro sem sinal, oito bits podem representar 256 valores (0 a 255). Já num inteiro com sinal, utilizando a representação Sinal e Magnitude, perderíamos 1 bit para o sinal e teríamos 7 bits para a magnitude. Ou seja, 0 a 127 com MSB 0 (0 a +127), e 0 a 127 com MSB 1 (-0 a -127). Continuamos com 256 valores, mas dois representam a mesma coisa (0 e -0), então na prática, podemos representar apenas 255 valores, quando estamos trabalhando com inteiros com sinal, usando Sinal e Magnitude.

Complemento a Um

Na representação Complemento a Um, em vez de trocar apenas o MSB, precisamos também inverter todos os outros bits, se o número for negativo.

Repetindo o exemplo do 2 em um inteiro de 8 bits, aqui estão os seus valores utilizando Complemento a Um:
+2: 00000010
-2: 11111101

Perceba que agora podemos utilizar estes valores para realizar cálculos aritméticos e obtermos resultados válidos, diferentemente da representação com Sinal e Magnitude.

Se somarmos -2 com 2, obteremos 11111111, que significa -0. Ou seja, assim como a representação anterior, Complemento a Um também possui duas representações para o zero (00000000 e 11111111). E  para corrigir este problema, "inventaram" a representação Complemento a Dois, explicada a seguir.

Complemento a Dois

Esta representação é semelhante a Complemento a Um, com a diferença que possui mais um passo para tornar um número positivo em negativo.

Além de setar o MSB como 1 e inverter o restante dos dígitos, somamos 1 a este valor.

Ou seja, o passo-a-passo para transformar o dois positivo em dois negativo é:

Valor inicial: 00000010 (Dois positivo)
  1. Trocar MSB: 10000010
  2. Inverter bits após MSB: 11111101
  3. Somar um: 11111110
Nesta representação, as operações aritméticas também são preservadas, assim como no Complemento a Um. Se somarmos -2 com +2, obtemos:

+2: 00000010
-2: 11111110
-------------
   100000000

Resultado:
    00000000

Como você percebeu, o resultado verdadeiro precisaria de nove bits. Como isto ultrapassa o espaço que tínhamos para representar o inteiro, ele zera, assim como um hodômetro quando ultrapassa seu limite. Ele começa a contar do zero novamente. Isto é conhecido como overflow de inteiro, e apesar de parecer uma limitação, é usado a todo momento para realizar subtração de inteiros.

Na tabela abaixo, fazemos uma comparação da representação dos inteiros negativos, considerando uma máquina hipotética que utiliza 5 bits para guardar um inteiro:


Assimetria do Complemento a Dois

Preste atenção na diferença entre o Complemento a Um e Complemento a Dois na tabela. Veja que é como se fosse a mesma coluna, só que a da direita (Compl. a Dois) está deslocada uma linha para cima. Há dois efeitos para este deslocamento, um é a eliminação da dupla representação do zero, e outro ainda não havia sido mencionado, que é a assimetria de valores possíveis para o Complemento a Dois.

Pela tabela acima, a representação de Complemento a Dois parece desperdiçar o valor binário 10000. Ele está presente na coluna do Complemento a Um, mas não na do Complemento a Dois.

Isto acontece apenas na tabela. Na realidade, o Complemento a Dois não desperdiça nenhum valor binário. O 10000 no exemplo hipotético de inteiros de 5 bits corresponderia ao valor -16, que não seria possível de representar nem com o Sinal e Magnitude, nem com o Complemento a Um.

Ou seja, com 5 bits utilizando Complemento a Dois, poderíamos representar de -16 a -1 (10000 a 11111) e de 0 a 15 (00000 a 01111), totalizando 32 valores. Nas outras representações, só são representados 31 valores, já que temos dois reservados para o zero.

Scripts para gerar base de dados sobre os ônibus do Recife

Durante as férias, tive a ideia de fazer um site que ajudasse as pessoas a escolher que ônibus pegar para ir de um ponto a outro da cidade.

Minha inspiração foi no extinto www.onibusrecife.com.br desenvolvido pela Inove Informática. Era um site muito útil, diria até essencial, mas por problemas técnicos (?) foi tirado do ar. Inicialmente, iria utilizar minha aplicação no meu próprio computador, para fins pessoais mesmo, e se desse certo, disponibilizaria no estilo SaaS. Seria muito mais simples que o onibusrecife, mas com o mínimo de funcionalidade que faltava no site da Grande Recife, que possuía todos os dados, mas não fornecia um serviço deste tipo.

O primeiro passo foi extrair os dados dos itinerários de cada linha, contidos na página da Grande Recife. Lá não há nenhuma API ou facilidade que permita conseguir estas informações, então o jeito foi baixar todas as páginas HTML e fazer uma série de filtros com expressões regulares, para extrair apenas o desejado.

Além dos scripts de download e extração de dados, também fiz os que transformam os dados em queries SQL. Assim, no final do processo, você tem seu BD pronto com os dados que precisa.

Já que tudo foi colocado em scripts Bash, é possível automatizar todo o processo. Não sei como está hoje a formatação das páginas do Grande Recife. Provavelmente não mudaram nada de dois meses para cá. De qualquer forma, faz dois meses que parei esse projeto e decidi disponibilizar todos os scripts. Espero que seja útil para alguém.


Eu sei que falta algum README para explicar melhor como usar os scripts, mas por enquanto não fiz. Seria interessante algum conhecimento em expressões regulares e programas de filtros de texto padrão de sistemas GNU/Linux, como o sedsortgrep join. Dessa forma, você será capaz de corrigir erros que possam surgir.

Ah, esses códigos não têm nenhum tipo de licença. Pode usar como bem entender.
Atualização em 08 de Dezembro de 2012:
Na verdade, quando não está definido explicitamente qual a licença de um código fonte ou software, o default é que ele é proprietário. Ou seja, eu teria os direitos exclusivos de autor relacionados a cópias e redistribuição. O ideal é que eu colocasse junto ao código uma declaração de alguma licença de software livre, como a LGPL da FSF, só que ainda acho a LGPL não tão livre assim. Mas esse assunto pode ficar para outro post.

Laogai: O sistema prisional escravista da China



As prisões da China possuem dois nomes. Um referente à prisão em si e outro referente à empresa que funciona nela. Hoje em dia existem cerca de mil, totalizando de 3 a 5 milhões de detentos (ou quase 7 milhões de acordo com outras fontes). Estas prisões produzem produtos para construção, indústria, alimentos, químicos, brinquedos, vestuário, e são conhecidas coletivamente como Laogai, uma abreviação de Láodòng Gǎizào (勞動改造/劳动改造) que significa "reforma através do trabalho", o slogan do sistema de justiça criminal chinês. Muitos desses produtos são exportados e chegam aqui no Brasil, na indústria e nas nossas casas, sem nos importarmos com a sua origem.

Na série "Slavery: A 21st Century Evil", produzida pela TV Al Jazeera, o episódio "Prison Slaves" fala sobre este sistema com ajuda do Harry Wu, que foi preso em 1960 por ser um contrarrevolucionário que criticava a União Soviética, então aliada da China. Harry Wu passou 19 anos preso, trabalhando forçadamente no Laogai e fundou a Laogai Research Foundation, dedicando sua vida para chamar atenção aos abusos do governo chinês contra os direitos humanos.



Além de dissidentes políticos, também são presos muitos dissidentes religiosos no Laogai. Cristãos na China só podem praticar sua religião em igrejas registradas pelo estado. No entanto, muitos se recusam e praticam em igrejas não licenciadas e acabam sendo mandados para o Laogai.



No documentário, é entrevistada Abighail, uma jovem residente em Los Angeles, E.U.A. e ex-detenta do Laojiao ("Reeducação através do trabalho"). O Laojiao é um sistema parecido com o Laogai, também com trabalho forçado, mas para pessoas que cometeram delitos mais leves.

Abighail foi detida, sem nunca ter ido a julgamento, acusada de "perturbar a ordem e a segurança da sociedade", pois disseram que ela "estava espalhando sua crença", e por isso foi sentenciada a três anos de prisão e trabalho forçado. Enquanto estava a caminho da prisão, o policial disse que ela estava indo lá para aprender que a crença em Jesus era errada.

Abighail trabalhou na Shenyang, um campo de trabalho para mulheres que produzia artigos têxteis e produtos elétricos. O seu nome comercial era Shenyang Wanzhong Sanwei Service Company e possuía mil presas.

Em janeiro de 2007, alguns meses após ter cumprido sua pena, Abighail fugiu para os Estados Unidos, deixando sua família para trás.

Ironicamente, Abighail trabalhava produzindo pequenas lâmpadas para decorações natalinas, um item típico das festas cristãs.

Ela disse que as tarefas dadas eram muito difíceis de serem completadas em um dia. Eles acordavam às 7 da manhã e tinha gente que não conseguia terminar até meia-noite. Os que não completavam eram punidos. Ela também reclamou das condições de trabalho, dizendo que era muito frio na fábrica e não haviam aquecedores.


Outro dissidente religioso foi Charles Lee, preso por praticar a Falun Gong, uma mistura de exercícios de meditação e filosofia moral. Em 1999, a China começou a perseguir os seguidores da Falun Gong e prendeu 100.000 deles.

Em 2003, Charles Lee saiu da sua casa nos Estados Unidos para apoiar seus colegas na China. Acabou sendo preso e passou 3 anos na Laogai.

Passaram 1 ano tentando fazer lavagem cerebral, tentando forçar ele desistir de praticar o Falun Gong. Então eles mudaram e estratégia para fazê-lo sentir-se um criminoso. Charles trabalhou na prisão de Nanjing, a 170km de Xangai. Assim como todas as instituições penais da China, esta prisão também era um negócio. Seu nome comercial era Xinsheng Knit Sweater Factory, possuía 2600 presos e produzia calçados.

Um dos produtos feitos por Charles Lee eram pantufas com o formato do personagem Homer Simpson. Assim que ele saiu da prisão, em 2006, ele retornou para sua casa nos Estados Unidos e encontrou numa loja local as mesmas pantufas que produzia forçadamente em Nanjing.


Na etiqueta da pantufa aparece o nome da empresa SGFootwear, localizada em New Jersey, E.U.A.. De acordo com o site da empresa, ela possui licença para produzir e vender produtos com as marcas da Warner, Disney, Marvel, Fox e outras.

Perguntada pela reportagem da Al Jazeera, a 20th Century Fox diz que as fábricas da SG Footwear são monitoradas para obedecerem as leis de trabalho da China. Além disso, dizem que nunca utilizou conscientemente trabalho involuntário na criação de nenhum de seus produtos. A SGFootwear não comentou o assunto.


Oficialmente, a China baniu as exportações de todos os produtos feitos em prisões, mas a reportagem da Al Jazeera investigou e descobriu que isto continua acontecendo, com suporte do governo.


Dez anos atrás, Hari Wu se voluntarizou a ajudar um interno do Laogai. Ele era um dos gerentes (não era um preso) da maior produtora de botas de borracha na China (uma das prisões do Laogai) e disse que estava disposto a revelar tudo o que acontecia na prisão.

Com garantias do US State Department, Huang Peng fez sua parte e falou tudo. No entanto, o seu visto  como refugiado político da China acabou sendo negado. Assim, a Russia (onde ele estava temporariamente) acabou mandando-o de volta para a China.

Hari Wu não teve mais notícias do seu amigo. Ele acredita que Huang está preso na mesma prisão que ele trabalhava e tentou expor.

A TV Al Jazeera, que produziu este documentário e costuma publicar conteúdo revelando os podres da China, foi expulsa pelo governo chinês em maio deste ano: as credenciais de imprensa dos correspondentes dessa TV não foram renovadas.

Abaixo segue o vídeo completo deste episódio da série:


Felizmente, este assunto já está sendo debatido e divulgado por organizações como a Slavery Footprint. Vale à pena visitar o site http://slaveryfootprint.org/

Referências:

Information and Nature Analogy

If you're the only one who knows it and don't spread it, it will die, like a rare bird that didn't find its partner to reproduce and becomes extinct. It could even be a really innovative and striking idea, a new species of a bird, but thanks to your failure in sharing it, the result of millions of years of evolution would be thrown away.

However, some kinds of information are like viruses, and shouldn't be spread. They reproduce easily but pollutes the air and time, bringing difficulties for the info that really matters to reproduce in everyone else's minds.

Gossip, per example, is clearly classified as a virus information.
We have news channels that work like an abundant virus source, and those should be fought against, or ignored.

But you have to pay attention. Most of the times, viruses are not so easy to spot. They sound and look like authentic good information, but are actually fake, or misleading.

Jesus, for example, came up with a lot of new ideas, spreading love and comprehension. Centuries later, the very same words were used by some people to spread intolerance and persecution.

At the time you write or speak something, you may be starting a chain reaction. If your audience absorbs what you said, it will probably share it with someone else and this can last forever, literally. So take care on what you receive and what you give.

Curso sobre Propriedade Intelectual


Iniciei um curso de 75h sobre Propriedade Intelectual, fruto de uma parceria entre o INPI - Instituto Nacional da Propriedade Industrial e a OMPI - Organização Mundial da Propriedade Intelectual (WIPO, em inglês). É um curso oferecido à distância, em um site do WIPO (http://lms.wipo.int/index_pt.php), ensinado através de texto e áudio, dividido em 13 módulos. Também temos à nossa disposição um tutor, e um fórum para discutirmos os assuntos relacionados ao curso. Muito legal! O curso é gratuito, então se tiver interesse busque por DL 101P BR no Google e fique de olho nas próximas turmas. É bem provável que volte a ocorrer. Há informações nesta página aqui também, mas nunca se sabe até quando essas coisas ficam no ar:


   
Segundo o próprio site do curso, o objetivo é apresentar uma visão atualizada dos mecanismos de proteção das criações intelectuais, enfocando o arcabouço legal brasileiro e as atribuições do INPI.

E estes são os módulos oferecidos:

  1. GUIA DO CURSO
  2. INTRODUÇÃO À PROPRIEDADE INTELECTUAL
  3. DIREITOS AUTORAIS
  4. MARCAS
  5. INDICAÇÕES GEOGRÁFICAS
  6. DESENHO INDUSTRIAL
  7. PATENTES
  8. TRATADOS INTERNACIONAIS
  9. CONCORRÊNCIA DESLEAL
  10. PROTEÇÃO DE NOVAS VARIEDADES DE PLANTAS
  11. INFORMAÇÃO TECNOLÓGICA
  12. TRANSFERÊNCIA DE TECNOLOGIA
  13. DEBATE E RESUMO
  14. EXAME FINAL
Vou tentar postar um pouco sobre o assunto, durante o curso. Assim fixo melhor os conceitos e divulgo a informação, já que embora seja um assunto relevante, a maioria das pessoas conhecem pouco ou se sentem inseguras.


--Atualização em 8 de Novembro de 2012:

Consegui terminar o curso! Corri nesta semana para estudar quase todos os módulos, mas consegui ser aprovado. A exigência é uma pontuação acima de 50% no Exame Final, e consegui 80%. Mesmo tendo sido aprovado, não fiquei 100% contente, pois ainda não me considero entendido no assunto. Não por culpa do curso, que tinha muito conteúdo a oferecer, mas por eu não ter me dedicado como gostaria. De qualquer forma, tendo respondido todos os testes de cada módulo e o teste final, sempre consultando os textos, me fez ter uma visão menos leiga sobre os vários aspectos das proteções de Propriedade Intelectual. O que já é alguma coisa.
Estou com 100/100 em todos os módulos porque você tem a chance de refazer estes testes. O único que você tem apenas uma chance é o Exame Final, que também é o único que conta como instrumento de avaliação.



Como criar um projeto Django (Resumo)

Fonte: https://docs.djangoproject.com/en/1.4/intro/tutorial01/

django-admin.py startproject nome_do_projeto
(isto criará uma pasta com os arquivos iniciais do projeto)

Entre nesta pasta e teste se a criação funcionou com o comando:
python manage.py runserver
(depois acesse http://127.0.0.1:8000/)

Instalando MySQL e PHPMyAdmin
http://www.vivaolinux.com.br/dica/Servidor-Apache2-+-MySQL-+-PHP5-+-PHPMyAdmin-%28Ubuntu%29

Através do PHPMyAdmin, você pode criar a base de dados para seu novo projeto.

Configure sua nova base de dados em nome_do_projeto/settings.py
'ENGINE': 'django.db.backends.mysql'
'NAME': 'nome_da_base'
'USER': 'usuario_do_bd'
'PASSWORD': 'senha_do_bd'

Em nome_do_projeto/settings.py você também pode querer configurar o TIME_ZONE (exemplo: America/Recife) e os INSTALLED_APPS.

Após escolher os INSTALLED_APPS, você precisa construir o banco de dados de cada app. Isto é feito com:
python manage.py syncdb

Agora que está tudo pronto, você finalmente pode começar a desenvolver a primeira aplicação do seu projeto. Isto é feito com o comando:
python manage.py startapp nome_do_app

Agora você vai em nome_do_app/models.py e começa a modelar seu banco de dados.
Os tipo de campo você encontra aqui: https://docs.djangoproject.com/en/1.4/ref/models/fields/

Após a criação dos seus models, acrescente seu app na lista INSTALLED_APPS do arquivo nome_do_projeto/settings.py.
Basta acrescentar uma linha
'nome_do_app',
no fim da lista de apps.

Agora execute
python manage.py sql nome_do_app
e verifique quais comandos SQL seriam feitos para criar estes models no seu banco.

Outros comandos:
python manage.py syncdb
cria o seus models no banco.

  • Use a shell do Django para aprender a usar sua API e visualizar os dados da sua aplicação.
  • Lembre-se dos métodos __unicode__ em seus modelos (explicação no fim da seção do link acima).