Mostrando postagens com marcador Clube de Revista. Mostrar todas as postagens
Mostrando postagens com marcador Clube de Revista. Mostrar todas as postagens

15 de março de 2009

Orientação a Eventos versus Orientação a Aspectos

Paradigma Orientado a Eventos
Diferentemente de paradigmas como Estruturado e Funcional, o paradigma Orientado a Eventos está mais para uma técnica de programação do que para um paradigma propriamente dito. A Wikipedia define este paradigma como aquele em que o fluxo do programa é determinado por eventos.

Nota: Entenda-se por evento, qualquer interação do usuário com o programa, como pressionar de alguma tecla ou movimentação no mouse, além de mensagens de outros programas ou threads.

A mesma fonte ainda define o paradigma como uma técnica de arquitetura onde a aplicação possui uma iteração principal, que possui duas áreas bem definidas: a detecção de eventos e o tratamento dos mesmos.

Para termos uma noção do que isto significa, tomemos o seguinte exemplo escrito em Python e PyGTK, que cria uma janela com um botão, que se fecha quando este botão é clicado.

#!/usr/bin/env python


"""Implements simple operations on PyGTK.

Hello World is a simple Python program which
uses PyGTK to show a window with a Hello World
button. This window closes when button is clicked.

It's an adaptation of the original code in 
PyGTK tutorial

"""


import pygtk
pygtk.require('2.0')
import gtk


class HelloWorld:
    
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        
        self.window.connect("delete_event", self.delete_event)
        self.window.connect("destroy", self.destroy)
        
        self.window.set_border_width(10)
        self.button = gtk.Button("Hello World")
        
        self.button.connect("clicked", self.hello, None)
        self.button.connect_object("clicked", gtk.Widget.destroy, self.window)
        
        self.window.add(self.button)
        
        self.button.show()
        self.window.show()

    def run(self):
        gtk.main()
    
    def destroy(self, widget, data=None):
        print "destroy signal occurred"
        gtk.main_quit()
    
    def delete_event(self, widget, event, data=None):
        print "delete event occurred"
        return False

    def hello(self, widget, data=None):
        print "Hello World"


# 
# Main
# 

if __name__ == "__main__":
    hello = HelloWorld()
    hello.run()
Listagem 1. Exemplo de código orientado a eventos.

Na listagem 1, temos como exemplo de loop principal, a função run(). Nas linhas 26, 27, 32 e 33, temos a ligação dos eventos (i.e., signals) com os seus respectivos tratadores (i.e., callbacks). Estes tratadores são definidos na forma de funções e quando um evento é detectado em um componente do programa, o mesmo procura no seu código pelo tratador específico daquele evento, redirecionando o fluxo de execução para o mesmo, caso exista. No caso, quando o botão for clicado, por exemplo, o fluxo de execução do programa será desviado para o método hello() (linha 32), que imprimirá uma mensagem na tela. Repare que este mesmo botão possui outro evento associado a ele (linha 33), que executa o método de destruição da janela. Assim, ao clicar no botão, uma mensagem é impressa e a janela se fecha.

Vantagem e Desvantagem
Uma vantagem da programação orientada a eventos é que o conceito de eventos facilita a criação e manipulação de interfaces gráficas para programas. A desvantagem é que o entendimento deste paradigma é complicado para iniciantes, pois a maioria está acostumada a programas sequenciais, com uma única entrada e uma única saída.

Programação Orientada a Aspectos
A Programação Orientada a Aspectos (POA) objetiva separar semanticamente o código, como forma de torná-lo mais legível e fácil de se manter que nos outros paradigmas. Ao se programar Orientado a Objetos, o programador tenta encapsular várias características comuns dentro de classes, que são instanciadas ao longo do programa, criando os objetos. Já na na POA, o objetivo é aglomerar essas chamadas, de forma com que todos os aspectos do programa sejam codificados juntos.

Este é um paradigma relativamente novo e os seus conceitos ainda não estão amadurecidos como os da OO, por exemplo. Por isso não há tanto suporte para ele quanto em outros paradigmas. Apesar disso, todas as fontes pesquisadas apontam que este paradigma está em pleno desenvolvimento e que seu futuro é promissor. A grande desvantagem apontada para este paradigma é a depuração do código, que segundo a Wikipedia é complicada. Já a vantagem é a organização do código, que facilita a manutenção do software.

A linguagem orientada a aspectos mais usada atualmente é a AspectJ, que foi criada pelo próprio desenvolvedor  do paradigma, Gregor Kiczales e sua equipe na Xerox PARC. Recomendo a leitura dos textos sobre o paradigma, na seção Leitura Recomendada, para mais detalhes sobre o assunto e exemplos de códigos e ferramentas para este tipo de programação.

Conclusão
Na Programação Orientada a Eventos (POE), o programador tem a preocupação de quando algo vai acontecer. Este acontecimento pode se dar a qualquer momento ou pode até não acontecer, mas o programa tem de estar preparado para ele. Para isso, existem os conceitos de signals e callbacks, que detectam o acontecimento de um evento e tomam as medidas necessárias para tratá-lo. Isto ajuda muito na confecção de interfaces gráficas, pois nunca se sabe qual será a ação do usuário, além de possibilitar que o programa torne-se mais flexível, adaptando-se à maioria dos usuários.

A POA apresenta um conceito relativamente novo e promissor para codificação de softwares, mas o preço dessa juventude é a falta de maturidade do paradigma e a falta de ferramentas (linguagens, componentes e IDEs).




Leitura Recomendada
  • Event-Driven Programming – Um bom tutorial em inglês
  • Wikipedia – Página da Wikipedia sobre o assunto, em inglês
  • Dextra – Entendendo a Programação Orientada a Aspectos
  • UFSC – Programação Orientada a Aspectos

Clube de Revista
  • Anterior – Paradigma Funcional
  • Próximo – ?

25 de janeiro de 2009

Programação Estruturada versus Programação Orientada a Objetos


A Wikipédia define a programação imperativa como um paradigma que descreve a computação como ações (comandos) e estados (variáveis) de um programa. O nome do paradigma, Imperativo, está ligado ao tempo verbal imperativo, onde o programador diz ao computador: faça isso, depois isso, depois aquilo... Este paradigma de programação se destaca pela simplicidade, uma vez que todo ser humano, ao se programar, o faz imperativamente, baseado na ideia de ações e estados, quase como um programa de computador.

