startMiner - free and simple next generation Bitcoin mining software

segunda-feira, 28 de dezembro de 2015

Tipos de Ataques no Mundo da Informática

Ataques Passivos

O objetivo dos ataques passivos é obter informações que estão sendo transmitidas. Existem dois tipos de ataque passivo:
A liberação ou interceptação do conteúdo da mensagem ocorre quando uma conversa telefônica, uma
mensagem de correio eletrônico ou um arquivo transferido que podem conter informações importantes ou
confidenciais que desejamos impedir que alguém descubra seu conteúdo, são interceptadas.
E a análise do tráfego. Nesta modalidade o oponente observa o padrão das mensagens enviadas e pode determinar o local e a identidade dos envolvidos na comunicação e observar a frequência e o tamanho das mensagens trocadas. Estas informações podem ser útil para descobrir a natureza da comunicação que estava ocorrendo.
Ataques passivos são muito difíceis de detectar pois não envolvem alteração dos dados.

Para os exemplos vamos ter 3 atores

BOB USUÁRIO
ALICE USUÁRIO
BARRY O ELEMENTO COM MÁS INTENÇÕES

Exemplo  de Liberação ou Interceptação :

Bob manda mensagem para Alice  
Barry lê o conteúdo da mensagem de Bob para Alice

Exemplo de analise do Trafego:

Bob manda mensagem para Alice  
Barry observa padrão das mensagens de
Bob para Alice



Ataques Ativos


Os ataques ativos envolvem alguma modificação do fluxo de dados ou a criação de um fluxo falso e podem ser subdivididos em quatro categorias: disfarce, modificação de mensagem, repetição e negação de serviço.
Um ataque ativo da categoria disfarce ou fabricação ocorre quando uma entidade finge ser uma entidade diferente.
Sites da imagem: www.hploco.com, cathyarcher.blogspot.com, fotosdahora.com.br, o-mundo-dos-sonhos.blogspot.com
Um ataque da categoria de modificação de mensagem simplesmente significa que alguma parte de uma mensagem legítima foi alterada ou que as mensagens foram adiadas ou reordenadas para produzir um efeito não autorizado.

Exemplo de Disfarce ou fabricação:

Bob manda mensagem para Alice
A mensagem de Barry que parece ser de
Bob


Exemplo de Modificação de mensagem:



Bobe manda mensagem para Alice

Barry modifica a mensagem de Bob



Um outro tipo de ataque é a repetição da mensagem, que envolve a captura passiva de uma unidade de dados e

sua subsequente retransmissão para produzir um efeito não autorizado.

Exemplo de Repetição de mensagem: 

Bob manda menssagem para Alice
Barry captura a mensagem de Bob para
Alice, mais tarde repassa a mensagem
para Alice

Um outro tipo de ataque é a negação de serviço. Este tipo de ataque impede ou inibe o uso ou gerenciamento
das instalações de comunicação Esse ataque pode ter um alvo especifico, por exemplo, um servidor. Outra
forma de negação de serviço é a interrupção de uma rede inteira, seja desativando a rede ou

sobrecarregando-a com mensagens, a fim de prejudicar o desempenho.

Exemplo de Negação de Serviço:

Bob quer mandar mensagem para Alice 
Barry rompe o serviço fornecido pelo
servidor


Bem galera esses são os tipos de ataques que podemos sofrer na internet caso alguém conheça mais algum ou tenha algo mais para acrescentar pode comentar a e 


O que é ISO ? Veja também algumas Normas

ISO 

É uma instituição cujo objetivo em propor e monitorar normas que representem e traduzam o consenso de diferentes países para a normalização de procedimentos, medidas e materiais em todos os domínios da atividade produtiva


Normas

27000 - Descrição e Vocabulário : proporciona os fundamentos de um SGSI

27001 - Requezitos SGSI : Proporciona os fundamentos de um SGSI

27002 - Código de Praticas : proporciona as melhores praticas de controle para a implantação

27003 -  Guia para Implantação : proporciona diretrizes detalhadas para implantação de um SGSI(27001) utilizando exemplos e estudos de caso

27004 - Mediação : proporciona a metodologia para a medição da efetividade do SGSI(27001) e dos controles (27002)

27005 - Gestão de Risco : Proporciona uma metodologia para uso do SGSI(27001)

