Pages

segunda-feira, 20 de agosto de 2012

Bit de paridade

Paridade (em telecomunicações) refere-se ao número de bits '1' de um determinado número binário. Ao final de uma sequência binária há um dígito binário de paridade. Uma de suas utilizades é a de detectar erros nas transmissões visto que se for anexado um bit de paridade extra a cada byte transmitido, será detectado um erro se a paridade do byte não coincidir com o bit de paridade.

Existem dois tipos, se o número de bits '1' for par será paridade par, caso contrário, será ímpar.

Codificação RZ - RNZ

Codificação (em processamento digital de sinais) significa a modificação de características de um sinal afim de torná-lo mais adequado para uma aplicação específica. Como exemplo a transmissão ou armazenamento de dados.

Podemos dividir em 3, as técnicas de codificação:

RNZ (Non Return to Zero): Existem apenas dois níveis de tensão ou corrente, representados por 0 e 1. É a forma mais simples de codificação onde um bit 1 será codificado sob a forma de uma tensão elevada e um bit 0 sob a forma de tensão baixa ou nula.




RZ (Return to Zero): É semelhante ao RNZ, porém os 0 e 1 são representados por uma alteração do estado da tensão ou corrent. O valor 1 é representado pela passagem de uma tensão ou corrente baixa/nula para um tensão ou corrente elevada. O valor 0 é o contrário, ou seja, passa-se de uma tensão ou corrente elevada para outra baixa/nula. O nível de tensão retorna sempre ao nível zero após uma transição provocada pelos dados a transmitir (a meio da transmissão do bit).



FONTE: http://pt.wikipedia.org/wiki/Codifica%C3%A7%C3%A3o

domingo, 12 de agosto de 2012

Elementos Básicos - Comunicação de dados

Na última aula de Comunicação de Dados o professor Luis Antônio Schneiders usou uma apresentação para auxiliá-lo na explicação, achei muito bem resumido, dando uma visão geral dos elementos básicos da comunicação estou postando aqui:


CARACTERÍSTICAS DE EFICIÊNCIA
  • Entrega(delivery):
    • O sistema deve entregar os dados ao destinatário correto;
    • Os dados devem ser recebidos somente pelo dispositivo ou usuário de destino;
  • Confiabilidade:
    • O sistema deve garantir a entrega dos dados;
    • Dados modificados ou corrompidos não são úteis;
  • Tempo de atraso:
    • O sistema deve entregaros dados em um tempo finito e predeterminado;
    • Dados entregues tardiamente são pouco úteis
      • transmissões multimidia ,como video, os atrasos não são desejáveis, de modo que eles devem ser entregues praticamente no mesmo instante em que foram produzidos, isto é, sem atrasos significativos;
    • A variação no atraso pode ser tão prejudicial quanto o próprio atraso;

COMPONENTES DA COMUNICAÇÃO
  • Mensagem:
    • É a informação a ser transmitida. Pode ser constituída de texto, números, figuras, áudio e video - ou qualquer combinação destes;
  • Mensagem codificada (sinais):
    • É a informação preparada para o meio físico e protocolos necessários;
  • Equipamento Terminador de Dados (ETD):
    • É o dispositivo que envia e/ou recebe a mensagem de dados. Pode ser um computador, uma estação de trabalho, um telefone, uma câmera de vídeo e assim por diante.
  • Equipamento Comunicador de Dados (ECD):
    • É o dispositivo que permite comunicação de longa distância (comutadores, modens, gateways, etc.);
  • Meio:
    • É o caminho físico por onde viaja uma mensagem originada e dirigida ao receptor;
  • Protocolo:
    • É um conjunto de regras que governa a comunicação de dados. Ele representa um acordo entre os dispositivos que se comunicam;
CRÉDITOS: Luis Antônio Schneiders

Gateway

