Category: Desenvolvimento

t2x: Uma ferramenta CLI alimentada por IA para operações de texto

2024-12-31

Um desenvolvedor está construindo uma ferramenta de linha de comando (CLI) de código aberto chamada t2x (abreviação de "texto para qualquer coisa"). O t2x utiliza modelos de linguagem locais ou em nuvem para executar várias operações de texto. Embora ainda não esteja totalmente completo, espera-se que a ferramenta seja lançada no GitHub durante as férias.

Desenvolvimento ferramenta CLI

Guix Constrói com Sucesso um Mono Totalmente Autônomo: Uma Longa Jornada

2024-12-31

O sistema Guix construiu com sucesso um ambiente Mono totalmente autônomo, superando inúmeros desafios no processo. O autor detalha sua jornada para suportar recursos C# 12.0, encontrando problemas com versões antigas do Mono que dependiam de binários pré-compilados. Através de uma série de patches, uma cadeia totalmente autônoma do Mono 1.2.6 ao 6.12.0 foi criada. Ao longo do caminho, bugs no Mono e no xbuild foram corrigidos, e o suporte ao runpath no Mono foi aprimorado. Isso não apenas resolveu o problema de compatibilidade C# do autor, mas também destacou a importância de builds totalmente autônomos e reprodutíveis e seu impacto na segurança de software.

Desenvolvimento Construção Autônoma

Tema Monokai Pro: para IDEs JetBrains e mais

2024-12-31
Tema Monokai Pro: para IDEs JetBrains e mais

Monokai Pro é um plugin de tema disponível para IDEs JetBrains (como IntelliJ IDEA, WebStorm, etc.), Sublime Text e VS Code. Ele possui mais de 70 ícones personalizados e oferece configurações ajustáveis para personalização. Uma versão de teste gratuita está disponível, mas uma assinatura mensal de € 1 remove pop-ups. Compatível com várias linguagens de programação e IDEs, é uma escolha popular entre engenheiros de software.

Desenvolvimento Plugin de Tema

Mozilla lança ferramenta de IA com foco na privacidade: Orbit

2024-12-31

A Mozilla lançou o Orbit, uma extensão para o Firefox que usa IA para resumir conteúdo da web, como e-mails, documentos, artigos e vídeos, priorizando a privacidade do usuário. O Orbit não exige criação de conta, não armazena dados de sessão ou informações pessoais e utiliza um modelo Mistral 7B LLM hospedado pela Mozilla. Os usuários podem resumir facilmente documentos e vídeos longos, obter rapidamente a essência de e-mails e artigos e obter informações específicas por meio de perguntas.

Transformando Planilhas do Google em Aplicativos Web Práticos: Uma História de Programador

2024-12-31
Transformando Planilhas do Google em Aplicativos Web Práticos: Uma História de Programador

Um repórter da Ars Technica compartilha sua jornada de transformar planilhas simples do Google em aplicativos web amigáveis para celular usando o Glide. Inicialmente criado para otimizar pedidos de entrega de comida, o aplicativo gerencia informações de restaurantes locais com busca e filtragem eficientes. Ele expandiu sua abordagem para criar aplicativos para receitas e itens de despensa, melhorando a vida cotidiana. O artigo mostra o poder das ferramentas sem código e como soluções simples podem resolver problemas do mundo real, destacando a engenhosidade e a busca por uma vida melhor.

Risco de Colisão SHA no Commit Inicial do Kernel Linux

2024-12-31

Kees Cook, desenvolvedor do kernel Linux, descobriu um commit de documentação do kernel cujo ID compartilha os 12 primeiros caracteres com o commit inicial do repositório do kernel. Essa possível colisão pode quebrar várias ferramentas que dependem de IDs de commit exclusivos. Embora ainda não tenha sido mesclado no upstream, esse commit serve como um caso de teste para abordar proativamente colisões SHA e prevenir problemas generalizados futuros.

Desenvolvimento Colisão SHA

Lightstorm: Compilador Ruby Minimalista Aumenta o Desempenho com MLIR

2024-12-31

A equipe DragonRuby desenvolveu o Lightstorm, um compilador Ruby minimalista com o objetivo de melhorar o desempenho de seu motor de jogo multiplataforma. Usando o MLIR, o Lightstorm traduz o bytecode da máquina virtual mruby para código C, otimizando o desempenho ao eliminar operações de carga/armazenamento e ramificações no loop do interpretador da VM. Os resultados de referência mostram melhorias de desempenho variando de 1% a 1200%, com uma redução média de cerca de 30% no tempo de execução e ciclos. Embora atualmente suporte apenas um subconjunto do Ruby, o projeto valida a viabilidade da pré-compilação de código Ruby para ganhos de desempenho. Os planos futuros incluem a substituição de componentes C críticos do motor por código Ruby compilado.

