Modelos tridimensionais no Inkscape 2: editando e exportando

Continuando ainda a edição de modelos no Inkscape, as vezes é util editar algumas propriedades do objeto antes de exportar. No Blender é possível importar e exportar para diversos modelos. O formato Wavefront (.obj) é o suportado no Inkscape, então vamos nos focar na abordagem com ele.

Após deletar o cubo inicial, vá em File > Import > Wavefront (obj). Selecione o arquivo do seu modelo e clique em Import.
 

O arquivo será importado do modelo .obj e poderá ser editado como qualquer modelo do Blender.
Uma operação interessante aqui é a Subdivisão de faces, então subdivide-se as faces. Depois disso, vá em File > Export > Wavefront (.obj) coloque o novo nome do objeto e clique em Export.
Depois disso, siga os passos do tutorial de inserção de modelos Wavefront para o Inkscape para importá-lo para o formato vetorial.
Terminada a edição e importação do modelo, para gerar uma saída interessante para os arquivos Latex, vá em Arquivo > Salvar Como , selecione o nome do objeto e os formatos desejados na combo box no canto inferior direito da caixa de diálogo. Geralmente as boas pedidas são os EPS ou SVG, formatos vetoriais suportados pelo Latex.
Com isso é encerrada os tutoriais de importação de modelos tridimensionais. O Inkscape também desenha curvas paramétricas usando a notação das funções definidas no pacote math do Python. Talvez eu acabe tirando um tempo pra explorar essa função também, pois também deve ser muito útil na hora de gerar bons gráficos para os nossos Latex.
Até la!

Veja também:
  1. Modelos tridimensionais no Inkscape 2: editando e exportando
  2. Modelos tridimensionais no Inkscape 1: importando e editando
  3. LaTeX no Inkscape com TexText
  4. Saída CMYK no Inkscape
  5. Saída CMYK no Inkscape

Modelos tridimensionais no Inkscape 2: editando e exportando

Continuando ainda a edição de modelos no Inkscape, as vezes é util editar algumas propriedades do objeto antes de exportar. No Blender é possível importar e exportar para diversos modelos. O formato Wavefront (.obj) é o suportado no Inkscape, então vamos nos focar na abordagem com ele.

Após deletar o cubo inicial, vá em File > Import > Wavefront (obj). Selecione o arquivo do seu modelo e clique em Import.
 

O arquivo será importado do modelo .obj e poderá ser editado como qualquer modelo do Blender.
Uma operação interessante aqui é a Subdivisão de faces, então subdivide-se as faces. Depois disso, vá em File > Export > Wavefront (.obj) coloque o novo nome do objeto e clique em Export.
Depois disso, siga os passos do tutorial de inserção de modelos Wavefront para o Inkscape para importá-lo para o formato vetorial.
Terminada a edição e importação do modelo, para gerar uma saída interessante para os arquivos Latex, vá em Arquivo > Salvar Como , selecione o nome do objeto e os formatos desejados na combo box no canto inferior direito da caixa de diálogo. Geralmente as boas pedidas são os EPS ou SVG, formatos vetoriais suportados pelo Latex.
Com isso é encerrada os tutoriais de importação de modelos tridimensionais. O Inkscape também desenha curvas paramétricas usando a notação das funções definidas no pacote math do Python. Talvez eu acabe tirando um tempo pra explorar essa função também, pois também deve ser muito útil na hora de gerar bons gráficos para os nossos Latex.
Até la!

Veja também:
  1. Modelos tridimensionais no Inkscape 2: editando e exportando
  2. Modelos tridimensionais no Inkscape 1: importando e editando
  3. LaTeX no Inkscape com TexText
  4. Saída CMYK no Inkscape
  5. Saída CMYK no Inkscape

Modelos tridimensionais no Inkscape 1: importando e editando

