anúncios

sexta-feira, 20 de dezembro de 2024

Ambiente Docker online e gratuito para testes de containers

O Docker revolucionou a forma como criamos, distribuímos e executamos aplicações. Mas nem sempre temos um ambiente configurado para experimentar ou aprender sobre essa tecnologia poderosa. É aqui que o Play With Docker brilha. Essa plataforma gratuita oferece um ambiente pronto para explorar o Docker, diretamente no navegador.

O Play With Docker é uma plataforma interativa que permite:

  • Criar instâncias temporárias para executar containers.
  • Praticar comandos do Docker em um terminal baseado em Linux.
  • Testar configurações de rede entre containers.
  • Experimentar tutoriais e conceitos avançados, como Docker Compose, Swarm e volumes.
  • Tudo isso sem precisar instalar nada no seu computador!

Como começar

Ter uma conta no Docker Hub para logar na plataforma Play With Docker

Caso ainda não tiver uma conta no Docker Hub, crie uma gratuitamente

Após logar na plataforma Play With Docker, crie sessões, inicie uma nova sessão e comece a explorar. Você terá até 4 horas por sessão.

Pode adicionar nós, teste múltiplos containers ou crie clusters usando até 5 nós.

Principais funcionalidades

  • Ambiente seguro e temporário:
  • Ideal para testes rápidos.

  • Interface simples:
  • Terminal Linux no navegador. Também pode conectar no SSH da plataforma, basta copiar o endereço no campo SSH e colar no seu terminal e pronto para executar containers usando o terminal do seu computador conectado na plataforma.

Casos de Uso

  • Aprendizado inicial:
  • Execute comandos básicos do Docker sem se preocupar com instalação.

  • Testes de configuração:
  • Simule redes, volumes e clusters.

  • Demonstrações rápidas:
  • Ideal para workshops e apresentações.

Limitações

Sessões são temporárias (máximo de 4 horas).

Recursos limitados em comparação com um ambiente local ou servidor dedicado.

Considerações finais

O Play With Docker é uma excelente ferramenta para quem quer aprender Docker de maneira prática e acessível. Seja para explorar novos conceitos, realizar testes rápidos ou ensinar colegas, ele elimina barreiras iniciais e torna o aprendizado muito mais fluido.

Referências

https://labs.play-with-docker.com/

Feito!

terça-feira, 10 de dezembro de 2024

Utilizando o Faker para criar mocks de API REST

O Faker é uma aplicação de código aberto desenvolvida em Java que ajuda a separar o desenvolvimento frontend do backend, eliminando a necessidade de esperar pelo desenvolvimento da API. Este guia apresenta os passos para criar mocks de API REST usando o Faker e Docker.

Procedimentos:

  1. Instalação do Docker:
  2. Certifique-se de ter o Docker instalado em seu sistema para facilitar o uso do Faker.

    Caso ainda não tenha o Docker instalado na distro Linux com base Debian, então execute no terminal:

    $ sudo apt install docker.io docker-compose
  3. Configuração do diretório mocks:
  4. Crie um diretório chamado "mocks" em seu sistema. Dentro deste diretório, crie arquivos JSON para definir os mocks de API.

  5. Exemplo de arquivo JSON:
  6. Um exemplo de arquivo JSON para um mock de usuários pode ser assim:

    
    {
      "plugins": [
        {
          "name": "list",
          "args": {
            "count": 5,
            "item": {
              "id": "#random:int:min=1&max=1000#",
              "name": "#random:name#",
              "created_at": "#timestamp#",
              "updated_at": "#timestamp#"
            }
          }
        },
        {"name": "random"},
        {"name": "timestamp"}
      ],
      "request": {
        "method": "GET",
        "path": "/v1/users"
      },
      "response": {
        "body": []
      }
    }
    
    

    Este exemplo define um mock para a rota "/v1/users" que retorna uma lista de 5 usuários com campos como "id", "name", "created_at" e "updated_at" gerados aleatoriamente.

  7. Execução do container Docker:
  8. Utilize o seguinte comando Docker para executar o Faker:

    docker run --rm -p 3030:3030 -v /diretorio/mocks:/app/mocks dotronglong/faker:stable

    Este exemplo define um mock para a rota "/v1/users" que retorna uma lista de 5 usuários com campos como "id", "name", "created_at" e "updated_at" gerados aleatoriamente.

    Certifique-se de substituir "/diretorio/mocks" pelo caminho absoluto para o diretório de mocks que você criou anteriormente.

  9. Acessando os mocks de API:
  10. Após iniciar o container Docker, você pode acessar os mocks de API através do seguinte endpoint:

    curl http://localhost:3030/v1/users

    OU no browser http://localhost:3030/v1/users

  11. Recursos adicionais:
  12. Para mais informações e recursos sobre o Faker, consulte o repositório oficial no GitHub:

    https://github.com/dotronglong/faker

  13. Adicionar o Faker Mock no arquivo docker-compose.yml
  14. No diretório, onde estão os arquivos JSON com dados de mock, crie o arquivo

    docker-compose.yml, conforme abaixo:

    
    version: '3.8'
    
    services:
      mock_faker:
        image: dotronglong/faker:stable
        container_name: mock_faker
        ports:
          - "3030:3030"
        volumes:
          - ".:/app/mocks"
        restart: unless-stopped
    
    

    Caso, tenha Faker Mock já está em execução, é necessário finalizar, com docker kill

    Depois, execute docker-compose up -d

    Adicione a URL do Faker Mock com o endpoint definido no arquivo JSON no Postman com o verbo HTTP (GET ou POST).

    Feito!

sexta-feira, 6 de dezembro de 2024

Sua API é REST? Descubra agora

No mundo do desenvolvimento de software, o termo "API REST" tornou-se um padrão amplamente utilizado para integração entre sistemas. No entanto, nem todas as APIs que se apresentam como RESTful seguem, de fato, os princípios fundamentais do REST. Aderir a esses princípios não é apenas uma questão de semântica, mas também de garantir consistência, escalabilidade e facilidade de uso para os desenvolvedores que consomem sua API.

Neste artigo, exploraremos os elementos essenciais que definem uma API RESTful e apresentaremos um guia prático para ajudar você a verificar se sua API está verdadeiramente alinhada a esse padrão.

Descubra como estruturar endpoints, utilizar métodos HTTP corretamente e aplicar boas práticas que tornam sua API mais eficiente e aderente aos conceitos do REST.

O REST (Representational State Transfer) é um estilo arquitetural que define um conjunto de restrições para a criação de serviços web escaláveis e eficientes. Ele foi introduzido por Roy Fielding em sua tese de doutorado em 2000 e tem se tornado a base para a construção de APIs modernas. Para que uma API seja considerada RESTful, ela deve seguir seis princípios fundamentais:

  1. Cliente-Servidor
  2. A arquitetura REST é baseada na separação entre cliente e servidor, o que permite que ambos evoluam de forma independente. O cliente é responsável pela interface do usuário e pela experiência do usuário, enquanto o servidor gerencia o armazenamento e a lógica dos dados. Essa separação melhora a portabilidade do cliente e a escalabilidade do servidor.

  3. Stateless (sem estado)
  4. Cada requisição do cliente ao servidor deve conter todas as informações necessárias para que o servidor entenda e processe o pedido. O servidor não deve armazenar informações sobre o estado do cliente entre as requisições. Isso significa que cada chamada é independente, permitindo que as requisições sejam feitas em qualquer ordem.

  5. Cacheável
  6. As respostas das APIs REST devem ser rotuladas como cacheáveis ou não, permitindo que os clientes armazenem em cache as respostas para otimizar o desempenho. Isso reduz a necessidade de chamadas repetidas ao servidor para obter os mesmos dados, melhorando a eficiência da comunicação.

  7. Interface uniforme
  8. Uma interface uniforme simplifica e desacopla a arquitetura, permitindo que diferentes clientes interajam com o servidor de maneira padronizada. Isso geralmente é implementado através dos métodos HTTP padrão (GET, POST, PUT, DELETE), que definem claramente as operações permitidas em recursos específicos.

  9. Sistema em camadas
  10. A arquitetura REST pode ser composta por várias camadas hierárquicas, onde cada camada não conhece as camadas além daquela com a qual está interagindo. Isso permite que intermediários, como proxies e gateways, sejam utilizados para melhorar a segurança e a escalabilidade sem que o cliente precise conhecer a complexidade interna do servidor.

  11. Código sob demanda (opcional)
  12. Embora não seja uma exigência, as APIs REST podem permitir que o servidor envie código executável ao cliente quando necessário, estendendo a funcionalidade do cliente sem exigir atualizações constantes.

Diferença entre API REST e RESTful

REST: Conjunto de princípios arquiteturais.

RESTful: Implementação desses princípios em um sistema específico.

Exemplos de endpoints da API de Produtos

  • Forma errada de endpoints
  • A forma incorreta de definir os endpoints para uma API de produtos pode levar a confusões e não seguir as melhores práticas do REST. Aqui estão alguns exemplos de endpoints mal estruturados:

    /cadastrarProduto

    /editarProduto

    /atualizarProduto

    /excluirProduto

    Esses endpoints não representam recursos, mas sim ações específicas. Isso vai contra o princípio do REST, que enfatiza a manipulação de recursos através de URLs que representam entidades.

  • Forma correta de endpoints
  • A seguir, apresentamos uma forma correta e mais alinhada com os princípios REST para a API de produtos:

    1. Criar um Produto

    POST /produtos

    Sucesso: 201 Created

    Erro: 422 Unprocessable Entity

    O /produtos representa a coleção de produtos. O método POST é utilizado para criar um novo produto. Caso ocorre algum erro, deve retornar uma mensagem em JSON com código de status 422.

    2. Listar todos os produtos

    GET /produtos

    Permite recuperar uma lista de todos os produtos. Caso, não tiver nenhum produto, deve retornar uma lista vazia.

    3. Recuperar um produto específico

    GET /produtos/1

    Sucesso: 200 OK

    Erro: 404 Not Found

    Isso é para visualizar um produto específico pela sua identificação (ID). O número 1 representa o ID do produto ou caso o produto não existir deve retornar uma mensagem em JSON com código de status 404.

    4. Atualizar um produto existente

    PUT /produtos/1

    Sucesso: 200 OK

    Erro: 404 Not Found

    O método PUT é utilizado para atualizar os dados de um produto existente, identificado pelo ID 1 ou caso o produto não existir deve retornar uma mensagem em JSON com código de status 404.

    5. Excluir um Produto

    DELETE /produtos/1

    Sucesso: 200 OK

    Erro: 404 Not Found

    O método DELETE remove o produto identificado pelo ID 1 ou caso o produto não existir deve retornar uma mensagem em JSON com código de status 404.

    Considerações finais

    Ao projetar uma API, é fundamental seguir os princípios REST para garantir que os endpoints sejam intuitivos e representem recursos em vez de ações. Isso não apenas melhora a clareza e a usabilidade da API, mas também facilita a manutenção e a escalabilidade no futuro.

    Os princípios fundamentais do REST garantem uma comunicação eficiente entre sistemas, promovendo flexibilidade, escalabilidade e interoperabilidade. A adoção dessas diretrizes no desenvolvimento de APIs tem contribuído para o crescimento das aplicações web modernas, especialmente aquelas baseadas em nuvem.

    Referência

    FIELDING, Roy Thomas. Architectural styles and the design of network-based software architectures. 2000. Dissertação (Doutorado em Ciência da Computação) - University of California, Irvine, 2000. Disponível em: Architectural styles and the design of network-based software architectures . Acesso em: 06/12/2024.

    Feito!