LineageOS 22.1 Lançado: Extração 30x Mais Rápida, Novos Apps de Música e PDF

2024-12-31

O LineageOS 22.1, baseado no Android 15 QPR1, está disponível com melhorias significativas. Os utilitários de extração são 30 vezes mais rápidos, e dois novos aplicativos foram adicionados: Twelve, um reprodutor de música, e Camelot, um leitor de PDF. SeedVault, Etar e WebView também foram atualizados. A numeração de versão foi ajustada para se alinhar com os números de versão menores do Android, facilitando a distinção entre as versões do Android. O projeto simplificou sua base de código, adicionou suporte para mais dispositivos e incentiva os desenvolvedores a contribuir com código e traduções.

Desenvolvimento

Tipos Soma e Switches Minimalistas para Lua: lua-match

2024-12-31
Tipos Soma e Switches Minimalistas para Lua: lua-match

lua-match é uma biblioteca Lua minimalista que fornece tipos soma e funcionalidade de switch. Ela utiliza uma função de marcação para uma maneira limpa e eficiente de lidar com vários tipos de dados e ramificações condicionais. Com uma simples função de marcação e uma tabela switch, você pode facilmente implementar um comportamento semelhante ao tipo soma e correspondência de padrões, simplificando significativamente seu código Lua. A biblioteca é de código aberto e usa a licença MIT.

Desenvolvimento Tipos Soma

Desenvolvedor cria jogo para Game Boy Advance em Zig

2024-12-31

Um desenvolvedor criou um jogo 2048 para Game Boy Advance usando a linguagem de programação emergente Zig. O artigo destaca as vantagens do Zig na programação embarcada, especialmente seu processo de compilação cruzada simplificado, gerenciamento de memória eficiente (incluindo structs compactadas) e poderosa geração de código em tempo de compilação. O autor compara a experiência de desenvolvimento usando C++ versus Zig, observando a facilidade e eficiência do Zig no tratamento do layout de memória peculiar do Game Boy Advance e registradores de hardware. Embora o Zig tenha algumas desvantagens, como suporte limitado a assembly embutido e instruções Thumb, suas numerosas vantagens o tornam uma escolha ideal para desenvolver jogos para consoles retrô.

Desenvolvimento Desenvolvimento Embarcado

Por que o Linux ainda não está pronto para a área de trabalho

2024-12-30

Este artigo explora as razões profundas pelas quais o Linux ainda não alcançou a adoção generalizada na área de trabalho. O autor destaca vários problemas-chave: compatibilidade de software deficiente entre distribuições, atualizações frequentes levando a bugs e regressões, financiamento insuficiente resultando em qualidade de software inferior, suporte inadequado para drivers de hardware e desafios na comunicação dentro da comunidade Linux. Embora o Linux se destaque em ambientes de servidor, sua presença na área de trabalho permanece prejudicada por esses obstáculos persistentes, dificultando sua capacidade de competir efetivamente com sistemas operacionais estabelecidos como o Windows.

Desenvolvimento compatibilidade de software

Torneio de Fontes de Codificação: Source Code Pro Vence

2024-12-30
Torneio de Fontes de Codificação: Source Code Pro Vence

John Gruber, do Daring Fireball, destaca um divertido 'torneio' de seleção de fontes de codificação criado pelo Typogram. Os usuários escolhem sua favorita entre 32 fontes monoespaçadas gratuitas. Embora algumas opções populares, como Consolas, estejam ausentes, e algumas fontes incluídas sejam menos atraentes, é um exercício válido. Melhorias desde o seu lançamento inicial incluem um exemplo de código JavaScript em vez de CSS e uma seleção maior de fontes. Gruber recomenda desabilitar os nomes das fontes para reduzir o viés. Sua vencedora consistente? Source Code Pro da Adobe, com IBM Plex Mono em segundo lugar.

Desenvolvimento fontes de codificação

RubyConf 2024: Hackday de Buildpack Nativo na Nuvem

2024-12-30
RubyConf 2024: Hackday de Buildpack Nativo na Nuvem

Richard Schneeman está organizando um hackday de Cloud Native Buildpack (CNB) na RubyConf 2024 para ajudar os desenvolvedores a aprender e contribuir com ferramentas de implantação Ruby. O evento oferece tarefas de diferentes níveis de dificuldade, desde modificar buildpacks existentes até criar novos, atendendo a diferentes níveis de habilidade. Mesmo que você não possa comparecer pessoalmente, ainda pode participar usando os recursos fornecidos.

