23 de dezembro de 2009

BOAS FESTAS

Pessoal esse ano foi corrido, faculdade (até que enfim acabou), emprego novo, muita coisa aconteceu em 2009.
Mas em 2010 vamos continuar melhorando.
Desejo eu Eduardo e toda equipe do Java Anywhere um ótimo Natal e uma entrada perfeita de Ano para todos vocês que nos acompanham.

Abraços.

15 de novembro de 2009

O estigma de herança múltipla em Java

Olá galera;

Faz um tempo que não escrevo, mas achei um tempinho e para um assunto interessante. Existe herança múltipla em Java?
Estive recentemente em uma entrevista que por sinal foi em uma empresa de grande porte. Na entrevista me foi pedido para explicar o conceito de herança múltipla em linguagem Java.
Pessoal, de vez em quando esquecemos os primórdios da programação em Java. Uma classe só consegue extender uma única classe. Ainda não é possível extender mais de uma classe em Java. Extender uma classe é utilizar do conceito de herança.
Ao mesmo tempo, podemos implementar "n" Interfaces. Implementar uma Interface, por mais parecido que seja, não é conceito de herança. Estou implementando a assinatura dos métodos, que por sinal serão sempre abstratos em uma Interface na classe que estou utilizando e obrigatóriamente todos eles.
No meu caso, em relação a essa entrevista, é claro que não entrei em discussão, mas de forma alguma aceitei a explicação do uso da Interface como conceito de herança múltipla, como o arquiteto Java que me entrevistou tentou me convencer.
Isso é meio que um alerta para provas de Conceito em entrevistas. Espero ter ajudado.

31 de outubro de 2009

Recebendo e-mails e anexos com JavaMail

Bom pessoal, precisei fazer uma pequena aplicação para receber e-mails e anexos no caso XMLs, só que vi somente artigos e tutoriais que apenas ensinavam como enviar o e-mail, o site do JavaMail, também não está tão legal, algumas coisas como salvar os anexos em pastas não estava tão bom, então resolvi pegar o código que fiz em casa e hoje está adaptado para rodar aqui no trabalho e vou postá-lo:
Ajuda no GUJ que obtive enquanto fazia: http://www.guj.com.br/posts/list/15/142839.java#771656
Download do código no github aqui.

A solução, ficou assim:

Classe de Constantes:

public class Constantes { public static final String PASTA_XML = pasta onde o XML será salvo em seu computador;
public static final String IMAP = "imap";
public static final String HOST = Seu host;
public static final int PORTA = Sua porta;
public static final String ARQUIVO_MSG = Arquivo de mensagens do seu e-mail;
public static final String LOGIN = Seu login;
public static final String SENHA = Sua senha;
public static final String PASTA_PRINCIPAL = "Inbox";
public static final String PASTA_BACKUP = pasta caso você copie os e-mails da principal como fiz;

}

Classe ReadEmails

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;

import javax.mail.AuthenticationFailedException;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.FolderClosedException;
import javax.mail.FolderNotFoundException;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.NoSuchProviderException;
import javax.mail.Part;
import javax.mail.ReadOnlyFolderException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.StoreClosedException;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;

/**
* @author Eduardo Bregaida
*
*/
public class ReadEmails {
private Store store = null;
private Folder folder = null;
private Message message = null;
private Message[] messages = null;
private Object msgObj = null;
private String sender = null;
@SuppressWarnings("unused")
private String subject = null;
private Multipart multipart = null;
private Part part = null;
private String contentType = null;

public ReadEmails() throws MessagingException {
processMail();
}

/**
* Processa o e-mail
*
*/
public void processMail() throws MessagingException {
try {
store = conexaoServidorEMail();
folder = getPastaCaixaEntrada(store);
messages = folder.getMessages();

for (int messageNumber = 0; messageNumber < messages.length; messageNumber++) {
message = messages[messageNumber];
msgObj = message.getContent();

// Determine o tipo de email
if (msgObj instanceof Multipart) {

subject = message.getSubject();
multipart = (Multipart) message.getContent();

for (int i = 0; i < multipart.getCount(); i++) {

part = multipart.getBodyPart(i);
// pegando um tipo do conteúdo
contentType = part.getContentType();

String fileName2 = part.getFileName();
if(fileName2 != null) {
System.out.println(messageNumber + " " + fileName2 + " | " + message.getSubject());
}
fileName2 = null;

// Tela do conteúdo
if (contentType.startsWith("text/plain")) {
} else {
String fileName = part.getFileName();
@SuppressWarnings("unused")
Message[] mensagensXML = separaMensagensXML(i, fileName);

}
}
} else {
sender = ((InternetAddress) message.getFrom()[0]).getPersonal();
if (sender == null) {
sender = ((InternetAddress) message.getFrom()[0]).getAddress();
}
// Get the subject information
subject = message.getSubject();
}
}
// Fecha a pasta
folder.close(true);
// Histório de mensagens
store.close();
System.out.println("Terminado");
} catch (AuthenticationFailedException e) {
store.close();
e.printStackTrace();
} catch (FolderClosedException e) {
store.close();
e.printStackTrace();
} catch (FolderNotFoundException e) {
store.close();
e.printStackTrace();
} catch (NoSuchProviderException e) {
store.close();
e.printStackTrace();
} catch (ReadOnlyFolderException e) {
store.close();
e.printStackTrace();
} catch (StoreClosedException e) {
store.close();
e.printStackTrace();
} catch (Exception e) {
store.close();
e.printStackTrace();
}
}

/**
* @param i
* @param fileName
* @return
* @throws MessagingException
* @throws IOException
*/
private Message[] separaMensagensXML(int i, String fileName) throws MessagingException, IOException {
Message[] mensagensXML = folder.getMessages();;
if (fileName != null) {
int tamanhoString = fileName.length() - 3;
for (int a = 0; a < messages.length; a++) {
if (fileName.substring(tamanhoString).equals("xml")) {
mensagensXML[a] = message;
}
}
}
// Recebendo o nome do arquivo
@SuppressWarnings("unused")
String fileName2 = validarXML(part, store, folder, mensagensXML, i);
return mensagensXML;
}

/**
* @param messages
* @param i
* @throws MessagingException
*/
private void excluirMensagemInbox(Message[] messages, int i) throws MessagingException {
@SuppressWarnings("unused")
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
messages[i].setFlag(Flags.Flag.DELETED, true);
}

/**
* Envia os arquivos da pasta princiál para a pasta reserva
*
* @param store
* @param folder
* @param messages
* @throws MessagingException
*/
private boolean enviaArquivoPastaAuxiliar(Store store, Folder folder, Message[] messages, int i) throws MessagingException {
return false;
Folder folderAux;
folderAux = getPastaAuxiliar(store);
folder.copyMessages(messages, folderAux);
folderAux.close(true);
excluirMensagemInbox(messages, i);
}

/**
* Recebe o anexo e valida se é um XML, se sim ele salva o arquivo em uma
* pasta
*
* @param part
* @return
* @throws MessagingException
* @throws IOException
*/
private String validarXML(Part part, Store store, Folder folder, Message[] messages, int i) throws MessagingException, IOException {
String fileName = part.getFileName();
if (fileName != null) {
int tamanhoString = fileName.length() - 3;
if (!fileName.substring(tamanhoString).equals("xml")) {
return fileName;
} else {
String disposition = part.getDisposition();
if ((disposition != null) && ((disposition.equals(Part.ATTACHMENT) || (disposition.equals(Part.INLINE))))) {
salvarArquivo(part);
enviaArquivoPastaAuxiliar(store, folder, messages, i);
}
}
}
return fileName;
}

/**
* Salva o arquivo em uma pasta
*
* @param part
* @throws MessagingException
* @throws IOException
*/
private void salvarArquivo(Part part) throws IOException, MessagingException {
FileOutputStream fileOutputStream = new FileOutputStream(Constantes.PASTA_XML + part.getFileName());
Object obj = part.getContent();
if (obj instanceof InputStream) {
InputStream is = (InputStream) obj;
int ch = -1;
while ((ch = is.read()) != -1) {
fileOutputStream.write(ch);
}
}
}

/**
* Acessa a Caixa de Entrada (Inbox)
*
* @param store
* @return
* @throws MessagingException
*/
private Folder getPastaCaixaEntrada(Store store) throws MessagingException {
Folder folder;
folder = store.getFolder(Constantes.PASTA_PRINCIPAL);
folder.open(Folder.READ_WRITE);
return folder;
}

/**
* Acessa a Pasta Auxiliar
*
* @param store
* @return
* @throws MessagingException
*/
private Folder getPastaAuxiliar(Store store) throws MessagingException {
Folder folder;
folder = store.getFolder(Constantes.PASTA_BACKUP);
folder.open(Folder.READ_WRITE);
return folder;
}

/**
* Autenticação e conexão com o Servidor de e-mail
*
* @return
* @throws NoSuchProviderException
* @throws MessagingException
*/
private Store conexaoServidorEMail() throws NoSuchProviderException, MessagingException {
Session session;
Store store;
Properties prop = new Properties();
session = Session.getInstance(prop);
URLName url = new URLName(Constantes.IMAP, Constantes.HOST, Constantes.PORTA, Constantes.ARQUIVO_MSG, Constantes.LOGIN, Constantes.SENHA);
store = session.getStore(url);
store.connect();

return store;
}
}

