Category: Desenvolvimento

Olá, Mundo!: Minimizado para 167 bytes

2025-01-02
Olá, Mundo!: Minimizado para 167 bytes

Este artigo documenta a jornada do autor para criar o menor programa 'Olá, Mundo!' possível. Inicialmente usando Rust, o autor descobriu que minimizar o tamanho do binário exigia um mergulho profundo na programação de baixo nível. Finalmente, a linguagem de montagem foi escolhida, e através de técnicas inteligentes, como a remoção de símbolos de depuração e a criação manual do cabeçalho ELF, um programa 'Olá, Mundo!' de 64 bits para Linux foi reduzido a impressionantes 167 bytes! O artigo detalha a expansão do tamanho do arquivo durante o processo de vinculação e os detalhes do formato de arquivo ELF, tornando-o altamente valioso para desenvolvedores de sistemas de baixo nível.

Regras para Escrever Tutoriais de Software Incríveis

2025-01-02
Regras para Escrever Tutoriais de Software Incríveis

Este artigo de blog descreve regras para criar tutoriais de software excepcionais. Ele destaca a importância de evitar jargões, declarar objetivos claramente, fornecer trechos de código copiae-cole, manter um estado de código funcional e minimizar dependências. O autor usa exemplos contrastantes para ilustrar as diferenças entre tutoriais bons e ruins, oferecendo melhorias práticas, como o uso de sinalizadores de linha de comando longos, a separação de valores definidos pelo usuário de lógica reutilizável e o uso de títulos consistentes e descritivos. O objetivo final é criar tutoriais fáceis de entender e seguir, amigáveis para iniciantes.

Desenvolvimento tutoriais de software

Notion: Seu espaço de trabalho tudo-em-um

2025-01-02
Notion: Seu espaço de trabalho tudo-em-um

Notion é um espaço de trabalho tudo-em-um que combina notas, gerenciamento de tarefas, wikis e bancos de dados em uma única plataforma. Conhecido por sua flexibilidade e personalização, o Notion permite que os usuários criem fluxos de trabalho e bases de conhecimento personalizados. Se você é um estudante, freelancer ou membro de uma equipe, o Notion ajuda você a organizar informações e aumentar a produtividade. Suas poderosas funcionalidades de banco de dados permitem que você gerencie tudo, de listas de tarefas simples a gerenciamento de projetos complexos.

Desenvolvimento

Teste de 7 Dias: Calendário de IA Personalizado com Integração do ChatGPT

2025-01-02

Um calendário de IA personalizado com integração do ChatGPT está procurando 20 testadores para um teste de 7 dias (mínimo 3 dias). Esta ferramenta ajuda a planejar tarefas com antecedência, fornecendo respostas personalizadas alimentadas por IA no dia agendado para impulsionar a criatividade e superar obstáculos. Os usuários podem refinar as respostas de IA por meio de um recurso 'Iniciar bate-papo'. O teste tem limites de bate-papo (10 mensagens/sessão, 100 palavras/mensagem). Adicione o link aos favoritos; o convite do Discord é de uso único. Feedback sobre recursos e IU é bem-vindo. Emails falsos são aceitáveis.

Desenvolvimento Calendário de IA

Internos de troca de contexto do Linux: estado do processo e memória

2025-01-02
Internos de troca de contexto do Linux: estado do processo e memória

Este artigo mergulha na representação de processos e seus estados pelo kernel do Linux, focando nas estruturas de dados-chave: task_struct e mm_struct. task_struct gerencia o estado de execução, incluindo o estado do processo, rastreamento do tempo da CPU e informações de agendamento. mm_struct lida com o estado da memória, abrangendo tabelas de páginas, limites de segmentos de memória e detalhes específicos da arquitetura. O artigo explica detalhadamente os campos dentro dessas estruturas e seus papéis na troca de contexto, oferecendo uma compreensão profunda do funcionamento interno do kernel do Linux.

Connet: Um Proxy Reverso P2P com Traversal NAT