Programação Estruturada
Em linguagens puramente imperativas, como Assembly, é muito fácil o programador criar códigos de difícil leitura, pois esse tipo de linguagem possui o que se chama de saltos (jumps) em sua estrutura. Estes saltos funcionam da seguinte forma: o programador define uma marcação (label) no código e depois, a partir de qualquer parte do programa, ele pode executar um desvio de fluxo de execução (salto) para aquela marcação. Pode ser que à primeira vista isso não tenha problema, contudo, na depuração do código, o programador fica em apuros com tantas marcações e saltos, pois isso dificulta o entendimento do fluxo de execução do programa.

Neste contexto, surge a programação estruturada, como uma forma de possibilitar que o programador tenha maior controle sobre sobre o fluxo de execução do programa. Para isso, segundo a Wikipédia, qualquer programa pode ser reduzido a 3 estruturas:
  1. Estruturas de sequência: Onde uma tarefa é executada após a outra, linearmente.
  2. Estruturas de decisão: Onde, a partir de um teste lógico, determinado trecho de código é excutado, ou não.
  3. Estruturas de iteração: Onde, a partir de um teste lógico, determinado trecho de código é repetido por um número finito de vezes.

No trecho de código Python a seguir, podemos reparar o emprego das três estruturas citadas. Nas linhas 1, 2 e 3 temos um exemplo de uma estrutura de sequência. Cada linha é executada após a anterior, começando da primeira. Entre as linhas 5 e 9, temos uma estrutura de decisão, exemplificada pelo comando if. Na linha 5 este comando executa um teste lógico. Caso o valor seja verdadeiro, as linhas 6 e 7 serão executadas. Caso contrário, o fluxo se desvia para a linha 8, que executará a linha 9. Nas linhas 6 e 7, temos uma estrutura de iteração. Na linha 6 está declarada a estrutura, que regula quantas vezes a linha 7 será executada.

print "Tabuada!"
a = int(raw_input("Entre com a tabuada que deseja [0-9]: "))
print  # Apenas para deixar uma linha em branco.

if 0 <= a <= 9:
    for i in range(10):
        print "%d x %d = %.2d" % (a, i, a * i)
else:
    print "Entre ZERO e NOVE!"
Listagem 1. Exemplo de código estruturado.

Vantagens
  • Provê um melhor controle sobre o fluxo de execução do código, quando comparada com a programação imperativa.
  • É fácil de se entender, sendo amplamente usada em cursos introdutórios de programação.

Desvantagens
  • Ainda se foca em como a tarefa deve ser feita e não em o que deve ser feito.
  • Tende a gerar códigos confusos, onde tratamento dos dados são misturados com o comportamento do programa.

Programação Orientada a Objetos
Uma das desvantagens da programação estruturada, como foi citado, é a tendência em gerar códigos onde tratamentos de dados são misturados com o comportamento do programa. Além disso, caso o programador quisesse criar um programa semelhante a um que já tivesse feito, era complicado pegar determinadas partes deste programa já pronto e trazer para o novo projeto, uma vez que eram necessárias, na maior parte das vezes, realizar mudanças substanciais no código.

Neste cenário surgiu a Programação Orientada a Objetos (POO – lê-se Pê-Ó-Ó). Ela foi criada para tentar simular o mundo real dentro do computador e para isso utiliza objetos. Desta forma, fica a cargo do programador modelar objetos e a interação entre eles. Essa modelagem leva em consideração alguns conceitos, dentre os principais, pode-se citar:
  • Classe: É o molde para criar objetos. Possui todas as especificações de um grupo deles. Ex.: Os objetos Eddie Vedder e Kurt Cobain, apesar de serem diferentes, derivam da mesma classe Pessoa
  • Atributos: Definem características de objetos, e.g., a classe Pessoa tem os Atributos Nome, Endereço, Telefone e Sexo.
  • Métodos: Definem o comportamento dos objetos, tendo seus nomes normalmente definidos por verbos. Para a classe Pessoa, por exemplo, podem haver os métodos Comprar, Vender e Alugar.
  • Abstração: É a habilidade de se concentrar nos principais aspectos de um grupo de objetos, em vez de se preocupar com as suas especificações. Ex.: Para a classe Pessoa são definidas as principais características comuns à maioria das pessoas, sem que haja preocupação especial com objetos muito específicos e, por conseguinte, pouco comuns (e.g., pessoas com dedos a mais ou a menos).
  • Encapsulamento: É a habilidade de esconder de outros objetos, as características intrínsecas de um dado objeto. Toda a comunicação inter objetos deve ser realizada via métodos. Um objeto não deve ser capaz de acessar, e tampouco alterar, atributos de outro objeto diretamente.
  • Associação: É a habilidade pela qual um objeto utiliza recursos de outro. Por exemplo: Corda é parte de um Violão.
  • Herança: É a capacidade de criar subclasses a partir de uma superclasse. Essas subclasses herdam, então, todas as características da superclasse. É normalmente definida como uma associação do tipo "é um", e.g., Cliente é uma Pessoa.
  • Polimorfismo: É o princípio pelo qual uma subclasse sobrescreve um comportamento (método) herdado de sua superclasse. Por exemplo, a classe Pessoa implementa o método Comprar, mas a classe Cliente, derivada da classe Pessoa, precisa de algo mais específico, envolvendo mais dados. Então a classe Cliente sobrescreve o método Comprar, tornando-o mais específico.

Estes são alguns conceitos da POO. Sugiro a leitura da página da Sun, na seção de leituras recomendadas, no rodapé deste texto, para mais informações sobre eles. No código abaixo temos implementadas algumas das características da POO, que foram citadas. É um código bastante simples, sem aplicação direta em problemas reais. Contudo, serve como exemplo de implementação de Classes, Atributos, Herança, Polimorfismo e instanciação de objetos.

# -*- coding: utf8 -*-

class Pessoa:
    def __init__(self, nome_, endereco_, telefone_, sexo_):
        self.__nome = nome_
        self.__endereco = endereco_
        self.__telefone = telefone_
        self.__sexo = sexo_
    
    def comprar(self):
        pass
    
    def vender(self):
        pass
    
    def alugar(self):
        pass

class Cliente(Pessoa):
    def __init__(self, nome_, endereco_, telefone_, sexo_):
        Pessoa.__init__(self, nome_, endereco_, telefone_, sexo_)
    
    def comprar(self, nome):
        print "Sobrecarregando o método comprar()"

#
# Main
# 