segunda-feira, 25 de novembro de 2024

Entendendo a JVM

O que é a JVM e por que ela é tão importante?

A Java Virtual Machine (JVM) é um dos pilares mais importantes da linguagem Java. Ela permite que o Java alcance seu objetivo principal de ser portável, com o famoso lema "Write Once, Run Anywhere" (Escreva uma vez, execute em qualquer lugar).

Mas o que exatamente é a JVM? Em resumo, é uma máquina virtual que interpreta e executa o bytecode Java (arquivos .class), traduzindo-o para instruções compreensíveis pelo sistema operacional e hardware subjacente.

Graças à JVM, aplicações Java podem ser executadas em diferentes plataformas sem que o código precise ser reescrito, garantindo portabilidade, segurança e eficiência.

Arquitetura da JVM: Explorando os Componentes Internos

A JVM é composta por várias partes que trabalham juntas para executar programas Java.

  1. Class Loader (Carregador de Classes)
  2. O Class Loader é responsável por carregar os arquivos .class na memória no momento da execução. Ele organiza e gerencia as classes em diferentes níveis:

    • Bootstrap Class Loader:
    • Carrega as classes fundamentais do Java.

    • Extension Class Loader:
    • Lida com bibliotecas adicionais.

    • Application Class Loader:
    • Carrega as classes da aplicação.

  3. Área de Memória da JVM
  4. A memória da JVM é organizada em várias áreas, cada uma com uma função específica:

    • Heap:
    • Onde os objetos e instâncias são armazenados.

    • Stack:
    • Armazena frames de métodos em execução e variáveis locais.

    • Method Area:
    • Contém metadados das classes e bytecode.

    • PC Register:
    • Rastrea a posição atual da instrução sendo executada em cada thread.

    • Native Method Stack:
    • Suporte para métodos escritos em linguagens nativas, como C ou C++.

  5. Execution Engine (Motor de Execução)
  6. Essa é a parte da JVM que transforma o bytecode em instruções executáveis.

    • Interpretador:
    • Executa o bytecode linha a linha.

    • JIT Compiler (Just-In-Time):
    • Compila o bytecode em código nativo para acelerar a execução.

  7. Native Interface
  8. Permite que o Java interaja com bibliotecas nativas do sistema, facilitando a execução de código fora da JVM.

  9. Garbage Collector (Coletor de Lixo)
  10. Um recurso essencial da JVM que gerencia automaticamente a memória, removendo objetos não utilizados e evitando problemas como vazamentos de memória (memory leaks).

Como a JVM executa o código?

O processo de execução de um programa Java na JVM segue estas etapas:

  • O compilador Java (javac) converte o código-fonte (.java) em bytecode (.class).
  • O Class Loader carrega o bytecode na memória da JVM.
  • O Motor de Execução interpreta ou compila o bytecode para código nativo.
  • O código nativo é executado pelo hardware subjacente.

Diferenciando JVM, JRE e JDK

Ao trabalhar com Java, você encontrará três termos comuns:

JVM (Java Virtual Machine): É o ambiente de execução para programas Java.

JRE (Java Runtime Environment): Inclui a JVM e bibliotecas padrão necessárias para rodar aplicações.

JDK (Java Development Kit): Inclui o JRE, ferramentas de desenvolvimento (compilador, depurador, etc.) e bibliotecas adicionais.

Benefícios da JVM

  • Portabilidade:
  • O bytecode é independente de plataforma, e a JVM específica de cada sistema operacional cuida da execução.

  • Eficiência:
  • O JIT Compiler otimiza o desempenho em tempo de execução.

  • Segurança:
  • Oferece isolamento entre o código Java e o hardware real, protegendo contra execuções maliciosas.

  • Multithreading:
  • Suporte nativo para execução simultânea de threads.

  • Gerenciamento de Memória:
  • O Garbage Collector simplifica o desenvolvimento e reduz problemas como vazamentos de memória.

Considerações finais

A Java Virtual Machine é a espinha dorsal do Java. Sua arquitetura robusta e características inovadoras garantem que aplicações sejam executadas de forma confiável, segura e eficiente em diferentes plataformas.

Entender como a JVM funciona não é apenas importante para desenvolvedores Java, mas também para quem deseja otimizar aplicações, resolver problemas de desempenho ou explorar áreas como DevOps e segurança.

Feito!

quarta-feira, 13 de novembro de 2024

Comparativo entre MySQL e MariaDB: Aprenda como usá-los em containers Docker com DBeaver

MySQL e MariaDB são dois dos bancos de dados relacionais mais populares no mercado, amplamente usados em sistemas de produção. Ambos são Sistemas de Gerenciamento de Banco de Dados (SGBDs) que suportam operações complexas e escaláveis, atendendo a várias necessidades de armazenamento e manipulação de dados. Porém, eles têm diferenças notáveis, desde seu licenciamento até características de desempenho e inovação.

Neste artigo, vamos explorar as diferenças entre MySQL e MariaDB, explicar suas origens e uso, e demonstrar como configurar ambos em containers Docker para facilitar o desenvolvimento e o gerenciamento de banco de dados. Também abordaremos como conectá-los ao DBeaver para visualização e administração.

O que é um banco de dados e um SGBD?

Um banco de dados é uma coleção organizada de dados que permite o armazenamento e a recuperação rápida de informações. Para gerenciar, organizar e manipular esses dados de forma eficiente, usamos um Sistema de Gerenciamento de Banco de Dados (SGBD), que é um software que interage com os dados e com o usuário, facilitando operações como consultas, atualizações e análises.

Existem dois tipos principais de banco de dados:

Relacionais: Organizam os dados em tabelas com colunas e linhas, como o MySQL, MariaDB, PostgreSQL, Oracle, MS SQL Server. São ideais para dados estruturados e complexos.

NoSQL: São não-relacionais e oferecem maior flexibilidade para trabalhar com dados sem estrutura rígida, como JSON ou dados hierárquicos. Exemplos incluem MongoDB, Cassandra.

MySQL vs MariaDB:

MySQL foi desenvolvido inicialmente pela empresa sueca MySQL AB e se tornou rapidamente popular por sua velocidade e simplicidade. Em 2008, foi adquirido pela Oracle, o que gerou preocupação na comunidade de código aberto sobre o futuro do projeto. Em resposta, Michael Widenius, um dos fundadores do MySQL, criou um fork chamado MariaDB, que manteve o foco em ser completamente livre e aberto, além de adicionar inovações.

Principais Diferenças entre MySQL e MariaDB

Característica MySQL MariaDB
Licenciamento GPL para Community Edition e versão comercial pela Oracle GPL, totalmente de código aberto
Mecanismo de Armazenamento InnoDB Aria (padrão) e InnoDB opcional
Replicação e Clustering Replicação Master-Slave, Master-Master Suporta Galera Cluster para replicação síncrona
Suporte JSON Suporte nativo Suporte nativo e melhorias de desempenho
Otimizações de Desempenho Foco em InnoDB e otimizações internas Aria, cache de subconsultas e consultas paralelas otimizadas
Recuperação de Crashes InnoDB com recuperação automática Aria com recuperação rápida e segura
Novos Recursos Suporte a JSON e novos tipos de dados Compatibilidade com PL/SQL e ColumnStore
Atualizações e Inovações Focada em estabilidade com novas funcionalidades controladas Atualizações frequentes com inovações rápidas

Instalando e executando o MySQL E MariaDB no Docker

Execute no terminal Linux (Debian e derivados), se caso ainda não tiver o Docker instalado.

$ sudo apt update

$ sudo apt install docker.io docker-compose

Caso você ainda usa Windows, então segue os procedimentos para poder conseguir reproduzir os procedimentos desse artigo no seu computador Janeleiro!

Habilitar o WSL2:

Abra o PowerShell como administrador e execute:

wsl --install

O comando acima instala automaticamente o WSL e a versão Ubuntu padrão. Caso queira instalar uma distribuição específica, como o Ubuntu LTS, ela pode ser encontrada na Microsoft Store.

Configurar o WSL2:

Verifique a versão do WSL para garantir que é o WSL2. Para isso, execute:

wsl --set-default-version 2

Isso configura o WSL para rodar como WSL2 por padrão, o que melhora a performance e compatibilidade com o Docker.

Instalar o Docker Desktop

Baixe e instale o Docker Desktop para Windows. Durante a instalação, marque a opção para Usar WSL2 em vez de Hyper-V.

Depois de instalado, o Docker Desktop detectará automaticamente o WSL2, permitindo executar containers diretamente no ambiente Ubuntu do WSL.

Com o Docker configurado, você poderá seguir os mesmos comandos descritos no artigo para executar containers de MySQL e MariaDB usando o terminal do Ubuntu no WSL2.

Para desenvolvedores que buscam um ambiente mais próximo dos servidores de produção e com maior controle do sistema, migrar para uma distribuição Linux pode ser uma excelente opção. Muitos profissionais encontram no Linux uma plataforma robusta e personalizável para desenvolvimento!

Configurando MySQL e MariaDB com Docker

O uso de Docker para configurar e executar MySQL e MariaDB em containers é uma prática cada vez mais comum. Docker simplifica o processo de instalação e oferece portabilidade, ideal para ambientes de desenvolvimento e testes.

Executando MySQL com Docker

Para criar um container Docker para MySQL, execute:

docker run --name mysql-docker -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=banco1 -p 3306:3306 -v mysql_data:/var/lib/mysql -d mysql:latest

Executando MariaDB com Docker

Para iniciar MariaDB em um container, use:

docker run --name mariadb-container -e MARIADB_ROOT_PASSWORD=secret -e MARIADB_DATABASE=banco2 -p 3307:3306 -v mariadb_data:/var/lib/mysql -d mariadb:latest

Conectando ao MySQL e MariaDB com DBeaver

DBeaver é uma ferramenta gráfica popular para gerenciar SGBDs, incluindo MySQL e MariaDB.

Execute no terminal Linux (Debian e derivados), se ainda não tiver instalado o DBeaver.

$ sudo apt install dbeaver-ce

Configurando conexão com MySQL no DBeaver

No DBeaver, vá em Database > New Database Connection.

Escolha MySQL na lista e configure:

Host: 127.0.0.1

Porta: 3306

Database: banco1

Username: root

Password: secret

Clique em Test Connection para verificar se a conexão com o container MySQL está funcionando.

Configurando conexão com MariaDB no DBeaver

No DBeaver, vá em Database > New Database Connection.

Escolha MariaDB e configure:

Host: 127.0.0.1

Porta: 3307

Database: banco2

Username: root

Password: secret

Após a configuração, você poderá gerenciar ambos os bancos de dados diretamente pelo DBeaver.

Clique em Test Connection para verificar a conexão com o container MariaDB.

Considerações finais

Tanto MySQL quanto MariaDB oferecem recursos poderosos e são amplamente utilizados em aplicações de produção. MariaDB é a escolha mais flexível e totalmente aberta, enquanto MySQL continua popular devido ao suporte e estabilidade oferecidos pela Oracle. A escolha entre MySQL e MariaDB depende das necessidades específicas do seu projeto, especialmente em relação ao licenciamento e aos recursos avançados. A configuração de ambos via Docker é simples e oferece um ambiente isolado para testes, desenvolvimento e operação.

Feito!

terça-feira, 12 de novembro de 2024