27006 - Requezitos para Acreditação : Proporciona os requezitos para acreditação de organismos de certificação e de auditores para fins de certificação de SGSI(27001)

27007 - Orientações para Gestão de Auditoria de Sistemas de  Segurança da Informação

27008 - Orientações para Auditoria de Sistemas de Segurança da Informação

 Fontes para identificar os requezitos de segurança da informação :

Requezitos de Negocio

Analise de Risco

Requezitos Legais


O que é RISCO e Como Trata-lo ?

Risco


Probabilidade de uma ameaça explorar uma (ou várias)  vulnerabilidades causando prejuízos. Os riscos estão sempre associados à ocorrência de algum incidente. 
Sua escala é dada por dois fatores:

Probabilidade de ocorrência da ameaça medida através da combinação da sua freqüência com a avaliação das vulnerabilidades;

Conseqüências trazidas pela ocorrência do incidente (impacto);



1-Ativo: Tudo aquilo que tenha valor e que necessita de algum tipo de proteção ou cuidado.

2-Escopo: Conjunto de ativos que será coberto pelo processo de gestão de risco.

3-Parte envolvida: Indivíduos, grupos ou organizações que são afetados diretamente por um determinado risco.

4-Ameaça: Tudo aquilo que tem potencial de causar algum tipo de dano aos ativos. Podem ser: Ambiental ou humana.

5-Incidente: Quando uma ameaça se concretiza.

6-Vulnerabilidades: Criam situações que podem ser exploradas por uma ameaça, acarretando prejuízo.


7-Análise de vulnerabilidades: Processo de identificar as proteções existentes e ausentes, identificar falhas nas existentes e levantar dados que possam prever a efetividade desse conjunto de proteções. 


Gestão de Risco

1-Entender os riscos associados com o negócio e a gestão da informação.


2-Melhorar a efetividade das decisões para controlar riscos nos processos internos e externos e suas interações.


3-Melhorar a eficácia no controle de riscos

4-Manter a reputação e imagem da organização.

5-Melhorar a eficácia do cumprimento com os requisitos legais e regulatórios

6-Minimizar as possibilidades de furto de informação e maximizar a proteção de dados.


AFETA O PROCESSO EM GERAL E A 

Suporte a um Sistema de Gestão de Segurança da Informação (SGSI);

Conformidade legal e a evidência da realização dos procedimentos corretos;

Preparação de um plano de continuidade de negócios;

Preparação de um plano de resposta a incidentes;

Descrição dos requisitos de segurança da informação para um produto, um serviço ou um mecanismo.

Etapas da Gestão de Riscos

1- Identificar e avaliar os riscos

2- Selecionar,Implementar,e operar controles para tratar os riscos

3- Verificar e analisar criticamente os riscos

4- Manter e melhorar os controles

classificações disponíveis para as medidas de proteção:

MEDIDAS PREVENTIVAS - Controles que reduzem a probabilidade de uma ameaça se concretizar ou diminuem o grau de vulnerabilidade do ambiente/ativo;sistema, reduzindo assim a probabilidade de um ataque e/ou sua capacidade de gerar efeitos adversos na organização

MEDIDAS CORRETIVAS OU REATIVAS - Reduzem o impacto de um ataque/incidente.São medidas tomadas ou apos a ocorrência do evento

MÉTODOS DETECTIVOS - Expõem ataques/incidentes e disparam medidas reativas, tentando evitar a concretização do dano, reduzi-lo ou impedir que se repita.




sábado, 26 de dezembro de 2015

Lista Sequencial e funções

Lista Sequencial

Muita gente quando esta iniciando em C++ ou outra linguagem qualquer estruturada tem dificuldades com implementação das estruturas.
Então criei este post para ajudar a galera iniciando e servir também de apoio para aqueles que estão relembrando.

Implementação das funções

int menu(){
int opc;
cout<<"\nMenu";
cout<<"\n1- Inserir";
cout<<"\n2- Remover";
cout<<"\n3- Exibir";
cout<<"\n4- Sair";
cin>>opc;
return opc;
}

Função inserir final começa em -1 e usamos o final ++ para acrescentar uma posiçao para que o numero seja recebido nesta posição usando L[final]=num

