Category: Desenvolvimento

Desafio de OCR: Digitalizando as Memórias de Saint-Simon

2024-12-17

O autor passou várias semanas usando OCR para digitalizar uma edição do final do século XIX das memórias francesas do século XVIII, *Les Mémoires de Saint-Simon*. Este gigante de 45 volumes, contendo mais de 3 milhões de palavras, está disponível online como imagens, mas é difícil de ler. O objetivo era criar uma versão de texto legível, pesquisável e copiável. Os desafios incluíram a baixa qualidade da imagem e a análise de diferentes zonas da página (cabeçalhos, texto principal, comentários na margem, notas de rodapé, etc.). A API do Google Vision foi usada para OCR, com um programa Python processando os resultados para identificar e separar o texto de diferentes áreas. Embora os LLMs não tenham conseguido lidar de forma confiável com as referências de notas de rodapé, o autor melhorou o programa e incorporou revisão manual, resultando no lançamento do primeiro volume.

PipeGate: Proxy leve e auto-hospedado - seu 'ngrok' de baixo custo

2024-12-17
PipeGate: Proxy leve e auto-hospedado - seu 'ngrok' de baixo custo

PipeGate é um proxy leve e auto-hospedado, construído com FastAPI, projetado como um 'ngrok' de baixo custo. Ele permite que você exponha seus servidores locais à internet, fornecendo uma maneira simples de criar túneis da sua máquina local para o mundo externo. É uma excelente ferramenta para desenvolvedores que querem entender como os serviços de tunelamento como o ngrok funcionam internamente ou precisam de uma alternativa personalizável hospedada em sua própria infraestrutura. Recursos-chave incluem auto-hospedagem, conexões únicas, personalização, design leve e facilidade de aprendizado. A instalação é simples, via git clone ou pip.

Bruin: Construa pipelines de dados com SQL e Python

2024-12-17
Bruin: Construa pipelines de dados com SQL e Python

Bruin é uma poderosa ferramenta de pipeline de dados que combina ingestão de dados, transformação de dados com SQL e Python e verificações de qualidade de dados em uma única estrutura. Funciona com as principais plataformas de dados e é executado em sua máquina local, em uma instância EC2 ou em GitHub Actions. Recursos importantes incluem ingestão de dados, transformações SQL e Python, verificações de qualidade de dados, modelos Jinja, validação de ponta a ponta e suporte para vários ambientes. Os pipelines são facilmente definidos usando um simples arquivo pipeline.yml.

Desenvolvimento pipeline de dados

SpiceNice: Um Banco de Dados de Especiarias de Código Aberto

2024-12-17
SpiceNice: Um Banco de Dados de Especiarias de Código Aberto

O SpiceNice é um novo site de código aberto que oferece um banco de dados abrangente de especiarias culinárias. Ele fornece informações detalhadas sobre cada especiaria, incluindo seu nome botânico, usos culinários e origem, juntamente com detalhes sobre a planta correspondente. Construído usando Strapi (backend), PostgreSQL (banco de dados) e Astro (frontend), o SpiceNice visa se tornar um recurso central para cozinheiros, biólogos, agricultores e entusiastas de especiarias. Os planos futuros incluem uma API da web, suporte multilíngue e um fórum da comunidade.

Desenvolvimento especiarias

Discourse Comemora Uma Década de Comunidades Online

2024-12-17
Discourse Comemora Uma Década de Comunidades Online

O Discourse, software de fórum de código aberto, comemorou seu 10º aniversário em 26 de agosto de 2024. Lançado com a visão de elevar o padrão do discurso online, ele cresceu de uma pequena equipe de quatro para mais de 100 funcionários em 25 países. A plataforma possui mais de 20.000 comunidades, 107 milhões de tópicos e quase 1,65 bilhão de postagens. O desenvolvimento contínuo incluiu a adição de 49 plugins, recursos de bate-papo e ferramentas com tecnologia de IA para moderação e aprimoramento da experiência do usuário. Esse sucesso é um testemunho de sua natureza de código aberto, compromisso com o feedback do usuário e a dedicação de sua equipe.

Langfuse: Plataforma de Engenharia de LLM de código aberto simplifica o desenvolvimento