Este tutorial é meio que uma continuação deste meu post sobre como colocar texto Latex no Inkscape. Como as vezes é preciso exibir modelos tridimensionais em alguns trabalhos, usar um software de edição vetorial ajuda a colocar formatos com melhor resolução em papers e slides. O Inkscape tem por padrão um renderizador vetorial que aceita modelos tridimensionais Wavefront ( .obj). Aqui eu vou mostrar como importá-los e editá-los (primeira parte) e como gerar arquivos de saida Encapsulated Post Script (.eps) e/ou Scalable Vector Graphics (.svg), formatos muito utilizados pra quem quer colocar figuras no Latex (segunda parte).

Com o Inkscape aberto, vá em Extensões > Renderizar > 3D Polyhedron. Essa ação irá abrir uma caixa de diálogo em que você poderar escolher que objetos você quer renderizar. Escolha Load from file, informe o caminho completo do modelo (infelizmente não tem um diálogo que cuide disso, então é no braço mesmo que o modelo deve ser informado) e clique em Aplicar.

Com isso você já renderizou seu modelo tridimensional. Você pode alterar algumas características do objeto que vai ser como por exemplo a posição em que o modelo será visualizado, na aba View. Nela você poderá definir 6 rotações a serem aplicadas no objeto em torno dos eixos X, Y e Z com os valores dos ângulos  em graus. Pode-se marcar a caixa Pré-Visualizar, para ver como será exibido o objeto antes de renderizá-lo.

E finalmente, pode-se definir o estilo do objeto a ser renderizado. Tem-se Scaling factor, para definir em que tamanho o objeto será gerado; Fill color, com opções Red, Green e Blue para alterar os valores RGB das faces do modelo tridimensional; Stroke opacity e Stroke width para definir a opacidade e largura das arestas, respectivamente. Pode-se definir a posição da luz em Light X, Y e Z, no caso do sombreamento do objeto ter sido habilitado na caixa Shading.

Depois disso, se quiser inserir mais informações sobre o objeto, basta seguir o tutorial de inserção de Latex no Inkscape.

Este é o fim da primeira parte. Para concluir, veja a segunda parte.
Veja também:
  1. LaTeX no Inkscape com TexText
  2. Saída CMYK no Inkscape
  3. Saída CMYK no Inkscape
  4. Cola de atalhos no Inkscape 0.47
  5. Cola de atalhos no Inkscape 0.47

Continuous2Wheels – Para robôs de duas rodas com Arduino

Continuous2Wheels - Biblioteca para Arduino

Continuous2Wheels é uma biblioteca de Arduino para controlar os movimentos de robôs guiados por duas rodas ligado a servo-motores contínuos.

Página oficial: Continuous2Wheels no GitHub

Instalação

Faça um git clone ou download deste projeto para a pasta de bibliotecas do Arduino: 
no Ubuntu (/usr/share/arduino/libraries/) caso instalado via apt-get
no Windows, Mac ou Linux(Onde você baixou o IDE Arduino, a pasta de biblioteca está dentro)

Agora
está tudo pronto, basta: 

Abra o seu Arduino IDE,  vá a SKETCKS BIBLIOTECA → Importar Continuous2Wheels
 

Uso


#include <Servo.h>
#include <Continuous2Wheels.h> //Importando nossa biblioteca

Servo rightWheel, leftWheel;
int rightWheelPin = 9; // Pino da roda direita
int leftWheelPin = 10; //Pino da roda esquerda
double wheelRadius = 3.6; //Raio das rodas, em centímetors
double bendRadius = 12.2; //Raio de curva, é a distância de uma roda a outra, é o tamanho do eixo, em centímetros
// Criando uma instância da nossa bibliotecam, com um de seus construtores
// Não esqueça de passa os PONTEIROS dos objetos Servo, para isso, antes da variável coloque &
Continuous2Wheels c2w(&rightWheel, &leftWheel, wheelRadius, bendRadius);

