Waine - Dev do Desempenho
Waine - Dev do Desempenho
  • 130
  • 225 674
Doom rodando na GPU: como? (portaram um SO pra GPU só pra isso)
Acabaram de portar Doom pra GPU e nesse vídeo vou mostrar a gambiarra e dificuldades por trás de tudo isso.
LIVES: Toda terça e quinta as 21h
COMUNIDADE DO DESEMPENHO: discord.gg/NNuzYsNPjV
SEJA MEMBRO: ua-cam.com/channels/Ndd-FYANxk0DIvGhXVnMIg.htmljoin
Vídeos exclusivos, lives salvas e canal no Discord só para membros!
LINKS
Doom para GPU: github.com/jhuber6/doomgeneric
LLVM RPC de GPU: github.com/llvm/llvm-project/blob/main/libc/docs/gpu/rpc.rst
REDES
Site: www.wainejr.com/
Instagram: waine_jr
TikTok: www.tiktok.com/@waine_jr
GitHub: github.com/wainejr/
Discord: discord.gg/NNuzYsNPjV
00:54 Comunidade do Desempenho!
01:21 Conversa entre GPU e CPU
03:21 Jogos em GPU? Impossível
04:19 Da GPU para CPU
05:58 Código
06:53 RPC: A mágica por trás
09:44 Como funciona o RPC?
Переглядів: 1 010

Відео

O que é um driver? (você mesmo pode fazer um)
Переглядів 2,9 тис.16 годин тому
Driver no fim do dia é só um programa que comunica dois dispositivos, e fazer um é mais simples do que você imagina. LIVES: Toda terça e quinta as 21h ENTREM NO DISCORD: discord.gg/NNuzYsNPjV SEJA MEMBRO: ua-cam.com/channels/Ndd-FYANxk0DIvGhXVnMIg.htmljoin Vídeos exclusivos, lives salvas e canal no Discord só para membros! LINKS Datasheet Arduino UNO: ww1.microchip.com/downloads/en/DeviceDoc/At...
LEDs não passam de Ponteiros (IO em memória + Zig)
Переглядів 1,6 тис.День тому
No fim do dias os nossos LEDs não passam de endereços de memória LIVES: Toda terça e quinta as 21h ENTREM NO DISCORD: discord.gg/NNuzYsNPjV SEJA MEMBRO: ua-cam.com/channels/Ndd-FYANxk0DIvGhXVnMIg.htmljoin Vídeos exclusivos, lives salvas e canal no Discord só para membros! LINKS Datasheet Arduino UNO: ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Data...
GERAR CÓDIGO »»» ESCREVER CÓDIGO (metaprogramação nível hard)
Переглядів 85821 день тому
Por que escrever código se você pode gerar? LIVES: Toda terça e quinta as 21h ENTREM NO DISCORD: discord.gg/NNuzYsNPjV SEJA MEMBRO: ua-cam.com/channels/Ndd-FYANxk0DIvGhXVnMIg.htmljoin Vídeos exclusivos, lives salvas e canal no Discord só para membros! LINKS Sympy: www.sympy.org/en/index.html Jinja2: jinja.palletsprojects.com/en/3.1.x/ Mako: www.makotemplates.org/ FluidX3D: github.com/ProjectPhy...
Acendendo LED no VS Code (ESP32+PlatformIO)
Переглядів 1 тис.28 днів тому
Programar para embarcados costuma ser uma tarefa feita em IDEs proprietárias e específicas pra cada dispositivo. Nesse vídeo vou mostrar uma alternativa para conseguirmos rodar código em Arduino, ESP32 e em mais 74085 microcontroladores diferentes a partir do VS Code, utilizando a extensão do PlatformIO. LIVES: Toda terça e quinta as 21h ENTREM NO DISCORD: discord.gg/NNuzYsNPjV SEJA MEMBRO: ua-...
ELON MUSK inventou esse protocolo (TCP da Tesla)
Переглядів 2,4 тис.Місяць тому
A Tesla criou um novo protocolo de internet para seu novo computador, e quero apresentá-los pra vocês, além de agradecer ao nosso querido bilionário Elon Musk por ter inventado mais uma inovação dentro do seu hall de 692483726 contribuições para o mundo. Muito obrigado, ó Musk, o que seria da tecnologia sem ti. LIVES: Toda terça e quinta as 21h ENTREM NO DISCORD: discord.gg/NNuzYsNPjV SEJA MEMB...
FUGINDO DE C com Python e Zig (como juntar Zig+Python+Cython)
Переглядів 984Місяць тому
Hoje quero mostrar como juntar dois mundos diferentes: Zig e Python, com as ferramentas e padrões que utilizo para isso. Esse vídeo vai salvar você de muitas pesquisas em fóruns e bugs tentando fazer o hello world dessa integração, já que os recursos e materiais disponíveis sobre o assunto são escassos. LIVES: Toda terça e quinta as 21h ENTREM NO DISCORD: discord.gg/NNuzYsNPjV SEJA MEMBRO: ua-c...
Python é baixo nível e eu posso PROVAR
Переглядів 3,4 тис.Місяць тому
Todo mundo fala que Python é alto nível, mas hoje quero provar pra vocês que estão todos errados. Isso porque não só é muito fácil de ir pra Python para C, como também é possível escrever código em C com a sintaxe de Python. O responsável por trás disso é a biblioteca Cython, uma gigante que carrega diversas outras bibliotecas do ecossistema de Python. Além disso quero mostrar um pouco dos prin...
CoArrays: paralelismo nativo de Fortran (nem C++ ou Rust tem isso)
Переглядів 1,7 тис.Місяць тому
CoArrays são uma feature que trazem o paralelismo nativamente para Fortran, coisa que linguagens como C ou Rust não tem. Nesse vídeo quero falar um pouco mais sobre elas e mostrar como pode ser simples escrever programas paralelos utilizando coarrays. LIVES: Toda terça e quinta as 21h ENTREM NO DISCORD: discord.gg/NNuzYsNPjV SEJA MEMBRO: ua-cam.com/channels/Ndd-FYANxk0DIvGhXVnMIg.htmljoin Vídeo...
De assembly para código de máquina (assembler em MIPS, x86 e ARM)
Переглядів 2,8 тис.Місяць тому
Estamos acostumados a considerar a linguagem de mais baixo nível que conseguimos programar. Mas é importante lembrar que o assembly ainda é um texto que conseguimos ler, e a nossa máquina só entende binário. Nesse vídeo eu quero explicar como fazemos essa conversão partindo do assembly em texto até chegar no binário. Pra isso vou usar o MIPS como exemplo base, um conjunto de instruções muito si...
ZigZag OS #5 - Entendendo trocas de contexto [SÉRIE PARA MEMBROS]
Переглядів 870Місяць тому
O conceito de contexto e as trocas entre eles é chave para sistemas operacionais. É isso que permite que possamos trocar entre várias tarefas durante o nosso dia a dia. Vamos ver um exemplo e tentar entender linha por linha o que está acontecendo. LIVES: Toda terça e quinta as 21h PROJETO ZigZag OS: github.com/wainejr/zigzagos SEJA MEMBRO: ua-cam.com/channels/Ndd-FYANxk0DIvGhXVnMIg.htmljoin Víd...
Programação orientada a notificações: o paradigma BR
Переглядів 2,7 тис.Місяць тому
MATERIAIS SOBRE O PON (Programação orientada a notificações): Página oficial: pessoal.dainf.ct.utfpr.edu.br/jeansimao/PON/PON.htm Vídeo do Fabro apresentando um trabalho de PON: ua-cam.com/video/x9RZ_ofXbrY/v-deo.htmlsi=qR_XKHC0ZWIr6ByM NOTIFICAÇÕES VS. EVENTOS: portaldeinformacao.utfpr.edu.br/Record/riut-1-1006/Details Paradigmas de programação costumam ser assuntos de debate no meio dos devs....
Otimização na prática: memória e sua localidade (não é lista vs. array)
Переглядів 2,2 тис.2 місяці тому
Um dos principais gargalos de programas é o acesso a memória. Ler e escrever na RAM é muito lento e o processador faz diversas otimizações pra tornar isso mais rápido, porém nosso programa tem que ajudar o compilador e a CPU também, porque elas não conseguem fazer todo trabalho sozinhas. Nesse vídeo quero mostrar como isso é aplicado na prática com um exemplo real, não com o tradicional lista v...
Guia pra otimizar seu programa (com profiling)
Переглядів 2,2 тис.2 місяці тому
Um dos assuntos mais comuns pra bolha tech é discutir desempenho, qual linguagem, tecnologia, framework é mais rápida? Qual algoritmo é mais rápido? Devo usar listas ou sets? Mas esquecem do que é mais importante se tratando disso: como eu meço se um programa está mais rápido ou lento? Nesse vídeo quero explicar o guia que sigo para melhorar desempenho nas aplicações e também algumas ferramenta...
ZigZagOS #1 - Introduzindo o projeto [EXCLUSIVO PARA MEMBROS]
Переглядів 2,4 тис.2 місяці тому
Esclarecendo o que vai ser o ZigZag OS, nosso sistema operacional em Zig, os materiais que vou utilizar, qual é o público desse projeto, por que escolhi fazer em Zig, pra quais dispositivos quero fazer, como vai ser o desenvolvimento, e muito mais. Quaisquer outras dúvidas podem mandar aqui nos comentários também. LIVES: Toda terça e quinta as 21h PROJETO ZigZag OS: github.com/wainejr/zigzagos ...
O que é POSIX? Onde ele é usado e onde não é?
Переглядів 2,3 тис.2 місяці тому
O que é POSIX? Onde ele é usado e onde não é?
Como SO inicializa? Exemplo com PacMan num embarcado
Переглядів 9 тис.2 місяці тому
Como SO inicializa? Exemplo com PacMan num embarcado
Guia para entrar em CFD (Fluidodinâmica Computacional)
Переглядів 2,5 тис.2 місяці тому
Guia para entrar em CFD (Fluidodinâmica Computacional)
GUIA para escolher sua STACK
Переглядів 2,5 тис.2 місяці тому
GUIA para escolher sua STACK
PARE de fazer sites (ou porque fazer CLIs e TUIs)
Переглядів 12 тис.2 місяці тому
PARE de fazer sites (ou porque fazer CLIs e TUIs)
Guia para começar no BAIXO NÍVEL
Переглядів 12 тис.2 місяці тому
Guia para começar no BAIXO NÍVEL
Rust entrega tudo que promete? [REACT]
Переглядів 2,4 тис.2 місяці тому
Rust entrega tudo que promete? [REACT]
Por que não achamos vaga pra dev baixo nível?
Переглядів 6 тис.3 місяці тому
Por que não achamos vaga pra dev baixo nível?
Fiz uma empresa pra trabalhar com baixo nível [CORTES DA LIVE]
Переглядів 4,1 тис.3 місяці тому
Fiz uma empresa pra trabalhar com baixo nível [CORTES DA LIVE]
Zig é o sucessor de C (não Rust)
Переглядів 12 тис.3 місяці тому
Zig é o sucessor de C (não Rust)
AMD SUPERA O DESEMPENHO DA NVIDIA (ou AMD MI300X vs. Nvidia H100)
Переглядів 1,8 тис.3 місяці тому
AMD SUPERA O DESEMPENHO DA NVIDIA (ou AMD MI300X vs. Nvidia H100)
O que é uma NPU e o porquê devem substituir GPUs
Переглядів 3,3 тис.3 місяці тому
O que é uma NPU e o porquê devem substituir GPUs
Diferenças entre GPU e CPU
Переглядів 3,3 тис.3 місяці тому
Diferenças entre GPU e CPU
Como fazer uma CPU do ZERO? (ou programação com diagramas, LogiSim e VHDL)
Переглядів 32 тис.4 місяці тому
Como fazer uma CPU do ZERO? (ou programação com diagramas, LogiSim e VHDL)
ARM não é melhor que x86 (ou a superação de RISC vs. CISC)
Переглядів 8 тис.4 місяці тому
ARM não é melhor que x86 (ou a superação de RISC vs. CISC)

КОМЕНТАРІ

  • @plinioglad
    @plinioglad 3 години тому

    Depende do contexto e necessidade. Eu automatizo usando apps script google. Nao tenho que me preocupar com a infraestrutura. Crio website usando reactjs normalmente e implanto sem dificuldade e posso só fazer a automação sem ter o frontend. Posso usar bigquery, planilhas, mysql sem muita dificuldade. No meu contexto funciona numa boa.

  • @viniciuslc
    @viniciuslc День тому

    Waine, fala sobre um dev que rodou linux em um intel 4004, demorou so alguns dias pra dar um boot completo kkkk

  • @ulysses_grant
    @ulysses_grant 3 дні тому

    Acho que o próximo passo é rodar Doom em um pão de padaria.

  • @NaoSeiProgramar
    @NaoSeiProgramar 3 дні тому

    Doom é literalmente um jogo universal.

    • @waine_jr
      @waine_jr 3 дні тому

      Poderíamos substituir a definição de Turing completo por: roda Doom? kkkkkkkkkk

    • @NaoSeiProgramar
      @NaoSeiProgramar 2 дні тому

      @@waine_jr Pode até ser coincidência, mas já costumo usar essa frase cotidianamente kkk

  • @GrandeFiasco
    @GrandeFiasco 3 дні тому

    Porra esse é o tipo de vídeo que eu ia querer colocar no meu vídeo. Eu tô refazendo o algoritimo de mapa deles vou fazer uma parte 2 e vou te chamar pra fazer outro vídeo sobre

    • @Masqueico_B0stileiro
      @Masqueico_B0stileiro 3 дні тому

      Manda a braba

    • @waine_jr
      @waine_jr 3 дні тому

      Ia ser uma honra participar do vídeo, Fiasco!

    • @pboechat
      @pboechat 2 дні тому

      @@GrandeFiasco fala camarada, desculpa me intrometer, mas qq vc quer dizer com "algoritmo d mapa deles"? Um loader pra Wad? Tais estruturando teus mapas em memoria com bsp? Abcs

  • @59day19
    @59day19 3 дні тому

    Qual a próxima? Rodar doom no hd ? Rodar doom na memória de cache ?

    • @waine_jr
      @waine_jr 3 дні тому

      hhahahahahaha não ironicamente é tão difícil rodar Doom na GPU quanto num HD ou numa placa de vídeo, por essas chamadas de SO. Mas fazendo o driver pra essa RPC do dispositivo pro SO, tá feito em tudo isso aí. (Eu chuto que Doom cabe na cache da GPU inclusive, só precisa da RAM pra comunicação mesmo)

  • @59day19
    @59day19 3 дні тому

    Já rodaram doom em uma rede neural, literalmente uma ia criando doom em tempo real e é tão instável quanto um sonho

    • @pboechat
      @pboechat 2 дні тому

      @@59day19 isso foi maneiro msm! Nao eh realmente a msma coisa q "rodar o codigo d doom" ainda q com grandes adaptacoes, mas mais uma demonstracao d como gerar frames d doom a partir d entradas d usuario neh

  • @pboechat
    @pboechat 3 дні тому

    Sobre um SO rodando exclusivamente na GPU: eu tb acho q isso nao faz muito sentido, ate mesmo pq na pratica o q seriam atribuicoes tipicas d um SO, - gerenciamento d recursos, agendamento d tarefas, tratamento d erros, etc. - seriam distribuidas entre multiplas plataformas (como sao hj com driver na CPU e algum tipo d firmware d frontend na GPU).

    • @waine_jr
      @waine_jr 3 дні тому

      Sim, não faz sentido mesmo, na documentação na verdade é como se a GPU recebesse capacidades de um SO (por meio do RPC e chamadas pro SO real), mas nem isso mesmo eu consigo ver mt caso de uso. Vamos ver com o tempo o que o povo vai inventar com isso hahahaha

    • @pboechat
      @pboechat 3 дні тому

      @@waine_jr ate certo ponto seria mais facil imaginar uma CPU totalmente SIMD... Mas eh aquilo, o trade-off seria gigantesco e ele possivelmente seria ruim (comparativamente) tanto em throughput quanto em esconder latência!

    • @pboechat
      @pboechat 3 дні тому

      @@waine_jr afinal d contas, a CPU eh uma maquina d calcular especializada em fingir q nao eh lenta em tarefas "gerais" hehe Pra tarefas q sao comprovadamente afeitas a um "paradigma computacional" (eg, embarrassingly parallel), melhor usar uma maquina d calcular q nao gasta tempo fingindo nao ser lenta (e sim resolvendo o problema) 😁

  • @pboechat
    @pboechat 3 дні тому

    Sobre o llvm.rpc_host_call: acho q eh um intrinsic pra ser usado por um runtime q queira se beneficiar do ferramental da llvm pra implementar coisas d computacao hibrida. Nao consegui encontrar nenhum uso corrente disso (ainda), mas consigo imaginar coisas tipo runtime d ML e tal usando isso.

    • @pboechat
      @pboechat 3 дні тому

      Ah, o ChatGPT me jurou d pes juntos q o open XLA usa isso, so nao conseguiu me apontar exatamente onde.

    • @waine_jr
      @waine_jr 3 дні тому

      Sim, o LLVM dá essa infra, e achei interessante agora ter essa possibilidade de pensar a GPU também como Host de um sistema, podendo fazer chamadas pro SO sem ter que sair dela. Pro que vai servir ainda tô curioso de saber, pq essas chamadas devem ser MUITO lentas kkkkkkkk

  • @pboechat
    @pboechat 3 дні тому

    Tem um "toy" OS chamado DawnOS q eu acho q roda (ou poderia rodar) em GPU.

    • @waine_jr
      @waine_jr 3 дні тому

      Não conhecia ele, e pelo que pesquisei é um sistema que roda em uma instrução, e dá pra rodar em GPU inclusive, muito massa hahahaha Esses projetos "toy" são os melhores de acompanhar, pessoal faz cada gambiarra e inovação pra uma coisa que "não serve pra nada"

    • @pboechat
      @pboechat 3 дні тому

      @@waine_jr usando o meme do homer positivamente: Nao serve pra nada *ate agora* 😁

  • @marcocunhabr
    @marcocunhabr 3 дні тому

    Imagino que isso possa ter utilidade em ferramentas de debug na GPU.

    • @waine_jr
      @waine_jr 3 дні тому

      Mesmo pra ferramentas de debug os protocolos e utilitário são bem desenvolvidos, com gdb-cuda ou semelhantes pro OpenCL, além de muita coisa pra profiling de desempenho

  • @henriquesdj0
    @henriquesdj0 3 дні тому

    Eu conheço uma aplicação séria de RPCs. Quando trabalhei com modelagem computacional no LNCC em um projeto de Elementos Finitos a gente implementava um algoritmo numérico altamente paralelizável para resolver equações de Navier Stokes em baixa latência com dados que chegavam a todo instante pela rede numa parceiria com a universidade da Flórida para comer o cu de quem tá lendo.

  • @GuilhermeAltran
    @GuilhermeAltran 4 дні тому

    É só criar em bom protocolo que verificar início, tempo e termino de trabalho

  • @deassisbarroso2515
    @deassisbarroso2515 4 дні тому

    Pô cara queria entrar no discord, mas o convite ta invalido.

    • @waine_jr
      @waine_jr 3 дні тому

      Uai, pelo que vi na aba anônima tava normal o link na descrição. Mas chama no Instagram se n tiver conseguindo, tá sempre entrando gente por lá pelo link

  • @maicom2006
    @maicom2006 5 днів тому

    Oi, queria ver funcionando alguma coisa criada. Mas somente pela explicação do funcionamento sinto que abriu muito o leque de opções. Obrigado!!!!

    • @waine_jr
      @waine_jr 3 дні тому

      Com certeza! Pra isso temos o ZigZagOS e as séries pra membros, depois do port vamos começar a fazer os drivers por lá

  • @GuilhermeAltran
    @GuilhermeAltran 5 днів тому

    A alocação dinâmica de memória em sistemas embarcados ou microcontroladores tem algumas desvantagens importantes: Incerteza na Alocação: Não há garantia de que a alocação dinâmica terá sucesso. Isso pode levar a comportamentos inesperados. Tempo de Alocação Variável: A alocação dinâmica pode levar diferentes quantidades de tempo, o que é problemático em sistemas de tempo real. Vazamento de Memória: Se a memória alocada dinamicamente não for liberada corretamente, ocorrerá vazamento de memória. Recursos Limitados: Em microcontroladores, a memória é escassa. A alocação estática é preferível quando o tamanho necessário é conhecido antecipadamente. Pool de Objetos: Para alguns aplicativos, criar um pool estático de objetos pode ser uma alternativa melhor. copilot arrumando meu texto XD

  • @GuilhermeAltran
    @GuilhermeAltran 5 днів тому

    Tem certeza, de que vc tem certeza, de que vc tem certeza, que vc tem certeza, que vc tem certeza, que quer apagar o banco de dados?

  • @dhay3982
    @dhay3982 6 днів тому

    O problema é tentar aplicar burocraticamente essas metodologias "ágeis" sem realmente entender e empregar verdadeira agilidade. Recomendo o vídeo do Fábio Akita sobre isso.

    • @waine_jr
      @waine_jr 6 днів тому

      Vídeo do Akita sobre isso é mt bom mesmo, o cara é brabo

  • @MoisesCaster
    @MoisesCaster 6 днів тому

    Exelente vídeio! Faz uns anos que ganhei uma TV Smart quebrada em que eu queria reaproveitar o módulo de Wi-Fi dual band da Mediatek, mas quando fui procurar os drivers, só tinha disponível para Linux e Android. Será que seria possível converter para Windows?

    • @MoisesCaster
      @MoisesCaster 6 днів тому

      Ah! o modulo é um MT7600UN, é USB. Fiz adaptação usando cabo USB, o PC reconhece mas não tem drivers disponível. É uma pena pois é um chip moderno.

    • @waine_jr
      @waine_jr 6 днів тому

      Bem, se você tiver o código fonte, dá pra tentar compilar pra Windows. Mas bem provável que mesmo assim não dê certo. Drivers de computador tem muitas chamadas pro sistema operacional, então não dá pra pegar um feito pra Windows e usar no Linux ou vice versa. O jeito é fazer um driver do zero nas férias mesmo kkkkkkk pegar o datasheet do dispositivo e fazer o driver do PC

  • @segredosdefamilia9685
    @segredosdefamilia9685 6 днів тому

    Onde vc aprendeu todo esse conhecimento de baixo nivel?

    • @waine_jr
      @waine_jr 6 днів тому

      Sou curioso kkkkkkk mas tmb fiz eng. da computação na utfpr e acabei indo trabalhar na área

    • @segredosdefamilia9685
      @segredosdefamilia9685 6 днів тому

      Quando fala de baixo nível tudo parece pejorativo

    • @segredosdefamilia9685
      @segredosdefamilia9685 6 днів тому

      ​@@waine_jrmas parabéns ótimo conhecimento, por mais especialistas assim

  • @dhay3982
    @dhay3982 7 днів тому

    Skill issue 😎

  • @ohindiferente7843
    @ohindiferente7843 7 днів тому

    waine libera o vídeo do zig no arduino, pfv cara pfvzinho mano tem gente chorando aqui

    • @ohindiferente7843
      @ohindiferente7843 7 днів тому

      pfv Waine eu lhe imploro, só por um diazinho

    • @waine_jr
      @waine_jr 6 днів тому

      Hahahahahahah depois que tiver mais vídeos na série eu libero os primeiros

    • @ohindiferente7843
      @ohindiferente7843 6 днів тому

      @@waine_jr obrigado

  • @drksbr
    @drksbr 7 днів тому

    É um jogo de corrida do ps1. Muito bom por sinal.

    • @waine_jr
      @waine_jr 6 днів тому

      Hauahauahauahau eu só joguei o driver 3 de PS2, era muito bom mesmo

  • @FodaseGoogreorio-h7v
    @FodaseGoogreorio-h7v 7 днів тому

    USART é síncrono, além dos sinais RT e TX você tem mais um com o clock de sincronia. USART só tem o RX e TX, ambos os dervices confiam que vão estar com os relógios ajustados para seguir o baudrate que você pediu, e ai de quem estiver com o relógio errado. Um exemplo de USART é quand#-_+$+@-$)&/$($!#$+'!'!_(_(')_!#/$)_(&)#!'!_($))&)#(_!'(_ Ops! Desculpa, coloquei o baudrate errado no programa monitor 😅

    • @waine_jr
      @waine_jr 6 днів тому

      Hahahahahahaha o mais clássico é errar clock em uma das pontas, quando o print aparece errado já sei oq é ao menos

  • @RicardoBHubner
    @RicardoBHubner 7 днів тому

    Muito bom! Eu que só brinco de programação entendi muito bem! Lembro em 2012 eu tentando fazer entender isso com vídeos gringo para fazer drive para mouse bluetooth que perdia o USB kkk T_T. Esses vídeos seus são muito útil para os brasileiros irmão, mesmo existindo muitos canais tu tem facilidade em explicar, e não tem vicio de linguagem. é raro!

    • @waine_jr
      @waine_jr 6 днів тому

      Acho legal que de uma maneira ou outra todo mundo vai ter problema de driver algum dia e ser curioso de como resolver hahahaha Muito feliz que curte o conteúdo, cara! E faço de um jeito sem "terminologia chique" pra democratizar e que mais pessoas entendam o assunto, trazer mais gente pra espiral do baixo nível hahahahaha

  • @NaoSeiProgramar
    @NaoSeiProgramar 7 днів тому

    Ótimo vídeo!

    • @waine_jr
      @waine_jr 7 днів тому

      Muito obrigado, meu querido! Quem sabe te convenço a vir do Java pra Zig hahahaha

  • @IgorSamuel-
    @IgorSamuel- 7 днів тому

    Video bom de mais! Esta utilizando I3 ou Awesome?

    • @waine_jr
      @waine_jr 7 днів тому

      Valeu, Igor! Eu uso Qtile no Fedora, tô devendo um vídeo mostrando minha configuração

  • @Alexandreofbh
    @Alexandreofbh 7 днів тому

    Nem fala! Passei muitos anos fazendo drivers para chip de central telefonica em barramento local PCI, para linux e QNX e green hills. O dor de cabeça. Uma coisa importante é fazer as estruturas que se encaixam nos registradores internos do chip, tratamento de interrupções, e tudo muda dinamicamente por causa do scan PCI. Meu Deus do ceu, meus cabelos ficaram brancos nesta epoca.

    • @waine_jr
      @waine_jr 7 днів тому

      Esse tipo de coisa acho que só quem viveu sabe (amém não vivi, só ouvi de quem viveu hahahaaha)

    • @Alexandreofbh
      @Alexandreofbh 7 днів тому

      @@waine_jr Voce é massa demais Waine! Adoro seus vídeos!

    • @nitroquantic5212
      @nitroquantic5212 3 дні тому

      Finge que fazer programas normais é como jogar Mario e fazer driver é como jogar Dark Souls.

  • @stephan_costa
    @stephan_costa 7 днів тому

    O ruim de usar placas da ST é que muitas vezes você precisa desenvolver seu próprio driver. Quando o microcontrolador funciona só como device é mais tranquilo, mas fui tentar fazer um STM32 funcionar como host e foi muito mais complicado (no caso como USB OTG, UART é mais simples de fazer).

    • @waine_jr
      @waine_jr 7 днів тому

      O foda de embarcados e baixo nível é isso em geral, ter que fazer as coisas do zero e garantir que elas estão corretas. Lembro do meu prof pegando um bug num driver I2C usando osciloscópio, aí entendi o nível dos problemas na área kkkkkkkk

    • @FodaseGoogreorio-h7v
      @FodaseGoogreorio-h7v 7 днів тому

      Se você quiser mudar os descritores sim, você precisa fazer o seu driver para explicar pro seu computador o que é aquela coisa estranha que você espetou nele. Isso não é apenas de microcontroladores ST, é uma característica de services USB no geral. Experimenta usar USB em um cortex da Renesa e boa sorte com aquela HAL e documentação... Pera, não tem! 🤣🤣🤣🤣

    • @pboechat
      @pboechat 3 дні тому

      ​@@waine_jrseu comentario me lembrou d um video maneiro do Ben Eater fazendo engenharia reversa num teclado usando um osciloscopio 😁

  • @edmarhenches875
    @edmarhenches875 7 днів тому

    Boa!

  • @Aguinaldoemap
    @Aguinaldoemap 7 днів тому

    Sempre tive dúvidas como funcionava, obg❤

  • @AlissonQueirozAzevedo
    @AlissonQueirozAzevedo 7 днів тому

    Quero saber sim, fala mais, pf ,quero fazer um driver para meus mcu usb

    • @waine_jr
      @waine_jr 7 днів тому

      Depois que terminar de migrar o ZigZagOS pro Arduino vou fazer 62758 drivers pra fazer jogo nele

  • @ivancarlossl
    @ivancarlossl 7 днів тому

    Parabens 👏👏👏👏👏

    • @waine_jr
      @waine_jr 7 днів тому

      Valeu, meu caro!

  • @Masqueico_B0stileiro
    @Masqueico_B0stileiro 7 днів тому

    Hihihihihihihi Conhecimento

    • @waine_jr
      @waine_jr 7 днів тому

      Como diria ET Bilu, busquem conhecimento

  • @backend.thiago
    @backend.thiago 7 днів тому

    Excelente explicação! Você com certeza foi um dos melhores canais que descobri este ano. Obrigado por partilhar seu tempo e conhecimento ❤

    • @waine_jr
      @waine_jr 7 днів тому

      Até emociono lendo comentário desse! Valeu, Thiago, fico mt feliz que curte os vídeos e conteúdo, meu querido!

  • @TioStitch
    @TioStitch 8 днів тому

    Pior que sim, pular processo não pode…

  • @tapiocudo
    @tapiocudo 9 днів тому

    muito bom

  • @josevilela8503
    @josevilela8503 9 днів тому

    me deu gatilho das aulas q eu usava o Quartus II programa amaldiçoado que dá erro mesmo se fizer tudo certo

    • @waine_jr
      @waine_jr 9 днів тому

      Era esse mesmo que eu usava kkkkkkkk pior é quando tem que colocar pra rodar na FPGA e tudo que tava certo dá errado

  • @GuilhermeAltran
    @GuilhermeAltran 9 днів тому

    Python é de alto nível

  • @luispaulofernandes6240
    @luispaulofernandes6240 9 днів тому

    Gostei muito da simplicidade de manipular os bits em Zip. Em C eu geralmente ou crio um struct+union para simular isso que você mostra no vídeo ou tenho que recorrer a boa e velha técnica da mascara de bits.... Muito interessante.

    • @waine_jr
      @waine_jr 9 днів тому

      Sim, eu achei mt prático também a manipulação. Em C sei que tem como usar bit field, mas na prática nunca vi sendo mt utilizado, e sei que tem algumas limitações de representações por APIs tmb essa questão dos bits (por exemplo, se n me engano o OpenCL não permite bit field). O que acho mais massa é que dá pra fazer tudo isso e muito mais chevagens em tempo de compilação, tira aquela mágica com 6528672 defines pra fazer meta programação

    • @luispaulofernandes6240
      @luispaulofernandes6240 9 днів тому

      @@waine_jr Pois é, trabalhar a nível de bit em C principalmente quando é preciso manusear múltiplos registros é diversão^(-1) garantida! Hehe, passei por isso recentemente e por causa de uma falta de atenção na hora de mapear o bit de um registro eu perdi 1H debugando, coisa linda. Espero que o ZIG continue evoluindo e sendo adotado, quem sabe no meu próximo projeto eu não adote para testar. VLW!

  • @FodaseGoogreorio-h7v
    @FodaseGoogreorio-h7v 9 днів тому

    main: sbi DDRB, 5 loop: in R16, PORTB ldi R17, #(1 << 5) eor R16, R17 out R16, PORTB call delay jmp loop delay: ldi r18, 11 ldi r19, 98 delay_loop: dec r19 brne delay_loop dec r18 brne delay_loop nop ret ; AVR é estranho 😬

    • @waine_jr
      @waine_jr 9 днів тому

      Vale um vídeo só pra entender o que esse código tá fazendo kkkkkkkk

  • @rafapontello
    @rafapontello 10 днів тому

    Muito bom

  • @edmarhenches875
    @edmarhenches875 10 днів тому

    Boa. Obs: trocar nodes de lugar numa doubly linked-list é ainda menos fácil do que parece. 😅

    • @waine_jr
      @waine_jr 10 днів тому

      Hahahahahahaha vou ter que fazer um vídeo dessa saga, Edmar

  • @leandrosouzadelimaschroder6496
    @leandrosouzadelimaschroder6496 10 днів тому

    cara, em C é facil trabalhar com um bit, até em python é possivel em microcontroladores

    • @waine_jr
      @waine_jr 10 днів тому

      "fácil" é, mas ainda acho bem inconveniente. Também nada te impede de usar um define de máscara de uma interface pra outra, que ao meu ver a linguagem não deveria permitir, ou pelo menos dar ferramentas pra impedir isso (fora sintaxe e convenções)

    • @andersoncorreia-ph2qj
      @andersoncorreia-ph2qj 10 днів тому

      @@leandrosouzadelimaschroder6496 uma opção viável e não convencional poderia ser convertendo pra cython. A comunicação por utilizar uma tipagem em C seria um pouquinho mais viável neste caso. Eu acho. Sei lá né. Rss

  • @andersoncorreia-ph2qj
    @andersoncorreia-ph2qj 10 днів тому

    Olha sacana. Tudo no Linux não é um arquivo não. Tudo no Linux e lindo. É belo. Se o Linux fosse uma mulher eu casava com ela agora.

    • @waine_jr
      @waine_jr 10 днів тому

      Kkkkkkkkkkkkkkk o usuário de Linux mais fraco, te entendo totalmente

  • @malvitor
    @malvitor 10 днів тому

    UDR666 mentioned

    • @waine_jr
      @waine_jr 10 днів тому

      Top clássicos da música brasileira

  • @pypees
    @pypees 10 днів тому

    Agora que estou como membro, preciso voltar e assistir desde o começo os vídeos de Zig!

    • @waine_jr
      @waine_jr 10 днів тому

      Vai ver toda jornada de eu me batendo pra lembrar de SO e aprender Zig ao mesmo tempo hahahaha essa semana começam os vídeos de Zig pra embarcados, começando a migrar o ZigZagOS

  • @JoseSilva-wn3gr
    @JoseSilva-wn3gr 14 днів тому

    No que você trabalha?

    • @waine_jr
      @waine_jr 13 днів тому

      Trabalho com programação e CFD, fluidodinâmica computacional. No Instagram falo mais do meu dia a dia

  • @NinjaAdd
    @NinjaAdd 18 днів тому

    Eu tava achando isso, até começar a programar nesse trem, o linguagem chata, implica com chaves, ;, e espaço e branco (primeira linguagem que vejo embarcar com os 3 ao mesmo tempo). As bibliotecas nela são bem ruins, quase nada funciona como esperado, restando fazer a sua para quase tudo.

    • @waine_jr
      @waine_jr 16 днів тому

      Bem vindo ao baixo nível kkkkkkkk lib pronta é pra web dev, e forçar formatação é top features do Zig

    • @NinjaAdd
      @NinjaAdd 16 днів тому

      @@waine_jr mas outras linguagens, que também deixam mexer em bastante coisa, embora não sejam baixo nível, tem bastante bibliotecas, igual c++ e as do c++ geralmente funcionam como deveria. Eu estou escrevendo um pequeno DNS autoritativo no zig, e a galera que ando achando que usou bibliotecas de rede nela também tem tido dificuldade com várias coisas nelas, que geralmente são bem mais tranquilas em Boost.