2024-12-17
Langfuse: Plataforma de Engenharia de LLM de código aberto simplifica o desenvolvimento

Langfuse é uma plataforma de engenharia de LLM de código aberto projetada para simplificar o desenvolvimento e a implantação de aplicativos de modelos de linguagem grandes (LLM). Ela oferece recursos como observabilidade de LLM, métricas, avaliações, gerenciamento de prompts, um playground e conjuntos de dados, integrando-se perfeitamente com ferramentas como LlamaIndex, Langchain, OpenAI SDK e LiteLLM. Os desenvolvedores podem usar o Langfuse para monitorar o desempenho do LLM, gerenciar prompts, avaliar a eficácia do modelo e, finalmente, acelerar o desenvolvimento de aplicativos LLM.

Firmware de código aberto: necessidade e escolhas estratégicas

2024-12-17

Este artigo explora a necessidade de firmware de código aberto. O autor argumenta que o firmware, como software que controla o hardware, deve aderir aos princípios de software livre. Isso não se trata apenas de liberdade em si, mas também está diretamente relacionado aos interesses práticos dos usuários. Firmware não livre pode restringir a funcionalidade do hardware, ocultar vulnerabilidades de segurança e até impedir que os usuários corrijam problemas de segurança. O artigo analisa dois pontos de vista: um considera o firmware de código aberto desejável, mas não necessário; o outro defende que todo o software do sistema deve ser de código aberto. O autor inclina-se para o primeiro, acreditando que priorizar a liberdade do kernel do sistema operacional é mais importante, mas simultaneamente enfatiza os benefícios do firmware de código aberto e discute como promovê-lo por meio de meios estratégicos.

Desenvolvimento software livre

Equipe de Desenvolvimento de Uma Pessoa atinge Dois Milhões de Usuários

2024-12-17

Nadia Odunayo, uma engenheira de software, criou o StoryGraph, um aplicativo de comunidade de leitura com mais de um milhão de usuários, como desenvolvedora solo. O StoryGraph ajuda os usuários a rastrear suas leituras e recomenda livros com base no humor e nas preferências. Essa história inspiradora destaca a determinação, as habilidades técnicas e a 'estrutura de uma pessoa' que Odunayo usou para alcançar esse feito impressionante. Oferece insights valiosos para aspirantes a desenvolvedores solo.

Álgebra Linear Potencializa Editor de Diagramas Interativo

2024-12-17
Álgebra Linear Potencializa Editor de Diagramas Interativo

Ivan Shubin, ao desenvolver seu editor de diagramas interativo Schemio, utilizou de forma inteligente operações matriciais da álgebra linear para resolver uma série de problemas desafiadores. Inicialmente, o Schemio suportava apenas a criação e manipulação de formas simples. No entanto, ao introduzir uma estrutura hierárquica, as transformações de coordenadas se tornaram complexas. O autor inicialmente utilizou uma abordagem recursiva, mas encontrou problemas com escala e pontos de pivô. Por fim, Shubin utilizou matrizes para representar transformações (translação, rotação, escala), usando a multiplicação de matrizes para conversão de coordenadas e empregando de forma engenhosa a inversão de matrizes para resolver o problema de conversão de coordenadas do mundo para coordenadas locais. Além disso, as operações matriciais abordaram o ajuste preciso da posição e rotação de um objeto ao se mover dentro da hierarquia, evitando saltos inesperados. O código-fonte do Schemio é de código aberto e está disponível no GitHub.

Tig: Interface de modo texto para Git

2024-12-17

Tig é uma interface de modo texto baseada em ncurses para Git, funcionando principalmente como um navegador de repositório Git. Também auxilia na preparação de alterações para confirmação em nível de bloco e atua como um paginador para saídas de vários comandos Git. Instruções de instalação, notas de lançamento detalhando novos recursos e correções de bugs, e recursos como a página inicial, manual e seção de perguntas e respostas no Stack Overflow estão prontamente disponíveis. Relatórios de bugs e solicitações de recursos podem ser enviados por meio do rastreador de problemas ou por e-mail.

Programadores criam um jogo de programação fantástico: Droste's Lair

