Pular para o conteúdo principal

2024-07-27

SQLite: 35% mais rápido que o sistema de arquivos

  • SQLite lê e escreve pequenos blobs (por exemplo, imagens em miniatura) 35% mais rápido do que usando arquivos individuais no disco, e utiliza cerca de 20% menos espaço em disco.
  • A eficiência é atribuída a menos chamadas de sistema open() e close() e a um empacotamento de dados mais compacto, com a expectativa de que o desempenho melhore em versões futuras.
  • Testes mostram que o SQLite geralmente supera a E/S de arquivos direta, especialmente no Windows com software antivírus ativado, embora o desempenho possa variar com base no hardware e no sistema operacional.

Reações

  • SQLite é 35% mais rápido do que sistemas de arquivos tradicionais devido a menos chamadas de sistema de abertura/fechamento e à ausência de necessidade de atributos de sistema de arquivos ou verificações de metadados.
  • Este aumento de desempenho é especialmente significativo no Windows, onde as chamadas ao sistema de arquivos são inerentemente mais lentas.
  • Apesar de algumas limitações, como um máximo de 2GB para blobs e desafios com dados hierárquicos, a velocidade e simplicidade do SQLite o tornam vantajoso para logs e outros tipos de armazenamento de dados.

A Guia de Programação de Módulos do Kernel Linux

  • A Linux Kernel Module Programming Guide fornece uma introdução abrangente à criação e gerenciamento de módulos do kernel, que são segmentos de código carregáveis dinamicamente que aprimoram as capacidades do kernel sem a necessidade de reinicialização.
  • Ferramentas e comandos principais para trabalhar com módulos do kernel incluem modprobe, insmod, depmod, lsmod e cat /proc/modules.
  • As diretrizes cobrem tópicos essenciais como inicialização e limpeza de módulos, manipulação de argumentos de linha de comando, gerenciamento de drivers de dispositivos, interação com os sistemas de arquivos /proc e sysfs, e como evitar armadilhas comuns na programação de kernel.

Reações

  • Guia de Programação de Módulos do Kernel Linux destaca o uso do QEMU para hacking de kernel e sugere a atualização de livros sobre drivers de dispositivos Linux.
  • Greg KH confirmou que não haverá uma 4ª edição do livro Linux Device Drivers, provocando discussões sobre recursos alternativos como 'The Linux Memory Manager' e 'Linux Insides.'
  • Usuários compartilharam experiências com o QEMU para depuração e a suíte de testes WireGuard para desenvolvimento de módulos do kernel, enfatizando a importância da revisão humana na escrita.

Cortes fecham a brecha que permitia aos federais vasculhar seu telefone na fronteira

  • A juíza federal decidiu que a Alfândega e Proteção de Fronteiras (CBP) não pode revistar eletrônicos na fronteira sem um mandado, abordando uma brecha na Quarta Emenda.
  • Juíza Nina Morrison afirmou que buscas em celulares são 'não rotineiras' e exigem causa provável e um mandado, comparando-as a revistas íntimas devido ao seu significativo impacto na privacidade.
  • A decisão, apoiada por defensores das liberdades civis, é vista como crucial para a liberdade de imprensa e os direitos de privacidade, seguindo decisões semelhantes em outros circuitos e distritos.

Reações

  • A Corte Distrital de Nova York decidiu que buscas em celulares sem mandado na fronteira são 'não rotineiras' e mais invasivas do que outros tipos de buscas, comparando-as a revistas íntimas.
  • Esta decisão não é um precedente vinculativo e contrasta com decisões de outros Tribunais de Circuito, indicando a possibilidade de a Suprema Corte abordar a questão devido à existente 'divergência entre circuitos.'
  • A decisão reflete debates contínuos sobre direitos de privacidade e poderes governamentais, especialmente no contexto da segurança fronteiriça e da Quarta Emenda.

In the Beginning Was the Command Line (1999)

  • Neal Stephenson's essay 'No princípio era a linha de comando' explora a evolução dos sistemas operacionais (SO) e suas dinâmicas de mercado, com foco na Apple e na Microsoft.
  • Microsoft alcançou a dominância no mercado vendendo sistemas operacionais como bens de consumo, enfatizando conveniência e facilidade, o que ressoou com tendências culturais mais amplas que valorizam a simplicidade em detrimento da complexidade.
  • Apesar do surgimento de alternativas superiores e gratuitas como Linux e BeOS, a maioria dos consumidores preferia os produtos familiares da Microsoft, destacando uma preferência societal por experiências mediadas através de interfaces gráficas de usuário (GUIs).

