- 130
- 225 674
Waine - Dev do Desempenho
Приєднався 22 вер 2023
💡 Te ajudo com computação e alto desempenho
CTO da Aerosim & Criador de conteúdo
Programação, fluidodinâmica e negócios em um lugar só
CTO da Aerosim & Criador de conteúdo
Programação, fluidodinâmica e negócios em um lugar só
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?
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)
PARE de fazer sites (ou porque fazer CLIs e TUIs)
Переглядів 12 тис.2 місяці тому
PARE de fazer sites (ou porque fazer CLIs e TUIs)
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]
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
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)
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.
Waine, fala sobre um dev que rodou linux em um intel 4004, demorou so alguns dias pra dar um boot completo kkkk
Acho que o próximo passo é rodar Doom em um pão de padaria.
Doom é literalmente um jogo universal.
Poderíamos substituir a definição de Turing completo por: roda Doom? kkkkkkkkkk
@@waine_jr Pode até ser coincidência, mas já costumo usar essa frase cotidianamente kkk
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
Manda a braba
Ia ser uma honra participar do vídeo, Fiasco!
@@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
Qual a próxima? Rodar doom no hd ? Rodar doom na memória de cache ?
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)
Já rodaram doom em uma rede neural, literalmente uma ia criando doom em tempo real e é tão instável quanto um sonho
@@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
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).
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
@@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!
@@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) 😁
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.
Ah, o ChatGPT me jurou d pes juntos q o open XLA usa isso, so nao conseguiu me apontar exatamente onde.
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
Tem um "toy" OS chamado DawnOS q eu acho q roda (ou poderia rodar) em GPU.
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"
@@waine_jr usando o meme do homer positivamente: Nao serve pra nada *ate agora* 😁
Imagino que isso possa ter utilidade em ferramentas de debug na GPU.
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
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.
Kkkkkkkkkkkkkkk
É só criar em bom protocolo que verificar início, tempo e termino de trabalho
Pô cara queria entrar no discord, mas o convite ta invalido.
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
Oi, queria ver funcionando alguma coisa criada. Mas somente pela explicação do funcionamento sinto que abriu muito o leque de opções. Obrigado!!!!
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á
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
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?
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.
Vídeo do Akita sobre isso é mt bom mesmo, o cara é brabo
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?
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.
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
Onde vc aprendeu todo esse conhecimento de baixo nivel?
Sou curioso kkkkkkk mas tmb fiz eng. da computação na utfpr e acabei indo trabalhar na área
Quando fala de baixo nível tudo parece pejorativo
@@waine_jrmas parabéns ótimo conhecimento, por mais especialistas assim
Skill issue 😎
waine libera o vídeo do zig no arduino, pfv cara pfvzinho mano tem gente chorando aqui
pfv Waine eu lhe imploro, só por um diazinho
Hahahahahahah depois que tiver mais vídeos na série eu libero os primeiros
@@waine_jr obrigado
É um jogo de corrida do ps1. Muito bom por sinal.
Hauahauahauahau eu só joguei o driver 3 de PS2, era muito bom mesmo
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 😅
Hahahahahahaha o mais clássico é errar clock em uma das pontas, quando o print aparece errado já sei oq é ao menos
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!
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
Ótimo vídeo!
Muito obrigado, meu querido! Quem sabe te convenço a vir do Java pra Zig hahahaha
Video bom de mais! Esta utilizando I3 ou Awesome?
Valeu, Igor! Eu uso Qtile no Fedora, tô devendo um vídeo mostrando minha configuração
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.
Esse tipo de coisa acho que só quem viveu sabe (amém não vivi, só ouvi de quem viveu hahahaaha)
@@waine_jr Voce é massa demais Waine! Adoro seus vídeos!
Finge que fazer programas normais é como jogar Mario e fazer driver é como jogar Dark Souls.
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).
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
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! 🤣🤣🤣🤣
@@waine_jrseu comentario me lembrou d um video maneiro do Ben Eater fazendo engenharia reversa num teclado usando um osciloscopio 😁
Boa!
Sempre tive dúvidas como funcionava, obg❤
;)
Quero saber sim, fala mais, pf ,quero fazer um driver para meus mcu usb
Depois que terminar de migrar o ZigZagOS pro Arduino vou fazer 62758 drivers pra fazer jogo nele
Parabens 👏👏👏👏👏
Valeu, meu caro!
Hihihihihihihi Conhecimento
Como diria ET Bilu, busquem conhecimento
Excelente explicação! Você com certeza foi um dos melhores canais que descobri este ano. Obrigado por partilhar seu tempo e conhecimento ❤
Até emociono lendo comentário desse! Valeu, Thiago, fico mt feliz que curte os vídeos e conteúdo, meu querido!
Pior que sim, pular processo não pode…
muito bom
me deu gatilho das aulas q eu usava o Quartus II programa amaldiçoado que dá erro mesmo se fizer tudo certo
Era esse mesmo que eu usava kkkkkkkk pior é quando tem que colocar pra rodar na FPGA e tudo que tava certo dá errado
Python é de alto nível
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.
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
@@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!
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 😬
Vale um vídeo só pra entender o que esse código tá fazendo kkkkkkkk
Muito bom
Boa. Obs: trocar nodes de lugar numa doubly linked-list é ainda menos fácil do que parece. 😅
Hahahahahahaha vou ter que fazer um vídeo dessa saga, Edmar
cara, em C é facil trabalhar com um bit, até em python é possivel em microcontroladores
"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)
@@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
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.
Kkkkkkkkkkkkkkk o usuário de Linux mais fraco, te entendo totalmente
UDR666 mentioned
Top clássicos da música brasileira
Agora que estou como membro, preciso voltar e assistir desde o começo os vídeos de Zig!
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
No que você trabalha?
Trabalho com programação e CFD, fluidodinâmica computacional. No Instagram falo mais do meu dia a dia
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.
Bem vindo ao baixo nível kkkkkkkk lib pronta é pra web dev, e forçar formatação é top features do Zig
@@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.