February 2009 - Posts
Mobile Tagging é a possibilidade de dispositivos móveis lerem códigos de barras 1D ou 2D. Através desta leitura é possível transmitir diversos tipos de informação, como mensagens, links, telefones ou contatos.
http://en.wikipedia.org/wiki/Mobile_Tagging
Apesar desta simples definição, o Mobile Tagging apresenta um potencial comercial incrível. E tudo isso porque esta leitura de códigos de barras pode ser feita em material impresso ou mídia digital, como web ou televisão.
Atualmente existem diversos tipos de códigos de barras, todos com uma estrutura diferente. E para não perder tempo neste meio, a Microsoft acaba de criar seu padrão, apresentado como Microsoft Tag.
O Microsoft Tag se baseia em um software para ler o código de barras Microsoft, destinado aos usuários finais, e um sistema online para gerar estes códigos, tudo de uma forma muito simples.
Para demonstrar sua utilização, vou gerar um barcode simulando um anúncio de um produto comum. Vou demonstrar também a leitura deste código de barras, utilzando abordagens diferentes.
Gerando o Código de Barras
Baixe o vídeo abaixo para ver o exemplo.
Lendo o Código de Barras
Para efetuar a leitura dos códigos de barras através de seu dispositivo móvel, basta efetuar o download e a instalação do aplicativo TagReader, através do endereço http://gettag.mobi (acesse utilizando seu dispositivo móvel).
Depois de efetuar a instalação, basta iniciar o aplicativo e utilizar sua camera para focar a tag. O programa automaticamente identifica e processa a informação.
O vídeo abaixo (gravado de forma péssimaaaa) demonstra a utilização no meu N95. A propaganda pra Claro e pro Banco Real não foi por querer :)
Possibilidades
Se você chegou até aqui sua cabeça deve estar fervendo com idéias novas. As possibilidades ao utilizar Mobile Tagging são inúmeras, entre elas aqueles exemplos apresentados no site http://www.microsoft.com/tag.
Na minha opinião, este tipo de abordagem deverá ser utilizada em sua grande maioria para diminuir a distância entre clientes e serviços (reservas, agendamento, etc) e informações maiores sobre produtos. Nada de compras via celular, ou qualquer outro trabalho crítico.
- Diminuir a distância entre o cliente e o serviço: efetuar reservas e até mesmo compras utilizando dispositivos móveis + 3G. Seu cliente vê o seu produto em um anúncio, aciona o Microsoft Tag Reader, entra no seu site (a tag já envia o ID do produto) e em um site especialmente criado para dispositivos móveis efetua a compra, reserva de serviço, agendamento, etc.
- Fornecer mais informações sobre um determinado produto: o cliente vê seu produto em um outdoot e a tag impressa lá. De longe (de dentro do carro) aciona o Microsoft Tag, efetua a leitura e obtém mais informações (via URL, texto ou Dialer) sobre o produto. O Dialer, apesar de parecer complicado, é muito interessante. Você pode criar uma central automática que recebe as ligações e direciona o cliente a mais detalhes sobre o produto ou até para o televendas.
Claro que existem muitas outras possibilidades, estas duas são apenas para demonstrar um possível caso real.
Uma análise do mercado
Duas coisas são básicas quando pensamos em qualquer solução utilizando Microsoft Tag: Dispositivos móveis e acesso à internet. Porém, pensar apenas nestes dois aspectos seria desprezar o que está mais do que claro no nosso dia-a-dia: as pessoas não estão acostumadas com isso no Brasil.
Como o 3G é muito recente - e a idéia de ter qualquer tipo de aplicativo no celular é meio distante - é impossível assumir que este tipo de abordagem em uma campanha comum de midia impressa + digital (claro que esta visão é para clientes ou consumidores comuns) seria interessante e comercialmente viável.
Talvez com o tempo e com a disseminação de tecnologias como 3G e dispositivos móveis mais poderosos possamos trabalhar com idéias como essa em todos os tipos de campanhas de marketing. Até lá, temos que trabalhar com estas tecnologias visando um público-alvo específico e campanhas bem limitadas.
Conclusão
A utilização de mobile tagging é muito recente, e sua aplicação ainda não foi totalmente desenvolvida e testada. Acredito que aliado à inovação tecnologica, a adaptação dos costumes dos clientes é extremamente importante, e neste ponto devemos focar os nosso esforços. É muito interessante efetuar os testes e ter a expertise para futuros trabalhos, mas manter campanhas inteiras baseadas nestes mecanismos ainda é complicado.
O negócio mesmo é aplicar estes conhecimentos a aplicações específicas, para um publico-alvo bem definido e alinhado com as novas tecnologias. Afinal, depois de conhecer tudo isso aposto que você estão pensando em 1000 oportunidades para utilizar estes recursos! :)
Abraços!
Update: Vou colocar minha TAG de exemplo aqui, assim como o Marcelo bem observou :)