Desenvolvimento Implantação Ruby

Mocks de banco de dados: mais problemas do que valem a pena?

2024-12-30
Mocks de banco de dados: mais problemas do que valem a pena?

Embora tentador pela velocidade e simplicidade, o autor argumenta que o uso de mocks de banco de dados para testes, finalmente, causa mais problemas do que resolve. Um exemplo de criação de usuário destaca as diferenças entre mocks e testes contra um banco de dados real. Testes de banco de dados reais revelam problemas potenciais precocemente, como violações de restrições exclusivas, tratamento de valores padrão e gargalos de desempenho, economizando tempo de depuração e reduzindo riscos de produção. À medida que os aplicativos evoluem e os esquemas mudam, os testes de banco de dados reais lidam melhor com novas validações, modificações de tipo de dados e alterações na precisão do timestamp, garantindo que o código esteja alinhado com o banco de dados real. O autor sugere priorizar testes de banco de dados reais para camadas de acesso a dados, enquanto o usa na camada de serviço para expor interações de lógica de negócios com dados. As camadas de controladores, no entanto, podem simular chamadas de serviço de forma eficaz. O equilíbrio entre testes de banco de dados reais e mocks é essencial para construir aplicativos robustos.

Protocolo de Rede Homa: Um Novo Desafio para TCP/UDP

2024-12-30

Homa é um novo protocolo de transporte de rede projetado para aplicações em data centers, com o objetivo de reduzir a sobrecarga de transmissão de inúmeras mensagens pequenas. Ao contrário do TCP/UDP tradicional, ele elimina a configuração de conexão, empregando um mecanismo exclusivo de solicitação-resposta e filas priorizadas para minimizar a latência. Atualmente, o Homa está buscando a inclusão no kernel do Linux, mas seu futuro pode depender muito da aceleração por hardware em dispositivos de rede.

Desenvolvimento protocolo de rede

Avaliando a capacidade de geração de código de LLMs: Apresentando o MultiCodeBench

2024-12-30
Avaliando a capacidade de geração de código de LLMs: Apresentando o MultiCodeBench

Assistentes de programação baseados em IA e alimentados por Large Language Models (LLMs) de código tornaram-se cada vez mais comuns, aumentando significativamente a produtividade dos desenvolvedores. No entanto, os benchmarks existentes de geração de código focam principalmente em cenários de uso geral, deixando o desempenho dos LLMs em domínios de aplicativos específicos em grande parte desconhecido. Este artigo apresenta o MultiCodeBench, um novo benchmark composto por 2.400 tarefas de programação em 12 domínios populares de desenvolvimento de software e 15 linguagens de programação. Experimentos em onze LLMs principais revelam seu desempenho na geração de código em diferentes domínios, oferecendo insights práticos para desenvolvedores na seleção de LLMs e orientação para desenvolvedores de modelos para melhorar as capacidades de geração de código específicas do domínio.

Desenvolvimento Geração de Código

ts_zip: Compressão de Texto usando Modelos de Linguagem Grandes

2024-12-30

Fabrice Bellard lançou a ts_zip, uma ferramenta de compressão de texto que utiliza o modelo de linguagem grande RWKV 169M v4 para alcançar taxas de compressão muito superiores às de ferramentas tradicionais. Embora necessite de GPU e 4 GB de RAM, e seja mais lenta que os compressores convencionais (até 1 MB/s em uma RTX 4090), a ts_zip demonstra uma compressão impressionante em textos em inglês e outros idiomas, incluindo código-fonte. A taxa de compressão é medida em bits por byte (bpb), com resultados mostrando desempenho superior ao xz em conjuntos de dados como enwik8 e enwik9. A avaliação do modelo determinística garante a descompactação consistente em diferentes configurações de hardware e software.

Desenvolvimento compressão de texto

Avanço na Avaliação de Modelos de Linguagem Grandes para Geração de Testes Unitários

2024-12-30
Avanço na Avaliação de Modelos de Linguagem Grandes para Geração de Testes Unitários

Pesquisadores realizaram uma avaliação abrangente do potencial de Modelos de Linguagem Grandes (LLMs) na automação da geração de testes unitários. Eles compararam o desempenho de cinco LLMs de código aberto contra o GPT-4 de código fechado e a ferramenta tradicional Evosuite em 17 projetos Java, investigando o impacto de diferentes estratégias de prompt. O estudo descobriu que os LLMs de código aberto oferecem vantagens em privacidade de dados e superam em desempenho em determinadas tarefas, mas também revelou limitações na geração de testes unitários baseada em LLM. Esta pesquisa fornece insights valiosos para orientar aplicações futuras de LLMs nessa área.