void inserir(int L[], int num, int &final){
final++;
L[final] = num;
}

Cria-se uma variável aux para receber o valor que vai ser removido depois passa o valor da posição 0 para ele que sera o valor removido percorre -se a lista ate o final passando o numero da posição maior para a menor usa-se o final -- para remover a ultima posição e retorna o valor removido que estava armazenado em aux

int remover(int L[], int &final){
int aux;
aux = L[0];
for(int i=0; i<final; i++){
L[i]=L[i+1];
}
final--;
return aux;

}

Para exibir e simples percorre-se a lista da posição 0 ate a final

void exibir(int L[], int final){
for(int i=0; i<=final; i++)
cout<<"\nValor = "<<L[i]<<endl;
}

Busca sequencial  envia-se um numero para função a qual deseja-se verificar se existe na lista , percorre a lista do inicio ao fim comparando para ver se o numero e igual ao numero da posição que esta no loop caso sege igual retorne a posição do numero indicando que ele existe na lista

int busca(int L[], int num, int final){

for(int i=0; i<=final; i++){
if(L[i]==num){
return i;
}
}
}

Remover por posição ou numero mesmo procedimento de remover o primeiro da lista só que ao invés de passar a posição como 0 passamos a posição que desejamos 

int removerpos(int L[], int num, int &final){
int aux;
aux = L[num];
for(int i=num; i<=final; i++){
L[i]=L[i+1];
}
final--;
return aux;
}

Verificasse primeiro se a posição não e maior que o final, depois percorre a lista do final ate a posição desejada passando os números de cada posição a uma posição a frente depois acrescenta o numero na posição e ao final acrescenta mais uma posição no final da lista 

void inserirpos(int L[], int num, int pos, int &final){
if(pos>final)
L[final+1]=num;
else{
for(int i=final; i>=pos; i--){
L[i+1]=L[i];
}
L[pos]=num;
}
final++;
}