Gateway (ponde de ligação), é uma máquina intermediária geralmente destinada a interligar redes, separar domínios de colisão, ou traduzir protocolos. Exemplos de gateways podem ser os routers (roteadores) e firewalls, já que ambos servem de intermediários entre o utilizador e a rede. Um proxy também pode ser interpretado como um gateway (embora em outro nível, aquele da camada em que opera), já que serve de intermediário também.

FONTE: Wikipédia

Comutador


Comutador, conhecido por muitos pelo seu nome em inglês: switch. É uma ponte multiportas, um elemento ativo que age no nivel 2 do modelo OSI. 
O Comutador faz uma analise nas tramas que chegam às suas portas de entrada e filtra os dados a fim de as comutar unicamente para as portas adequadas. De modo que o comutador permite combinar as propriedades da ponte em matéria de filtragem e do concentrador em matéria de conexão.
Essa filtragem consiste em dirigir os fluxos de dados para as máquinas mais adequadas, em função de certo elementos presentesnos pacotes de dados.

segunda-feira, 6 de agosto de 2012

XAMPP

Pacote de programas open source para desenvolvimento, criado e mantido pelo grupo ApacheFriends. Possui versões para Windows (WAMPP) e Linux (LAMPP). As demais letras são o acrônimo de Apache, MySQL, PHP e Perl, mas há outros softwares além destes.

XML

XML: Extensible Markup Linguage (linguagem de marcação extensível). Recomendação da W3C para gerar linguagens de marcação para propósitos específicos.

O que são Filtros e validadores?

Filtros 
Transformam valores de entrada, por meio da remoção ou troca de caracteres dentro de um valor. O objetivo é "normalizar" valores de entrada até que eles atendam a um formato esperado. Por exemplo, se um tipo string de dígitos numéricos é necessário, e o valor de entrada é "19anos", então por ser razoável transformar o valor para "19".

Validadores 
Verificam valores de entrada contra critérios e avisam se eles passaram no teste ou não. O valor não é alterado, mas o teste pode falhar. Por exemplo, se um tipo string deve parecer um endereço de e-mail, e o valor é "19anos", então ele é considerado inválido.

No Zend Framework, tanto os filtros quanto os validadores são definidos a partir de classes pertencentes ao componente Zend_Filter. Isso quer dizer que você não pode utilizar funções PHP de forma direta. Mas você pode criar seus próprios filtros e validadores a partir da interface Zend_Filter_Interface, que utilizem funções do PHP ou definidas por você mesmo.

Trecho extraído do livro Zend Framework - Desenvolvendo em PHP 5 orientado a objetos com MVC.

domingo, 5 de agosto de 2012

Diferenças entre LAN, WAN e MAN

Eu tenho um questionário para responder para a aula de Comunicação de Dados com o professor Luis Antônio Schneiders, daí me surgiu essa dúvida, o que é MAN? Então dei uma pesquisada e estou postando as conclusões:

Se tratando de área de cobertura, podemos dividir as redes de computadores em três categorias:

LAN ("Local Area Network", traduz-se Rede de Área Local): cobre uma área relativamente pequena, como por exemplo um escritório ou uma empresa, não possuindo um número muito elevado de entidades. Geralmente redes de domínio privado.

WAN ("Wide Area Network", traduz-se Rede de Área Alargada): uma rede que abrange uma grande área, estados, países, o mundo todo. Difere-se da LAN pelo seu porte e estrutura. Geralmente são redes públicas.

E a que eu realmente desconhecia:

MAN ("Metropolitan Area Network", traduz-se Rede de Área Metropolitana): é uma rede que liga computadores de uma área maior que a LAN e menor que a WAN. Geralmente é a ligação de várias LANs, como o próprio nome sugere poderia-se dizer que abrange uma cidade ou uma região e podem ser redes privadas ou públicas. E pode estar conectada a uma WAN.

Créditos:

sexta-feira, 3 de agosto de 2012

Mapeamento Objeto-Relacional

