Viciado em Mídias Sociais? A SMAA te ajuda!

Quantas horas está passando por dia no Twitter? E seu Facebook? Minha mãe já colocou o Orkut como página inicial a muito tempo! É talvez seja o caso de pedir ajuda a SMAA (Social Media Addicts Association).

JSON – Uma introdução

A troca de dados sempre foi uma prática (e necessidade) comum no desenvolvimento de sistemas, seja desktop ou web, os anos passaram e vários padrões/modelos surgiram, persistiram, morreram, renasceram, morreram de vez e etc..

Nos sistemas desktop o EDI sempre foi bastante utilizado, o tempo passou, a web chegou e ficou complicado manipular um arquivo de texto separado por ponto-e-vírgula de sabe-se lá quantos mbs. Se você trabalhava com quantidade de caracteres e faltasse um caractere, sua consistência toda ia por água abaixo, se trabalhava seguindo algum caractere padrão (ponto-e-vírgula, por exemplo) e esse caractere repetia em alguma string, novamente dor de cabeça, logo então surgiu o nosso conhecido XML, era muito mais simples e organizado trabalhar com uma linguagem de marcação semelhante ao HTML, a sua eficiência é tanta que o XML é altamente utilizado até hoje (de acordo com a Wikipédia o XML surgiu em 1990).

O tempo continuou a passar, as pessoas, a web e as nossas necessidades mudaram, com os novos conceitos de usabilidade, web semântica, experiência de usuário e etc. o uso de Ajax se tornou quase que uma obrigação, manipulação de dados com javascript se fez e faz muito necessária. E podemos afirmar, trabalhar com XML e javascript não é das atividades mais amigáveis. A partir dessa necessidade (não só, mas principalmente dela) surge o JSON (Javascript Object Notation).

Sua estrutura nada mais é que um Literal. Abaixo um exemplo:

{
     nome: "Edjan", //-- Primeiro colocamos o nome da propriedade, e usamos dois pontos “:” para separarmos do valor da propriedade
     sobrenome: "Santos",
    site: "http://www.labirintorium.com.br"
}

A grande vantagem do JSON ao XML ao se trabalhar com Javascript é justamente o fato de um JSON ser um objeto do javascript, sua manipulação é simples e natural.

Vamos ilustrar melhor a vantagem, consideremos o seguinte XML:

<?xml version="1.0" encoding="utf-8" ?>
<registros>
 <usuario nome="Edjan" sobrenome="Santos" site="http://www.labirintorium.com.br"></usuario>
</registros>

Vamos visualiza-lo com javascript:

function xmlLoader(xmlUrl){
	var objXML;
    try {
        objXML = new ActiveXObject("Microsoft.XMLDOM");
	} catch(ex) {}
	try {
		objXML = document.implementation.createDocument("","",null);
	} catch(e) {}
	try
	{
        objXML.async = false;
        objXML.load(xmlUrl);
        return objXML;
    } catch(exc) {return(null);}
}

var xml = xmlLoader("http://www.labirintorium.com.br/artigos/json/dados.xml");

var msg = "";
var usuario = xml.getElementsByTagName('usuario')[0];
for(var i=0; i < usuario.attributes.length; i++) {
	msg += 	usuario.attributes[i].nodeName + ": " + usuario.attributes[i].nodeValue + "\n";
}
alert(msg);

Agora vamos visualizar com javascript uma estrutura JSON:

var objJSON = {
	nome: "Edjan",
	sobrenome: "Santos",
	site: "http://www.labirintorium.com.br"
};

alert(" nome:"+objJSON.nome+"\n sobrenome: "+objJSON.sobrenome+"\n site: "+objJSON.site);

Viu como é simples? É claro que essa estrutura está bem básica, estamos trabalhando apenas com um registro tanto no XML quanto no JSON mas acredito que seja o suficiente para ilustrar a grande vantagem de se utilizar JSON principalmente com javascript.

No site JSON.org é possível encontrar várias classes para muitas linguagens, classes prontas e recomendadas para linguagens como C#, PHP, JSP, C, Flex, Python, etc., além de outras referências ao uso do JSON.

O objetivo desse artigo foi explicar de forma breve o que é o JSON, pra que ele serve e principalmente por que usá-lo com Javascript. Como afirmei acima e você pode observar no site do JSON, é possível utilizá-lo com muitas linguagens, fica a seu cargo utilizá-lo ou não. Como tudo na vida, o JSON também tem seus pontos negativos, que talvez eu aborde futuramente em outro artigo, mas por enquanto você pode ler o excelente artigo do Henry Story que já esclarece muita coisa.

