Rosetta Code

Se você está:

  1. Interessado em aprender uma nova linguagem?
  2. Aprendendo uma nova linguagem e pegando as manhas de escrever diversas coisas nela?
  3. Em dúvida se está escrevendo o seu pequeno algoritmo da maneira mais elegante ou correta?
  4. É um entusiasta das linguagens de programação e overall uber nerd programmer?

(Ok a última não se encaixa com o verbo está, mas f*dasse)

Então eu tenho uma dica legal para você. O site Rosetta Code visa ser um repositório para diversos programas escritos nas mais diversas linguagens para fins de comparação, aprendizado, aquelas intriguinhas sobre qual linguagem é melhor e por que não… para fins de diversão?

Por exemplo, vamos dar uma olhada aqui no código do BubbleSort, o mais famoso algoritmo ruim de ordenação de vetores. Temos ele aqui em:

Viram só? Que nome espertinho né? Eu ando usando este site bastante ultimamente para tentar aprender coisas novas apenas relacionando com tudo que eu já sei. Quem já programa em duas ou três linguagens diferentes acaba percebendo que os manuais longos e mastigados já não nos alimentam mais e o cerébro precisa de mais desafios… e aí estão eles, bom apetite.

O quê? Você não está afim só de ficar lendo? Já conhecia o site? Que tal então tentar contribuir com exemplos que ainda precisam ser escritos? Existem diversos ainda em aberto e eu mesmo pretendo contribuir com alguns da linguagem Lua com a qual estou me relacionando últimamente.

TuxGuitar e Timidity

Vocês provavelmente não sabem, mas eu tenho uma paixão secreta por escrever musiquinhas MIDI no computador. Seria uma paixão herdada dos tempos de jogatinas frenéticas de video-game? Não sei, mas vota em mim que eu te conto. Esta paixão data de meados de 2005 quando eu começava a engatinhar na minha formação musical (não que eu possa me considerar adulto agora :). Eu, guitarristinha juvenil, naturalmente descobri a magia das tablaturas de guitarra e o excelentíssimo GuitarPro 4 Demo, que naquela época dava o que falar.

De tanto brincar com o programinha acabei adquirindo uma certa destreza e afeição por este jeito peculiar de escrever música e estes dois só aumentaram com as subsequentes versões da ferramenta. É claro que este programinha têm um preço em $ (e bem salgado) o que tornava um saco ter que usar versões demo ou “alternativas”. Note, porém, que este texto está conjugado no passado por um motivo.

Lá pelos arredores de 2008 descobri este software absurdamente perfeito chamado TuxGuitar. Oh yeah, um clone livre como a liberdade do GuitarPro e que sabe manipular a maioria dos formatos de tablaturas encontrados por ai. Sejamos justos, ele não tem uma penca de features do GuitarPro (principalmente com esta versão 6 aí que eu nem estou familiarizado), mas quem usa sabe que ele é ótimo para escrever tablaturas. O que eu posso fazer, eu curto simplicidade. Tem versões pra Linux, Windows, Mac, torradeira, etc, etc

Timidity

Chega de falar do Tuxguitar, a segunda dica é mais para os irmãos do Linux. A verdade é que som nesse mundinho dos pinguins é uma bagunça, a coisa toda é um nojo e não dá pra ser feliz. Nos últimos dias me deparei com as argúrias de usar arquivos midi em diferentes computadores e com a inabilidade do Ubuntu de tocá-los corretamente. Bom eu cheguei numa solução que me deixou bastante feliz.

O Timidity++ é um programinha cabreiro que após instalado serve como backend para tocar os midis no Linux. Este fato por si só não resolve todos os problemas e embora provavelmente você consiga tocar todas as suas musiquinhas depois de instalá-lo pode acabar notando (como eu notei) que alguns insrtumentos não são sintetizados corretamente e a nossa música fica um lixo.

O que me leva a esta dica. Instalar soundfonts boas vai aumentar consideravelmente a qualidade do som produzido. Eu estou usando de maneira satisfatória estas aqui (mais precisamente a primeira).