Recentemente foi inaugurado no Channel9 um canal exclusivo para o Brasil, sobre arquitetura em geral. O site já conta com inúmeros vídeos interessantes, realmente vale a pena!
http://channel9.msdn.com/brasil/
Além disso, visitem o grupo criado pelos arquitetos da Microsoft, com muito conteúdo legal e discussão de alto nível.
http://arqbr.groups.live.com
Abraços!
Assim como qualquer área, os profissionais envolvidos em desenvolvimento de software devem ter uma formação muito bem direcionada e aplicada ao mercado atual.
Em muitas ocasiões faço entrevistas com profissionais que se auto-intitulam arquitetos (aqueles famosos desenvolvedores sêniors), ou desenvolvedores plenos com alto conhecimento em Orientação a Objetos, entre outros. E o que eu posso concluir com tudo isso é que muitos desses profissionais não sabem qual é o nível de conhecimento deles mesmos.
E não podemos culpá-los. Seria uma injustiça se interpretássemos este ato como uma tentativa de fraudar o processo seletivo, ou então de garantir uma vaga ou salário em alguma empresa. No Brasil – e isso vem desde os primordios – nós não encontramos facilmente uma boa formação acadêmica em Orientação a Objetos, Padrões ou Princípios. Simplesmente temos a matéria básica (Encapsulamento, Abstração, Herança, Polimorfimos) e voilà, temos um novo profissional. Calma lá… nós temos que saber que Orientação a Objetos e seus princípios não sei baseiam apenas nisto. Existem muitos experimentos, leis e princípios que merecem nossa atenção, até mesmo na faculdade, por que não?
E uma destas leis (ou princípio como veremos no fim deste post) que gostaria de escrever sobre é a “Law of Demeter”.
Introdução
A lei de Demeter foi desenvolvida em 1988 por Karl Lieberherr e Ian Holland, da Northeastem Univerity, com uma idéia extremamente simples: organizar e reduzir dependências entre classes.
Mas antes seria interessante definirmos o que é uma dependência.
Dependência entre classes
Podemos citar que existe uma dependência entre classes quando uma classe faz referência a outra, através de execução de algum método seu.
Esta dependência pode causar alguns “prejuízos” ao projeto. Analise os seguintes pontos causados por uma alta dependência entre classes:
- Rigidez: uma mudança em uma classe afeta muitas outras partes do sistema;
- Fragilidade: quando você realiza uma alteração, partes inesperadas no sistema falham;
- Imobilidade: não é possível reutilizar partes de uma aplicação em outra, por não ser possível desacoplar este código.
A lei
Na classe C, para todos os métodos M definidos em C, todos os objetos com o qual M se comunica deve ser:
- Argumento de M
- Um membro de C
Objetos criados por M, por métodos que M invoca ou objetos de escopo global na classe são considerados argumentos de M.
Esta lei tem dois propósitos primários:
- Simplificar modificações;
- Simplificar a complexidade da programação.
Utilizando C#, podemos entender esta lei atráves do exemplo abaixo:
Considere um trecho de código na classe Carrinho que verifica o valor de desconto dos produtos em um carrinho:
1: public decimal ObterDescontos()
2: {
3: decimal totalDesconto = 0;
4:
5: for (int i = 0; i < this.LineItems.Count; i++)
6: {
7: totalDesconto += this.LineItems[i].Desconto.Total;
8: }
9:
10: return totalDesconto;
11: }
Neste exemplo, nossa classe Carrinho não segue a lei de Demeter, já que o método ObterDesconto acessa outros objetos que não fazem parte dos argumentos do método ou membros da própria classe (neste caso, Desconto).
Uma abordagem correta para este caso seria:
1: public decimal ObterDesconto()
2: {
3: decimal totalDesconto = 0;
4:
5: for (int i < 0; i < this.LineItems.Count; i++)
6: {
7: totalDesconto += this.LineItems[i].ObterDesconto();
8: }
9:
10: return totalDesconto;
11: }
Agora o método ObterDesconto segue a lei, visto que ela acessa membros da classe Carrinho apenas.
Muitas pessoas, com o objetivo de simplificar, resumem esta lei como “nunca devemos utilizar mais de um ponto na chamada de um método (desprezando o this, claro). Portanto, o método acima está dentro desta definição também, já que utiliza LineItems[i].ObterDesconto() para obter o valor desejado.
Exceções
O que é muito importante saber é que talvez seja necessário que o objeto C saiba detalhes da implementação de outro objeto através de métodos M de sua definição. Em algumas situações, forçar a aplicação da lei de Demeter pode não ter valor maior do que manter as regras do domínio da aplicação.
Alteração no Nome
O nome “Law of Demeter” foi alterado, tempos depois, para “Principle of Least Knowledge”. Algumas pessoas justificam que esta alteração se deve ao fato da definição desta lei (ou princípio) não se aplicar a todos os casos, e portanto a definição de princípio se aplica de forma mais adequada para este caso. Além disso, o conteúdo deste princípio é um pouco diferente da lei – motivo pelo qual não concordo em utilizar este novo nome :)
Conclusão
Claro que a lei não se resume apenas a isso. Isso foi uma breve (mas muito breve) introdução. Pesquise mais sobre o assunto e leia as referências, com certeza você encontrará muito mais material que imagina.
Referências
http://en.wikipedia.org/wiki/Law_of_Demeter
http://www.cmcrossroads.com/bradapp/docs/demeter-intro.html
http://www.ccs.neu.edu/research/demeter/
http://www.ccs.neu.edu/research/demeter/papers/publications.html
Assuring Good Style for Object-Oriented Programs
http://www.ccs.neu.edu/research/demeter/demeter-method/LawOfDemeter/paper-boy/demeter.pdf
Quando comecei com a minha “carreira” em blogs escrevia no wordpress.com, http://andrenobre.wordpress.com. Meu primeiro post neste endereço é de 2006, e de lá até junho de 2008 publiquei muita coisa sobre Commerce Server, arquitetura, etc.
Portanto, fica aí a dica para efetuarem pesquisas nestes posts mais antigos (e talvez interessantes :).
Abraços.
Depois de muito tempo tentando, finalmente iniciei meus estudos e utilização dos conceitos de Domain-Driven Design. Fui muito incentivado pelas discussões na lista .NET Architects, além de ter lido rapidamente em muitos lugares este nome.
Logo quando comecei a ler as discussões, um nome sempre estava em destaque: Eric Evans. Considerado o grande autor do DDD, Eric publicou um livro sobre o assunto em 2004. E aqui esta a primeira lição se você quiser entrar nessa também: leia sobre ele e os assuntos que ele publica.
Mas meu início nos estudos se deram através de um artigo publicado este mês na MSDN Magazine, uma introdução beeeem curta sobre o que, na minha jovem opinião, é o melhor padrão para aplicações de negócio.
Depois disso novamente me certifiquei que tinha que ler Eric Evans. Como o livro – vindo da Amazon – demora a chegar, resolvi ler um ótimo “resumo” através de uma publicação realizada pela InfoQ, neste endereço. E este é realmente a melhor introdução ao assunto. Um livro rápido e gostoso de ler, onde suas 96 páginas se tornam poucas pelo ótimo fluxo do texto (eu mesmo li em 1 dia e meio :).
Portanto, para uma rápida introdução, este é o caminho. Existe muito texto na internet sobre o assunto, mas certifique-se de começar por estes textos que indique. Depois disso, claro que o livro do Eric seria uma boa idéia :)
Abraços.
Uma iniciativa muito interessante da consultoria (PC)², ao disponibilizar um sistema rápido e simples para consulta de CEPs brasileiros, no formato XML e CSV.
Acesse aqui o FAQ do projeto.
Abraços.
Ontem ministrei uma pequena palestra (50min) sobre currículos e entrevistas, resolvendo dúvidas com o pessoal iniciante na área.
Aí está o arquivo.
Abraços.
Para aqueles que se interessam pelo assunto, muito em breve deve sair o livro “Windows Internal 5th Edition: Including Windows Server 2008 and Windows Vista”.

Pela quarta edição dá pra saber que este é um dos livros mais interessantes para se ter na biblioteca particular.
Fica aí a dica.
Abraços!
More Posts