void setup(){
     // Configure os seus servos normalmente
     rightWheel.attach(rightWheelPin);
     leftWheel.attach(leftWheelPin);
}

void loop(){
     c2w.forward(45); // Move o robô para frente em uma velocidade de 45
     delay(4000);
     c2w.bend(90); // Faz uma curva a direita em 90°
     delay(4000);
     c2w.backward(45); // Move o robô para traz em uma velocidade de 45
     delay(4000);
     c2w.bend(-90); // Faz uma curva a esquerda em 90°
     delay(4000);
     c2w.stop(); // Para as rodas
     delay(10000);
}

Este exemplo, usa as funcionalidades mais simples da biblioteca, logo logo farei um post com as funcionalidades avançadas, se quiser conhecer-las antes, vá a Continuous2Wheels no GitHub

Licença Creative Commons
O trabalho Continuous2Wheels de AJ Alves foi licenciado com uma Licença Creative Commons – Atribuição – CompartilhaIgual 3.0 Não Adaptada.
Com base no trabalho disponível em github.com.
Podem estar disponíveis autorizações adicionais ao âmbito desta licença em github.com/zerokol/.

Veja também:
  1. Novo videogame open source usa Arduino para jogos
  2. Arduino – o documentário
  3. Podcast – Introdução ao Arduíno – Parte 2
  4. Podcast – Introdução ao Arduíno – Parte 2
  5. Podcast – Introdução ao Arduíno – Parte 1

Chamada de novos blogs para o Planeta PSL-PI

O Planeta Projeto Software Livre – Piauí é um agregador de blogs de membros da comunidade de software livre do nosso estado, e tem como objetivo permitir às pessoas conhecer melhor o que cada um faz e saber o que está acontecendo na comunidade piauiense. Esta iniciativa já tem mais de dois anos, e para comemorar esta marca alteramos completamente o layout do site e adicionamos novas funcionalidades.

Vejam em http://planeta.psl-pi.org/

Como participar:

  • Podem participar blogs individuais ou mantidos por grupos de usuários/desenvolvedores;
  • O blog deve ser de alguém relacionado com a comunidade piauiense – a ideia é potencializarmos a nossa comunidade a partir do que é produzido aqui ou por pessoas daqui;
  • Seu blog deve possuir um feed com as notícias completas e sem propaganda;
  • Seu blog deve tratar sobre software livre, cultura livre, cibercultura, inclusão e educação digital (com software livre), desenvolvimento (com plataformas livres), política/sociedade e tecnologia, ou outro assunto afim, seguindo a linha e filosofia da comunidade de software livre; Caso seu blog também trate sobre assuntos que estejam fora desse escopo, você pode criar uma tag específica e nos repassar o feed dela, sem problemas.

A inscrição pode ser feita no formulário disponível nesse link: http://planeta.psl-pi.org/?page_id=4759

Lembrando que o conteúdo do Planeta PSL-PI está disponível para acesso a partir dos seguintes links:

Feed do Planeta: http://planeta.psl-pi.org/?feed=rss2

Fiquem a vontade para repassar esta mensagem a demais listas com interesse no tema.

 

Veja também:
  1. Chamada de novos blogs para o Planeta PSL-PI
  2. Chamada para blogs e grupos no Planeta PSL-PI
  3. Twitterfeed para o Planeta PSL-PI
  4. Planeta PSL-PI no Identi.ca, Twitter e Celular
  5. Planeta PSL-PI no BR-Linux

The right tools for the right job

Last year I bought a Wacom Bamboo tablet to enjoy my free time studying some digital art with Krita and MyPaint. I lent it to my girlfriend for a few months after 2011 Christmas so she could have some fun too. Angela was here in Natal last week (while the Lakademy was happening in Porto Alegre, south of Brazil ) and she brought it back. I askd her to bring it to me so I could use it while I am working in my GSoC project.

just a test i made when Krita 2.4 was still in Alpha 3