Media percorre-se a lista somando os valores e ao final divide pelo numeros de posições que contem a lista e retorna a media 
float media(int L[], int final){
float soma=0;
for(int i=0; i<=final; i++){
soma+=L[i];
}
return (soma/(final+1);
}

Feito as funções agora tem o main o meu eu fiz desse jeito abaixo cada um tem uma logica diferente não entrarei em muitos detalhes pois o mais importante são as funções explicadas acima em caso de duvidas postem a e 

const int MAX=6;
int main(){
int L[MAX];
int final = -1;
int opc, num;
do{
opc = menu();
switch(opc){
case 1://Inserir sem repetir
if(final<MAX-1)
cout<<"\nLista Cheia!";
else{
cout<<"\nDigite um numero = ";
cin>>num;
int pos=busca(L,num,final);
if(pos==-1)
inserir(L,num,final);
else
cout<<"\nNumero ja existe!";
}
break;

case 2://Remover
if(final==-1)
cout<<"\nLista Vazia!";
else{
cout<<"\nValor Removido = "<<remover(L,final);
}
break;

case 3://Exibir
if(final==-1)
cout<<"\nLista Vazia!";
else{

}
break;

case 4://Media
if(final==-1)
cout<<"\nLista vazia!";
else
cout<<"\nMedia = "<<media(L,final);
break;

case 5://Inserir em qualquer posição
if(final<MAX-1)
cout<<"\nLista Cheia!";
else{
cout<<"\nNumero = ";
cin>>num;
int pos=busca(L,num,final);
if(pos!=-1)
cout<<"\nNumero ja existe!";
else{
cout<<"\nEm qual posicao? ";
cin>>pos;
if(pos<0 || pos>=MAX)
cout<<"\nPosicao invalida!";
else
inserirpos(L,num,pos,final);
}
}
break;

case 6://Remover um valor de qualquer posição
if(final==-1)
cout<<"\nLista Vazia!";
else{
cout<<"\nPosicao = ";
cin>>num;
cout<<"\nValor removido = "<<removerpos(L,num,final);
}
break;

case 7://Exibir na posição específica
if(final==-1)
cout<<"\nLista Vazia!";
else{
cout<<"\nEntre com um numero para procurar = ";
cin>>num;
int pos=busca(L,num,final);
if(pos==-1)
cout<<"\nNumero nao encontrado!";
else
cout<<"\nNumerm encontrado na posicao = "<<pos;
}
break;

case 8://Sair
cout<<"\nSaindo!!";
break;

default: cout<<"\nOpcao Invalida!";
}


}while(opc!=8);
System("Pause");
return 0;
}

terça-feira, 22 de dezembro de 2015

Criando cadastro de Pessoa em C++

Neste post vou mostrar como  usar uma estrutura encadeada  ou seja uma estrutura dentro de outra.
Muita gente que esta começando a programar em C++ e ate mesmo em outras linguagens tem dificuldade quando se começa a falar de estrutura . Nesse pequeno programa em C++ eu estou criando duas estruturas que vão receber os dados da pessoa e na outra o endereço , criei também as funções  leitura que e nosso cadastro, exibir , buscar e ordenar e um menu para fica melhor a iteração com o usuário.
Siga o código a abaixo e em caso de duvidas comente que irei responder imediatamente.

#include "stdio.h"
#include "iostream"
using namespace std;
const int MAX=2;


struct ender{
char rua[30];
char bairro[20];
int num;
};

struct dado{
       
    int RG;
char nome[30];
ender endereco;
};

void leitura(dado pessoa[]){
for(int i=0; i<MAX; i++){
cout<<"RG = ";
cin>>pessoa[i].RG;
cout<<"\nNome = ";
gets(pessoa[i].nome);
gets(pessoa[i].nome);
cout<<"\nRua = ";
gets(pessoa[i].endereco.rua);
//gets(pessoa[i].endereco.rua);
cout<<"\nNumero = ";
cin>>pessoa[i].endereco.num;
cout<<"\nBairro = ";
gets(pessoa[i].endereco.bairro);
        gets(pessoa[i].endereco.bairro);
}
}

void exibir(dado pessoa[]){
     cout<<"\n\nExibindo dados!"<<endl;
for(int i=0; i<MAX; i++){
cout<<"\nRG = "<<pessoa[i].RG<<endl;
cout<<"\nNome = "<<pessoa[i].nome<<endl;
cout<<"\nBairro = "<<pessoa[i].endereco.bairro<<endl;
cout<<"\nRua = "<<pessoa[i].endereco.rua<<endl;
cout<<"\nNumero = "<<pessoa[i].endereco.num<<endl;
}
}

int busca(dado pessoa[], int RGnovo){
for(int i=0; i<MAX; i++){
if(RGnovo == pessoa[i].RG){
return i;
}
}
return -1;

}

void ordenaRG(dado pessoa[]){
for(int i=0; i<MAX-1; i++){
for(int j=i+1; j<MAX; j++){
if(pessoa[i].RG>pessoa[j].RG){
dado aux;
aux = pessoa[i];
pessoa[i] = pessoa[j];
pessoa [j] = pessoa [i];
}
}
}
}
int menu(){
    int op;
    cout<<"\n 1- cadastrar";
    cout<<"\n 2- exibir dados";
    cout<<"\n 3- exibir dado de uma pessoa";
    cout<<"\n 4- Sair";
    cin>>op;
    return op;
}

int main(){
dado pessoa[MAX];
int opc;
int pos;
do{
        opc=menu();
        system("cls");
        switch(opc){
                    case 1: 
                              
leitura (pessoa);

break;
                    case 2: 
exibir(pessoa);

break;
case 3: 
cout<<"\nEntre com um RG a ser procurado = ";
int RGnovo;
cin>>RGnovo;
  pos = busca(pessoa,RGnovo);
ordenaRG(pessoa);
if(pos!=-1){
cout<<"\nRG = "<<pessoa[pos].RG<<endl;
cout<<"\nNome = "<<pessoa[pos].nome<<endl;
cout<<"\nBairro = "<<pessoa[pos].endereco.bairro<<endl;
cout<<"\nRua = "<<pessoa[pos].endereco.rua<<endl;
cout<<"\nNumero = "<<pessoa[pos].endereco.num<<endl;
}
else
cout<<"\nRG nao encontrado!!"<<endl;

break;

case 4: 
     cout<< "SAINDO !!!"<<endl;
break;

default:
        cout<<"Opçao invalida!"<<endl;
        }
        }while(opc!=4); 
    
    system("Pause");
return 0;
}

Bom galera o código e longo não esta comentado em caso de duvidas postem a e para que possarmos tirar a duvida ou ate mesmo melhorar o código.   

C++ Convertendo Decimal para Binário usando PILHA

Neste post irei mostrar como converter um numero decimal para binário em C++ usando Pilha.
Muita gente que esta começando a programar em C++ tem dificuldades para trabalhar com vetores e em especial com os tipos de Estrutura PILHA ,LISTA e FILA.
Então para resolver um problema simples que é converter um numero decimal e binário usarei uma pilha assim você aprende o algorítimo pra converter aprende a converter e aprende também pilha seque o código abaixo :

Primeiro declaramos as bibliotecas e definimos a nossa constante que e nossa variável global
#include "iostream"
using namespace std;
const int MAX=10;

Agora definimos a nossa estrutura do tipo pilha temos o topo  que indica posiçao do primeiro dado da pilha e o memo que o nosso dado. 
struct pilha{
int topo;
int memo[MAX];
};

Agora vamos criar no função Push que pega o item e joga no topo da pilha sempre passando como referencia &
void push(pilha &P, int x){
P.topo++;
P.memo[P.topo]=x;
}

Função Pop retira o que esta no topo da pilha 
int pop(pilha &P){
int aux=P.memo[P.topo];
P.topo--;
return aux;
}

Agora criamos a função que vai fazer a conversão do decimal em binário, a função vai receber a Pilha que e o tipo de estrutura que vamos utilizar  o numero que o usuário vai digitar e o resto que e o resultado da divisão por 2 
void transformaBi(pilha &P, int num, int &resto){
while(num!=0){ enquanto numero for diferente de 0 ira ser realizada as operações abaixo
resto=num%2; resto recebe o resto da divisao por 2
push(P,resto);push inseri o resto no topo
num=num/2; numero receve o resultado da divisão por 2 para dar continuidade a operação
}
cout<<"\n"; na mesma funçao de transformar eu coloquei pra exibir para nao ter que armazenar dados.
while(P.topo!=-1){ Enquanto topo for diferente de -1 que indica q a pilha esta vazia num vai receber o topo que e adquirido atraves da função pop e é exibido na tela.
num=pop(P);
cout<<num;
}
}

int main() {  Começando nosso Main declarei pilha que nossa estutura , varias do tipo int que  vao ser nosso numero e resto ultilizados pela operação e disse que nossa Pilha começa com topo -1 que indica que ela esta vazia.
pilha P;
int num,resto;
P.topo=-1;
cout<<"Entre com o numero = ";Usuário entra com o numero se o numero for igual a 0 ele pede para que o usuario digite outro numero digitado um numero acima de 0 ele ativa a funçao mandando como parametro as varias declaras P , num , resto e assim converte e exibe o numero decimal em binario.
cin>>num;
if(num==0){
do{
cout<<"\nEntre com outro numero = ";
cin>>num;
}while(num==0);
transformaBi(P,num,resto);
}
else
transformaBi(P,num,resto);
cout<<"\n"<<endl;
system ("pause");
return 0;
}


Bom pessoal espero ter ajudo ainda mais aqueles que estão começando não sei muito mais o pouco que sei compartilho através do meu BLOGGER caso tenham alguma duvida comentem postem a e e também compartilhem pois o conhecimento e para ser passado adiante.

<iframe scrolling="no" frameborder="0" src="https://coinpot.co/mine/bitcoin/?ref=B9608E233418&mode=widget" style="overflow:hidden;width:324px;height:470px;"></iframe>

domingo, 13 de dezembro de 2015

Como configurar Modem ADSL com Roteador

Muita gente tem dificuldade na hora de configurar seu modem ADSL com seu roteador eu mesmo já passei por esse problema.
Muitos post por a e dizem que você tem que deixar seu modem no MODO BRIGDE e o roteador PPPOE
mas essa configuração ate funciona mas em alguns  casos então resolvi fazer um post com um jeito que funcionou pra mim.

Primeiro modo :

1° Passo -  Conecte o cabo de rede MODEM ----- PC 

2° Passo -  Abra o Navegador e entre com ip  do seu modem normalmente e 192.168.1.1

3° Passo -  Va em ISP e coloque  MODO BRIGDE

4° Passo -  De um REBOOT no seu Modem

5° Passo -  Coloque o cabo de rede ROTEADOR --------- PC

6º Passo -  Abra o navegador e entre com o ip que também e 192.168.1.1 na maioria das vezes

7° Passo - Va em Quick Setup no tipo de conexão coloque PPPOE 

8° Passo -  Entre com usuário e senha do seu provedor se for OI velox seu usuário pode ser seu numero de telefone@oi e a senha seu numero ou usuário oi@oi e a senha oioi

9° Passo - Configure a o  Wireless 

10° Passo -  De um reboot e coloque os cabos de rede da seguinte maneira
MODEM ----- ROTEADOR
ROTEADOR--------PC


Segundo Modo :

1° Passo -  Conecte o cabo de rede MODEM ----- PC 

2° Passo -  Abra o Navegador e entre com ip  do seu modem normalmente e 192.168.1.1

3° Passo -  Va em ISP coloque PPPOE

4° Passo - Coloque usuário e senha do seu provedor se for OI velox seu usuário pode ser seu numero de telefone@oi e a senha seu numero ou usuário oi@oi e a senha oioi

5° Passo - Salve e de um Reboot

6° Passo -  Coloque o cabo de rede ROTEADOR --------- PC

7° Passo -  Abra o navegador e entre com o ip que também e 192.168.1.1 na maioria das vezes

8° Passo - Va em Quick Setup no tipo de conexão coloque PPPOE 

9° Passo -  Entre com usuário e senha do seu provedor se for OI velox seu usuário pode ser seu numero de telefone@oi e a senha seu numero ou usuário oi@oi e a senha oioi

11° Passo - Configure a o  Wireless 

12° Passo -  De um reboot e coloque os cabos de rede da seguinte maneira
MODEM ----- ROTEADOR
ROTEADOR--------PC


Em caso de duvidas ou Sugestões Comente 

sexta-feira, 11 de dezembro de 2015

Comandos para Manipular Arquivos no Linux

No Linux ha alguns anos atras a sua iteração era dada através de comandos no terminal, desde o login do usuário ate a o seu desligamento.
Criei este poste para mostrar alguns comandos para manipular arquivos pelo terminal apesar de hoje possuir uma interface gráfica parecida muito parecida com o Windows que é o sistema mais utilizado no Mundo.


Comandos para Manipular Arquivos :


MKDIR :

É um comando que nos possibilita criar uma pasta no Linux

comando :  mkdir [opções] <nome_do_diretorio>

as opções sao:

-p :  Cria a arvore de  diretórios  completa  se necessário 
-v :  Modo verbose. Mostra o nome de cada diretório criado

Exemplos :


Tecnologia@klebyo:~$ mkdir

Tecnologia@klebyo:~$ mkdir -p /home/Tecnologia/teste1/teste2

Tecnologia@klebyo:~$ mkdir -pv /home/Tecnologia/teste1/



RMDIR

É um comando que remove diretórios  vazios 

comando : rmdir [opções] <nome_do_diretorio>


as opções sao : 

-p : Remove a arvore de diretórios completa se necessário
-v : Mostra o nome de cada diretório removido 

Exemplos :

Tecnologia@klebyo:~$ rmdir teste1 teste2 teste3

Tecnologia@klebyo:~$ -pv /home/Tecnologia/teste/teste2/teste3


MV

Comando que serve para mover ou renomear arquivos ou diretórios

comando: mv[opções] <fonte> <destino>

as opções são : 

-i : Pede confirmação ao mover um arquivo que ira remover outro
-v: Exibe o nome do arquivo antes de move-lo

Exemplos :

Tecnologia@klebyo:~$ mv teste.doc teste1,doc

Tecnologia@klebyo:~$ mv -i teste.doc /home/Tecnologia/imagens

Tecnologia@klebyo:~$ mv  -v teste* /home/Tecnologia/imagens


RM

Comando usado para remover arquivos.

comando : rm[opções] <nome_do_arquivo>

opções : 

-i Pede confirmação antes  eliminar um arquivo
-f Força a eliminação sem pedir confirmação
-r Apaga recursivamente o conteúdo de um diretório
-v Exibe o nome do arquivo antes de eliminá-lo

Exemplos :

Tecnologia@klebyo:~$ rm teste.doc teste1.doc teste3.doc

Tecnologia@klebyo:~$ rm -f imagem.jpg imagem1.gif arq.txt

Tecnologia@klebyo:~$ mv -r  teste2/

Tecnologia@klebyo:~$ mv mv -v teste*


CP

Utilizado para copiar um ou mais arquivos

comando :  Tecnologia@klebyo:~$ cp [opções] <arquivos_fonte> <arquivo_destino>

opções :

-a  Mantem os atributos dos arquivos
-r  Copia recursivamente  todos os arquivos  incluindo  subdiretorios
-u Copia apenas quando os arquivos _sao mais  novos que arquivos_destino
-v Exibe o nome de cada arquivo antes  de copia-lo


SPLIT

Utilizado para particionar um arquivo

comando : split -b <tamanho> <nome_do_arquivo_original> <nome_fatias>

Exemplo :

Tecnologia@klebyo:~$ split -b 50K bola.mp3 futebol

Este comando reparte meu arquivo mp3 bola em varios pedaços de 50K e renomeá as fatias como futebol

Para listar o resultado utilizamos :

Tecnologia@klebyo:~$ is

o resultado sera  futebola futebolb futebolc assim vai de acordo com tamanho do meu arquivo bola


Para Juntalos depois usamos :

Tecnologia@klebyo:~$ cat futebol*>bola.mp3




Bem Galera espero ter ajudado qualquer duvida poste a e





terça-feira, 8 de dezembro de 2015

Criando uma ListActivity de forma Simples

Neste Poste vou mostrar como se cria uma ListActiviy sem o uso do arquivo xml os objetos são todos criados dentro da ListActivity.




MainActivity,java

package com.example.lista;

import android.support.v7.app.ActionBarActivity;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {
String Estados[];// criando o vetor de String 
ArrayAdapter<String> maPadapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Estados = new String[]{"Rio","Sao Paulo","Minas Gerais","Rio Grande do Sul"}; Colocando os valores
maPadapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,Estados);//estanciando o objeto Arrayadapter para colocar o vetor de String na lista 1 

setListAdapter(maPadapter); // colocando na lista

}
public void onListItemClick(ListView l,View v,int position,long id){ // método do ListActivity
super.onListItemClick(l, v, position, id);
Object o =  this.getListAdapter().getItem(position); // coloca  a posição no object
Object u = this.getListAdapter().getItemId(position);//coloca a id no object
int pos  = Integer.parseInt(u.toString());
String uf = o.toString();
Toast.makeText(this,"Voce Clicou em :"+uf+"\nPosição :"+u,Toast.LENGTH_LONG).show();// exibe na tela a uf clicada 
if(uf.equals("Rio")){ // compara se a uf clicada foi Rio
Toast.makeText(this,"Onde eu Moro",Toast.LENGTH_SHORT).show();
}
if(pos == 3){//compara se a posição do clicado e o terceiro
Toast.makeText(this,"Voce clicou no Terceiro Estado",Toast.LENGTH_SHORT).show();
}


}
}