Instalando driver da NVIDIA no Ubuntu

O presente post, irá orientá-lo na instalação do driver NVIDIA no Ubuntu 24.04 e 24.10, permitindo que você aproveite ao máximo o desempenho da sua GPU NVIDIA. O processo inclui a verificação do driver recomendado para o seu sistema, instalação do driver, configuração do Secure Boot (se aplicável) e uma verificação final para garantir que o driver esteja ativo.

Atualizar o sistema

No terminal, execute os comandos abaixo para garantir que o sistema esteja atualizado:

$ sudo apt update

$ sudo apt upgrade


Verificar o driver NVIDIA compatível

Para ver qual versão do driver é recomendada para o seu hardware, use o comando:

$ ubuntu-drivers devices

Esse comando exibirá uma lista de drivers disponíveis e o driver recomendado para o seu sistema.

Instalar o Driver Recomendado

Substitua XXX pelo número da versão do driver recomendada (por exemplo, 560 ou outra) conforme indicado no passo anterior.

$ sudo apt install nvidia-driver-XXX

Durante a instalação, será solicitado que você crie uma senha para ativação do MOK (Machine Owner Key), necessária se o Secure Boot estiver ativado.

Ativar o Driver NVIDIA com Secure Boot

Após instalar o driver, reinicie o sistema:

$ sudo reboot

Quando o sistema reiniciar, será exibida a tela de gerenciamento MOK (Machine Owner Key). Siga estas instruções:

Selecione "Continue" para avançar no processo de inscrição da chave.

Escolha "Enroll MOK" para inscrever a nova chave.

Digite a Senha: Insira a senha que você configurou durante a instalação do driver.

Confirme a Inscrição: Siga as instruções para concluir a inscrição da chave.

Após essa etapa, o sistema aceitará os módulos do kernel assinados, permitindo o carregamento correto do driver NVIDIA mesmo com o Secure Boot ativado. Reinicie o sistema novamente para aplicar as alterações.

Verificar a instalação

Depois de reiniciar, use o comando abaixo para verificar se o driver está ativo:

$ nvidia-smi

Este comando deve exibir informações sobre a GPU NVIDIA, confirmando que o driver foi instalado corretamente.

Verificar o Estado do Secure Boot Para confirmar se o Secure Boot está habilitado, execute:

$ mokutil --sb-state

A saída deverá indicar "SecureBoot enabled" se o Secure Boot estiver ativo.

Feito!

quarta-feira, 30 de outubro de 2024

Atenção: Mudanças no PIX a partir de Novembro! Verifique suas chaves

A partir de 1º de novembro de 2024, o sistema de pagamentos instantâneos PIX passará por mudanças significativas, com o objetivo de aumentar a segurança das transações e combater fraudes. O Banco Central do Brasil (BC) implementará novas regras que incluem limites para transferências realizadas a partir de dispositivos não cadastrados.

Mudanças no PIX

As principais alterações incluem:

  • Limite de transferência: Para dispositivos que nunca foram usados para realizar transações Pix, o valor máximo por transação será de R$ 200, e o limite diário será de R$ 1.000. Para valores superiores, será necessário que o dispositivo esteja previamente cadastrado na instituição financeira.
  • Cadastro de dispositivos: A exigência de cadastro se aplica apenas a novos dispositivos (celulares ou computadores) que nunca tenham sido utilizados para iniciar uma transação Pix. Dispositivos já cadastrados não sofrerão alterações nas regras.
  • Medidas de segurança: As instituições financeiras deverão adotar soluções mais robustas para gerenciamento de fraudes e informar os clientes sobre cuidados necessários para evitar golpes. Além disso, elas devem verificar, pelo menos a cada seis meses, se os clientes têm registros de fraude.

Verificando as chaves PIX no registrato com conta Gov.BR

Para garantir a segurança e a correta utilização do sistema PIX, é fundamental verificar as chaves cadastradas. O Registrato é uma ferramenta disponibilizada pelo Banco Central que permite aos usuários consultar suas chaves PIX e outras informações bancárias. A seguir, um passo a passo para realizar essa verificação utilizando sua conta Gov.BR.

Passo a Passo para verificar as chaves PIX

  1. Acesse o Portal do Registrato
  2. Registrato

  3. Login com conta Gov.BR:
  4. Faça login utilizando suas credenciais da conta Gov.BR. Se ainda não tiver uma conta, será necessário criar uma.

    Caso você tenha uma conta, mas ainda não seja Prata ou Ouro, será necessário migrar de Bronze para Prata ou Ouro para acessar todas as funcionalidades.

  5. Navegue pelas opções:
  6. Após o login, você poderá acessar relatórios e consultar suas chaves PIX, entre outras informações financeiras.

  7. Verifique os detalhes das chaves:
  8. Dentro da seção de consulta, você verá uma lista das chaves Pix associadas à sua conta. Verifique se todas as informações estão corretas e se não há nenhuma chave que você não reconheça.

  9. Atualize ou remova chaves se necessário:
  10. Caso encontre chaves que não são mais utilizadas ou que você não reconhece, utilize as opções disponíveis para atualizá-las ou removê-las conforme necessário.

  11. Salve ou imprima os resultados:
  12. É recomendável salvar ou imprimir os resultados da consulta para futuras referências e para manter um registro da sua segurança financeira.

Considerações finais

Com as novas regras do PIX e a possibilidade de fraudes mais sofisticadas, verificar regularmente suas chaves cadastradas é uma prática essencial para garantir a segurança das suas transações financeiras. O uso do Registrato através da conta Gov.BR facilita esse processo e proporciona uma camada adicional de segurança ao seu uso do sistema Pix. Mantenha-se sempre informado sobre as atualizações e boas práticas recomendadas pelas instituições financeiras para proteger seus dados e recursos.

Referências

https://www.infomoney.com.br/minhas-financas/mudancas-no-pix-entram-em-vigor-no-dia-1o-de-novembro-saiba-novas-regras/

Feito!

terça-feira, 22 de outubro de 2024

Aprenda SQL do zero ao avançado

SQL (Structured Query Language) é uma linguagem de programação utilizada principalmente para interagir com bancos de dados relacionais. É fundamental entender o conceito de Sistema Gerenciador de Banco de Dados (SGBD) antes de mergulhar na aprendizagem de SQL.

Conceito de SGBD

Um Sistema Gerenciador de Banco de Dados (SGBD) é um software que permite criar, organizar, armazenar, recuperar e manipular dados em um banco de dados. Os principais componentes de um SGBD incluem:

  • Motor de banco de dados
  • Linguagem de consulta
  • Interface de usuário
  • Sistema operacional

Exemplo prático: MySQL

MySQL é um dos SGBDs mais populares e amplamente utilizado. Ele oferece uma interface de linha de comando e suporta várias linguagens de programação.

MariaDB

O MariaDB é um SGBD multiplataforma lançado em 2009, fork do MySQL. Algumas de suas vantagens incluem:

  • Baseado no MySQL
  • Licença GNU GPL
  • Multiplataforma

PostgreSQL

O PostgreSQL é outro SGBD muito popular e avançado. Algumas de suas principais características incluem:

  • Open source, sob a licença BSD e multiplataforma
  • Suporta diferentes tipos de dados
  • Meios de consulta mais complexos
  • Chaves estrangeiras e outros recursos avançados
  • Escalável para projetos de maior escala

Oracle Database

O Oracle Database é um dos SGBDs mais utilizados em aplicações corporativas:

  • Desenvolvido pela Oracle Corporation
  • Multiplataforma
  • Licença comercial
  • Suporta desde demandas simples até complexas
  • Excelente para aplicações corporativas

Microsoft SQL Server

O Microsoft SQL Server é desenvolvido pela Microsoft:

  • Disponível para Windows e Linux
  • Possui licença proprietária
  • Atende desde demandas simples até complexas
  • Robustos recursos de segurança
  • Meios de criptografia avançados

Criação do container MySQL

É necessário ter o Docker instalado no SO (Windows, Linux). Caso estja no Windows, habilite o recurso WSL2 e na loja Microsoft, pesquise Ubuntu, após a instalação do Ubuntu no WSL2, abre o terminal do Linux (Ubuntu) e segue os procedimentos abaixo dos itens 1 até 4, caso já estiver com Docker, continue no item 5.

  1. Atualização do sistema
  2. sudo apt update && sudo apt upgrade -y
  3. Instalação do Docker
  4. sudo apt install docker.io -y
  5. Inicialização do serviço Docker
  6. sudo systemctl start docker
  7. Habilitar a inicializaçao do serviço Docker no boot do sistema
  8. sudo systemctl enable docker
  9. Criar o conteiner MySQL
  10.   sudo docker run -d \
      --name projeto1_mysql \
      -p 3306:3306 \
      -e MYSQL_ROOT_PASSWORD=secret \
      -e MYSQL_DATABASE=projeto1 \
      -v projeto1_data:/var/lib/mysql \
      mysql:8
      
      

Conectando ao banco de dados

Utilizando um cliente MySQL (DBeaver), conecte no banco de dados com as devidas credenciais (usuário e senha) definido na instalação e host/porta.

Host: 127.0.0.1

Port: 3306

Username: root

Password: secret

Database: projeto1

Criação das tabelas usuários e pedido

Utilizando o banco de dados projeto1, antes de criar as tabelas, precisa selecionar qual banco de dados que serão criadas. Para isso, execute:

USE projeto1;

CREATE TABLE usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(255),
    email VARCHAR(255) UNIQUE,
    data_nascimento DATE
);

CREATE TABLE pedidos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    usuario_id INT,
    produto VARCHAR(255),
    preco DECIMAL(10,2),
    quantidade INT,
    data_pedido DATE,
    FOREIGN KEY (usuario_id) REFERENCES usuarios(id)
);

A tabela pedidos tem as seguintes características:
  1. O campo id é o identificador principal da tabela, gerado automaticamente pelo MySQL.
  2. usuario_id é um campo que relaciona os pedidos aos usuários específicos.
  3. produto armazena o nome do produto comprado.
  4. preco armazena o preço do produto com duas casas decimais.
  5. quantidade indica quantos itens foram comprados.
  6. data_pedido registra a data em que o pedido foi feito.
  7. Adicionamos uma chave estrangeira (FOREIGN KEY) para estabelecer uma relação entre pedidos e usuarios.

Esta estrutura permite que você mantenha dados sobre os usuários e seus respectivos pedidos, facilitando análises e consultas mais complexas posteriormente.

Fundamentos básicos de SQL

Agora, vamos explorar alguns conceitos básicos de SQL:

SELECT

O comando SELECT é usado para recuperar dados de uma ou mais tabelas.

Exemplo prático:

SELECT * FROM usuarios;

Este comando retorna todos os registros da tabela usuarios.

INSERT

O comando INSERT é utilizado para inserir novos registros em uma tabela.

Exemplo prático:

INSERT INTO usuarios (nome, email, data_nascimento) VALUES ('Bjorn Cyril', 'bjorn.cyril@hotmail.com', '1990-11-07');

INSERT INTO pedidos (id, usuario_id, produto, preco, quantidade, data_pedido) VALUES (1, 1, 'Camiseta Azul', 29.99, 2, '2024-10-20');

UPDATE

O comando UPDATE é usado para modificar dados existentes em uma tabela.

WARNING: Sempre utilize o WHERE no comando UPDATE

Exemplo prático:

UPDATE usuarios SET email = 'bjorn.cyril@gmail.com' WHERE id = 1;