2024-12-17
Programadores criam um jogo de programação fantástico: Droste's Lair

Dois programadores passaram duas semanas desenvolvendo Droste's Lair, um jogo de ambiente de programação fantástico. Os jogadores constroem e contam estruturas matemáticas por meio de interações intuitivas de arrastar e soltar, usando um mecanismo "amb" para execução ramificada e recursão. O jogo, temático em torno de espadas e feitiçaria, apresenta desafios como inverter elementos de lista, gerar todas as combinações de cartas e contar as maneiras de cobrir um tabuleiro de damas com dominós. Droste's Lair combina habilmente elementos de programação e jogo, oferecendo uma maneira nova e envolvente de aprender conceitos de programação e matemática.

Valhalla: A Reestruturação Épica do Java se Aproxima do Fim

2024-12-17

Após uma jornada de uma década, o Projeto Valhalla, a ambiciosa reestruturação do Java, está se aproximando do fim. Com o objetivo de preencher a lacuna entre classes e primitivos, o Valhalla introduz classes de valor que oferecem a conveniência de codificação das classes com o desempenho dos primitivos, resultando em um layout de memória plano e compacto. Na Devoxx 2024, o arquiteto de linguagem Java Brian Goetz forneceu uma atualização abrangente, destacando recursos-chave como classes de valor, tipos com restrição de nulos, análise de atribuição definida aprimorada e inicialização estrita.

Desenvolvimento Classes de Valor

Nova estrutura Forked do Swift simplifica o gerenciamento de dados compartilhados

2024-12-17
Nova estrutura Forked do Swift simplifica o gerenciamento de dados compartilhados

O desenvolvedor Drew McCormack lançou o Forked, uma nova estrutura Swift para simplificar o gerenciamento de dados compartilhados em dispositivos únicos e múltiplos. Inspirado no mecanismo de mesclagem do Git, o Forked suporta ramificação e mesclagem em um único arquivo, alcançando consistência eventual. Ele não requer um histórico completo de alterações, apenas versões suficientes para mesclagem de três vias. O Forked usa structs em vez de classes, suporta Codable e se integra perfeitamente a serviços em nuvem como o iCloud. Ele também aborda condições de corrida de acesso concorrente e suporta lógica de mesclagem personalizada ou algoritmos CRDT integrados. A sincronização do CloudKit é alcançada com apenas algumas linhas de código.

Novo compilador do CHICKEN Scheme: CRUNCH – Um compilador Scheme estaticamente tipado

2024-12-17

Este artigo apresenta o CRUNCH, um novo compilador para um subconjunto estaticamente tipado da linguagem de programação Scheme. Construído sobre o sistema CHICKEN Scheme, ele compila código Scheme em código C99 portátil. O CRUNCH visa fornecer um compilador Scheme de alto desempenho e leve, abordando as deficiências dos sistemas Scheme existentes em termos de desempenho e portabilidade. É particularmente adequado para desenvolvimento de jogos, criação de máquinas virtuais e programação de sistemas embarcados. Embora o CRUNCH tenha limitações nas funcionalidades da linguagem Scheme suportadas, ele alcança geração de código eficiente por meio de inferência de tipos e várias otimizações, integrando-se perfeitamente ao ecossistema CHICKEN Scheme.

Desenvolvimento Estaticamente Tipado

Microsoft lança Multilspy: biblioteca Python para simplificar clientes de servidores de linguagem

2024-12-17
Microsoft lança Multilspy: biblioteca Python para simplificar clientes de servidores de linguagem

A Microsoft lançou o Multilspy, uma biblioteca Python que simplifica a construção de aplicativos em torno de servidores de linguagem. Com suporte para Java, Rust, C# e Python, o Multilspy automatiza o download de binários de servidor, configuração/desmontagem e fornece uma API simples. Ele interage com servidores de linguagem para obter resultados de análise estática, como conclusão de código, definições de símbolos e referências — essenciais para técnicas de geração de código assistida por IA, como Monitor-Guided Decoding.

Melhores Práticas para Representar Herança em Bancos de Dados SQL Server

2024-12-17
Melhores Práticas para Representar Herança em Bancos de Dados SQL Server