Ok, mas o que acontece quando levamos o MIDI para um computador diferente? Ele vai tocar como lixo? Hah!

timidity seumidi.mid -Ov # cria um arquivo seumidi.ogg
timidity seumidi.mid -Ow # cria um .wav que pode ser encodado para .mp3
timidity seumidi.mid -OF # cria um .flac

Arquivos ogg, wav ou flac não vão ter este problema, mas é claro são muito mais pesados que os singelos midi.

Para questão de comparação vou disponibilizar um experimento feito com o output de arquivos .ogg no Timidity. Note que a o som que você está ouvindo foi sintetizado por diferentes computadores dependendo do arquivo que você escutar (no caso o meu para o .ogg e o seu para o .mid)

To liberando a música, que se chama Road to Babylon sob Creative Commons 3.0 caso alguém se importe :)

Curtiram o post? Leave your creative or interesting answers in the comments section belooooooooow

Everything by Everyone

Bom a preguiça de escrever aparentemente passou, mas como Murphy é um safado filhadaputa eu estou ocupado o suficiente para não ter tempo de escrever muito aqui. Mesmo assim me senti extremamente obrigado a fazer um pequeno texto aqui para vocês, por um pequeno motivo:

Everything by Everyone, um documentário sobre a história do newgrounds.com e a mídia independente na internet! Quem conhece um pouco da rede deve saber que site é esse. Deve saber também que antes do youtube era basicamente de lá que nós tirávamos nossos vídeos engraçados. É uma baita conhecidência que na semana passada eu estivesse pensando em escrever um texto sobre os primórdios do site com direito a reviews dos vídeos mais famosos e meméticos. Eu realmente adoro este site.

Sim galera, aí está um GRANDE pedaço da minha adolescência nerd. Isto e jogar ROMs de Pokemon com velocidades 300%… Em celebração a esta ótimo notícia eu já tenho no forno o post que eu falei no parágrafo acima, mas ele ainda não está no ponto, tudo em seu tempo :) Caso você queira saber mais o esquema é visitar o site oficial ou jogar este jogo feito para promover o filme.

Divulguem!

RS on Rails

Este sábado estive me divertindo assitindo a palestras e encontrando um pessoal gente boa no RS on Rails. Mais ou menos 140 pessoas (uma pra cada caracter em um tweet) ficaram a manhã e a tarde toda sentadas num auditório ouvindo algumas pessoas falando à frente de slides. Em minha defesa tenho a declarar que as cadeiras eram muito confortáveis, o coffee break estava farto, o pessoal empolgado e é claro, sedento por um pouco de Ruby e Rails.

Sinto-me obrigado a dizer que fiquei muito satisfeito com o nível das palestras. Tivemos um pouco de tudo, desde assuntos bem técnicos até empreendedorismo e psicologia. Para fechar com um clima de descontração (e velocidade) tivemos 5 lightning talks deveras interessantes. Talvez o único defeito do evento tenha sido a falta de café (o elixir dos programadores) para dar uma pilhada na galera que estava lá num sábado às 8:00 da manhã.

No mais é isso. Quem curte a linguagem Ruby deve se dirigir imediatamente para o GURU-RS, é o que eu estou fazendo agora.

Nos próximos dias tentarei ir em menos eventos de tecnologia e dar um pouco mais de amor para este blog, mas vocês sabem: faculdade, trabalho e blah blah

Take A Walk

Bom, tenho andado com uma preguiça danada de escrever… na realidade eu consigo sentar por alguns momentos e escrever fragmentos de textos para os meus blags, porém são só fragmentos e não vou publicá-los ainda.

No entanto vou escrever alguns posts com um estilo mais banal para me manter blagando, senão este espaço vai acabar ficando abandonado.

O que você nos traz hoje então?

walk

Este pequeno pedaço de arte em forma de game. O jogo se chama Take A Walk e é extremamississimamente simples e curto, para falar a verdade ele mal apresenta desafio e interação para o jogador. O interesse mesmo fica por conta da música original composta para o jogo e dos gráficos que combinam muito bem com o estilo proposto.