DELETE

O comando DELETE é utilizado para remover registros de uma tabela.

WARNING: Sempre utilize o WHERE no comando DELETE

Exemplo prático:

DELETE FROM usuarios WHERE id = 1;

Consultas Avançadas

Vamos explorar algumas técnicas mais avançadas de SQL:

JOIN

O JOIN é usado para combinar dados de duas ou mais tabelas relacionadas.

Exemplo prático:

SELECT u.nome, p.preco FROM usuarios u JOIN pedidos p ON u.id = p.usuario_id;

Este exemplo mostra como combinar dados dos usuários e seus pedidos.

GROUP BY

O GROUP BY agrupa resultados por valores específicos.

Exemplo prático:

SELECT COUNT(*) AS quantidade_pedidos, AVG(preco) AS media_preco FROM pedidos GROUP BY usuario_id;

Este comando retorna a quantidade de pedidos e a média de preço por usuário.

Conceitos avançados

Agora vamos mergulhar em alguns conceitos mais avançados de SQL:

Subquery

Uma subquery é uma consulta dentro de outra consulta.

Exemplo prático:


SELECT *
FROM usuarios
WHERE id IN (
    SELECT usuario_id
    FROM pedidos
    WHERE preco > 100
);

Esta consulta seleciona usuários que fizeram pedidos com valor superior a 100.

UNION

O UNION combina os resultados de duas ou mais consultas.

Exemplo prático:


SELECT nome, email
FROM usuarios
UNION
SELECT nome, email
FROM clientes;

Este comando combina os resultados das tabelas usuarios e clientes.

A tabela clientes não foi criada, antes de executar, crie a tabela clientes, com base dos exemplos das tabela pedidos.

Comandos úteis do Docker

Para parar o container

sudo docker stop projeto1_mysql

Para iniciar o container

sudo docker start projeto1_mysql

Para remover o container

sudo docker rm projeto1_mysql

Para remover o volume

sudo docker volume rm projeto1_data

Considerações finais

SQL é uma linguagem poderosa e versátil que forma a base de muitos sistemas de banco de dados modernos. Compreender esses conceitos básicos e avançados é fundamental para qualquer desenvolvedor ou analista de dados.

Pratique regularmente e explore diferentes bancos de dados para melhorar suas habilidades. Lembre-se de que a prática é a chave para dominar SQL efetivamente.

Feito!

quinta-feira, 17 de outubro de 2024

3 técnicas secretas para aprender a programar independente da linguagem

Você sempre quis aprender programação, mas não sabe por onde começar? Talvez tenha tentado antes, mas desistiu porque parecia muito difícil ou confuso? Boa notícia: você está no caminho certo ao estar aqui!

Aprender programação pode ser um desafio, mas com as técnicas certas, qualquer pessoa pode dominar esse mundo fascinante. Neste artigo, vamos explorar três técnicas poderosas que podem ajudá-lo a aprender programação de forma eficiente e independente da linguagem específica que você escolher.

Técnica 1: Pensamento positivo e confiança

Uma das ferramentas mais poderosas para o aprendizado de programação é mudar sua mentalidade em relação ao processo. Em vez de pensar que você precisa ter talento natural ou que é muito difícil, é crucial adotar uma mentalidade positiva e confiante.

Algumas dicas para cultivar esse pensamento positivo incluem:

Aceitar que você consegue aprender, independentemente do tempo necessário.

Evitar comparações com outros que parecem aprender mais rapidamente.

Focar no progresso gradual e nas conquistas menores.

Esta mudança de perspectiva ajuda a reduzir a ansiedade e aumentar a motivação para continuar aprendendo. Lembre-se, programação é uma habilidade que pode ser desenvolvida com prática e dedicação.

Técnica 2: Prática intermitente com teoria

Uma técnica eficaz para aprender programação é alternar entre estudos teóricos e prática de código. Isso ajuda porque:

A teoria fornece o conhecimento básico necessário.

A prática permite aplicar os conceitos aprendidos.

O ciclo de teoria-prática ajuda a fixar melhor o aprendizado

Permite identificar pontos que ainda precisam ser estudados mais profundamente.

A chave é manter um equilíbrio saudável entre estudos e exercícios práticos. Comece com pequenos projetos e vá aumentando gradualmente a complexidade conforme você se torna mais confortável com os conceitos.

Técnica 3: Repetição espalhada ao longo do tempo

Uma técnica poderosa para melhorar a memória e a velocidade de digitação é repetir o código manualmente ao longo dos dias. Isso ajuda porque:

Distribui o aprendizado em pequenas tarefas.

Permite que o cérebro reorganize e fortaleça os caminhos neuronais.

Melhora a fluência na digitação do código.

Ajuda a memorizar funções e estruturas de dados.

A ideia é nunca copiar e colar automaticamente, mas sempre digitar manualmente, mesmo que seja apenas uma parte pequena do código. Com o tempo, você verá seu conhecimento crescendo exponencialmente.

Considerações finais

Embora algumas pessoas possam encontrar programação desafiadora, especialmente no início, é importante lembrar que o aprendizado depende muito de cada indivíduo. Alguns fatores que podem influenciar a experiência incluem:

  • Antecedentes acadêmicos
  • Motivação inicial
  • Método de aprendizado
  • Suporte disponível

Na verdade é que programação requer dedicação, paciência e prática. No entanto, com as técnicas certas e uma abordagem adequada, muitos encontram o processo gratificante e desafiador de forma positiva.

Lembre-se de que o importante não é aprender tudo de uma vez, mas progredir gradualmente. Cada dia que você dedica ao aprendizado traz você mais perto do seu objetivo.

Participe no Grupo de Programadores Brasil no Telegram

Feito!

segunda-feira, 14 de outubro de 2024

Os 3 sites obrigatórios para desenvolvedores

No mundo em constante evolução do desenvolvimento web, é crucial que os desenvolvedores tenham acesso a recursos confiáveis e abrangentes. Aqui estão três sites indispensáveis que todo desenvolvedor deve conhecer: W3Schools, MDN Web Docs e CSS-Tricks. Cada um deles oferece uma variedade de tutoriais, referências e dicas que podem ajudar tanto iniciantes quanto profissionais experientes a aprimorar suas habilidades.

W3Schools

W3Schools é um dos sites mais populares para aprender sobre desenvolvimento web. Com uma interface amigável e uma vasta gama de tutoriais, ele cobre uma variedade de tópicos, incluindo HTML, CSS, JavaScript, SQL, PHP e muito mais.

Aprendizado interativo: O W3Schools oferece um ambiente de codificação online onde você pode testar seu código em tempo real. Isso permite que pratique o que aprendeu imediatamente.

Certificações: O site oferece cursos e certificações que podem ser uma adição valiosa ao currículo de um desenvolvedor.

Referências rápidas: As referências são claras e concisas, tornando fácil encontrar informações específicas rapidamente.

MDN Web Docs

MDN Web Docs é uma fonte abrangente de documentação para desenvolvedores web, mantida pela Mozilla. O site é conhecido por sua profundidade e precisão, cobrindo desde os conceitos básicos até tópicos avançados.

Conteúdo abrangente: O MDN cobre uma ampla gama de tópicos, incluindo HTML, CSS, JavaScript, acessibilidade e desempenho da web. É uma excelente fonte para desenvolvedores que desejam entender os fundamentos da web.

Atualizações regulares: O conteúdo é frequentemente atualizado para refletir as últimas mudanças nas tecnologias web, garantindo que os desenvolvedores tenham acesso às informações mais recentes.

Comunidade ativa: O MDN possui uma comunidade ativa que contribui com conteúdo e respostas a perguntas, tornando-o um ótimo lugar para aprender e interagir.

CSS-Tricks

CSS-Tricks é um site dedicado a tudo relacionado a CSS e design web. Criado por Chris Coyier, ele oferece uma variedade de artigos, tutoriais e dicas sobre CSS, HTML, JavaScript e design responsivo.O site é uma excelente fonte de dicas rápidas e truques que podem economizar tempo e melhorar a eficiência no desenvolvimento.

A comunidade ativa permite que os desenvolvedores compartilhem ideias e soluções, promovendo um ambiente colaborativo.

Considerações finais

Esses três sites: W3Schools, MDN Web Docs e CSS-Tricks são recursos valiosos para qualquer desenvolvedor web. Eles não apenas fornecem conhecimento técnico, mas também ajudam a manter-se atualizado com as melhores práticas e tendências do setor. Ao explorar esses sites, você pode aprimorar suas habilidades e se tornar um desenvolvedor mais eficaz e informado.

Referências

https://www.w3schools.com/

https://developer.mozilla.org/pt-BR/docs/Learn

https://css-tricks.com/

Feito!

quinta-feira, 10 de outubro de 2024

Uma revolução Java para a nuvem

O mundo da programação Java está em constante evolução, e o Quarkus surge como uma das tecnologias mais promissoras para o desenvolvimento de aplicações modernas e escaláveis. Com foco em otimização para containers e a geração de executáveis nativos, o Quarkus promete revolucionar a forma como desenvolvemos aplicações Java.

Quarkus é um framework Java nativo do Kubernetes que combina o melhor dos mundos Java EE e frameworks reativos. Ele é projetado para ser extremamente rápido, leve e fácil de usar, tornando-o ideal para o desenvolvimento de microserviços e aplicações serverless.

Principais características do Quarkus:

  • Nativo do Kubernetes:
  • O Quarkus é otimizado para rodar em ambientes Kubernetes, proporcionando um excelente desempenho e escalabilidade.

  • Compilação nativa:
  • O Quarkus permite a geração de executáveis nativos, reduzindo significativamente o tempo de inicialização e o consumo de memória.

  • Full-stack:
  • O Quarkus oferece uma ampla gama de funcionalidades, incluindo suporte a RESTful APIs, bancos de dados, messaging e muito mais.

  • Extensibilidade:
  • O Quarkus é altamente extensível, permitindo a integração com diversas tecnologias e frameworks.

Configurando o ambiente de desenvolvimento Quarkus no Linux (qualquer distro)

Para começar a desenvolver com Quarkus, você precisará de um ambiente Linux configurado com as ferramentas necessárias. Siga os passos abaixo:

Instale o JDK: Certifique-se de ter o Java Development Kit (JDK) instalado em sua máquina. A versão mínima recomendada é o JDK 11.

Instale o Maven: O Maven é o gerenciador de dependências padrão do Quarkus.

Instale a ferramenta de linha de comando do Quarkus:

curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/

curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio

Criando seu primeiro projeto Quarkus

Com o ambiente configurado, você está pronto para criar seu primeiro projeto Quarkus. Abra seu terminal e execute o seguinte comando:

quarkus create helloworld-app

Isso criará um novo projeto Quarkus chamado "helloworld-app". Entre no diretório do projeto e inicie o servidor de desenvolvimento:

cd helloworld-app

quarkus:dev

Agora você pode acessar sua aplicação em http://localhost:8080.

Considerações finais

O Quarkus é uma excelente opção para desenvolvedores Java que buscam criar aplicações modernas e escaláveis. Com sua facilidade de uso e alto desempenho, o Quarkus está rapidamente se tornando um dos frameworks Java mais populares.

Referências

https://pt.quarkus.io/

Feito!

sexta-feira, 4 de outubro de 2024

Explorando recursos avançados do Google Chrome

O Google Chrome é um dos navegadores para desenvolvedores web, oferecendo diversos recursos que facilitam a análise e otimização de sites.

