Category: Desenvolvimento

Linguagem Rye: Uma linguagem de programação de alto nível baseada em planilhas

2024-12-24

Rye é uma nova linguagem de programação que trata planilhas como cidadãos de primeira classe, alinhando-se mais intimamente com o pensamento humano. Este artigo demonstra como o Rye cria, carrega e manipula planilhas, suportando a importação de dados de arquivos CSV, SQL e Excel. Ele fornece um conjunto rico de funções para manipulação de dados, incluindo filtragem, classificação e seleção. Ao usar planilhas como uma estrutura de dados fundamental, o Rye simplifica as operações de dados e fornece uma experiência de programação mais intuitiva, especialmente ao lidar com dados tabulares, resultando em código conciso e eficiente que supera outras linguagens.

Desenvolvimento planilha

Por que o HNSW não é a resposta para bancos de dados vetoriais: A ascensão do IVF

2024-12-23
Por que o HNSW não é a resposta para bancos de dados vetoriais: A ascensão do IVF

O algoritmo HNSW é popular em bancos de dados vetoriais por sua velocidade e precisão na busca de similaridade vetorial, mas suas limitações em aplicações de grande escala devido à sua natureza intensiva em memória são evidentes. Este artigo argumenta que alternativas baseadas em disco, como o IVF (índice de arquivo invertido), especialmente quando combinadas com técnicas de quantização (RaBitQ, PQ, SQ, ScaNN), oferecem velocidade e escalabilidade superiores para conjuntos de dados massivos. O IVF, quantizando e comprimindo vetores, reduz a pegada de memória e utiliza pré-busca e varreduras sequenciais eficientes para uma busca significativamente mais rápida. Os custos de inserção e exclusão também são menores. Embora o HNSW se destaque em aplicações de menor escala, o IVF com quantização surge como a escolha mais vantajosa para conjuntos de dados massivos.

Desenvolvimento banco de dados vetorial

Perl Apresenta Novo Logotipo de Camelo

2024-12-23

Após anos de discussão e design, a linguagem Perl finalmente tem um novo logotipo oficial: um camelo amigável. Desenvolvido por Zach Roszczewski e refinado através de feedback de vários membros da comunidade, o logotipo é lançado sob uma licença CC-BY. Ele visa representar a linguagem Perl e sua comunidade, incentivando a adoção mais ampla. Embora não seja obrigatório, o logotipo busca unificar a imagem da comunidade e espera-se que seja usado em plataformas como perl.com e metacpan.org no futuro.

Desenvolvimento Logotipo

40º Aniversário da Revista Phrack: Chamada para Artigos

2024-12-23

A revista Phrack, uma plataforma para hackers compartilharem conhecimento, buscarem a verdade e ultrapassarem os limites dos sistemas, está comemorando seu 40º aniversário. Eles lançaram um chamado para artigos para a edição 72, cobrindo tópicos como exploração, persistência, fuzzing, análise de código, ofuscação de dados, anti-forense, segurança de aplicativos web e segurança em nuvem. A Phrack incentiva a comunidade de hackers a participar, continuando seus valiosos recursos e cultura, e contribuindo para seu desenvolvimento futuro nos próximos 40 anos.

Desenvolvimento Revista Phrack

C++: Um Retorno à Diversão da Programação

2024-12-23
C++: Um Retorno à Diversão da Programação

O autor relembra mais de uma década de programação, lamentando que linguagens como JavaScript, Python e Ruby não conseguiram recapturar a alegria que sentia programando quando criança. Recentemente, enquanto desenvolvia um jogo roguelike usando C++, ele redescobriu a diversão da programação. Ele argumenta que C++ já foi notório pelo uso excessivo de metaprogramação de modelo, mas desde o C++11, os esforços do comitê de padrões revitalizaram a linguagem. Adições como inferência de tipo automática, nullptr e loops for baseados em intervalo melhoraram significativamente a experiência e a eficiência do desenvolvedor. O C++ moderno é poderoso, com bibliotecas e ferramentas ricas, mas evita os aspectos negativos da popularidade excessiva. A comunidade relativamente pura permite que os desenvolvedores se concentrem na criação, que é a essência do prazer da programação.