Agora fica a missão de utilizar o JSON na prática, experimente em seus projetos e veja os benefícios de estruturas organizadas, padronizadas e rápidas!

Se Oriente Rapaz! Javascript Orientado a Objetos.

Ahhh Javascript… sim, aquela “linguagenzinha” que você usa para validar seus formulários… Se orienta rapaz! Javascript é muito mais que isso e fica melhor ainda orientado a objetos.

Vou começar com esse post uma “série” sobre Javascript e como podemos usa-lo facilitar e melhorar atividades corriqueiras. :)

Se você não sabe o básico de Javascript (e Programação)  recomendo um grande amigo antes de continuar a ler esse post, Google.

Era uma vez um código porco… (ou não)

Se você está lendo essa parte presumo que você já perdeu muitas noites fazendo Hello World, Hello Galaxy, Hello Universe e etc., logo você já fez muito POG, logo você tem muito código porco espalhado por esse mundão. Veja bem, de forma alguma digo que você nunca mais vai fazer sujeira com o que eu vou apresentar a seguir, a orientação a objetos não existe para exterminar código ruim, ela existe para satisfazer e otimizar suas necessidades de desenvolvimento. Se aquele código porco resolveu seu problema quando foi necessário, ótimo, cabe a você depois tentar melhorá-lo (se possível).

Mas vamos ao que interessa, certa vez num curso de UML que fiz, o instrutor perguntou a turma algo que me deixou realmente intrigado… O que é uma instância?

Porque fiquei intrigado? Porque nem eu e nem ninguém na turma sabia responder com convicção, uma pergunta simples pra quem trabalha com orientação a objetos, “O que é uma instância de um objeto?”. Teve gente dizendo que era cópia do objeto, outros disseram que era uma referência, etc.. Se essas respostas estão corretas ou não são outros 500, mas até hoje ninguém conseguiu deixar mais claro para mim o que é uma instância do que aquele professor, foi simples e direto:

Instância é um instante do objeto.

Poesia para os ouvidos, quando você instância um objeto ele não é uma cópia da classe, ele não é independente daquela classe, ele é simplesmente um instante do objeto. Eu manipulo aquele objeto dizendo que naquele instante a classe se comporta da forma X.

Vamos então a prática.

Objetos e Classes

O Javascript contém diversos objetos, muitos deles vocês já devem conhecer, como por exemplo String, Math, Date, Boolean, Number, etc., mas também permite que você crie seus objetos a partir de suas classes. Não sabe criar classes? Uhm, Ok, veja um exemplo abaixo:

function MinhaClasse() {
     //-- Implementação
}

O que? É igual a uma função? Isso mesmo jovem, a implementação da classe é idêntica a de uma função, a mágia está nesse próximo exemplo:

function MinhaClasse() {
     function meuMetodo() {
        //-- Implementação do método
     }
}

Viu como é simples? A classe já existe, para instância-la usamos o operador new como em qualquer outra linguagem (OO):

    var objClasse = new MinhaClasse();
    objClasse.meuMetodo();

Legal, bacana, mas até agora nada de interessante e melhor do que eu faço hoje. Então que tal usarmos encapsulamento? Nossos queridos Getters e Setters:

function MinhaClasse() {
        //-- Aqui setamos as variáveis
	var ID;
 	var txtNome;
	var txtEmail;

        //-- Declaramos ela no escopo da classe
	this.getID = getID;
	this.getNome = getNome;
	this.getEmail = getEmail;

	this.setID = setID;
	this.setNome = setNome;
	this.setEmail = setEmail;

        //-- E aqui implementamos :D
	function getID() {return ID;}
	function getNome() {return txtNome;}
	function getEmail() {return txtEmail;}
	function setID(_ID) {ID = _ID;}
	function setNome(_Nome) {txtNome = _txtNome;}
	function setEmail(_Email) {txtEmail = _txtEmail;}
}

Para consumir essa classe é mais simples ainda, veja:

var objClasse = new MinhaClasse();
objClasse.setID(10);
alert(objClasse.getID());

O uso de encapsulamento e classes em seus projetos podem te ajudar a organizar melhor os dados tanto para manipulação interna (na classe) quanto para distribuição (chamadas de outras funções/classes).
Podemos melhorar a organização de seu código usando outro recurso bem interessante, Literais!

