Category: Desenvolvimento

Aprimorando a Busca Vetorial com Reordenação ColBERT no PostgreSQL

2025-01-24
Aprimorando a Busca Vetorial com Reordenação ColBERT no PostgreSQL

A busca vetorial tradicional usa embeddings de sentenças, mas pode perder detalhes granulares. O ColBERT supera isso representando o texto como multi-vetores de nível de token, retendo informações mais sutis e melhorando a precisão. No entanto, a interação de nível de token é computacionalmente cara. Este post demonstra a combinação da busca vetorial de nível de sentença com reordenação de nível de token ColBERT usando as extensões PostgreSQL VectorChord e pgvector. Esta abordagem realiza uma busca inicial rápida usando embeddings de sentença, seguida de reordenação com ColBERT para melhores resultados. Melhorias significativas foram observadas em vários conjuntos de dados BEIR.

Desenvolvimento busca vetorial

Configuração minimalista do Arch Linux: Comece rapidamente

2025-01-24

Este guia fornece uma série de tutoriais concisos e práticos para ajudar novos usuários do Arch Linux a configurar rapidamente um ambiente de trabalho funcional. Em vez de replicar a extensa ArchWiki, ele se concentra em uma configuração minimalista do gerenciador de janelas i3, guiando os usuários por tarefas essenciais, como conectividade à internet, configuração de exibição, uso de USB e copiar e colar. Ele também abrange controles de multimídia, configurações de papel de parede e outras dicas úteis, com canais de feedback incentivando a participação do usuário em melhorias.

Ignore os Golpistas: IA Não Vai Matar a Indústria de Software

2025-01-24
Ignore os Golpistas: IA Não Vai Matar a Indústria de Software

Muitos afirmam que a IA vai substituir os desenvolvedores de software, mas o autor argumenta que isso é um absurdo; os melhores dias do desenvolvimento de software ainda estão por vir. As ferramentas de IA aumentam a produtividade dos desenvolvedores (Paradoxo de Jevons), desbloqueando mais projetos, não menos empregos. Mesmo que a IA lide com algumas tarefas, o desenvolvimento de software envolve comunicação, design e arquitetura de sistemas – tudo isso requerendo intervenção humana. O custo computacional e as limitações da IA também impedem a substituição completa dos humanos. Em última análise, a IA acelerará o progresso tecnológico, impulsionando o crescimento econômico e criando mais oportunidades. Os desenvolvedores de software devem abraçar a IA, aprender novas ferramentas e métodos e se aprimorar continuamente.

Desenvolvimento

Linux 6.14 adiciona suporte para a tecla Microsoft Copilot

2025-01-24

O kernel Linux 6.14 introduz suporte para a tecla Microsoft Copilot encontrada em novos laptops pré-carregados com Windows. Essa tecla, usada para iniciar o assistente de IA Microsoft Copilot ou software de chatbot semelhante, não era mapeada no Linux anteriormente. A atualização modifica o driver de teclado atkbd, mapeando a tecla F23 para o atalho Copilot (Meta+Shift+F23). Além disso, o Linux 6.14 possui suporte aprimorado para controladores de jogos e outras melhorias no subsistema de entrada.

Desenvolvimento Suporte de Hardware

Adeus, bcachefs: A migração relutante de um usuário

2025-01-23

Após um ano usando o sistema de arquivos bcachefs, Steinar Gunderson migrou para o XFS. O motivo? Falta de confiança no futuro do bcachefs. Embora aprecie seus recursos de compressão e a capacidade de misturar SSDs e HDDs, ele achou a postura intransigente do desenvolvedor, a hostilidade a distribuições como o Debian e inúmeros bugs não corrigidos (incluindo bugs de perda catastrófica de dados) insuportáveis. Relatar bugs se mostrou uma experiência frustrante, com o desenvolvedor priorizando discussões com o Debian em vez de corrigir bugs. Ele acabou optando pela estabilidade do XFS, sacrificando os benefícios de compressão, uma troca que ele considera válida.

Desenvolvimento