eddie = Pessoa("Eddie Vedder", "Seatle", "555-6332", "M")
kurt = Pessoa("Kurt Cobain", "Paradise", "555-disk_god", "M")
Listagem 2. Exemplo de código Orientado a Objetos.

Vantagens
  • Provê uma melhor organização do código.
  • Contribui para o reaproveitamento de código.

Desvantagens
  • Não possui o mesmo desempenho de códigos estruturados similares.
  • Seus conceitos são de difícil compreensão se comparados aos conceitos da Programação estruturada.

Conclusão
Foram apresentados os principais conceitos da Programação Estruturada e da Orientada a Objetos. Ambos paradigmas são herdeiros do Paradigma Imperativo, mas proveem novas funções, criando novas abordagens para o mesmo.

O Paradigma Estruturado é o que domina atualmente cursos introdutórios de programação, mas é o Paradigma Orientado a Objetos que é a estrela da festa em sistemas maiores. Dificilmente encontra-se um grande projeto de software sem a utilização de POO, sendo este, requisito fundamental para profissionais da área de programação. Em suma, cada paradigma tem suas vantagens e desvantagens, sendo indicados para fins específicos. Enquanto que no Estruturado temos simplicidade de termos e facilidade de aprendizagem, que o levam para as primeiras aulas de programação, no Orientado a Objetos, temos mais recursos e melhores organização e reaproveitamento de código, colocando em um novo nível, os paradigmas Imperativo e Estruturado, dos quais ele herda características.




Leituras Recomendadas
  • UNICAMP – Página da Faculdade de Engenharia Elétrica da UNICAMP sobre Programação Estruturada.
  • Guia do Hardware – Programação Orientada a Objetos.
  • Sun – Object-Oriented Programming Concepts

Clube de Revista
  • Anterior – Programação Imperativa versus Programação Declarativa
  • Próximo – Paradigma Funcional

28 de dezembro de 2008

O Windows e os Usuários Experientes


Eis um assunto que sempre gera discussões acaloradas e muita controvérsia. Há um tempo eu li um artigo do Ricardo Bánffy, cujo título era: O Windows está pronto para o usuário experiente? O Linux está pronto para o desktop do usuário comum. Apesar de ser um texto antigo (2006), creio que o assunto ainda continua em voga, por isso resolvi colocá-lo para discussão.

O Ricardo começa o artigo dizendo que é usuário de Linux há alguns anos e que estava usando o Windows XP há alguns dias. Ele ressalta que já está acostumado com o comportamento e as ferramentas do Linux, o que o faz se sentir estranho no sistema da Microsoft.

Idioma
Se você tem um Windows em português, não há como passá-lo para inglês. A única saída para fazer isso é reinstalando o sistema. Além disso, o autor cita que, se as versões são diferentes neste nível, quer dizer que eles têm que gerar um Windows para cada idioma suportado, o que implica em patches de correção para cada idioma, o que se estende para toda a família de soluções (?) da Microsoft, como o Office e o Money. Em contrapartida, no Linux, basta alterar o valor de uma variável de ambiente, para que todo o sistema mude de idioma, visto que a implementação é independente da linguagem.

Creio que neste ponto, o Linux está anos luz à frente do Windows. Acho ridículo ter que reinstalar um sistema, para ter outro idioma. Isso sem contar que alguns diretórios mudam de nome, de acordo com o idioma em uso, e.g., Arquivos de Programas vira Program Files em uma versão em inglês do Windows. Isso dificulta a criação de programas para estes sistemas e confunde a cabeça do usuário.


Protetores de Tela
O autor avança, argumentando que os protetores de tela que acompanham o Windows são feios e sem graça e os que acompanham o Linux são mais bem trabalhados e o usuário normalmente não vai precisar instalar novos protetores.

Atualmente, os protetores de tela assumiram um papel muito mais decorativo do que aquele de outrora, quando realmente protegiam as telas de ficarem manchadas. Hoje em dia é ainda aconselhável desligar o monitor, do que ficar na proteção de tela, tendo em vista o aumento da vida útil do monitor e a economia de energia, mas verdade seja dita: se você quer protetores de tela bonitos e criativos, veja os do Linux!


Clipboard
O autor alega que pouca coisa mudou desde que a Microsoft copiou esta funcionalidade da Apple. Já o Linux é apresentado como um solução milagrosa, pois que usa o botão do meio do mouse para copiar.

Não acho que esta inovação do Linux seja tão grande e que seja um ponto tão crítico do Windows. Salvo o fato da Microsoft não ter apresentado qualquer inovação neste sentido, nestes anos que vem liderando o mercado de sistemas operacionais, não dá para amaldiçoar a empresa. Mas que o Linux apresentou uma solução e a MS não, isso é fato!


Terminal
Janela de Comandos, como Bánffy cita, é um aplicativo que foi deixado de lado (aparentemente) pela Microsoft. Quem já usou um aplicativo semelhante no Linux, sabe o que é isso. O Windows carence muito de recursos neste sentido. Já o Linux vem abarrotado de ferramentas, como sed, AWK e MTR, fora os comandos embutidos e suas opções de utilização que estendem seus usos...

Mensageiros Instantâneos
O Windows Live Messenger (WLM) é apresentado como um messenger com recursos emo (perdão aos miguxos, o termo não foi pejorativo), como winks, informação sobre o que o usuário está ouvindo e emoticons, muitos deles! Contudo, ele falha em não permitir mais de uma conta aberta ao mesmo tempo e em não suportar outros protocolos, que não o MSN. Por isso, usuários de Windows têm de ficar instalando um software para cada rede que utilizar. Ao contrário, no Linux, o Pidgin, é multi-protocolo e permite conversações limpas e com alguns recursos emo, como emoticons. Nada tão extravagante quanto o WLM, mas longe de ser simples.

Mais um ponto para o Linux, na minha avaliação. Muita gente pode dizer que o Pidgin, também está disponível para o Windows, assim como outros mensageiros do Linux e isto é verdade. Só que estes mensageiros surgiram no Linux e só existem no Windows, porque a comunidade que os desenvolve acredita na liberdade.


Instalação de Programas
Um ponto que não pode ser deixado de lado neste tipo de texto é com relação à instalação de programas. Bánffy cita que a instalação de programas no Windows tem vários níveis, partindo daquele onde você sabe onde o que instalar e onde encontrá-lo, até quando você pirateia um programa. Além disso, muitos programas do Windows necessitam que você tenha permissões de administrador para executá-lo, o que é totalmente reprovável em questões de segurança. Já no Linux, basta abrir o gerenciador de pacotes, buscar pelo programa e mandar instalar.