It takes some time to get used to this kind of input device but after that it’s really fun to do things with it. I really love drawing, but the reason why I bought a tablet was that my  painting skills it’s quite low. I get jealous very easily from other artists works.
Anyway, another point: Angela bought my Qt4 book too, since I had left it in Teresina after I moved to Natal.

I am not a KDE (not even a Qt ) experienced programmer, so the book will help a lot in some things I am doing. For instance, I corrected some points in my granular particles simulation and now I have some right values in it’s output. Although some errors persists, I got some key values right. It’s just some numbers in a text file, but as soon I eliminate some Batman lyrics (NaNs are one of my nightmares), the next step it’s to pass the generated values to a sequence of QImages and see if the particles got the right pixels and the right movements.

a speed painting Angela made with my wacom

As I said in previous posts, this project it’s not a easy one. It requires a real-time approach to a not so common particle type. The simulation I did have some serious performance drawbacks. For just a few particles (200 particles in the data set randomly initialized and distributed in a euclidean plane of size 100×100 units) the simulation takes almost 3 minutes to run 1000 steps, with a few wrong outputs !! It’s a really bad result.

After that, I gathered a handfull of books related to the topic. Physics and engineering are the fundamentals, but a real-time approach it’s the more important feature in the project. I got a book with my university advicer about real-time collision detection in the hope that it will help me do a better job in this simulation.

Real-time collisions, linear algebra, engineering math and Qt/C++ : the tools for the job

Another point is that I’m thinking of trying to see the actual state of it using a OpenCL approach. I have access to a relative good computer in the university: a i3 intel processor with 4Gb of RAM with a NVidia graphics board. With that, what need to be done it’s some self-training in this tecnology. I never coded in OpenCL before and the talk around here is that it’s really hard. I check it out with a few OpenCL tutorials and I have to agree with the guys: it’s really tough. A simple hello world pass through all kinds of concepts, from context creation, through devices association to kernel programming. Fortunately, I found a few books about it too.

Anyway, if you want to check it out the actual state of my simulation, the repository is hosted in my gitorious account. I did not allowed merge requests since the code it’s quite unstable, but it’s well commented and have some references if you want to understand it better. I’m already writting another post with the theory behind the simulation, doing a more extensive and well detailed explanation of the concepts (some few drawings and formulas for our enlightment :)

Until next round!

Veja também:
  1. Spread ALL the sand in the GSoC 2012
  2. A little understanding on Krita’s structure

The Hydra Bay: corte 1 fora e 2 novos aparecem!

Depois que um tribunal do Reino Unido decidiu bloquear o The Pirate Bay sob a (velha) acusação de que ele estaria violando direitos autorais, os responsáveis pelo baía pirata mais acessada da internet decidiram reagir a esse bloqueio oferecendo aos usuários a possibilidade de acessarem o TPB usando um proxy. Os piratas criaram uma operação especial com o nome de The Hydra Bay, uma referência à um animal da mitologia grega que tinha corpo de dragão e cabeças de serpente, que quando cortadas nasciam outras no lugar.

A Hydra Bay pretende ser uma estratégia de multiplicação de proxies e, consequentemente, de boicote à censura feita por diversos governos ao site do The Pirate Bay. Na página piratereverse.info, os piratas ensinam como se proteger da censura com o simples uso de um proxy, uma alternativa barata e eficaz. Os tutoriais são uma forma de “atacar o sistema com proxies”, como eles explicam na página da operação:

Esses guias foram criados no espírito d’A Hydra Bay. Na mitologia grega antiga, a hidra era uma serpente que possuía muitas cabeças. Hércules foi enviado para matá-la como um de seus doze trabalhos, mas para cada uma das cabeças que ele decapitava, mais duas cresciam. De certa forma, é o que nós estamos tentando fazer; ISPs bloqueiam o The Pirate Bay e muito mais proxies aparecem. 