Reações

  • "In the Beginning Was the Command Line" (1999), de Neal Stephenson, destaca as vantagens das Interfaces de Linha de Comando (CLI) sobre as Interfaces Gráficas de Usuário (GUIs), enfatizando sua concisão e facilidade de comunicação.
  • A redação compara a evolução dos sistemas operacionais aos carros, destacando a estabilidade e o controle do usuário proporcionados pelas CLIs, apesar da popularidade das GUIs.
  • Também explora as implicações culturais e filosóficas das interfaces tecnológicas, oferecendo uma perspectiva mais ampla sobre como interagimos com a tecnologia.

TOTP tokens no meu pulso com o relógio burro mais inteligente

  • Sensor Watch lançou uma nova placa lógica de substituição para o clássico Casio F-91W, atualizando-o com um processador ARM Cortex M0+ enquanto mantém o LCD original, os botões e o piezo-buzzer.
  • A placa atualizada é programável, permitindo mostradores de relógio personalizáveis e aplicativos utilitários, incluindo recursos como tokens 2FA, medidor de taxa, relógio mundial e mais.
  • A pulseira é fácil de hackear, com um emulador baseado em wasm para testes, e documentação detalhada está disponível para aqueles interessados em modificar ou criar seus próprios mostradores de relógio.

Reações

  • Uma discussão no Hacker News destaca o uso de tokens TOTP (Senha Única Baseada em Tempo) em relógios Casio, especificamente nos modelos F-91W e A158W, para autenticação de dois fatores (2FA).
  • O projeto envolve a modificação do firmware do relógio para exibir códigos TOTP, com contribuições da comunidade aprimorando recursos como calibração do usuário e até mesmo criando jogos para o relógio.
  • Preocupações são levantadas sobre a segurança de ter códigos TOTP visíveis em um relógio, com alguns sugerindo alternativas como chaves de hardware FIDO2 para melhor proteção contra ataques de phishing.

Guia Definitivo de Desempenho de Rede no Linux

  • As orientações fornecem uma visão aprofundada sobre a otimização do desempenho da rede Linux, abordando tópicos desde a pilha de rede até técnicas avançadas de processamento de pacotes.
  • Etapas chave de ajuste incluem a modificação dos tamanhos do buffer de anel da NIC, a coalescência de interrupções, a afinidade de IRQ e o uso de ferramentas como AF_PACKET, DPDK e XDP para o manuseio de pacotes de alto desempenho.
  • Monitorar e ajustar as configurações de rede com ferramentas como ethtool, sysctl e netstat é essencial para manter um desempenho ideal.

Reações

  • As "Linux Network Performance Ultimate Guide" é um recurso abrangente para otimizar o desempenho da rede usando Linux, particularmente útil para aqueles que trabalham com redes de alta velocidade.
  • A user shared a success story of building a cost-effective 10Gbps encrypted network using commercial off-the-shelf (COTS) hardware and Wireguard, significantly undercutting commercial hardware solutions.
  • Discussões nos comentários incluem dicas práticas, como ajuste de tamanhos de buffer TCP, e ferramentas para ajuste automático de desempenho, como o bpftune da Oracle.

Ambiente de recuperação do Windows e criador de USB inicializável em 200kb

  • Windows Deployment Image Customization Kit é uma ferramenta de shell de comando projetada para personalizar e implantar imagens do Windows.
  • Ele fornece uma solução nativa para profissionais de TI e administradores de sistemas para simplificar o processo de implantação.
  • Tutoriais e informações adicionais estão disponíveis em plataformas como YouTube e na documentação oficial da Microsoft.

Reações

  • Uma nova ferramenta baseada em shell para criar um ambiente de recuperação do Windows e um USB inicializável foi lançada, ocupando apenas 200 kilobytes.
  • Essa ferramenta, escrita como um grande arquivo em lote com 3.085 linhas de código, demonstra uma dedicação e eficiência impressionantes, especialmente considerando a disponibilidade de linguagens de script mais modernas, como o PowerShell.
  • A inspiração do projeto vem do clockworkmod recovery para Android e tem como objetivo usar comandos 'live-of-the-land', ou seja, não possui dependências e funciona exclusivamente no Windows.

Criminosos contornaram a verificação de e-mail do Google para criar contas no Workspace, acessando

  • Google corrigiu uma vulnerabilidade de autenticação que permitia a criminosos contornar a verificação de e-mail para criar contas do Google Workspace e se passar por titulares de domínios.
  • A questão foi resolvida em 72 horas, e medidas adicionais de detecção foram implementadas para prevenir abusos futuros.
  • A intenção dos atacantes era se passar por titulares de domínios para serviços de terceiros, não para abusar dos serviços do Google, e a atividade maliciosa envolveu algumas milhares de contas do Workspace criadas sem verificação de domínio.

