Capítulo 2 - Vivendo como terráqueo

Depois de muita pesquisa, Solrac chega a uma conclusão:

- Não tem jeito, eu vou passar pelo menos um quinto da minha vida  - o equivalente a três séculos terráqueos - preso nesse planeta.
- Então vou viver como um terráqueo. Vou vender algumas coisas, cursar uma faculdade e quem sabe consigo desenvolver algo que me tire desse planeta.

 Ele juntou alguns metais de valor (pelo menos para os terráqueos) que estavam em sua mochila, debaixo de uma toalha - itém indispensável segundo o guia do mochileiro das galáxias – e levou até um senhor no centro da cidade, que trabalhava com uma placa em volta do seu corpo com o inscrito “Compra-se ouro”. Ele foi encaminhado até uma joalheria onde conseguiu um bom dinheiro pelos seus metais.

Solrac estava decidido em cursar algo que envolvesse linguagens de programação terráquea. Então realizou sua matrícula em uma universidade localizada em um bairro de italianos na Zona Leste de São Paulo. Não foi nada fácil comprovar que ele já havia concluído o ensino médio, já que a universidade não aceitava histórico escolar intergalático.

Capítulo 1 - Solrac preso no planeta Terra


Durante suas férias, Solrac, um jovem alienígena que gostava de assustar camponeses e mendigos (desses que ninguém acredita), decide conhecer um planeta pouco visitado, chamado Terra, para poder se divertir um pouco sabe? Coisas que jovens alienígenas gostam de fazer. A Terra não é um planeta que eles costumam visitar com frequência, devido a dificuldade de comunicação.

Tome nota:
O AANT (Associação Alienígena de Normas Técnicas) em conjunto com a AATEL (Agência Alienígena de Telecomunicações) definiram que quaisquer tipo de transmissão, sejam elas via celulares, tablets, ou qualquer outro tipo de aparelho, sejam realizadas através de ondas de radiação ultravioleta. Na Terra, a ozonosfera torna praticamente impossível se comunicar com planetas e ou galáxias vizinhas. Por esse motivo muitos terráqueos não acreditam na existência de alienígenas.

 Durante sua viagem Solrac estava indo para uma pequena cidade na região metropolitana de São Paulo, ele estava procurando um local onde pudesse desenhar formas geométricas, com a finalidade de causar alguma repercussão na mídia. Em uma manobra mal executada, perdeu o controle e colidiu com uma arvore.

- Droga! A nave está destruída. Como vou sair desse fim de Universo? 
- Ah! Minha mãe vai me matar, eu disse que só iria comprar algumas joias em Saturno.
- E meu pai? Qual será a reação dele ao saber que dei perda total em sua nave.

A única forma de Solrac sair da Terra, era aguardar a vinda de uma outra espaçonave que poderia demorar séculos terráqueos para chegar. Dada essas condições, decide então conhecer um pouco mais sobre o planeta em que estava. Após um série de adaptações que ele realizou em seu computador, ele conseguiu finalmente acessar a internet terráquea.

Após uma longa pesquisa no Google sobre tecnologia terráquea, ele chegou a um termo que até então era desconhecido, o Open Source. Ao ler o artigo no Wikipédia ele não entendeu como podem existir pessoas que simplesmente disponibilizam o trabalho de uma vida. Em seu planeta não existia software livre, muito menos gratuito, por essa razão software livre era algo insano para ele.