Desenvolvimento

KeyPub.sh: Serviço de Verificação de Chave SSH com Foco na Privacidade

2024-12-23

KeyPub.sh é um serviço público gratuito que não requer instalação ou configuração. Ele usa sua chave pública SSH existente como sua identidade, vinculando-a ao seu endereço de e-mail para autenticação simplificada. Os usuários registram e gerenciam suas chaves SSH por meio de um processo simples de verificação de e-mail, controlando a visibilidade de seu endereço de e-mail. Isso fornece uma alternativa leve e respeitosa à privacidade para aplicativos CLI, eliminando a necessidade de desenvolvedores criarem sistemas de verificação de usuários, enquanto capacita os usuários com controle sobre sua privacidade.

Desenvolvimento chave SSH autenticação

Retrospectiva de Fogus 2024: Programação, Leitura e Reflexões sobre a Vida

2024-12-23

Em sua postagem de blog de fim de ano de 2024, Fogus reflete sobre seu ano em programação, leitura e vida. Ele compartilha artigos e livros notáveis que apreciou, cobrindo tópicos como o jogo Elite, a história do rádio amador, o folclore japonês do banheiro e a história do WordStar. Ele destaca livros técnicos favoritos como "And so FORTH" e livros não técnicos como "Butcher's Crossing". Fogus detalha suas experiências com a linguagem de programação Clojure e explorações em outras linguagens como Joy e Forth. Ele conclui descrevendo seus planos para 2025, incluindo o lançamento do Clojure 1.13 e o trabalho contínuo em seu projeto Juxt.

Ferramenta de linha de comando Spacer: separação elegante de saídas de log

2024-12-23
Ferramenta de linha de comando Spacer: separação elegante de saídas de log

Spacer é uma ferramenta de linha de comando simples que insere separadores quando a saída do comando para. Se você é do tipo que costuma pressionar Enter algumas vezes no final do log para distinguir as saídas de diferentes solicitações, então o Spacer é para você! Por padrão, ele insere um separador a cada 1 segundo, mas você pode personalizar o intervalo usando a flag `--after` (números de ponto flutuante são suportados). Observe que o Spacer monitora apenas a STDOUT; se seu comando imprime principalmente para STDERR, use `|&` em vez de `|` para redirecionar STDERR para STDOUT.

Desenvolvimento processamento de log

As Sutilezas da Memoização em Ruby: Um Mergulho Profundo

2024-12-23
As Sutilezas da Memoização em Ruby: Um Mergulho Profundo

Este artigo mergulha nas complexidades da implementação de memoização em Ruby. O autor percorre vários aspectos, desde variáveis locais simples até implementações sofisticadas e seguras para threads, cobrindo as limitações do operador de memoização, memoização com reconhecimento de argumentos, construção de um DSL de memoização e desafios no tratamento de objetos congelados, gerenciamento de memória e segurança de threads. Referências fracas e suaves são exploradas, levando a um DSL de memoização eficiente e seguro para threads. O artigo conclui enfatizando a importância do uso de bibliotecas testadas e evitando a reinvenção da roda.

Desenvolvimento Memoização

uBlock Origin: Bloqueador de conteúdo eficiente

2024-12-23
uBlock Origin: Bloqueador de conteúdo eficiente

uBlock Origin (uBO) é um bloqueador de conteúdo eficiente e leve para navegadores Chromium e Firefox. Ele bloqueia anúncios, rastreadores, mineradores de criptomoedas e malware por padrão, usando listas de filtros como EasyList e EasyPrivacy. Os usuários podem personalizar regras de bloqueio e escolher entre uma interface simples ou avançada. É importante notar que usar um bloqueador não é roubo, mas uma forma de proteger a privacidade do usuário. O projeto é de código aberto e depende de listas de filtros mantidas pela comunidade.

Desenvolvimento bloqueador de anúncios