2025-01-02
Connet: Um Proxy Reverso P2P com Traversal NAT

Connet é um proxy reverso peer-to-peer para travessia NAT, inspirado em ngrok, frp e rathole. Ele permite que você exponha serviços locais a outros dispositivos na internet sem precisar de um endereço IP público. Diferente de seus predecessores, os clientes Connet rodam tanto no provedor de serviço (destino) quanto no solicitante de serviço (origem), garantindo comunicação privada e eficiente. Atualmente em alfa, o Connet suporta conexões diretas e de servidor de retransmissão, criptografando toda a comunicação com TLS.

Desenvolvimento proxy reverso travessia NAT

Picos de Latência de Wifi Misteriosos Resolvidos: Era o Qt5!

2025-01-02

Por oito meses, o autor lutou contra picos intermitentes de latência de wifi de 2000ms+, prejudicando jogos e chamadas de vídeo. Adaptadores de rede novos, reinstalações do SO - nada funcionou. O culpado? MediBang Paint Pro, usando Qt5 (<5.14). Seu QNetworkAccessManager verifica incessantemente as mudanças na interface wifi, causando latência massiva. A solução? Definir a variável de ambiente QT_BEARER_POLL_TIMEOUT como -1.

Postgres 18 terá suporte a UUIDv7: Fim das dores de cabeça com ordenação de IDs em testes

2025-01-02

O PostgreSQL incluirá suporte a UUIDv7 na versão 18. Este método aprimorado de geração de UUIDs mantém os benefícios de aleatoriedade do UUIDv4, garantindo IDs monotonicamente crescentes dentro de um único backend do Postgres. Isso é conseguido incorporando um timestamp e um contador de 12 bits sub-milisegundos. Os testes são simplificados, pois os dados de teste são automaticamente ordenados, eliminando a necessidade de ordenação manual e melhorando a eficiência e confiabilidade dos testes. Embora a monotonicidade não seja garantida entre backends, é suficiente para a maioria dos cenários de teste. Essa melhoria está prevista para lançamento no final de 2025 com o PostgreSQL 18.

Desenvolvimento

HtmlSlice: Gerador de Fragmentos HTML Reutilizáveis para Ruby

2025-01-02
HtmlSlice: Gerador de Fragmentos HTML Reutilizáveis para Ruby

HtmlSlice é uma gem Ruby que permite que classes Ruby gerem dinamicamente fragmentos HTML reutilizáveis. Ele aborda limitações de geradores HTML existentes, como problemas de escopo de instância do Markaby. HtmlSlice suporta uma ampla gama de tags HTML, incluindo tags vazias, e escapa com segurança o conteúdo HTML para evitar vulnerabilidades XSS. É leve e fácil de usar, adequado para gerar HTML de aplicativos inteiros ou apenas partes HTML. A integração com o Rails também é demonstrada.

Desenvolvimento

Ferramenta de Compilação Mill JVM: JARs de Assembly Executáveis Diretamente

2025-01-02

A ferramenta de compilação Mill JVM cria JARs de assembly que são diretamente executáveis, eliminando a necessidade do comando `java -jar`. Isso é conseguido adicionando um script shell ao início do arquivo JAR, que, em seguida, invoca o tempo de execução Java. Esse script é habilmente projetado para ser compatível com sistemas Unix e Windows, permitindo a executabilidade multiplataforma. O artigo detalha como isso funciona, aproveitando a natureza dos arquivos ZIP para concatenar um script de inicialização com o conteúdo do JAR para uma execução perfeita. Isso melhora significativamente a integração de programas Java em fluxos de trabalho de linha de comando.

Desenvolvimento ferramenta de compilação

FineCodeX: Um aplicativo que depende do JavaScript

2025-01-02

FineCodeX é um aplicativo que requer a ativação do JavaScript para funcionar corretamente. Isso significa que, se o JavaScript estiver desativado no seu navegador ou seu dispositivo não o suportar, você não poderá usar o FineCodeX. Certifique-se de que o JavaScript esteja ativado no seu navegador para uma experiência ideal.