É engraçado como as coisas mudam, quando não se evolui. Quando comecei no Linux, em 2005, o gerenciamento de programas no Linux era temido. Atualmente, eu considero este gerenciamento melhor que o do Windows e do OS X, da Apple.


Internet Explorer
O Internet Explorer (IE) é um parceiro fiel do Windows e o artigo original o expõe, apontando falhas na inovação, quando comparado ao Firefox. Por muito tempo o IE se limitou a exibir as páginas da Internet, enquanto que o Firefox e outros navegadores como o Opera, procuravam invovar, agregando funcionalidades úteis aos seus usuários, o que tornaria melhor a exploração da rede mundial de computadores.

Para mim, não tem mais volta, o Firefox superou em muito o IE e não dá para virar o jogo instalando uma barrinha do Google ou do MSN. O Firefox tem bases melhores, recursos melhores, enfim, proporciona uma melhor experiência de navegação que o IE e respeita os padrões da W3C.


Leitores de emails
Bánffy cita que o Outlook da Microsoft acompanha, tanto o Windows, quanto o Office e nenhuma das duas implementações lhe satisfazem.

O Linux possui o Evolution e o Thunderbird. Ambos famosos e com usuários fiéis, mas nunca os utilizei. Seja qual for o meu sistema, prefiro visualizar os meus emails via Web, no browser mesmo. Como usuário do GMail, estou muito satisfeito e não pretendo mudar. Já quanto a leitores de emails, é importante configurá-los de forma segura. Conheço algumas pessoas que configuraram o Outlook para executar automaticamente anexos e contraíram vários vírus por isso.


Segurança
No texto original, o autor expõe que usar Windows é viver com medo, pois o firewall que acompanha o sistema é simples demais para as milhares de pragas virtuais existentes. Ele ainda cita que uma máquina Windows recém instalada leva poucos minutos para ser invadida, reforçando a sua teoria de que é necessário instalar ferramentas adicionais de segurança no sistema.

O Linux não é perfeito, assim como nenhum software o é. Mas o Windows leva isso muito a sério. Já é costume, ao instalar uma máquina Windows, instalar um antivírus, pois o sistema não aguenta sozinho por muito tempo. Este artigo da Linux-Watch, exemplifica bem o meu pensamento: administradores devem encarar a segurança como um processo, não como um estado. Um sistema Linux bem administrado, com regras rígidas de segurança, dificilmente será invadido. Mas para se fazer o mesmo no Windows, sem utilizar softwares de terceiros, é complicado...


Qualquer texto que argumente sobre esta disputa, é prato cheio para discussões e comentários apimentados. Tais textos pipocam na Internet, mas este em especial chamou a minha atenção, por apresentar vários tópicos, do ponto de vista do usuário comum. Nessa mesma linha, o autor ainda criou mais dois outros textos, que eu recomendo a leitura. São eles: Vivendo no Windows e Vivendo no Windows 2.

Acredito que, tanto o Windows, quanto o Linux têm muito a evoluir, pois, como já foi exposto, não existe software perfeito. Contudo, o Linux (sistema como um todo, não apenas o Kernel), vem se mostrando um software em constante desenvolvimento, buscando melhorar a cada nova versão, que normalmente sai a cada 6 meses (e.g., Ubuntu). Talvez seja justamente por isso que o Linux conseguiu se tornar um sistema de fácil utilização, pronto para o usuário final. Em contrapartida, o Windows carece de ferramentas administrativas e da consistência que administradores procuram em ambientes de produção. O Linux se espelhou no Windows para tornar-se palpável para os usuários finais. Talvez o Windows devesse fazer o mesmo, para os usuários avançados.


Leituras Recomendadas

Clube de Revista
  • Anterior – Internet via Energia Elétrica
  • Próxima – Programação Imperativa versus Programação Declarativa

7 de dezembro de 2008

Televisão Digital


Um assunto que está em voga no mundo da tecnologia, no Brasil, é a Televisão Digital. Esta nova tecnologia vem mudando os conceitos sobre televisão por onde passa, seja nos aspectos mais técnicos, como transmissão e modulação ou nos mais óbvios, como qualidade do sinal.

A TV Digital (DTV Digital Television) entrou oficialmente no ar (Brasil), em 2 de dezembro de 2007 e mesmo antes deste lançamento houve um pouco de polêmica sobre o padrão de transmissão a ser adotado. Ao final, as autoridades responsáveis optaram pelo padrão japonês (ISDB Integrated Services Digital Broadcast), que não necessitaria pagamento de royalties, transmitiria o sinal para dispositivos móveis, funcionaria melhor em dispositivos em alta velocidade entre outras vantagens. A idéia então foi de incrementar esta tecnologia japonesa, criando um novo padrão, derivado do oriental, que foi chamado de SBTVD (Sistema Brasileiro de Televisão Digital).

Algumas características técnicas do SBTVD:
  • Utiliza o CODEC de vídeo MPEG-4 (H.264)
  • Para áudio, usa o CODEC MPEG-2
  • Utiliza o software livre (nacional) Ginga, como Middleware
  • Possui todas as especificações nativas da DTV: 16:9 de aspecto e 1080 linhas de resolução

A TV Analógica
Desde sua concepção, a TV utiliza o formato analógico para a transmissão do sinal. Ela recebe o nome analógico, pois utiliza modulação de ondas para transportar áudio e vídeo. O grande problema disso é que o sinal recebido não possui a qualidade daquele que foi gerado e isto se agrava, ao levarmos em consideração que a maioria (senão todas) das emissoras de TV já utilizam tecnologias digitais para geração da imagem. Isto significa que imagem e áudio são gerados no formato digital, mas perdem sua qualidade na transferência, que é feita de forma analógica.

Pelo fato da transmissão ser feita de forma analógica, o sinal torna-se altamente sensível a interferências, criando problemas como a famosa imagem fantasma.

Isso me faz lembrar há alguns anos, quando meu pai ficava mexendo na antena e minha mãe ficava na frente da televisão, para avisar quando a imagem teria ficado boa. Quem nunca passou por isso? Na TV Digital não há imagens distorcidas ou fantasmas. Ou o sinal chega com 100% de qualidade, ou não chega.


Além disso, a TV Analógica não possui previsão para multiprogramação ou interatividade, dois recursos presentes na DTV.


Equipamento Necessário
Não há a necessidade de se comprar um novo televisor para aproveitar a transmissão da TV Digital. Contudo, televisores comuns não são capazes de exibir toda a definição que chega até eles.