JMAP completa 10 anos: Uma década de protocolo de email aberto

2024-12-23
JMAP completa 10 anos: Uma década de protocolo de email aberto

A Fastmail celebra o 10º aniversário do JMAP, seu protocolo de email de código aberto. Ao longo da última década, o JMAP evoluiu de um conceito inicial para um padrão maduro, incorporando funcionalidades de email, contatos e calendário, por meio de workshops do setor, colaborações com desenvolvedores e padronização IETF. No futuro, a Fastmail planeja aprimorar o servidor Cyrus IMAP e continuar promovendo a adoção do JMAP para melhorar a experiência do usuário e torná-lo o padrão do setor para email.

Desenvolvimento protocolo de código aberto

WebExtension.net Lança Coleções Curadas de Extensões do Chrome

2024-12-23
WebExtension.net Lança Coleções Curadas de Extensões do Chrome

O site WebExtension.net lançou recentemente uma funcionalidade de coleções curadas de extensões do Chrome, facilitando a busca e o uso de extensões de alta qualidade. Os usuários podem criar e compartilhar suas próprias listas de extensões. As coleções existentes abrangem diversos campos, como aprendizagem de idiomas, ferramentas de design e desenvolvimento front-end, com coleções de ferramentas essenciais para designers e extensões úteis para desenvolvedores front-end. Isso melhora significativamente a eficiência e o fluxo de trabalho do usuário.

Lançado o RAG-logger: Ferramenta de Registro em Código Aberto para RAG

2024-12-23
Lançado o RAG-logger: Ferramenta de Registro em Código Aberto para RAG

O RAG-logger é uma ferramenta de registro de código aberto projetada especificamente para aplicativos de Geração Aumentada por Recuperação (RAG). Ele oferece uma alternativa leve às soluções existentes, focando nas necessidades específicas de registro de pipelines RAG. Recursos-chave incluem registro abrangente de todo o processo RAG, desde o rastreamento de consultas e resultados de recuperação (texto e imagens) até o registro de interação LLM e monitoramento de desempenho passo a passo. Ele utiliza um formato de log baseado em JSON, organiza logs diariamente e lida com gerenciamento automático de arquivos e enriquecimento de metadados. Uma API simples permite integração rápida; por exemplo, `logger.log_query()` registra consultas, `logger.log_retrieval()` registra etapas de recuperação e `logger.log_llm()` registra interações LLM.

Litestack: Gem de Infraestrutura de Dados Tudo-em-Um para Ruby on Rails

2024-12-23
Litestack: Gem de Infraestrutura de Dados Tudo-em-Um para Ruby on Rails

Litestack é um gem Ruby que oferece uma solução completa de infraestrutura de dados para aplicações Ruby e Ruby on Rails. Aproveitando o poder do SQLite, ele integra um banco de dados SQL completo, um cache rápido, uma fila de tarefas robusta, um broker de mensagens confiável, um mecanismo de busca de texto completo e uma plataforma de métricas - tudo em um único pacote. Ao contrário das abordagens tradicionais que exigem servidores e bancos de dados separados, o Litestack oferece desempenho, eficiência, facilidade de uso e economia de custos superiores. Seu banco de dados e cache incorporados reduzem o uso de memória e CPU, enquanto sua interface simplificada simplifica o processo de desenvolvimento. Integra-se perfeitamente com ActiveRecord e Sequel e otimiza automaticamente para frameworks de E/S baseados em Fiber.

Agente de Descoberta NetBox - Agora disponível em prévia pública

2024-12-23
Agente de Descoberta NetBox - Agora disponível em prévia pública

A NetBox Labs lançou recentemente uma prévia pública do agente NetBox Discovery. Esta ferramenta totalmente de código aberto descobre redes e dispositivos de forma rápida e fácil, inserindo informações no NetBox para acelerar a construção de uma fonte de verdade de rede centrada no NetBox. Sua arquitetura baseada em agentes é ideal para ambientes de rede complexos e funciona com o NetBox Assurance para detectar e corrigir a derivação da rede. Atualmente, suporta dois modos de descoberta: descoberta de rede e descoberta de dispositivo, e integra-se com o mecanismo de ingestão de dados Diode.