Classe Principal (Main):

import javax.mail.MessagingException;

/**
* @author Eduardo Bregaida
*
*/
public class PrincipalNfe {

public static void main(String[] args) {
@SuppressWarnings("unused")
ReadEmails readMail =null;
try {
readMail = new ReadEmails();
} catch (MessagingException e) {
e.printStackTrace();
}

}

}

import javax.mail.MessagingException;
/**
* @author Eduardo Bregaida
*
*/
public class PrincipalNfe {
public static void main(String[] args) {
@SuppressWarnings("unused")
ReadEmails readMail =null;
try {
readMail = new ReadEmails();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}

Manifest:

Manifest-Version: 1.1
Main-Class: PrincipalNfe
Class-Path: lib-dep/activation.jar
lib-dep/dsn.jar
lib-dep/imap.jar
lib-dep/mail.jar
lib-dep/mailapi.jar
lib-dep/pop3.jar
lib-dep/smtp.jar

16 de setembro de 2009

Resolvido problema do Google

Bom já avaliaram o blog e viram que não é de SPAM, talvez ele pensaram isso já que os últimos posts apenas mandei do SlideShare as palestras pra cá, mas sem problemas.
Abraços

Engano do Google

O Java Anywhere foi marcado como um blog de SPAM, já enviei a solicitação para a retirada do mesmo.
Não se preocupem pessoal assim que eu tiver mais tempo, volto a colocar artigos técnicos, infelizmente estou sem tempo, novo emprego, aulas e faculdade, está corrido, mas prometo que em breve voltarei com muitas novidades.

12 de agosto de 2009

Borland

A Borland não existe mais !

Ou ao menos não com o seu verdadeiro nome, foi comprada pela Micro Focus.
Estive no escritório dela aqui em São Paulo na última sexta feira e foi triste ver o letreiro substituído por uma tira de papel com o nome da Micro Focus.

5 de agosto de 2009

Emprego

A Caelum lançou o site de empregos Onde Trabalhar - http://www.ondetrabalhar.com/

O que é o OndeTrabalhar.com?
Busque sua vaga e entre em contato diretamente com a empresa.

Detestamos burocracia. Sabemos que você quer apenas procurar boas oportunidades de emprego. Por que perder tempo preenchendo enormes formulários?

O OndeTrabalhar.com funciona como um site de classificados. Procure pelo tipo de vaga desejada e entre em contato diretamente com a empresa. Apenas isso.

O que você não precisa fazer no OndeTrabalhar.com:

* cadastrar o seu currículo;
* se perder com enormes formulários de pesquisa.

Comece já a buscar o seu próximo emprego!
Caelum - Ensino e Inovação GUJ RubyInside Brasil
Procurando talentos?
Suas vagas no topo das buscas em sites como o Google.

Precisa contratar? Nós fazemos os candidatos chegarem até você!

* as vagas aparecem bem posicionadas nas pesquisas, em sites especializados como o Google;
* alcançamos os melhores candidatos, pois nossas vagas são exibidas em algumas das maiores comunidades de tecnologia, como o GUJ.com.br e o RubyInside Brasil e em blogs populares como o Blog da Caelum;
* edite seus anúncios a qualquer momento;
* as vagas são publicadas imediatamente;

Entenda melhor sabendo Como Funciona.

Estimativa de prazos sem adivinhação!

Um artigo muito legal de um amigo que trabalhou comigo no projeto da VisaNet o grande Roberto Marinho dos Santos, Muito legal, fala sobre o tempo e estimativa, utilizei durante muito tempo FPA ou APF na TCS e era realmente bom, hoje utilizo o Planning Poker visto muito por que utiliza SCRUM, mas fica para uma outra hora, segue abaixo o texto escrito por ele:

Roberto Marinho dos Santos, PMP - rob.marinho@terra.com.br

Todos nós já ouvimos que o mercado é competitivo e sabemos que uma das consequências disso é a pressão por resultados, que são buscados geralmente na forma de projetos, e por sua vez são fundamentados em um tripé composto por escopo, custo e tempo, esse último, o tempo é o item que vamos abordar, procurando trazer luz a uma questão bem específica, principalmente no contexto de projetos de desenvolvimento de software, que é a de mensuração de prazos.
Formular prazos é algo que temos que lidar quase que diariamente, seja para uma atividade nova dentro de um projeto em que estamos participando, seja uma manutenção, ou diversos outros cenários em que nos vemos tendo que estimar prazos, e isso é algo que muitas vezes nos deixa desconfortáveis e apreensivos, pois nem sempre estamos seguros de estarmos informando o prazo suficiente ou exagerando na estimativa. Daí uma série de questionamentos se torna necessária: Como formulamos os prazos que fornecemos ? Quais são as ferramentas e técnicas que usamos para mensurar o prazo de uma atividade ? Simplesmente temos usado a famosa adivinhação, que consiste em "vou chutar e multiplicar por dois" ?.
A boa notícia é que existem formas de obter prazos mais precisos, com ferramentas e técnicas que podem ser usadas para obtenção dessas estimativas, e algumas delas são:

Opinião especializada, consiste em uma estimativa que pode se basear em informações históricas de outros projetos ou em opinião de especialistas, como por exemplo, consultar pessoas que possuem grande conhecimento específico em frameworks ou aplicativos que serão usados na atividade.

Estimativa análoga, significa usar a duração real de uma atividade anterior semelhante, como base para a estimativa da duração de uma futura atividade do cronograma, usada para estimar a duração quando existe uma quantidade limitada de informações detalhadas sobre a atividade. Pode também usar informações de projetos anteriores. A estimativa análoga da duração é mais confiável quando as atividades anteriores são verdadeiramente, e não apenas aparentemente semelhantes, e os membros da equipe que preparam as estimativas possuem a especialização necessária.

Estimativa paramétrica, uma estimativa de duração da atividade pode ser construída usando uma média das três durações estimadas. Muitas vezes essa média irá fornecer uma estimativa de duração da atividade mais exata do que a estimativa mais provável de um único ponto. Os três durações são:

Mais provável. A duração da atividade quando fornecidos os recursos com mais probabilidade de serem atribuídos, sua produtividade, as expectativas realistas de disponibilidade para a atividade do cronograma, as dependências de outros participantes e as interrupções.
Otimista. A duração da atividade se baseia em um cenário para o melhor caso
do que está descrito na estimativa mais provável.
Pessimista. A duração da atividade se baseia em um cenário para o pior caso do
que está descrito na estimativa mais provável.

Pontos de função, não poderia deixar de citar essa que é uma medida funcional de tamanho de software, introduzida em 1979 pela IBM, é realizada com base em cinco tipos de componentes de software: arquivos internos, arquivos externos, entradas, saídas e consultas. Embora tenha muitos críticos, por esses entenderem que essa técnica está ultrapassada, ainda encontra espaço no mercado e existem exemplos de seu uso demonstrando que essa ainda pode ser usada como apoio à estimativa de prazo.

Outro ponto a destacar é quanto a necessidade de abolir reservas não identificadas (tempo extra no prazo), que são usadas como garantia, e para isso é necessário uma mudança comportamental que deve começar e ser estimulada pelos gestores da equipe, que devem encorajar aqueles que vão fazer as estimativas a não incluir essas reservas nos prazos. Possíveis riscos e situações que possam gerar atraso identificados durante essas estimativas, devem ser registrados e reportados para que sirvam de apoio à previsão de reservas identificadas, criteriosas e de conhecimento de todos.
Concluindo, a expectativa aqui é estimular uma reflexão sobre as possibilidades na estimativas dos prazos e despertar o interesse sobre as técnicas para um possível aprofundamento, e porque não o seu efetivo uso, mesmo que de forma gradual mas consistente. Tenho certeza que os resultados valerão o esforço.


Referências Bibliográficas

International Function Point Users’ Group (IFPUG) - www.ifpug.org

Um Guia do Conjunto de Conhecimentos em Gerenciamento de Projetos (Guia PMBOK®) Terceira edição
2004 Project Management Institute.

26 de maio de 2009

Cloud Computing Apresentacao Uscs Final

Agradeço ao Sérgio Lopes, Moreira e Kung por ter deixado eu usar algumas imagens de palestras deles.
Essa apresentação rolou na universidade e como achei legal o tema, botei ela aqui depois.
Essa apresentação foi dada no trabalho do professor Claudio Cura, da universidade de São Caetano USCS, antigo IMES.
Check out this SlideShare Presentation:

25 de maio de 2009

Falando em Java - Eu Fui =)

O Evento foi muito bom, vou detalhar por cima o horário, provavelmente com o tempo a Caelum, vá disponibilizando os vídeos do evento.
Revi muitos amigos, pessoas que trabalhei, pessoas na qual fiz cursos na Caelum, pessoas que palestrei no mesmo evento que elas, enfim, um monte de gente que fazia um tempão que não conversava e muitos, muitosssss "GUJEIROS", hehehe depois ainda rolou uma comemoração junto com Jim webber, aliás é uma ótima pessoa, muito divertida, o Paulo, Moreira, Kung, Sergião, Guilherme e os demais funcionários da Caelum deram um show no evento.
Abertura Oficial - O Sergio Lopes e o Fabio Kung falaram da história da Caelum, a evolução, os cursos e como todo Falando em Java mostraram como a Caelum de um conjunto de 3 pessoas hoje conta com mais de 30.
Keynote: Guerrilha SOA - O grande Jim Webber falou sobre SOA, sobre como as empresas estão lidando com isso em Londres, foi bem interessante. (Tradução simultanea para quem não tem um inglês tão fluente foi feita pelo Paulo Silveira).
O profissional Java Efetivo - Paulo Silveira e Rafael Cosentino falaram sobre arquitetura Java, empresas e mercado.
JBoss Seam e WebBeans - Mostrou algumas aplicações e modos de trabalhar com Seam e a especificação de WebBeans.
VRaptor3: Guerrilha Web - Filipe Sabella e Guilherme Silveira mostraram o que há de novo no framework open-source desenvolvido por pessoas da Caelum.
Arquitetura para aplicações Java de médio porte - Guilherme Moreira e Sergio Lopes tentaram mostrar como podemos utilizar Cluster, infelizmente por problemas técnicos o sisteminha deu problema =(
Para onde vai a Plataforma Java? Linguagens dinâmicas, JavaTV, JavaFX e além! - Fabio Kung e Anderson Leite mostraram algo que venho dizendo já tem um tempo, outras linguagens rodando em cima da JVM vai ser o futuro, é o que devemos esperar e é o que já está acontecendo.
Web Services Restful: Putting Java to REST - infelizmente Bill Burke não pode vir devido ao governo não ter liberado o passaporte dele =/
Mas o Jim Webber, mais uma vez deu um show, tanto que comprei um livro de Restful (também comprei Técnicas para Gerenciamento de projetos de software) no final.

Depois de todas estas palestras, nada como relaxar num barzinho com toda galera do evento, falamos em Java, Scrum, empresas e etc.

Foi muito bom =)

A Caelum também anúnciou seu Livro de Arquitetura e Design de Softwares.

22 de maio de 2009

Ganhe ingressos para o Falando em Java

Hoje passeando pelo meu Twitter vi uma promoção do Ruby Inside Brasil falando sobre a promoção de concorrer à um ingresso grátis no Evento da Caelum - Falando em Java 2009
É legal para quem está com a grana meio curta, participe, pois o evento vai ser muito bom =)