Basicamente você observa o personagem andando e reage apertando um botão para se desviar dos obstáculos ou coletar os itens. A reação está sincronizada com as nuânces da música tocada… e mais nada. Um conceito bonito e simples para ocupar alguns minutos desse seu dia e eu quis dividir isto com alguém.

Mais informações no site do autor

Blag eventualmente de volta à programação original

A Migração dos Penguins

viagem no tempo

Eu encontrei este texto que eu escrevi há mais ou menos um ano e que fala sobre a minha experiência migrando do Windows pro Linux. Como este é meu blog resolvi postar aqui, cápsula do tempo feelings:

A migração dos pinguins

Já sou aluno de ciência da computação há um ano agora. Finalmente depois de ler um artigo chamado “How to become a Hacker” (um nome bem sexy para Timmys) tomei vergonha na cara e verdadeiramente comecei a aprender um sistema operacional UNIX (GNU/Linux para fins praticos). Já estou a quase uma semana baixando pacotes, mexendo na linha de comando e até estou aprendendo o emacs (bóóóó).

Foi uma boa decisão me libertar do ambiente Windows, não apenas por questões éticas como defende o paladino Stallman nem pelas óbvias questões economicas, mas para me tornar um “Hacker” como falou eloquentemente Eric S. Raymond autor do artigo citado acima. Forçando-me a fuçar todos os caminhos que existem nesse sistema enquanto estudo as minhas linguagens de programação ou simplesmente baixos músicas e afins me torna um computeiro melhor e mais “poderoso”. No final das contas linux rocks mesmo.

O que eu sinto falta

Até agora nao consegui me adaptar bem aos editores de texto (preferia o meu notepad++ que ironicamente nao existe aqui), mas o emacs promete.

A famosa questão dos joguinhos é recorrente, porém FoF roda bonito aqui e essa semana eu fiquei viciado nesse garotão. Para todos os outros casos existe Wine (ainda nem tentei usar ele mas um dia eu pego junto) e o clássico XP instalado na outra partição.

Lembrete: salvar C x s

Fim do texto

Onde eu estou agora

Achei interessante ler isto, é sempre legal ver as coisas em retrospecto. Para fins de desambiguação, alguns fatos interessantes:

  • Ironicamente eu não fazia idéia da quantidade de editores de texto (para os mais variados gostos) que estão presentes no Linux;
  • Hoje em dia eu não uso o emacs, mas talvez um dia tente pegar ele de novo;
  • Sistemas UNIX e Linux em especial realmente rocks;
  • Nesse período eu experimentei OpenSuse, Debian e Ubuntu e por uma conjuntura de fatores sou adepto do último;
  • Já fiz maravilhas com o Wine;
  • Infelizmente ainda não me libertei da tirania do dualboot com Windows XP, mas quem sabe um dia…

FISL 11

Foto tirada por Cristiano Dalbem

Há duas semanas atrás 7511 nerds (geeks, viciados em tecnologia, ou qualquer que seja a nomenclatura) cientes do fenômeno do software livre se encontraram na PUCRS para aproveitar quatro dias de palestras incessantes e interação com outros membros da espécie. Eu estava lá é claro e vou escrever algo aqui sobre isto porque é o meu blog afinal de contas.

Atrações

Como de costume o evento teve um número descomunal de palestras, tratando de assuntos como: desenvolvimento, linguagens de programação, aplicações web, educação e inclusão digital, jogos, segurança e mais uma penca de coisas. É literalmente tanta coisa que fica impossível ver tudo que te interessa, mas mesmo assim se sai satisfeito de lá. Tivemos coisas como: palestras sobre HTML5, cursos de Git (dado pelo próprio Scott Chacon) e Ruby on Rails, computação e música, civic hacking, dispositivos móveis, referências a Star Wars, discussões sobre pirataria muito python e muito php, etc…

No mais, comunidades de desenvolvedores, muitos estandes com brindes (e café de graça em alguns :), palestrantes de alta qualidade e John Maddog Hall perambulando pra lá e pra cá. Um típico Fórum Internacional do Software Livre.

Fiquem espertos que as palestras vão ficar disponíveis para serem vistas na internet, provalemente neste link.