Neste artigo, será explicado dois recursos avançados do Chrome DevTools: Networking Conditions e Rendering. Ambos permitem analisar e simular o comportamento de uma aplicação web em diferentes cenários, ajudando no diagnóstico de problemas e na melhoria da experiência do usuário.

O que são Networking Conditions e Rendering no Google Chrome?

O painel de Networking Conditions permite simular diferentes condições de rede, como conexões lentas, interrupções e mudanças de user-agent. Já o painel de Rendering é utilizado para visualizar o impacto de diferentes configurações de renderização, como layouts responsivos e processamento de animações.

Esses recursos são essenciais para desenvolvedores que desejam garantir que suas aplicações tenham um bom desempenho, independentemente da conexão de rede e das configurações de renderização do dispositivo.

Como acessar Networking Conditions no Google Chrome

O Networking Conditions é uma ferramenta integrada ao painel Network do Chrome DevTools. Para acessá-lo, siga os passos abaixo:

  1. Abra o DevTools:
  2. Clique com o botão direito do mouse em qualquer área da página e selecione "Inspecionar" ou pressione F12 (Windows/Linux) ou Cmd + Option + I (MacOS).

  3. Selecione a aba Network:
  4. No menu superior do DevTools, clique na aba "Network".

  5. Clique em More Tools (Mais Ferramentas):
  6. No canto superior direito do painel, clique nos três pontos verticais (⋮), selecione "More Tools" e depois escolha Network conditions.

  7. Simule diferentes condições de rede:
  8. No painel Network conditions, você pode alterar o tipo de conexão (por exemplo, 3G lento, 4G rápido, Offline) para verificar o comportamento da sua aplicação em situações de rede variáveis. Além disso, você também pode modificar o user-agent para simular diferentes navegadores e dispositivos.

Para que serve o Networking Conditions?

O Networking Conditions permite aos desenvolvedores verificar como o site se comporta em diferentes velocidades de conexão. Isso é útil para otimizar a performance e garantir uma boa experiência em redes mais lentas, como conexões 3G ou 2G. A funcionalidade também ajuda a diagnosticar problemas de carregamento e latência, como scripts bloqueando a renderização da página ou imagens demorando muito para carregar.

Por exemplo, você pode simular uma conexão 3G lenta para ver se as imagens estão sendo carregadas de forma eficiente e se a experiência geral do usuário é impactada. Essa abordagem ajuda a identificar pontos de melhoria para tornar a navegação mais ágil e otimizada.

Como acessar Rendering no Google Chrome

O painel Rendering permite controlar como o Chrome renderiza a página e visualizar diferentes configurações que podem afetar a aparência e o comportamento do site. Para ativá-lo:

  1. Abra o DevTools:
  2. Clique com o botão direito na página e selecione "Inspecionar" ou pressione F12 (Windows/Linux) ou Cmd + Option + I (MacOS).

  3. Vá para o menu More Tools:
  4. No canto superior direito, clique nos três pontos (⋮) e selecione "More Tools".

  5. Escolha Rendering:
  6. Procure por "Rendering" no menu suspenso e clique para abrir o painel.

  7. Visualize e altere as configurações:
  8. No painel Rendering, você verá várias opções, como:

    • Paint Flashing:
    • Destaca as áreas da página que estão sendo renderizadas.

    • Layout Shift Regions:
    • Mostra as áreas afetadas pelo layout shift, ajudando a diagnosticar problemas de estabilidade visual.

    • Emular mídia preferida (prefers-color-scheme):
    • Permite testar temas claros e escuros.

    • FPS Meter:
    • Mostra a taxa de quadros por segundo, ideal para monitorar animações e detectar jank (atrasos de renderização).

Para que serve o Rendering?

O painel de Rendering é especialmente útil para otimizar a experiência visual do usuário e detectar problemas relacionados à estabilidade de layout e performance de animações. Por exemplo, ao habilitar o Paint Flashing, você consegue identificar áreas que estão sendo constantemente redesenhadas, o que pode ser um sinal de problemas de performance.

Se o seu site tiver muitas animações ou alterações dinâmicas no DOM, o FPS Meter ajudará a identificar quedas na taxa de quadros, que podem indicar que a página está sendo sobrecarregada e precisa de otimizações.

Considerações finais

Os painéis Networking Conditions e Rendering do Google Chrome são ferramentas valiosas para desenvolvedores que desejam criar experiências mais rápidas e responsivas. Com o Networking Conditions, você pode simular diferentes tipos de conexões e otimizar a performance de carregamento, enquanto o painel Rendering ajuda a analisar e ajustar a renderização da página para melhorar a experiência visual e o desempenho.

Utilizar esses recursos regularmente permite antecipar problemas e garantir que o site seja acessível e rápido para todos os usuários, independentemente da qualidade da conexão ou das configurações de renderização.

Dica final: Otimize com Consistência!

Lembre-se de sempre testar suas aplicações em diferentes cenários e dispositivos, utilizando as ferramentas de simulação de rede e renderização para garantir que seu site ofereça uma experiência sólida em qualquer situação. Isso não apenas melhora a experiência do usuário, mas também contribui para melhores resultados em SEO, já que o desempenho é um fator de ranqueamento importante nos mecanismos de busca.

Espero que este artigo tenha ajudado a entender melhor como utilizar o Networking Conditions e o Rendering no Google Chrome. Se você tiver dúvidas ou quiser compartilhar suas experiências, deixe um comentário abaixo!

Feito!

sexta-feira, 27 de setembro de 2024

Conhecendo a plataforma online gratuita com ferramentas de edição para áudio, vídeo e PDFs

No mundo digital atual, a necessidade de editar arquivos de áudio, vídeo, PDF e imagem é cada vez mais comum, tanto para uso pessoal quanto profissional. No entanto, nem todos os usuários possuem acesso a softwares caros e complexos para realizar essas tarefas. É aqui que o 123apps entra como uma solução prática, gratuita e totalmente online.

O 123apps é uma plataforma que oferece uma série de ferramentas online que facilitam a edição de arquivos diretamente no navegador, sem a necessidade de baixar ou instalar programas. Com uma interface intuitiva, mesmo usuários sem experiência técnica podem usar as funcionalidades disponíveis de maneira rápida e eficiente.

Principais Ferramentas Disponíveis

A plataforma oferece uma variedade de ferramentas úteis para diferentes necessidades. Algumas das mais populares incluem:

  • Cortador de Áudio:
  • Ideal para cortar músicas ou áudios grandes em pedaços menores, ou até mesmo unir várias faixas em uma só. Além disso, permite a conversão de arquivos entre formatos como MP3, WAV, e outros.

  • Editor de Vídeo:
  • Oferece funcionalidades básicas de edição de vídeo, como cortar, redimensionar e converter arquivos. Perfeito para quem deseja realizar edições simples sem precisar de software avançado.

  • Conversor de Arquivos:
  • Ferramenta que suporta a conversão de diversos tipos de arquivos multimídia, como vídeos, áudios e documentos, entre formatos diferentes.

  • Editor de PDF:
  • Com essa ferramenta, você pode mesclar, dividir, editar, converter e comprimir arquivos PDF, tornando tarefas que costumam ser complicadas, simples e acessíveis.

  • Gravador de Voz:
  • Permite gravar áudio diretamente do navegador e salvar no formato desejado. É ideal para gravações rápidas de voz para podcasts, entrevistas ou anotações pessoais.

Simplicidade e Acessibilidade

Uma das maiores vantagens do 123apps é sua acessibilidade. Não importa se você está no computador, tablet ou smartphone, tudo pode ser feito diretamente pelo navegador. Isso facilita muito para quem precisa editar arquivos rapidamente, sem se preocupar com compatibilidades de sistema ou atualizações de software.

Além disso, a maioria das ferramentas é gratuita, com alguns recursos avançados disponíveis para assinantes premium. Mesmo assim, a versão gratuita é incrivelmente robusta para a maioria dos usos diários.

Referências

https://123apps.com/pt/

Feito!

quarta-feira, 11 de setembro de 2024

Configurando ambiente de desenvolvimento PHP no macOS

O presente post, irá ajudá-lo a configurar um ambiente de desenvolvimento PHP no macOS, incluindo a instalação do PHP, Composer, MySQL e uma ferramenta de gerenciamento de banco de dados.

  1. Instalar o Homebrew
  2. Primeiro, certifique-se de ter o Homebrew instalado. Caso não tenha, execute o seguinte comando no Terminal para instalá-lo:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    Verifique se o Homebrew foi instalado corretamente, verificando sua versão:

    brew --version

  3. Instalar o PHP
  4. Com o Homebrew instalado, você pode facilmente instalar o PHP com o seguinte comando:

    brew install php

    Verifique a instalação do PHP com:

    php -v

  5. Instalar o Composer
  6. O Composer é um gerenciador de dependências para PHP. Para instalá-lo, execute:

    brew install composer

  7. Instalar o MySQL
  8. Para instalar o MySQL, execute:

    brew install mysql

    Inicialize o serviço MySQL para rodar o servidor local:

    brew services start mysql

  9. Instalar o DBeaver (Cliente de Banco de Dados)
  10. O DBeaver é uma ferramenta que suporta múltiplos SGBDs, como MySQL, PostgreSQL, Oracle e MS SQL Server. Para instalá-lo, execute:

    brew install --cask dbeaver-community

  11. Testar o PHP
  12. Crie um arquivo info.php no seu diretório pessoal (/Users/saitam) com o seguinte conteúdo:

    info.php

    <?php phpinfo();

    Agora, no terminal, inicie o servidor embutido do PHP:

    php -S 0.0.0.0:8000

    Abra o navegador e acesse:

    http://localhost:8000/info.php

    Após visualizar a página de informações do PHP, pressione Ctrl + C no terminal para encerrar o servidor.

  13. Criar um Projeto Laravel
  14. Para criar um novo projeto Laravel, execute o comando:

    composer create-project laravel/laravel nome-projeto

    Acesse o diretório do projeto criado:

    cd nome-projeto

    Em seguida, inicie o servidor do Laravel com:

    php artisan serve

    Acesse no navegador o endereço:

    http://localhost:8000

    Feito!

terça-feira, 10 de setembro de 2024

Conhecendo uma ferramenta para criar diagramas e fluxogramas colaborativos

No mundo das ferramentas de design e colaboração online, o Excalidraw se destaca como uma solução versátil e intuitiva para criar diagramas e fluxogramas. Se você está procurando uma ferramenta que combine simplicidade com funcionalidades avançadas, o Excalidraw pode ser a resposta que você precisa. No presente post, é explicado como usar o Excalidraw para otimizar seus processos de criação e colaboração.

O Excalidraw é uma ferramenta de desenho colaborativo baseada em web que permite criar ilustrações, diagramas e fluxogramas com um estilo visual que remete a esboços desenhados à mão. Seu design minimalista e sua facilidade de uso tornam-no uma escolha popular entre equipes e indivíduos que precisam de uma solução rápida para brainstorming e planejamento.

