#005 - Vagas em C e C++ | Hackeando um Roteador | Normatização na computação
Semana no baixo nível: atualizações e assuntos que rolaram nos últimos dias na comunidade do desempenho
Vagas em C e C++ Link para o cabeçalho
Uma das grandes perguntas pra quem quer entrar em baixo nível é: como? Essa foi uma das discussões na nossa comunidade.

Maioria das vagas que surgem e são divulgadas são relacionadas a web, e temos pouco ou nada de baixo nível nesse ramo. Mas isso não quer dizer que não haja vaga em áreas que utilizam C ou C++.

O ponto principal é ter um meio de entrada para área, buscar se aprofundar e criar relações com quem trabalha com baixo nível, chegar por meio de uma recomendação é muito melhor que por um processo genérico de entrevista.

Demonstrar sua competência e experiência em projetos também é fundamental, então ter em seu portfolio códigos reais em baixo nível é um diferencial muito importante. Infelizmente baixo nível tende a não pagar tão bem quanto web ou outras áreas, mas em compensação proporciona bugs que só poderíamos encontrar nele.
O motivo dessa falta de vagas, especialmente no Brasil, discuti nesse vídeo
Hackeando um Roteador Link para o cabeçalho
Baixo nível e eletrônica muitas vezes estão juntos, para implementar um protocolo no nosso Arduino, precisamos soldar alguns fios, ou usar uma protoboard. Sabendo disso, podemos usar esse conhecimento não só para fazer projetos do zero, mas também bisbilhotar projetos dos outros, como um roteador.
O grande problema disso é que herdamos as questões da eletrônica, então fique a vontade para soldar fios, queimar componentes, debuggar circuitos e muito mais.

Agora o problema não é só no software, mas na solda instável do GND, ou no mal contato do fio que liga.

Também temos que tentar adivinhar alguns comportamentos estranhos, por exemplo, qual taxa será que esse serial usa? Será que é constante? Isso é uma cifra ou eu que fiz merda? Ficam as questões.

Para quem gosta de baixo nível, entender o básico de eletrônica é muito importante para ser capaz de fazer esse tipo de projeto, que pode render um emprego, ou um processo.
Normatização na computação Link para o cabeçalho
Criar leis e normas para computação é uma discussão que sempre causa animosidade entre programadores. Por um lado temos nossos princípios de liberdade, e o desejo de construir um sistema e método da melhor maneira que conseguirmos, sem restrições externas. Por outro, somo suscetíveis, como usuários, a falhas sistemáticas e más práticas seguidas por outros desenvolvedores, o que pode causar danos consideráveis.
Tocando no assunto de sistemas críticos, MISRA C e DO-178C, falei sobre normatizações na computação também.

Quando falo de normatização, não quero dizer sobre o exercício da profissão (até porque não tenho formação), mas sim sobre os sistemas e seus comportamentos. Por exemplo, é aceitável que um sistema limite seu tamanho de senha a 8 caracteres e force apenas letras e números? Um banco fazer isso? Ao meu ver isso deveria ser proibido e normatizado.
Esse tipo de discussão tem que avançar muito ainda no nosso meio, e nós somos os responsáveis pela decisão do que vamos querer dos nossos sistemas e usuários, a terra de cada um faz do seu jeito e tá tudo certo, ou uma mínima regulamentação, ao menos para sistemas críticos e de segurança.
Baixo Nível é uma grande gambiarra Link para o cabeçalho
Aprender a ligar um computador é uma atividade muito interessante para entender mais de baixo nível. Pra isso, fazer um bootloader costuma ser o Hello World pra quem entra em sistemas operacionais.

Fazendo um programa desses, é comum ocorrer mistérios da fé que, se mudarmos um endereço de memória são resolvidos. Por que resolveu? Mistério da fé.