Não poderia haver uma metáfora melhor para se referir ao movimento que defende o compartilhamento das informações. O TPB, que sempre foi uma grande referência dentro desse movimento, vem sofrendo ataques e censura desde o inicio de suas atividades. Mas a sua reação sempre foi similar à de uma cabeça de Hidra, se regenerar. Todos esses ataques não passaram de cortes nas cabeças do TPB, cortes que sempre resultam em novos recomeços e em cabeças regeneradas, prontas para uma nova batalha.

Na página do Facebook do TPB é possível também ver a mensagem:

WE ARE THE HYDRA BAY!
CUT 1 OFF, 2 NEW APPEARS!
ATTACK THE SYSTEM WITH PROXIES!

A grande mensagem que o TPB tem nos passado de 2006 até agora é a de que eles sempre voltarão e de que é inútil cortar suas cabeças fora. ;-)

Veja também:
  1. Occupy Wall Street: podemos na esquerda aprender alguns truques novos?
  2. É hoje – Várias cidades do Brasil dizem “Fora Sarney”!
  3. The Pirate Bay abandona torrents e adota links magnéticos
  4. As portas-fora: Ha ha! Charada você é!
  5. Anunciados novos cursos online da Universidade de Stanford

A little understanding on Krita’s structure

This last thursday Boudwewijn schedule a skype chat group to present the main concepts of the Krita development. It was really nice, since a more dynamic interaction was made with the students. It answered some doubts I had and important features was explained. It covered from the KDE and Calligra foundation of Krita to dockers and resource management of the software.

I am posting here a few notes about what I got from it and some notes on how I imagine some of these will affect directly in my project. If any concept that I wrote here is wrong, please, leave a comment correcting me. This would be really helpful and more than welcome!


Color Management

I am familiar with color models concept, but not so familiar with color spaces. This was a good point in the presentation. It clarified to me that I do not have to worry about how to deal with these spaces since the color management libraries take care of it. Although I have some interest to understand how to manage colors, I think I will have to leave that for another time.

Tiles

Krita tiles was a really new concept to me. After you talk about the advantages of divide the pixels in groups, it makes sense and we question ourselves why we didn’t though about that before. Dmitry posted in the mail group a nice article about the Krita tiles. I believe I have to take some time to discuss this point with him. In my project I’ll deal with a considerable amount of particles so a full understaning on this framework will garantee a better performance of the brush. In one of the books I’m reading, a improvement in the grain interactions performance is done with the division of the space in tiles, although is suggested to divide the 2D region or in uniform Voronoi tiles or in a hexagonal grid. I think that in a general way, the effects are the same for the application, so the tile form doesn’t play a mean role.

Data Structure and Image composition

This was one of the trickiest definitions of the presentation. In a program like Krita, which have a big amount of processing and operations done at pixels, it’s expected that we should have a not so straightforward data structure.

The base class of the image components is the KisBaseNode class. It takes care of other nodes, layers and selections of the image. However this class do not have anything to do with its peers. For that, we use a KisNode, which is the parent class for Layers and Masks. Along with that, every node has a representation of it, which we call the Projection of that node. It’s a rendered result of the layer, with the processed data applied. For the composition of the final image result, a multithread structure is behind each node. Then to produce the result in the parent node, the setDirty method will pass through all the way up to it.

I don’t know if in the future I will need to modify or create a new layer type since the feeling of live sandpainting would need a lot of updates in the canvas. I asked that in the chat group and probably I will not need to do it. For instance, the closest feature in Krita that deals with this kind of painting is the Deform Brush. It modifies the closest pixels several times and updates the canvas after each mouse movement, so it’s more or less what I wanted.

Canvas and Tool Handling