Para entender isso, precisamos saber que a qualidade das imagens exibidas são medidas pelas linhas horizontais nos televisores. Chegue bem perto da sua TV ou monitor e você verá que há vários quadrinhos, que são chamados de pixels. Os pixels, dispostos na tela, formam uma espécie de grade, onde o número de pixels na vertical, dá a quantidade de linhas. Na prática, temos várias quantidades de linhas pré-definidas, sendo que as principais estão listadas na tabela abaixo:


480i SDTV Qualidade semelhante à TV analógica
720p HDTV High Definition Television
1080i ou 1080p Full HD A maior resolução do mercado

Nota: O i e p junto com a quantidade de linhas, indicam entrelaçado ou progressivo.


Desta forma, pode-se utilizar uma TV comum para assistir a uma transmissão digital, mas somente se o aparelho de TV for Full HD, é que o espectador poderá desfrutar de toda a qualidade de imagem provida pela tecnologia.

Apesar da TV Full HD não ser obrigatória para se assistir a transmissão digital, um aparelho chamado Set-top Box será necessário para traduzir o sinal recebido para o televisor. Esta necessidade se dá pelo fato de que a maioria das TVs de última geração focam-se apenas em exibir a imagem, deixando que outros aparelhos cuidem da geração das mesmas. Na TV analógica, é comum plugar a antena direto na TV. Na TV Digital deve-se plugar a antena no Set-top Box e este na TV (a menos que a TV já possua um Set-top Box embutido).

A principal função do Set-top Box é a de preparar o sinal recebido para exibição na TV. Contudo, ele é peça chave na tão esperada interatividade e pode possuir recursos extras, como possibilidade de gravação de programas e multiprogramação. Assim, a diferença de preços pode indicar funções que um Set-top Box possui a mais que outro, ficando por conta do usuário definir suas necessidades, comparando o Custo X Benefício de cada equipamento.

O último componente necessário para a recepção do sinal de TV Digital é uma antena UHF, que pode ser interna ou externa. Com estes três equipamentos é possível captar o sinal de TV Digital, caso ele esteja disponível na sua região.

Interação
Este é um dos recursos mais aguardados, associado à DTV. À partir da interação, o telespectador deixa o seu papel passivo e passa a realmente interagir com a programação que está assistindo. Na verdade, este recurso já existia mesmo na TV Analógica (lembra do Você Decide, da Rede Globo?), mas o meio pelo qual a interação era feita, não podia ser o mesmo daquele por onde o sinal chegava. Isto, pois não havia previsão para este recurso na arquitetura da TV Analógica, o que forçava a utilização de outros meios, como Telefone, Internet ou SMS.

Com o telespectador tendo a possibilidade de interagir com os canais, o fluxo de informação passa a fluir nos dois sentidos (Emissora <---> Telespectador), em vez de em um só. Isso pode dar fim aos números 0800 para votar em pesquisas de emissoras e permitir que sites de venda de produtos, como o Shoptime.com, realizem vendas sem obrigar o usuário a ligar para eles ou a acessar o site: tudo seria feito com o controle remoto! Obviamente isto depende de suporte por parte do Set-top Box.

Imagine-se vendo um jogo de futebol e poder votar em enquetes sobre o melhor jogador da partida, ter acesso às fichas dos jogadores, estatísticas do jogo e novos ângulos de câmeras? A TV Digital torna isso possível!

Impacto na Sociedade
A DTV promete mudar a forma de se assistir TV. Se o telespectador dispuser de um Set-top Box com o recurso de gravação de programas, ele poderá deixar o aparelho programado para gravar o seu programa favorito, possibilitando que o assista quando achar melhor. Isso sem contar que a TV poderá ser sintonizada por aparelhos como smartphones, celulares e notebooks. Pode ser o fim da sala de TV nas casas.

Contudo, talvez o que cause mais impacto sejam os recursos como interatividade e multicanais (poderão haver pelo menos 4, de acordo com matéria do IDG Now). Deverá haver uma adaptação das emissoras para este novo formato de transmissão, com essas novas tecnologias, para que não haja perda de audiência. Além disso, cuidados maiores deverão ser tomados com detalhes como cenários e maquiagem, visto que a melhor qualidade da imagem permite que os telespectadores percebam muito mais detalhes que antes.

Há muitos anos a TV não recebia um avanço tão grande quanto este provido pela TV Digital. Talvez o último tenha sido a transmissão a cores, que começou no Brasil em 1962. De fato, este é um novo paradigma, que tende a mudar a forma como as pessoas assistem televisão e talvez seja o contrapeso que este meio de comunicação precisava para fazer frente ao constante avanço da Internet. No meio de toda essa revolução, encontram-se os cidadãos brasileiros, que só tendem a ganhar muito com esta tecnologia.



Leituras Recomendadas

Clube de Revista

16 de novembro de 2008

IEEE 802.16


Introdução
Grosso modo, o IEEE 802.16 é para a topologia de rede MAN (Metropolitan Area Network), o que o IEEE 802.11 é para a topologia LAN (Local Area Network).

Não sabe o que é o IEEE 802.11? Leia este texto.


Também conhecido como WMAN (WirelessMAN) ou WiMAX (Worldwide Interoperability for Microwave Access), o IEEE 802.16 é um padrão que começou a ser desenvolvido em 1999, para distribuição de sinal de rede de computadores em uma área metropolitana, como dentro de uma cidade, por exemplo. Traçando mais um paralelo com o IEEE 802.11, onde há a Wi-Fi Alliance que visa manter o padrão compatível entre diversos produtos, no IEEE 802.16 há o WiMAX Forum, que possui responsabilidades similares.




Detalhamento
De acordo com esta matéria do site UOL Tecnologia, o WiMAX foi projetado para atender uma área de 50km de raio, trabalhando a 75Mbps (em condições ideais). Isto torna este padrão propício para distribuição do sinal de rede dentro de uma cidade ou em áreas onde meios cabeados não são viáveis.

Este padrão ainda se assemelha com o Wi-Fi pelo fato de nomear os seus sub padrões adicionando uma letra na frente do mesmo. Destes sub padrões, o IEEE 802.16d (a.k.a. IEEE 802.16-2004) e o IEEE 802.16e (a.k.a. IEEE 802.16-2005) são os mais famosos. O primeiro é também conhecido como Fixed WiMAX, pois não há suporte para mobilidade (troca de uma estação transmissora para outra "on the fly"). Já o segundo implementa essa mobilidade e por isso é conhecido como Mobile WiMAX.