Este artigo explora as melhores práticas para representar relacionamentos de herança em bancos de dados SQL Server. Três abordagens comuns são apresentadas: herança de tabela única, herança de tabela concreta e herança de tabela de classe. As vantagens e desvantagens de cada uma são detalhadas. A herança de tabela única é simples, mas apresenta problemas de escalabilidade e integridade de dados; a herança de tabela concreta resolve esses problemas, mas apresenta consultas ineficientes; a herança de tabela de classe equilibra simplicidade e eficiência, tornando-a a escolha preferida na maioria dos cenários. Abordagens alternativas usando JSON para campos específicos de subtipo e design de banco de dados normalizado também são discutidas.

Deixe seu QEMU 10 vezes mais rápido com esta dica estranha

2024-12-17

Ao depurar testes do NixOS, Linus Heckemann descobriu tempos de cópia de dados dolorosamente lentos (mais de 2 horas) em uma máquina virtual QEMU. A análise de desempenho com `perf` revelou que o servidor 9p do QEMU usava uma lista linkada ineficiente (complexidade O(n)) para pesquisas de arquivos. Ao mudar para uma tabela hash fornecida pelo glib (complexidade O(1)), ele reduziu o tempo de teste para 7 minutos e contribuiu com sucesso para a otimização do projeto QEMU.

Desenvolvimento protocolo 9p

Advent of Code no Nintendo DS: Um Desafio de Programação Rust em um Sistema Embarcado

2024-12-16

O autor enfrentou o Advent of Code 2024 usando Rust em um Nintendo DS. Este relato detalhado acompanha a jornada, desde a configuração de um ambiente de compilação cruzada e a escrita de código Rust para um sistema embarcado sem tempo de execução até a superação de desafios em gerenciamento de memória, interrupções e saída de tela. O autor exibiu com sucesso a solução do Advent of Code na tela do DS. O artigo demonstra fortes habilidades de programação e um profundo entendimento de sistemas embarcados, destacando as técnicas e o prazer da programação em ambientes com recursos limitados.

Desenvolvimento

Princípios do Design de Linguagens de Programação Educacionais: Por que a Falta de Consenso?

2024-12-16
Princípios do Design de Linguagens de Programação Educacionais: Por que a Falta de Consenso?

Este artigo explora a evolução dos princípios no design de linguagens de programação educacionais ao longo de várias décadas. Embora o trabalho de Wirth e outros tenha enfatizado princípios como simplicidade e modularidade, a discordância persiste entre educadores sobre linguagens adequadas para programadores iniciantes. O artigo analisa como a interpretação desses princípios muda no contexto das tecnologias atuais e por que uma linguagem de programação educacional comum e amplamente utilizada globalmente não surgiu. Os autores discutem os méritos relativos de linguagens pedagógicas versus linguagens da indústria e argumentam que cada geração de alunos precisa de sua própria linguagem.

Falha em Grande Escala no OpenAI: Novo Serviço de Telemetria Causa Interrupção

2024-12-16
Falha em Grande Escala no OpenAI: Novo Serviço de Telemetria Causa Interrupção

O OpenAI sofreu uma grande interrupção de serviço em 11 de dezembro, devido a um novo serviço de telemetria recentemente implantado. Com a intenção de melhorar a confiabilidade, esse serviço gerou inesperadamente uma carga maciça nos servidores da API do Kubernetes, saturando-os e fazendo com que o plano de controle do Kubernetes falhasse na maioria dos grandes clusters. Isso levou à quebra da descoberta de serviço baseada em DNS. O incidente destaca as interações imprevisíveis em sistemas complexos e os desafios de testar modos de falha que aparecem apenas sob carga total. O OpenAI restaurou o serviço reduzindo o tamanho dos clusters, bloqueando o acesso à rede às APIs administrativas do Kubernetes e escalonando os servidores da API.

Nova API Opaque do Go Protobuf Melhora o Desempenho e a Segurança

2024-12-16