The canvas take care of the user interaction through mouse, keyboard and tablet, paints the decorations and the visible image results. It has two implementations: one based on OpenGL and another based on QPainter. I had to look directly on the code to understand this better, but i think the main reason to have two implementations is that if the user have OpenGL on his/her computer, a better perfomance widget can be used. Otherwise, the QPainter based canvas will be used. Both classes inherit from KisAbstractCanvasWidget, so both has to have the same event handling.

When we modify something with a tool, the canvas have a Tool Proxy, which manages the current tool. So, when we change from some tool to another, the native events are mapped to the newly chosen tool. Then, when the tool does a operation, it requires a canvas update so the user can get the result.

Painting

I didn’t have much trouble to understand this point. Pentalis helped me a lot in this part. I even made a simple paintop modifying one of the paintops plugins in the source code. The Chalk Brush have a simple implementation and it was easy to understand the code and modify it. Most of my doubts in doing it was in the underlying structure, like how paint devices and layers worked together, but the presentation answered most of it.

Filters, Resources, Imports and Exports

These features wasn’t so hard to understand. Filters have the usual concept and is applyed in a multi-threaded stateless way. It is implemented as plugins in Krita. Imports and Exports use the KoFilter class as base of the implementation and invokes KoFilterChain to do the sequence of operations to complete the conversions. Resources are managed using KoResourceServer and manages resources of one type at a time. To represent the resource itself we use a KoResource as base class.

That’s it

This was what I got from the presentation. I have some notes about other questions that came after, but I believe that I have to write it with more visual details to a full undestanding about what I’m working on. My particle simulation didn’t work as I was expecting and I have to spend some time debugging it. Pentalis suggested that, after the simulation is working, I write the positions updates in QImages so we could have the visual feel of the particles moving. After that, I have to formulate how I will do this visual feeling in Krita, but I believe that with this brief background I will be able to do it.

See you later!



			
Veja também:
  1. Spread ALL the sand in the GSoC 2012
  2. Krita 2.4 Lançado!
  3. Krita 2.4 RC : Em memória a Jean Giraud

LaTeX no Inkscape com TexText

Ano passado fiz uma série de relatórios em LaTeX e a maioria se utilizou de imagens em extensões png ou jpg, que são bastante úteis para mostrar saídas de processamento de imagens do tipo raster em operações de visão computacional.

Recentemente nas minhas aventuras no LaTeX me deparei com o problema de desenhar ilustrações para os meus textos, mais especificamente com o problema de colocar fórmulas em algumas imagens dos textos. Nunca senti tal necessidade antes. Além disso, vi que a utilização de gráficos vetoriais em textos escritos em LaTeX melhoram a visualização de detalhes da saída de alguns algoritmos.

Em uma breve pesquisa, achei uma interessante extensão para o Inkscape chamada Textext em que você escreve seu texto usando o padrão do LaTeX de tags de marcação de texto.


Usando o Textext para escrever fórmulas 

Supondo que o LaTeX já está instalado, instale também os pacotes pdf2svg e pstoedit. Então, para instalar o Textext, baixe o pacote e descompacte-a na sua pasta de extensões  ~/.config/inkscape/extensions.

O plugin está descompactado na pasta oculta de configurações do Inkscape:
~/config/inkscape/extensions

Ao iniciar o Inkscape após essa operação o plugin está em Extensões > Textext. Com isso, uma caixa de diálogo será aberta com as opções de escolher o arquivo de pre-ambulo para o LaTeX, o fator de escala do texto e o texto em si:

Após esse passo, basta clicar em OK e,se o texto escrito estiver com a marcação correta, será renderizado.

De gancho, estou escrevendo mais um tutorial sobre como usar o Blender para modelar gráficos e exportá-lo para o Inkscape. Assim pode-se usa-los em textos escritos no LaTeX ( que na verdade é a minha intenção) ou mesmo editá-los para trabalhos de design.

Por enquanto é só.  :)

Veja também:
  1. Saída CMYK no Inkscape
  2. Saída CMYK no Inkscape
  3. Cola de atalhos no Inkscape 0.47
  4. Cola de atalhos no Inkscape 0.47