Vale a pena pessoal, o evento vai ser muito bom.

20 de maio de 2009

Falhas em projetos é culpa da Cultura e não da Metodologia

Bom, estava pensando ontem durante o curso de certificação de Scrum, o maior problema da falha na construção de SW são as pessoas e não a metodologia em .
Pensem da seguinte forma:
Cascata, todos sabem que esse tipo de projeto não dá muito certo, ainda mais no esquema de escopo fechado, isso porque em todo o ciclo de vida do projeto as prioridades, os requisitos e o conhecimento seja ele por parte do fornecedor ou do cliente mudam, melhoram e o sistema tende a mudar.
Vendo as metodologias ágeis (Não estou apenas falando de SCRUM, não importa se é Scrum, XP, FDD, Crystal e etc...), quando falo metodologias ágeis quero dizer o Manifesto Ágil em si.
O que nos diz o manifesto ágil?
  • Indivíduos e interação entre eles mais que processos e ferramentas;
  • Software em funcionamento mais que documentação abrangente;
  • Colaboração com o cliente mais que negociação de contratos;
  • Responder a mudanças mais que seguir um plano.

Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.

Fonte: Improve IT

Sinceramente vejo que muitas empresas, seja elas de pequeno, médio e grande porte dão muito mais valor as ferramentas e processos do que as pessoas.
Tanto que normalmente quem trabalha (principalmente em fábrica) é um "recurso", um Code Monkey que pode ser descartado a qualquer momento e substituído por outro.
E isso é um erro, pessoas são importantes, quando você deixa de motivar as pessoas de sua equipe elas tendem a sair, ou seja, não é só dinheiro que tira um cara bom do projeto e sim o ambiente no qual ele está instalado (Não estou dizendo nada sobre trabalhar de graça, dinheiro não importa e etc), se o cara é motivado de qualquer forma, ele sente que tem participação e importancia naquele determinado projeto o funcionário tende a estar mais motivado, produzir mais, estudar mais, porém, se a cultura da empresa preza que o cara é apenas um "recurso humano" e deixa ele meio que de canto (típico: "Vai fazendo aí"), o cara deixa a produção quase no zero, não quer saber de nada e provávelmente se ver outra oportunidade ele vai embora da empresa, isso é fato.
Nesses meus 5 ano de experiência tive diversos gerentes de projetos, daqueles mais arrogantes aos mais humildes, pessoas que trabalharia de novo e pessoas que nunca mais gostaria de ver na vida, pensando porque grande parte dos gerentes de projetos tendem a ficar assim:

1 - O gerente normalmente tem pouca ou nenhuma experiência e está sozinho;
2 - Comando-Controle, ele quer controlar tudo que alguém vai fazer;
3 - Status, o gerente está no topo da cadeia e todo mundo abaixo é serviçal.


E o que as metodologias ágeis vão me ajudar em uma cultura assim?
Provavelmente se ninguém mudar, não vai ajudar nada, na verdade a forma de melhorar um ambiente assim é começar mudando a forma como as pessoas pensam, isto é, o Cliente tem que estar 100% envolvido no projeto (não tem desculpas do tipo, ahhh ele está acostumado a fazer o levantamento junto ao analista de requisito e depois ele vai embora e só volta depois de 1 ano para ver o que aconteceu), a equipe não pode ficar tendo conflitos internos como acontece no modelo Cascata, como assim? vou mostrar o modelo cascata e dizer como ocorre esses conflitos:


Você tem a fase de Requisitos do sistema, requisitos de SW, design, Programação, Testes e Manutenção.
Normalmente o Analista de Requisitos de SW não gosta do Analista de Requisitos do Sistema porque ele faz a análise "Errada", o Design não gosta do Analista de Requisito de SW porque não era "necessário" para montar as telas do Sistema, o Programador não gosta do Design porque as telas são complexas e coloridas, o programador também odeia os Testers porque eles acham falhas, os Testers detestam os programadores porque não fazem certo e TODOS odeiam o Cliente que é o cara que está pagando.
Este exemplo eu vi com o Alexandre Magno e é a mais pura verdade, todos estão separados, assim que chega para o programador é como se a parte acima estivesse pronta e o projeto "terminado" e não é bem assim.

As metodologias ágeis forçam as pessoas a cooperar, o "Status" (Entendam Status como: Gerente, Coordenador, Arquiteto e etc) morre, o que existe é o Time, o time é responsável por fazer aqui andar, o time tem responsabilidades e o principal não é uma pessoa que vai ser cobrada, é o time todo, a idéia de individualidade deve desaparecer, o ScrumMaster não é necessáriamente um cara tecnico ou um Gerente de Projetos, o ScrumMaster é um cara que vai facilitar a vida do time e forçar que o time cumpra o que o Scrum diz, o Cliente tem que estar envolvido, seja de forma direta como de corpo presente, seja por um representante, o Cliente ou a pessoa que irá representá-lo no caso do Scrum em particular é o Product Owner (PO), o ScrumMaster não é o cara que a todo momento sozinho conversa com o PO, o time participa, o time faz as reuniões junto e o time aprende a ser auto-organizado, ou seja, o time se sente parte do projeto, o time evolui e o time sabe se organizar.
Muitas pessoas afirmam que isso não funciona, o famoso: "No meu projeto não se aplica", isso porque "dói" você mexer na zona de conforto, "dói" dizer que você não tem mais um poder soberano e só você manda, "dói" dizer que o time também decide o que vai dar para entrar em um Sprint ou não e principalmente "dói" mostrar ao cliente que ele não vai poder mexer em um Sprint em andamento, que pode cancelar um Sprint, se e somente se, o Sprint estiver comprometido com a mudança, ou seja, sair da zona de conforto é algo que dói e o pessoal acha comodo trabalhar em um modelo que o cliente não muda requisito porque tem uma multa gigante caso ele o faça, coloca uma gordura enorme no ciclo de desenvolvimento e o time além de desmotivado, transforma o projeto em um laboratório de pesquisa (Ou seja, testa tudo que há de novo no mundo da tecnologia que ele utiliza, mesmo que seja ultra-alpha 0.1.1_01) e muitos acabam como o próprio Alexandre diz, na famosa Síndrome do Estudante, vai deixando pra depois porque o tempo é grande e na última semana vara a madrugada fazendo porque foi deixando pra lá.
O fato é que qualquer metodologia ágil funciona SIM, desde que você Scrum Master treine o pessoal, ensine, mostre as vantagens, para o cliente, mostre quanto ele está gastando no modelo de escopo fechado com a gordura que você vai precisar colocar, mostre para ele que não vai poder ter mudanças pois não é algo previsto, mostre que levantar um sistema todo no começo provavelmente não dará certo.
Para a equipe, mostre para eles as vantagens de ser comprometidos com o projeto além do PO e do Scrum Master, mostre que eles fazem parte do corpo do projeto e que são importantes, não mais recursos, mas membros que fazem o projeto andar.
E Scrum Master cuidado para nunca cair no Comando-Controle, você não manda, você mostra, você opina, você tira dúvidas com o time e com o PO e você FACILITA a vida do time e não dá ordem para eles.
Mostre que o PO e o Time tem que estar comprometidos, que eles são toda a essência e importância do projeto e é claro, você já sabe que no papel de Scrum Master, você também tem que ter foco e estar comprometido.
Resumindo: Ouço muito o pessoal achando que Agile é apenas uma Buzz Word, uma modinha que não dará certo e que depois de um tempo você simplesmente esquece, bom, isso não é verdade, se você usa um Scrumbut, ou seja, tudo o que você acha legal, e o que "dói" você não pratica, realmente seu projeto e prazo vão estourar e realmente a metodologia não vai funcionar e é mesmo culpa dela? É duro sair da zona de conforto, mas os resultados serão totalmente positivos.

