Category: Desenvolvimento

Gource: Visualizando seu repositório de código com animações impressionantes

2025-01-03
Gource: Visualizando seu repositório de código com animações impressionantes

Gource é um software de código aberto que visualiza o histórico do seu repositório de controle de versão de uma forma animada e impressionante. A raiz do repositório fica no centro, os diretórios são ramos, os arquivos são folhas e os desenvolvedores se tornam personagens dinâmicos que se movem pela árvore de código, com suas contribuições mostradas em trilhas animadas. O Gource usa renderização OpenGL e requer uma placa de vídeo com aceleração 3D. Ele suporta vários sistemas de controle de versão, como Git, SVN, Mercurial e oferece parâmetros extensos para personalização, permitindo que você gere facilmente visualizações impressionantes do histórico do seu repositório de código.

Desenvolvimento visualização de código

Controle seu Roku com gestos: Um projeto Python e MediaPipe

2025-01-03
Controle seu Roku com gestos: Um projeto Python e MediaPipe

O HandiRokuRemote permite controlar seu Roku usando gestos! Este projeto Python usa o MediaPipe do Google para rastreamento de mão em tempo real, traduzindo gestos em comandos enviados ao seu Roku através de seu Protocolo de Controle Externo (ECP). A interface intuitiva possui detecção automática de dispositivos, configurações personalizáveis (modo de depuração, inicialização automática, visualização de esqueleto) e uma variedade de gestos suportados para navegação e controle de mídia. Embora existam limitações atuais quanto à distância de detecção de mão, o desenvolvimento futuro visa expandir a compatibilidade para outras Smart TVs e dispositivos habilitados para HDMI-CEC.

Desenvolvimento

Kuvasz-streamer: CDC de Alto Desempenho para PostgreSQL

2025-01-03

Kuvasz-streamer é um projeto open-source de captura de dados de mudança (CDC) exclusivamente para PostgreSQL. Integra-se perfeitamente com a replicação lógica do PostgreSQL, fornecendo replicação de alto desempenho e baixa latência. Recursos incluem design leve (Go, sem dependências), alta taxa de transferência (10K TPS, <1s de latência), gerenciamento automatizado de publicações e slots, modelos flexíveis de propagação de tabelas (clonagem, histórico, somente anexação) e suporte para modos declarativo e interativo. Casos de uso incluem consolidação de dados, atualizações de banco de dados, consolidação de bancos de dados de microsserviços, consolidação de bancos de dados multilocatários e otimização de desempenho do banco de dados.

Desenvolvimento Replicação de Dados

Seja um Proprietário, Não um Inquilino, na Internet

2025-01-03
Seja um Proprietário, Não um Inquilino, na Internet

A internet de 2025 é drasticamente diferente da do início dos anos 2000, dominada por poucas megacorporações. Este artigo defende que indivíduos com conhecimento de tecnologia sejam donos de sua presença online, em vez de alugar espaço de grandes plataformas. O autor defende a posse de seu próprio domínio e site, a diversificação de sua presença online em várias redes e a priorização de listas de e-mail. Embora o engajamento em outras plataformas seja encorajado, ele não deve ser apenas para o link-farming; a interação significativa com a comunidade é fundamental. O objetivo final é construir ativos digitais flexíveis e controláveis, em vez de depender das políticas da plataforma.

Doações Incríveis: Uma Lista Curada de Projetos FLOSS para Apoiar

2025-01-03
Doações Incríveis: Uma Lista Curada de Projetos FLOSS para Apoiar

Este repositório GitHub, awesome-donations, é uma lista curada de opções de doação para inúmeros projetos de Software Livre e de Código Aberto (FLOSS). Ele fornece acesso fácil para apoiar projetos que vão desde grandes fundações como a Linux Foundation e a Mozilla Foundation até projetos individuais como LibreOffice, GIMP e QEMU. Seja você prefere PayPal, cartões de crédito ou outros métodos, você pode contribuir facilmente para a comunidade de código aberto e ajudar a garantir o desenvolvimento contínuo de softwares livres essenciais.

Desenvolvimento doações

Otimizando o JSON do Ruby: Uma história de alocação de pilha e inlining

2025-01-02

Esta postagem de blog, a quarta parte de uma série sobre otimização do desempenho do JSON do Ruby, detalha a jornada do autor para melhorar a velocidade de serialização JSON do Ruby. Por meio de micro-benchmarking e profiling meticulosos, o autor explora técnicas de alocação de pilha e inlining. Ao mudar a alocação de buffer do heap para a pilha e usar o inlining estrategicamente, ganhos significativos de desempenho são alcançados. No entanto, o artigo destaca a importância de equilibrar as melhorias de micro-benchmark com o desempenho de aplicativos do mundo real, mostrando um caso em que a otimização impactou negativamente conjuntos de dados maiores.