Desacreditando no que havia lido, ele decide então baixar um Linux, para ver como aquilo funcionava. Após usar o Linux ditribution chooser (http://www.zegeniestudios.net/ldc/index.php?lang=pt-br) baixou o Ubuntu para ver como se sairia. Para sua surpresa o Ubuntu reconheceu perfeitamente os drivers de seu computador, o que o espantou, já que o mesmo foi feito com tecnologia alienígena.

- Não é possível! Como algo tão bom assim pode ser de graça?

Após a descoberta do Linux, ele começou a pesquisar mais a respeito de software livre e linguagens de programação, ficou apaixonado com a simplicidade do Python. E foi ali, no seu terminal do Ubuntu que ele fez o seu primeiro “Hello World” em linguagem terráquea.

Conjuntos Numéricos - Parte II

Creditos: sxc.hu
Aqui estamos na segunda parte da matéria de conjuntos numéricos. No post anterior dei a definição de conjunto e elemento. Também vimos quando e como utilizar o ∈ (pertence) e o ∉ (não pertence). Falei também sobre intervalos, que podem ser definidos como fechados, abertos e semi-abertos. Nesse post desejo abordar sobre ⊂ (contido) e ⊄ (não contido) além disso vamos falar um pouco de união e intersecção.







Subconjunto


Em subconjuntos iremos estudar se um conjunto A por exemplo é subconjunto do conjunto B, para que isso possa ser verdade todos os elementos de A deve estar presentes em B. Vamos ver um exemplo para ilustrar melhor a situação:


A = { 7 , 8 , 9 }
B = { 6 , 7 , 8 , 9 , 10 }


Logo:
A ⊂ B ou seja A está contido em B, pois os todos os elementos de A pertencem a B, lembrando que a concavidade do símbolo sempre estará apontando para o conjunto com maior número de elementos, logo A ⊂ B é equivalente a B ⊃ A.

Intervalos:
Com intervalos a regra de subconjuntos é aplicada da mesma forma. Exemplos:

[ 1 , 3 [ ⊂ [ 1 , 3 ]
[ 2 , 6 ] ⊄ [ 1 , 6 [

União


Dado os conjuntos:

A = { 1 , 2 , 3 }
B = { 3 , 4 , 5 }

A união dos dois será equivalente a:

A ∪ B = { 1 , 2 , 3 , 4 , 5}

É extremamente importante lembrar-se que em conjuntos não podemos repetir elementos.

Intervalos:

Fonte: Laifi

 Intersecção


A intersecção tem um propósito semelhante ao da união, porém o resultado intersecção de dois conjuntos será um conjunto com os elementos que existem em ambos os conjuntos. Exemplo:

Dado os conjuntos:

A = { 1 , 2 , 3 }
B = { 2 , 3 , 4 }

A intersecção dos dois conjuntos será:

A ∩ B = { 2 , 3 }

Observações:

Se A ⊂ B o resultado da união será B e o da intersecção será A.

Vejamos:

A = { 7 , 8 , 9 }
B = { 6 , 7 , 8 , 9 , 10 }

A ∪ B = B = { 6 , 7 , 8 , 9 , 10 }
 A ∩ B = A = { 7 , 8 , 9 }


Conjuntos Numéricos - Parte I

Crédito sxc.hu
Farei um pequeno resumo sobre conjunto numéricos,
irei começar pelos conjuntos com menos elementos.









Conjunto dos números naturais:
Podemos defini-lo como um número inteiro, ou seja, sem casa decimais, positivo o zero também não faz parte.
N = { 1 , 2 , 3 , 4 , 5 , ...}

Conjunto dos números inteiros:
São todos os números sem casas decimais.
I = { ... , -3 , -2 , -1 , 0 , 1 , 2 , 3 , ...}

Conjunto dos números reais:
São todos os números inteiros e os com casas decimais.
R = {... , -0.0000001 , ... , 0 , ... , -0.0000001}

Definindo conjuntos:
Todo conjunto é representado por uma letra maiúscula, seus elementos ficam dentro de colchetes e são separados por vírgula. Vejamos um exemplo:

1) O conjunto C tem como elementos as letras do nome Blog do Carlos, então: C = {b,g,c,a,r,l,o,s}
2) O conjunto X tem como elementos os números 5, 9, 3 e 1, então: X = {5,9,3,1}




Elemento: é um componente de um conjunto.
Conjunto: é uma coleção de elementos.

Para não ficar tão abstrato, vejamos o seguintes exemplos:

1) 3  ∈ I, o elemento 3 pertence  ao conjunto dos números inteiros.
2) -3 ∉ {0,1,2}, o elemento -3 não pertence ao conjunto dos números inteiros.

Nos exemplos, 3 e -3 são elementos, I e {0,1,2} são conjuntos.




Intervalos:

Fonte: UFRJ

São todos os números reais entre dois extremos. Por exemplo:
A = [1,3], podemos escreve-lo também da seguinte forma A = {x ∈ R / 1 ≤ x ≤ 3 }



No intervalo A não estão representado só os números 1 e 3, mas sim infinitos números entre 1 e 3 inclusive o 1 e o 3, vamos ver agora, elementos que pertençam e que não pertençam ao intervalo A: 1 ∈ A; 1.0000000001 ∈ A; 3 ∈ A; 2.333333 ∈ A; 0.99999 ∉ A; 3.000001 ∉ A


Tipos de intervalos:

1 - Intervalo Fechado:

Quando os dois extremos pertencem ao conjunto. Representamos da seguinte forma:
A = [1 , 3] ou A = { x ∈ R / 1 ≤ x ≤ 3 }


2 - Intervalo Aberto: 
Quando os dois extremos não pertencem ao conjunto. Exemplo:
A = ]1,3[  ou A = { x ∈ R / 1 < x < 3}
Então o A é um intervalo de 1 a 3, porém, 1 e 3 não fazem parte, ou seja, 1.0001 ∈ A mas 1 ∉ A o mesmo é válido para o 3,  2.9999 ∈ A mas 3 ∉ A.

3 - Intervalo Semi-aberto
Quando 1 dos dois extremos não pertencem ao conjunto. Vejamos os dois exemplos:

A = [1,3[ ou A = { x ∈ R / 1 ≤ x < 3}
B = ]1,3] ou B = { x ∈ R / 1 < x ≤ 3 }


Por enquanto é só, na parte dois falarei um pouco sobre teoria dos conjuntos.

Python: Números Primos

Faz algum tempo que eu me prometi criar um script para calcular e procurar números primos, usei o algorítimo de Marin Mersenne e desenvolvi o script em python.

Clique aqui para fazer o download do script.








Segue imagens do script:


Iniciando o programa:
$ python prime.py

Tela de menu
Iniciando com debug e salvar números em arquivo:
$ python prime.py debug
$ python prime.py save
Ambos:
$ python prime.py debug save

Calculando dias úteis com php

Crédito sxc.hu
Essa é uma função que desenvolvi segundo a necessidade de um amigo,  ela executa o calculo de dias úteis em determinado mês, para o script ficar completo só é necessário a criação de uma tabela no banco de dados onde serão registrados os feriados, se eu conseguir um tempinho no final de semana, termino o script, e aproveito para ensinar como criar uma tabela, inserir e editar um registro.



/**
 * Função que calcula dias úteis no mês
 * 
 * @autor Carlos Maniero 
 */


function dias_uteis($mes,$ano){
  
  $uteis = 0;
  // Obtém o número de dias no mês 
  // (http://php.net/manual/en/function.cal-days-in-month.php)
  $dias_no_mes = cal_days_in_month(CAL_GREGORIAN, $mes, $ano); 

  for($dia = 1; $dia <= $dias_no_mes; $dia++){

    // Aqui você pode verifica se tem feriado
    // ----------------------------------------
    // Obtém o timestamp
    // (http://php.net/manual/pt_BR/function.mktime.php)
    $timestamp = mktime(0, 0, 0, $mes, $dia, $ano);
    $semana    = date("N", $timestamp);

    if($semana < 6) $uteis++;

  }

  return $uteis;

}


// Invocando a função
echo dias_uteis(date('m'),date('Y')); // Recebe dias úteis do mês atual
echo dias_uteis(1,2012); // Recebe dias úteis do mês 1 de 2012

Simplificando a validação em PHP

Crédito: sxc.hu
Nada é tão chato quanto fazer aquela validação de formulário não é mesmo? E se eu disser que há uma maneira simples de se fazer isso em PHP, isso mesmo, nada de sofrimento!

Estou falando da função filter_var() vamos a um exemplo de utilização da mesma:






// Validação de email
 if(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)){
   echo "Email Válido!";
 }


// Validação de url
 if(filter_var('http://carlosmaniero.blogspot.com', FILTER_VALIDATE_URL)){
   echo "Url Válido!";
 }


Espero que seja um dica útil para vocês, as constantes usadas por essa função pode ser encontrada nesse link: http://php.net/manual/en/filter.constants.php