Reações

  • Ataques contornaram a verificação de e-mail do Google para criar contas não autorizadas no Workspace, levando a possíveis violações de segurança e e-mails de boas-vindas inesperados para domínios não registrados.
  • Essas contas não autorizadas foram usadas para explorar o 'Entrar com o Google' em sites de terceiros, causando dificuldades para as vítimas recuperarem seus domínios.
  • As vulnerabilidades no sistema do Google e os riscos associados aos logins sociais são ressaltados pelo incidente, levando a pedidos de melhorias como a verificação obrigatória de DNS.

DDNS gratuito com Cloudflare e um Cronjob

  • Este projeto oferece uma alternativa gratuita aos serviços pagos de DNS dinâmico, automatizando as atualizações de registros DNS no Cloudflare usando uma conta gratuita e um cronjob.
  • Os usuários precisam clonar o repositório, criar arquivos de configuração (keys.json e records.json) e configurar um cronjob ou um agendador de tarefas equivalente para executar o script em intervalos regulares.
  • O script atualiza os registros DNS no Cloudflare com o endereço IP atual da máquina, tornando-se uma solução econômica para necessidades de DNS dinâmico.

Reações

  • A GitHub project oferece uma solução gratuita de DNS Dinâmico (DDNS) usando Cloudflare e um cron job, atraindo um interesse significativo da comunidade tecnológica.
  • Os usuários discutem os prós e contras de usar o Cloudflare para DDNS, incluindo táticas potenciais de isca e troca e limitações como a terminação obrigatória de TLS e restrições de upload.
  • Alternativas e projetos semelhantes são mencionados, como o uso de túneis Cloudflare, Tailscale e outros clientes DDNS, destacando a variedade de soluções disponíveis para gerenciar endereços IP dinâmicos.

Introdução aos Entrevistas de Aprendizado de Máquina Livro

  • A 'Introdução ao Livro de Entrevistas de Aprendizado de Máquina' oferece um guia abrangente sobre o processo de entrevistas em ML, abordando funções, tipos de empresas, formatos de entrevistas e tipos de perguntas.
  • Ele inclui mais de 200 perguntas de conhecimento e 30 perguntas abertas, com o objetivo de ajudar tanto os candidatos quanto os gerentes de contratação a entender e se preparar para entrevistas de ML.
  • Escrito por Chip Huyen, que possui ampla experiência com entrevistas em grandes empresas de tecnologia e startups, o livro consolida insights práticos e estratégias de preparação.

Reações

  • A discussão sobre o livro 'Introduction to Machine Learning Interviews' de Huyen Chip apresenta opiniões divergentes quanto à sua eficácia na preparação para entrevistas de ML.
  • Alguns usuários sugerem que as perguntas do livro são mais fáceis em comparação com entrevistas reais de ML, e outros recomendam o livro 'Deep Learning Interviews' como mais envolvente e representativo.
  • Há um debate sobre a relevância de usar perguntas padronizadas do livro, com alguns defendendo a criação de projetos personalizados em vez disso.

Sqlitefs: SQLite como um Sistema de Arquivos

  • sqlite-fs permite que usuários de Linux e MacOS montem um arquivo de banco de dados SQLite como um sistema de arquivos regular, facilitando operações de arquivos através de um banco de dados.
  • Requer a versão mais recente da linguagem de programação Rust (≥ 1.38) e libfuse (Linux) ou osxfuse (MacOS) para funcionalidade.
  • Suporta várias operações de arquivos, como criar, ler, escrever, excluir arquivos e diretórios, alterar atributos e lidar com bloqueios de arquivos, com rigoroso tratamento de erros.

Reações

  • SQLiteFS é um projeto que utiliza o SQLite como um sistema de arquivos, atraindo interesse por sua abordagem única ao armazenamento de arquivos.
  • A ideia é reminiscentemente do projeto cancelado da Microsoft, o WinFS, que visava usar o SQL Server como um sistema de arquivos.
  • Apesar do humor e das discussões teóricas, aplicações práticas como o uso do SQLiteFS para operações em memória ou cache estão sendo consideradas.