Desenvolvimento Descoberta de Rede

Desenvolvedores na Era da IA ​​de Raciocínio: Mestre ou Marionete?

2024-12-23
Desenvolvedores na Era da IA ​​de Raciocínio: Mestre ou Marionete?

O lançamento do o3 da OpenAI gerou uma crise de identidade entre os desenvolvedores. A capacidade do o3 de gerar algoritmos como um desenvolvedor humano desafia a vantagem tradicional do desenvolvedor de lógica abstrata. O artigo explora como usuários, aprendizado de máquina e o3 criam lógica, concluindo que o o3 espelha o processo de pensamento de um desenvolvedor. O futuro apresenta aos desenvolvedores dois caminhos: revisar e refinar ativamente o código gerado por IA (proativo) ou delegar problemas de negócios diretamente a ferramentas de IA (passivo). O autor defende a abordagem proativa, enfatizando a necessidade de os desenvolvedores entenderem e assumirem a responsabilidade pela lógica gerada por IA, para que a razão humana não seja substituída pela IA.

Desenvolvimento Desenvolvedores Modelo o3

Para onde vai o design de dashboards?

2024-12-23
Para onde vai o design de dashboards?

Este artigo explora as deficiências do design atual de dashboards. O autor aponta que os dashboards existentes são frequentemente mal projetados e falham em utilizar eficazmente o sistema visual humano para processar grandes quantidades de informações. O artigo revisa pesquisas de engenharia de sistemas cognitivos dos anos 80 e 90 sobre o design de dashboards, como o design de interface ecológica e o momentum visual, e observa a falta de foco atual da indústria em melhorar o design de dashboards. O autor apela para maior atenção ao design de dashboards, para melhor integrar funções de consulta e melhorar a eficiência do processamento de informações.

JRuby e JBang: Uma combinação eficiente (e um tanto desajeitada)

2024-12-22

Nas férias de Natal, o autor experimentou combinar JRuby e JBang para aproveitar o desempenho da JVM e a produtividade do Ruby. Embora o JBang não suporte oficialmente o JRuby, uma solução inteligente usando o gerenciamento de dependências do JBang e o ProcessBuilder do Java foi empregada. O resultado? Um aplicativo JRuby funcional incorporando Javalin, JDBI, SLF4J e ruby-jwt, alcançando operações CRUD em um banco de dados SQLite com autenticação JWT. Essa solução demonstra o potencial de combinar JRuby com bibliotecas do ecossistema Java, com o desempenho validado por meio do Apache Benchmark.

Desenvolvimento

Lições aprendidas no desenvolvimento de software de longo prazo

2024-12-22
Lições aprendidas no desenvolvimento de software de longo prazo

Este artigo resume as lições aprendidas no desenvolvimento de software de longo prazo, enfatizando a importância de manter o código simples, escolher cuidadosamente as dependências, realizar testes completos e ter uma equipe forte. Com base em interações com usuários do Mastodon e experiências na Comissão Eleitoral Holandesa, o autor destaca os riscos significativos de dependências excessivas, código complexo e rotatividade frequente da equipe em projetos de longo prazo. Ele aconselha os desenvolvedores a revisarem periodicamente as dependências, escreverem casos de teste extensos e documentarem meticulosamente a filosofia e as decisões de design do código para lidar com os desafios da manutenção de longo prazo e das mudanças tecnológicas. O artigo também destaca os benefícios do código aberto e a importância de um código simples, alertando os desenvolvedores contra a busca cega de novas tecnologias e optando por soluções testadas ao longo do tempo.

Problema de Tokenização Provado como NP-Completo, Dobrando os Desafios de Compressão de Dados

2024-12-22
Problema de Tokenização Provado como NP-Completo, Dobrando os Desafios de Compressão de Dados

