Uma introdução à Programação Orientada a Objetos em C++ (Parte I)

Introdução

C++_programming
Este “curto” artigo tem o objetivo de dar um pontapé inicial para quem deseja obter uma introdução à programação orientada a objetos. O uso da linguagem C++ é mais ou menos casual, aqui.
A abreviatura do conceito em inglês é OOP, enquanto em portuguẽs é comum usar POO. O problema é que poo, em inglês quer dizer cocô — motivo pelo qual espero que você entenda por que nós vamos evitar o seu uso.

O que é Programação Orientada a Objetos (OOP)

A OOP é, sem dúvida, uma das mais complexas técnicas de programação para se explicar. Na verdade, trata-se de mais do que “técnica”. Estamos falando de um novo método de abordar a programação, em si.
Como há uma variada gama de livros sobre o assunto, não faz sentido este artigo se aprofundar em todos os meandros filosóficos e em todas as implicações que envolvem a OOP. Para entender este conceito, acreditamos que seja importante para você entender primeiro como era a programação antes dele.
Naquele tempo, a estória era assim: um programa é uma sequência lógica de instruções a serem executadas pelo computador. Só. Nada animador, não?
Isto era o que se chama de programação estruturada.
Pois bem, no final dos anos 50, no MIT, o paradigma da orientação a objetos começava a ser gestado. Veio à tona há uns 20 anos e vem ganhando força nos dias atuais.
Na programação orientada a objetos se enfatiza os dados ou os ‘objetos’ manipulados e em como o programador os manipula. No paradigma anterior, números eram apenas endereços na memória; sequencias de bytes que não tinham significados relevantes.
Um programa deve oferecer meios de solucionar qualquer que seja o problema que você tenha a sua frente. Isto é feito olhando pros objetos que definem os problemas e usando funções que manipulam estes objetos.
Ainda que estes conceitos lhe pareçam confusos, eles não são tão necessários para que você possa fazer uso efetivo da OOP em seus programas. É programando que se aprende a programar, qualquer que seja a metodologia usada.

Continuação…

Como configurar o VI para fazer realce de sintaxe.

Aqui, o assunto vai ser um editor de textos simples presente em quase todas as distro Linux, justamente por ser extremamente leve (acho que este não é bem o caso do vim) e, além de tudo, é extremamente ‘espartano’ no seu visual.
Não se engane com “as roupas simples” do nosso amigo. Ele tem mais recursos que o leafpad, gEdit ou o Notepad (Windows).
Gosto de algumas coisas no vi. A possibilidade de executá-lo dentro de um terminal transparente e poder editar os meus arquivos de configuração e contemplar o meu papel de parede preferido enquanto trabalho, é uma delas. A leveza deste aplicativo completo salta aos olhos.
Gostaria de dizer ao leitor, da maneira mais polida possível, que, se você não sabe o que é o vi ou o vim, este texto provavelmente não é pra você. Desculpe. 😉

Alternativas ao editor vi

há várias outras alternativas disponíveis por aí. É sempre disso que estamos falando, quando o assunto é software livre: escolhas e liberdade de escolha.
Uma, que eu gosto muito é o nano e ele já tem o recurso syntax highlighting disponível como padrão e costuma vir ‘empacotado’ na maioria das distro.

Como ativar o syntax highlighting no vi

O caso, aqui, é simples para ser resolvido.
Inicie o vi, com o arquivo código do seu programa (eu vou usar o ‘startx’, no exemplo):

vi /usr/bin/startx

Dentro do editor, digite o seguinte comando:

:set syntax on

Isto deve resolver o problema.

Ops! Mensagem de erro E319…

Você ainda está aqui? Recebeu uma mensagem de erro?
vimrc-config2
A versão mais simplificada do vi não tem o recurso de realce da sintaxe do código. Isto gera a mensagem de erro: “E319: Sorry, this command is not available in this version”.
Para resolver isto, instale a versão mais avançada, vim (vi improved):

sudo apt-get install vim

, nas distro debian based, como é o caso do Ubuntu.

Editando o arquivo de configuração do vim