13 de maio de 2009

Palestras e Eventos

Bom, já passou as palestras em Santa Fé do Sul e na FATEC, foram muito legais, alunos bons e foi divertido, estou colocando o post com as próximas e a correção, pois alterei o dia da minha palestra na Sucesu, pois no dia 02/05 não estarei aqui próximo do centro de SP.

Dia: 24/05/09
Evento: Falando em Java
Tema: Java
Local: São Paulo - Liberdade
Organizador: Caelum
Valor: R$95,00


Dia: 09/07/09
Evento: SUCESU
Tema: JSF e Tecnologias Java Web - Eduardo
Local: R. Tabapuã, 627 1º Andar - Itaim Bibi - São Paulo
Organizador: SUCESU-SP
Valor: Grátis


Dia: 27/06/09 - 25/07/09 - 29/08/09 - 26/09/09 - 24/10/09 - 28/11/09 e 30/01/2010
Evento: Reuniões sobre Java e Agile
Local: Rua Amazonas, 521 - São Caetano do Sul - Próximo a estação São Caetano
Organizador: IT Training
Valor: Grátis

OBS: Essas reuniões serão divulgadas durante os meses, pois ainda não estão definidos os temas.
Palestrantes: Eduardo Bregaida, Rubem Azenha, Paulo Silveira, Igor Medeiros, Adrian Dantas, Thiago Senna, Juliano Claiton, Luis Specian, Haroldo Macedo, Christian Reichel.

Dia: 02/06/09
Evento: JustJava 2009
Local: São Paulo
Organizador: SUCESU-SP
Valor: Á Definir
OBS: O JustJava ainda está na fase de chamada para trabalhos.

5 de maio de 2009

Java e o Mercado De Trabalho

Palestra apresentada em Santa Fé do Sul, muito boa a faculdade, adorei o local, o Hotel também estava show, os alunos são dedicados e gostei muito mesmo do modo como me trataram, show de bola.

28 de abril de 2009

Próximas Palestras

Pessoal, estou colocando os dias e horários de alguns eventos que vou palestrar ou vou assistir.
Eventos que vou palestrar: Santa Fé do Sul, FATEC São Caetano do Sul, SUCESU e em 2 dias das reuniões da IT Training.

Dia:
04 a 07 de Maio
Evento: I Semana Computacional
Tema: A WEB, Java e o Mercado de Trabalho - Eduardo Bregaida.
Local: Funec - Santa Fé do Sul/SP
Organizador: Vinicius dos Santos
Valor: Grátis

Dia: 11/05/09
Evento: FATECNOLOGIA
Tema: Projetos Ágeis com Dr. House - Eduardo Bregaida.
Local: R. Bell Aliance, 225 - Jd. S. Caetano - São Caetano do Sul
Organizador: FATEC
Valor: Grátis

Dia: 24/05/09
Evento: Falando em Java
Tema: Java
Local: São Paulo - Liberdade
Organizador: Caelum
Valor: R$95,00


Dia: 02/06/09
Evento: SUCESU
Tema: JSF e Tecnologias Java Web - Eduardo
Local: R. Tabapuã, 627 1º Andar - Itaim Bibi - São Paulo
Organizador: SUCESU-SP
Valor: Grátis


Dia: 27/06/09 - 25/07/09 - 29/08/09 - 26/09/09 - 24/10/09 - 28/11/09 e 30/01/2010
Evento: Reuniões sobre Java e Agile
Local: Rua Amazonas, 521 - São Caetano do Sul - Próximo a estação São Caetano
Organizador: IT Training
Valor: Grátis

OBS: Essas reuniões serão divulgadas durante os meses, pois ainda não estão definidos os temas.
Palestrantes: Eduardo Bregaida, Rubem Azenha, Paulo Silveira, Igor Medeiros, Adrian Dantas, Thiago Senna, Juliano Claiton, Luis Specian, Haroldo Macedo, Christian Reichel.

Dia: 02/06/09
Evento: JustJava 2009
Local: São Paulo
Organizador: SUCESU-SP
Valor: Á Definir
OBS: O JustJava ainda está na fase de chamada para trabalhos.

15 de abril de 2009

Inscrições Abertas para o Falando em Java 2009


Finalmente depois de Muita espera Finalmente as inscrições do Falando em Java estão abertas.
Espero que todos os leitores do Blog possam ir.
Estarei lá, caros leitores, quem estiver por lá me procure para trocarmos idéias.

Programação do Evento

Horário Evento Palestrante
08:10 Coffee de Boas Vindas e Credenciamento
08:50 Abertura Oficial
09:10 Keynote: Guerrilha SOA Jim Webber
10:40 O profissional Java Efetivo Paulo Silveira e
Rafael Cosentino
11:30 JBoss Seam e WebBeans Alessandro Lazarotti e
Ricardo Nakamura
12:20 Lanche Reforçado
13:10 VRaptor 3: Guerrilha Web Felipe Sabella e
Guilherme Silveira
14:30 Arquitetura para aplicações Java de médio porte Guilherme Moreira e
Sergio Lopes
15:20 Lanche
16:00 Para onde vai a Plataforma Java? Linguages dinâmicas, JavaTV, JavaFX e além! Anderson Leite e
Fabio Kung
16:45 Web Services Restful: Putting Java to REST Bill Burke
18:50 Sorteio

Lembrando que a idéia do Almoço, café e lanches é para o pessoal se conhecer, trocar idéias e experiências.
Espero encontrar muitos amigos e colegas de trabalho lá.

Local:
ESPAÇO DE EVENTOS HAKKA
www.hakkaeventos.com.br
Rua Joaquim, 460 - Liberdade

Valor da Inscrição:
R$ 95,00 / Ex-Alunos: R$ 65,00 / Empresas: 25% de Desconto (Acima de 2 participantes)

Valor do estacionamento c/ vallet:
R$ 15,00 (durante o evento)



10 de março de 2009

Notas Rápidas

Bom galera vou passar bem rápido no que estou fazendo.
1 - Coloquei no ar a versão alpha do meu site o Bregaida.com
2 - Deixei pelo menos no momento este layout no blog, é bem clean, melhor que o antigo.
3 - Estou fazendo a parte 1 do resumo da SCJP, vai englobar os Capítulos 1 e 2 do livros principal de certificação o SCJP: Certificação Sun para Programador Java 5 - Guia de Estudo. Lógico que com o resumo você não vai conseguir tirar a certificação, compre e leia o livro.
4 - Estou estudando para algumas coisas da faculdade, então está meio corrido.
5 - em breve terei que fazer uma apresentação de Cloud Computing, também irei disponibilizá-la.
6 - Criei um grupo público para divulgação e discussões sobre Java, outras LPs, metodologias, gerencia de SW, tem como se inscrever aqui no Blog, está em cima das propagandas =) Participem.


Qualquer dúvida, críticas, sugestões ou problemas, fique a vontade para mandarem mensagens ou e-mails.

Até mais.

5 de março de 2009

Blog de cara nova

Pessoal, desculpe o transtorno, mas vou ver se modifico todo o layout do Blog.
Talvez perca alguma coisa e espero que isto não ocorra mas...
Desculpem pelo transtorno.

2 de março de 2009

Evento: Falando em Java 2009

A Caelum está mais uma vez dando início ao evento Falando em Java, é um ótimo evento, com diversas palestras e ótimas apresentações.
A Caelum também abriu uma promoção para ganhar um ingresso, confira aqui.

Dados do Evento:

Data: 24 de maio 2009.
Horário: 8:00 as 18:00.
Valor da Inscrição: R$ 95,00
Desconto para alunos e ex-alunos: R$ 60,00
Local: ESPAÇO DE EVENTOS HAKKA
www.hakkaeventos.com.br
Rua Joaquim, 460 - Liberdade
5 minutos do metrô São Joaquim
Valor do estacionamento: R$ 15,00 (Durante o evento)

Site do Evento: Falando em Java 2009
Site da Promoção: Promoção Falando em Java 2009

Realização:


28 de fevereiro de 2009

Cloud Computing ou Computação nas Nuvens

Bom, meu professor de Arquitetura de Hardware (Claudio da USCS) pediu para fazer um trabalho sobre Cloud Computing, um termo novo baseado em um conceito desde a década de 60.
Estou postando aqui o trabalho que achei bem legal e baseado em artigos, entrevistas, vídeos, blogs e sites montei este trabalho.
Bom fiquem a vontade para comentar.
Adicionei um passo a passo criado no artigo de Paulo Roberto Jr do Viva o Linux que achei muito bom, sobre o Linux eyeOS.