GitHub: Dithering Fractal Estável em Superfície

2025-01-23
GitHub: Dithering Fractal Estável em Superfície

Rune Skovbo Johansen inventou uma nova técnica de dithering fractal estável em superfície. Isso permite que padrões de dither em cenas 3D fiquem presos às superfícies, mantendo o tamanho e o espaçamento dos pontos aproximadamente constantes na tela, mesmo quando as superfícies se movem. Este repositório GitHub fornece um projeto de exemplo Unity, arquivos de origem de shader e textura, e detalhes sobre as propriedades de dither e opções globais como compensação radial e camadas quantizadas. A técnica consegue isso adicionando ou removendo pontos dinamicamente e oferece texturas 3D com diferentes densidades de pontos. Licenciado sob MPL-2.0, incentivando contribuições da comunidade.

Desenvolvimento Gráficos 3D

Polars x Pandas: Uma comparação lado a lado

2025-01-23
Polars x Pandas: Uma comparação lado a lado

Este livro compara detalhadamente as bibliotecas de manipulação de dados Polars e Pandas, argumentando que o Polars oferece uma abordagem mais intuitiva e eficiente. Através de numerosos exemplos, ele mostra as vantagens do Polars em indexação, encadeamento de métodos, desempenho, reformulação de dados, séries temporais e escalabilidade. O Polars supera consistentemente o Pandas em velocidade e legibilidade. O livro é direcionado a leitores com alguma experiência em manipulação de dados, particularmente aqueles familiarizados com o Pandas.

Desenvolvimento manipulação de dados

Adeus à complicação: Ative seus dispositivos com um único comando – Apresentando a ferramenta 'wol'

2025-01-23
Adeus à complicação: Ative seus dispositivos com um único comando – Apresentando a ferramenta 'wol'

'wol' é uma ferramenta Wake-On-LAN (WOL) poderosa que permite ativar facilmente seus dispositivos de rede por meio de uma interface de linha de comando ou interface web. Suporta a configuração de várias máquinas, fornecendo uma visualização de lista simples e funcionalidade de ativação com um clique. Se você prefere comandos CLI ou uma interface gráfica, poderá gerenciar e ativar seus computadores ou servidores de maneira eficiente. O suporte ao Docker também está incluído para implantação fácil.

Desenvolvimento

Codificação sem bugs: Uma abordagem viável para pequenas equipes e startups

2025-01-23
Codificação sem bugs: Uma abordagem viável para pequenas equipes e startups

Um engenheiro sênior compartilha sua experiência em buscar a 'codificação sem bugs' no Telegram e em vários projetos. Embora pareça ineficiente, ele argumenta que essa abordagem evita custos de manutenção massivos e esgotamento da equipe a longo prazo. O autor usa anedotas pessoais e exemplos de projetos para demonstrar que focar na qualidade do código e na manutenibilidade, juntamente com a velocidade do produto, leva a um desenvolvimento eficiente e produtos de alta qualidade.

Desenvolvimento Qualidade de Código

Kit de Início de Vídeo com IA de Código Aberto para Produção Baseada em Navegador

2025-01-23
Kit de Início de Vídeo com IA de Código Aberto para Produção Baseada em Navegador

O projeto open-source video-starter-kit oferece um kit de ferramentas baseado em navegador para criação de vídeo com IA. Construído com Next.js, Remotion e fal.ai, ele integra modelos de IA como Minimax, Hunyuan e LTX, permitindo processamento de vídeo nativo do navegador, composição multiclipes, integração de trilha de áudio, suporte de narração e tratamento de duração de vídeo estendido. Os desenvolvedores podem aproveitar os componentes de IU prontos para uso e o suporte TypeScript para desenvolvimento rápido de aplicativos de vídeo com IA.

Desenvolvimento vídeo com IA

llama.vim: Plugin Vim para Complementação de Código com LLM

2025-01-23
llama.vim: Plugin Vim para Complementação de Código com LLM