Técnica para acessar dados de tabelas de banco de dados relacionais como objetos, dentro de uma aplicação orientada a objetos.

Linguagem de scripting

Linguagem que controla uma aplicação.

Legibilidade

Capacidade que tem um código de ser compreendido.

L10n

Localização. Refere-se a técnicas para determinar a localidade onde a aplicação está sendo utilizada e adotar os padrões da região, como símbolos monetários, formatos de data e outros.

JSON

JavaScript Object Notation (notação de objeto para JavaScript). Permite a transmissão de dados no formato de objetos JavaScript.

Java

Linguagem de programação totalmente orientada a objetos, utiliza uma máquina virtual que interpreta um código intermediário chamado de "bytecode".

I18n

Internacionalização. Refere-se à técnicas para preparar aplicações a se adaptarem a vários idiomas por meio de identificação do ambiente ou de configuração do usuário, sem que seja necessário construir uma versão para cada língua.

IDE

Acrônimo de Integrated Development (ambiente de desenvolvimento integrado). Refere-se ao uso combinado de várias ferramentas em um único software, de modo a facilitar o trabalho do desenvolvedor.

HTTP

Acrônimo de HyperText Transfer Protocol (protocolo de transferência de hipertexto). Protocolo da Internet que permite a comunicação entre computadores baseado em uma arquitetura de requisição e resposta.

Herança

Técnica de reutilização de código característica da orientação a objetos, na qual uma classe utiliza atributos e métodos definidos em outra classe, a classe-mãe.

EasyEclipse

Subprojeto do Eclipse, focado em criar IDEs para ambientes de desenvolvimento específico de Java e para outras linguagens de programação.

DLL

Dynamic Linkage Library (biblioteca de ligação dinâmica). Arquivo nativo do Windows, utilizado para armazenar funções que serão compartilhadas por várias aplicações e carregado em memória somente quando necessário.

Design Pattern

Padrão de projeto. (Teoricamente) a melhor solução para um problema genérico, em um ambiente orientado a objetos. Existem vários padrões de projeto publicados, que já se tornaram referência e são utilizados em inúmeros projetos de software.

DBA

Acrônimo de DataBase Administrator (administrador de banco de dados). responsável por criar e manter as bases de dados em uma organização.

CSS

Acrônimo de Cascading Style Sheets (folhas de estilo em cascata). Tecnologia web que permite a definição de formatação para elementos HTML no próprio documento ou em arquivos separados (.css).

Componente

O termo componente é utilizado para denominar vários elementos diferentes na informática, mas no caso do desenvolvimento, refere-se a algo que pode ser utilizado como parte de uma aplicação maior, suprindo-a com uma ou mais funcionalidades.

Controlador

Classe responsável por capturar e interpretar as requisições do cliente.

CMS

Acrônimo de Content Management System (sistema de gerenciamento de conteúdo). Tipo de aplicação focada na distribuição de conteúdos diferenciados por perfil de usuário, os quais são criados, editados e publicados obedecendo a um fluxo de trabalho bem-definido (workflow).

CDRL

Repositório internacional de dados para edições I18n.

Autenticação

Refere-se ao processo que garante que algo é o que diz ser. Um exemplo seria o login de um site onde o usuário deve informar os dados necessários para provar que realmente é o usuário que diz ser. Geralmente nome e senha.

Framework

Coleção de códigos-fonte, classes, funções, técnicas e metodologias que facilitam o desenvolvimento de novos softwares.

Atributo

Sinônimo de propriedade e equivalente à variável da programação estruturada. É um tipo de dado que pode ser armazenado por um objeto. Sua definição é feita na classe.

API

Acrônimo de Application Programming Interface. Refere-se à infra-estrutura disponível para criar programas (aplicações) em um determinado ambiente. O ambiente geralmente é um software básico, como um sistema operacional.

Apache