Cloud Computing é um novo conceito que chega ao mercado, se refere a um ambiente de computação baseado em redes massivas de servidores, sendo eles, virtuais ou físicos, um novo meio de SaaS (Software as Service) para aplicativos.
Tem um longo histórico, com início em telefonia, o conceito foi criado na decada de 60 por John McCarthy, comercialmente este termo começou a ser utilizado na década de 90.
Muitas empresas pioneiras estão apostando neste conceito como é o caso da IBM com a iniciativa Blue Cloud para empresas criarem suas próprias nuvens de computação, pagando um aluguel pela mesma, EC2 (Elastic Cloud Computing) da Amazon , AT&T, Intel, a Dell, HP, IBM, a Google, Yahoo, Microsoft, dentre muitas outras grandes empresas estão se tornando adeptas a este conceito.

Cloud Computing é um termo usado para descrever um ambiente baseado em redes massivas de servidores, sendo virtuais ou físicos, como dito anteriormente, Cloud Computing hospeda as Cloud Applications, nada mais é do que as aplicações sendo residentes nas nuvens (entenda-se Cloud como nuvem), pode ser visto como um estágio mais evoluído dos conceitos de virtualização.

É uma arquitetura muito mais do que um conjunto apenas de computadores, deve dispor de uma infra-estrutura de gerenciamento que inclui funções como provisionamento de recursos computacionais, balanceamento dinâmico do workload e monitoração do desempenho.


Apesar do foco inicial ser no hardware, especialistas defendem tratar-se de um conceito mais amplo, principalmente quando o assunto é sua aplicação em negócios.
“O cloud computing é, na verdade, um super conjunto de recursos que abrange servidores, impressão, armazenamento e também processos”, afirma Waldir Arevolo, sócio-diretor da TGT Consulting.

Desta forma, o conceito ganha formas mais complexas como fazer todos os recursos de aplicativos online trabalharem de forma integrada.

Na cloud computing basta apenas um computador com um sistema operacional, de um navegador web e acesso a internet, onde realmente estão seus dados? Na realidade os dados são espalhados por milhões de servidores.

Empresas como Google e Yahoo, mantém parques computacionais com centenas de milhares de máquinas, estima-se que as cinco maiores empresas de busca na Internet tenham ao todo um parque computacional com cerca de 2 milhões de servidores.

A IBM em parceria com a Google estão apostando em desenvolver um conjunto de aplicações em nuvens com alguns alunos de universidades americanas.
A At&T decidiu investir 1 milhão de dólares em infra-estrutura de redes que deve ser expandido para os Estados Unidos, Europa e Ásia.

O conceito de nuvem surgiu nos anos 70 quando os cientistas perceberam que o desenvolvimento da internet e das redes de comunicação acabaria criando um espaço virtual sem dono e sem fronteiras onde circulariam softwares e informações que poderiam ser acessadas por qualquer usuário.

Cientistas alemães começaram a estudar as conseqüências sociais e culturais da nuvem informativa ao desenvolver o modelo iClouds, que faz parte do projeto MUNDO (Móbile and Ubiquous Networking via Distributed Overlays – Rede Móvel e Ubíqua por meio de Camadas Distributivas).

Explora as relações que as pessoas poderão estabelecer a partir do uso de sistemas pessoais de comunicação, chamados iClouds, muito semelhantes aos telefones celulares, o estudo feito na Universidade Tecnológica de Darmstadt, afirma que estes aparelhos de comunicação pessoal dispensam o controle centralizado dos celulares e não dependem da internet.

A mais revolucionária idéia desenvolvida pelo projeto Mundo é a de que a capacidade informativa de cada indivíduo cresce proporcionalmente ao número de pessoas ingressam na área de alcance do seu aparelho, podendo significar um novo avanço na descentralização no fluxo de noticias.
Os usuários acessarão os aplicativos, realizarão todas as suas tarefas online e guardarão o material em arquivos digitais também na Web.

A HP, Intel e Yahoo! fecharam uma parceria para a criação de centros de pesquisas virtuais com o objetivo de desenvolver a tecnologia de computação em nuvem.

A tecnologia de computação em nuvem poderá vir a oferecer armazenamento de dados e a promessa de uma gama de novos serviços que poderão ser "plugados" a nuvem. O acordo entre as empresas estabelece que inicialmente seis data certers serão disponibilizados aos pesquisadores pré-selecionados para testar as novas aplicações.

"Computação em nuvem representa a nova era da computação. Trabalhar com este tipo de escala significa que teremos muitas questões para resolver e um crescimento de problemas para a ciência da computação. Nós queremos criar um ambiente para que possamos começar a responder alguns destes desafios" disse um diretor do Laboratório de Pesquisas da HP.

Nas palavras de alguns CIO e executivos de empresas do ponto de vista do novo conceito:


Nicholas Carr abriu o Interop São Paulo com a apresentação “TI na era da computação em nuvem”, a qual procura mostrar os impactos do desenvolvimento das capacidades de processamento e de conectividade para os negócios das empresas.

O executivo é famoso pelo livro e artigo “IT doesn’t matter”, publicado em 2001 na Harward Business Review.

Segundo ele, assim como a eletricidade promoveu diversas inovações quando tornou-se barata e disseminada, a cloud computing deve impulsionar a inovação corporativa.

A transformação, depende de adaptações das organizações de TI, a reengenharia da infra-estrutura é uma nova forma de pensar as interfaces com os usuários, além disso, seria necessário a mudança com relação aos departamentos de tecnologia da informação, que terão de ser menos técnicos, menos controladores e menos dedicados à manutenção.

“A computação em nuvem é muito mais do que uma nova tecnologia. Significa a oportunidade de os departamentos de TI começarem a pensar em novos produtos e novas formas de fazer negócio”, diz Nicholas Carr.

Juntando tudo, cloud computing pode ser definido como um modelo no qual a computação (processamento, armazenamento e softwares) está em algum lugar da rede e é acessada remotamente, via internet.

“Com o cloud computing, qualquer um pode ter um supercomputador em casa”, afirma Fábio Boucinhas, diretor de produtos do Yahoo Brasil.

“O que realmente significa é que alguém vai assumir a responsabilidade de entregar algumas funções de TI como serviços para alguns clientes e eles não precisam saber como funciona, eles simplesmente usarão”, esclarece Daryl C. Plummer, vice-presidente do Gartner, em um podcast da empresa de análise.

O conceito nasce para solucionar um problema originado dentro das corporações. “As organizações de TI gastam hoje 80% de seu tempo com a manutenção de sistemas e não é seu objetivo de negócio manter dados e aplicativos em operação. É dinheiro jogado fora, o que é inaceitável nos dias de hoje”, defende Clifton Ashley, diretor do Google Enterprise para a América Latina.

José Nilo Martins, diretor do Google Enterprise no Brasil, afirma: “O cloud é uma evolução de um conceito básico: utilizar serviços de uma rede externa”

Nicholas Carr, escritor do livro: “The Big Switch: Rewiring the World, from Edison to Google”, faz a previsão: a computação nas nuvens acabará com a maioria das áreas de tecnologia corporativas, “Os departamentos de TI não terão muito que fazer depois que a computação corporativa migrar se data centers provados a ‘nuvem’”.

André Mendes, CIO da Special Olympics, diz: “Ajuda o CIO a remover outra camada de complexidade da organização e se concentrar em fornecer os níveis mais altos de valor.”, a empresa está esperando migrar seus Data Centers, hoje em serviços de hospedagem, para mudar a este novo conceito.

Empresas tem palavras diferentes para expressar a mesma idéia, a Salesforce.com tem a visão de SaaS, já a IBM inclui mashups de conjuntos massivos de dados de clientes em tempo real.
Quando a Salesforce.com fala sobre cloud computing, falam em utilizar aplicativos via Internet, ela está se referindo a software como serviço (SaaS), também conhecido como software “on demand”.

Quando a empresa Google fala sobre o tema, está na realidade dizendo sobre reunir um grande número de máquinas para permitir que pesquisadores em campos de computação intensiva, como pesquisa médica e de segurança, façam cálculos massivos, lembrando muito a idéia de “grid computing”.

“O mais relevante é que estamos falando de uma escala que não é mais local, mas sim global. O Google tem dezenas de data centers espalhados pelo mundo. Todos prestam serviços não a um país, mas a diversos, atendendo milhões de usuários”, define José Nilo Martins, gerente sênior de Google Enterprise para o Brasil.

"Eu diria que o computador do futuro é a internet", “Hoje, se você tem um problema no computador, está tudo perdido, é terrível. Mas, com a computação nas nuvens, não importa se você usa o celular, o computador ou qualquer outro aparelho, tudo estará guardado na internet." afirma Eric Schmidt, atual presidente do Google.
Muitos e muitos PCs multicore e servidores funcionando juntos através de redes com alta largura de banda.