Um artigo publicado no arXiv prova a completude NP de duas variantes de tokenização, definida como o problema de comprimir um conjunto de dados para no máximo δ símbolos, encontrando um vocabulário diretamente (tokenização direta) ou selecionando uma sequência de operações de mesclagem (tokenização bottom-up). Essa descoberta tem implicações significativas para a compressão de dados e o processamento de linguagem natural, destacando o imenso desafio de resolver eficientemente o problema de tokenização para conjuntos de dados em larga escala.

Gerentes de Produto na Era da IA: Novas Ferramentas, Mesmos Princípios Essenciais

2024-12-22
Gerentes de Produto na Era da IA: Novas Ferramentas, Mesmos Princípios Essenciais

Apesar do termo moderno "Gerente de Produto de IA", a IA não alterou fundamentalmente o cerne da gestão de produto: entender as necessidades do usuário, criar soluções e definir tarefas. A IA fornece ferramentas novas e poderosas, como os Modelos de Linguagem Grandes (LLMs), mas os gerentes de produto ainda aproveitam essas ferramentas, não as constroem. O artigo explica conceitos básicos de LLM (tokens, janelas de contexto, prompts) e aconselha os gerentes de produto a aprender a criar prompts eficazes, colaborar estreitamente com engenheiros e focar no valor prático da IA para o produto, evitando adições por modismo. Em resumo, a IA é uma ferramenta, não uma substituição; os gerentes de produto devem abraçar a IA e aprimorar suas habilidades para prosperar nesta era.

Desenvolvimento Gestão de Produto

Meta Combate Spam em Escala com Haskell

2024-12-22
Meta Combate Spam em Escala com Haskell

O sistema Sigma do Meta, uma arma crucial na luta contra spam e malware, passou por uma revisão de dois anos. O sistema foi reescrito em Haskell, uma escolha menos comum para sistemas de produção em larga escala, atingindo mais de um milhão de solicitações por segundo. A mudança para Haskell aproveitou sua natureza puramente funcional e fortemente tipada, e a estrutura Haxl permitiu o agrupamento automático e a recuperação de dados concorrente. Foram observadas melhorias de desempenho de 20% a 30% em relação ao sistema anterior baseado em FXL. O projeto também envolveu contribuições significativas para o compilador GHC, resolvendo vários bugs.

Desenvolvimento Filtragem de Spam

Projeto Open Source GitHub: epub-tts Converte eBooks para Áudio

2024-12-22
Projeto Open Source GitHub: epub-tts Converte eBooks para Áudio

Um projeto open-source no GitHub chamado epub-tts converte ebooks EPUB em arquivos de áudio. Escrito em Go, ele depende do ffmpeg e do comando `say` do MacOS para analisar o EPUB em seções (capítulos) e converter cada seção em um arquivo de áudio. Atualmente em versão alfa, ele fornece uma alternativa simples para quando os olhos estão cansados, mas a mente não está. Os planos futuros incluem otimização de código, conversão em lote, tamanhos de arquivo de áudio menores e suporte para mais idiomas.

Desenvolvimento conversão de áudio

twtxt: Um serviço de microblog minimalista e descentralizado

2024-12-22

twtxt é um serviço de microblog minimalista e descentralizado, projetado para hackers. Sua documentação cobre instalação, início rápido, uso, configuração e detalhes da API. Os usuários podem seguir e deixar de seguir fontes, postar atualizações de status, visualizar seus timelines e feeds de fontes específicas e interagir com o twtxt via interface de linha de comando (CLI). O código-fonte é hospedado no GitHub e contribuições são bem-vindas.

Desenvolvimento descentralizado microblog

Filtros de Bloom: O Segredo para Deixar o SQLite 10 Vezes Mais Rápido

2024-12-22