Oscar Zariski foi um dos fundadores da geometria algébrica moderna

  • Oscar Zariski (1899-1986) foi uma figura central na geometria algébrica moderna, conhecido por seu influente livro 'Superfícies Algébricas' e por suas contribuições significativas ao campo.
  • Apesar de ter iniciado sua carreira acadêmica mais tarde do que o habitual, Zariski permaneceu ativo até os seus oitenta anos, com trabalhos notáveis sobre funções holomorfas e uma rica trajetória acadêmica por instituições prestigiadas.
  • Uma anedota interessante de sua vida inclui quase perder seu próprio casamento por estar profundamente absorto em um problema matemático, destacando sua intensa dedicação à matemática.

Reações

  • Oscar Zariski é reconhecido como um dos fundadores da geometria algébrica moderna.
  • Usuários compartilharam anedotas e discutiram tópicos diversos, incluindo o incidente humorístico do matemático Kalle Väisälä e o 'fator de imaginação', que mede o tempo gasto em mundos reais vs. imaginários.
  • A conversa também mergulhou em discussões históricas e políticas, como a Revolução Russa e debates sobre comunismo versus capitalismo.

Bril: Uma Linguagem Intermediária para o Ensino de Compiladores

  • Bril, a Grande Linguagem Intermediária Vermelha, foi criada para simplificar o ensino de compiladores, priorizando a facilidade de uso e a simplicidade em detrimento do desempenho e do tamanho do código.
  • Os programas Bril são documentos JSON, tornando-os acessíveis com qualquer linguagem de programação e fáceis de compartilhar.
  • A ecossistema Bril se expandiu com contribuições de estudantes, incluindo ferramentas e extensões de linguagem, embora sua forma SSA (Atribuição Única Estática) precise de melhorias.

Reações

  • Bril é uma linguagem intermediária (IL) projetada para o ensino de compiladores, desenvolvida pela Universidade Cornell.
  • Discussões destacam a necessidade de retrabalhar a forma de Atribuição Única Estática (SSA) de Bril e comparações com outros ILs como ANF (Forma A-Normal) e CPS (Estilo de Passagem de Continuação).
  • Alguns argumentam que ILs existentes como LLVM são suficientes para fins educacionais, enquanto outros enfatizam a abordagem única do Bril para ensinar conceitos de compiladores.

Compiladores de Condução

  • A série tem como objetivo preencher a lacuna na literatura sobre o uso de ferramentas para transformar programas em executáveis, focando em conceitos centrais em vez de ensinar uma linguagem ou como escrever um compilador.
  • Ele fornece etapas reprodutíveis usando bintools e o modo detalhado do driver (-v) para ajudar os leitores a explorar além dos exemplos básicos, assumindo uma plataforma Linux com compiladores gcc ou clang.
  • A série é dividida em cinco partes: Driver, cpp (pré-processador), cc (compilador), ld (linkador) e Loader, oferecendo uma abordagem estruturada para entender o processo de compilação.

Reações

  • A matéria oferece uma excelente introdução à cadeia de ferramentas C e C++, com foco em plataformas baseadas em Linux e ELF.
  • Esclarecimentos importantes incluem que a biblioteca padrão do C++ é mais ampla do que a STL, e ::operator new() faz parte do tempo de execução, não apenas de um template.
  • O artigo deveria distinguir melhor entre o carregador do kernel do sistema operacional e o carregador dinâmico do espaço do usuário.

Aprendendo sobre PCI-e: Driver e DMA

  • As postagens detalham a implementação de um driver básico de dispositivo PCI-e (Peripheral Component Interconnect Express), com foco no mapeamento de memória e nas operações de DMA (Acesso Direto à Memória).
  • Explica a criação de um struct pci_driver, a configuração de um dispositivo de caractere para interação com o espaço do usuário e o uso de MSI (Interrupções Sinalizadas por Mensagem) para lidar com transferências DMA assíncronas.
  • Esta postagem é significativa por seu guia prático sobre o desenvolvimento de um driver de dispositivo PCI-e, incluindo trechos de código e referências à documentação do kernel, tornando-a valiosa para novos engenheiros de software.

Reações

  • A discussão gira em torno do uso de um FPGA (Field-Programmable Gate Array) para construir um adaptador de display, com foco no PCI-e (Peripheral Component Interconnect Express) hard IP (Propriedade Intelectual).
  • Várias placas FPGA acessíveis são recomendadas, incluindo Spartan 6, Artix, Screamer PCIe Squirrel e Litefury, que suportam PCIe e saída de vídeo digital.
  • A postagem também destaca recursos e designs para a criação de placas de vídeo e menciona o uso potencial do modo Alt do Displayport e webcams USB3 do tipo UVC para saída de vídeo.