Instalar o WSL2 (Windows Subsystem for Linux 2) e configurá-lo para rodar o Docker no Windows é um processo relativamente simples. Siga os seguintes passos:
1. Verificar Requisitos do Sistema
Antes de começar, certifique-se de que seu sistema atende aos requisitos para o WSL2:
- Windows 10 versão 1903 (build 18362) ou superior, ou Windows 11.
- Hardware Virtualization (Virtualização de hardware) ativado na BIOS.
2. Habilitar Recursos do Windows
- Habilitar o WSL e a Plataforma de Máquina Virtual:
- Abra o PowerShell como Administrador (pesquise "PowerShell" no menu iniciar, clique com o botão direito e selecione "Executar como Administrador").
- Execute os seguintes comandos para habilitar o WSL e a Plataforma de Máquina Virtual:
dism.exe /online /enable-feature /id:Microsoft-Windows-Subsystem-Linux /all dism.exe /online /enable-feature /id:VirtualMachinePlatform /all
- Definir o WSL2 como a versão padrão:
- Ainda no PowerShell, execute o comando:
wsl --set-default-version 2
- Ainda no PowerShell, execute o comando:
3. Instalar o Kernel do WSL2
- Baixe o pacote de atualização do kernel do WSL2:
- Vá para https://aka.ms/wsl2kernel e baixe o instalador.
- Execute o instalador e siga as instruções para concluir a instalação.
4. Instalar uma Distribuição Linux
- Abra a Microsoft Store:
- Pesquise por uma distribuição Linux, como Ubuntu, Debian, Kali Linux, etc.
- Escolha e instale a distribuição desejada:
- Clique na distribuição e selecione "Instalar".
- Configure a distribuição:
- Após a instalação, inicie a distribuição a partir do menu iniciar. Complete o processo de configuração (crie um usuário e senha).
5. Instalar o Docker Desktop
- Baixe o Docker Desktop para Windows:
- Vá para https://www.docker.com/products/docker-desktop e baixe a versão para Windows.
- Instale o Docker Desktop:
- Execute o instalador e siga as instruções.
- Habilite a integração com o WSL2:
- Abra o Docker Desktop.
- Vá para Settings (Configurações) e, em seguida, Resources (Recursos) > WSL Integration.
- Ative a integração para a distribuição Linux que você instalou.
- Verifique a instalação:
- Abra uma janela de terminal do WSL2 (como o Ubuntu).
- Execute
docker --version
para verificar se o Docker está corretamente instalado e acessível.
6. Configurações Adicionais (Opcional)
Se precisar configurar o Docker para iniciar automaticamente ou ajustar outras preferências, você pode fazer isso através das configurações do Docker Desktop.
E pronto! Agora você deve ter o WSL2 e o Docker configurados e funcionando no seu Windows.
TDD é a sigla para Test-Driven Development, que significa Desenvolvimento Guiado por Testes em português.
Consiste em escrever testes automatizados antes do código da aplicação.
É uma técnica de desenvolvimento de software que se baseia em um ciclo curto de repetições.
Os testes auxiliam na detecção e correção de falhas e bugs que possam comprometer a qualidade e o desempenho do software. Após a criação dos testes, o desenvolvedor elabora o código da aplicação e realiza a refatoração, que consiste em melhorar o código sem alterar sua funcionalidade. O TDD está inserido na metodologia ágil de desenvolvimento de software, que tem como objetivo entregar software de forma rápida e eficiente, com foco na satisfação do cliente e na flexibilidade às mudanças.
O teste de software pode envolver diversas fases.
Os testes Unitários testam cada módulo individualmente.
No teste de integração, o desenvolvedor integra e testa vários módulos do software em conjunto, para verificar se eles se comunicam bem entre si e se satisfazem os requisitos funcionais, de desempenho e de confiabilidade do sistema. O teste de integração também possibilita identificar e resolver erros de interface entre os módulos, que podem prejudicar a qualidade e o funcionamento do software. Existem diferentes estratégias de teste de integração, como bottom-up, top-down, sandwich e big bang, que estabelecem a ordem e a forma de integrar os módulos.
No teste de sistema, a ideia é testar o software como um todo em um ambiente que simula o ambiente de produção.
Caso esses três tipos de testes sejam utilizados num mesmo projeto, essa seria a ordem de execução:
1 - Testes Unitários
2 - Teste de integração
3 - Teste de sisema
O PHPUnit é um framework para testes unitários em PHP.
Esse framework segue a arquitetura xUnit para possibilitar o desenvolvimento de testes unitários automatizados que verificam o funcionamento e os requisitos esperados de cada unidade do código de forma isolada. O PHPUnit facilita a criação e a execução dos testes unitários, usando classes e métodos específicos para definir e executar os testes. Além disso, o PHPUnit conta com recursos para verificar os resultados dos testes, gerar relatórios de cobertura de código e integrar os testes com outras ferramentas de desenvolvimento.
Acesse o site oficial:
Clique em Take the first steps:
Copie o comando para instalar a versão mais atualizada do PHPUnit no seu projeto via Composer:
No caso do nosso exemplo:
composer require --dev phpunit/phpunit ^10
Após a instalação, a versão instalada deve contar no arquivo composer.json do seu projeto:
Para exemplificar o uso do PHP Unit na prática vamos ver o exemplo simples de uma classe chamada Pessoa:
O primeiro país a utilizar urnas eletrônicas em eleições gerais foi o Brasil, em 1989. Foi realizada a primeira eleição geral com urnas eletrônicas no estado de São Paulo, a mais populosa e rica região do país. O sistema utilizado foi desenvolvido pela empresa brasileira Procomp Informática.
Posteriormente, outros países começaram a utilizar urnas eletrônicas. Hoje, muitos países usam urnas eletrônicas em suas eleições, mas a data de implementação e a forma como elas são usadas variam de país para país:
- Estados Unidos
- México
- Venezuela
- Argentina
- Chile
- Colômbia
- Costa Rica
- Equador
- El Salvador
- Guatemala
- Honduras
- Nicarágua
- Panamá
- Paraguai
- Peru
- Uruguai
- Índia
- África do Sul
- Coreia do Sul
- Filipinas
- Singapura
- Japão
- Taiwan
- França
- Alemanha
- Países Baixos
- Espanha
- Portugal
- Reino Unido
- Grécia
- Irlanda
Esta não é a lista completa e há muitos outros países que também usam urnas eletrônicas. Alguns países usam urnas eletrônicas em algumas eleições, mas não em outras. Alguns países usam urnas eletrônicas apenas em algumas regiões ou distritos eleitorais.
Muitos acreditam, que, nos Estados Unidos, o voto é unicamente feito por cédulas de papel, o que não é verdade.
O sistema de votação nos Estados Unidos é baseado em voto distrital, onde cada estado tem seus próprios regulamentos e leis de votação. A maioria dos estados usa urnas eletrônicas, mas alguns ainda usam cédulas de papel. Alguns estados permitem que os eleitores votem antecipadamente, seja por correspondência ou pessoalmente, antes do dia da eleição.
Os eleitores americanos votam em seus candidatos para cargos locais, estaduais e federais, incluindo o presidente dos Estados Unidos. O presidente é eleito através do Colégio Eleitoral, onde cada estado tem um número de eleitores correspondente ao número de membros do Congresso que o estado tem. Os eleitores votam em seus candidatos locais para o Colégio Eleitoral, e o candidato com a maioria dos votos no estado ganha todos os eleitores desse estado. O candidato que receber a maioria dos votos do Colégio Eleitoral (mais de 270) é eleito presidente.
Alguns estados também usam o sistema de voto distrital para eleger seus representantes no Congresso, onde os eleitores votam em seus candidatos para representá-los em seus distritos de votação.
Em geral, todos os cidadãos americanos com 18 anos ou mais têm o direito de votar, desde que estejam registrados para votar. O registro de eleitor é geralmente feito com as autoridades eleitorais do estado, e alguns estados requerem prova de cidadania ou residência.
As Urnas Eletrônicas São Seguras?
As urnas eletrônicas são projetadas para serem seguras, mas existem preocupações com a segurança desses sistemas devido a possíveis falhas no software, problemas de configuração, ou mesmo ações maliciosas.
Para garantir a segurança das urnas eletrônicas, os fabricantes devem seguir normas e padrões de segurança estabelecidos para garantir a integridade e a confiabilidade dos sistemas. Além disso, os sistemas devem ser submetidos a testes rigorosos para detectar quaisquer vulnerabilidades ou falhas antes de serem usados em eleições.
Qualquer sistema eletrônico é suscetível a ataques cibernéticos e violações de segurança, por isso é importante que haja medidas de segurança adicionais em vigor, como auditorias independentes, criptografia de dados, e etc.
Além disso, alguns países têm regulamentações e leis para garantir a segurança e a transparência das eleições eletrônicas. Essas regulamentações podem incluir requisitos para a transparência do código-fonte, a capacidade de auditoria dos votos e a garantia da privacidade dos eleitores.
Em geral, as urnas eletrônicas podem ser seguras se forem projetadas e implementadas corretamente, e se forem monitoradas e mantidas de forma adequada.
Muitos brasileiros acreditam que o voto impresso seria mais adequado, por se basearem no sistema Americano de votação, porém, além do sistema de votação Americano não ser totalmente realizado por cédulas de papel, como já vimos, existem vários casos históricos de fraude eleitoral nos Estados Unidos, em níveis tanto local quanto estadual e federal. Alguns desses casos envolvem manipulação de votos, manipulação de registros eleitorais, e até mesmo compra de votos. No entanto, é importante notar que a maioria dessas fraudes foram isoladas e não afetaram significativamente os resultados gerais das eleições.
Existem também casos de fraude eleitoral acusadas em eleições recentes, incluindo a eleição presidencial de 2020, mas essas acusações foram investigadas e não foi encontrado evidência substancial para apoiar as alegações de fraude em larga escala.
Em resumo, embora existam casos históricos e atuais de fraude eleitoral nos Estados Unidos, a maioria dessas fraudes foram isoladas e não afetaram significativamente os resultados gerais das eleições. Os sistemas de votação também incluem medidas de segurança para garantir a integridade e a transparência das eleições.
Como As Urnas São Auditadas No Brasil?
No Brasil, as auditorias das urnas eletrônicas são realizadas para verificar se os resultados registrados nas urnas eletrônicas correspondem aos votos reais.
As auditorias podem ser realizadas de várias maneiras. Algumas das formas mais comuns incluem:
Auditoria baseada nos boletins das urnas: cada urna eletrônica emite um comprovante físico do resultado da votação, o chamado Boletim de Urna (BU). Trata-se de um relatório impresso pelos mesários e tornado público logo após o encerramento da votação. Esse boletim possui o quantitativo de votos existentes que pode ser conflitado com o registro dos eleitores cadastrados naquela sessão que compareceram à votação.
Auditoria de código fonte: onde se verifica se o software usado nas urnas eletrônicas não contém quaisquer falhas ou vulnerabilidades.
Além dessas auditorias, também é comum que haja equipes de fiscalização, que acompanham o desenrolar das eleições, garantindo que todas as regras e regulamentos sejam seguidos.
Os partidos políticos no Brasil não têm acesso direto ao código-fonte das urnas eletrônicas utilizadas nas eleições. O código-fonte é considerado como informação confidencial e é mantido sob sigilo pelo Tribunal Superior Eleitoral (TSE) para evitar a possibilidade de fraudes ou ataques cibernéticos.
No entanto, os partidos políticos podem participar das auditorias realizadas no sistema eleitoral, incluindo a auditoria do código-fonte das urnas eletrônicas. Essas auditorias são realizadas por instituições independentes do governo e especializadas, como universidades e outras organizações interessadas. Além disso, os relatórios das auditorias são disponibilizados para acesso público, permitindo que os partidos políticos possam avaliar a segurança e integridade do sistema eleitoral.
É Possível Fraudar As Eleições No Brasil?
Como já vimos, nenhum sistema eletrônico é blindado de possíveis falhas, ataques e ações maliciosas. Você já reparou que o sistema operacional que você utiliza em seu computador ou celular te notifica regularmente sobre atualizações disponíveis? Muitas dessas atualizações são para corrigir erros e falhas de segurança detectados durante o uso desses sistemas. Ainda que alguma urna tenha sido alvo de fraude ou falha em alguma eleição no Brasil, não é possível alegar que esses casos pontuais tenham impactado no resultado final dessas eleições.
Em 2020, o presidente Jair Bolsonaro ordenou que o Ministério da Defesa realizasse uma auditoria nas urnas eletrônicas utilizadas nas eleições de 2018, com o objetivo de verificar a integridade e a confiabilidade do sistema eleitoral. A auditoria foi realizada pelo Exército Brasileiro e teve o objetivo de detectar possíveis vulnerabilidades ou ameaças à segurança do sistema eleitoral. De acordo com as informações disponíveis, a auditoria não detectou nenhuma vulnerabilidade crítica no sistema eleitoral e concluiu que as urnas eletrônicas utilizadas nas eleições de 2018 foram seguras e confiáveis. O relatório final da auditoria foi entregue ao Tribunal Superior Eleitoral (TSE) e ao Ministério Público Eleitoral (MPE).
Em 2022, o ex-presidente Jair Bolsonaro, na época ainda presidente e candidato à reeleição, convocou fiscais para acompanhar as eleições no Brasil. Esses fiscais eram voluntários e foram designados para acompanhar o processo de votação e contagem de votos em diferentes locais do país. O objetivo era garantir a transparência e a integridade do processo eleitoral. Além disso, a mando do ministério da defesa, sob o comando do então presidente Jair Bolsonaro, as eleições também foram fiscalizadas pela equipe de técnicos militares das Forças Armadas.
O relatório do ministério da defesa sobre a fiscalização das urnas nas eleições de 2022, não apontou nenhuma prova contundente sobre fraudes que pudessem ter causado impactado no resultado final das eleições e, pra resumir, o relatório apontou que "dos testes de funcionalidade, realizados por meio do Teste de Integridade e do Projeto-Piloto com Biometria, não é possível afirmar que o sistema eletrônico de votação está isento da influência de um eventual código malicioso que possa alterar o seu funcionamento".
É importante destacar essa parte "eventual código malicioso que possa alterar seu funcionamento". Como é possível realizar uma acusação de fraude se embasando nesse tipo de argumento? Na minha opinião pessoal, essa conclusão é equivalente às seguintes afirmações:
"Fui furtada dentro do ônibus. Pode ter sido a pessoa que estava do meu lado."
"Vou trabalhar todos os dias de carro. Pode ser que amanhã eu me envolva em alguma colisão."
"Meu filho não pode frequentar a escola. Pode ser que alguma outra criança implique com ele."
<snippet>
<content><![CDATA[
echo "<pre>";
print_r(${1:this});
die("</pre>");
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>debug</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<!-- <scope>source.python</scope> -->
</snippet>
echo "<pre>";
print_r(this);
die("</pre>");
Faça o download do projeto no link:
https://github.com/keniaferreira/PhotosGallery
Crie a pasta albuns dentro da pasta /public
Rode os comandos:
composer install
php artisan key:generate
Copie o conteúdo do arquivo .env.example e cole no arquivo .env que foi gerado.
Crie o banco: photos_gallery e não se esqueça de inserir o nome dele no arquivo .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=photos_gallery
DB_USERNAME=root
DB_PASSWORD=
Rode o comando php artisan migrate para construir as tabelas do banco.
Para criar um novo usuário, acesse a rota /login e clique em Register.
Ao criar um álbum, a foto de capa não aparecerá junto com as fotos do álbum. Decidi criar assim para o caso de alguém querer criar uma imagem somente para a capa. Caso queira que a foto da capa também seja listada no álbum, selecione ela novamente junto com as outras fotos que farão parte do álbum na opção 'Escolher Demais Fotos':
Principais Controllers:
IndexController - Listagem dos álbuns e das fotos de cada álbum.
UploadController - Criação e upload de fotos em cada álbum.
AdmAlbumController - Listagem e exclusão de álbuns criados.
Request:
UploadFotosRequest - Regras de validação do upload.
Destaques:
- Sublime - Como Programar Atalho Para Identar O Código
- Como Traduzir O Visual Studio 2012 Para Português
- Instalar o WSL2 e Configurar o Docker no Windows
- Sublime - Atalhos Para Comentar O Código
- Mural de recados no seu blog
- #3 - O que é o PhpUnit?
- Inserindo o contador no blog
- Quer adicionar jogos no seu blog?
- Como retirar a sessão Attribution do Blog
- #5 - Instanciando e Utilizando o PhpUnit
Comentários
Perfil
Formada em Sistemas de Informação e pós-graduada em Engenharia de Software.