A Amazon, possui o serviço Elastic Computer Cloud (EC2), uma idéia simples, acessar os data centers da Amazon, adquirindo apenas o que a sua empresa necessita, obtendo acesso ao servidor conforme sua necessidade, para qualquer que seja os projetos da empresa.
Atualmente inúmeros usuários acessam o aplicativo de um fornecedor, no Cloud computing a idéia é a mesma, rodar seus aplicativos na infra-estrutura de seu fornecedor.

“O cloud é, basicamente, uma combinação de grid computing, que tratava basicamente de potência de processamento bruta, e software como serviço”, Dennis Byron, analista da Research 2.0. “Na realidade, cloud é virtualização de rede.”

Para os fornecedores a intenção é que o usuário necessite de mais potência de computação durante o uso, ou seja, que seja rápido e escalável.

Seria uma alternativa para grupos ou departamentos nas empresas que não tem como comprar a infra-estrutura economizar na infra-estrutura da cloud computing.

Exemplos disso temos o New York Times, que utilizando do serviço de cloud da Amazon gera PDFs de 11 milhões de artigos arquivados do jornal em menos de 24 horas, utilizando 100 instancias do sistema EC2, este dado foi colocado pelo arquiteto de software Derek Gottid do jornal em seu blog.

Poderia ser utilizado também a idéia da computação nas nuvens para prevenção de desastres, já que a empresa pode estar em uma área considerada de riscos naturais, como furações, tornados, terremotos, enchentes e etc, como é o caso da Schumacher Group, no qual sua sede próximo as áreas atingidas pelos furacões Katrina e Rita.

A Schumacher Group também acabou sendo beneficiada no modo de transporte dos dados e acessos que são rápidos e podem ser ativados de modo mais ágil, sendo que somente o transporte a um novo escritório levava meses anteriormente, também percebeu que rodar alguns aplicativos seria mais vantajoso deste modo, no caso instalaram outro software de uma empresa que também aposta neste novo conceito e foi personalizado diversos aplicativos da empresa Apptus com o CRM da Salesforce.com, só neste investimento, economizaram US$ 40 mil anuais em hardwares adicionais, apesar de tudo o grupo diz que seu data center não será migrado no momento, por motivos de segurança que ainda estão em fase de evolução dentro da própria idéia da cloud, possuindo hoje o serviço single sign-on e o gerenciamento de senhas.

A HP (Hewlett-Packard), anunciou o lançamento do HP Upline, serviço de armazenamento online que oferece espaço ilimitado a US$ 60,00 ao ano, esta ferramento oferece utilidados que eram sempre disponibilizadas separadas, contará com backups automátivos, restauração das informações, compartilhamento de arquivos.

“Em alguns anos não vamos chamar isso de cloud computing. Não terá nome. Será simplesmente computação”, defende Luis Sena, gerente de marketing de serviços da HP Brasil.

Atualmente o serviço só funciona com usuários de Windows já que deve-se baixar um cliente e o serviço de 1 GB grátis por 1 ano para testes, pode ser encontrado no site: https://www.upline.com/.

A empresa Dell entrou com o pedido para registrar o termo cloud computing, no qual já está na fase conhecida como Notice of Allowance, na qual a companhia recebe “uma notificação por escrita do USPTO de que uma marca específica passou pelo período de oposições [...] e está livre para registro”, isto não significa que a Dell já registrou, apenas que tem a autorização para registrar a marca.

Dell descreve cloud computing como “uma manufatura customizada de hardware de computadores para uso em data centers e ambientes computacionais de grande escala para outros”.

Outra gigante no ramo é a Apple Computer, atualmente a Apple trabalha com cloud computing no MobileMe, em concorrência a este serviço, temos a Microsoft com o Live Mesh.

A Sun Microsystems também entrou no investimento de cloud computing, a empresa famosa pela crição de uma das maiores linguagens de programação e mais utilizada no mundo o Java, adquiriu também o MySQL e agora adquiriu a empresa especialista em cloud computing a Q-layer.

A Q-layer foi fundada em 2005, provendo soluções no segmento de cloud computing, como administração de servidores, memória, soluções para banda, permitindo uma configuração baseada nas necessidades dos usuários.

A Sun Microsystems possui um portal de soluções em cloud computing, como soluções de Data Center, no portal que está listado na sessão de referências neste trabalho, há vídeos e notícias sobre a Sun no meio da disputa pela corrida da cloud.

Quais as desvantagens?

As principais desvantagens atualmente se coloca em torno da segurança e latência de aplicativos, ainda não existe base de modelos de negócio e valores, outro problema senão o mais “impactante” seria a confiança em terceiros para armazenagem de dados importantes.

Conhecer os componentes e seus responsáveis: a empresa precisa saber do que a nuvem é composta e quem são os responsáveis pos seus componentes.
Recuperação de dados e backups.

Localização dos servidores onde seus dados estão armazenados.

Conceito segue o modelo de colaboração: o usuário necessita conhecer e saber usar a plataforma e os padrões.
Provar que o conceito pode ir além da virtualização e do software.
Definir questões relacionadas a gerenciamento e interoperabilidade.

Segurança, latência, níveis de serviço e disponibilidade são problemas que preocupam executivos de TI.

Porém um problema não muito visível e um dos piores seria a cultura, diversas empresas tem um certo receio de mudar, devido a possíveis problemas que podem ocorrer, é um medo quase sempre precoce, devido o modo da evolução e a velocidade como a tecnologia anda evoluindo, porém é uma questão de prós e contras, no momento ainda há muitos problemas de segurança e latência que serão corrigidos, porém a empresa que migrar quando tais problemas terminarem terão em suas mãos velocidade, escalabilidade e facilidade de gerenciar suas aplicações.

Quais os Benefícios?


Melhor utilização dos recursos computacionais;

Consolidação de recursos de hardware para ser aproveitado de forma máxima e inteligente;

Introduzir melhorias sem afetar a rotina de seus usuários;

Não há necessidade de equipamentos potentes para acessar aplicações;

Potencialização dos conceitos consolidados de virtualização;

Barateio do Hardware;

Maior espaço de armazenagem;

Redução do time-to-market para aplicações comerciais;

Entra diretamente nos conceitos de aplicações Web 2.0, como jogos e outros aplicativos;

Modelo computacional On-Demand, alocação de recursos de forma dinâmica;

Trocar a infra-estrutura física, por uma virtual.

Alguns aplicativos:

O Google também está criando o Gdrive, diferente do Gdrive que atualmente existe com limite de 1 GB, este novo vai funcionar como o SkyDrive da Microsoft e possuir um espaço muito maior.

Gmail, ferramentas como o Gears e o Apps, todos do Google, que permitem acessar programas sediados na "nuvem", o Chrome, navegador desenhado para imitar um computador convencional,

O Sugartrip é um aplicativo em preparação para o celular do Google. Ele pode identificar a velocidade do motorista com um aparelho da empresa, monitorar e passar informações sobre o tráfego.

A visão, que cria uma nova era computacional, transformará os computadores atuais em equipamentos desatualizados. Para o Google, a internet deve se transformar numa plataforma completa de aplicações, criando um mundo onde as pessoas não precisem mais instalar softwares, a única necessidade será uma conexão com a internet.

Para que isto se torne uma realidade, a Google tem elevado seus investimentos em redes de internet como WiMax, cabos multi-terabit submarinos e buscando tornar as redes de comunicações atuais voltadas para seus interesses, como no caso do leilão do espectro de 700 Mhz.

GMail Drive é uma extenção Shell que cria uma unidade virtual em sua máquina, possibilitanto armazenar seus arquivos em uma unidade virtual que é na verdade sua conta de Gmail.

O Google oferece o Google Apps, um conjunto de aplicativos com funções similares ao “Office”, como webmail (GMail), gerenciadores de documentos e planilhas (Google Docs), criador de páginas web (Page Creator), a diferença é que este “Office” é online.
A Apple também está na jogada com o MobileMe:

O MobileMe, da Apple, concebido para que o usuário sincronize remotamente todos os seus aparelhos Mac.

A Fundação Mozilla, desenvolvedora do Browser FireFox, lança a nova versão 0.2 da Mozilla Weave, permite sincronizar cookies, senhas, dados de formulários e tabs abertas, além dos elementos padrões como favoritos e histórico.

A idéia é criar uma "nuvem de dados" que permita ao usuário acessar seus dados em qualquer lugar e através de qualquer computador.

Também existe planilhas eletrônicas do NumSum, são gratuitas e pode-se compartilhá-las.

A maioria dos webmails, GMail, Yahoo Mail, Hotmail e etc, no qual se acessa suas mensagens de qualquer servidor em qualquer lugar do mundo.

O Thumbstacks para apresentações em slideshows.

Da empresa Adobe temos o Photoshop Express, o site oferece 2 GB de armazenamento e galeria de fotos.

Outra opção de fotos é o Snipshot.

O MyPictr também para fotos, sites como MySpace, Facebook, Skype, Blogger, YouTube e Flickr o utilizam.

Temos o WobZip para descompactar arquivos online, aceitando arquivos em diversos formatos, em arquivos de até 100 MB, ainda examina com anti-vírus onlien os arquivos.

O Terra oferece um Disco Virtual com capacidade de 100 MB para armazenar arquivos e acessá-los online.

Outro armazenamento virtual é o Box, com a capacidade variando dependendo do valor a ser pago.