Fatos aleatórios

gnu

  • O FISL deste ano contou com a já esperada enxurrada de palestras voltadas para o desenvolvimento web, desenvolvimento ágil e etc, etc.
  • Quase ganhei um iPad num concurso do IG, mas perdi porque meu programa em python não capturou uma exceção :’(
  • Apresentei um pouco do trabalho que faço no PET no Workshop de Software Livre.
  • Projeto Cauã apresentado pelo Maddog parece uma puta boa idéia.
  • As palestras do grupo Transparência Hacker foram muito boas.
  • Este post tem uma quantidade obscena de links para você clicar.

Conclusão

Em suma, o negócio estava BALA. Se você não foi fique esperto para o ano seguinte. Não sou muito dado a escrever textos organizados e este é o resultado de tentar botar alguma coisa neste blog sobre o FISL11. Em breve (eu espero) mais updates bem interessantes.

Eu não sou um VJ da MTV

pppppesssoas

Um post rápido. Quero incentivar vocês a conversarem mais comigo sobre os assuntos que eu coloco aqui no blag. Quem me conhece pode me chamar para um papo. Caso contrário manda um toque no twitter ou até mesmo (wow) deixe um comentário aqui. Sinceramente se é para escrever todos estes textos para as pessoas só passarem os olhos e irem embora eu não sei se vale a pena.

A internet propicia coisas que a televisão e o rádio jamais sonharam. Um blog não é uma transmissão unilateral de informações, ou pelo menos não deveria ser. Um blog é uma conversa entre 2, 3, … N pessoas com interesses comuns. Quando eu escrevo algo neste espaço eu não me sinto um VJ da MTV, despejando minhas bobagens sobre as mentes indefesas de meninas com 12 anos, e resguardado pela segurança de uma tela de TV. Eu sou uma pessoa normal como todo esse pessoal da TV, rádio, cinema e até os novos fodões criados pela internet.

Por isso seu bandebixa criado a leite com pera leiam e dêem um sinal de vida, do contrário fica muito chato blagar nessa porra!

Pirataria é ilegal porque…

arr arr

Depois de voltar do FISL11 já me preparava para escrever um post básico resumindo tudo que eu fiz e vi lá (acho que este vai sair no meu outro blog quando me bateu uma vontade de comentar um assunto abordado em algumas palestras de lá.A amada e odiada pirataria.

Não aborde navios em alto mar

Em especial gostaria de citar a palestra do Sérgio Amadeu, que utilizou a temática Star Wars, slides furiosos e um discurso divertidamente eloquente para nos informar sobre a situação atual da briga entre internautas e temível império do copyright. Em breve atualizarei o post com um vídeo da palestra, mas por enquanto só imaginem. O que venha blagar aqui não tem muita relação com a palestra em si. É mais uma reflexão que eu fiz sobre o assunto todo e quis dividir com vocês.

Todos sabem que existem muito mais interesses na criminalização da violação de direitos autorais do que se pode imaginar à primeira vista, porém eu considero que existe um único motivo que é muito mais forte que o resto:

A maioria dos produtos da indústria de entretenimento é uma porcaria

Inclua aí a industria de cinema, música e videogames. Antes de eu continuar gostaria de deixar claro que eu não falo de uma porcaria no sentido subjetivo, ou seja, não estou depreciando alguns produtos por questão de gosto ou preferência pessoal. Estou falando dos que são realmente medíocres.

Pegue das músicas que são produzidas hoje as que valem a pena ouvir, que não são totais escarros da última tendência pop e que conseguem inovar em algum aspecto. Elas existem e não são poucas, mas estão fatalmente soterradas pelo mar de canções medíocres (sinto muito, mas essa palavra vai aparecer algumas vezes aqui :) atoladas de refrões pseudo-pegajosos que serão esquecidas dentro de alguns dias.

Tente vislumbrar como seria uma “briga” por atenção entre estas duas vertentes imagniárias da música: as criativas e as medíocres (comecei a falar apenas de música aqui, mas vocês sabem que games e filmes são totalmente análogos). É de se esperar que a mediocridade tenda a receber a maior parte da atenção, visto que está em maior número e geralmente apela de forma superficial para vários consumidores. A consequência natural é que produtos medíocres sejam mais comprados.

Esta era a verdade até pouco tempo atrás, ENTRETANTO temos hoje algo chamado internet. Este meio de comunicação descentralizado e livre permite a pessoas como eu e você encontrar muito mais facilmente aquelas pérolas que ficam sufocadas pelo mar de bosta da indústria. OK, mas o que isto tudo tem a ver com a pirataria? Veja bem, para a indústria o que realmente importa é obter o maior lucro no final do mês então é natural que se aposte na proposta do mediano, a produção é barata e existe a garantia de um mercado. Assim nascem as músicas, filmes e jogos recicláveis.

Infelizmente para esta indústria, parece que nós não somos TÃO idiotas e agora é possível encontrar, compartilhar e experimentar produtos de maneira gratuita. O impacto disto é uma diminuição do efeito “comprar o livro pela capa”. Você está poupado de aturar o CD horrível daquele artista que tem aquela ÚNICA música ótima porque você pode simplesmente ouví-lo antes para ter certeza de que você gosta mesmo daquilo.

ararar

Caso você seja um dos que acredita que a copia não autorizada de música é um “sumidouro” de dinheiro para os artistas, tente imaginar toda a grana que é gasta normalmente com entretenimento e observe que você não deixou de gastá-la só porque agora tem acesso à internet. De fato, o que aconteceu é que você mudou ONDE você gasta este dinheiro. Eu, por exemplo, compro um número considerável de CDs, DVDs, camisetas e todo tipo de produtos provenientes de meus artistas favoritos, artistas que eu realmente aprecio, artistas que eu conheci em grande parte PIRATEANDO suas obras. Sem esta última parte eu estaria comprando o que? DIUSTIN BIEBER eu acho… Em suma:

Pirataria é proibida porque…

as grandes indústrias do entretenimento querem obter lucros fáceis lançando produtos medíocres. Os consumidores querem gastar o seu dinheiro em coisas criativas, interessantes e memoráveis. Mesmo assim existe uma necessidade de conhecer como um todo o que o mercado oferece, nem que seja para que se perceba que aquilo que se vê é algo que não te atrai em nada. É isto que a cópia não controlada de mídias digitais permite, um maior espalhamento das preferências de entretenimento do indivíduo e uma subsequente maior exigência de qualidade por parte do mesmo, o que é obviamente prejudicial para esta indústria guiada pelos lucros e por nada mais.

fdp

Categorias e ChucK

catch

Neste semestre fiz uma cadeira na faculdade chamada “Categorias Computacionais” e o trabalho final, por assim dizer, consistia em escrever um artigo relacionando algum assunto “de fora da sala de aula” com o aprendido na disciplina. Bom, o título do meu artigo foi “Uma Abordagem Categorial para a Teoria Musical” e como deve dar pra ver no título, tinha música envolvida.

Sobre matemáticos e músicos e computadores

Basicamente Teoria das Categorias é um ramo de estudos que visa abstrair conceitos comuns à vários campos da matemática, então foi bem divertido tentar modelar estruturas da música para um formato mais matemático. Ao todo eu modelei notas musicais, melodias, tempos e escalas musicais e algumas operaçãoes que podem ser feitas sobre eles.

Claro, como eu imagino que vocês não estejam muito interessados na parte que diz respeito à matemática e, de fato, a minha abordagem tem como objetivo facilitar a manipulação dessas construções computacionalmente para que seja fácil de brincar. Por este motivo eu preparei alguns exemplos mais pragmáticos de como podemos usar esta generalização para construir música de uma maneira fácil e divertida no computador.

O código

No final das contas é um conjunto de exemplos bem simples utilizando a linguagem ChucK e um pouco da teoria que eu desenvolvi no meu trabalho. Quem se interessa por música e programação está fortemente convidado a dar uma olhada aqui. Além disso eu dei uma comentada esperta na maioria do código então quem está afim de aprender as manhas da linguagem ChucK também pode dar uma olhadinha.

Deixem comentários :)

css.php