Posts
Metais e Reflexos
Ontem terminei todos os desafios Elixir do meu bootcamp.
Hoje vou retomar o capítulo 9 do The Weekend Ray Tracer Challenge, onde aprenderei como renderizar superfícies reflexivas.
Posts
Tesla Bypass
Ontem comecei os desafios Elixir do meu bootcamp. Aprendi a usar Tesla para lidar com requisições de API e Bypass para testá-las.
Eu realmente gostei do Bypass porque ele cria um servidor local que lida com a solicitação http durante o teste. É muito fácil de usar: você apenas declara em seus testes e definir a resposta de um endpoint arbitrário. Isso é muito melhor do que usar mocks ou VCRs de API para testes já que o Bypass realmente faz a solicitação e não é uma solução ad-hoc.
Posts
Esferas e Listas Vinculadas
Fiz muitos progressos no Weekend Ray Tracer. Estou no capítulo 9 e aprendi muito sobre o processamento de imagens:
Criei uma biblioteca robusta de álgebra linear cheia de funções uteis. Abstraia muitas das funções de um ray tracer em módulos (raios, câmera, cor, geometria, registro hits, matemática, números aleatórios, etc.) Aprendi como colorir superfícies pela normal da interseção com o raio, que faz uns efeitos bem psicodelicos: Aprendi como lidar com vários objetos em uma cena usando apenas listas linkadas, meu recorde é de 3000!
Posts
Renderizando bitmaps
Ontem comecei o desafio Ray Tracing em um fim de semana , e estou gostando muito. O autor vai direto ao ponto sem emburrecer muito o tema: Estou no terceiro capítulo e já gerei gradientes e tracei esferas.
Você pode verificar meu progresso em neste repositório. Tenho uma galeria cheia de imagens bonitas, e estou sempre adicionando novas fotos.
Eu também fiz uma biblioteca .
Posts
Ray Tracer in a Weekend
Ontem estudei Elixir e aprendi novos truques de sintaxe como Comprehensions.
Hoje estou refatorando e reestruturando meus projetos. Também estou escrevendo READMEs bonitos para cada um.
Eu li a primeira parte do livro The Ray Tracer Challenge, e acho que é um pouco denso para começar.
Eu vou fazer Ray Tracing em um fim de semana primeiro porque é mais curto e tem exemplos de código. Vou implementar tudo em C, e vou começar com a biblioteca 3dvector.
Posts
Elixir in Action
Ontem terminei os desafios Elixir do meu bootcamp.
Hoje vou ler alguns capítulos do Elixir in Action e começar o miniRT.
Posts
Phoenix
Ontem terminei um módulo Elixir do bootcamp que estou fazendo com seus respectivos desafios: Criei uma API da web Elixir com Phoenix.
Phonenix é um framework web muito bom para Elixir, e segue muitas das convenções que o Rails estabeleceu. Se você é um desenvolvedor de rails e está procurando aprender programação funcional tenho certeza que você vai adorar Phoenix e Elixir.
Hoje vou terminar os desafios e limpar alguns dos meus repositórios git (adicionar ações do github, melhorar os READMEs, etc.
Posts
Fundamentos de Ray Tracing
Ontem terminei alguns desafios do React do bootcamp que estou fazendo. Também aprendi sobre Hierarquia de volume delimitador e a Equação de renderização.
Uma Hierarquia de volume delimitador é uma estrutura em árvore que delimita os objetos que precisamos renderizar em uma cena. Cada nó nesta árvore é um objeto que podemos ter que renderizar, ou um objeto virtual que contém mais de um objeto.
Se lançamos um raio e atingirmos um nó na árvore sabemos que só precisamos verficar se o raio atinge algum dos objetos abaixo desse nó, reduzindo a quantidade de objetos que precisamos verificar.
Posts
miniLibX
Ontem fiz todas as três avaliações e concluí ft_printf. Foi um grande projeto, meu primeiro marco na 42: Foi a primeira vez que me senti devidamente desafiado e fora da minha zona de conforto.
Instalei a VM oficial da 42, que é usada em todos os projetos daqui em diante. Foi muito mais fácil do que pensei que seria. Não vou usá-la para desenvolvimento, pois tenho Ubuntu na minha máquina e os pacotes são totalmente compatíveis; Vou apenas usá-la para testes e avaliações.
Posts
Zerei o printf
Ontem eu consertei todos os bugs no meu printf. Agora está passando em todos os testes e farei minha primeira avaliação hoje.
Eu aprendi muitas das diferenças entre as implementações de printf do Linux e do MacOS:
O Linux não lida com flag de precision para string "(null)". Linux imprime "(nil)" quando a conversão %p recebe um ponteiro NULL. Hoje vou fazer todas as avaliações do meu printf e começar a pesquisar o próximo projeto: MiniRT.
Posts
Formattando strings
Ontem eu implementei a formatação de strings no meu printf. Achei que a formatação da string demoraria mais, mas é muito mais fácil do que lidar com ints: A precisão apenas delimita quantos caracteres você imprime, e há muito menos combinações de sinalizadores com que se preocupar.
Agora está passando em 95% dos testes. Os que não estão passando são principalmente devido a diferenças entre as implementações MacOS e Linux de printf.