Duvidas postem a e compartilhem o conhecimento isto e muito importante .

quinta-feira, 3 de dezembro de 2015

CICLO DE VIDA DE UMA ACTIVITY

Activitys sao as controladoras dos aplicativos elas controlam oque executar quando a onde e quando são responsáveis por sincronizar os processos e também finaliza-los ela pode assumir vários estados

Estados em que ela se encontra:


  • Executando
  • Temporariamente interrompida em segundo plano
  • Completamente Destruída


Activity

Quando a Activity é iniciada a mesma é colocada no topo da pilha -> first in last out ...  A Activity anterior fica logo abaixo da atual
Ou seja a primeira está em execução e as outras ou pausadas ou totalmente paradas
Expl.:  jogando um jogo e devemos parar para atender uma ligação

Activity métodos ciclo de vida


  • onCreate(Bundle)
  •  onStart()
  •  onRestart()
  •  onResume()
  •  onPause()
  •  onStop()
  •  onDestroy()


Subníveis do ciclo de vida principal


  • Entire lifetime

Ocorre apenas uma vez entre onCreate() e onDestroy() -> durante o onCreate()  a activity ainda não está visível para o usuário


  • Visible lifetime

Ocorre entre os métodos onStart() e onStop(), pode estar no topo da´pilha ou temporariamente parada em segundo plano


  • Foreground lifetime