Desenvolvimento

A Entrevista de Programação Mágica: Uma História de Prolog, Lisp e µKanren

2025-01-02

O programador experiente Vidrun enfrenta uma entrevista incomum. Aisha, uma engenheira com três anos de experiência, abandona as perguntas típicas e envolve Vidrun em um duelo de codificação usando Prolog e o cálculo lambda. Aisha guia Vidrun na construção de um interpretador Lisp, culminando no uso inteligente de µKanren e macros personalizadas por Vidrun para resolver o problema, criando uma conexão com Aisha através da arte compartilhada da programação. Essa história combina proeza técnica com realismo mágico e dinâmica interpessoal, mostrando a engenhosidade e a arte da programação.

Além do RAG: Construindo um Sistema de Gerenciamento de Conhecimento que Melhora em Vez de Substituir o Pensamento

2025-01-02
Além do RAG: Construindo um Sistema de Gerenciamento de Conhecimento que Melhora em Vez de Substituir o Pensamento

Este artigo explora a filosofia de design por trás do Zettelgarden, um sistema de gerenciamento de conhecimento que visa aprimorar, e não substituir, o pensamento humano. O autor relata a evolução dos cartões de papel para as notas digitais, destacando como os sistemas digitais, embora ofereçam pesquisa e ligação convenientes, perdem as conexões serendipitas promovidas pela proximidade física. O autor critica a dependência excessiva atual de modelos de automação e RAG (Retrieval Augmented Generation) no gerenciamento de conhecimento assistido por IA, argumentando suas limitações no tratamento de conjuntos de dados massivos e sua negligência em relação à compreensão pessoal e ao processamento do conhecimento. O Zettelgarden enfatiza a importância das anotações pessoais, incentivando os usuários a adicionar comentários e insights, facilitando as conexões entre ideias por meio de uma estrutura de cartão única. O autor acredita que o futuro do gerenciamento de conhecimento reside na colaboração entre humanos e computadores, com os computadores lidando com a organização e os humanos se concentrando em pensar e compreender.

Desenvolvimento

Checklist de atualização do Go: Lições aprendidas ao atualizar mais de 150 serviços

2025-01-02
Checklist de atualização do Go: Lições aprendidas ao atualizar mais de 150 serviços

Esta publicação detalha a experiência de atualizar mais de 150 serviços Go da versão 1.17 para a 1.20 na Lyft. O autor enfatiza a importância de um planejamento meticuloso e descreve um processo passo a passo, incluindo a leitura das notas de lançamento, verificação de ferramentas, execução de testes unitários e lint de código. A automação é fundamental, aproveitando os pipelines existentes de construção, CI/CD e implantação. A Lyft concluiu a atualização em 3-4 semanas com problemas mínimos de produção. A publicação também aborda possíveis dificuldades, como suporte de linter, alterações em algoritmos de classificação e tratamento de funções obsoletas, destacando a importância de um plano de reversão.

Olá, Mundo!: Minimizado para 167 bytes

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

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

Regras para Escrever Tutoriais de Software Incríveis

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

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

Desenvolvimento tutoriais de software

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

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

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

Desenvolvimento

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

2025-01-02

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

Desenvolvimento Calendário de IA

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

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

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

Connet: Um Proxy Reverso P2P com Traversal NAT

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

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

Desenvolvimento proxy reverso travessia NAT

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

2025-01-02

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

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

2025-01-02

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

Desenvolvimento

HtmlSlice: Gerador de Fragmentos HTML Reutilizáveis para Ruby

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

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

Desenvolvimento

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

2025-01-02

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

Desenvolvimento ferramenta de compilação

FineCodeX: Um aplicativo que depende do JavaScript

2025-01-02

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

Desenvolvimento

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

2025-01-02

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

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

2025-01-02

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

Estrutura de Carreira de Engenharia do Dropbox: Um Mergulho Profundo

2025-01-02

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

Desenvolvimento estrutura de carreira

mitmproxy2swagger: Engenharia Reversa Automática de APIs REST

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

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

Desenvolvimento

Zasper: Um IDE supercarregado para Ciência de Dados

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

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

Desenvolvimento

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

2025-01-02

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

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

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

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

Desenvolvimento

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

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

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

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

2025-01-02

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

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

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

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

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

Desenvolvimento 64 bits
1 2 182 183 184 186 188 189 190 201 202