llama.vim é um poderoso plugin do Vim que oferece complementação inteligente de código e texto usando um LLM rodando localmente. Ele suporta vários modelos de LLM e possui desempenho eficiente mesmo em hardware de baixo custo, graças à gestão inteligente de contexto. Fácil de instalar e configurar, o plugin oferece opções personalizáveis de complementação, aumentando significativamente a produtividade na codificação.

TMSU: Um sistema de arquivos virtual baseado em tags para escapar do pesadelo do sistema de arquivos hierárquico

2025-01-23

TMSU é uma ferramenta para marcar seus arquivos, oferecendo uma interface simples de linha de comando para aplicar tags e um sistema de arquivos virtual que fornece uma visão baseada em tags de seus arquivos a partir de qualquer programa. Ele não modifica seus arquivos; em vez disso, mantém seu próprio banco de dados e monta uma visão baseada em tags. Você pode marcar arquivos, consultá-los usando operadores lógicos (e, ou, não) e montar um sistema de arquivos virtual para acesso de outros aplicativos. Este VFS permite a gerência de tags criando e excluindo diretórios.

Desenvolvimento sistema de arquivos virtual

Sistemas de arquivos: mais perigosos do que você imagina

2025-01-23

Uma palestra na Deconstruct 2019 revelou verdades chocantes sobre sistemas de arquivos: desde as inconsistências e dificuldades de usar corretamente a API de arquivos, até bugs sérios nos próprios sistemas de arquivos e as altas taxas de erro dos discos, a corrupção de dados é desenfreada. O palestrante aprofundou-se nas questões de atomicidade de gravações de arquivos e os desafios impostos por diferentes modos de sistema de arquivos (por exemplo, data=journal, ordered, writeback do ext3/ext4). Mesmo programadores experientes lutam para evitar erros que levam à perda ou corrupção de dados. A palestra também analisou erros em bancos de dados e sistemas de controle de versão populares e sugeriu o uso de bancos de dados em vez de arquivos para melhorar a confiabilidade dos dados.

Bunster: Compilando scripts Shell em binários estáticos

2025-01-23
Bunster: Compilando scripts Shell em binários estáticos

O projeto Bunster visa compilar scripts shell em binários estáticos eficientes, melhorando a portabilidade e a segurança. Em vez de simplesmente empacotar scripts, ele utiliza o compilador Go para traduzir scripts em código de máquina nativo, permitindo a execução multiplataforma (atualmente apenas Unix). O Bunster suporta principalmente scripts Bash, com planos para suportar mais shells e adicionar recursos como um sistema de módulos, incorporação de ativos estáticos, bloqueio de senha e expiração. O projeto está em seus estágios iniciais, mas já implementou muitos recursos principais e segue o versionamento SemVer.

libmodulor: Uma biblioteca TypeScript para aplicações comerciais

2025-01-23
libmodulor: Uma biblioteca TypeScript para aplicações comerciais

libmodulor é uma biblioteca TypeScript que visa acelerar a criação de aplicações comerciais de alta qualidade. Ela usa uma arquitetura em camadas (UseCase, App, Product, Target), com foco em segurança de tipos e testes de ponta a ponta. Desenvolvedores podem usar seus bancos de dados, frameworks frontend, servidores e ferramentas preferidos; libmodulor fornece primitivas de alto nível para evitar código repetitivo e travamento de fornecedores. Embora ainda esteja em desenvolvimento ativo, já foi usado em projetos piloto.

Desenvolvimento Aplicações Comerciais

7 Lições de construir um aplicativo de IA em pequena escala

2025-01-23
7 Lições de construir um aplicativo de IA em pequena escala

Este artigo detalha sete lições aprendidas na construção de um assistente de IA em pequena escala durante o último ano. O autor descobriu que problemas de escalabilidade surgiram mais cedo do que o esperado. A programação de IA é estocástica, exigindo ajustes iterativos de prompts, ajuste fino, ajuste de preferência e hiperparâmetros. A qualidade dos dados é crucial, com investimento significativo de tempo na construção e manutenção de um conjunto de dados de alta qualidade e pipeline de processamento. A avaliação do modelo é igualmente importante, pois conjuntos de validação simples geralmente não capturam casos de borda do mundo real. Confiança e qualidade são primordiais, exigindo experimentação e avaliação contínuas. O próprio pipeline de treinamento é a propriedade intelectual central, constantemente refinado por meio de iteração. Finalmente, o autor adverte contra a dependência excessiva de bibliotecas de IA devido à possível falta de completude ou má integração do ecossistema; construir diretamente sobre abstrações de baixo nível é frequentemente mais confiável.