Desenvolvimento

Rasterização por Raios em um Fim de Semana: Do Zero a Imagens Impressionantes

2025-01-02

Este tutorial ensina você a escrever um rastreador de raios em um fim de semana usando C++. Começando com a saída de imagens PPM básicas, ele introduz progressivamente conceitos como raios, câmeras, esferas e materiais, culminando em um renderizador capaz de produzir imagens anti-aliasing com materiais difusos e metálicos. O tutorial abrange matemática vetorial, interseção raio-esfera, cálculos de normais de superfície, abstração de materiais e profundidade de campo, fornecendo exemplos de código claros e renderizações bonitas. Mesmo sem experiência prévia em programação, você pode seguir em frente e construir seu próprio rastreador de raios.

Emulando a instrução FMAdd: Um mergulho profundo em floats de 32 bits

2025-01-02

Esta postagem aprofunda a emulação da instrução FMAdd (fused multiply-add) em hardware sem suporte nativo, focando especificamente em uma implementação SIMD de ponto flutuante de 32 bits. Ela explica a operação do FMAdd e como evitar erros de arredondamento duplo inerentes aos cálculos intermediários de ponto flutuante. O autor detalha uma técnica inteligente usando 'arredondamento para ímpar' e a precisão extra de floats de dupla precisão para eliminar erros de arredondamento, alcançando resultados precisos do FMAdd. A postagem também abrange brevemente o cálculo de resultados de adição precisos e termos de erro, prometendo um acompanhamento sobre o tratamento de floats de 64 bits.

Estrutura de Carreira de Engenharia do Dropbox: Um Mergulho Profundo

2025-01-02

O Dropbox divulgou sua Estrutura de Carreira de Engenharia, um guia projetado não como uma lista de verificação de promoção, mas como uma ferramenta para ajudar os engenheiros a entender as responsabilidades e o impacto em cada nível (por exemplo, Engenheiro de Software IC1 a IC7). Define responsabilidades principais e habilidades técnicas, enfatizando o impacto nos negócios como a métrica principal. Cada nível descreve os comportamentos esperados nos pilares Resultados, Direção, Talentos e Cultura. Os engenheiros trabalham com seus gerentes para definir metas trimestrais, usando a estrutura para orientar seu desenvolvimento e criar impacto duradouro.

Desenvolvimento estrutura de carreira

mitmproxy2swagger: Engenharia Reversa Automática de APIs REST

2025-01-02
mitmproxy2swagger: Engenharia Reversa Automática de APIs REST

O mitmproxy2swagger é uma ferramenta poderosa que converte automaticamente o tráfego capturado pelo mitmproxy em especificações OpenAPI 3.0. Isso permite que você faça engenharia reversa automática de APIs REST simplesmente executando seus aplicativos e capturando o tráfego. Ele suporta arquivos de fluxo mitmproxy e arquivos HAR exportados das ferramentas de desenvolvedor do navegador. Para usá-lo, capture o tráfego com o mitmproxy, salve-o como um arquivo e, em seguida, execute o mitmproxy2swagger, especificando o arquivo de entrada, o arquivo de saída e o prefixo da API. A primeira execução gera um esquema inicial que requer edição manual para remover caminhos indesejados. Uma segunda execução gera a especificação OpenAPI completa com base no esquema editado, opcionalmente incluindo dados de exemplo.

Desenvolvimento

Zasper: Um IDE supercarregado para Ciência de Dados

2025-01-02
Zasper: Um IDE supercarregado para Ciência de Dados

Zasper é um novo IDE desenvolvido do zero para ciência de dados, oferecendo grande concorrência, pegada de memória mínima e velocidade excepcional. É perfeitamente adequado para aplicativos de dados estilo REPL, sendo os notebooks Jupyter um exemplo. Atualmente, o Zasper tem suporte total para Mac e suporte limitado para Linux. Os benchmarks mostram que ele usa 75% menos RAM e CPU do que o JupyterLab. Criado por Prasun Anand, visa ser uma solução gratuita e de código aberto que roda localmente, maximizando o poder dos computadores modernos.