Ou ainda o Microsoft Office Live, o serviço é beta e está disponível para testes apenas na Alemanha, França, Japão, Inglaterra e Estados Unidos.
Em breve a HP, IBM e Microsoft (atualmente com o SkyDrive) estarão oficialmente disponibilizando serviços de armazenamento baseados em cloud computing.
CRM online da Salesforce.com.

Também o Google apresentou o Google Helth, serviço online de informações sobre saúde sobre o seu usuário, a ferramenta também disponibiliza um link que auxilia o usuário a encontrar médicos, também avisa os usuários quando é necessário eles tomarem seus remédios.
"Se alguém pode demistificar o que é saúde, e tornar isso divertido, o Google pode", disse Dr. Michael Roize, vice-presidente de bem estar da Cleveland Clinic.

A Amazon com o S3, ou o EC2.

A Microsoft com o Sistema Operacional Azure, o SkyDrive, o Live Mesh, dentr outros citados neste trabalho.

Que tal um sistema Operacional que roda de um browser? Totalmente voltado a clou computing, o Linux também já está se equipando na nova tendencia com o sistema eyeOS.



Paulo Jr deixou este SO rodando para teste, vale a pena conferir:

http://www.windows.paulojr.info

O mesmo autor deixou este passo a passo de como proceder a instalarção deste OS que foi colocado abaixo neste trabalho.

Para você rodar este SO é necessário no servidor:

• Passo 1: Sistema operacional Linux baseado no kernel 2.6.x.x de preferência;
• Passo 2: Implementar um Webserver com suporte a APACHE2;
• Passo 3: Implementar o PHP5 no APACHE2;
• Passo 4: Implementar o MySQL;
• Passo 5: Baixar o EyeOS;
• Passo 6: Instalar o EYEOS.

No caso de ser Windows é necessário o Apache, PHP5, MySQL e um servidor XAMPP.

Modo de instalar o eyeOS:

Primeiro passo:

Baixe o pacote do eyeOS:

http://eyeos.org/

Comandos para baixar o pacote:

OBS: Eu adaptei do tutorial o X.X.X.X que seria a versão 1.1.1.1 por exemplo.

$ wget http://downloads.sourceforge.net/eyeos/eyeOS_X.X.X.X.tar.gz

Segundo passo:

Mova este pacote para o diretório de seu webserver, local onde ficam os sites:

# mv eyeOS_X.X.X.X.tar.gz /var/www/html
ou
# mv eyeOS_X.X.X.X.tar.gz /var/www/

dependendo da sua distribuição ou localização do seu DocumentRoot do Apache2.

Terceiro passo:

Enviar para o server e descompactar dentro do diretório onde ficam as páginas na web, geralmente em /var/www/html/ - para RedHat´s e /var/www/ para Ubuntu e Debian´s like.

Para descompactar o pacote em tar.gz:

# tar -xvfz eyeOS_X.X.X.X.tar.gz

Quarto passo:

Permissão completa na pasta:

# chmod 777 eyeOS -Rf

Quinto passo:

Abra o link:

http://ip_do_servidor/eyeOS

em seu browser favorito.

Sexto Passo:

A seguinte tela aparecerá:

Clique em instalar.

O primeiro login é "root" e a senha é a que você definiu.

Aparecerá uma imagem semelhante:


Obs.:

• Você pode criar um novo usuário, mas somente o usuário root pode instalar novos aplicativos, temas, línguas, atalhos, entre outras coisas;

• Caso não deseje que não seja permitido que o usuário ou cliente crie seu login, desative a opção de criação de conta na instalação, na primeira tela.

O eyeOS é o Sistema Operativo Cloud Computing, para trabalhar on line, dentro de um browser, é um software livre, no qual você tem as vantagens de ter um sistema operacional, rodando em qualquer lugar.

É um produto gratuito, de código aberto pela licença AGPL v3.
O próprio grupo disponibiliza um servidor público para quem quer começar a trabalhar com o eyeOS.

Foi criado próximo de Barcelona, o projeto foi feito para ser simples de instalar, é disponível em mais de 30 linguas e utilizado em mais de 9 paíeses.

Estimativas:

O número de e-mails comerciais de cloud computing crescerá para 12% em 2012, estes dados foram obtidos pelo instituto de pesquisa Gartner.

Segundo o Gartner apenas depois de 2011 a cloud computing começará a ficar madura e apenas grupos seletos a utilizarão, somente em 2015 a cloud computing será vista como commodity.
Nas palavras de Mark Driver, vice presidente do Gartner, "O cloud computng será o alicerce sobre o qual as soluções de software como serviço são construídas".

Segundo ele, o cloud computing por três distintas fases de evolução, a primeira acontecerá até 2011, a segunda até 2013 e a terceira até 2015.

Fase 1 – Novidade


Enquanto ainda está em expansão, os clientes deve focar em soluções de rápido retorno, onde a produtividade supera a viabilidade técnica a longo prazo, este retorno não pode ser maior que 18 a 24 meses, atualmente o mérito técnico está em foco ao invés da proteção do investimento, as empresas de visão de mercado estarão recebendo mais velozmente o retorno, Sugere o Gartner.

Fase 2 – Consolidação de mercado

Por volta de 2012 a cloud computing estará bastante disseminada, a demanda por serviços irá aumentar, será mais interessante para clientes conservadores e maiores, investimentos mais a longo prazo de 3 a 5 anos.

Fase 3 – Ponto crítico e "Commodity"

A partir de 2013 a tecnologia dominará o mercado e estabelecerá padrões, os clientes e investidores mais conservadores deixarão a cloud computing mais estável, haverá poucos fornecedores de soluções, porém a partir de 2015 fornecedores Open-Source estarão disputando espaço com as soluções proprietárias.

É o que prevê os analistas do Gartner.

No Brasil:

No Brasil, a tecnologia de computação em nuvem ainda é muito recente. Os primeiros testes foram implementados em 2007, sendo que somente em 2008 começou a ser oferecido comercialmente.

Cloud Computing para novas e pequenas empresas:
As novas empresas podem ser organizadas baseadas em computação nas nuvens, assim economizando muito dinheiro e espaço para montar um ambiente seja em um prédio, ou em casa no seu “Home Office”.

Para ferramentas de telefonia poderia ter o Skype, boa opção para ligações internacionais ou locais, ou o GrandCentral do Google, no qual sua empresa dispõe de um serviço de voice e-mail e é gratuito.

Applicativos essenciais, poderia ter o Google Docs e o Google Gears (para abrir arquivos quando não estiver online e depois sincronizar) e o Zoho Office (no qual também possui gerenciador de projetos, wiki e web conference), assim você tem todo o básico que teria que instalar na sua máquina diretamente do seu browser.

Para reuniões virtuais existe o FreeConference.com, sendo como padrão gratuito ou para gravar pagando uma taxa do serviço.

Para compromissos e calendários existe o Google Calendar, porém sem acesso offline, porém uma outra alternativa é o Scrybe, porém está em fase de teste e necessita de convite para utilizar.

O fato é que você consegue gerenciar seus compromissos, possuir documentos e manter até mesmo um HD virtual com o SkyDrive de uma forma barata ou até mesmo grátis, dependendo das necessidades e o melhor, online, de qualquer computador, celular, palm ou outros devices você pode ter e acessar todo conteúdo necessário para sua empresa, isso tudo é possível graças a cloud computing.

“Atualmente possuo a minha empresa a FireAnt Software, a maior parte dos serviços eu utilizo as ferramentas web para ter sempre controle de qualquer lugar sobre meus trabalhos, facilitando a minha vida e evitando que eu fique transportando o meu notebook para todos os lados, como acontecia antes.”, Eduardo Bregaida.

É tudo uma maravilha?

Há quem descorde na nuvem, como é o caso de Richard Stallman, fundador da Free Software Foundation e criador do sistema operacional GNU, para ele, empresas como a Google, Microsoft e Amazon tem planos para fornecer serviçoe software proprietários que irá forçar as pessoas e empresas a comprá-los e a gastar mais a longo prazo.

Para ele os dados importantes não devem ser confiados a terceiros, além do mais garante que informações na web não garantem nenhuma segurança e que estes dados poderiam ser obtidos.
"One reason you should not use web applications to do your computing is that you lose control," he said. "It's just as bad as using a proprietary program. Do your own computing on your own computer with your copy of a freedom-respecting program. If you use a proprietary program or somebody else's web server, you're defenceless. You're putty in the hands of whoever developed that software."

Tradução Livre:

"Uma das razões que você não deve usar aplicações web na nuvem para colocar ‘dados’ é que você perder o controle", disse ele. "É tão ruim quanto usar um programa proprietário. Faça o sua própria lógica de negócio em seu próprio computador com a cópia de uma liberdade respeitando-programa. Se você usar um programa proprietário ou alguém do servidor web, você está indefeso. Você estará nas mãos de quem desenvolveu o software."

Nota pessoal:

Sabemos que existem pessoas maliciosas, mas este texto chega ser apelativo, pois mesmo com as informações armazenadas por terceiros, haverá leis e regras para o mesmo, dizer que colocar sua aplicação na web é ‘entregar o ouro ao bandido’, não é digno de quem tem uma visão de futuro e sim de alguém que tem medo de mudança.