Scanners de segurança da Microsoft quebram links de uso único: Uma norma cibernética em mudança

2025-01-23
Scanners de segurança da Microsoft quebram links de uso único: Uma norma cibernética em mudança

Bert Hubert revela que scanners de segurança da Microsoft e outros estão acessando links em emails e executando JavaScript, incluindo o envio de solicitações POST. Isso viola a norma de longa data de que solicitações POST não devem ter efeitos colaterais, quebrando links de login de uso único. O artigo discute o impacto no desenvolvimento web e pede maior transparência das grandes empresas de tecnologia ao mudar as normas da internet.

Desenvolvimento Links de uso único

O pesadelo da dependência de pacote local do Xcode 16: por que estou usando dois editores

2025-01-23
O pesadelo da dependência de pacote local do Xcode 16: por que estou usando dois editores

O desenvolvedor Christian Tietze encontrou problemas significativos com o Xcode 16 enquanto trabalhava em um pacote Swift. A abordagem alterada do Xcode 16 para referenciar pacotes locais quebrou operações de arquivos, execução de testes e muito mais. Para superar isso, ele foi forçado a usar o Xcode (para compilar e executar o aplicativo) e o Emacs (para editar e testar o pacote). A postagem lamenta a atualização com bugs do Xcode 16, a política agressiva de atualização de software da Apple e recomenda que os desenvolvedores aprendam um editor de backup.

Desenvolvimento Pacote Swift

Um mergulho profundo nos algoritmos de compressão: de DEFLATE a ZSTD

2025-01-23

Enquanto construía o MonKafka, uma implementação do Broker Kafka, o autor mergulhou nos quatro algoritmos de compressão suportados pelo Kafka: GZIP, Snappy, LZ4 e ZSTD. O artigo fornece uma explicação detalhada desses algoritmos, cobrindo compressão sem perdas e com perdas, codificação de comprimento de execução, algoritmos Lempel-Ziv, codificação Huffman e um mergulho profundo na implementação do algoritmo DEFLATE, incluindo LZ77, codificação Huffman e tabelas de hash. Além disso, ele compara o desempenho do Snappy, LZ4 e ZSTD e apresenta brevemente a codificação aritmética e o algoritmo FSE. O autor conclui resumindo o conceito central dos algoritmos de compressão: remover redundâncias de dados, reduzir a entropia e extrair informações.

Desenvolvimento algoritmos de compressão

Depurando Componentes de Servidor React no Next.js com OpenTelemetry

2025-01-23
Depurando Componentes de Servidor React no Next.js com OpenTelemetry

Componentes de Servidor React (RSCs) oferecem benefícios de desempenho, mas introduzem desafios de depuração. Este artigo demonstra o uso do OpenTelemetry, uma estrutura de observabilidade poderosa, para rastrear a atividade do RSC em aplicativos Next.js. O OpenTelemetry permite rastrear solicitações, coletar métricas e agregar logs, fornecendo aos desenvolvedores insights sobre a execução de componentes do lado do servidor, incluindo eventos do ciclo de vida, operações de busca de dados e desempenho de renderização. Um estudo de caso do mundo real mostra a otimização de uma página carregando várias chamadas da API do GitHub usando o OpenTelemetry. O artigo detalha a instalação dos pacotes necessários, a criação de um arquivo instrumentation.js e a configuração de destinos de exportação de dados. Também explica a criação de spans personalizados para insights mais granulares.

Desenvolvimento

Bun 1.2: Uma atualização massiva para o tempo de execução JavaScript de pilha completa

2025-01-23