Literais…

Objetos Literais são conjuntos de propriedades com valores préviamente setados, o tipo de dado dessa propriedade pode ser tanto primitivo do javascript quanto uma classe que você criou e etc.. Seu principal e melhor uso é para transporte de grandes quantidade de informações como parametros por exemplo, vamos ilustrar vendo a sintaxe:

var objLiteral = {
     ID : 10, //-- Primeiro você declara o nome da variável, adiciona dois pontos ":" separando do valor da propriedade
     txtNome : "Edjan", //-- Para criar outra propriedade basta separar por virgula
     txtEmail : "edjan@labirintorium.com.br"
}

Está achando que já viu isso em algum lugar né? Literais são usados exaustivamentes em implementações de jQuery, Mootools, Dojo, etc., além de ser a base da estrutura do JSON (Não sabe o que é? Fica pra outro artigo).
Para usar os dados da propriedade também é muito simples:

alert("ID: " + objLiteral.ID + " - Nome: " + objLiteral.txtNome + " - Email: " + objLiteral.txtEmail);

É bem importante entender a sintaxe, funcionamento e o uso do Literal para os nossos proximos passos no Javascript, no próximo artigo vamos falar sobre prototipagem, herança e vamos começar a brincar com JSON e Ajax.

Abraços :}

Commodity ou diferencial competitivo

Na última semana realizamos as provas de avaliação continuada do nosso curso de Sistemas de Informação da FIAP. Na matéria que temos com o professor Jakov Surjan, tivemos a seguinte pergunta:

” Muitas empresas posicionam a TI como um diferencial competitivo, descreva alguns fatores que expõem esse pensamento.”

Recentemente li um artigo no CIO que resume bastante o enfoque diferencial da TI em uma empresa. Primeiramente temos a TI basicamente sendo uma commodity para a empresa, ou seja, a TI faz parte do dia-a-dia da empresa e suporta a organização através de recursos de tecnologia para “rodar” o negócio. Algumas empresas enxergam como sendo uma estrutura básica que toda empresa deve ter.

Em outra visão, temos a TI como diferencial competitivo e estratégica para os negócios, ou seja, a TI suporta os objetivos estratégicos da organização através do uso de recursos de tecnologia. 

marketing005_01

O fator cultura e negócio da empresa impacta muito na forma de atuação da TI, podendo ser uma área que contém serviços padrozinados ou uma estrutura que agregue valor para o negócio através de projetos e serviços. Com a alta competividade  no mercado é necessário pensar e medir os esforços necessários para criar o modelo certo.

Comunidades de desenvolvedores e sua importância.

Comunidade de desenvolvedores já me salvaram centenas de vezes, posso até dizer que elas me formaram técnicamente mais do que livros, faculdade e a própria vivência com profissionais de nível técnico maior.

Dúvidas, novidades, experiências, banco de códigos, uma infinidade de materiais disponibilizados simplesmente pelo prazer em compartilhar conhecimento. Me arrisco a dizer que as comunidades de desenvolvedores provam o quanto a profissão de programador vai além de muitas outras, mostra como nós desenvolvedores somos realmente apaixonados por código e que se fosse possível comeriamos com granola no café da manhã.

De profissionais reconhecidos mundialmente à estagiários/estudantes/entusiastas, conheço casos de empresas surgindo de comunidades, vários amigos, empregos e até gente percebendo que seria melhor ser médico, engenheiro ou camelô.

Comunidade é bacana hein!

Comunidade é bacana hein!

Mesmo com o rápido crescimento no número de desenvolvedores (já não tão preocupados com comunidades) nos últimos anos várias comunidades permanecem fortes, dentre elas uma das primeiras que tive contato, colaborei e etc., a Devmedia, que na verdade nunca foi apenas uma comunidade, mas soube manter um fórum e conteúdo de alto nível sempre. Comecei lá aprendendo (e muito) sobre Delphi, me lembro da enorme quantidade de colaboradores ativos que respondiam quase que instantâneamente todas as dúvidas dos usuários. De lá vi coisas engraçadissimas como a Jeitosinha, profissionais competentes se dando bem, entre outras coisas.