Na camada física, o WiMAX começou transmitindo dados entre 10 e 66GHz, mas com o IEEE 802.16-2004, esta faixa de frequência mudou para 2 a 11GHz (como forma de aproximação com o Wi-Fi), com a modulação sendo feita por OFDM (Orthogonal Frequency-Division Multiplexing). Essa modulação mudou na especificação de 2005 (IEEE 802.16-2005), quando o padrão SOFDMA (Scalable Orthogonal Frequency-Division Multiple Access) foi adotado. As versões mais avançadas do WiMAX ainda utilizam a tecnologia de múltiplas antenas, MIMO (Multiple-Input Multiple-Output Comunications), para transferência de dados, o que traz benefícios como melhor cobertura, menor consumo de energia e maior eficiência na largura de banda.

Diferentemente do Wi-Fi, o WiMAX não almeja ser uma tecnologia para uso administrativo de usuários finais. No Wi-Fi é comum vermos pessoas com roteadores sem fio, configurando suas próprias redes. Isso não deve acontecer no WiMAX, que deve ser gerenciado por empresas prestadoras de serviço. Uma prova disso é que os desenvolvedores deste padrão utilizam comunicação em full-duplex, o que não ocorre no Wi-Fi, para que não haja aumento nos preços dos dispositivos. O WiMAX ainda provê serviços para edifícios, ou seja, a partir de um sinal recebido, espalhá-lo para vários computadores (o WiMAX contempla isso desde sua concepção).
Segurança
De acordo com este trabalho de alunos da UFRJ, o WiMAX especifica uma subcamada de segurança logo abaixo da camada MAC. Esta é chamada pela CISCO de MAC Privacy Sublayer, como mostra a figura 2.

Figura 2 . Primeiras camadas da Pilha de Procolos WiMAX.

A função desta camada de segurança é fornecer privacidade (através de criptografia) às estações clientes e proteger as estações base de acessos não autorizados a seus serviços (através de protocolo de administração de chaves, de métodos de autenticação baseados em certificados digitais, e de criptografia).

Aplicabilidade
Como já exposto neste texto, o WiMAX pode ser usado para distribuição do sinal de rede dentro de uma área metropolitana (justificando sua topologia: MAN) e para se acessar locais remotos, onde não há viabilidade de conexão através de cabos.

Além disso, outras aplicações para este padrão seriam, por exemplo: interligação de pontos de acesso Wi-FI, telefonia celular (em concorrência com padrões como GSM e CDMA – sendo considerada uma tecnologia 2G, 3G ou até mesmo 4G),
Curiosidade: segundo a Wikipédia, a tecnologia WiMAX foi usada em Aceh, Indonésia, após a tsumami que ocorreu em dezembro de 2004. De acordo com a fonte, toda a infraestrutura de comunicação havia sido destruída (à excessão dos rádio amadores) e não havia outra forma dos sobreviventes se comunicarem com o resto do mundo. Assim, o WiMAX foi usado para restabelecer esta conexão. A fonte ainda cita o uso da tecnologia após o furacão Katrina, pela Intel, em colaboração com os orgãos estadunidenses FCC e FEMA.


Conclusão
Diferentemente do Wi-Fi, que visa substituir as LANs tradicionais, cabeadas, o WiMAX tem uma aplicabilidade muito maior, e.g., como tecnologia de transporte de dados em celulares. A própria Wikipédia, em uma página de comparação de protocolos de transmissão de dados sem fio, coloca o IEEE 802.16-2005 lado a lado com tecnologias usadas em celulares, como a tecnologia 3G usada pela Vivo no Brasil, HSDPA (High-Speed Downlink Packet Access).

Além disso, o WiMAX tem potencial para ser mais uma ferramenta a favor da inclusão digital, já que seria possível distribuir o sinal de Internet ligando instituições de ensino e cobrindo toda uma cidade (como o projeto Cidade Digital, que está sendo implantado na cidade onde eu resido atualmente, Barbacena).

Tudo isso torna o WiMAX uma tecnologia promissora e que pode criar um novo paradigma para conectividade. Olho nele!



Leituras Recomendadas

Clube de Revista

1 de novembro de 2008

Clube de Revista


Na empresa onde trabalho atualmente (área de saúde), há uma reunião mensal chamada Clube de Revista. Nesta reunião, um dos membros (o presidente do clube) escolhe um artigo da área médica e um membro do clube para apresentá-lo. Então é enviada uma cópia do artigo para cada participante, para que as discussões sejam feitas em um nível melhor (como na apresentação de uma monografia). No dia da apresentação, o responsável pela mesma tem 15 minutos para explicar o assunto e o grupo tem mais 15 minutos para discussão sobre o tema.

Desde que tomei conhecimento deste projeto, achei a idéia pra lá de interessante, pois incentivava os participantes a se manterem atualizados e ajudava os mesmos a se familiarizarem com apresentações, discussões e críticas. Assim, tive a idéia de criar um clube semelhante, voltado para a informática, mas antes de colocar a minha idéia em prática, havia algumas questões que eu teria que definir:
  1. Quem iria participar?
  2. Onde poderíamos fazer as apresentações?
  3. Qual seria a melhor data do mês para fazermos a apresentação?
  4. Onde buscaríamos conteúdo para ser discutido?

Quanto à primeira questão, seria um pouco complicado encontrar amigos responsáveis e comprometidos e que, de quebra, entendessem de computação. Isto, porque a maioria dos meus companheiros de cursos e faculdade, ou não gostavam tanto de computação, ou não ligavam para projetos que estavam ligados diretamente com aumento de suas rendas. O local para apresentações seria fácil: poderia ser na minha própria casa. A data já era outro problema. Não é fácil marcar um dia em que todos podem participar, já que alguns nomes que eu tinha em mente estavam ocupados a semana toda durante a noite (faculdade) e nos finais de semana, sempre aparece algo para fazer e seria comum a desculpa de uma viagem ou festa, para não participar. Quanto ao conteúdo, poderíamos buscar temas da atualidade, monografias, tutoriais, projetos, enfim qualquer trabalho ligado à informática, para compor os nossos assuntos.