O Bun 1.2 é uma atualização enorme, melhorando significativamente seu kit de ferramentas JavaScript e TypeScript de pilha completa. Os recursos principais incluem compatibilidade aprimorada com Node.js (atingida executando a suíte de testes do Node.js), armazenamento de objetos S3 integrado (Bun.s3) e clientes Postgres (Bun.sql), um arquivo de bloqueio baseado em texto (bun.lock) para gerenciamento de dependências mais rápido e seguro e um aumento de 3x na velocidade do Express. O Bun 1.2 também adiciona suporte para módulos Node.js cruciais como node:http2, node:dgram, node:cluster e node:zlib, juntamente com melhorias para complementos C++ usando APIs V8.

(bun.sh)
Desenvolvimento

RealtimeSanitizer para Rust: Uma Nova Biblioteca de Código Aberto

2025-01-23

Este post apresenta `rtsan-standalone-rs`, uma nova biblioteca de código aberto que traz o RealtimeSanitizer (RTSan) do LLVM para Rust. O RTSan ajuda a detectar violações de tempo real difíceis de encontrar em seu código, como alocações de memória, essenciais para aplicações como processamento de áudio e carros autônomos. O autor detalha a implementação, o uso com macros como `nonblocking` e `blocking`, e como integrá-lo em seus projetos Rust. Essa biblioteca oferece acesso imediato às capacidades do RTSan em Rust estável, melhorando a segurança e previsibilidade de aplicações em tempo real antes de sua integração oficial no LLVM20.

Desenvolvimento Programação em tempo real

O mau uso do Princípio de Pareto na tecnologia: 80% de esforço, 20% de produto?

2025-01-23
O mau uso do Princípio de Pareto na tecnologia: 80% de esforço, 20% de produto?

No desenvolvimento de jogos, o conceito de 'fatia vertical' enfatiza a completude, enquanto o 'Produto Mínimo Viável' (MVP) predominante na indústria de tecnologia prioriza a iteração rápida. O autor argumenta que a ênfase excessiva no Princípio de Pareto (80% dos resultados com 20% de esforço) leva muitos produtos tecnológicos a permanecerem como MVPs grosseiros, faltando polimento final e deixando os usuários insatisfeitos. Isso não é visto apenas em aplicativos e softwares, mas também afeta a IA, como carros autônomos e geração de imagens; são promissores, mas longe de serem práticos. O autor pede uma mudança de mentalidade, valorizando a completude e a experiência do usuário em vez de iteração rápida e financiamento.

Desenvolvimento Princípio de Pareto

Biblioteca Python para o Serviço de Texto para Fala do Microsoft Edge (Sem Edge ou Chave API Necessária)

2025-01-23
Biblioteca Python para o Serviço de Texto para Fala do Microsoft Edge (Sem Edge ou Chave API Necessária)

edge-tts é uma biblioteca Python que permite usar o serviço online de texto para fala do Microsoft Edge diretamente do seu código Python ou por meio de ferramentas de linha de comando (`edge-tts` e `edge-playback`). Não precisa do Microsoft Edge, Windows ou de uma chave API. Ele suporta vários idiomas e vozes, oferecendo personalização de velocidade, volume e tom. Instale via pip e use argumentos simples de linha de comando ou a API Python.

Desenvolvimento

System Informer: Sua ferramenta multipropósito para monitoramento e depuração de sistemas

2025-01-23

O System Informer é uma ferramenta gratuita, poderosa e multipropósito que ajuda você a monitorar recursos do sistema, depurar softwares e detectar malwares. Ele oferece gráficos e estatísticas para identificar rapidamente processos que consomem muitos recursos, permite pesquisar por handles de arquivos e DLLs, exibe visões gerais detalhadas da atividade do sistema e mostra o uso de disco e rede em tempo real. Além disso, permite criar, editar e controlar serviços, monitora o uso da GPU, fornece rastros de pilha detalhados e oferece suporte a temas claros e escuros. Essencial para administradores de sistemas e desenvolvedores.

Tailwind CSS v4.0: Velocidade e Flexibilidade Inacreditáveis