É HOJE!!! Dia Internacional Contra o DRM!



Galera, hoje a Free Software Foundation convoca-nos para uma campanha internacional contra o DRM (Digital Restrictions Management). A campanha visa conscientizar usuários de tecnologias digitais a rejeitar produtos que utilizam o DRM, que acabam por impossibilitar o compartilhamento do conhecimento. Abaixo segue o post oficial da campanha, traduzido pela amiga Aracele Torres.

Dia Internacional Contra o DRM – 04 de maio de 2012

Enquanto o DRM tem sido amplamente derrotado nas músicas baixadas, é um problema crescente na área dos ebooks, onde as pessoas tiveram seus livros restritos de tal maneira que não podem emprestá-los livremente, revendê-los ou doá-los, lê-los sem que seja rastreado, ou movê-los para um novo dispositivo sem que seja necessário comprar todos eles novamente. Essas pessoas até tiveram seus ebooks deletados por empresas sem sua permissão. Isso continua a ser um grande problema na área de filmes e videos também.

Junte-se a nós no trabalho de eliminar o DRM!

Pessoas de todo o mundo vão estar mostrando a sua oposição ao DRM, e você pode se juntar a elas! Participe de um evento local e faça parte do Dia Contra o DRM em 4 de maio de 2012.

Além de participar ou organizar eventos, você pode se juntar a outros ativistas na blogagem sobre o DRM, colocando banners em seus sites e blogs, falando sobre DRM nas suas redes sociais e mais. Veja abaixo uma lista em evolução de todas as formas diferentes que você pode ajudar a conscientizar as pessoas.

Envie-nos as suas imagens de eventos anteriores — info@defectivebydesign.org

Matt, Josh, John and Richard
A Equipe de Eliminação do DRM

Coisas que você pode fazer hoje

Colocar um banner ou widget para o Dia Contra o DRM (ou fazer o seu próprio!)

Download de materiais 

Nós encomendamos um cartaz para o Dia Contra o DRM em 2012 de Brendan Mruk. Você pode usar sua imagem como base para seus próprios cartazes, ou baixar um dos nossos exemplos de cartazes. Nós também fornecemos uma fonte SVG para os cartazes, para que você possa fazer o seu próprio cartaz usando o Inkscape.







No Dia contra o DRM

  1. Compartilhe links em suas redes sociais sobre o Dia contra o DRM.
  2. Participar de um evento. Se não houver uma em sua região, crie!
  3. Identifique produtos defeituosos na Amazon. A Amazon tem “fóruns de marcações” também, onde as marcações sobre os produtos podem ser discutidas.
  4. Escreva um post explicando os problemas com o DRM e por que você não vai comprar nada infectado com ele.
  5. Escreva uma carta à sua biblioteca pública local e ao sistema de ensino, pedindo-lhes para abandonar o DRM.
  6. Faça um vídeo falando sobre os perigos do DRM e coloque em sites de compartilhamento de vídeo.
  7. Imprima o nosso cartaz do Dia Contra o DRM e exiba-o em sua biblioteca local, em seu trabalho ou escola.
  8. Você usa Netflix? Peça ao Netflix para abandonar o DRM em seus próprios shows, e para suportar streaming livre de DRM.
  9. Compre produtos e apoie artistas que estão falando contra o DRM.
  10. Deixe comentários nas avaliações de dispositivos infectados com DRM alertando as pessoas sobre eles.
Eventos anteriores

Envie-nos as suas imagens de eventos anteriores - info@defectivebydesign.org

Veja também:
  1. 4 de maio: Dia internacional contra o DRM
  2. Estamos fora do ar hoje em protesto contra #SOPA e #PIPA.
  3. Planeta PSL-PI contra SOPA
  4. BLACKOUT contra SOPA!
  5. Dia Mundial contra a Cyber Censura