E não é só de colaborador bom samaritano que sobrevivem comunidades (pelo menos nem todas), grandes empresas investem na criação de ambientes de interação social, postagem de conteúdo técnico e discussões. E para falar de comunidades com background de grandes empresas não se pode deixar de lado o MSDN, Blogs, Fórum, Artigos, WebCasts, Eventos, TUDO que um desenvolvedor precisa, yeah!!!

E você, colabora com alguma comunidade de desenvolvimento? Abaixo uma lista das que participo, gosto e recomendo:

Codificando.NET

Devmedia

Imasters

Linha de Código

Desenvolvendo para Web

Planeta Delphi

GUJ

Dot Net Architects

Tem alguma comunidade bacana pra me recomendar? Deixa ai no comentário!

Que tipo de usuário você é?

Diga ai, que tipo de usuário você foi? Usou muito o IRC (Saudades da BrasNET e EFNET)? ICQ? Kazaa? Jogou bastante Age of Empires na Zone? Azaração das cocotas no bate papo da UOL?

Se você fez pelo menos metade disso, tem no minimo 6~7 anos de uso de internet. Quando surgiram logo viraram febre, não havia resistência sobre o porque de usar aquilo e etc., era simplesmente novo e bacana. Lembro-me claramente da mudança de ICQ para MSN, foi muito rápida e fatal, em pouco tempo o ICQ estava morto (Aqui no Brasil). Mas e hoje? O que aconteceu com nossa curiosidade e tolerância as novidades? Por que resistimos tanto ao Google Wave, usamos o Chrome apenas por uma semana, achamos o Bing uma furada e agora até mesmo com menos de um mês de lançamento achamos o portal R7 fadado as traças?
Será critério?

É... as coisas não são mais como antigamente...

É... as coisas não são mais como antigamente...

Com a popularização da internet se tornou inevitável o surgimento de diversos Hypes que nada agregavam ao nosso dia a dia, um deles em especial é o Twitter.

O QUE?!?!

O QUE?!?!

O que você disse do Twitter seu maluco?!?!

Lembro quando em 2007 fiz o meu, um ou dois tweets depois parei de usar. Hoje uso diariamente, acho muito útil e virou uma ferramenta essencial no meu dia a dia(para diversos usos).

Mas porque então eu disse que é um grande FAIL? Simples, o Twitter foi criado para você responder apenas isso:

What are you doing?

Acredite, isso é o que você menos quer ver.

O Twitter hoje é um sucesso justamente porque ELE e principalmente seus USUÁRIOS mudaram e adaptaram a ferramenta para a forma que acharam melhor. Hoje nele você acha emprego, ganha desconto no Submarino, entra em contato com subcelebridades, etc.. A pergunta foi alterada para:

What are you thinking?

Agora pare e pense. Sua solução/produto/serviço está apto a se adaptar as necessidades do cliente? Você está preparado para resolver além do problema que você acha que o seu cliente tem?

Temos que, o mais rápido possível, nos livrar da arrogância de achar que o importante é o que você quer passar, definitivamente isso não é o que importa. A chave para o sucesso não é o que você vai passar, mas sim o que vai ser entendido na outra ponta.

Tem gente que vê um velho nessa imagem, eu só vejo camponeses... mas quem garante que outra pessoa não veja nada além disso?

Tem gente que vê um velho nessa imagem, eu só vejo camponeses... mas quem garante que outra pessoa não veja nada além disso?

Inovação… O que é?

Vejam esta definição:

“A capacidade de se realizar mudanças para tornar a empresa mais competitiva.”

Isto simplica a idéia de que a utilização de inovação é de extrema importância para a sobrevivência e geração de diferencial competitivo para as empresas atualmente.

Inovação é a conversão do conhecimento e idéias em produtos novos ou melhorados, processos, e serviços para obter uma vantagem competitiva.

innovation

Toda inovação é suportada por um processo, isto varia muito de empresa para empresa, basicamente temos três:

  • Inovar – Capturar idéias, desenvolver o business case da idéia, investir
  • Entregar – Desenvolver o projeto da idéia, lançar no mercado
  • Mensurar – Mensurar o resultado da inovação

Fonte: Bill Buxton, Rotman Magazine Fall 2005 e Enabling Innovation Process Management using Microsoft’s EPM Solution and SharePoint Server 2007

*Entered a $70Bn over populated market.
*Began as niche player.
*Now competing against major brands.
*Company value tripled in 1 year to $650M !!
*Innovative products with services.

A Web, o Conteúdo e a Relevância