Principais funcionalidades do Excalidraw

  • Desenho simples e intuitivo:
  • A interface do Excalidraw é limpa e fácil de navegar. Com ferramentas básicas de desenho, como lápis, formas e texto, você pode criar rapidamente diagramas e ilustrações.

  • Colaboração em tempo real:
  • Uma das principais vantagens do Excalidraw é a capacidade de colaborar em tempo real com outros usuários. Você pode convidar colegas para editar e revisar o mesmo quadro simultaneamente, o que facilita o trabalho em equipe.

  • Integração com outras ferramentas:
  • O Excalidraw oferece integrações com plataformas populares como o Figma e APIs que permitem incorporar os diagramas em outros fluxos de trabalho.

  • Exportação flexível:
  • Seus projetos podem ser exportados em formatos como SVG e PNG, permitindo que você utilize seus diagramas em apresentações, documentos ou outros projetos.

  • Acesso gratuito e Open Source:
  • O Excalidraw é gratuito e open source, o que significa que você pode usar a ferramenta sem custos e contribuir para seu desenvolvimento.

Como começar com o Excalidraw

Não é necessário criar uma conta para usar a ferramenta, o que permite começar a desenhar imediatamente.

Crie um novo quadro: Clique em "New Drawing" para iniciar um novo projeto. Explore as ferramentas disponíveis para adicionar formas, texto e linhas ao seu diagrama.

Colabore com sua equipe: Para colaborar em tempo real, clique no ícone de compartilhamento e copie o link para convidar outros usuários para seu quadro.

Exporte seu trabalho: Quando terminar, você pode exportar seu diagrama clicando no ícone de exportação e escolhendo o formato desejado.

Dicas para aproveitar ao máximo o Excalidraw

Explore as ferramentas: Passe algum tempo explorando as várias ferramentas e opções de formatação para descobrir todas as funcionalidades que o Excalidraw oferece.

Use modelos: O Excalidraw permite que você salve e reutilize modelos, o que pode economizar tempo em projetos futuros.

Aproveite a colaboração: Use a colaboração em tempo real para obter feedback imediato e realizar ajustes enquanto trabalha com sua equipe.

Considerações finais

O Excalidraw é uma excelente ferramenta e acessível para a criação de diagramas e fluxogramas, oferecendo uma combinação ideal de simplicidade e funcionalidades colaborativas. Seja você um designer, um desenvolvedor ou alguém envolvido em planejamento e brainstorming, o Excalidraw pode ser uma adição valiosa ao seu conjunto de ferramentas.


Referências

https://excalidraw.com/

Feito!

quinta-feira, 5 de setembro de 2024

Como usar o FreePik para criar designs profissionais com facilidade

O FreePik é uma ferramenta essencial para designers, oferecendo milhares de recursos gráficos gratuitos e premium, como vetores, ícones e fotos. Veja como usá-lo da melhor forma:

  • Navegação por categorias:
  • A plataforma possui categorias específicas, facilitando a busca por banners, templates e ícones.

  • Filtros de busca:
  • Refine a pesquisa com filtros de tipo de arquivo, cor e orientação para encontrar rapidamente o que precisa.

  • Personalização de vetores:
  • Baixe arquivos editáveis (EPS ou AI) e customize usando softwares como Adobe Illustrator.

  • Atribuição de créditos:
  • Para downloads gratuitos, lembre-se de creditar os autores corretamente conforme indicado.

  • Assinatura premium:
  • Com a assinatura premium, você acessa uma biblioteca ainda maior de recursos sem a necessidade de atribuição, sendo uma ótima opção para quem trabalha com projetos comerciais.

FreePik e Inteligência Artificial (IA)

O FreePik também utiliza IA para melhorar a experiência do usuário. A plataforma usa algoritmos de inteligência artificial para otimizar a pesquisa de imagens e sugerir recursos visuais relevantes, baseados nas preferências e comportamentos dos usuários. Isso torna o processo de busca e seleção mais rápido e eficiente, permitindo que designers encontrem os recursos mais adequados para seus projetos de forma automatizada.

Considerações finais

Seja você um designer experiente ou um iniciante, o FreePik oferece ferramentas práticas para acelerar seu fluxo de trabalho e melhorar a qualidade de seus projetos. Com a ajuda da IA, ele simplifica ainda mais a busca por elementos visuais e permite que você crie designs de alto nível em menos tempo. Invista na versão premium se busca ainda mais agilidade e um portfólio exclusivo de recursos visuais.

Explore o FreePik e descubra como ele pode transformar seus projetos criativos.

Referências

https://www.freepik.com/

Feito!

quarta-feira, 4 de setembro de 2024

ULID vs UUID: Qual é a melhor escolha para identificadores únicos?

Quando se trata de gerar identificadores únicos em aplicações modernas, UUID (Universally Unique Identifier) tem sido a escolha padrão por muitos anos. No entanto, o surgimento do ULID (Universally Unique Lexicographically Sortable Identifier) trouxe uma nova alternativa que promete resolver algumas das limitações do UUID.

Neste artigo, é explorado as diferenças entre ULID e UUID, analisando qual é a melhor escolha para o seu projeto.

Um exemplo de UUIDv4 pode ser:

e4eaaaf2-d142-11e1-b3e4-080027620cdd

Nesta string, cada caractere hexadecimal (0-9, a-f) representa 4 bits, o que significa que os caracteres são limitados a números (0-9) e letras de "a" a "f". Assim, embora seja gerado com números aleatórios, a representação de um UUIDv4 usa caracteres alfanuméricos (números e letras).

Estrutura do UUIDv4

A UUIDv4 é estruturada da seguinte forma:

8 caracteres - Aleatórios

4 caracteres - Aleatórios

4 caracteres - Aleatórios, com 4 bits fixos para a versão (4)

4 caracteres - Aleatórios, com 2 ou 3 bits fixos para a variante

12 caracteres - Aleatórios

O que é ULID?

ULID é um identificador de 128 bits, assim como o UUID, mas foi projetado com algumas melhorias específicas em mente. A principal diferença é que o ULID é lexicograficamente ordenável, o que significa que os identificadores gerados em sequência manterão uma ordem temporal.

Principais características do ULID:

  • Tamanho:
  • 128 bits, representados como uma string de 26 caracteres em base32.

  • Forma de Geração:
  • Combina um carimbo de data/hora com números aleatórios, permitindo a ordenação temporal.

  • Uso Comum:
  • Ideal para sistemas que requerem ordenação temporal, como logs, sistemas de eventos, e bancos de dados que se beneficiam de chaves ordenadas.

Limitações do UUID:

  • Não Ordenável Lexicograficamente:
  • UUIDs gerados sequencialmente não são garantidos para ser ordenados lexicograficamente, o que pode ser uma desvantagem em certas situações, como em bancos de dados ou logs.

  • Legibilidade:
  • UUIDs são longos e incluem hifens, o que pode tornar a leitura e manuseio mais difícil em alguns casos.

Vantagens do ULID sobre UUID:

  • Ordenação Lexicográfica:
  • A capacidade de ordenar identificadores de forma lexicográfica é uma vantagem significativa em sistemas onde a sequência temporal é importante. Legibilidade: ULIDs são mais compactos e utilizam apenas caracteres alfanuméricos, o que os torna mais legíveis e fáceis de utilizar.

  • Ordenação Lexicográfica:
  • A capacidade de ordenar identificadores de forma lexicográfica é uma vantagem significativa em sistemas onde a sequência temporal é importante.

  • Legibilidade:
  • ULIDs são mais compactos e utilizam apenas caracteres alfanuméricos, o que os torna mais legíveis e fáceis de utilizar.

Quando usar ULID em vez de UUID?

A escolha entre ULID e UUID depende muito dos requisitos específicos do seu projeto. Apenas irei sugerir algumas situações em que ULID pode ser a melhor escolha:

  • Necessidade de ordenação temporal:
  • Se você precisa que seus identificadores sejam ordenados cronologicamente, ULID é a melhor opção. Isso é particularmente útil em logs, sistemas de rastreamento de eventos, e bancos de dados que se beneficiam de chaves sequenciais.

  • Legibilidade e compactação:
  • Se você quer identificadores mais compactos e fáceis de ler, ULID oferece uma vantagem sobre UUID.

  • Performance em banco de dados:
  • Em alguns banco de dados, a ordenação lexicográfica do ULID pode melhorar a performance ao inserir e consultar registros.

Quando continuar usando UUID?

Apesar das vantagens do ULID, UUID ainda é uma escolha robusta e amplamente suportada em muitas ferramentas e frameworks. Você deve continuar usando UUID nos seguintes cenários:

  • Compatibilidade e padrões existentes:
  • Se o seu sistema já utiliza UUIDs e funciona bem, pode não haver uma razão forte para mudar para ULID. UUID é amplamente suportado e reconhecido em diversas plataformas.

  • Aleatoriedade completa:
  • Se você precisa de identificadores completamente aleatórios sem qualquer componente temporal, UUIDv4 é mais adequado.

  • Simplicidade:
  • Em projetos onde a ordenação temporal ou legibilidade não são preocupações, UUID continua sendo uma escolha simples e eficaz.

Considerações finais

Tanto ULID quanto UUID têm seus méritos, e a escolha entre eles deve ser baseada nas necessidades específicas do seu projeto. ULID oferece vantagens em termos de ordenação temporal e legibilidade, tornando-o uma excelente opção para sistemas que precisam dessas características. Por outro lado, UUID permanece como uma solução confiável e amplamente adotada, ideal para situações onde compatibilidade e simplicidade são as principais considerações.

Ao entender as diferenças entre ULID e UUID, você pode tomar uma decisão informada e escolher o identificador único que melhor atende às exigências do seu projeto.

Feito!

quarta-feira, 21 de agosto de 2024

13 anos de blog

O blog está completando hoje, 21 de Agosto de 2024, 13 anos!

Gostaria de agradecer a todos pelo prestígio e a paciência de ler os posts que são publicados. Espero continuar compartilhando conhecimentos no blog para nossos leitores. Continuem prestigiando e divulgando o blog Mundo da Computação Integral, assim aumentamos nossa comunidade.

sexta-feira, 16 de agosto de 2024

O Sandbox de PostgreSQL no navegador para importação e análise de dados

Se você está em busca de uma solução inovadora para trabalhar com bancos de dados PostgreSQL diretamente no seu navegador, o Postgres.new é a ferramenta que você precisa conhecer. Com ela, é possível criar e gerenciar um número ilimitado de bancos de dados Postgres sem sair do navegador.

O Postgres.new oferece uma experiência rica e interativa, facilitando a importação de dados, geração de relatórios e muito mais. Veja o que você pode fazer com essa ferramenta revolucionária:

  • Importação de CSVs com arrastar e soltar: Crie tabelas instantaneamente a partir de arquivos CSV, facilitando a entrada de dados.
  • Geração e exportação de relatórios: Crie relatórios detalhados e exporte-os conforme necessário.
  • Geração de gráficos: Visualize seus dados com gráficos dinâmicos e informativos.
  • Criação de diagramas de banco de dados: Elabore diagramas para uma melhor compreensão e documentação do seu banco de dados.

Como funciona

O segredo do Postgres.new está no uso do PGlite, uma versão do PostgreSQL desenvolvida em WASM (WebAssembly), que roda diretamente no seu navegador. Isso significa que todas as consultas são processadas localmente, sem a necessidade de um contêiner remoto de PostgreSQL ou proxy WebSocket. Os dados são armazenados no IndexedDB, garantindo que suas alterações sejam salvas e persistam mesmo após a atualização da página.

Com o Postgres.new, você pode experimentar e testar seus bancos de dados com facilidade e flexibilidade, sem comprometer seu ambiente de produção. É uma ferramenta ideal para desenvolvedores e analistas que buscam uma maneira prática e eficiente de trabalhar com PostgreSQL.

Referências

