Palestra Bauhinia: Wii Remote technologies for a sustainable world

Uma vez, eu quis ter um apresentador remoto (daqueles de avançar slide). Mas não quis comprar um.

Resultado? Um novo projeto de software, envolvendo sustentabilidade, Wii, Java, Bluetooth, pata-de-vaca, portabilidade e até JNI/bibliotecas nativas!

Links: Slides / GitHub

Esta palestra foi dada em 2015, em Caraguatatuba-SP, num evento internacional do qual participei. Raramente palestro em inglês, por isso considero este vídeo muito importante!

Discurso de formatura 2017

Enfim, publicado meu discurso de paraninfo na formatura da turma TADS 2014! Valeu, alunos, pela homenagem e valeu, IFSP, pela oportunidade!

Perdoem o choro da minha filhinha no começo do vídeo! Para não perder nada, segue abaixo a transcrição do discurso:

Ler mais

Reciclagem

O mundo não é nenhum mar de rosas. É um lugar sujo, feio e cruel.

Não importa quão durão você seja. Um dia, a vida vai te pegar de jeito.
Um dia, a vida vai enfiar a porrada na sua cara.
E você vai cair bonito no chão, exausto, sem esperança.

O negócio não é surrar a vida de volta;
o negócio é aguentar firme.
O negócio não é fingir que não é assim.
O negócio não é criar um mundo paralelo perfeito.
O negócio é seguir adiante, apesar de todos os males.

Não se faz o bem eliminando todos os males;
faz-se o bem APESAR de todos os males.

É chegada uma nova era.
É chegada a era de encarar a realidade, de igual para igual.
Buscar o ideal já não rola mais.
Irreverência e julgamento ficaram para trás.

O tempo é de aceitar, decidir, produzir.
As velhas facas já não cortam mais, estão cegas.
É hora de afiar, ressignificar, reciclar.

O novo sempre vem, não importa como a gente se sinta.
O mundo do sentimento infinito é um mundo vazio, solitário, improfícuo.
O mundo real é vasto, produtivo, comunitário.

Meios foram dados. Vida pede resultados.

Dissidências

A vida é feita de ciclos, já diriam os orientais. E chegam momentos de rompermos ciclos antigos para iniciar novos.

Esses momentos costumam ser meio dolorosos. Talvez porque eles nos remetam a outros momentos de rompimento, principalmente aqueles mais tristes nos quais a decisão não partiu da gente. Quando parte da gente, é mais fácil.

Separações, filhos saindo de casa, falecimentos, mudanças de cidade, de emprego, de estilo de vida… Tudo gera um sentimento de vazio, o vazio anteriormente preenchido por algo. Algo, esse, que talvez já não nos represente mais daquela mesma maneira, clamando, assim, por mudanças.

É como a árvore, que floresce, frutifica, deixa cair frutos… E os frutos espalham sementes que vão gerar novas árvores.

Todo mundo já deve ter ouvido essa analogia. Mas o que raramente passa pela nossa cabeça é que tudo o que existe hoje no mundo é resultado dessa mesma história. A situação atual sempre descende das situações anteriores. O status quo de hoje foi a dissidência de ontem.

Os pais de hoje em dia foram os filhos do passado que saíram das casas dos pais para formar novas famílias. Os colonizadores de um país são os filhos de uma terra que decidiram ir viver em outra, divergindo-se de suas origens.

Alguma bela árvore que talvez habite seu local de trabalho ou estudo também já foi uma pequena semente ou uma pequena muda um dia. A empresa em que você trabalha hoje talvez tenha sido criada por ex-funcionários de outra empresa, que talvez tenham saído desta por não concordarem com tudo o que acontecesse por lá.

Alguns se enraízam em suas origens, mas já imaginou se todos o fizessem? Seu amigo não teria vindo morar na mesma cidade que você, seu local de trabalho atual talvez não existisse, seu próprio trabalho e sua área de atuação talvez não existissem.

Tendemos a divergir de nossas origens, em maior ou menor grau, num processo às vezes tranquilo, às vezes doloroso, porém necessário, que promove a continuidade do mundo.

Crescei-vos e multiplicai-vos, já nos disse o Mestre. Assim a vida segue seu caminho, em escala exponencial, não nos perguntando muito se a gente está tranquilo com isso ou não. Simplesmente, acontece.

Protagonismo no aprendizado

Alguns alunos têm a postura de querer aprender o conteúdo, entender os porquês e se virarem sozinhos. Quando erram um exercício, vêm querer saber o porquê e entender o que devem fazer para acertar futuramente.

Alguns alunos têm a postura de querer decorar quais são as respostas certas para poder repeti-las nas provas. Quando erram um exercício, às vezes vêm pedir para o professor simplesmente aumentar a nota. Às vezes, vêm querer saber qual resposta seria a certa para poderem decorar de novo e acertar futuramente.

O primeiro tipo mencionado está mais focado no processo para se chegar a um resultado. O segundo tipo está mais focado em entregar “o que o professor mandou”. Assim, “o professor vai me passar de ano”. Assim, “meu chefe vai me subir de emprego”, “meus pais vão ficar felizes” etc.

O primeiro tipo está sendo protagonista de sua aprendizagem. Ele espera poder caminhar sozinho, sendo capaz de dar respostas e de formular perguntas. O segundo tipo está sendo coadjuvante. Ele espera que alguém lhe diga o que fazer, para que ele apenas faça, sem questionar.

A primeira postura obviamente leva a um aprendizado e autonomia muito maiores. Então, por que muitos alunos agem como coadjuvantes?

Há muitos possíveis motivos. Pode ser falta de engajamento, desmotivação… Pode ser apenas uma questão de não se identificar com o estilo da aula, algo que pode ser simplesmente ajustado. Ou pode ser por motivos mais sérios, como traumas de infância ou sociais. Nesses casos, a coisa vem de muito antes de o aluno ter entrado na escola. É uma postura de vida.

Há pessoas que sempre foram incentivadas pelos pais e/ou pela sociedade a serem protagonistas, responsáveis, terem voz ativa. E há pessoas que não receberam esse incentivo, ou receberam o incentivo oposto: “não enche o saco”, “cala a boca e vai trabalhar”, “eu é que mando aqui” etc.

Não é nenhuma surpresa ou novidade. A TV e a estrutura social ensinam todos os dias à população que ela não decide nada, pois tudo já virá “pronto para consumo”. A ordem é “trabalha aí e ganha o seu”, para poder comer umas migalhas dos ricos. Ou para consumir produtos especificamente criados para as camadas inferiores para mantê-las sob controle. Por que você acha que existem salgadinhos cheios de toxinas vendidos a preços baixíssimos, programas altamente sensacionalistas na TV aberta, empréstimos a juros altíssimos com parcelas baixíssimas e coisas parecidas?

Você acha que um aluno que tenha tido uma história repleta dessas coisas vai conseguir simplesmente “fazer diferente”, “ir lá e ter outra atitude”?

Imagine uma sociedade inteira ensinando ao cidadão que ele não é um cidadão. Quantos bloqueios mentais essa pessoa já acumulou que precisariam ser desfeitos? Quantos “participem mais da aula!” um professor terá que dizer até essa pessoa acreditar e começar a agir assim?

Eu não tenho uma solução para isso. Mas, se existe um caminho para a mudança, esse caminho passa por muito além da escola. Para que cada pessoa possa estar no centro de sua própria vida, vamos precisar repensar indivíduo, família, vizinhança, meios de comunicação, saúde, exemplos, referências, objetivos de vida… A sala de aula é apenas um reflexo do mundão lá de fora e do mundinho de dentro de cada um.

Gerações

Tem muita discussão sobre a geração atual das pessoas por volta dos 18 anos. Embora tenha hoje 31, portanto pertença a uma geração mais velha, sinto que eu me encaixo um pouco nessa de ficar buscando fazer sempre o que gosta, não ter muita tolerância para emprego chato etc.

Eu cresci num mundo tecnológico, tive contato com isso um pouco antes da maioria das pessoas. Talvez por isso mesmo eu tenha enjoado um pouco antes da maioria das pessoas, e por isso hoje eu não tenha muita vontade de ter WhatsApp, Facebook etc.

Uma vez vi uma pessoa próxima que tem uns 60 anos maravilhada mandando um vídeo ou foto pelo WhatsApp. Achei interessante a reação dela. Refleti um pouco e lembrei que eu fiz isso pela primeira vez em 1999, no ICQ, e, na época, eu fiquei maravilhado, também.

Muita gente compartilha vídeos pelo YouTube, por exemplo de jogos, e acha isso fenomenal. Outro dia eu lembrei que, em 90 e qualquer coisa, eu gravava fitas VHS dos jogos que eu alugava na locadora para levar no dia seguinte para um amigo meu ver e a gente ficar discutindo.

Provavelmente seja por isso que eu não me surpreenda tanto com os avanços tecnológicos. Já tive minha fase e meio que passou, principalmente porque eu andei percebendo outros problemas do mundo bem mais sérios e vendo que eles não estão nada resolvidos: questões políticas, sociais, ambientais, psicológicas… São questões muito mais antigas e complicadas do que as tecnológicas.

Sinto que a história vive se repetindo, e que as discussões, no fundo, são sempre as mesmas. O tempo passa e o ser humano sempre volta às mesmas questões fundamentais. Um grupo fica tentando mostrar que o caminho certo é X, o outro fala que é Y, o grupo A discute com o grupo B, ambos querem ter razão, ninguém cede, até que a coisa vai ficando feia e um começa a falar mal do outro pelas costas ou eles se enfrentam de maneira violenta, guerras surgem etc.

Acho que o mundo não precisa ser mais rígido ou menos rígido, as gerações não precisam ser mais de esquerda ou mais de direita, mais independentes ou não, mais exigentes ou não. Cada um é como é, cada época tem suas características e a gente se ilude achando que tem muito controle sobre isso. Cada um tem controle sobre si mesmo, e olhe lá. A gente pode educar os filhos de uma ou de outra maneira, e olhe lá.

O que é melhor para o mundo? Ninguém sabe direito. Cada um tem sua verdade. Sempre tenho chegado à mesma conclusão: cada um tem a sua verdade, que construiu com o que viu acontecer em sua própria vida. A verdade de cada um serve para si e para algumas outras pessoas. Consenso é muito difícil de alcançar.

E as gerações novas vivem repetindo os erros das anteriores… Os filhos querem se rebelar, querem fazer tudo diferente do que os pais fizeram, mas no fim só dão nomes diferentes para as mesmas coisas, negam o conhecimento vindo pronto dos pais e vão atrás de tirarem suas próprias conclusões. Acham que estão seguindo caminhos totalmente diferentes, e, no fim, dá quase na mesma, e vão concluir as mesmas coisas que os pais já sabiam.

Antes eu achava que esse processo era meio tosco, ineficiente. Mas atualmente tenho achado que simplesmente é assim que funciona. Muitas coisas a gente só aprende dando a cara a tapa e se ferrando. Mesmo que alguém já tenha se ferrado antes, às vezes a gente prefere passar por aquilo de novo, a gente quer ter nossa própria experiência para aprender com ela. Talvez viver a própria vida seja exatamente isso.

É claro que há o conhecimento acumulado pela humanidade e há avanços, sim. Antigamente, mostravam imagens na TV de trator destruindo floresta e chamando aquilo de progresso; deficientes físicos e mentais eram trancados em casa e escondidos da sociedade. Hoje, é diferente. Muita coisa melhora, sim. Às vezes, mais devagar do que a gente gostaria.

Problemas e soluções

Na última sexta-feira, 30/06/2017, eu vi… Eu vi uma luz no fim do túnel. Chamava-se TCC.

Mas não o TCC famoso, o famigerado Trabalho de Conclusão de Curso; foi o Tiny C Compiler. Pela primeira vez na vida, eu vi um compilador para a linguagem C pequeno, rápido e leve. Ele ainda tem a funcionalidade de executar código-fonte diretamente, como um interpretador de scripts, algo bem interessante.

Outro ponto extremamente positivo é que ele funciona no Windows. Aliás, ele simplesmente funciona: basta baixar o zip, extrair, rodar tcc.exe e pronto. Nada de MinGW, MSYS, cygwin e outras tranqueiras complicadas de instalar e configurar. O Windows é um SO explicitamente negligenciado por boa parte da comunidade de desenvolvimento de software. Dizem que a solução é criar máquina virtual – e eu sugiro VirtualBox com Linux Mint XFCE. É, após baixar alguns gigabytes e instalar tudo, realmente funciona bem.

Já o TCC tem apenas 389KB zipado e 1,53MB extraído. Como eu disse, nunca tinha visto um compilador tão pequeno. Ele também é quase 9 vezes mais rápido do que o GCC e produz código de saída super pequeno, também. Um ola-mundo.exe gerado pelo Visual Studio tem 8,5KB. Já o mesmo programa compilado com o TCC tem 1,5KB – mesmo tamanho da versão em Assembly (testei usando o MASM32 SDK).

Também experimentei fazer um Olá, Mundo em Go e deu 1,6MB. Em Rust, 3,6MB. Em JavaScript, usando NodeJS e a plataforma de distribuição Electron para gerar um executável distribuível: 127MB.

Pois é… Estamos vivendo a era do hardware barato. E de seu desperdício.

  • Para que usar apenas 1,5KB se a gente pode fazer em 1,6MB, 3,6MB ou 127MB e o hardware aguenta?
  • Por que uma tarefa rápida como compilar um programa trivial deveria rodar em 5 milissegundos se a gente pode fazê-lo precisar de 90?
  • Para que armazenar pequenos arquivos localmente se a gente pode criar bancos de dados NoSQL em nuvem a torto e a direito e gastar alguns Mbps de conexão de internet com isso?

Fera mesmo eram os programadores de jogos dos consoles antigos… Aqueles, sim, tiravam leite de pedra. Não havia outra opção: hardware extremamente limitado, programação só em Assembly. Ou fazia assim, ou não fazia.

O Atari, por exemplo, tinha 128 bytes de memória. Não são megabytes nem kilobytes, são BYTES! E dava certo. Não sei como, mas dava! Provavelmente, cada bit era muito bem aproveitado.

Já a gente aqui, em 2017, vai seguindo a vida, gastando mais de 1MB e mais de 270 milhões de ciclos de CPU apenas para dizer oi para o mundo… E achando isso normal.

Isso NÃO é normal. Isso está muito errado. As pessoas estão muito longe de conhecer o verdadeiro poder de suas máquinas. Estamos apenas comendo migalhas perto do que realmente poderíamos fazer.

Ao questionar esse assunto, às vezes a explicação que vem como resposta é que precisamos resolver os problemas grandes. E, que, para esses problemas, as ferramentas que temos funcionam bem. Ou seja, o importante é que o GCC compile código gigante em um tempo longo (em vez de muito longo); o importante é que um programa gigante em Go ou Rust fique com centenas de megabytes (em vez de vários gigabytes). Em outras palavras: “temos que sacrificar as pequenas aplicações em prol das grandes aplicações, que são as que realmente importam”. Engraçado… Onde é que já ouvimos esse discurso antes?

Eu tenho uma visão diferente. Eu acredito que todos podem ser bem atendidos. Não existe essa tal “decisão difícil” entre os grandes e os pequenos problemas. O que existe é para onde queremos direcionar nossos esforços. Os grandes problemas já estão sendo resolvidos por gente capacitada. E os pequenos? Também estão? Bom, o TCC está aí para nos ajudar a mudar esse cenário.

Vejo um futuro em que, tanto quanto já temos acesso a programas grandes e pesados para resolver problemas grandes e pesados, teremos acesso a programas pequenos e rápidos para resolver problemas pequenos e rápidos. E, assim, todos serão mais bem atendidos nesse mundão de Deus, cada um dentro da sua necessidade.