Desenvolvimento

Autodesk apaga postagens antigas do fórum: Revolta de desenvolvedores

2025-01-02

O anúncio da Autodesk de arquivar (e efetivamente apagar) conteúdo de fóruns com mais de 10 anos provocou indignação na comunidade de desenvolvedores. Amostras de código valiosas, soluções e anos de experiência compartilhada estão prestes a desaparecer, deixando os desenvolvedores que dependem desse recurso com perdas significativas. Embora a Autodesk cite a melhoria da pesquisa e da experiência do usuário como justificativa, os desenvolvedores criticam a medida como 'monumentalmente estúpida', acusando a empresa de destruir o conhecimento da comunidade e danificar os relacionamentos de longo prazo. Muitos estão migrando para plataformas alternativas como TheSwamp e GitHub.

Kotaemon: Ferramenta RAG de código aberto para conversar com seus documentos

2025-01-02
Kotaemon: Ferramenta RAG de código aberto para conversar com seus documentos

Kotaemon é uma ferramenta de código aberto baseada em Geração Aumentada por Recuperação (RAG) que permite conversar com seus próprios documentos. Possui uma interface limpa e amigável, suportando vários Modelos de Linguagem Grandes (LLMs), como OpenAI, Azure OpenAI e LLMs locais. Seja você um usuário final realizando QA de documentos ou um desenvolvedor construindo seu próprio pipeline RAG, o Kotaemon fornece ferramentas convenientes e uma interface de usuário personalizável. Ele suporta vários tipos de arquivos e oferece recursos avançados, como QA multimodal, raciocínio complexo e configurações personalizáveis.

Desenvolvimento

Mercure: Solução de comunicação em tempo real rápida e confiável

2025-01-02
Mercure: Solução de comunicação em tempo real rápida e confiável

Mercure é uma solução aberta, fácil, rápida, confiável e eficiente em termos de bateria para enviar atualizações de dados para navegadores da web e outros clientes HTTP. É ideal para publicar atualizações assíncronas e em tempo real de recursos servidos por APIs da web, alimentando aplicativos web e móveis reativos. O protocolo e uma implementação Go pronta para produção, juntamente com bibliotecas e uma imagem Docker, estão disponíveis no GitHub. Uma versão gerenciada e altamente escalonável também é oferecida em Mercure.rocks.

Blogs apodrecem, Wikis esperam: Uma jornada de migração de um desenvolvedor

2025-01-02

Um desenvolvedor escreveu em seu site que blogs são como mercadorias desatualizadas, destinadas a apodrecer; enquanto wikis são como um abismo sem fim, esperando para ser explorado e escrito. Ele está migrando seu site para um novo sistema wiki, compartilhando seus pensamentos sobre blogs versus wikis e sua jornada na construção de um novo site. Ele argumenta que wikis refletem melhor a natureza dinâmica e comunitária do conteúdo, enquanto blogs parecem uma vitrine estática. Ele convida todos a se juntarem ao seu novo wiki, criando colaborativamente um espaço online vibrante e em constante evolução.

(j3s.sh)
Desenvolvimento migração de site

AROS OS 2024: Um Ano de Progresso Significativo em Direção ao 64 bits

2025-01-02
AROS OS 2024: Um Ano de Progresso Significativo em Direção ao 64 bits

2024 foi um ano excepcional para o sistema operacional AROS. O sistema principal Deadwood recebeu atualizações importantes em seus ramos de 32 bits e 64 bits, incluindo um emulador de 64 bits para compatibilidade com 32 bits. Distribuições principais como AROS One e Tiny AROS foram atualizadas, oferecendo suporte aprimorado para software e jogos. As recomendações de hardware foram expandidas, dando as boas-vindas ao A600GS. Destaques de software incluíram o navegador Odyssey atualizado com um mecanismo WebKit mais recente, um novo lançamento do editor de texto Final Writer e ports de jogos clássicos como Wipeout Rewrite e Doom 3. Em geral, o AROS deu passos significativos em 2024, preparando o cenário para um futuro de 64 bits.