A Apache Fundation possui vários projetos em software-livre referentes a servidores de publicação de páginas web. Neste livro, o nome Apache refere-se especificamente a um desses projetos, o servidor web Apache.

Escopo

Escopo é o limite dentro do qual os recursos de um sistema podem ser utilizados. Na programação seria o trecho do código onde uma variável tem sua validade. Um exemplo com PHP:

 public function indexAction() {
        $view = Zend_Registry::get('view'); /** O escopo da variável $view começa aqui */
        $session = Zend_Registry::get('session');
        if (isset($session->usuario)) {

            $usuario = $session->usuario; /** O escopo da variável $usuário começa aqui */
            $view->assign('usuario', $usuario);

            $view->assign('header', 'admin/adminheader.phtml');
            $view->assign('body', 'admin/bodyadmin.phtml');
            $view->assign('footer', 'admin/adminfooter.phtml');
            $this->_response->setBody($view->render('default.phtml'));
            /** O escopo da variável $usuário termina aqui */
        } else {
            $this->_redirect('/admin/login/');
        }
     /** O escopo da variável $view termina aqui */
    }

XSS

XSS - Cross Site Scripting é um tipo de ataque que ocorre quando uma aplicação web aceita sem nenhum tipo de de tratamento dados de usuários. 

URL

URL: Uniform Resource Locator (localizador de recurso uniforme). Representa um endereço na internet.

SQL

SQL: Structured Query Language (linguagem de consulta estruturada). Linguagem de pesquisa declarativa para banco de dados relacionais, criada pela IBM, que acabou se tornando padrão para a maioria dos bancos atualmente utilizados.

PHP

Atualmente PHP é o acrônimo de Personal Home Page Hypertext Preprocessor.

Feeds

Lista de itens que contém título, resumo e data de publicação do item no site respectivo.

AJAX

Acrônimo de Asynchronous Javascript and XML. Refere-se a uma tecnologia que permite o envio de requisições assíncronas ao servidor, por meio de um objeto chamado XmlHttpRequest, disponível nos navegadores de internet mais utilizados. O uso do Ajax visa diminuir o tamanho das requisições HTTP e evitar a atualização de toda a oágina HTML.

ActiveRecord

É um padrão de projeto, criado por Martin Fowler, que especifica uma técnica para tratar tabelas de banco de dados relacionais como classes, enquanto os registros são os objetos.

O que é XSS - Cross Site Scripting

XSS - Cross Site Scripting é um tipo de ataque que ocorre quando uma aplicação web aceita sem nenhum tipo de de tratamento dados de usuários. Esse descuido acaba deixando o sistema vulnerável a um possível atacante que pode coletar dados ou burlar métodos de validação a áreas restritas. Isso pode ser feito por injeção de códigos como JavaScript, SQL, ActiveX ou outro.
Uma solução para este sério problema seria tratar sempre os dados recebidos de clientes tanto de formulários quanto da URL. Um exemplo básico de como fazer isso você encontra no link abaixo:

Evitando Ataques por Tipagem Dinâmica


O PHP é muito flexível, não há a necessidade de declarar o tipo da variável ao iniciá-la. Uma variável pode ser iniciada em qualquer parte do código podendo atingir diversos tipos dentro do seu escopo. Então seria interessante tipar (fazer um cast) dos dados recebidos do usuário por exemplo os recebidos do formulário de login. Por exemplo:


<?php
$id= $_GET['id'];
?> 


Dessa forma, a variável $id está recebendo os dados direto do GET sem tratamento algum, então não poderiamos nos assegurar do tipo dessa variável. O correto seria tratar esses dados, assim:


<?php
$codigo = (int)$_GET['codigo'];
?>

Dessa forma fizemos um cast podendo assegurar que o tipo da variável $id será um inteiro.
Se não fizessemos isto um atacante poderia inserir uma string contendo comandos SQL ou JavaScript, forçando o sistema a executá-los, comprometendo fortemente a segurança do sistema do banco de dados.