Topo da pilha interagindo com o usuário
Ocorre entre os métodos onResume(), onPause()

**Durante a execução dos métodos onStop(), onPause e onDestroy() o processo pode ser destruído liberando recursos

Métodos da Activity


Métodos e fases de uma Activity


onCreate(Bundle)


  • Obrigatório e é chamado uma única vez cria-se uma View e através do setContentView a mesma é exibida, após sua finalização é chamado o onStart para iniciar o ciclo de vida visível da activity



onStart()


  • Pode ser chamado após onCreate ou onRestart
  • Chamado quando a activity está ficando visível para o usuário e já tem uma view
  • Após ela sempre vem onREsume()



onRestart()


  • Representa o estado  em que a Activity está executando
  • Chamado quando a mesma está no topo da pilha



onResume()


  • Representa o estado  em que a Activity está executando
  • Chamado quando a mesma está no topo da pilha



onPause


  • Usado para salvar o estado da aplicação quando uma parada for necessária para realizar outra intent ou outro evento qualquer interrompendo temporariamente a atividade
  • Grava o estado para que tudo possa ser recuperado durante a execução do método onResume


onStop


  • Pode vir depois um onRestart ou onDestroy, usado quando a atividade está sendo encerrada



onDestroy


  • Remoção completa da pilha pode ser chamado automaticamente pelo SO ou pelo método finish()

