Section: Busca Avançada

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.

Vcpkg: gerenciador de libs c++ para Linux, Mac OS... e Windows!

May 18, 2018 2 min.

Usar o vcpkg no Windows é tão simples que parece mágica. Ou Linux. Para instalar você só precisa seguir o passo-a-passo do GitHub deles e usar PowerShell. O prompt PS faz tudo automático. O vcpkg é basicamente um conjunto de CMakes que fazem o serviço direito e conseguem compilar quase 1000 libs, a maioria nascidas no Linux, e integrar diretamente com projetos do VS2017. Para provar todo o seu poder vamos usar a pior lib de todas: GTK.

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.