Desenvolvimento Testes Unitários

Aviso de Comunicação Interna da Equipe Diaspora*

2024-12-30
Aviso de Comunicação Interna da Equipe Diaspora*

Este trecho é de uma comunicação interna da equipe Diaspora*. Ele afirma que o site requer JavaScript para funcionar corretamente e fornece instruções sobre como relatar conteúdo, incluindo os critérios de relato. Também há links para discussões e suporte do projeto Diaspora*, juntamente com informações do site, como versão do código, estatísticas do pod, termos de serviço, informações de contato e uma opção de modo otimizado para toque.

Desenvolvimento Manutenção do Site

SQLite: Uma Lenda Inacreditável de Banco de Dados

2024-12-30

O SQLite, o banco de dados mais amplamente implantado do mundo, é mantido por uma equipe de três pessoas, rejeitando contribuições externas, mas conquistando o mundo com seu desempenho excepcional e estabilidade. Nascido em um navio de guerra dos EUA para resolver problemas de inatividade do servidor, tornou-se a pedra angular de trilhões de bancos de dados. O SQLite não é de código aberto, mas sim um software de domínio público, com menos restrições do que qualquer licença de código aberto. Seu rigoroso processo de teste, simulando até mesmo situações extremas como travamentos do sistema operacional, garante sua confiabilidade incrivelmente alta. No entanto, seu modelo de negócios único — gerando receita por meio de suporte pago e associações — também é digno de nota. A lenda do SQLite reside não apenas em sua proeza técnica, mas também na persistência e inovação por trás dele.

(avi.im)
Desenvolvimento lenda

Nova ferramenta de compressão de mensagens curtas: ts_sms

2024-12-30

ts_sms é uma nova ferramenta para compressão de mensagens curtas usando modelos de linguagem grandes. Ela usa compressão sem perdas, reduzindo bits identificando e eliminando redundância estatística sem perda de informação. Comparada com ferramentas como brotli, ts_sms apresenta vantagens na compressão de mensagens pequenas. Versões para Linux e Windows estão disponíveis. Sua tecnologia principal é similar ao ts_zip, utilizando um sistema de preenchimento específico compatível com codificação aritmética, eliminando a necessidade de codificar explicitamente o comprimento da mensagem.

Desenvolvimento

Unidades de Execução Frequentemente São Pipelinadas

2024-12-30

Este artigo explora o pipeline de unidades de execução em microarquiteturas fora de ordem. A autora inicialmente supôs que as unidades de execução permanecem ocupadas até a conclusão da µop, mas usando a microarquitetura Firestorm (A14 e M1) como exemplo, demonstra que duas unidades de execução inteiras podem lidar com múltiplas multiplicações simultaneamente, cada uma levando três ciclos. Ao comparar sequências de instruções dependentes e independentes, a autora revela que muitas combinações de unidade de execução/µop são altamente pipelinadas, permitindo que uma µop seja emitida enquanto a unidade processa outras. Isso reduz o tempo de execução para instruções independentes de 6 ciclos previstos para 4. Finalmente, a autora explica por que as tabelas de latência e largura de banda de instruções especificam a taxa de transferência recíproca – é equivalente a ciclos/instrução.

Panel Graphic Walker: Exploração interativa de dados com HoloViz Panel

2024-12-30
Panel Graphic Walker: Exploração interativa de dados com HoloViz Panel

O Panel Graphic Walker é uma biblioteca Python que integra o poder do Graphic Walker ao HoloViz Panel para exploração interativa de dados em Jupyter Notebooks e aplicativos Panel. Ele oferece uma interface semelhante ao Tableau, permitindo que os usuários criem visualizações e tabelas dinâmicas rapidamente com código mínimo. Ele suporta vários backends de dados e renderizadores e pode lidar com grandes conjuntos de dados usando computação do lado do servidor. O projeto está em seus estágios iniciais; recomenda-se fixar uma versão específica.

Zig: Mais Seguro e Rápido que Rust Inseguro?

2024-12-30
Zig: Mais Seguro e Rápido que Rust Inseguro?

Este post de blog compara Rust e Zig através da implementação de um interpretador de bytecode com garbage collection. O autor achou o Rust inseguro incrivelmente desafiador, citando regras de aliasing complexas e comportamento indefinido como obstáculos importantes. Em contraste, Zig ofereceu uma experiência mais amigável para desenvolvedores em operações de memória inseguras, incluindo detecção de vazamento de memória embutida e ergonomia de ponteiros melhorada. A implementação em Zig acabou sendo mais segura, rápida e fácil de desenvolver do que sua contraparte em Rust.