Desenvolvimento 64 bits

SvarDOS: DR-DOS renascido como um sistema operacional de código aberto

2025-01-02
SvarDOS: DR-DOS renascido como um sistema operacional de código aberto

SvarDOS, um sistema operacional de código aberto baseado em DR-DOS, recentemente fez a transição de ser uma distribuição FreeDOS para ter seu próprio kernel EDRDOS. Ele pode ser executado em PCs 8086 ou 8088 e possui um gerenciador de pacotes com capacidade de rede. Embora a instalação padrão seja incrivelmente pequena, seu repositório robusto contém mais de 400 pacotes, incluindo drivers de rede, editores e jogos. O SvarDOS requer mais configuração manual do que o FreeDOS, mas seus recursos poderosos e mecanismo de atualização online o tornam um sistema operacional retro notável.

Desenvolvimento SO de código aberto

O Trabalho de Cola é Considerado Prejudicial: Um Guia de Sobrevivência para Engenheiros Eficazes

2025-01-02

Este artigo explora o conceito de "trabalho de cola" na engenharia de software. Embora crucial para a eficiência da equipe (por exemplo, atualização de documentação, tratamento de dívidas técnicas), esse trabalho pouco glamoroso muitas vezes não é recompensado, prejudicando os engenheiros que o priorizam. O autor argumenta que as empresas não recompensam o trabalho de cola porque querem que os engenheiros se concentrem na entrega de recursos, não em melhorias de eficiência geral. A estratégia eficiente é aplicar o trabalho de cola de forma tática aos projetos pelos quais você é responsável, garantindo seu sucesso, em vez de espalhar esforços de forma pouco eficaz. Isso não é uma política de escritório cínica; é baseado na realidade da baixa eficiência em grandes empresas e na priorização do crescimento sobre ganhos de eficiência de curto prazo.

Rails 8: Surpreendentemente Ótimo para Projetos Individuais

2025-01-01

Após construir e implantar um novo aplicativo Rails 8, ficou claro: o Rails é incrível, especialmente para projetos pequenos com um único desenvolvedor. O novo guia de Introdução é excelente, guiando você do zero a um aplicativo pronto para produção com autenticação, cache, texto enriquecido, CI e um banco de dados – tudo sem muita dificuldade. O Rails 8 simplifica a configuração do banco de dados, tornando o SQLite pronto para produção. A configuração de CI integrada e os minutos gratuitos do Github Actions tornam a integração contínua muito fácil. Um novo gerador de autenticação fácil de usar e uma implantação simplificada aprimoram ainda mais a experiência. O Rails 8 torna o desenvolvimento eficiente e acessível, mesmo para desenvolvedores solo.

Desenvolvimento

ClearSpace: Desintoxicação digital para reduzir o tempo de tela

2025-01-01
ClearSpace: Desintoxicação digital para reduzir o tempo de tela

ClearSpace é um aplicativo projetado para ajudar os usuários a reduzir o tempo de tela. Ele combate o vício em celular oferecendo recursos como limites de tempo de aplicativo, bloqueadores de distrações, ferramentas de gerenciamento de foco e formação de hábitos baseados em desafios. O aplicativo também inclui relatórios de tempo de tela, parceiros de responsabilização e exercícios de respiração conscientes para promover hábitos digitais mais saudáveis e melhorar o bem-estar digital.

Otimização Não Intuitiva: Acelerando Uniões de Caminhos no Skia

2025-01-01
Otimização Não Intuitiva: Acelerando Uniões de Caminhos no Skia