https://postgres.new/

Feito!

terça-feira, 13 de agosto de 2024

The Defense of PHP: Demystifying the Concept of Quick Fix

In the vast landscape of programming languages, PHP often finds itself labeled pejoratively as a "language of quick fixes." This characterization, however, is not only unjust but also an oversimplification that does not do justice to the rich history and capabilities of this language.

Firstly, it is imperative to recognize that the term "quick fix" suggesting improvised and often inelegant solutions is not an inherent attribute of a specific language. On the contrary, the quality of code and the elegance of technical solutions are reflections of the programmer's practices and skill, not the tools they use. It is a gross misconception to believe that a programming language alone is prone to low-quality coding practices. Each language has its own paradigms and conventions, and PHP, with its flexibility and accessibility, is no exception.

PHP, created with the specific purpose of facilitating the development of dynamic web applications, has evolved significantly since its inception. From its initial version to its most modern iterations, the language has incorporated robust improvements and new functionalities, promoting safer and more efficient programming practices. The advent of features such as namespaces, strict data types, and powerful integration with modern frameworks demonstrates a maturation that goes beyond superficial criticisms.

It is therefore important to distinguish between the language itself and the skill of the programmer. PHP offers a vast arsenal of functionalities and a rich library of frameworks, such as Laravel and Symfony, which are testaments to its evolution and capacity to support complex and sophisticated projects. The success of these frameworks is proof that, when used appropriately, PHP is capable of sustaining the construction of robust and well-structured systems.

Criticism directed at PHP often reflects a lack of understanding of the role it plays today. Like other languages, PHP is a tool and like any tool, its value and effectiveness depend on how it is used. Disparaging the language due to inadequate programming practices is a simplification that fails to recognize PHP's potential when applied with competence.

In summary, PHP is a language that, far from being the embodiment of quick fixes, has proven to be a solid and reliable force in web development. The true challenge lies not in the language itself, but in the skill and dedication of the programmers who use it. It is through continuous improvement and the careful application of good practices that one can transcend the stigma of "quick fixes" and demonstrate the true value of any programming language.

Done!

sábado, 3 de agosto de 2024

Protegendo seus arquivos e discos

Em um mundo onde a segurança digital se tornou uma prioridade, proteger seus dados sensíveis é essencial. O VeraCrypt é uma solução de criptografia de disco de código aberto que oferece uma maneira robusta de proteger suas informações pessoais e profissionais. Derivado do TrueCrypt, o VeraCrypt resolve várias vulnerabilidades encontradas em seu predecessor e fornece uma série de melhorias de segurança e novas funcionalidades.

Neste artigo, vamos explorar o VeraCrypt, seus recursos e como você pode instalá-lo e usá-lo no GNU/Linux, se aplica em qualquer distribuição Linux.

VeraCrypt é um software de criptografia de disco que permite criar volumes criptografados ou criptografar partições inteiras do seu disco rígido. Ele usa algoritmos de criptografia avançados para garantir que seus dados permaneçam seguros e inacessíveis para pessoas não autorizadas. Entre suas principais características estão:

  • Criptografia forte:
  • VeraCrypt utiliza algoritmos de criptografia como AES, Serpent e Twofish, oferecendo opções para criar volumes criptografados de alta segurança.

  • Criptografia de volume e partição:
  • Permite criptografar não apenas arquivos individuais, mas também partições inteiras e drives externos.

  • Segurança adicional:
  • Inclui melhorias em relação ao TrueCrypt, como suporte a hashes mais seguros e a capacidade de lidar com ataques modernos.

Instalando o VeraCrypt no GNU/Linux

1. Download do pacote VeraCrypt

Abre o terminal e digite:

$ wget -O https://launchpad.net/veracrypt/trunk/1.26.7/+download/veracrypt-1.26.7-setup.tar.bz2

2. Extrair o arquivo

Acesse até o diretório onde você salvou o arquivo. Em seguida, extraia o conteúdo do arquivo .tar.gz com o seguinte comando:

$ tar -xvzf veracrypt-*.tar.gz

3. Instalar o VeraCrypt

Após extrair o conteúdo, você encontrará um diretório com o nome do pacote. Navegue para esse diretório:

$ cd veracrypt-*

Dentro do diretório, execute o script de instalação com permissões de superusuário:

sudo ./veracrypt-*.setup

Siga as instruções fornecidas pelo instalador. O script irá instalar o VeraCrypt no seu sistema.

4. Iniciar o VeraCrypt

Após a instalação, você pode iniciar o VeraCrypt a partir do menu de aplicativos ou pelo terminal com o comando:

veracrypt

Usando o VeraCrypt

Os passos para criar, montar e desmontar volumes criptografados são os mesmos descritos anteriormente.

  • Criar um volume criptografado:
  • Abra o VeraCrypt, selecione "Create Volume" e siga as instruções do assistente.

  • Montar o volume:
  • Clique em "Select File" para escolher seu volume e depois em "Mount". Insira a senha quando solicitado.

  • Desmontar o volume:
  • Para proteger seus dados, clique em "Dismount" após usar o volume.

Considerações finais:

Seguindo os passos acima, você poderá instalar e usar o VeraCrypt no GNU/Linux (qualquer distro), garantindo a segurança dos seus arquivos e discos com criptografia da ferramenta VeraCrypt.

Referências:

https://www.veracrypt.fr/en/Home.html

Feito!

sexta-feira, 2 de agosto de 2024

O novo sucessor do CentOS

O AlmaLinux surge como uma das principais alternativas ao CentOS, após a decisão da Red Hat de descontinuar o CentOS 8 em favor do CentOS Stream. Para muitos administradores de sistemas e empresas, o CentOS foi uma escolha sólida como uma distribuição gratuita e de código aberto, ideal para ambientes de produção e servidores. O AlmaLinux se apresenta como uma solução robusta, mantendo a compatibilidade com o Red Hat Enterprise Linux (RHEL) e oferecendo uma continuidade confiável.

O AlmaLinux é uma distribuição Linux de código aberto, criada para ser uma alternativa direta ao CentOS, fornecendo uma base estável e gratuita para empresas e desenvolvedores. Desenvolvido pela AlmaLinux OS Foundation, que é uma organização sem fins lucrativos, o AlmaLinux tem como objetivo fornecer uma solução de nível empresarial que é binariamente compatível com o RHEL. Isso significa que qualquer software projetado para o RHEL deve funcionar sem problemas no AlmaLinux.

Por que o AlmaLinux?

Após o anúncio da mudança de foco do CentOS para o CentOS Stream, muitas organizações começaram a procurar alternativas que oferecessem uma experiência semelhante ao CentOS, especialmente para ambientes de produção. O AlmaLinux surgiu como uma resposta direta a essa necessidade, mantendo o compromisso com a estabilidade e a compatibilidade que muitas empresas exigem.

Principais características do AlmaLinux:

  • Compatibilidade total com o RHEL:
  • O AlmaLinux é 1:1 compatível com o RHEL, garantindo que você possa migrar de CentOS para AlmaLinux sem preocupações com incompatibilidade de software.

  • Suporte da comunidade e fundadores:
  • A AlmaLinux OS Foundation garante um suporte contínuo e transparente, com uma equipe dedicada ao desenvolvimento e manutenção da distribuição. A fundação também se compromete com uma política de atualizações de longo prazo e suporte a longo prazo, semelhante ao que era oferecido pelo CentOS.

  • Sem custo:

    Assim como o CentOS, o AlmaLinux é gratuito e de código aberto. Isso permite que empresas e desenvolvedores utilizem a distribuição sem a necessidade de licenças caras, mantendo os custos baixos e acessíveis.

  • Foco na estabilidade: O AlmaLinux é projetado para ser uma plataforma estável e confiável para servidores e ambientes de produção, seguindo a filosofia do CentOS de fornecer uma base sólida para aplicações críticas.

Como migrar para o AlmaLinux?

A migração do CentOS para o AlmaLinux é um processo relativamente direto. A AlmaLinux OS Foundation disponibiliza um script de migração que ajuda a converter o sistema CentOS existente para AlmaLinux. Esse script lida com a alteração dos repositórios e a instalação dos pacotes necessários para garantir que o sistema continue funcionando sem interrupções.

Considerações finais:

O AlmaLinux representa uma solução promissora e bem-vinda para a comunidade que se beneficiava do CentOS. Com sua compatibilidade com o RHEL, suporte dedicado e foco em estabilidade, o AlmaLinux está bem posicionado para se tornar a escolha preferida para aqueles que buscam uma alternativa confiável e gratuita para ambientes de produção e servidores. Se você está em busca de uma nova base para suas aplicações e servidores, o AlmaLinux merece consideração séria como sucessor do CentOS.

Referências:

https://almalinux.org/

Feito!

quinta-feira, 1 de agosto de 2024

Fim do CentOS pela Red Hat

Em 30 de junho de 2024, a Red Hat encerrou oficialmente o suporte ao CentOS Linux, marcando o fim definitivo do projeto. O CentOS era amplamente utilizado em ambientes corporativos devido à sua estabilidade e compatibilidade com o Red Hat Enterprise Linux (RHEL). No entanto, em 2020, a Red Hat anunciou a mudança do foco para o CentOS Stream, uma distribuição rolling release que serve como base de desenvolvimento para o RHEL. Isso gerou insatisfação entre os usuários, que agora buscam alternativas como Rocky Linux e AlmaLinux para substituir o CentOS em seus sistemas.

Impacto e alternativas

O fim do CentOS Linux impactou especialmente as empresas e profissionais que dependiam da estabilidade e longevidade das versões anteriores para a execução de sistemas críticos. O CentOS Stream, apesar de manter a compatibilidade com o RHEL, adota uma abordagem de desenvolvimento contínuo, o que pode não ser ideal para todos os casos de uso.

Em resposta à mudança, comunidades de código aberto rapidamente criaram alternativas para preencher o vazio deixado pelo CentOS Linux. Rocky Linux, fundado por um dos co-criadores do CentOS original, e AlmaLinux, mantido pela comunidade CloudLinux, são exemplos de distribuições que visam oferecer a mesma compatibilidade com o RHEL, sem o modelo de desenvolvimento contínuo adotado pelo CentOS Stream.

Considerações finais:

A decisão da Red Hat de descontinuar o CentOS Linux representa uma mudança significativa no cenário das distribuições Linux voltadas para servidores. Embora o CentOS Stream continue a ser uma opção viável para muitos, a comunidade rapidamente se adaptou, criando alternativas que buscam manter a tradição de estabilidade e suporte de longo prazo que o CentOS oferecia. Para aqueles que preferem uma abordagem mais tradicional, Rocky Linux e AlmaLinux surgem como substitutos promissores.

Referências:

https://www.redhat.com/pt-br/topics/linux/centos-linux-eol

Feito!

terça-feira, 30 de julho de 2024

Blindando o seu CPF

A Receita Federal do Brasil lançou uma nova ferramenta chamada "Proteção do CPF" para aumentar a segurança digital dos cidadãos e proteger seus dados contra fraudes. Essa funcionalidade gratuita oferece aos brasileiros a capacidade de impedir que seu CPF seja usado indevidamente em registros empresariais e outras entidades jurídicas.

O que é a ferramenta "Proteção do CPF"?

A "Proteção do CPF" permite que qualquer cidadão bloqueie o uso de seu CPF em cadastros de sociedades empresariais sem sua autorização. Isso é especialmente útil para prevenir fraudes, como o uso indevido de dados pessoais para a criação de empresas fantasmas.