A equipe do Go lançou uma nova API Opaque para o Go Protobuf, coexistindo com a API Open Struct existente. Essa nova API desacopla o código gerado de sua representação de memória subjacente, levando a melhorias de desempenho, redução de alocações de memória e permitindo otimizações como decodificação lenta. Ao ocultar os campos da estrutura e acessá-los apenas por meio de métodos de acesso, ela evita erros relacionados a ponteiros e compartilhamento acidental. A migração envolve habilitar a API híbrida, usar a ferramenta `open2opaque` e, em seguida, mudar para a API Opaque. A API Open Struct existente permanece com suporte.

(go.dev)
Desenvolvimento

Alteração incompatível com GRUB2 causa loop de inicialização da configuração da BIOS

2024-12-16
Alteração incompatível com GRUB2 causa loop de inicialização da configuração da BIOS

Os sistemas Debian e Kali Linux do autor experimentaram loops de inicialização após uma atualização do GRUB2 que adicionou o comando `fwsetup --is-supported`. Versões mais antigas do GRUB não reconheceram este parâmetro. O problema surgiu de um módulo `efifwsetup.mod` mais antigo, restante de uma restauração de backup do sistema, causando um conflito entre a nova configuração do GRUB e o módulo antigo. A instalação do pacote `grub-efi-amd64-bin` resolveu o problema. Isso destaca a importância da compatibilidade com versões anteriores em atualizações de software e a necessidade de considerar os possíveis efeitos colaterais ao fazer alterações parciais em softwares complexos como o GRUB2.

Desenvolvimento loop de inicialização

Resumo das Conferências Ruby: Visão Geral Global

2024-12-16

O Ruby Video Talks é um site que agrega informações sobre conferências de desenvolvedores Ruby em todo o mundo. De eventos importantes como a RubyConf 2024 (70 palestras) e a Rails World 2024 (46 palestras) a encontros regionais menores, o site fornece um calendário abrangente. Ele destaca palestrantes importantes como Matz e oferece funcionalidade de pesquisa por data, local e tópico, facilitando a busca por eventos relevantes. Conferências futuras em 2025, como Balkan Ruby e Friendly.rb, também estão listadas, prometendo ainda mais oportunidades para a comunidade Ruby.

Emacs com Guile: Um Projeto de Reescreita Audacioso

2024-12-16

O editor Emacs é conhecido por sua extensibilidade, mas enfrenta limitações de desempenho e expressividade com sua linguagem principal, Emacs Lisp (Elisp). Para resolver isso, o projeto Guile-Emacs visa substituir o Elisp no Emacs pelo Guile Lisp. Após anos de desenvolvimento e inatividade, o Guile-Emacs foi revivido pelos desenvolvedores Robin Templeton e Larry Valkama. O projeto pretende aproveitar as vantagens do compilador e do desempenho do Guile para melhorar a velocidade e a extensibilidade do Emacs, mantendo a compatibilidade com o Elisp. O objetivo final é reescrever uma parte significativa do código C do Emacs em Lisp, melhorando significativamente sua capacidade de personalização. Apesar dos desafios técnicos e políticos, o projeto apresenta possibilidades emocionantes para o futuro do Emacs.

Desenvolvimento

Reescrita do SQLite em Rust atinge redução de 100x na latência de cauda

2024-12-16

Pesquisadores da Universidade de Helsinque e Cambridge reescreveram o SQLite em Rust, criando o Limbo, um projeto que utiliza E/S assíncrona e io_uring para melhorar drasticamente o desempenho. Ao utilizar E/S assíncrona e desagregação de armazenamento, o Limbo consegue uma redução de até 100x na latência de cauda, particularmente benéfico em ambientes serverless multilocatários. A melhoria principal vem da substituição de instruções de bytecode síncronas por equivalentes assíncronos, eliminando bloqueios e melhorando a concorrência. As melhorias são mais notáveis em percentis altos, tornando o Limbo ideal para aplicações que exigem alta confiabilidade.

(avi.im)
Desenvolvimento E/S Assíncrona

Converge Contrata Engenheiro Full-Stack Sênior: Construa uma Plataforma de Medição de Marketing de Milhões de Dólares

2024-12-16
Converge Contrata Engenheiro Full-Stack Sênior: Construa uma Plataforma de Medição de Marketing de Milhões de Dólares