Desenvolvimento Segurança de Memória

curl recebe atualização importante: suporte à leitura de arquivos parciais

2024-12-30
curl recebe atualização importante: suporte à leitura de arquivos parciais

O lançamento do curl 8.12.0 trará um recurso empolgante: a capacidade de ler partes de arquivos. Os usuários agora podem usar um novo sistema de variáveis para extrair intervalos específicos de bytes de arquivos e usá-los em linhas de comando curl. Isso adiciona flexibilidade significativa à maneira como o curl lida com arquivos, permitindo tarefas como extrair o início de um arquivo como nome de usuário ou uma seção no meio para um corpo POST. Isso expande significativamente as capacidades do curl, proporcionando aos usuários uma ferramenta de linha de comando mais robusta.

Desenvolvimento manipulação de arquivos

curl-impersonate atualizado: recursos aprimorados de imitação de navegador

2024-12-30
curl-impersonate atualizado: recursos aprimorados de imitação de navegador

O projeto lexiforest/curl-impersonate é um fork ativo do curl-impersonate, aprimorando as capacidades de imitação de navegador e oferecendo suporte a mais versões e destinos de build. Este projeto modifica o curl para imitar o comportamento de navegadores principais (Chrome, Edge, Safari e Firefox) durante as conexões TLS e HTTP, contornando restrições de sites baseadas em impressão digital. As atualizações incluem suporte para ECH, compressão ZSTD, curva X25519Kyber768 e mais versões de navegador, fornecendo ferramentas de linha de comando e funções de biblioteca aprimoradas.

Desenvolvimento imitação de navegador

86Box: Emulando o Legado do x86

2024-12-30
86Box: Emulando o Legado do x86

O 86Box é um emulador x86 de baixo nível que executa sistemas operacionais e softwares mais antigos projetados para sistemas IBM PC e compatíveis, de 1981 até designs de sistemas relativamente recentes baseados no barramento PCI. Possui uma interface fácil de usar, emulação de baixo nível de processadores baseados em 8086 até o Celeron da era Mendocino, grande variedade de personalização de máquinas virtuais e suporte a diversos periféricos. Permite a execução de MS-DOS, versões antigas do Windows, OS/2, diversas distribuições Linux e sistemas antigos como BeOS ou NEXTSTEP.

Desenvolvimento emulador x86

MiceWine: Executando aplicativos e jogos do Windows em Android

2024-12-30
MiceWine: Executando aplicativos e jogos do Windows em Android

O projeto MiceWine visa executar aplicativos e jogos do Windows em smartphones Android. Ele usa uma versão personalizada do Wine compilada para Android e Box64 para melhor desempenho. Atualmente em desenvolvimento constante, usa um XServer baseado em Termux-X11. Suporta Android 10 e superior. GPUs Adreno 7xx e 6xx são suportadas com Turnip/Zink, enquanto outras têm suporte parcial com nativo/Zink (experimental). Vulkan nativo em GPUs não Adreno é experimental e requer testes.

Desenvolvimento Aplicativos Windows

Analogia hidráulica: um obstáculo ao ensino de eletrônica

2024-12-30
Analogia hidráulica: um obstáculo ao ensino de eletrônica

Muitos livros introdutórios de eletrônica usam a analogia hidráulica para explicar circuitos, comparando a corrente elétrica ao fluxo de água e as baterias a bombas. No entanto, o autor argumenta que essa analogia é profundamente falha, especialmente ao explicar componentes semicondutores como JFETs e MOSFETs. A analogia falha em representar com precisão suas curvas características, dificultando o aprendizado. O autor defende o abandono dessa analogia imprecisa e, em vez disso, aprender eletrônica a partir de princípios mais fundamentais.

Python em 2024: Mais rápido, mais poderoso e mais popular do que nunca

2024-12-30
Python em 2024: Mais rápido, mais poderoso e mais popular do que nunca

Em 2024, o Python consolidou sua posição como uma das principais linguagens de programação. O Python 3.13 introduziu um aumento significativo de desempenho com a versão experimental "sem GIL" e um compilador JIT. A remoção de módulos obsoletos simplificou a linguagem, enquanto seu papel crucial em IA, aprendizado de máquina e ciência de dados impulsionou sua popularidade a novas alturas. O Python superou o JavaScript em uso no GitHub e alcançou um notável 18% no índice Tiobe, consolidando seu lugar entre as três principais linguagens de programação.

Desenvolvimento
1 2 197 198 199 201 203 204 205 214 215