Uma solução definitiva e melhor é editar o arquivo de configuração do vim.
Abra-o com o seu editor favorito e edite a linha syntax off para syntax on. Se estiver apenas comentado, retire os “#”, tal como na figura:
vimrc-config
No Ubuntu, o arquivo de configuração do vim é /etc/vim/vimrc. Ao editá-lo, a solução torna-se definitiva.
Happy coding!

Como encriptar um Shell Script com SHC

Neste texto, vou ensinar a baixar, instalar e usar SHC, um programa que encripta o código do seus shell scritps.
Antes de mais nada, eu gostaria de dizer que encriptar seus códigos não é uma prática recomendável. O ideal é documentar todo o script, de forma que qualquer pessoa o possa entender facilmente. Códigos fonte devem ser o mais acessíveis possível – já a informação com a qual eles lidam, é que deve ser restringida.
Se você precisa usar informações, usualmente confidenciais, como senhas, de forma automática, então deve procurar outra solução.
Hmmmm… você ainda está aqui?
Tenha em mente, contudo, que um script codificado através do SHC pode não ser legível para usuários comuns (creio que este seja o seu objetivo) — Contudo, uma pessoa que tenha conhecimento do seu funcionamento pode extrair o código criado pelo software.
Em tempo, SHC quer dizer SHell script Compiler.

Download e instalação

O software de que vamos tratar aqui, foi desenvolvido por Francisco Javier R. Garcia e você vai encontrar sua versão mais atualizada aqui.
Vamos começar com o download do código fonte do programa:

wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz

Uma vez baixado, desempacote e instale:

tar xvfz shc-3.8.9.tgz
cd shc-3.8.9
make

Verifique se tudo correu bem:

./shc -v
shc parse(-f): No source file specified
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script

Crie um shell script de exemplo

Para testar, você pode usar seu próprio shell script ou pegar este aqui:

#!/bin/bash
echo -n "Quantos numeros aleatorios voce deseja gerar? "
read max
for (( start = 1; start
do
echo -e $RANDOM
done

rode o script:

$ ./alea.sh
Quantos numeros aleatorios voce deseja gerar? 3
24682
1678
491

Encriptando o seu shell script com shc

Use o comando, a seguir, para fazer o trabalho:

./shc -f alea.sh

isto deverá gerar os seguintes arquivos:

ls -l alea*.*
-rwxrw-r--. 1 user group 149 Mar 27 01:09 alea.sh
-rwx-wx--x. 1 user group 11752 Mar 27 01:12 alea.sh.x
-rw-rw-r--. 1 user group 10174 Mar 27 01:12 alea.sh.x.c

Dos quais:

  • alea.sh é o seu script original
  • alea.sh.x é o seu script em formato binário e encriptado
  • alea.sh.x.c é o código fonte do script original em linguagem C

Após transformar o código do seu script, originalmente escrito em Bash para um script em C, o shc o compila, gerando o executável alea.sh.x.
Veja como testar:

$ file alea.sh
alea.sh: Bourne-Again shell script text executable
$ file alea.sh.x
alea.sh.x: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
$ file alea.sh.x.c
alea.sh.x.c: ASCII C program text

Execute o seu script encriptado

./alea.sh.x
Quantos numeros aleatorios voce deseja gerar? 3
7489
10494
29627

Determine uma data de expiração pro seu script

Com o uso do shc, é possível evitar que o seu script seja executado após uma certa data. Se for feita a tentativa de executar um script que já tenha expirado, uma mensagem de erro será exibida na tela.
Crie um novo script, usando a opção “shc -e“, que permite a entrada de uma data de expiração (que deve ser fornecida no formato dd/mm/yyyy:

./shc -e 31/12/2011 -f alea.sh

Veja o que acontece quando alguém tenta executar um script vencido:

./alea.sh.x
./alea.sh.x: has expired!
Please contact your provider

Você pode criar a sua própria mensagem de expiração, para o caso de redistribuir o seu script para pessoas que não falem inglês, por exemplo. Use a opção -m para isto.
Divirta-se!