Fiquei alguns dias com essas questões na cabeça, até que o blog me veio à cabeça. Em vez de fazermos apresentações pessoalmente, cada participante poderia ter um blog. Então o responsável postaria sobre o assunto que deveríamos discutir e as outras participações dar-se-iam via comentários. Dessa forma, poderíamos manter os temas discutidos arquivados em cada blog e, em datas propícias, poderíamos nos reunir pessoalmente para trocar idéias sobre os temas discutidos. Seria um grupo de estudos via Internet, um grupo de estudos 2.0, um tipo de EaD!

Com isso em mente, fiz um pequeno regulamento para o clube, que incluía objetivo, escopo de assuntos, requisitos para participação, como realizar a participação (direitos e deveres), frequência de postagens, votações (em caso de impasse nas decisões sobre o rumo do clube) e eventualidades que poderiam acontecer para qualquer participante. O texto pode ser conferido na íntegra a partir deste link (download do arquivo em PDF).

Então eu já tinha em mãos todo o funcionamento esperado do clube de revista. Faltavam os outros participantes. Entrei em contato com um amigo que havia feito estágio e curso técnico comigo na EAFB, Zé Mauro (Maurim), já que tínhamos muitos assuntos de interesse comum. Como bons mineiros, marcamos de ir para um bar beber até cair para conversarmos. Lá, eu apresentei a idéia para ele e ela foi aceita de imediato. Tentamos pensar em algum conhecido poderia querer participar do projeto, mas não conseguimos ninguém. Então resolvemos começar o clube e deixar possíveis inclusões para o futuro.

Assim, o maurim criou o Informação com Diversão, seu blog pessoal e dia 26/10/2008, eu tive a honra de abrir o clube com a postagem IEEE 802.11. O texto apresentou as redes sem fio padrão IEEE 802.11 e contou com uma discussão bastante produtiva, que estendeu o tema (isso sem contar com as discussões que não foram feitas via blog).

Pela [pouca] experiência de até então, a idéia está sendo bem aproveitada e estamos conseguindo atingir o objetivo de nos manter atualizados e ao mesmos tempo praticar escrita, pesquisa, aceitação de outros pontos de vista e análise crítica sobre determinado assunto.

A minha opinião é que o futuro desta idéia é próspero e estou bastante animado com isso! Comprometimento não faltará! Espero que o Clube de Revista traga bons frutos para os seus participantes diretos (autores e comentaristas) e indiretos (leitores).

Então, até o dia 09 02!



Observação: Esta é uma postagem extraordinária do Clube.

Clube de Revista

26 de outubro de 2008

IEEE 802.11


O IEEE 802.11 é o padrão do IEEE (Institute of Electrical and Electronic Engineers – Instituto de Engenheiros Elétricos e Eletrônicos) para redes locais sem fio (WLAN, Wireless Local Area Netwoks), que foi iniciado no ano de 1997.

O IEEE (lê-se Í-Três-É) é uma organização composta por cientistas, engenheiros e estudantes, que desenvolve padrões para a indústria. Esta organização foi a responsável por criar o padrão para conexão de redes locais sem o uso de cabos e este padrão recebeu o código 802.11. O 802 refere-se a uma série de padrões para redes LAN e WAN (Wide Area Networks). Já o 11 é o subpadrão que designa redes sem fio (o padrão Ethernet baseado em LANs cabeadas, por exemplo, é o 802.3).

Em 1999 um grupo de empresas se uniu em torno do protocolo IEEE 802.11 para que o mesmo se tornasse padrão para interligação de redes locais sem o uso de cabos e dessa união surgiu a Wi-Fi Alliance (não há um consenso sobre o significado do termo Wi-Fi, sendo que o mais aceito é que este seria um acrônimo para Wireless Fidelity). Na data de escrita deste texto, há várias empresas de renome fazendo parte desta aliança, como Apple, Microsoft, Sony, Cisco e Nintendo. A lista completa das empresas podem ser vistas no site da associação.

Apesar desta nomenclatura parecer bastante descritiva, há várias formas de implementação destes subpadrões. Por isso, o IEEE designa uma letra para cada tipo de implementação. No caso do padrão 802.11, os padrões mais usados são A, B, G e N, que serão discriminados em seguida.



IEEE 802.11a
Lançado em 1999, este foi o primeiro padrão que começou a ser desenvolvido pelo IEEE dentro do 802.11, mas foi o segundo a ser lançado. Suas principais características são transmissão na frequência de 5GHz, modulação por OFDM (Orthogonal Frequency-Division Multiplexing), velocidade de até 54Mbps (Megabits por segundo) e curto raio de abrangência em relação aos padrões posteriores.

Um detalhe, de acordo com o Guia do Hardware, é que 54Mbps é a velocidade "bruta" de conexão, já que a velocidade real fica em torno de 24 a 27 Mbps. Além disso, a mesma fonte cita que ao misturar placas dos padrões A e B, a velocidade de toda a rede fica nivelada pela tecnologia B, de 11Mbps. Este padrão ainda permite a utilização de 8 canais simultâneos, o que permite que mais pontos de acesso (access points – APs) sejam instalados no mesmo ambiente, sem que haja perda de desempenho.

IEEE 802.11b
Este foi o primeiro padrão a ser criado dentro do 802.11, acabando com a "orgia" de padrões proprietários e incompatíveis entre si, que havia até então neste nicho de mercado. Recebeu o subtipo B, por que começou a ser desenvolvido após o A, mas acabou sendo lançado antes dele, no ano de 1999.

Suas principais características são: transmissão em 2.4GHz, modulação por DSSS (Direct-Sequence Spread Spectrum), velocidade de 11Mbps e abrangência maior que a o padrão A (devido à frequência de transmissão mais baixa). Assim como citado no Guia do Hardware, por possuírem um overhead muito grande devido à modulação do sinal, checagem e retransmissão de dados, as taxas de transmissão não passavam de 750Kbps. Além disso, quanto mais o usuário se distancia do AP, a velocidade cai para 5 , 2 e 1 Mbps, até se perder completamente.

A DLink criou uma evolução para este padrão chamando-a de 802.11b+, porém o mesmo não foi aceito pelo IEEE. Mesmo assim a empresa passou a fabricar dispositivos com sua própria melhoria do 802.11b original. Esta melhoria da DLink conseguia expandir a velocidade do padrão B para 22Mbps, porém esta marca só podia ser conseguida em curtas distâncias e se todos os dispositivos de comunicação fossem B+. Caso um deles fosse B apenas, a velocidade passava a ser nivelada pelo dispositivo mais lento, ou seja, a rede inteira passava a operar em 11Mbps.