A Converge, uma empresa apoiada pela Y Combinator com mais de US$ 1 milhão em receita anual recorrente (ARR), está contratando um engenheiro full-stack sênior. A pequena equipe (apenas 4 pessoas) atende mais de 180 clientes, processando bilhões de dólares em vendas anuais e bilhões de eventos por mês. Você construirá uma pilha unificada de medição de marketing, incluindo coleta de dados do cliente, resolução de identidade e atribuição de marketing, com interação direta com o cliente e propriedade significativa. A empresa valoriza a orientação para a ação, a aprendizagem contínua, atitudes positivas e a simplicidade. Requer experiência extensiva em full-stack, proficiência em React e desenvolvimento de back-end e conhecimento de implantação e escalonamento de software de produção.

Componente de Integração Xiaomi Home Assistant Lançado Oficialmente

2024-12-16
Componente de Integração Xiaomi Home Assistant Lançado Oficialmente

A Xiaomi lançou oficialmente o componente de integração Xiaomi Home Assistant, permitindo que os usuários integrem seus dispositivos inteligentes Xiaomi IoT ao Home Assistant. O componente suporta vários métodos de instalação, incluindo clone Git, HACS e instalação manual. Os usuários precisam fazer login com sua conta Xiaomi; várias contas e seleção de região são suportadas. O componente suporta a maioria dos dispositivos domésticos inteligentes Xiaomi, mas atualmente exclui dispositivos Bluetooth, infravermelho e virtuais. Os métodos de controle incluem controle na nuvem e controle local (exigindo um gateway central Xiaomi ou dispositivos com gateway integrado). Ele mapeia o MIoT-Spec-V2 para entidades do Home Assistant. O componente também suporta vários idiomas e um modo de depuração, priorizando a privacidade e segurança do usuário, mas requer armazenamento cuidadoso dos arquivos de configuração.

Erro de Milhões de Dólares de um Programador: Um Bug com uma reviravolta dramática

2024-12-16
Erro de Milhões de Dólares de um Programador: Um Bug com uma reviravolta dramática

Trey, um programador que trabalhava para uma startup de telecomunicações 3G, escreveu um programa de teste de pagamento automático destinado a pequenas transações de teste. No entanto, três bugs no código fizeram com que o programa creditasse sua conta de teste com US$ 100 a cada cinco minutos. A falta de verificação de atividade significava que, quando um gateway falhava, o programa continuava em execução por horas, acumulando uma quantia substancial. Na manhã seguinte, Trey enfrentou questionamentos da equipe de segurança até que seu chefe de departamento explicou a situação, mas o saldo da conta de teste foi redefinido para zero.

Associação Modelica: Modelando Sistemas Complexos de Forma Eficiente

2024-12-16

A Associação Modelica promove a linguagem Modelica e suas ferramentas associadas. Modelica é uma linguagem orientada a objetos para modelar e simular sistemas ciberfísicos complexos, particularmente hábil na modelagem acausal de componentes reutilizáveis ​​regidos por equações matemáticas. A associação fornece especificações de linguagem, ferramentas, bibliotecas e suporte comunitário para permitir que os usuários modelem sistemas de forma eficiente.

NAS minimalista: frood, um sistema Alpine initramfs

2024-12-16
NAS minimalista: frood, um sistema Alpine initramfs

O autor apresenta frood, um sistema NAS construído como uma única imagem initramfs grande contendo um sistema Alpine Linux completo. Esse design resulta em tempos de inicialização rápidos e redução do desgaste nos dispositivos de armazenamento. A configuração é direta; os arquivos residem diretamente na imagem, eliminando DSLs complexas ou ferramentas de configuração. O estado do sistema é rastreado com o Git, e cada inicialização é efetivamente um novo começo, evitando a desordem de configuração. O artigo detalha o processo de construção do sistema, incluindo o uso do script alpine-make-rootfs, a instalação de pacotes essenciais e a escrita de scripts de inicialização. Testes com QEMU e o procedimento de atualização da imagem do sistema também são descritos. Em essência, frood é um sistema NAS leve, de fácil manutenção e implantação, cuja filosofia de design simples vale a pena emular.

Desenvolvimento
1 2 207 208 209 211 213 214 215