O autor encontrou gargalos de desempenho ao realizar operações de união de caminhos em um grande número de caminhos de gráficos vetoriais usando o Skia. A abordagem inicial ingênua de unir caminhos iterativamente era lenta, e embora o construtor de caminhos do Skia oferecesse otimização, ainda não era suficientemente rápido. Ao mergulhar profundamente nos detalhes internos das operações de caminho do Skia, descobriu-se que o número de curvas em cada caminho afetava significativamente o desempenho. Ao dividir a união de caminhos em intervalos menores e aplicar recursivamente uma estratégia de dividir e conquistar, o autor conseguiu uma aceleração significativa, superando, em última análise, o método padrão do Skia. Surpreendentemente, aumentar o número de operações de união por meio desse método resultou em um processamento mais rápido.

Desenvolvimento em Sandbox: Um Ano em uma Máquina Virtual

2025-01-01

Para evitar os problemas de um ambiente de desenvolvimento desordenado, o autor mudou para uma configuração de máquina virtual. Executando o Ubuntu 24.04 no VMware Fusion Pro em um macOS, todas as ferramentas e extensões de desenvolvimento residem dentro da VM, fornecendo um espaço de trabalho seguro e isolado. Embora algumas conveniências, como o compartilhamento de área de transferência perfeita, sejam perdidas, a experiência geral é tranquila, com impacto mínimo no desempenho da máquina host. O autor considera que essa abordagem oferece benefícios de estabilidade e segurança a longo prazo, superando os pequenos inconvenientes.

Glean do Meta: Indexação de código em larga escala

2025-01-01
Glean do Meta: Indexação de código em larga escala

O Meta lançou o Glean, um sistema de indexação de código open source projetado para eficiência e escalabilidade. O Glean coleta e processa informações de código-fonte, fornecendo-as a ferramentas de desenvolvedor por meio de uma linguagem de consulta flexível chamada Angle. Sua indexação incremental inovadora aborda os desafios de bases de código massivas, permitindo recursos como navegação de código, pesquisa e geração de documentação. A versatilidade do Glean suporta diversas linguagens e esquemas de dados personalizados, tornando-o um recurso valioso para desenvolvedores.

Desenvolvimento indexação de código

Design de Software é Construção de Conhecimento: Um Estudo de Caso

2025-01-01
Design de Software é Construção de Conhecimento: Um Estudo de Caso

Uma empresa terceirizou seu serviço de integração para um fornecedor SaaS e, posteriormente, decidiu criar um sistema de substituição interno, SVC, devido a preocupações com custos. Uma engenheira altamente qualificada, X10, completou o desenvolvimento do SVC de forma independente. No entanto, as equipes subsequentes lutaram para manter e modificar o sistema, experimentando uma eficiência extremamente baixa. O artigo analisa o motivo: o resultado do desenvolvimento de software não é código, mas a compreensão dos engenheiros do sistema e de sua lógica de negócios — uma 'teoria'. Após a saída de X10, a equipe carecia dessa 'teoria', levando a dificuldades na manutenção do sistema, tornando-o semelhante a uma 'casa mal-assombrada'. O autor argumenta que o design de software deve se concentrar na construção de conhecimento para facilitar a compreensão e a manutenção por equipes subsequentes, evitando a criação de 'sistemas legados'.

De Next.js para React puro: Aumento de velocidade do ComfyDeploy

2025-01-01

A equipe do ComfyDeploy migrou seu painel do Next.js para React puro, reduzindo o tempo de compilação de 3 minutos para 18 segundos e o tempo de recarga instantânea para menos de 200 ms. Isso foi motivado por problemas com os tempos de compilação lentos do Next.js, testes de API difíceis e altos custos de API do Vercel à medida que seu projeto crescia. A mudança para React com TanStack Router e Rspack melhorou drasticamente a eficiência do desenvolvimento e os forçou a otimizar o design da API e a estrutura do código. Embora tenham perdido alguns recursos do Next.js, eles consideraram as compensações válidas, resultando em compilações mais rápidas, uma experiência de desenvolvimento mais agradável e uma arquitetura mais otimizada.

Desenvolvimento
1 2 195 196 197 199 201 202 203 214 215