Por trabalhar na frequência de 2.4GHz, dispositivos que utilizam este padrão tendem a sofrer muito com interferência, já que outros aparelhos como fornos de microondas e telefones sem fio operam nesta frequência. Em contrapartida, aparelhos que usam este padrão tendem a ser mais baratos.

IEEE 802.11g
Lançado 2003, este padrão une as melhores características dos padrões A e B. Do A, a mesma modulação, OFDM e a velocidade de transmissão (54Mbits) proveem uma melhoria considerável contra os 11Mbps do padrão B. Já do B, vem a frequência de transmissão (2.4GHz), que provê um maior alcance da rede e compatibilidade direta com este padrão.

Na época de escrita deste texto, a maioria dos dispositivos de redes WLAN são disponibilizados com suporte aos protocolos A, B e G. Sendo assim, não é difícil encontrar uma rede que funcione sob este padrão. Contudo, caso um dispositivo B se conecte a uma rede G, toda a rede passará a trabalhar a 11Mbps (nivelamento pelo mais lento).

IEEE 802.11n
Assim como o padrão G substituiu o B, a tendência é que o N substitua o G. Atualmente alguns dispositivos são vendidos com suporte a versões preliminares deste padrão (drafts), porém a versão final do mesmo ainda não foi lançada (segundo a Wikipédia, o lançamento deve ocorrer em dezembro de 2009).

As principais características deste padrão são: transmissão em 2.4 e/ou 5GHz (leia este texto para mais informações), utiliza a tecnologia MIMO (Multiple-Input Multiple-Output), onde várias antenas são usadas para transmitir e receber dados, aumentando consideravelmente a velocidade de conexão, modulação por OFDM, velocidade de até 600Mbps e alcance maior que o padrão G.

Se as especificações deste protocolo forem condizentes com o seu funcionamento, ele poderá se tornar um substituto não só para o padrão G, como para a maioria das LANs cabeadas. Levando-se em consideração que a Fast Ethernet, que constitui atualmente a maior parte das redes locais de pequenas e médias empresas e residências, atinge até 100Mbps, o IEEE 802.11n superaria com folga as espectativas dos seus usuários, tanto nas questões de velocidade e abrangência de sinal, quanto em estética e facilidade de instalação.

Quem já trabalhou com redes cabeadas sabe como é complicada a passagem de cabos, pois nem sempre o melhor caminho entre um ponto e outro pode ser feito (e.g., vigas), além de ser custoso, tanto em termos de mão de obra, quanto em termos financeiros. Já a estética conta muito, tanto em casas, quanto em empresas (quem se sentiria bem em levar uma visita/cliente para ver sua casa/empresa e este dar de cara com várias canaletas ou cabos passando de um lado para outro?).



Segurança
Em uma rede cabeada, para que um computador tenha acesso à mesma, ele deve se conectar a um ponto de rede. Já no caso de uma rede sem fio, onde o sinal é distribuido como em uma estação de rádio, qualquer computador que esteja no raio de alcance do sinal, conseguirá acessar a rede. Isto coloca em evidência uma grande preocupação com relação a qualquer tipo de redes: segurança.

É lógico que apenas obter o sinal não garante que alguém tenha acesso a uma rede, mas não é muito difícil para um entendido de computação obter informações sobre o endereçamento IP da rede, seja via engenharia social, seja via sniffing. Neste caso, como controlar o acesso à rede sem fio?

Desde que foram criadas, as redes sem fio do padrão IEEE 802.11 trazem a tecnologia WEP (Wired Equivalent Privacy), que usa uma chave de segurança para controlar o acesso à rede. Assim, qualquer computador que obtenha o sinal de rede, precisa usar a chave de autenticação, fornecida pelo administrador da rede aos seus usuários, para que possa obter acesso. O comprimento dessas chaves de segurança pode ser de 64 ou 128 bits (alguns equipamentos específicos permitem até 256 bits, mas sua lista de compatibilidade é restrita), mas o padrão WEP é considerado inseguro, pois pode ser quebrado com relativa facilidade.

Como forma de melhorar a segurança de redes sem fio, baseado no padrão IEEE 802.11i draft 3, surgiu o WPA (Wired Protected Access), que funciona de forma análoga ao WEP. Enquanto que no WEP era necessário gerar uma senha obscura, com uma combinação de caracteres nada convencional e inseri-la em cada dispositivo que necessitar de acesso à rede, no WPA cria-se uma senha como qualquer outra (de 8 a 63 caracteres) e é esta que deverá ser inserida nos dispositivos da rede. O que provê uma melhor segurança no WPA é o protocolo TKIP (Temporal Key Integrity Protocol – vulgo WEP2). Este protocolo combina uma chave de 128bits com o endereço MAC (Media Access Control) de cada dispositivo da rede que usa o WPA, criando uma combinação única. Além disso, a chave em questão é trocada periodicamente, dificultando possíveis tentativas de quebra da senha.

Neste contexto, ainda existe o WPA2, nova e mais segura versão do WPA original. Apesar de não ser tão usada [ainda], esta nova versão do protocolo permite mais segurança ainda à redes sem fio. Maiores informações sobre o WPA2 podem ser obtidas no site Network World.

O site sobre tecnologia ARS Technica mantém uma página específica sobre segurança de redes sem fio. Àqueles que desejam saber mais sobre o assunto, recomendo a leitura.

Concluindo...
As redes sem fio vieram para ficar e é cada vez mais comum encontrar aparelhos compatíveis com esta tecnologia. Apesar da adoção deste tipo de conexão estar crescendo gradativamente, esta é uma tecnologia em contínuo estado de melhoramento.

Como exposto, os benefícios das redes sem fio são evidentes, como facilidade de conexão, estética e custo total do projeto, mas ainda há problemas. Por exemplo, raio de atuação do sinal (quem já distribuiu redes sem fio em locais fechados e com vários aparelhos eletrônicos sabe do que estou falando), utilização em locais com diversos APs e velocidade de conexão – tudo bem que o padrão IEEE 802.11n vai aumentar consideravelmente a velocidade, mas vale lembrar que as redes cabeadas 10Gb/s Ethernet (IEEE 802.3ae) já conseguem velocidades de até 10Gbps.

Vejo muito caminho a ser percorrido pelas redes sem fio, mas seu futuro é muito promissor!


Leituras Recomendadas
  • Wikipédia – Página da Wikipédia sobre o IEEE 802.11.
  • Infowester – Ótimo texto sobre o assunto.
  • Guia do Hardware – Conteúdo bastante abrangente sobre o assunto, dividido em seis partes.

Clube de Revista