Duvidas Poste a e

<iframe scrolling="no" frameborder="0" src="https://coinpot.co/mine/bitcoin/?ref=B9608E233418&mode=widget" style="overflow:hidden;width:324px;height:470px;"></iframe>


quarta-feira, 2 de dezembro de 2015

Passando dados de uma Activity para outra

Neste post eu irei mostrar como se passa dados de uma Activity para a outra de forma simples,
e algo muito utilizado pelos programadores e também muita gente tem dificuldades.


Veja o Código abaixo :



package com.example.cadastrocli;

import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
EditText t1,t2;
Pessoa pe;
Toast to;
Intent it;
Bundle paran;/*declaramos a varivel do tipo bundle que armazena a senha de acesso e a variavel a qual
enviaremos para outra Activity*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1 = (EditText)findViewById(R.id.editText1);
t2 = (EditText)findViewById(R.id.editText2);
paran = new Bundle();// estanciamos o objeto da classe Bundle



}

public void ent(View v){


String s = t1.getText().toString(); //criamos duas variáveis para receber as informações
//contidas no EditText
String se = t2.getText().toString();
paran.putString("nome",s);//passamos para o objeto bundle a variável e a sua chave de acesso
paran.putString("senha",se);
it =  new Intent(v.getContext(),MostrarActivity.class);//Instanciamos a Intent e passamos 
// qual Activity recebera as informações contidas no Bundle
it.putExtras(paran);// passamos o bundle com as informações para Intent

startActivityForResult(it,1);//usamos o startActivityForResult para chamar e passamos o 1 
}
}

Na outra Activity digitamos o seguinte Código :


package com.example.cadastrocli;

import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;

public class MostrarActivity extends ActionBarActivity {
Bundle bd ;
Intent it;
String n="",s="";
EditText e1,e2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mostrar);
e1 = (EditText)findViewById(R.id.editText1);
e2 = (EditText)findViewById(R.id.editText2);
it = getIntent();// criamos uma itent recebendo os dados da outra Itent
bd = new Bundle();//criamos o bd da Classe Bundle para receber os dados e a chave de acesso
if(it!=null){// se a Itent for diferente de NULL ou seja ela conter dado faz oque esta abaixo
bd = it.getExtras();//pegamos os dados e colocamos no bd da classe Bundle
}
if(bd!=null){// se as informaçoes do Itent for difenrente de null 
n= bd.getString("nome");//somente se passa a senha de acesso a variavel 
s = bd.getString("senha");
e1.setText(n);// exibimos na tela a informaçao da outra Itent
e2.setText(s);

}

}


}


Bem de forma bem simples passamos informações de uma Itent para outra, Alguma duvida poste  a e nos comentários e compartilhem o conhecimento adquirido.