Uma questão dentro disso é como começar, e como disse o GANGS AMA JULIA masTRAI COM JAVA, não tem jeito melhor que praticando e procurando fontes. São muitos conceitos de uma vez, então é comum ficar confuso no começo, mas com o tempo e a prática vamos aprendendo e nos acostumando.
Importante ressaltar que os sistemas operacionais modernos datam suas origens dos anos 70 ou 80. Mesmo que muito tenha mudado desde lá, pouco mudou por outro lado, já que precisamos manter retrocompatibilidade, e isso é a fonte de muitas gambiarras que, de alguma maneira, são utilizadas até hoje.
Com o zRTOS amém já consegui um exemplo funcional de linker e inicialização do sistema, finalizando o contexto é só correr pro abraço.
No canal Link para o cabeçalho
Frontend e backend em baixo nível: a discussão da web também nos assola, mas de uma maneira bem diferente. No vídeo falo um pouco sobre a microarquitetura de processadores modernos e o que representa o frontend e o backend, as responsabilidades e funcionalidades de cada um.
É sempre bom falar da área que a gente trabalha, e por isso trouxe um vídeo sobre CFD nessa semana, mais especificamente turbulência. Para quem se interessa pelo tema, curte física ou quer saber mais sobre como são feitas e modeladas simulações, vale muito a pena.
Para membros Link para o cabeçalho
Resolvi o bug de memória de 50 horas (acho) e contei pros membros como fiz isso. Passei por todo processo desde investigação, até a suposição do que era, as mudanças que fiz para remediar, e como repeti os testes pra checar se havia corrigido. No fim do dia não consigo garantir que o bug foi corrigido com 100% de certeza, mas pelo menos ele não ocorreu de novo.
A série do zRTOS voltou com tudo, e finalmente terminamos as implementações iniciais de gerenciamento de contexto. Agora é “só” testar e arrumar os bugs…
Notícias Link para o cabeçalho
- Google não quer abrir mão do Chrome depois do julgamento do monopólio. A justiça também colocou na mesa a retirada do Android do conglomerado da Google, além de outras medidas como: proibir a empresa de fechar negócios para ser o motor de pesquisa padrão ($20b anuais para Apple para isso); obrigar o licenciamento de dados de pesquisa, cliques e resultados para concorrentes; proibir o investimento da Google em outras empresas de motor de pesquisa. Vamos ver o que isso vai dar, quem sairá perdendo (Apple e Mozilla tem contratos bilionários que podem ser impactados) e quais negócios devem surgir.
- Novo primeiro lugar no TOP500, lista dos super computadores mais potentes do mundo. O El Capitan é o novo supercomputador a assumir o topo da lista, equipado com a MI300A da AMD (vídeo no canal falando sobre), com um total de 61.3 teraflops de FP64 (um número impressionante) e com CPU e GPU integradas num mesmo nó, acelerando muito a transferência de memória entre as duas. Cada nó tem 4 MI300A e há um total de 11.136 nós, em 5.586 raias, com 87 hacks. O El Capitan atinge 1,742 Exaflops (o terceiro exacomputador do mundo, 1e18) e consome 29.6MW (semelhante ao quanto Botucatu consome de energia). Quando vamos ter um desse no Brasil?
- Meta enfrenta julgamento sobre compra do Instagram e WhatsApp, com o FTC (órgão regulador dos EUA) acusando a empresa de adquirir os negócios para “acabar com a crescente competição”. Governo dos EUA vem fazendo alguns julgamentos relevantes se tratando dos grandes monopólios de tecnologia, resta esperar e ver se isso irá mudar algo nessa dinâmica. Cadê o livre mercado?
- Finep, BNDES, ABDE, CGEE, Sebrae e CNI assinam Protocolo para a construção de uma política nacional de apoio às startups Deep Techs. Deep techs são empresas que necessitam de um grande desenvolvimento tecnológico e científico para sua entrada no mercado, estando no estado da arte do conhecimento muitas das vezes. Muito importante políticas de incentivo para que possamos nos desenvolver e reter nossos talentos no Brasil. Da onde vai sair o dinheiro será? Vão tirar de quem?