Chris Brogan critica o Google sobre possuir um único id (identidade) para acesso de todas suas funcionalidades, por um erro do Google (Google: "Sorry, your account has been disabled."), ele não pode acessar seu GMail, seu Picasa, Google Docs, Picasa, dentre os demais serviços do Google, ficou indignado já que é um cliente pagante da empresa.

A idéia central é a mesma deRichard Stallman, não assumir que os dados são seguros, principalmente se eles estão na web, já que pode haver perda de conexão, invasões de privacidade, erros no serviço, acidentes naturais dentre outros problemas, que nem sempre é culpa da empresa em questão, mas que pode ocorrer.

Nas palavras de Chris em seu Blog:

“Sure, "the cloud" will work for most people most of the time, but (as with Windows) if you have a lot of users, you'll get a lot of errors. With a billion users, 10% having problems -- which they probably will, over 10 years -- is 100 million personal disasters”

Tradução Livre:

Claro, "a nuvem" vai trabalhar para a maioria das pessoas na maior parte do tempo, mas (como no Windows), se você tem um grande número de usuários, você vai ter um monte de erros. Com um bilhão de usuários, 10% com problemas - que provavelmente será, mais de 10 anos - é de 100 milhões de desastres pessoais.

Conclusão:

A cloud computing ainda está se fixando, será a nova arquitetura para hardware e para softwares, uma nova linha para armazenar dados e criar sistemas, atualmente problemas com segurança e backups é preocupante, assim como quando começaram a surgir os computadores que substituíram o papel, no começo sempre é assim, algo obscuro e de mal entendimento.
Porém será uma solução principalmente para pequenas e médias empresas, pois será mais barato e de melhor opção para as mesmas.

Para os desenvolvedores, será uma nova fase, pois possivelmente o desenvolvimento desktop será muito restrito e o desenvolvimento web sofrerá algumas mudanças.

As vantagens serão:

Não necessitarei mais de um computador potente, pois os recursos para rodar as aplicações estarão em um servidor e não na minha máquina, todo o processamento será nas `nuvens`, não precisarei futuramente sistemas operacionais muito complexos, poderei acessar de qualquer computador de configuração mínima em qualquer lugar do mundo meus dados, aplicativos, e etc.

As Desvantagens:

Ainda não há uma internet estável de alta velocidade para confiar 100% nesta arquitetura aqui no Brasil, a segurança deverá aumentar muito, pois há empresas que os seus dados são seus lucros, o valor de alguns serviços poderá ser muito caro e o principal, saber quem está dsponibilizando serviços de uma forma ética ou quem vai realizar isso para `roubar` os dados.
Particularmente utilizo muitos destes recursos que falei neste trabalho, incluindo recursos da empresa que estou dando um start para abrir, a FireAnt, creio que será o futuro da informática.
O medo das empresas mais conservadores sempre existiu, desde a criação de computadores, a mudanças de linguagens, softwares e plataformas.

Atualmente pode ser um risco, porém no futuro deverá ser falado de cloud computer como hoje é falado de melhor hardware ou melhor Sistema Operacional.

Muitos usuários já utilizam estes serviços sem mesmo saber que está utilizando cloud computing, e é quase que natural os usuários vão evoluindo de uma forma quase natural e é o que irá acontecer.

Tão logo os usuários se acomodem nesta arquitetura o próximo passo serão as empresas mais conservadoras.

Agradeço a todos os colunistas de blogs, jornais e outros meios informativos no qual consegui compreender e fazer um trabalho mais a fundo.

Portanto, a cloud computing de início será uma ótima opção para pequenas e medias empresas e futuramente para todos os tipos de negócio, também como um modo de acabar evoluindo mais ainda a forma como a internet está distribuída e provavelmente será mais centralizada e de melhor qualidade e acesso.

Referências:
http://www.vivaolinux.com.br/artigo/EyeOS-Mini-Sistema-Operacional-nas-Nuvens?pagina=4

http://eyeos.org/

http://www.vivaolinux.com.br/artigo/EyeOS-Mini-Sistema-Operacional-nas-Nuvens

http://www.sun.com/aboutsun/pr/2009-01/sunflash.20090107.1.xml

http://kushelmex.com/2009/02/02/sun-microsystems-compra-q-layer/

http://www.trendmap.com.br/blog/?paged=11

http://www.sun.com/solutions/cloudcomputing/index.jsp

http://www.aprendaefaca.net/2008/05/sua-empresa-virtual-com-a-computacao-nas-nuvens.html

http://www.papodeempreendedor.com.br/tecnologia/entre-nuvens-e-licencas/

http://googlediscovery.com/2007/12/22/mozilla-labs-lanca-novo-produto-weave/

http://info.abril.com.br/aberto/infonews/082008/05082008-20.shl

http://g1.globo.com/Noticias/Tecnologia/0,,MUL455811-6174,00.html

http://www.observatoriodaimprensa.com.br/blogs.asp?id_blog=2&id={D81E47B7-245B-4007-A31C-487583A60F47}

http://idgnow.uol.com.br/computacao_corporativa/2008/08/13/cloud-computing-entenda-este-novo-modelo-de-computacao/paginador/pagina_4

http://cio.uol.com.br/tecnologia/2008/07/24/o-que-e-cloud-computing/

http://tecnologia.terra.com.br/interna/0,,OI3031238-EI4802,00-Cloud+computing+a+web+vira+extensao+do+seu+HD.html

http://tecnologia.terra.com.br/interna/0,,OI2995845-EI4802,00.html

http://tecnologia.terra.com.br/interna/0,,OI2737382-EI4802,00.html

http://tecnologia.terra.com.br/interna/0,,OI2896736-EI4802,00.html

http://computerworld.uol.com.br/tecnologia/cezar_taurion/idgcoluna.2007-12-19.1243549572/

http://computerworld.uol.com.br/gestao/2008/04/17/cloud-computing-prepare-se-para-a-nova-onda-em-tecnologia/

http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_em_nuvem

http://idgnow.uol.com.br/computacao_corporativa/2008/08/13/cloud-computing-entenda-este-novo-modelo-de-computacao/


http://blog.komeia.com/2008/05/09/computacao-nas-nuvens-e-um-conceito-e-e-o-futuro/

http://www.gfsolucoes.net/gustavo/tecnologia/o-futuro-das-aplicacoes-e-a-computacao-nas-nuvens/

http://www.aprendaefaca.net/2008/05/sua-empresa-virtual-com-a-computacao-nas-nuvens.html

http://www.geekeblog.com/news/afinal-que-diabos-e-a-computacao-nas-nuvens-parte-1/


http://imasters.uol.com.br/artigo/10157/tendencias/computacao_nas_nuvens_-_parte_i_/


http://www.undergoogle.com/blog/2008/google/computacao-as-nuvens-o-futuro-segundo-o-google.html

http://www.oficinadanet.com.br/artigo/923/computacao_nas_nuvens

http://www.onlytutorials.com.br/2008/10/29/um-pouco-sobre-computacao-nas-nuvens/

http://www.brasilseo.com.br/google/computacao-nas-nuves-o-futuro-da-internet

http://googlediscovery.com/2008/05/08/computacao-nas-nuvens-google-quer-construir-o-futuro-dos-computadores/

http://googlediscovery.com/2008/07/02/computacao-nas-nuvens-mozilla-weave-02/

http://googlediscovery.com/2008/07/30/hp-intel-e-yahoo-unem-se-no-desenvolvimento-da-computacao-em-nuvem/

http://g1.globo.com/Noticias/Tecnologia/0,,MUL455811-6174,00.html

http://www.gfsolucoes.net/gustavo/tecnologia/o-futuro-das-aplicacoes-e-a-computacao-nas-nuvens/

http://www.geekeblog.com/news/gdrive-computacao-nas-nuvens-do-google/

http://koruja.org/blog/o-que-e-computacao-nas-nuvens/

http://en.wikipedia.org/wiki/Cloud_computing

http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman

http://macmagazine.com.br/blog/2008/10/30/cloud-computing-do-mal/

http://macmagazine.com.br/blog/2008/08/04/dell-quer-registrar-o-termo-cloud-computing/

http://www.tiinside.com.br/News.aspx?ID=115741&C=265

http://www.artigonal.com/gestao-artigos/ti-cloud-computing-e-so-mais-um-termo-sugestivo-621694.html

http://blogblogs.com.br/tag/cloud

http://www.webdez.com.br/tag/Computa%25C3%25A7%25C3%25A3o%2Bnas%2Bnuvens

http://under-linux.org/f120352-vivaolinux-eyeos-mini-sistema-operacional-nas-nuvens

http://revistadasemana.abril.com.br/edicoes/64/ciencia_tecnologia/materia_ciencia_tecnologia_404471.shtml


http://blog.komeia.com/2008/05/09/computacao-nas-nuvens-e-um-conceito-e-e-o-futuro/

http://www.gfsolucoes.net/gustavo/tecnologia/o-futuro-das-aplicacoes-e-a-computacao-nas-nuvens/

http://www.undergoogle.com/blog/2008/google/computacao-as-nuvens-o-futuro-segundo-o-google.html


http://www.gfsolucoes.net/gustavo/tecnologia/o-futuro-das-aplicacoes-e-a-computacao-nas-nuvens/

Vídeos: