Primeiro projeto com Arduino

Este semestre na faculdade eu estou fazendo a cadeira “Projeto em Computação e Música” e o meu projeto envolve dar uma brincada com diversas interfaces para se fazer som com o meu laptop velho de guerra.

Estou pensando em uma mistura de teclados (de computador), mouses, microfones, guitarra e um Arduino ligados no computador com um script ChucK no comando. No fim ainda pretendo tirar um som com isso. Loucura? Nah. Impossível? Provavelmente, principalmente com essa vida de universitário me tirando as noites de sono . No entanto eu estou me divertindo bastante brincando de fazer sonzinhos e de ligar fiozinhos com o Arduino.

Ontém eu fiz um projeto simples para aprender como funciona a interface serial do Arduino e como se faz um circuito com um botão. Ficou legal, eu fiquei super orgulhoso e o resultado pode ser visto no vídeo abaixo

Como fazer igual

É super simples e tudo que você precisa está nesses links.

O código que eu usei no arduino pode ser encontrado aqui.

Gambiarra atoi

Gambiarra não relacionada

Esta gambiarra é muito simples e útil. Ela existe por causa de um comportamento peculiar da função atoi. Como sabemos ela serve para converter uma string, que contém um número representado em decimal, para o seu respectivo valor do tipo int. A assinatura da função é esta:

int atoi( const char *str );

Acontece que existe um pequeno probleminha que ocorre quando, por exemplo, estamos usando atoi para ler alguma coisa que o usuário digitou:

#include <stdlib.h> 
#include <stdio.h> 

int main() 
{ 
 char buf[256]; 
 
 scanf("%s", buf); 
 printf("Li o numero %dn", atoi(buf)); 
 
 return 0; 
}

Tudo OK certo? Bem, como vocês sabem é totalmente possível que o conteúdo da string buf não esteja formatado como um número, podem ser letras, caracteres estranhos, o que você quiser. Nesses casos o que a atoi faz? Ela retorna 0 e fica por conta do programador repetir o teste até ter certeza que leu um número. Qual o problema então? Veja o exemplo à seguir:

#include <stdlib.h> 
#include <stdio.h> 

int main() 
{ 
 char *s1 = "42", *s2 = "errado", *s3 = "0";
 
 printf("string: %s n: %dn", s1, atoi(s1)); 
 printf("string: %s n: %dn", s2, atoi(s2)); 
 printf("string: %s n: %dn", s3, atoi(s3)); 

 return 0;
}

O problema é que o valor que denota uma string inválida é um valor de retorno válido e não temos como saber se o usuário na realidade digitou um 0 ou não.

… e a gambiarra?

A solução de verdade para o problema exige o uso de funções como strtol ou sscanf que fazem algumas checagens a mais na string e requerem um porquinho mais de esforço… mas quem sabe a gente não faz isso?

#include <stdlib.h> 
#include <stdio.h> 

int main() 
{ 
 char buf[256]; 
 int n; 

 scanf("%s", buf); 
 n = atoi(buf); 

 if (n == 0 && buf[0] != '0') // retorno == 0 e primeiro char nao eh 0 
 { 
     printf("String invalidan");
 } 
 else 
 { 
     printf("Li o numero %dn", n);
 } 

 return 0;
}

Gambiarra por gambiarra eu acho esta bem bonitinha, mas não funciona pra todos os casos e peço que vocês prefiram soluções mais robustas (a não ser que o programa seja para daqui a 2 horas :).

Este post faz parte da série Pequenos Programadores & Grande Gambiarras

Nova casa do blog

linesocode.wordpress.com mudou-se para blog.lfzawacki.com

Com essa mudança eu espero melhorar a infraestrutra do blog, aumentar o número de acessos que ele recebe e deixar o conteúdo mais organizado e completo.

Infelizmente agora é um momento em que estou terrivelmente cheio de coisas para fazer (e já faz quase um mês que estou assim) e esta mudança já tomou um tempinho considerável (porque sou n00b) no qual eu não escrevi nenhum post porque não queria continuar alimentando o “velho blog”. Enfim, isso é só a minha maneira de dizer que eu eventualmente vou acabar colocando mais conteúdo aqui, mas agora não.

Não, mas sério eu estou ocupado

Não, mas sério eu estou ocupado

Enquanto isto você talvez se interesse por alguns dos posts mais badalados da história do blog:

Alias… gostaram do design novo?

ChucK: Tempo, variável now e tipo dur

Tempo e a variável now

Voltando aos exemplos dados nos posts anteriores, observe as últimas linhas de código. Tem lá algo parecido com isto:

2::second => now;

O que ela comanda é bem intuitivo, avance o tempo por dois segundos. O now é uma variável especial que guarda o tempo atual de um processo ChucK e chuckar (uma tradução livre de to chuck que significa aplicar o operador ChucK) um número para ela significa incrementar o seu valor por este número. Este avanço no tempo é percebido pelo usuário porque todos os sons que estiverem sendo sintetizados e mandados para o dac serão ouvidos. Sem avançar o tempo o processo terminaria e não emitiria nenhum som. Isto é um conceito importante: o fluxo da cadeia de processamento só avança se o tempo avançar.

Sincronia

Para rodar código concorrentemente na máquina virtual podemos fazer:

chuck codigo1.ck codigo2.ck ...

Todos os arquivos dados como parâmetro para o interpretador serão carregados e rodados simultaneamente. A vantagem disto é que todas as ocorrências da palavra now, como observado anteriormente, serão tratadas como o tempo local de cada programa e quando os códigos rodarem concorrentemente estarão sincronizados de maneira perfeita (ou pelo menos boa o suficiente para ouvidos humanos).

Tome este código como exemplo :

//t1.ck SinOsc s => dac;
.5 => s.gain; 
// Std.mtof retorna a frequência de uma nota em notação MIDI 
while (true) { 
 Std.mtof(72) => s.freq;
  2::second => now;
  Std.mtof(80) => s.freq;
  2::second => now;
  Std.mtof(84) => s.freq;
  2::second => now;
  Std.mtof(80) => s.freq;
 2::second => now; 
} 

//t2.ck 
SawOsc s => dac; 
.5 => s.gain; 

while (true) { 
 Std.mtof(72) => s.freq;
  500::ms => now;
  Std.mtof(75) => s.freq;
  500::ms => now;
  Std.mtof(77) => s.freq;
  500::ms => now;
  Std.mtof(70) => s.freq;
  500::ms => now;
}

Rodando os dois juntos e fazendo a matemática simples, podemos perceber que eles deveriam tocar perfeitamente bem sincronizados e a cada quatro notas da melodia (t2.ck) o acompanhamento seria mudado (t1.ck). A máquina virtual do ChucK nos garante isso. Para testar, salve os arquivos e:

$ chuck t1.ck t2.ck

Este artifício é bastante útil para dividir nossos programas em pequenos pedaços não acoplados e obter a sincronia “de graça”.

O tipo dur

Escrever as durações do nosso processamento explicitamente por todo o código acaba ficando chato e criando programas de difícil manutenção e customização. No entanto podemos usar variáveis para dar uma ajuda. Olhe:

SqrOsc s => dac; 
.5::second => dur wait; 

while (true) { 
 55 => s.freq; 
 2 *s.freq() => s.freq; 
 1::wait => now;
  2 *s.freq() => s.freq;
  1::wait => now; 
 2 *s.freq() => s.freq;
 2::wait => now;
}

Note que nós podemos usar a variável wait de forma relativa, e apenas dizer “espere 2 vezes este tempo aqui”. Mais genericamente podemos dizer, “espere o tempo wait por n vezes” e mais genericamente ainda, podemos dizer que :: é um operador que recebe do lado esquerdo um número e do lado direito uma duração e resulta em uma nova uma duração. Parece complicado? Leia o exemplo anterior, rode ele. Escreva variações e tente entender. Pontos bônus: o valor à esquerda do :: pode ser uma variável?

Usando estes artifícios nós paramos de nos preocupar com o valor da espera em si e fica mais fácil de mudar o script dinamicamente. Os nomes second, minute, day e afins que já vimos nos exemplos são apenas valores pré-definidos no ChucK para facilitar nossa vida.

Referências

Conclusão

Depois dessa aula você já tem o básico para fazer alguns sons e ritmos legais com ChucK. Dê uma olhada nos posts anteriores e na documentação para continuar a partir daqui. Não se esqueça, é claro, de deixar comentários/críticas/sugestões.

No próximo post, funções e concorrência.

Extensão Vocal

Eis que nesta sexta-feira ao perder algum tempo pulando de vídeo em vídeo do youtube eu acho algumas pérolas que vou dividir com vocês. É uma série de vídeos feitos, aparentemente por algum tipo de pessoa maravilhosamente paciente & amigos, documentando a extensão vocal de diversos cantores – geralmente de rock.

Cada vídeo tem aproximadamente 10 minutos de trechos de músicas juntamente com um rápido comentário sobre a nota que está sendo atingida e afins. Gostei muito e achei os vídeos muito bem feitos e interessantes para quem é fã desses vocalistas. Incluo aqui alguns que me agradam bastante, mas existem muitos outros neste canal

Warrel Dane

Vocalista do Nevermore, uma de minhas bandas favoritas, que infelizmente nesta última semana meio que se separou. De qualquer forma esse cara é demais, indo desde os primórdios onde cantava bem agudo no melhor estilo heavy metal anos 80 até os álbuns mais recentes onde explora mais o seu registro grave.

Ronnie James Dio

O mito. O maravilhoso gnomo do metal que nos deixou ano passado , que é dono de vocais e melodias inesquecíveis e que será meu ídolo pra sempre.

https://www.youtube.com/watch?v=VvaeHL6KgKQ

Ozzy Osbourne

Nem precisa dizer nada desse cara né? O vídeo mostra momentos muito legais da carreira desse verdadeiro necromante do rock.

Enfim, curti demais esse canal. Este cara realmente merece mais do que os míseros 10k views que os vídeos tem em média. Dando uma olhada lá ainda tem muitos cantores, como Paul McCartney, Peter Steele, James Hetfield…

Definitivamente vale a pena!

Um gole de Wine

Este post é para você que fez a mudança do sistema operacional Windows para algum outro: Linux, Mac OS ou talvez alguma variante do BSD. Todo mundo que sai daquele mundo cheio de janelas sabe o quanto é difícil conseguir os mesmos resultados que você conseguia antes com o seu computador. É preciso descobrir todas as peculiaridades do novo sistema operacional, encontrar e instalar versões dos programas que você já usa, encontrar programas que substituam os que você estava acostumado e por aí vai.

O pior de tudo é que mesmo depois de ficarmos confortáveis no nosso novo sistema ainda sentimos falta daqueles aplicativos que adorávamos no Windows… principalmente se são aqueles joguinhos divertidos. Nesses casos podemos usar o Wine, um quase emulador de Windows que hoje roda muitas aplicações perfeitamente. Este post é uma apanhado de dicas para melhorar a sua relação com o Wine e possivelmente permitir a você rodar a maioria dos programas que quiser.

Antes de começar

É melhor que fique bem claro que o Wine não roda perfeitamente todos os programas do Windows, de fato existe alguns que não funcionam de jeito nenhum. Lembre-se porém que ele é um projeto de software livre e em constante atualização. Uma nova versão sai a cada 15 dias e aos poucos cada vez mais programas funcionam.

Que fique claro também que eu estou usando ele no Linux, mas as dicas servem também para os outros sistemas operacionais que rodam o Wine.

Instalado o Wine no Linux

Geralmente sugere-se que softwares devam ser instalados com o gerenciador de pacotes de sua distribuição Linux, mas na maioria dos casos você vai encontrar uma versão bastante antiga do Wine e isto dificilmente é o que você quer. Esse é o caso no Ubuntu, que é atualmente extremamente popular, a versão dos repositórios é a 1.2, muito desatualizada perto do 1.3.20 que é a mais atual no momento que escrevo isto. Então como conseguir a última versão? Nesta página. Apenas escolha a sua distribuição e siga as instruções.

Executando um programa

Após a instalação o seu navegador de arquivos deve associar os arquivos de extensão .exe ao Wine por padrão. Mesmo assim talvez seja bom saber que você pode executar um programa pela linha de comando assim:

$ wine programa.exe

Usando o AppDB

A primeira coisa que você faz quando quer rodar um .exe é executá-lo com o Wine. Caso isto não funcione o que você faz? Visita o AppDB. Aqui usuários do Wine podem criar páginas para todos os aplicativos que tentaram rodar e dar um nível (Lixo,Bronze,Prata,Ouro e Platina) para a qualidade da emulação. Além disso você vai encontrar diversas dicas de como fazer um determinado programa rodar, descobrir em qual versão do wine ele funciona melhor e por aí vai. Ele tem integrado junto um sistema de comentários e bugtracker para você postar dúvidas e acompanhar a trajetória do aplicativo.

Instalando o Winetricks

O Wine funciona porque ele é uma reimplementação de várias funcionalidades contidas dentro de arquivos .dll do Windows. Entretanto o Wine também pode usar alguns .dlls originais do Windows e algumas vezes isto ajuda determinados programas a funcionar. Para facilitar o processo de instalação destes arquivos e de algumas outras coisas como fontes, ou programas que vem na instalação padrão do Windows foi criado um pequeno programinha chamadowinetricks. Ele técnicamente não faz parte do Wine e é só um monte de utilidades reunidas num só pacote para ajudar os usuários.

É importante notar que usar o winetricks e sair cegamente instalando tudo pode estragar a sua instalação do Wine ou impedir alguns programas de funcionarem corretamente. Ele deve ser usado com moderação, geralmente como parte dos passos descritos no AppDB para fazer um programa funcionar.

De qualquer forma, aqui você tem instruções de como instalá-lo e usá-lo. Lembrando que usuários de Ubuntu já ganham ele de bandeja na instalação do Wine.

É isso

Espero que este post tenha ajudado vocês. Tomem um gole de vinho e deixem comentários, sugestões e críticas abaixo.

Hacker??!?

O WordPress tem integrada uma feature muito divertida que permite fazer o trackback dos termos usados em moteres de busca para chegar até o seu blog. Volta e meia eu dou uma olhada nestes termos e,  não me surpreendo de ver sempre coisas muito parecidas. Até aí nada novo, mas tem um padrão realmente chato que eu venho notando há tempos.

Deêm uma olhada aqui…

… e aqui …

… e mais este aqui …

Comecei a tirar estas fotos após ter começado a notar a tendência por buscas envolvendo a palavra hacker, mas não foram só três vezes. Obviamente todas estas buscas levam a este post e, julgando pelos termos usados na busca, estes n00bs aspirantes a cyber deliquentes ficaram decepcionados.

“May I join the dark side?” ou “Como mim tornar um Hacker?”

Todos que chegaram por meio de um motor de busca, leaim com força a partir daqui

Caso você tenha chegado neste blog procurando “aprender” a invadir computadores, obter informações sigilosas, roubar a senha de algum pobre coitado em uma rede social, etc… saiba que, primeiramente, você é uma merda.

Segundamente o termo hacker tem diferentes conotações dependendo de como ele é usado, e o que você estava procurando tornar-se não é o mesmo cara que eu estou falando. De fato eu (junto com muitos outros) sou a favor de chamar este tipo inferior de informata que usa seus poderes para o “mal” de cracker e raramente existe glória ou habilidade notável nessas pessoas, apenas oportunismo e má índole.

Terceiramente saiba que é hilário que pessoas como você façam esse tipo de busca e esperem conseguir algo mais do que ser ridicularizados por aqueles que sabem melhor.

Hey! Darth Vader, meu bróther! Me ensina aquelas manhas do lado negro da força?

Ele cortou fora a mão do filho dele por muito menos que isso. Imagina o que não ia fazer com um n00b como você…

Adivinha quem é o babaca de roxo na foto. Dica: você.

A New Hope

Entretanto pequena alma perdida, ainda é tempo de se redimir. A ignorância, incompetência e tudo que você tinha na cabeça quando fez essa busca são a morte para o seu cérebro, mas se você realmente quer aprender mais sobre computadores e se tornar uma pessoa realmente foda tudo que você precisa fazer é esquecer isso e começar a estudar agora. O meu injustamente popular e infame post pode ser um ponto de partida, mas sugiro que você leia o texto original que é um clássico da literatura hacker. O hacker de verdade.

Ausência

Oi como vão vocês? Eu vou bem. Primeiramente obrigado às pessoas que continuaram visitando o blog nesse período de ausência, um número mais ou menos constante de acessos.

A razão da Ausência

Vocês devem estar se perguntando… né? Bom, eu bem que disse em um post anterior:

Este novo semestre tem potencial para ser MUITO legal e eu acho que isso também pode refletir positivamente no conteúdo do blog.

Este potencial evento ao qual eu me referia rolou e rolou pra valer. No dia 18 de Março começou a corrida pelo Google Summer of Code, uma espécie de estágio maneiro, financiado pelo Google, em uma instituição escrevendo software livre. Desde este dia até as primeiras semanas de abril eu fiquei totalmente absorto estudando, lendo documentação, estudando e escrevendo a minha proposta de participação no programa e HEEEEEEEY eu consegui ser selecionado. O software o qual estarei contribuindo durante os próximos três meses é um velho conhecido de todos aqueles que precisam rodar aplicativos Windows em sistemas operacionais Linux (e mais recentemente MacOSX e BSD) – o maravilhoso Wine.

vinho bebe

Obviamente depois de ser selecionado eu fico com ainda menos tempo para atualizar o blog, mas eu pretendo dar notícias mesmo que sejam mais esparsas. Aliás talvez eu comece um blog paralelo, ou uma wiki ou alguma coisa assim para documentar o meu projeto junto com o Wine e daí aviso vocês ;)

Caso você me conheça pessoalmente e tenha ficado entendiado com o meu entusiasmo demasiado com o meu projeto do Google Summer of Code eu peço desculpas. Caso você me conheça e queira dividir esse entusiasmo e de quebra conseguir uma ajuda com o Wine eu peço que fale comigo.

O Twitter Egoísta

fail

Inspirado por este novo momento da minha vida resolvi parar de entrar no Twitter e perder mais de nove mil horas lendo bobagens e (sejamos justos) coisas interessantes. Eu estou precisando me focar mais e esse dreno de tempo não me ajuda em nada. Mesmo assim eu ainda tenho vontade de tweetar coisas e resolvi que vou usá-lo como um canal unilateral de divulgação e ignorar totalmente a minha timeline. Desculpem seguidores.

No mais eu ainda pretendo ler as mensagens encaminhadas para mim por lá.

Tocando teclado

Manda ver nas teclas

Para alegrar a minha vida, além de trabalhar, estudar e ler coisas interessantes eu comecei a treinar teclado e tocar numa banda – ainda sem nome – junto com uns parceiros meus. Estou me divertindo horrores, estes últimos dias tem sido muito interessantes musicalmente.

Você tem uma idéia para o nome dessa banda? Sugira no comentário e ganhe a crença em um deus onipresente. Entregamos em qualquer lugar do mundo!

Como acessar a Internet (um guia do ano 2025)

 

Traduzido de: http://blogoscoped.com/archive/2010-06-24-n15.html

Sugestão de correções nos comentários.

Bem vindo à Internet! Para garantir que a sua experiência seja o mais agradável e segura possível é preciso apenas seguir as regras abaixo!

VerdadeiraIdentidade

Tenha certeza, antes de se conectar, que você recebeu seu cartão VerdadeiraIdentidade das autoridades locais. Conectar-se à internet sem identificar-se é considerado ilegal desde a aprovação do Ato de Impedimento ao Anonimato de 2012, portanto é explicitamente necessário que os seus comentários, emails, posts e todo o resto estejam associados ao seu nome verdadeiro. Configurar a sua VerdadeiraIdentidade é fácil, visto que seu computador (MacOS 15 ou ChromeOS7 e superior) vai conectar-se automaticamente ao cartão mais próximo e bater o registro com seus dados biométricos. Não use óculos escuros, capuzes, lentes-de-contato e, por favor, barbeie-se antes do escaneamento biométrico começar. Não é recomendável realizar autenticação biométrica logo após uma longa noite de bebedeira.

Geolocalização

A Internet se divide em regiões de aproximadamente 120 países. Isso é feito para garantir que entretenimento apropriado seja servido a você e que você não irá encontrar conteúdo que seja perturbador. A sua geolocalização será determinada automaticamente a partir da sua posição ao fazer o login e, se for feita a confirmação do país registrado no seu cartão VerdadeiraIdentidade, está tudo pronto. Usuários dos EUA poderão desfrutar das ótimas reprises de séries protegidas por direitos autorais como Friends 2020; enquanto usuários de outros países podem ter outras preferências.

Um aviso aos viajantes: Antes de planejar uma viagem para outro país, certifique-se de retirar um visto de Geolocalização para poder acessar a internet a partir dos estabelecimentos desta nova região. Se preferir, vista seu cybertraje e descubra o país usando o Google Street View 3D Plus Touch. O Google Street View 3D Plus Touch só irá mostrar-lhe o que for autorizado legalmente na sua localização, logo é uma maneira excelente, inteligente e segura de descobrir novas e excitantes culturas.

Conectando-se À Internet Correta

As ofertas de conteúdo dependem da internet que você assina. Caso você tenha contratado a Internet GoogleAppleAmazon terá em um clique acesso a uma enorme biblioteca digital, muitos filmes, além de um conjunto aprovado de páginas pessoais. No caso de você ter contratado a Internet DisneyWarnerBrosViacom terá acesso a outra biblioteca digital, conjunto de filmes e páginas pessoais aprovadas.

Embora não possamos de forma geral recomendar uma internet em detrimento da outra, a rede goo:// é ótima para se fazer pesquisas e ter acesso a entretenimento barato (cachorros falantes), enquanto a rede dis:// possui a mais avançada experiência cinematográfica. Por exemplo, carregar o filme em Feel3D de 50 Terabytes “Wall-E Jr., O Retorno” demora apenas um décimo de segundo.

Conteúdo Adulto

Caso a sua VerdadeiraIdentidade certifique-o como tendo mais que 21 anos (30 em alguns países), você está autorizado legalmente a ver conteúdo adulto. Conteúdo adulto inclui pornografia e discussões em fóruns não moderados, bem como opiniões políticas, objeções a crenças religiosas, expressão artística e liberdade de expressão em geral. Mesmo tendo menos que 21 anos (30 em alguns países) você ainda é livre para discutir política e religião com seus familiares e exercitar sua expressão artística no conforto de sua casa (as leis locais ainda se aplicam).

Retirando Sua Carteira De Navegação Na Internet

Retirar uma Carteira de Navegação na Internet é um pré-requisito necessário em prol da segurança de todos na rede. Antes dos governos estabeleceram a necessidade legal da CNI, os internautas se achavam constantemente perdidos numa miríade de sites, inocentemente clicando em propagandas de “Acerte o Macaco e Ganhe um iPad” e sendo sufocados por janelas “pop-up”. A aquisição de sua carteira tipicamente demora entre 2 a 5 dias de aulas ministradas pela sua Escola de Treino de Navegadores local. Prepare-se cuidadosamente para a última prova, na qual você terá que apenas responder algumas perguntas simples como:

  • O que é um esquema em pirâmide e eles realmente funcionam?
  • Qual o procedimento correto para a troca das células solares em minha cyberluva?
  • Por que exatamente é ruim que as pessoas critiquem seus governos ou grandes empresas online?
  • Por que é ilegal navegar a internet sem o seu certão VerdadeiraIdentidade?
  • Em qual ano foi que a Google comprou a internet?

Colocação De Produtos

Como você deve saber, colocação de produtos e menção remunerada de produtos em textos e vídeos suplantou todas as outras formas de comerciais. Tenha em mente que – sem a colocação de produtos, a internet como a conhecemos não seria viável economicamente e não existiria! Todos os grandes provedores de conteúdo concordaram com a migração para a colocação de produtos em oposição às formas isoladas de propaganda no ano de 2014, e desde 2019, juntam-se a eles os políticos de mais de 80 países, salpicando seu discurso político com referências a produtos. Isto reflete em você como menos impostos para pagar e todos saem ganhando.

Jargão Técnico

Ao navegar, pode ser que você se depare com algumas abreviações específicas à internet. Caso você não esteja acostumado com estes termos técnicos, mantenha este glossário ao alcance ou carregue o seu módulo de extensão cerebral. As palavras são:

  • WWW – World Wide Web, ou em português, “Rede de alcance mundial” é uma expressão cunhada nos primórdios da rede. De lá pra cá ela caiu em desuso, mas ainda é empregada por alguns cidadãos mais antigos da rede. Da mesma forma que o comunismo, era uma ideia sedutora, porém completamente impraticável.
  • Vírus – Um vírus, frequentemente chamado de “vírus de computador” pelos mais antigos, é um programa capaz de entrar no seu chip cerebral e que estimula seus desejos de consumo. Se você se encontrar num supermercado e descobrir uma repentina vontade de comprar enormes quantidades de uma certa marca de cereais, isto pode ser causado por um destes “vírus de computador”. Este tipo de programa é totalmente ilegal; o estímulo de desejos de consumo por meio de chips cerebrais é uma atividade que exige aprovação do usuário e tem uma idade mínima de 6 anos.
  • LOL – O significado verdadeiro desta palavra foi perdido – você deve estar lembrado que o Ato de Limpeza da Rede de 2015 acidentalmente deletou um bocado de material arquivado – entretanto ela geralmente é interpretada como uma forma de riso (hoje a expressão também é usada no lugar de “Saúde!” como uma resposta ao espirro de uma pessoa).

Ganhando Dinheiro Com A Internet

Existem numerosas maneiras de ganhar dinheiro através da internet. Apresentamos aqui algumas atividades previstas por lei que podem te ajudar a levantar uma grana:

  • Você pode conseguir um emprego como Operário Cérebral e responder perguntas simples como “A pessoa mostrada nesta foto é um homem ou uma mulher?” durante 8 horas por dia. Responder a este tipo de pergunta ajuda a melhorar os algoritmos de classificação de dados de companhias como a Google.
  • Caso você seja sortudo o suficiente para descolar o emprego bem remunerado de Colocador de Ideias, você terá que explorar as partes da internet onde existem comentários e chats e influenciar as opiniões de terceiros fazendo elogios a produtos, pessoas ou ideias. O governo americano emprega aproximadamente 150.000 Colocadores de Ideias por toda rede.
  • Trabalhar como um Reescritor de Conteúdo. Todos os dias, artigos, imagens e comentários sem informação regional entram na rede. Antes destes poderem ser entregues até as redes geolocalizadas eles precisam ser reescritos para se adaptar aos requerimentos culturais e legais. Ao se tornar um Reescritor de Conteúdo será seu dever modificar este conteúdo, removendo as partes perturbadoras e reformulando aqueles trechos que, aqui e ali, podem causar dissonância cognitiva nos consumidores.

Encontrando Um Parceiro(a)

Estaria você solteiro e procurando um(a) parceiro(a)? Com base nos seus dados biométricos, sua renda, sua localização, bem como o no Comportamento Observado (CO) presente na sua Carteira de Navegação na Internet, podem ser sugeridas de 10 a 100 pessoas próximas a você. À primeira vista você pode imaginar que conhecer cada uma dessas pessoas será uma maneira tediosa de descobrir seu amor verdadeiro – quem tem tempo para encontrar essas pessoas se nem mesmo se pode saber se elas são homens, mulheres ou robôs, não é? – porém tenha em mente: a geração de seus avós não tinha nenhuma dessas tecnologias disponíveis e, mesmo assim, conseguia se apaixonar.

Dando De Cara Com Conteúdo Ilegal

Mesmo com a segurança que desfrutamos na internet hoje, podem haver momentos em que você encontrará conteúdo que você julgue desnecessariamente perturbador. Talvez algum relatório sobre conflitos políticos ocorridos em uma nação estrangeira o deixe chocado; talvez alguma nudez que acidentalmente passou desapercebida; talvez você tenha baixado uma versão de algum livro de 1990 antes de um Reescritor de Conteúdo ter a chance de corrigí-la. Certifique-se de denunciar estas páginas para as autoridades locais usando o botão Denuncia de seu sistema operacional. Uma equipe de profissionais da internet pode entrar em contato e pedir mais informações caso se faça necessário, bem como encontrar-se pessoalmente com você para verificar a integridade do seu equipamento de navegação de internet e o seu subjacente estado mental.

É Mais Fácil Do Que Parece

São muitas as informações necessárias para dar seus primeiros passos online, mas nós não queremos que você se sinta intimidado ao fazê-lo. A rede é uma experiência relaxante, racional e harmoniosa. Décadas atrás, quando a rede havia recém sido inventada, ela era um lugar de caos desenfreado. Opiniões dissonantes, infração de direitos autorais, conteúdo não geolocalizado, difamações feitas por grupos anônimos, software não autorizado e muito mais fluíam livremente pela internet. Olhando em retrospecto temos muita sorte de estar acessando-a em 2025 e não em 1995. Bem vindo à rede, e aproveite sua estada!

ChucK: Operador ChucK, UGens

Operador ChucK

Talvez o conceito mais importante da linguagem ChucK seja o operador => que é chamado ChucK. Ele serve, de uma maneira geral, para conectar dois Unit Generators. Estes últimos podem ser imaginados como se fossem um fluxo (de leitura ou de escrita) de áudio.

Esta abstração permite uma maneira bem expressiva de denotar uma cadeia de síntese:

// conecta o oscilador s no dac (a saída de áudio) 
SinOsc s => dac; 

// conecta um oscilador de onda dente-de-serra 
// no objeto Gain e depois no dac 
SawOsc so => Gain g => dac; 

// uma onda quadrada ligada num filtro 
// mudando os parâmetros do filtro podemos 
// fazer, por exemplo, síntese subtrativa 
SqrOsc sq => Filter f => dac; 
440 => sq.freq; //frequência da onda quadrada 
200 => f.freq; //frequência de corte

Usando o operador ChucK podemos montar redes de geradores de sinal, de uma maneira muito similar aos sintetizadores modulares. Além disso o operador => é sobrecarregado para ser usado como atribuição de valores, como pode ser visto nos exemplos, o que deixa a sintaxe da linguagem mais agradável e consistente.

Unit Generators

Unit Generators ou UGens são geradores de função que emitem sinais que podem ser usados como áudio ou como sinal de controle para outros UGens. Em ChucK eles são versões especializados do UGen orginal e portanto podem ser manipulados por meio de alguns comandos comuns, como por exemplo gain, op, channels, chan ,last, freq e outros.

Por padrão são definidos três UGens: dac, adc e blackhole que são respectivamente a entrada de som, a saída de som e um buraco negro que engole todo o sinal mandado para lá e não o repassa. Como visto na seção anterior, podemos conectar vários geradores entre si e a outros objetos para obter a cadeia desejada. Este sistema tem decorrências interessantes, como o código a seguir.

// conecta a entrada de som à sáida 
adc => dac;

Poderíamos facilmente estender esse código para adicionar algum processamento entre as duas pontas e por exemplo falar algo no nosso microfone e ouvir o resultado nas caixas de som. De fato, vou demonstrar isso agora, gravando o som de uma guitarra.

Fluxo normal adc -> dac

// conecta a entrada de som à sáida 
adc => dac; 

2::week => now; // avança o tempo "indefinidamente"

Clique aqui para ouvir (arquivo .mp3)

Fluxo adc -> Filtro Passa Bandas -> dac

// mesma cadeia, mas agora com o filtro 
adc => BPF filter => dac; 

// editando os padrões do filtro 
11 => filter.Q; 
440 => filter.freq; 

2::week => now; // avança o tempo "indefinidamente"

Clique aqui para ouvir (arquivo .mp3)

O efeito que foi aplicado é uma filtro que só deixa passar certas frequências intermediárias de uma onda, nesse caso centrei ele em 440Hz. Não é nada muito científico, só inventei uns parâmetros da minha cabeça aqui e testei. Parece o efeito que eu chamo de “som de telefone” por se assemelhar ao som que ouvimos quando falamos com alguém no (dãh) telefone. Algumas bandas usam umas versões mais complexas da técnica para dar uma tensão a mais. Veja aqui de 0:00 até 0:07 e ali à partir de 8:54 , por exemplo.

Isto demonstra de uma maneira bem simples como podemos construir cadeias de processamento usando o operador ChucK.

Referências

css.php