2025-01-23
Tailwind CSS v4.0: Velocidade e Flexibilidade Inacreditáveis

O Tailwind CSS v4.0 chegou! Esta versão é uma reformulação completa da estrutura, com melhorias significativas de desempenho e maior flexibilidade. As compilações completas são até 5 vezes mais rápidas, e as compilações incrementais são mais de 100 vezes mais rápidas. Aproveitando recursos de CSS de ponta, como camadas em cascata, propriedades personalizadas e a função `color-mix()`, o v4.0 foi projetado para a web moderna. A configuração foi simplificada com menos dependências, configuração zero e uma única linha de CSS. Uma nova configuração priorizando CSS permite a personalização diretamente no seu CSS, juntamente com variáveis de tema CSS, valores de utilitários dinâmicos e variantes. Outras adições significativas incluem uma paleta de cores P3 modernizada, consultas de contêiner, novos utilitários de transformação 3D, APIs de gradiente expandidas e suporte a `@starting-style`. Esta versão melhora significativamente a eficiência do desenvolvedor e a experiência do usuário.

Desenvolvimento Estrutura CSS

Retrospectiva F-Droid 2024: Descentralização e Expansão do Ecossistema

2025-01-23
Retrospectiva F-Droid 2024: Descentralização e Expansão do Ecossistema

O F-Droid obteve avanços significativos em 2024, focando na descentralização da distribuição de aplicativos e na expansão de seu ecossistema. Com financiamento de bolsas da Filecoin Foundation e do Horizonte Europa da UE, o F-Droid melhorou a lógica principal do cliente, adicionou suporte para IPFS e Filecoin e atualizou a ferramenta Repomaker para facilitar a criação de repositórios. A comunidade também brilhou, adicionando mais de 402 novos aplicativos e atualizando mais de 7205 aplicativos. Em 2025, o F-Droid continuará seu trabalho no projeto Mobifree e dá as boas-vindas a dois novos membros da equipe para fortalecer ainda mais sua infraestrutura e melhorar a experiência do usuário.

gRPC vs REST: Escolhendo o Modelo de Design de API Certo

2025-01-23
gRPC vs REST: Escolhendo o Modelo de Design de API Certo

Este artigo mergulha em gRPC e REST, dois modelos principais de design de API, e o papel do OpenAPI. O gRPC, baseado no modelo RPC, oculta detalhes de dados, enquanto o REST, baseado em HTTP, é orientado a recursos. Muitas APIs combinam inteligentemente os pontos fortes de ambos, usando uma abordagem orientada a entidades, mas implementada com gRPC. O artigo compara três maneiras de usar HTTP para APIs: REST, gRPC e OpenAPI, descrevendo suas vantagens e desvantagens, sugerindo, por fim, a escolha da melhor abordagem com base em necessidades específicas. O gRPC oferece desempenho superior, mas requer software especial; o OpenAPI é flexível, mas complexo de projetar; o REST é simples e direto, mas menos usado. A escolha envolve pesar os requisitos do projeto, a pilha de tecnologia da equipe e a manutenibilidade.

Desenvolvimento Design de API

Apache Hudi: Upserts, Deleções e Processamento Incremental para Big Data

2025-01-23
Apache Hudi: Upserts, Deleções e Processamento Incremental para Big Data

O Apache Hudi é uma plataforma de data lakehouse de código aberto, construída em um formato de tabela aberta de alto desempenho para ingerir, indexar, armazenar, servir, transformar e gerenciar seus dados em vários ambientes de dados na nuvem. Ele suporta vários formatos de dados e fontes, oferece commits atômicos com suporte de rollback/restauração e possui recursos rápidos de upsert/delete. Um subsistema de indexação escalonável acelera as consultas, enquanto o suporte para consultas de snapshot, incrementais e de viagem no tempo oferece flexibilidade. A integração com armazenamentos de metadados como o Apache Hive Metastore também está incluída.

Desenvolvimento processamento incremental
1 2 167 168 169 171 173 174 175 202 203