As Portas da Percepção

Jun 25, 2018 8 min.

As Portas da Percepção é um (ou dois) ensaio do escritor Aldous Huxley que descreve com uma precisão poética os efeitos do uso da droga conhecida como mescalina, e se você tem vergonha na cara já deve ter se lembrado desse nome citado nas inúmeras vezes que assistir ao filme The Matrix. Quando Neo recebe uma visita que o acorda (“the white rabbit”) ele ainda parece estar dormindo. Sua visita e cliente conhece esse efeito: “mescalina!

SSL e seu limite de pacote

May 22, 2018 2 min.

O protocolo TLS/SSL tem por objetivo criar uma camada de criptografia assimétrica para a aplicação. E quando eu falo em camada não estou me referindo às camadas OSI. Nem às camadas TCP/IP. Isso porque o SSL não se encaixa em nenhuma das duas. Ele interfere com muitas, inclusive a aplicação. E aprendi isso a duras penas: na ponta do depurador. O pacote SSL tem um limite de 16 KB, ou 16384 bytes.

Boost Meta State Machine

May 21, 2018 4 min.

O Boost Meta State Machine (MSM for short) é uma das duas bibliotecas mais famosinhas de state machine do Boost. Ela é uma versão estática que permite incluir chamadas para as entradas e saídas de um estado baseado em eventos. A sua principal vantagem é poder visualizar toda a máquina de estado em um só lugar, e sua principal desvantagem é pertecer ao Boost, o que quer dizer que você vai precisar fazer seu terceiro doutorado e ler uma documentação imensa sobre UML antes de conseguir produzir alguma coisa.

Lista Ligada; tá ligado?

Apr 24, 2018 3 min.

Uma lista ligada é uma lista de alguma coisa. Essa alguma coisa podem ser inteiros, strings ou estruturas inteiras. Independente do que for, você vai precisar de uma estrutura. Sabe por quê? Porque existe além dos dados em si mais uma informação que você precisará guardar em cada elemento de sua lista: o próximo elemento. Sua estrutura pode ser simples e direta. Digamos uma lista ligada de idades vai ter o endereço do próximo elemento e o dado propriamente dito deste elemento (a idade):

Projeto Aluno

Mar 21, 2018 2 min.

Observar um estudante de computação (qualquer curso) lutando nos primeiros meses para conseguir fazer seus programas compilarem em C é um misto de emoções. É uma mistura entre risos, risadas e gargalhadas. Há vários motivos para isso, mas o principal, o que vem à minha mente sempre que isso acontece, é a eterna questão: por que a pessoa encontra fórum de programação para perguntar sobre variável mas não consegue ler duas páginas de um livro?

Contra o 'Array de 100 bytes é suficiente'

Mar 11, 2018 2 min.

Desde o C++ moderno (pós-03) o uso de arrays de tamanho fixo estão se tornando depreciados. E por um bom motivo: você nunca sabe realmente qual o tamanho que você precisa para um array de bytes até você saber. Daí a próxima grande questão é: “como gerenciar essa memória dinâmica de forma efetiva?”. E a resposta moderna sempre é: “não faça isso você mesmo”. Eis o porquê: #include <string.h> #include <iostream> char* LegacyFunction() { char* ret = (char*) malloc(100); strcpy(ret, "old old string"); return ret; } void WideStringFunction(wchar_t* mbString) { std::wcout << mbString << L'\n'; } int main() { char* legacyString = LegacyFunction(); size_t legacyLen = strlen(legacyString); wchar_t* convertedString = new wchar_t[legacyLen+1]; // espalhando a merda de alocar dinamicamente mbstowcs(convertedString, legacyString, legacyLen+1); WideStringFunction(convertedString); free(legacyString); free(convertedString); // espalhando a merda de desalocar manualmente } Quando lidamos com funções legadas elas se misturam de tal maneira com código novo que a merda da alocação/desalocação dinâmica manual vai se espalhando também.

PHP Experience 2018 Dia 2: Críticas

Mar 7, 2018 3 min.

Grades decepcionantes. O segundo dia do PHP Experience demonstrou pela qualidadade e teor das palestras pelo menos duas coisas: 1) a comunidade parece interessada em boas práticas e arquitetura (o que é ruim), 2) a comunidade parece mais interessada em “diversidade” que qualidade (o que é duplamente ruim). As palestras que frequentei foram: Construindo aplicações PHP com Twelve-Factor App Uma lenta e dolorosa peregrinação teórica sobre boas práticas de como desenvolver e entregar software… até esqueci sobre que tipo de software.

iMasters PHP Experience

Mar 5, 2018 2 min.

Meu primeiro post no blog sobre PHP. Já programei alguma coisinha no passado e meu amigo Strauss fez o blogue dele todo em php, do zero. Sim. Programador de verdade ele. Mas hoje quero falar sobre o iMasters PHP Experience, que tive a oportunidade de frequentar graças ao meu amigo T@z. Hoje foi o keynote e amanhã serão as trilhas. Este é um evento muito bem organizado e frequentado por centenas de pessoas.

Just the Arguments

Feb 27, 2018 2 min.

Just The Arguments, como o próprio nome diz, explora apenas os argumentos dos debates filosóficos mais relevantes na história da Filosofia, e também tenta na contemporaneidade se manter neutro ou equilibrado (como se isso fosse possível). Como conhecimento catalogado sua grande vantagem é servir como um guia, mais ou menos como a Enciclopédia de Filosofia de Stanford e com o atrativo da organização formal dos argumentos em premissas e a explicação de qual artifício de cada elemento de articulação foi usado (modus ponens, etc).

Caloni Palestrando Sobre Bitcoins Antes De Virar (Muito) Modinha

Feb 20, 2018 1 min.

Naquela época o bitcoin estava oscilando entre 3000 e 5000 reais. Dá pra acreditar? Faz muito tempo. Cerca de um ano. E hoje tem pessoas dizendo que o mundo vai acabar porque bitcoin caiu para a mínima de 20k. Aham. Porém, existe uma imensidão de questões no meio desses valores que é: o que, afinal de contas, é uma moeda digital? Essa minha palestra foi ministrada no Native Floripa 2017, no comecinho daquele ano acho.