Continuando com nosso tutorial agora vamos instalar em nosso servidor de desenvolvimento web o Joomla! (pronúncia: [djumla]) é um sistema livre open source de gestão de conteúdo web (do inglês: Content Management System – CMS) desenvolvido em PHP e com base de dados MySQL, executado em um servidor interpretador. Criado pelo grupo de desenvolvedores OSM em 2005, foi projetado com separação entre design, programação e conteúdo, proporcionando rapidez na produção de sites com flexibilidade, design personalizados e baixo investimento.
Como o ambiente Ubuntu Server 22.04 no VirtualBox não nos permite copiar e colar entre o hospedeiro e o cliente vamos usar o WGET
1) Fazendo download Joomla com o WGET
Para agilizar o processo já vamos fazer o download lá na pasta /var/www/html/ (usamos ela para testar a instalação do PHP )
$ cd /var/www/html $ ls
Se você está seguindo esse tutorial, deve existir dois aquivos lá nessa pasta, index.html que é criando com a instalação do Apache e o arquivo phpinfo.php, que nós criamos para testar o PHP, a ideia aqui é deixar essa pasta sem nenhum arquivo, vamos excluir.
$ rm phpinfo.php $ rm index.html
Vamos instalar o unzip, para descompactar o arquivo
DICA: Em outubro/2022 o endereço para download é esse acima, isso vai mudar assim que sair uma nova versão do Joomla, para conseguir o novo endereço basta apenas ir no link de download e com o botão direito do mouse escolher copiar o link, ai você cola em um bloco de notas para visualizar:
Agora vamos dar permissão na pasta html para não ter problemas na instalação do Joomla
$ cd /var/www $ sudo chmod -R 777 html
Feito isso já temos tudo que precisamos para iniciar: Só ir em um navegador em sua rede e digitar o endereço IP do seu servidor: P Ex.: http://192.168.0.99 ( Veja como fizemos isso )
Com isso concluímos esse tutorial, criando um ambiente para desenvolvimento web com o Joomla 4, rodando em um servidor Linux Ubuntu 22.04 em uma maquina virtual ( VirtualBox ). Tem muitos tutoriais para aprender a usar esse CMS no YouTube, basta procurar “joomla 4”
Continuando com nosso tutorial agora vamos instalar em nosso servidor de desenvolvimento web o MariaDB (um sistema de gerenciamento de banco de dados que surgiu como fork do MySQL, criado pelo próprio fundador do projeto após sua aquisição pela Oracle)
Após alguns minutos seu SGBD ( conhecido como banco de dados ) já deve estar instalado, vamos verificar isso.
$ sudo systemctl status mariadb
Na imagem acima você pode verificar a versão do seu banco de dados, ou ainda usando a seguinte instrução:
$ mariadb –version
2) Configurando o banco de dados MariaDB
Digite a instrução abaixo para iniciarmos a configuração
$ sudo mysql_secure_installation
Na tela que solicita a senha do root, DEIXE EM BRANCO, afinal essa é a primeira vez que o banco vai ser configurado.
Switch to unix_socket authentication [Y/n] Digite N e pressione Enter
O próximo prompt pergunta se você deseja configurar uma senha de root do banco de dados. No Ubuntu, a conta root do MariaDB está intimamente ligada à manutenção automatizada do sistema, portanto, você não deve alterar os métodos de autenticação configurados para essa conta.
Isso possibilitaria que uma atualização de pacote quebrasse o sistema de banco de dados removendo o acesso à conta administrativa.
Change root password? [Y/n] Digite N pressione ENTER.
A partir daí, você pode pressionar Y, em seguida, ENTER para aceitar os padrões para todas as perguntas subsequentes. Isso removerá alguns usuários anônimos e o banco de dados de teste, desabilitará logins root remotos e carregará essas novas regras para que o MariaDB implemente imediatamente as alterações que você fez.
3) Configurando acesso ao banco de dados via senha
Criaremos uma nova conta chamada admin com os mesmos recursos da conta root, mas configurada para autenticação por senha. Abra o prompt do MariaDB no seu terminal:
$ sudo maridb
Em seguida, crie um novo usuário com privilégios de root e acesso baseado em senha. Certifique-se de alterar o nome de usuário e a senha para corresponder às suas preferências: P. Ex. GRANT ALL ON *.* TO ‘usuario‘@’localhost’ IDENTIFIED BY ‘senha123‘ WITH GRANT OPTION;
MariaDB [(none) ]> GRANT ALL ON *.* TO ‘usuario‘@’localhost’ IDENTIFIED BY ‘senha123‘ WITH GRANT OPTION;
Guarde bem o usuário e a senha de acesso do administrador do banco de dados.
Depois ainda dentro do banco de dados digite:
MariaDB [(none) ]> FLUSH PRIVILEGES;
Agora vamos sair:
MariaDB [(none) ]> EXIT
Só mais um teste, digite:
$ sudo mysqladmin version
3) Instalando o PhpMyAdmin, no Ubuntu Server 22, para acessar o banco de dados via web
ATENÇÃO: esse passo é opcional, para um site em produção é preciso tomar alguns cuidados adicionais com a segurança, considerando que a instalação desse componente é bem comum, ele se torna alvo de ataques com frequência.
Vamos instalar digitando:
$ sudo apt install phpmyadmin
Após confirmar a instalação, na tela abaixo selecione com a barra de espaços o servidor Apache, e com a tecla TAB salte para o OK e pressione ENTER para confirmar.
A instalação vai baixar todos os pacotes e atualizar o seu sistema, e após alguns minutos uma nova tela é apresentada, se você instalou, o MariaDB conforme o passo anterior, então selecione YES e coloque a SENHA de acesso ao seu banco de dados, com TAB selecione OK e pressione ENTER, é solicitada uma confirmação dessa senha.
Feito isso já devemos ter o PhpMyAdmin instalado e se você for em qualquer máquina da sua rede ( ou no navegador web, onde está o seu VirtualBox ) e dgitar o IP do seu Servidor Ubuntu 22.04 já deve poder acessar o seu banco de dados MariaDB.
Faça login e já estamos acessando o Banco de dados, mesmo sendo uma etapa opcional, para manutenção é interessante ( backups por exemplo )
Você recebe um aviso para reinicar o serviço do Apache
$ sudo systemctl restart apache2
Agora vamos verificar se está funcionando o FPM
$ systemctl status php8.1-fpm
Para sair pressione Q
Ainda vamos ter que instalar extensões para o mysql
$ sudo apt install php-mysql
$ sudo apt update && sudo apt upgrade -y
Agora vamos fazer um teste no servidor web, e no PHP ver se está funcionando também, no editor nano escreva o texto abaixo e salve com CTRL+O e saia com CTRL+X:
$ sudo nano /var/www/html/phpinfo.php
Feito isso já podemos testar o nosso script PHP, isso deve ser feito em alguma computador da sua rede, pode usar o navegador do mesmo sistema onde está instalado o seu VirtualBox.
Continuando com nosso tutorial agora vamos instalar em nosso servidor de desenvolvimento web o Servidor web APACHE (https://httpd.apache.org/)
$ sudo apt update $ sudo apt install apache2
Após o final da instalação, se você for em qualquer maquina, da sua rede, ou no seu computador onde está instalado o VirtualBox e digitar o endereço IP do seu servidor Ubuntu, ( no nosso exemplo nós definimos o endereço IP do servidor como 192.168.1.99 ), uma página com a imagem abaixo mostra o sucesso da instalação.
Vou criar uma série de publicações com o objetivo de documentar a preparação de um ambiente de desenvolvimento web composto pelos seguintes itens: Servidor Ubuntu, Servidor Web, linguagem de programação PHP, SGBD Mariadb. Sei que existem pacotes com XAMP, que fazem todas as instalações para facilitar a vida do desenvolvedor, mas tem aqueles que preferem saber como fazer isso manualmente, a titulo de curiosidade ou mesmo para aumentar a segurança e confiabilidade do sistema em uso.
Nesses item vamos instalar e configurar o Ubuntu Server 22.04.1
A ideia aqui é usar uma maquina virtual usando o VirtualBox [ Baixe aqui ] se você precisar.
1) Baixe a imagem do Ubuntu Server 22.04.1 LTS [ Aqui ] e instale;
2) Clique em NOVO ( Ctrl + N ) para criar, uma nova maquina virtual, escolha o nome que preferir, UbuntuServer22 por exemplo.
3) Na memória – Pode deixar 1024, esse valor pode ser alterado depois da maquina criada, sem problemas;
4) Disco Rígido – Como é um servidor de teste, usado para treinamento pode deixar com o tamanho de 10 GB; Só clicar em CRIAR e escolher o tipo VDI, Dinamicamente alocado, 10 GB; Está praticamente pronto, ao clicar em concluir a sua maquina virtual aparece como desligada, antes de ligar vamos fazer algumas configurações.
5) Em configurações : a) Em Maquina/configurações: Desmarque [ ]-Habilitar Áudio; b) Inicialmente deixe a Rede/Lan em modo NAT para termos acesso a internet e baixar as atualizações do Ubuntu Server; c) Em Armazenamento DRIVER Ótico, ATRIBUTOS selecione a imagem que você baixou do Ubuntu Server; d) Inicie o sistema, para começar a instalação.
6) Instalando o Ubuntu Server – Em alguns segundo você vai estar na tela inicial de configuração do seu servidor;
Selecione PORTUGUÊS e pressione Enter;
Depois selecione o Idioma do teclado e o Layout do mesmo;
Selecione o tipo de instalação do seu servidor, eu deixei no padrão [ x ] Ubuntu Server
Próximo passo em Ligações de rede vamos deixar o padrão também, para poder atualizar o o nosso servidor, depois vamos mudar isso.
Configuração do PROXY – deixe como está e [ Concluir ]
Configure o Ubuntu Archive Mirror – deixe como está e [ Concluir ]
Configurações do disco rígido – Como essa é uma maquina virtual e está sendo criada nesse momento, é só – deixar como está e [ Concluir ]
Vai aparecer um sumário, mostrando as configurações padrão, é só continuar.
Ainda assim aparede um AVISO informando que o Disco Rígido vai ser formatado, pode confirmar.
Agora chegou o momento de configura o ADMINISTRADOR DO SISTEMA
Após essas configurações ainda aparece a opção para instalar o serviço SSH, nesse momento não vamos instalar.
No próximo passo a insalação nos oferece alguns serviços e app como features, para esse tutorial, não precisamos marcar nada nessa tela.
A instalação vai começar e se você tiver conectado na internet alguns updates já serão instalados, o processo demora alguns minutos.
A V I S O: Se na tela Instalação Concluída você ver a mensagem “executando ‘curtin hook'” no final da instalação e um \ + / rodando, você pode reinciar o servidor. Esse erro já foi reportado em alguns foruns, não afeta a instalação do SO.
Mesmo assim ainda teremos um erro, que avisa que não foi possível desmontar o CD de instalação, ignore e pessione ENTER.
Agora você já pode logar no seu servidor, usando o usuário e senha definidos acima.
Vamos atualizar o sistema, digite:
$ sudo apt upgrade
É só confirmar e aguardar a atualização, é importante que seu sistema esteja sempre atualizado.
Quando aparecer a tela de configuração de pacotes, só OK e pronto.
Só para conferir se não temos mais atualizações use a seguinte instrução:
$ sudo apt update
Tudo Pronto vamos desligar o nosso servidor e mudar a ordem de boot do sistema.
$ poweroff
Agora em CONFIGURAÇÕES do VirtualBox escolha: SISTEMA, desmarque o disco óptico e altere a ordem de boot, deixando o disco rídigo em primeiro lugar.
CONCLUÍMOS a instalação do nosso servidor Ubuntu 22.04.1 – Vamos para o próximo passo.
Fazendo alguns ajustes necessário no nosso servidor
Conferindo o LOCAL do seu servidor, na minha instalação ele ficou como padrão o português de Portugal. DIGITE:
depois na tela abaixo selecione pt_BR.UTF-8UTF-8 e selecione <OK> para salvar
Na próxima tela so escolher o pacote e selecionar <OK>
Se deu tudo certo, é so conferir :
[ Agora você vera o local correto com o comando abaixo ]
$ locale
[ vamos aproveitar e atualizar esses pacotes ]
$ sudo apt update
Configurando IP estático no Ubuntu Server
Vamos precisar definir um IP estático para nosso servidor Web / Joomla
$ sudo apt install net-tools
Digite:
$ ifconfig
Eu vou precisar fixar o IP do meu servidor para que o mesmo fique na mesma rede, do meu navegador instalado no meu computador, que é onde eu quero usar o Joomla.
P. Ex. 192.168.1.74 é o meu PC então eu quero que o meu servidor fique no endereço IP 192.168.1.99.
Atenção (ao fixar o enderço IP no seu servidor tenha certeza de não usar um endereço já em uso, isso vai causar conflito na sua rede )
Desligue o servidor
$ poweroff
Mude a configuração no VirtualBox da placa de rede para Bridge
Entre no Ubuntu Server novamente
$ cd /etc/netplan/ $ ls
Você deve localizar um arquivo geralmente com a extensão .yaml precisamo editar esse arquivo de configurações, por exemplo:
$ sudo nano 00-installer-config.yaml
ATENÇÃO:a identação do texto é importante:
Faça as alterações e salve com CTRL+O e saia com CTRL+X
Para reiniciar sua rede:
$ sudo netplan generate $ sudo netplan apply
Confira se tem internet no seu servidor:
$ sudo apt update
Deve dar certo e ir buscar as atualizações, mesmo que seu servidor esteja atualizado
O ReactOS é um sistema operacional novo, open source e free. Você pode não acreditar, mas, ele NÃO É uma distribuição Linux, é sim um SO desenvolvido do zero que roda programas nativos desenvolvido para o Windows 32 bits, ele lembra muito o Windows NT. E na hora da instalação, exige poucos recursos da maquina, com a quantidade de equipamento 32 bits ficando obsoletos, essa é uma boa opção para “reciclar” aquele seu PC que está ali pegando poeira.
Para esse teste eu baixei uma ISO no site e virtualizei o sistema com o Virtual Box, com 512 MB de RAM, HD de 10 GB e uma placa de vídeo de 32 MB ( huauuu…. que maquina! ) escolhi na hora da criação a opção “outro Windows 32 bits” e instalei o ReactOS sem maiores problemas para quem já instalou algum SO da Microsoft.
No momento que estou escrevendo esse texto (Set / 2019) a versão atual é 0.4.1.
Instalando RecatOS
Após iniciar o sistema em português com teclado ABNT configurado certinho e tudo funcionando bem, gostei.
Instalando Reactos / Idioma
Você pode escolher um tema para o seu ReactOS, o padrão é o clássico do Windows, nesse exemplo eu escolhi um tema diferente, veja que legal, na imagem abaixo onde eu acesso a “Central de Aplicativos ReactOS” que nos oferece a um click, downloads de vários aplicativos já testados e funcionando no SO, tudo organizado por grupos de interesse.
CONCLUSÃO: O ReactOS me pareceu bem confiável, alguns erros na execução de algum aplicativo, é justificável para um sistema ainda está em construção, mas o projeto promete e vou continuar a fazer testes com o surpreendente ReactOS, talvez esteja ai um filão de mercado para os PCs que temos em casa considerados obsoletos pelos novos Sistemas Operacionais que consomem muitos recursos.
#susviela
Ajude a manter o BLOG – Faça uma doação CRIPTOMOEDAS:
DOGE:D7erXNGo3cYcXhVnPny3CGwrr2yc9azuAV
LTC:LMJVUZBKpS4tjKpC6dAiBiH398z9Udt4hY
BTC:159W6qoxFVa7uhqoZz85dmBNYkZ1rYBQyB
– – / / – –
—- [ Conheça nosso sistema de gestão comercial: POWER Admc ] —-
Com a crescente adoção dos criptoativos (criptomoedas), Bitcoin, Monero, LTC, DOGE entre tantas, começaram a surgir inúmeros sites que se aproveitam da visita do usuário e utilizam o navegador do mesmo para “minerar escondido” sem sua autorização.
Uma dica rápida para quem usa o excelente navegador FireFox, a partir da versão Quantum 74, existe a opção de não permitir que os sites maliciosos usem seu navegador para minerar criptomoedas sem autorização.
Acesse o menu Preferencias e na opção Privacidade e Segurança, escolha personalizado, marque o que você quer bloquear nesse caso específico, selecione Criptomineradores.
Mais uma dica rápida para quem usa a IDE Lazarus / free Pascal (faça download aqui ).
Uma das maneiras, “digamos segura”, de armazenar senhas no seu banco de dados, é gravar o hash* do String / texto da mesma, evitando o uso de texto plano o que impede a visualização da senha por alguém que tenha acesso ao banco de dados ou até mesmo um vazamento de informações.
Criei um pequeno exemplo no Lazarus 2.0 para testar isso, usando o SHA1 para calcular o Hash de um string digitado em um EditBox e mostrando no formulário o resultado do hash, quando o botão Calcular é pressionado.
1) Crie um novo projeto no Lazarus;
2) Inclua um Editbox (TEdit), um Label (Tlabel) e um Botão (TButton );
3) Na lista Uses, inclua Sha1;
4) Nesse exemplo não mudei o nome dos objetos;
5) Dois clique no botão e digite o seguinte código;
procedure TForm1.Button1Click(Sender: TObject);
var hashTexto : TSHA1Digest;
begin
hashTexto := Sha1String( Edit1.Text ); label1.Caption:= SHA1Print( hashTexto );
end;
Um hash (ou escrutínio) é uma sequência de bits geradas por um algoritmo de dispersão, em geral representada em base hexadecimal, que permite a visualização em letras e números (0 a 9 e A a F), representando um nibble cada. O conceito teórico diz que “hash é a transformação de uma grande quantidade de dados em uma pequena quantidade de informações”.
Essa sequência busca identificar um arquivo ou informação unicamente. Por exemplo, uma mensagem de correio eletrônico, uma senha, uma chave criptográfica ou mesmo um arquivo. É um método para transformar dados de tal forma que o resultado seja (quase) exclusivo. Além disso, funções usadas em criptografia garantem que não é possível a partir de um valor de hash retornar à informação original.
Conclusão:
A IDE – Lazarus (Free Pascal ) está cada dia melhor, um exemplo de como o software livre pode evoluir e crescer.
Criar um hash da senha, e guardar no banco de dados é uma boa opção, depois é só comparar o hash da senha digitada no campo Password da sua aplicação com o hash gravado no seu banco de dados, se forem iguais, permitir o acesso.
#susviela
Ajude a manter o BLOG – Faça uma Colaboração :
Criptomoeda Doge:
D7erXNGo3cYcXhVnPny3CGwrr2yc9azuAV
– – / / – –
—- [ Conheça nosso sistema de gestão comercial: POWER Admc ] —-
Uma dica rápida para quem usa a IDE Lazarus (faça download aqui ), na hora de instalar o programa ele detecta o idioma do seu SO e a interface da IDE já vai estar traduzida, mas ao usar componentes nos programa desenvolvidos a linguagem padrão é o inglês.
Então ao usar, o componente MessageDlg por exemplo, o usuário do seu programa vai receber uma pergunta personalizada por você mas com os botões em inglês, não chega a ser um grande problema, veja:
Botões em Inlgês
É simples de oferecer uma interface melhor para o seu usuário. faça o seguinte:
1) Localize na pasta onde foi instalado o seu Lazarus o arquivo “lclstrconsts.pt_BR.po” e copie ele para a pasta onde está o executável do seu projeto;
2) Agora no Form principal do seu programa inclua a Uses Translations ;
3) E no evento On Create desse mesmo Form inclua a seguinte linha:
A IDE – Lazarus (Free Pascal ) está cada dia melhor, um exemplo de como o software livre pode evoluir e crescer.
Além disso não custa muito oferecer um pouco mais de valor ao seu sistema, qualificando o mesmo.
#susviela
Ajude a manter o BLOG – Faça uma Colaboração :
Criptomoeda Doge:
D7erXNGo3cYcXhVnPny3CGwrr2yc9azuAV
– – / / – –
—- [ Conheça nosso sistema de gestão comercial: POWER Admc ] —-
Iniciando um formulário automaticamente no Libre Office – Base
Para abrir formulário no Base ao iniciar siga os seguintes passos:
1) Segurança para executar macros ( isso pode ser uma falha de segurança, use por sua conta e risco ) :
Ferramentas -> Opções -> segurança -> [Macro security]
Escolha BAIXA (Não recomendado )
Criando macro no LibreOffice
2) criar macro com o seguinte conteúdo:
Dentro de: SeuBanco.ODB / Standard / Module1 – clique em [EDIT] e salve o seguinte código:
SUB AbreFormulario
Dim ObjTypeWhat
Dim ObjName As String
ObjName = "frmCliente"
ObjTypeWhat = com.sun.star.sdb.application.DatabaseObject.FORM
If ThisDatabaseDocument.FormDocuments.hasbyname(ObjName) Then
ThisDataBaseDocument.CurrentController.Connect()
ThisDatabaseDocument.CurrentController.loadComponent(ObjTypeWhat, ObjName, FALSE)
Else
MsgBox "Erro! Nome do firmulário usado. " & ObjName
End if
End Sub
– Altere no código acima, o conteúdo da variável objName para o nome do seu fomulário;
3) Em Ferramentas-> Personalizar, na aba [Events] selecione “Open Document” e anexe a [Macro] que você acabou de criar “AbreFormulario”
Autoexec Macro ao abrir
– Salvar, fechar o SeuBanco.ODB
– Reabra; O formulário deve começar automaticamente.
Conclusão:
Com esses passos, você pode agilizar o trabalho para os usuários do seu banco de dados nesse excelente ferramenta o Libre Office Base.
Conforme esse texto no site do pacote Libre Office ( https://www.libreoffice.org/ ) o novo motor incorporado ( embarcado ) para gerenciamento de banco de dados passa a ser o Firebird, e agora com o lançamento da versão 6.1 essa opção já esta disponível para ser adotada pelos usuários do pacote.
Base agora com Firebird incorporado
Os usuários do LibreOffice base estão sendo encorajados a mudar para o Firebird lançado com a versão 6.1, que se tornará o padrão, enquanto o motor de banco de dados HSQLDB incorporado – embora obsoleta – ainda estará disponível como uma alternativa.
A versão do Firebird 3.0 está agora embarcada no LO.
Mais informações técnicas sobre o uso desse novo recurso no LO ( Libre Office ) podem ser encontradas em:
“Timothy C. May, mais conhecido como Tim May, foi um técnico e escritor político norte-americano, um engenheiro eletrônico e cientista sênior da Intel no início da história da empresa. Foi um dos precursores do cripto-anarquismo no mundo moderno e foi também quem escreveu ” O Manifesto Cripto Anarquista”, leitura “meio” que obrigatória a todas as novas gerações de ciber-ativistas.”
(+)1951 (-) 15/Dez/2018
[ Cypherpunks of the World ] – Ciferpunks do mundo,
Vários de vocês na reunião “ciferpunks físicos” de ontem no Vale do Silício pediram que mais material aprovado nas reuniões fosse acessível eletronicamente aos leitores de toda a lista de ciferpunks, espiões, intrusos e assim por diante.
Aqui está o “Anarchist Crypto Manifesto” que eu li em setembro de 1992 na reunião da fundação. Suas origens remontam a meados de 1988 e foram distribuídas para alguns tecno-anarquistas na conferência “Crypto ’88” e novamente na “Hackers Conference” daquele ano. Mais tarde eu dei palestras em Hackers sobre isso em 1989 e 1990.
Há algumas coisas que eu gostaria de mudar, mas por razões históricas vou deixar como está. Alguns dos termos podem ser desconhecidos para você … Espero que o Glossário de Criptografia que acabei de distribuir seja útil.
(Isso deve explicar todos os termos enigmáticos do meu assunto!)
–Tim May
========
O manifesto criptoanarquista
Um espectro está emergindo no mundo moderno, o espectro da anarquia criptográfica.
A ciência da computação está à beira de fornecer a habilidade de indivíduos e grupos de se comunicar e interagir uns com os outros de uma maneira totalmente anônima. Duas pessoas podem trocar mensagens, fazer negócios e negociar contratos eletrônicos, nunca conhecendo o nome autêntico ou a identidade legal do outro. As interações nas redes serão inatingíveis, graças ao uso prolongado de reencaminhamento de pacotes criptografados em máquinas à prova de adulteração que implementam protocolos criptográficos com garantias quase perfeitas contra qualquer tentativa de alteração. Reputações serão de importância crucial, muito mais importante em lidar com as classificações de crédito de hoje. Esses desenvolvimentos alterarão completamente a natureza da regulamentação governamental, a capacidade de tributar e controlar as interações econômicas, a capacidade de manter as informações em segredo e até mesmo alterar a natureza da confiança e da reputação.
A tecnologia para esta revolução (e certamente será uma revolução social e econômica) existiu em teoria durante a última década. Os métodos são baseados em criptografia de chave pública, sistemas de teste de conhecimento zero interativos e vários protocolos de software para interação, autenticação e verificação. O foco até agora tem sido em conferências acadêmicas na Europa e nos EUA, conferências monitoradas de perto pela National Security Agency. Mas apenas recentemente redes de computadores e computadores pessoais alcançaram velocidade suficiente para tornar as ideias viáveis na prática. E os próximos 10 anos trarão velocidade extra suficiente para tornar essas ideias economicamente viáveis e, em essência, imparáveis. Redes de alta velocidade, ISDN, cartões inteligentes, satélites, transmissores Ku-Band, computadores pessoais multi-MIPS e chips de criptografia agora em desenvolvimento serão algumas das tecnologias capacitadoras.
O Estado tentará, é claro, adiar ou impedir a disseminação dessa tecnologia, citando preocupações com a segurança nacional, o uso dessa tecnologia por traficantes de drogas, evasores fiscais e temores de desintegração social. Qualquer uma dessas preocupações será válida; a criptoanarquía permitirá a livre comercialização de segredos nacionais e a comercialização de materiais ilícitos e roubados. Um mercado anônimo de computadores permitirá até mesmo o estabelecimento de mercados horríveis de assassinato e extorsão. Vários elementos criminosos e estrangeiros serão usuários ativos da CryptoNet. Mas isso não impedirá a disseminação da anarquia criptográfica. A anarquia criptográfica, combinada com mercados emergentes de informação, criará um mercado líquido para qualquer material que possa ser colocado em palavras e imagens. E da mesma forma que uma invenção aparentemente menor como o arame farpado possibilitou a vedação de grandes fazendas e fazendas, alterando para sempre os conceitos de terra e direitos de propriedade nas fronteiras do Ocidente, assim também a descoberta aparentemente menor de um ramo arcano da matemática se tornará o alicate que desmonta o arame farpado em torno da propriedade intelectual.
Levante-se, você não tem nada a perder, exceto suas cercas de arame farpado!
Timothy C. May, foi tão importante, quanto Satoshi Nakamoto, para a tecnologia usada nas criptomoedas, e portanto nada mais justo que tentar homenageá-lo com a reprodução de um dos seus textos mais inspirador.
#susviela
Ajude a manter o BLOG – Faça uma Colaboração :
Criptomoeda Doge:
D7erXNGo3cYcXhVnPny3CGwrr2yc9azuAV
– – / / – –
—- [ Conheça nosso sistema de gestão comercial: POWER Admc ] —-
Um exemplo básico para quem está começando a desenvolver e procura algum texto sobre programação orientada a objetos POO, nesse exemplo com a linguagem de programação C++.
Se você chegou aqui e vai continuar a ler o texto, vou assumir que você sabe o mínimo da linguagem de programação C, ou C++.
1) Crie um projeto novo, escolha “Console applications” de um nome para seu projeto e salve;
2) No menu File / New / Classe (coloque o nome para sua classe ) essa IDE já vai criar para você dois arquivos <nomeClasse.h> e <nomeClasse.cpp>
3) No exemplo abaixo eu escolhi o nome Ciente
Altere os três arquivos gerados pelo conteúdo dos exemplos abaixo:
I ) Arquivo: Cliente.h
/*
** No arquivo [nomeclasse.h] criamos
** as definições da nossa classe
** métodos e atributos da mesma.
** Em um projeto C++ normalmente esse
** arquivo fica em uma pasta [include\]
**
** #Susviela
**
*/
#ifndef CLIENTE_H
#define CLIENTE_H
#include <string>
using namespace std;
class Cliente
{
public:
Cliente();
virtual ~Cliente();
void setNome(string nome);
string getNome();
void setEmail(string email);
string getEmail();
void setIdade(int idade);
int getIdade();
void setSaldo(float saldo);
float getSaldo();
protected:
private:
string nome;
string email;
int idade;
float saldo;
};
#endif // CLIENTE_H
II) Arquivo: Cliente.cpp
/*
** O desenvolvimento dos métodos
** é codificado no arquivo
** nomeado [nomedaclasse.cpp] que
** normalmente fica em uma pasta [src\]
**
** #Susviela
**
*/
#include "Cliente.h"
Cliente::Cliente() { // o construtor por default tem o mesmo nome classe
this->nome = "Sem nome";
this->email = "Sem email";
this->idade = 0;
this->saldo = 0.00;
}
Cliente::~Cliente() { // e o destrutor por default tem o mesmo nome classe com um ~ antes
//dtor
}
void Cliente::setNome(string nome ){
this->nome = nome;
}
string Cliente::getNome(){
return this->nome;
}
III) Arquivo: main.cpp
/*
** Programa principal
**
** #Susviela
*/
#include <iostream>
using namespace std;
#include "Cliente.h"
int main(){
Cliente oCliente; // cria/instancia um objeto oCliente
cout << "Nome cliente: " << oCliente.getNome() << endl;
oCliente.setNome("Carlos Susviela");
cout << "Nome cliente: " << oCliente.getNome() << endl;
return 0;
}
Uma breve explicação:
I) No arquivo [Cliente.h] criamos as definições, com os métodos e atributos da nossa classe, onde os métodos tem visibilidade pública e os atributos são privados da classe, ou seja só de dentro da classe eles podem ser manipulados;
II) No arquivo [Cliente.cpp] é onde desenvolvemos nossa classe, ai vamos codificar os nossos métodos que interagem com a nossa classe.
Veja que o método construtor por padrão leva o mesmo nome da classe, ai é o local de inicializar algum atributo se for necessário.
Cliente::~Cliente()
O método destrutor é por padrão o nome da classe com um [~] antes do mesmo, esse método é chamado automaticamente quando a classe não será mais utilizada ( quem sabe, seria um bom local para encerrar a conexão com o banco de dados ? ) ;
III) Esse é o nosso programa em C++ propriamente dito onde geralmente colocamos a função main.
Veja que eu instanciei o objeto com a sintaxe padrão do C/C++ ou seja:
int idade ( define a variável idade como inteira )
Cliente oCliente (define o objeto como uma instância da classe Cliente;
O método setNome inclui um valor ao atributo nome e ao ser solicitado o valor do atributo com o método getNome() já temos o novo valor;
Conclusão:
Esse texto é só uma pincelada nesse tema muito importante para quem está estudando programação e tem apenas a pretensão de servir como ajuda. Dúvidas, críticas construtivas ou correções, sinta-se a vontade em contactar comigo.
#susviela
Ajude a manter o BLOG – Faça uma Colaboração :
Criptomoeda Doge:
D7erXNGo3cYcXhVnPny3CGwrr2yc9azuAV
– – / / – –
—- [ Conheça nosso sistema de gestão comercial: POWER Admc ] —-
As vezes até no próprio buscador é difícil encontrar essa ajuda, então fica aqui a dica, pesquisar na web/internet com Google pode ser mais produtivo seguindo essas orientações do próprio site:
É possível usar símbolos ou palavras na pesquisa para tornar os resultados mais precisos.
A Pesquisa Google geralmente ignora pontuações que não façam parte de um operador de pesquisa.
Não coloque espaços entre o termo de pesquisa e o símbolo ou palavra. Uma pesquisa por site:nytimes.com funcionará, mas por site: nytimes.com não.
Técnicas de pesquisa comuns
Pesquisar em redes sociais
Coloque @ antes de uma palavra para pesquisar em redes sociais. Por exemplo: @twitter.
Pesquisar um preço
Coloque $ antes de um número. Por exemplo: câmera $400.
Pesquisar hashtags
Coloque # antes de uma palavra. Por exemplo: #desafiodogelo
Excluir palavras da pesquisa
Coloque – antes de uma palavra que você queira deixar de fora. Por exemplo, velocidade do jaguar -carro
Pesquisar uma correspondência exata
Coloque uma palavra ou frase entre aspas. Por exemplo, “prédio mais alto do mundo”.
Pesquisar caracteres curinga ou palavras desconhecidas
Coloque um * na palavra ou frase onde você deseja deixar um marcador. Por exemplo, “maior * do mundo”.
Pesquisar dentro de um intervalo de números
Coloque .. entre dois números. Por exemplo, câmera $50..$100.
Combinar pesquisas
Coloque “OR” entre cada consulta de pesquisa. Por exemplo, maratona OR corrida.
Pesquisar um site específico
Coloque “site:” antes de um site ou domínio. Por exemplo, site:youtube.com ou site:.gov.
Pesquisar sites relacionados
Coloque “related:” antes de um endereço da Web que você já conhece. Por exemplo, related:time.com.