A Web é hoje o local onde temos o maior número de informações sobre os mais diversos temas e assuntos e com acesso mais rápido comparado a qualquer outro meio atualmente, há informações em abundância para todos os gostos, estilos, faixas etárias e desejos. É tudo encontrado fácil e rapidamente através de buscadores como o Google, mas se há tanta informação espalhada pelos quatro cantos da internet como fazer com que o seu site esteja em destaque comparado aos demais?

                        Sucesso

Para responder a esta pergunta temos que pensar na essência de um site, por que uma empresa tem um site? (ou pelo menos o porquê deveria ter), as respostas são varias possíveis: vender algum produto ou serviço, ser mais um canal de comunicação com seu consumidor, ser uma fonte de noticias e/ou novidades sobre determinados assuntos. Enfim um site na sua essência deve ter um ou mais objetivos claros, existir apenas por estar na “web” realmente não faz sentido algum e não gerará nada além de ser mais um site no meio das 11 bilhões de URL’s que existem hoje no mundo.

Então respondendo a pergunta original, como se destacar no meio da multidão, o que se deve ser feito é traçar objetivos para o seu site visando seu consumidor e público-alvo ( perceba, Consumidores são quem utiliza e compra seus produtos e serviços. Público-alvo é quem deve comprar e utilizar seu produtos e serviços ) e a partir daí gerar conteúdo que faça os usuários chegarem ao seu site, um conteúdo SEMPRE atualizado e com relevância para essas pessoas, dessa forma as pessoas ficaram satisfeitas com sua empresa pois saberão que ali há conteúdo fresco e relevante para determinados assuntos, essa pessoa indicará seu site para outras que indicaram para outras.

Torne-se referência em determinados assuntos, as pessoas confiarão em seu conteúdo e ele se destacará dos outros e isso gerará acesso segmentado, ou seja, as pessoas que acessarão seu site serão aquelas que realmente querem “ouvir” o que o seu site tem a dizer, dessa forma a oferta de algum produto ou serviço específico tem uma porcentagem de conversão muito maior (possibilidade de venda).

Conteúdo de qualidade, constantemente atualizado, com relevância ao seu consumidor e público-alvo com certeza gerará mais negócios para sua empresa.

Ferramenta de Gestão de Projetos – Spider Project

Dia 22/04/2009 participei de um evento cedido pelo PMI São Paulo na USJT (Universidade São Judas Tadeu) sobre uma ferramenta de gestão de projetos muito difundida no Oriente, o Spider Project.

Diversas ferramentas integradas são utilizadas para realizar o controle de projetos, programas e portfólio da organização. É uma boa opção de ferramenta para quem utiliza atualmente o Primavera, Artemis ou até o MS-Project Server.

The Spider Project

The Spider Project

Para se ter uma idéia da utilização, segue alguns exemplos de projetos que foram utilizados o Spider Project:

  • Hidrelétricas
  • Construção de fábricas de Alumínio na Rússia (Sayanogorsk, Taishet, Timan)
  • Construção de gaseodutos (Caspian Pipeline, Blue Stream, Yamal e Oeste Europeu)
  • Construção da Vila Olímpica para o 1st International Youth Games, em Moscou

Para mais informações consultem este site: http://www.spiderproject.com.br/

Seja “encontrável” e gere negócios

A internet é atualmente sem dúvidas o melhor e mais barato local para se começar um negócio, estar na internet é algo de fundamental importância para qualquer empresa/pessoa.

Criar um site ou blog não é lá uma coisa tão difícil hoje em dia, mas apenas criar uma “Home Page” não é o bastante, literalmente se imagine com uma balsa no meio do oceano, certamente ninguém vai te encontrar ou saber que você existe!

barco

Um site/blog é apenas o começo da sua presença na web, vários fatores devem ser trabalhados para que seu site fique e se mantenha em evidência.

Estar nas primeiras páginas dos maiores buscadores da internet (Google, Yahoo, Bing e etc.) não é uma tarefa trivial, um grande trabalho deve ser feito, mas não é algo impossível.

Além disso, usar o poder de colaboração ao seu favor é algo barato e que dá resultados, deixe que os usuários façam o marketing para o seu site. Crie um site onde seus usuários possam interagir um com os outros, um espaço onde eles possam se mostrar e o mais importante um conteúdo relevante e direcionado, mantenha seu site sempre atualizado, com certeza ele não será apenas mais um “cartão de visitas web” e sim um gerador de negócios dinâmico e auto-suficiente.