Pesquisadores usaram filtros de Bloom de forma inteligente para tornar as consultas analíticas do SQLite 10 vezes mais rápidas. Eles descobriram que as junções de loop aninhado do SQLite eram ineficientes, com muito tempo gasto em sondagens de árvore B. Ao usar um filtro de Bloom antes da operação de junção para filtrar rapidamente as linhas que provavelmente não correspondem e, em seguida, realizar sondagens de árvore B apenas em correspondências potenciais, o número de sondagens foi significativamente reduzido. Os filtros de Bloom têm uma sobrecarga de memória mínima e foram fáceis de integrar no mecanismo de consulta existente do SQLite, resultando em um aumento significativo de desempenho. Essa melhoria foi integrada ao SQLite v3.38.0.

(avi.im)

Jujutsu: Um Sistema de Controle de Versão Revolucionário

2024-12-22

Jujutsu é um novo sistema de controle de versão baseado no Git, oferecendo uma abordagem simplificada para interação de arquivos locais por meio de um modelo conceitual único e um conjunto de comandos diferente. Ao contrário do Git, o Jujutsu sempre trata o estado da cópia de trabalho como um commit, refletindo instantaneamente qualquer edição no disco no commit atual. Isso simplifica muitas operações, incluindo a correção de erros em commits antigos, visualização de diferenças e gerenciamento de trabalhos em andamento. O fluxo de trabalho é intuitivo, acessível mesmo sem experiência prévia com Git, e integra-se perfeitamente ao ecossistema Git. Embora alguns recursos, como a integração perfeita com o VSCode, ainda estejam faltando, o Jujutsu demonstra um imenso potencial com seu design inovador e experiência amigável para o usuário.

Desenvolvimento

CodeMic: Ferramenta de Geração de Código com IA

2024-12-22

CodeMic é uma ferramenta alimentada por IA que gera código com base em descrições em linguagem natural. Ela produz código de alta qualidade rapidamente, aumentando significativamente a eficiência do desenvolvimento. Tanto programadores experientes quanto iniciantes podem usar o CodeMic com facilidade, permitindo que se concentrem em aspectos mais criativos do trabalho. O CodeMic suporta várias linguagens de programação e aprende e melhora continuamente, fornecendo aos desenvolvedores uma poderosa assistência de código.

Lançado o Fish Shell 4.0b1 Beta: Código principal reescrito em Rust, grandes melhorias incluídas

2024-12-22
Lançado o Fish Shell 4.0b1 Beta: Código principal reescrito em Rust, grandes melhorias incluídas

O Fish Shell 4.0b1 beta foi lançado! O principal destaque é a portabilidade do código principal de C++ para Rust, resultando em melhorias significativas de desempenho e aprimoramentos. Muitas outras melhorias foram incluídas, como melhor suporte de terminal, recursos de vinculação aprimorados, recursos de script aprimorados e uma melhor experiência interativa. Mudanças de incompatibilidade regressiva notáveis incluem uma nova notação de tecla para vinculações e a ativação padrão do recurso qmark-noglob. Em geral, esta é uma versão significativa que oferece aos usuários uma experiência de shell mais poderosa e eficiente.

Desenvolvimento

Notion: Seu Espaço de Trabalho Tudo-em-Um

2024-12-22
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. Ele permite que os usuários organizem e gerenciem todas as suas informações em um só lugar, aumentando a produtividade. Seja para notas pessoais, colaboração em equipe ou construção de banco de conhecimento, o Notion atende a várias necessidades, e seus recursos altamente personalizáveis ​​o tornam uma ferramenta poderosa para indivíduos eficientes.

cURL e libcurl abandonam o Hyper

2024-12-22
cURL e libcurl abandonam o Hyper

Após quatro anos de experimento, o projeto cURL anunciou que está abandonando o uso da biblioteca Hyper baseada em Rust como backend HTTP. Apesar das vantagens de segurança de memória do Hyper e do suporte do Let's Encrypt, a falta de demanda do usuário e o envolvimento do desenvolvedor levaram à sua terminação. A equipe do cURL citou o alto custo de manutenção do código Hyper e o foco em melhorar e manter a base de código existente. Embora o experimento tenha falhado, o cURL ganhou experiência valiosa e melhorou suas capacidades de manipulação HTTP.

Desenvolvimento
1 2 202 203 204 206 208 209 210 214 215