Como funciona?

A funcionalidade pode ser acessada através do Portal Nacional da Redesim ou do canal de Serviços Digitais da Receita Federal. Para utilizá-la, siga os passos abaixo:

  1. Acesse o portal da Receita Federal
  2. Login:
  3. Clique em "Entrar com gov.br" e faça o login utilizando sua conta gov.br.

  4. Bloqueio do CPF:
  5. Após o login, em "Demais Serviços", "CPF", clique "Ver Todos", clique "Proteger Meu CPF", selecione a opção "Impedir Participação" para bloquear o uso do seu CPF.

  6. Confirmação:
  7. Confirme o bloqueio para finalizar o processo.

Vantagens da ferramenta

  • Segurança Digital:

    Impede que seu CPF seja utilizado sem autorização.

  • Cobertura Nacional:
  • A ferramenta abrange todos os órgãos registradores, incluindo Juntas Comerciais, Cartórios de Registro de Pessoas Jurídicas e a OAB.

  • Facilidade de Uso:
  • Processo intuitivo e acessível a todos os cidadãos com conta gov.br.

Como reverter a proteção?

Caso você precise permitir o uso do seu CPF, por exemplo, para se associar a uma empresa, o processo é simples. Basta acessar novamente o site, fazer o login e selecionar a opção "Permitir Participação".

Um código de confirmação será enviado para a Caixa Postal e-CAC , onde você poderá autorizar a mudança.

Impacto esperado

A Receita Federal espera que mais de 155 milhões de brasileiros utilizem essa ferramenta para proteger seus dados. Com o aumento das tentativas de fraudes e a sofisticação das ameaças cibernéticas, medidas como esta são essenciais para garantir a segurança das informações pessoais.

Referências

Proteção do CPF



Registrato

Feito!

segunda-feira, 29 de julho de 2024

Conhecendo uma ferramenta de visualização de diagramas para desenvolvedores e profissionais técnicos

Na era digital, a comunicação eficaz de conceitos complexos é crucial, especialmente no mundo da tecnologia e do desenvolvimento de software. Nesse contexto, ferramentas de visualização de diagramas desempenham um papel fundamental, simplificando a representação de ideias técnicas de uma forma compreensível para todos os envolvidos. Uma ferramenta que se destaca nesse cenário é o Mermaid.

O Mermaid é uma ferramenta de visualização de diagramas que permite aos usuários criar diagramas de forma rápida e fácil usando uma sintaxe simples e intuitiva. Desenvolvida com foco na praticidade e na integração com fluxos de trabalho existentes, o Mermaid é amplamente adotado por desenvolvedores, engenheiros e outros profissionais técnicos.

Recursos Principais:

  • Sintaxe simples:
  • O Mermaid adota uma sintaxe simples baseada em texto, que permite aos usuários criar diagramas sem a necessidade de habilidades avançadas em design gráfico. Os diagramas são definidos usando palavras-chave e estruturas familiares, o que facilita a criação rápida e precisa.

  • Diversos tipos de diagramas:
  • Com o Mermaid, é possível criar uma variedade de diagramas, incluindo fluxogramas, diagramas de sequência, diagramas de Gantt, diagramas de classes, diagramas de fluxo de dados e muito mais. Isso o torna uma ferramenta versátil para várias necessidades de visualização.

  • Integração com plataformas populares:
  • O Mermaid é compatível com várias plataformas e ambientes de desenvolvimento. Ele pode ser facilmente integrado em documentos Markdown, IDEs como o Visual Studio Code, sistemas de documentação como o GitBook e outras ferramentas de produtividade comuns.

  • Renderização Dinâmica:
  • Uma característica notável do Mermaid é a sua capacidade de renderização dinâmica. Isso significa que os diagramas podem ser atualizados automaticamente à medida que o código-fonte subjacente é modificado, o que facilita a manutenção e a sincronização de documentação técnica com o código.

  • Personalização Flexível:
  • Apesar de sua abordagem baseada em texto, o Mermaid oferece opções de personalização para os diagramas criados. Os usuários podem ajustar cores, estilos e outros aspectos visuais para atender às suas preferências ou às diretrizes de design de suas organizações.

Convertendo um diagrama Mermaid de Markdown para uma imagem:

Existem duas maneiras principais de converter um diagrama Mermaid escrito em Markdown para uma imagem: pelo terminal e pela interface web.

1. Pelo Terminal:

Você pode usar o Mermaid CLI (Interface de Linha de Comando) para converter um arquivo Markdown com um diagrama Mermaid em uma imagem. Primeiro, instale o Mermaid CLI globalmente usando npm:

npm install -g @mermaid-js/mermaid-cli

Em seguida, use o seguinte comando para converter o arquivo Markdown para uma imagem:

mmdc -i input.md -o output.png

Substitua "input.md" pelo caminho do seu arquivo Markdown contendo o diagrama Mermaid e "output.png" pelo nome e local onde deseja salvar a imagem resultante.

2. Pela Interface Web:

O Mermaid Live Editor oferece uma interface web conveniente para escrever, visualizar e exportar diagramas Mermaid. Você pode acessá-lo em aqui

1. Escreva o diagrama Mermaid na área de texto do editor.

2. Clique no botão de exportação na parte superior do editor.

3. Selecione o formato de imagem desejado (PNG, SVG, etc.) e faça o download da imagem resultante.

Essas opções de conversão oferecem flexibilidade aos usuários do Mermaid, permitindo que escolham o método que melhor se adequa às suas necessidades e preferências de fluxo de trabalho.

3. Mermaid Live Editor local

Segue os passos para usar o Mermaid Live Editor localmente:

  1. Clone o repositório do Mermaid Live Editor:
  2. Use o Git para clonar o repositório do Mermaid Live Editor do GitHub para o seu computador:

    git clone https://github.com/mermaid-js/mermaid-live-editor.git

  3. Instale as dependências:
  4. Navegue até o diretório clonado e instale as dependências do projeto utilizando npm ou yarn:

    cd mermaid-live-editor
    npm install

  5. Execute o servidor de desenvolvimento:

    Após a instalação das dependências, você pode iniciar um servidor de desenvolvimento para executar o Mermaid Live Editor localmente. Utilize o seguinte comando:

    npm start

  6. Acesse o Mermaid Live Editor:
  7. Abra um browser e acesse http://localhost:3000. Você deve ver a interface do Mermaid Live Editor, que está sendo executada localmente em seu computador. Agora você pode criar, visualizar e exportar diagramas Mermaid local no seu computador.

Executando o Mermaid Live Editor localmente, você tem a flexibilidade de personalizar o ambiente conforme necessário e pode trabalhar offline sem depender de serviços externos. Isso é útil para desenvolvedores que desejam explorar e testar o Mermaid Live Editor em um ambiente controlado.

No VSCode

O Mermaid também pode ser utilizado no editor VSCode. Para começar, basta instalar a extensão 'Markdown Preview Mermaid Support'. Em seguida, ao abrir um novo arquivo e salvá-lo com a extensão .md de Markdown, você pode começar a escrever seu diagrama usando a sintaxe do Mermaid.

Por exemplo:


```mermaid
graph TD
A[Início] --> B[Entrar com o valor]
B --> C(Valor elevado)
C --> |Sim| D[Não comprar]
C --> |Não| E[Comprar]
E --> F[Fim]

```

Habilitando o preview, você verá o lado esquerdo com o código em markdown e o lado direito com o diagrama renderizado.

Considerações finais:

O Mermaid é uma ferramenta poderosa e acessível para visualização de diagramas, projetada para atender às necessidades de desenvolvedores e profissionais técnicos. Com sua sintaxe simples, integração com plataformas populares e recursos avançados, o Mermaid torna a criação e a manutenção de diagramas uma tarefa simples e eficiente. E com opções de conversão flexíveis, como via terminal ou pela interface web, os usuários têm o controle sobre como seus diagramas são exportados para imagens. Se você está buscando uma maneira fácil e eficaz de comunicar conceitos técnicos, o Mermaid pode ser a solução ideal.

Feito!

sexta-feira, 26 de julho de 2024

Explorando o fascinante números primordiais

Os números primordiais são uma classe especial de números que têm várias aplicações interessantes na matemática e na ciência da computação. Neste artigo, vamos explorar o que são números primordiais, o símbolo matemático utilizado para representá-los, suas utilidades e um exemplo prático.

Um número primordial é o produto de todos os números primos menores ou iguais a um determinado número n.

Em outras palavras, se você pegar todos os números primos até n e multiplicá-los, o resultado será o primordial de n.

Por exemplo, para n = 5, os números primos menores ou iguais a 5 são 2, 3 e 5. O produto desses números é 2x3x5=30. Portanto, o primordial de 5 é 30.

Símbolo matemático

O símbolo matemático utilizado para representar o primordial de um número n é n#. Assim, o primordial de 5 é denotado como 5#.

Utilidade dos números primordiais

Os números primordiais têm várias aplicações práticas e teóricas, algumas das quais incluem:

  1. Teoria dos Números
  2. Na teoria dos números, os primordiais são úteis para estudar propriedades e padrões dos números primos. Eles são frequentemente utilizados em problemas de distribuição de primos e em fórmulas relacionadas à função totiente de Euler.

  3. Criptografia
  4. Os números primordiais têm aplicações na criptografia, especialmente em algoritmos de geração de números primos e em criptossistemas baseados em primos. O uso de números primordiais pode ajudar a criar chaves criptográficas seguras e eficientes.

  5. Funções Combinatórias
  6. Em combinatória, os números primordiais são utilizados para contar e organizar conjuntos de objetos distintos. Eles aparecem em várias fórmulas e identidades combinatórias.

  7. Análise de Algoritmos
  8. Na Ciência da Computação, os números primordiais são utilizados para analisar a complexidade de algoritmos, especialmente aqueles relacionados à fatoração e à aritmética modular.

Exemplo Prático

Vamos ver um exemplo prático de como calcular um número primordial em um programa de computador. Aqui está um código em C que lê um número e calcula o seu primordial:

numero-primordial.c

#include <stdio.h>
#include <stdbool.h>

// Função para verificar se um número é primo
bool is_prime(int num) {
    if (num <= 1) {
        return false;
    }
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) {
            return false;
        }
    }
    return true;
}

// Função para calcular o primordial de um número
unsigned long long primordial(int n) {
    unsigned long long product = 1;
    for (int i = 2; i <= n; i++) {
        if (is_prime(i)) {
            product *= i;
        }
    }
    return product;
}

int main() {
    int num;
    
    // Lendo o número do usuário
    printf("Digite um número: ");
    scanf("%d", &num);

    if (num < 0) {
        printf("Digite um número não negativo.\n");
        return 1;
    }

    // Calculando o primordial
    unsigned long long result = primordial(num);
    
    // Imprimindo o resultado
    printf("O primordial de %d é: %llu\n", num, result);

    return 0;
}

Compilar e executar

Compilando gcc numero-primordial.c -o numero-primordial

Executando ./numero-primordial

Considerações finais:

Os números primordiais são uma ferramenta fascinante na matemática, com aplicações que vão desde a teoria dos números até a criptografia e a análise de algoritmos. Compreender e utilizar números primordiais pode abrir novas possibilidades para resolver problemas complexos e explorar novas áreas do conhecimento matemático.

Experimente calcular os primordiais de diferentes números e explore suas propriedades.

Referências

MathWorld's Primorial

Feito!