Publicado por: evandropaes | Novembro 17, 2009

Maré de Agilidade em Belém

Nos dias 26, 27 e 28 de novembro será realizado o Maré de Agilidade aqui em Belém, um evento que fala de técnicas de desenvolvimento de software, práticas de engenharia de software, gerência de projetos, tecnologias de desenvolvimento de software, design de interface, tudo isso dentro do contexto das metodologias ágeis, com todos os valores e técnicas que vem sendo discutido no Brasil e no mundo todo.
Membros de grupos de discussões e estudantes tem desconto, e quem se inscrever terá automaticamente a sua inscrição para o Beljungle/Sun Tech Days, eventos da comunidade Java, com uma parceria feita com o grupo Sou Java Belém.
Pacotes promocionais para empresas, entrem em contato!
Entre no site e confira a programação, quem são os palestrantes e outras informações. Participe!
Publicado por: evandropaes | Setembro 28, 2009

Como assinar um applet

Como assinar um applet

Fonte: http://insonix.blogspot.com/2009/04/como-assinar-um-applet.html

Se você estiver se perguntando, para que precisa assinar meu applet, ai vai a resposta.
Existem várias questões de segurança envolvendo a chamada de arquivos e aplicações externas de dentro do navegador, e para executar alguma função mais específica, ou até mesmo rodar executáveis do sistema operacional a partir do seu applet, você precisa criar uma assinatura digital para ele.
Até mesmo para identificar que este applet é assinado pela empresa ou site cujo ele está sendo executado.

Vamos ao que interessa.

Como exemplo, eu criei um applet Exemplo.java que gerou o binário Exemplo.class.

1 – Criar um JAR
Criar um JAR com a classe envolvida, pois a assinatura será feita em cima do jar.
Na linha de comando, vá até a pasta em que o .class de sua classe está e digite:

jar cvf Exemplo.jar Exemplo.class

Neste momento foi criado um jar chamado Exemplo.jar.

2 – Criar o par de chaves (chave pública e privada)
Na linha de comando digite:

keytool -genkey -dname “cn=Exemplo, ou=Laboratorio, o=Empresa, c=BR” -alias exemplo -storepass 123456 -validity 3655

Detalhes do comando

-dname = dados da organização/empresa/site
-alias = nome da chave criada, no caso “exemplo”
-storepass = pass da chave, quando for assinar um jar com esta chave por exemplo, será necessário digitar este pass
- validity = quantidade de dias de validade da assinatura digital

Esta chave fica guardada na pasta home do usuário, e você poderá utilizar apenas o alias dela quando for assinar o JAR.

3 – Assinar o JAR do applet
Assinar o JAR do applet, criado no passo 1.

Na linha de comando digite:

jarsigner -storepass 123456 Exemplo.jar exemplo

Detalhes do comando

-storepass = pass da chave, conforme explicado no passo 2
Exemplo.jar = arquivo jar criado no passo 1
exemplo = alias da chave, criada no passo 2.

Pronto, é só jogar o seu JAR para sua aplicação, e agora caso você em seu applet, chamava um .class, é só chamar o .JAR.

Seu applet já está assinado.

Publicado por: evandropaes | Setembro 4, 2009

Bugtracker – Como é possível não usar?

Fonte: http://inospito.com/2007/11/01/bugtracker-como-e-possivel-nao-usar/

Uma das ferramentas básicas para o desenvolvimento de software com qualidade é o bugtracker. Tal como um bom IDE, o bugtracker é uma das ferramentas das quais não prescindo de maneira nenhuma, e considero a sua utilização como um requisito obrigatório se queremos desenvolver software com qualidade.

Infelizmente, os cursos de Engenharia Informática em Portugal não abordam este assunto, pelo que (já) não me surpreende que tenha encontrado tantos programadores ao longo dos anos que não usam nem fazem ideia da sua utilidade. Para quem não sabe, um bugtracker é simplesmente uma ferramenta onde se introduzem os bugs que encontramos numa aplicação e onde podemos depois acompanhar e controlar a evolução de cada bug: se está a ser corrigido, se já foi corrigido, em que versão foi corrigido, etc. Claro que as ferramentas de bugtracking fazem uma miríade de outras coisas, como relatórios, envio de mails de notificação ou pesquisas, mas o que realmente interessa é permitir acompanhar/controlar a evolução de um bug. Como é que uma ferramenta tão simples pode ter um papel tão importante?

Quando não usamos um bugtracker, temos o seguinte possível cenário (imaginem dois developers X e Y):

  1. X recebe um telefonema de um cliente, desesperado com um comportamento estranho da aplicação quando se clica duas vezes no quadrado vermelho que pisca
  2. X já imagina qual a linha de código que estragou a coisa e começa a corrigir
  3. Y que não está junto de X, recebe um telefonema de outro cliente com o mesmo problema. Claro que nós (leitores) sabemos que é o mesmo problema, mas o cliente não sabe e muito menos Y. Ainda por cima, Y nem imagina onde esteja o bug, porque ele não desenvolveu essa parte da aplicação.
  4. Y começa a tentar descobrir onde está o bug
  5. X já quase resolveu o bug, mas está a demorar imenso tempo porque está permanentemente a ser interrompido por telefones e mails de clientes a refilar por causa do bug.
  6. X resolve o bug e faz uma nova versão da aplicação. Claro que a nova versão não tem só a correcção do quadrado vermelho que pisca. Tem outras correcções que foram feitas recentemente. Ele tem que compilar a lista de correcções: ver os mails trocados entre os developers, telefonar aos outros developers, etc.
  7. Y já encontrou o sítio onde está o bug mas entretanto recebe um telefonema de X, perguntando que correcções foram feitas recentemente. Y diz-lhe que está a resolver o problema do quadrado vermelho que pisca. X responde-lhe que já foi resolvido. Y desespera. Os clientes continuam a telefonar.

Se usassem um bugtracker, o cenário poderia ser algo diferente:

  1. X recebe um telefonema de um cliente, desesperado com um comportamento estranho da aplicação quando se clica duas vezes no quadrado vermelho que pisca
  2. X introduz no bugtracker a descrição do bug e comunica ao cliente o identificador do bug, para que o cliente possa acompanhar a evolução do mesmo através da web (outra hipótese seria o próprio cliente introduzir o bug no bugtracker).
  3. X já imagina qual a linha de código que estragou a coisa e começa a corrigir, mas primeiro marca esse bug como “Em Correcção” na ferramenta
  4. Y que não está junto de X, recebe um telefonema de outro cliente com o mesmo problema. Claro que nós (leitores) sabemos que é o mesmo problema e Y, após pesquisar no bugtracker, também sabe.
  5. X resolveu o bug rapidamente porque a maioria dos clientes, antes de telefonarem ou enviarem email a refilar, pesquisaram no bugtracker e viram que o bug estava em correcção.
  6. X faz uma nova versão da aplicação e consegue saber todas as correcções incluídas na versão com uma simples pesquisa “Bugs resolvidos na versão XXX”

Existem imensos bugtrackers no mercado, muitos deles open-source. E não existe razão nenhuma para não se usar um bugtracker. Claro que podemos usá-los de muitas formas, algumas mais correctas do que outra. Espero falar disso num futuro post. Mas uma coisa vos garanto. Quem já trabalhou com um bugtracker, nem se imagina a trabalhar um dia sem um.

Publicado por: evandropaes | Julho 1, 2009

Nunca minta

Prazo é um ponto crítico mas o gerente de projetos não deve tentar enganar a equipe, por melhores que sejam suas intenções.

Por Handerson Ferreira Gomes

O Rodolpho Ramirez publicou um artigo com três dicas para gerenciar um projeto interativo. As dicas 1 e 2 são ótimas, mas descordo totalmente em relação a terceira dica, por vários motivos.

Quanto mais informações temos disponíveis, melhores são nossas decisões. Uma dessas informações é o tempo disponível para executar o projeto. Com menos tempo disponível o time de desenvolvimento vai ter que fazer cortes na qualidade e/ou funcionalidade. A melhor forma de desestimular um desenvolver é tirar dele a chance de escrever código de qualidade e de usar sua criatividade.

A ideia de que há dois prazos – um real e um fictício – simplesmente significa que não há confiança entre a gerência do projeto e o time de desenvolvimento. Este tipo de comportamento mostra falta de maturidade em projetos web e de software.

Em qualquer relacionamento, confiança é um dos aspectos mais importantes para o sucesso. Desenvolvedores, como o Ramirez mesmo disse, são espertos e a grande maioria deles se esforça para fazer um ótimo trabalho. Mentindo para um time é uma péssima forma de incentivar e valorizar o trabalho de uma equipe. Confie em mim, já participei de vários projetos onde todos os desenvolvedores sabiam que a data alvo era fictícia.

Inclusive escrevi sobre esse cenário em outro artigo aqui no Webinsider.

Está provado que as estimativas são mais acuradas quando feitas pelos responsáveis pela execução das tarefas.

Estimativas de software devem ser feitas pelo time de desenvolvimento e se há datas fixas para release do produto, o que é comum, então funcionalidades e escopo precisam ser negociadas e acompanhadas ao longo do projeto. Devemos focar nossos esforços em colaboração e desenvolvimento mútuo entre todos as pessoas envolvidas no projeto.

Meu conselho é exatamente o contrário. O prazo de entrega do projeto deve ser claro e todos devem entender porque (o que deve ser óbvio) é importante entregar no prazo.

Envolva o time de desenvolvimento na estimativa das tarefas que ele é responsável. Envolva também o cliente, ele precisa entender que toda e qualquer funcionalidade tem um custo (tempo, qualidade, recursos) e infelizmente seria mais fácil prometer que “tudo é possível” mas a realidade é diferente e no final todos saem ganhando quando a conversa é sincera.

Construa um time onde há confiança mútua, onde todos trabalham para o sucesso do projeto e que todos são honestos com suas estimativas e horas alocadas no trabalho.

Existem técnicas e metodologias muito mais eficientes que a mentira para lidar com membros/equipes que não estão comprometidos com o sucesso do projeto. [Webinsider]

Fonte: http://webinsider.uol.com.br/index.php/2009/06/30/nunca-minta/

Publicado por: evandropaes | Junho 24, 2009

Criando arquivos .jar

//
// Olá a todos, em primeiro lugar gostaria mais uma vez agradecer o apoio, comentários e críticas de todos vocês.
Nem sempre consigo responder todos os emails e comentários, mas quero que saibam que todos são lidos e são de grande importância para mim, por tanto muito obrigado.

Muitas pessoas tem me perguntado sobre como trabalhar com arquivos compactados .jar, pois na maior parte das vezes a nossa aplicação java não se resume apenas a um arquivo .java, e sim, são compostas de vários arquivos, então como fazer para tornar a vida mais fácil na hora de um “deploy” ou mesmo no manuseio dos mesmo? A forma mais fácil é criar um arquivo .jar contendo todos os arquivos do nosso projeto, hoje veremos como fazer isso utilizando o comando “jar” para criar um pacote “executável” com os arquivos da nossa aplicação.

Gostaria de dedicar esse artigo ao meus amigos que tem me perguntado sobre arquivos .jar em especial ao Adriano, foi por causa de suas perguntas que escrevi esse artigo.

Agora sem mais demora vamos ao que interessa. Para esse artigo iremos precisar de alguns códigos .java para que possamos gerar o pacote da nossa aplicação, como o intuito é explicar como gerar o arquivo .jar, os códigos não serão comentados, são apenas dois códigos simples que escrevi para esta demonstração.

Vamos criar um diretório qualquer para o nosso projeto, eu criei um diretorio chamado “jarfiles”, (que de agora em diante será chamado de diretório RAIZ) e dentro dele criaremos mais alguns diretórios:
src – diretório onde colocaremos nossos arquivos fonte
bin – diretório onde colocaremos os arquivos compilados

E dentro do diretorio “src” criaremos mais um diretório chamado “init”, é um nome qualquer apenas para mostrar como fazer para rodar um arquivo que estará dentro dele, e para demostrar que é possível criar diversos diretórios e colocá-los todos no nosso .jar.

Agora que já temos os diretórios iremos criar duas classes dentro do diretório “src/init”, são elas:

OlaMundo.java

package init;

/**
* @author Dayvid Lima
*/

public class OlaMundo {
public void falaOla(){
System.out.println(“Olá mundo cruel!”);
}
}

UsaOlaMundo.java

package init;

/**
* @author Dayvid Lima
*/

public class UsaOlaMundo {

public static void main(String[] args){
OlaMundo om = new OlaMundo();
om.falaOla();
}
}

Prontinho, agora vamos compilar nossos códigos java para dentro do diretório bin, para isso uma vez estando dentro do diretório RAIZ no prompt do DOS ou em um terminal qualquer, vamos digitar:
javac src/init/*.java -d bin/

Isso fará com que os arquivos .java que estão em /src/init/ sejam compilados e colocados em /bin/init/.

Para ver se está tudo ok iremos rodar nossa aplicação, primeiro entramos no diretório “bin”, e então executamos nossa aplicação com o comando:
java init.UsaOlaMundo

Se tudo der certo veremos a mensagem “Olá mundo cruel!” na tela.

Bom agora que tudo está ok chegou a hora do que realmente interessa, compactar todos esses arquivos em um único arquivo .jar e rodar a aplicação a partir dele.

Para criar o arquivo .jar iremos fazer uso do comando “jar”, existem diversas opções que podemos passar para o comando jar, iremos nesse artigo fazer uso das seguintes:
c – cria um novo arquivo
v – modo “verbose”, mostra na tela o que está acontecendo
f ARQUIVO_JAR – especifica o nome que queremos para o arquivo .jar
m ARQUIVO_DE_MANIFESTO – inclue o arquivo informado como arquivo de manifesto (veremos isso na segunda parte da explicação)

Ainda dentro do diretório bin, tudo que temos que fazer para criar nosso .jar é executar o comando:
jar cvf Ola.jar init/*

Pronto, com isso temos nossa aplicação agora dentro do arquivo Ola.jar, vamos então executá-la, para fazer isso devemos informar no classpath onde está nossa aplicação (no caso a classe init.UsaOlaMundo),
Podemos tanto colocar o arquivo Ola.jar no nosso classpath quanto informar esse parâmetro no momento da execução como no comando abaixo:
java -classpath Ola.jar init.UsaOlaMundo

Muito bom, meus parabéns, agora você tem a sua aplicação toda em um arquivo só, pois bem, vamos facilitar um pouco mais as coisas.

Se olharem dentro do arquivo Ola.jar (abram ele com um compactador qualquer como Winzip ou Winrar, pois ele é apenas um arquivo compactado sem utilizar compressão, isso mesmo, você poderia ter simplesmente criado um arquivo .zip ou .rar com o seu compactador preferido informando a ele para não utilizar compactação, apenas adicionar os arquivos e depois renomear o mesmo para .jar que ainda assim funcionaria.

Enfim, voltando a aplicação, veja que dentro dele temos um diretório META-INF contendo o arquivo MANIFEST.MF, pois bem, esse arquivo contém informações sobre a nossa aplicação, como não criamos esse arquivo, ele tem apenas algumas informações básica, vamos então criar o nosso MANIFEST.MF e ver em que ele pode nos ajudar.

Quando executamos nossa aplicação vocês se lembram que tivemos que infomar no classpath o arquivo Ola.jar para que fosse possível rodar a classe “init.UsaOlaMundo”, agora iremos criar um arquivo de manifesto para que seja possível rodar nossa aplicação informando apenas o arquivo Ola.jar e não mais o nome da classe e pacote (init.UsaOlaMundo).

Para isso criaremos o nosso próprio MANIFEST.MF, salvem o código abaixo em um arquivo chamado MANIFEST.MT dentro do diretório “bin”.

Manifest-Version: 1.0
Created-By: Dayvid Lima
Main-Class: init.UsaOlaMundo

O mais importante aqui é a última linha “Main-Class: init.OlaMundo”, aqui eu digo qual classe será chamada quando o arquivo Ola.jar for executado.

Arquivo salvo, estamos prontos para continuar. Dentro do diretório bin vamos apagar o nosso antigo Ola.jar e criar um novo, agora informando qual arquivo de manifesto que iremos utilizar,
Para isso basta mudar um pouco nosso comando jar como no exemplo abaixo:
jar cvfm Ola.jar MANIFEST.MF init/*

Agora para rodar nossa aplicação precisamos apenas do comando abaixo:
java -jar Ola.jar

E o arquivo MANIFEST.MF se encarrega de dizer a virtual machine qual a classe que queremos que seja executada.

Anexo deixo para download o arquivo jarfiles.zip, contendo os arquivos citados nesse artigo para facilitar o trabalho de todos, mais uma vez espero que este artigo tenha sido satisfatório e que venha a ajudar, até o próximo.

Fonte: http://www.plugmasters.com.br/sys/materias/793/1/Criando-arquivos-.jar

Dayvid Lima Desenvolvedor Java há mais de 5 anos, atualmente consultor java em empresa multinacional utilizando recursos avançados da tecnologia J2EE com servidores de aplicação em plataforma Solaris para gerenciamento de redes e integração de sistemas.

Publicado por: evandropaes | Junho 24, 2009

FISL 10

O Fórum Internacimagemional de Software Livre acontece anualmente na cidade de Porto Alegre, RS, Brasil. O fórum é considerado um dos maiores eventos do mundo na área por proporcionar uma discussão técnica, política e social sobre software livre de forma integrada. Reúne discussões, palestras, personalidades e novidades nacionais e internacionais do mundo do software livre.

24/06/2009 a 27/06/2009

http://www.fisl.org.br/10/www/

A reclamação número um de profissionais é a falta de clareza com relação às suas metas. Isto significa que todos sabem o que precisam fazer hoje, mas poucos sabem ao certo o porquê e aonde a empresa pretende chegar. Como consequência, os funcionários se empenham menos e, com o tempo, acabam desmotivados.

A verdade é que ninguém gosta de ser um mero “robô”. Participar da tomada de decisões, bem como saber o sentido do seu trabalho, é essencial. Uma pesquisa realizada pelo PMI (Project Management Institute), com 400 empresas, corrobora com esses pressupostos. Uma pergunta foi feita aos profissionais participantes: “Quais habilidades faltam a seus gestores?”. A resposta mais dada foi: “a habilidade de se comunicar”.

Como a empresa perde tempo [e dinheiro]

“Se os funcionários não conhecem os objetivos maiores da empresa e as estratégias adotadas, eles não fazem mais do que olhar para o próprio umbigo, de forma que agregam pouco à organização. Esta, por sua vez, perde tempo e dinheiro, ao não disseminar informações importantes”, explica o coordenador da pesquisa de Benchmarking do PMI, Américo Pinto.

Quando falta clareza ao profissional com relação a suas próprias metas, os projetos não dão certo, ou o resultado obtido não é o esperado pela direção da empresa. E não é uma questão de incompetência. Ao desconhecer seus objetivos de longo prazo, o funcionário pode muito bem andar para a direção oposta para a qual estão caminhando os gestores. Enquanto uns vão para a direita, outros escolhem ir para a esquerda. A empresa não é bem-sucedida e perde recursos. Situações como a descrita não são raras.

“Os atuais gestores não atendem mais àquilo que as empresas precisam, que é clareza e capacidade de se comunicar, antes de mais nada. Muitos deles retêm informações, porque acreditam que informação é poder. No final, acabam se prejudicando, porque seus subordinados não trabalham o todo, não realizam suas atividades dentro de um contexto”, explica o diretor executivo do Insadi, Dieter Kelber.

“O pior é que há líderes que gostam de ter funcionários robôs, que cumprem ordens sem pensar muito. São gestores à moda antiga, atrasados no novo cenário de competitividade acirrada entre as empresas”, acrescenta.

Falha começa na alta gestão

É possível que, em uma empresa na qual a retenção de informações é parte da cultura corporativa, a culpa seja da média gerência, que não quer dar espaço para ninguém crescer. “O que esse tipo de gestor não entende é que, se seus subordinados não crescerem, ele próprio nunca sairá do mesmo lugar”, diz Kelber.

Porém, para Américo Pinto, do PMI, a principal responsabilidade pela comunicação da empresa é a alta gerência. “Se o principal gestor não faz questão de disseminar informações estratégicas, a comunicação não flui para as demais partes da pirâmide. O resultado é que cada um acaba fazendo o que bem entende”, diz.

Mas ele acrescenta que isso é mais comum em médias e pequenas empresas, porque as grandes já estão avançadas no quesito comunicação. “Boa parte das grandes utilizam ferramentas tecnológicas, como softwares criados justamente para isso e intranet, para que a comunicação flua tanto verticalmente (do gestor para os subordinados) quanto horizontalmente (entre departamentos, de forma que estes trabalhem juntos em torno de um mesmo objetivo)”.

Reunião não é perda de tempo!

Algumas empresas evitam ao máximo as reuniões, por conta do clichê disseminado no mundo corporativo de que elas são perda de tempo. A verdade, entretanto, é que reuniões são necessárias e é possível torná-las produtivas. “Porque alguns profissionais se utilizam desse canal de comunicação [a reunião] de forma equivocada, muitos desmoralizaram o papel desses encontros”, diz o coordenador da pesquisa do PMI. “Mas, muitas vezes, as reuniões são absolutamente necessárias”.

Ele lembra ainda que as reuniões não são a única forma de a empresa se comunicar com seus funcionários. “É possível promover algumas discussões por e-mail, por exemplo”.

Por que gestores retêm informações?

Alguns dos motivos para a retenção de informações são: a ilusão de poder que elas proporcionam; o medo de os subordinados crescerem; a insegurança, por parte do gestor de médio escalão, de que os subordinados utilizem aquelas informações melhor do que ele próprio; a dificuldade de se comunicar com clareza, o que é uma competência ao mesmo tempo técnica e comportamental cada vez mais essencial aos líderes; e a facilidade de manipular funcionários “robôs”, que não pensam.

Porém, a transparência nas empresas é importante porque: a rádio peão é muito mais rápida (o problema é que, muitas vezes, as informações divulgadas no corredor são completamente equivocadas); ao saber aonde a empresa quer chegar, o funcionário se dedica muito mais e os projetos têm mais chances de serem bem-sucedidos; os diversos departamentos podem tornar-se aliados, no lugar de inimigos, como costuma acontecer; a satisfação do público atendido aumenta; e a liderança informal é enfraquecida.

“É bom promover conversas e debates com os funcionários sistematicamente, de forma que informações úteis sejam disseminadas no dia a dia do trabalho. Assim, os profissionais vestem a camisa da empresa e do cliente”, finaliza Kelber.

Por Karin Sato – InfoMoney

Fonte:http://artesdosul.wordpress.com/2009/05/21/informacao-nao-e-poder-veja-como-a-falta-de-clareza-causa-o-fracasso-do-lider/

Publicado por: evandropaes | Maio 18, 2009

Permitindo acesso remoto num servidor MySQL

O Mysql por padrão ao ser instalado numa máquina, não está configurado para permitir acesso remoto, somente local, por parte do usuário, então para habilitar seu uso seja de qual for a máquina, faz-se os seguintes procedimentos:

Como root no terminal do linux digite:

nano /etc/mysql/my.cnf

Agora altere a seguinte linha..

bind-address = 127.0.0.1

..para..

bind-address = 0.0.0.0

Agora reinicie o serviço mysql com:

/etc/init.d/mysql restart

Entre no prompt do mysql com:

mysql –user=root –password=suasenha

Então digite o seguinte comando:

GRANT ALL ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘suasenha‘;

Esse comando é bem explicativo, ele garante (GRANT) todos (ALL) os privilégios de acesso a todos (*.*) os databases do banco, ao (TO) usuário (’root’) em todas as máquinas (’%’) usando a senha do usuário root (IDENTIFIED BY ’suasenha’). Traduzindo em miúdos, você acessa tudo no banco com o usuário root em qualquer máquina remota.

Obs: Se quiser dar acesso somente a uma maquina específica troque ‘%’ pelo ip da máquina, por exemplo, dar acesso somente a máquina 192.168.0.2, ficaria assim o comando:

GRANT ALL ON *.* TO ‘root’@’192.168.0.2′ IDENTIFIED BY ‘suasenha‘;

Obs2: Onde estiver escrito suasenha, troque pela senha do usuário root.

Agora pode testar conectar-se ao banco de outra máquina que você terá acesso.

Abraços!

Fonte:http://darkstrikerd.wordpress.com/2008/02/14/linux-permitindo-acesso-remoto-num-servidor-mysql/

Publicado por: evandropaes | Abril 25, 2009

Tema do EPAEP 2009

“Tecnologia da informação: Os Sistemas Informatizados a Serviço da Produtividade nas Organizações” Apresentação do Evento Encontro Paraense de Engenharia de Produção – EPAEP O Encontro Paraense de Engenharia de Produção é o evento regional mais importante da Engenharia Paraense. A cada edição, o EPAEP reúne os cursos de Engenharia de Produção Paraenses em torno de um tema representativo de uma das áreas de atuação profissional.

Informações:

http://www.epaep.com.br/

Publicado por: evandropaes | Abril 23, 2009

Microsoft pode ganhar com compra da Sun pela Oracle

São Francisco – De acordo com analistas, fornecedores de hardware são os que ganham as maiores fontes de preocupações.

Por Redação do COMPUTERWORLD

Com principal aquisição do ano no mercado de tecnologia, a compra da Sun pela Oracle, já se especula quem ganha e quem perde. Nesse contexto, algumas empresas têm razões para ficar mais tranquilas. De acordo com analistas da indústria, é o caso da Microsoft.

“Historicamente, Oracle tem sido uma das principais parceiras da HP, já que a HP não está no mercado de software”  escreveu Tony Sacconagui, analista no Sanford C. Bernstein & Co.. “Assim, a HP provavelmente vai querer outras alternativas para uma empresa que compete com ela diretamente no mercado de hardware”, disse.

Se as companhias da Oracle que mantém divisão de Hardware se sentirem prejudicadas, será uma péssima notícia para a empresa, de acordo com  Miko Matsumura, CTO da Software AG. “O mercado de hardware é o rei. Qualquer um que se sinta prejudicado por uma empresa nesse segmento torna-se inimigo mortal dela”, afirma.

Outro bônus da Microsoft é que talvez exista um fornecedor a menos de banco de dados para competir, já que o MySQL e o banco de dados Oracle estarão sob o mesmo teto.

Alguns analistas prevêem ainda que a Oracle pode focar no software da Sun e criar outra empresa para cuidar do hardware, mas a empresa não deixou isso muito claro. A comnpanhia chegou até a anunciar que a decisão de adquirir a Sun era mais pelo interesse no Solaris e no Java, mas afirmou que a compra poderia ajudar a Oracle a fornecer sistemas integrados para datacenters, incluindo storage e servidores. Isso pode pressionar empresas como Dell e IBM, que podem reforçar suas parcerias com a Microsoft.

Publicado por: evandropaes | Abril 20, 2009

Conferência Internacional de CMS – CMS Brasil

O CMS Brasil, evento realizado pelo iMasters e promovido pela Fábrica Livre, acontece no dia 20 de junho de 2009, no Hotel Jaraguá Convention Center. a iniciativa trará ao Brasil alguns dos principais especialistas mundiais em CMS, dentre eles Matt Mullenweg, o criador do WordPress, compondo painéis e palestras únicas, com os líderes brasileiros do mercado, além de oficinas técnicas para desenvolvimento em WordPress, Joomla e Drupal.

o CMS Brasil 2009 será apresentado por Paulino Michelazzo e reunirá 500 desenvolvedores do Brasil inteiro, em um ambiente de conhecimento avançado, integração entre palestrantes e público, e um networking de alto nível entre profissionais brasileiros de CMS. serão 2 auditórios paralelos (técnico e corporativo), uma mini-feira e lounges exclusivos para networking.

Saiba mais: http://www.cmsbrasil2009.com/

Publicado por: evandropaes | Abril 20, 2009

Oracle compra Sun por US$ 7,4 bilhões

Rogil – Após negociação com IBM, Sun é comprada pela Oracle em negócio que pagará US$ 9,5 por ação.

A Oracle comprou a Sun Microsystems por 7,4 bilhões de dólares, impulsionando a desenvolvedora de softwares corporativos no setor de hardware e fazendo com que a Sun seja a mais recente operação de TI englobada pela empresa comandada por Larry Ellison.

A Oracle pagará 9,5 dólares por ação em dinheiro para a Sun, de acordo com a Oracle, aumento de 42% em relação ao preço do seu fechamento na sexta-feira (17/04). Excluindo débitos, a aquisição é avaliada em 5,6 bilhões de dólares.

A aquisição da Sun segue outras compras feitas pela Oracle no setor de tecnologia nos últimos anos, como Siebel, PeopleSoft e BEA Systems.

O acordo é anunciado após a Sun ter se afastado de uma negociação com a IBM há algumas semanas.

Ainda que houvesse boatos sobre uma possível aquisição por parte da Oracle, a empresa nunca tinha tido uma participação nos setores de sistema operacional para servidores ou hardware.

A Oracle afirmou que o acordo com a Sun deve trazer mais receita à companhia no primeiro ano após a compra do que as aquisições da BEA Systems, PeopleSoft e Siebel juntas.

A Sun deverá contribuir com 1,5 bilhão de dólares ao lucro operacional da Oracle no primeiro ano após a fusão, número que deverá ultrapassar a marca dos 2 bilhões de dólares no segundo ano, anunciou a Oracle.

Fonte: http://idgnow.uol.com.br/mercado/2009/04/20/oracle-compra-sun-por-us-7-4-bilhoes/

Publicado por: evandropaes | Março 5, 2009

Stress no trabalho? É melhor procurar um médico!

Publicado por: evandropaes | Dezembro 12, 2008

Sete maneiras de melhorar o desenvolvimento de software

Para se concretizarem, os projetos de software exigem investimentos, apoio, cuidados, trabalho árduo e dedicação. Uma boa prática de gerenciamento de entrega garante que, depois de criado, o software possa ser implementado com êxito, atendendo às necessidades da área que o solicitou e, ainda, de outras unidades que queiram utilizá-lo no futuro.

Na lista de clientes que confirmam essa premissa está uma grande empresa britânica de telecomunicações. A companhia decidiu mudar de fornecedor na hora de realizar uma reengenharia dos sistemas para gestão da área de billing (bilhetagem) e da emissão de contas. A companhia tinha de implementar as mudanças em três meses ou poderia perder centenas de milhões de libras, inclusive com queda no valor das ações. Outra questão era que, na época, os processos para desenvolvimento de software eram ruins e o gerenciamento de entrega extremamente problemático.

A empresa de telecomunicações chamou uma empresa especializada para ajudá-la a entregar o software no prazo e recuperar um processo falho de gerenciamento das mudanças. Com isso, em três meses, fez os lançamentos pendentes e conseguiu realizar a reformulação de dois aplicativos. Mais importante, estabeleceu um processo de gerenciamento de entregas simples e direto para assegurar que futuras liberações aconteçam no devido tempo e com a qualidade exigida.

A seguir, segue um detalhamento de todo o processo, inclusive, com os erros cometidos.

1. Entender o estado atual do gerenciamento de entregas.
Você não pode começar a consertar alguma coisa sem entender o que ela é e qual o problema. O primeiro passo para aprimorar o sistema de gerenciamento das entregas do nosso cliente foi criar um panorama detalhado do processos antigos. Para começar, a empresa realizou várias sessões explanatórias com pessoas-chave envolvidas no processo de software.

Nas reuniões, o fornecedor descobriu que o ponto de partida era muito ruim: ainda havia software a espera de liberação, depois de dois meses em que ele estava pronto.
Os ambientes de teste eram limitados, sem gerenciamento e, portanto, desatualizados e impossíveis de usar. Pior ainda, melhorar novos ambientes e renovar os existentes era um processo relativamente lento.

Em média, um teste manual de software demorava três meses. E boa parte deles acabava sendo abandonado, o que reduzia a qualidade das soluções entregues.

De um modo geral, o engajamento da equipe de desenvolvimento era muito baixo. Como os profissionais nunca tinham sido ajudados a fornecer software de boa qualidade, regularmente, estavam desestimulados.

2. Estabelecer um ciclo regular de liberações.
Quando obtivemos um panorama geral do estado atual do processo, começamos a definir um ciclo regular de liberações.

Se a equipe de engenharia é o coração do projeto, o ciclo de liberações é seu batimento cardíaco. Para determinar a freqüência de liberações para produção, foi preciso descobrir de quanto teste não funcional precisaríamos e quanto tempo demoraria. Este projeto exigiu teste de regressão, desempenho e integração.
Estabelecer um ciclo de liberações é vital porque:

• Cria uma oportunidade de discutir a fundo os testes não funcionais de que o software possa precisar.

• Anuncia um cronograma de entrega das porções da funcionalidade que as partes interessadas poderão obter. Se elas souberem que haverá liberação de funcionalidade regularmente, podem continuar concordando em relação ao resultado final esperado.

• Cria uma rotina que todas as equipes podem seguir (inclusive marketing e engenharia).

• Dá aos clientes a confiança de que podem pedir algo e receber o que pediram.
O ciclo de liberações tem de ser o mais exato possível, não um número inatingível que você inventou durante o almoço. Antes de anunciá-lo, teste-o. Não há nada pior para um processo de liberações já falho do que mais datas ilusórias!

Sugerimos um ciclo semanal. Este plano, porém, mostrou-se inviável, já que o ambiente de banco de dados do cliente não podia ser renovado com suficiente rapidez. Então tentamos ciclos quinzenais. Não houve objeção imediata dos participantes, mas as duas primeiras tentativas fracassaram! Tornou-se viável depois que superamos alguns gargalos do ambiente e automatizamos alguns testes.

Por fim, estabelecemos um ciclo em que, a cada duas semanas, o código da equipe de engenharia, pronto para produção, era encaminhado para teste no sistema. Quinze dias depois, liberamos este código para produção.

Lembre-se: seu ciclo de liberações não diz respeito a quando seu cliente quer a liberação, mas quando você pode realizá-la com o nível desejado de qualidade. Nossos clientes apoiaram nosso ciclo de liberações porque nós os chamamos para ajudar a determiná-lo. A opinião dos clientes é apenas um dos fatores levados em conta para estabelecer a regularidade das liberações.

3. Adotar processos leves. Testá-los no início e revisá-los regularmente.
Se existe um princípio norteador da engenharia (ou reengenharia) de um processo, este princípio é desenvolver um pouco, analisar os resultados e fazer um pouco mais. Repita esta abordagem cíclica até alcançar os resultados desejados.

Processos leves são aqueles que não exigem aprovações longas e burocráticas ou reuniões intermináveis para obter consenso. Normalmente, demandam apenas o nível mínimo aceitável de inputs e outputs. O que lhes falta em volume e burocracia é compensado com resposta a mudanças e adoção popular!
Subjacente a esta abordagem há o problema espinhoso da documentação. Você precisa registrar o que fez e como fez. Do contrário, o que vai revisar e como vai melhorar?

Não é o tipo de documentação volumosa que ameaça as florestas tropicais ou dá sono nos leitores. É a documentação que as pessoas (técnicas ou não) podem ler e seguir.

A equipe de engenharia escolheu uma ferramenta comercial para documentar seu trabalho colaborativo. Os engenheiros usaram o software para elaborar uma documentação mínima, porém eficaz, do que estavam concordando em criar em cada ciclo de trabalho. Registraram o que e como tinham criado e o que era necessário para que entrasse em funcionamento. Vimos o valor desta abordagem e a implementamos — assim como a ferramenta – para o restante dos envolvidos no processo.

Inicialmente, sugerimos uma seqüência de tarefas para liberar o software que recebemos das equipes de engenharia, abrangendo o modo como recebemos a entrega por parte do sistema de gerenciamento de controle de origem, que nomes os pacotes teriam e como cada elemento (código executável, scripts de banco de dados etc.) funcionaria em quais plataformas. Depois fizemos um teste simulado utilizando código fictício para cada elemento. Testamos nossa seqüência documentando o que e como fizemos. Isso formou a base das instruções de instalação.

Em seguida, as pessoas que iriam implementar o release real fizeram outro teste simulado usando apenas a nossa documentação. Elas estenderam, corrigiram e aprimoraram nossas instruções. O processo se tornou mais abrangente e todos colaboraram com a documentação. O processo foi adotado de maneira mais ampla e com mais qualidade, já que todos ajudaram a defini-lo.

Revisamos o processo depois de cada liberação. Examinamos a documentação e identificamos mudanças feitas durante a liberação. A cada vez, verificamos como a documentação poderia ser aprimorada e incorporamos os aprimoramentos ao processo.

4. Estabelecer uma infra-estrutura de liberações no início.
A infra-estrutura de liberações é tudo aquilo que precisa existir para que o software seja implementado e as pessoas possam utilizá-lo. Seu compromisso com o cliente não é somente criar um software excelente, mas que ele esteja disponível para ser acessado e utilizado.

Para obter um bom processo de liberação, é crucial que você descubra o que precisa estar implantando para disponibilizar ao cliente antes da equipe de engenharia acabar de criar o software.

A infra-estrutura de liberações cobre hardware, storage, conexões de rede, banda larga, licenças de software, perfis dos usuários e permissões de acesso. Recursos humanos e habilidades também fazem parte da infra-estrutura de liberações. Se você precisa que um software especializado seja instalado e configurado, por exemplo, não é uma atitude inteligente excluir do seu plano de infra-estrutura a disponibilidade das habilidades envolvidas ou o custo de obtê-las.

Quando estiver em busca do hardware necessários ou das habilidades que faltam (por exemplo, para configurar redes seguras), é vital descobrir gargalos ocultos o mais cedo possível. Você precisa resolvê-los antes que eles atrasem a entrega do software.

Não é coisa simples. Nós nos esforçamos para implantar nossa infra-estrutura de liberações assim que iniciamos o projeto. Depois de seis semanas, ainda estávamos esperando memória e hard drives especiais para os servidores de teste!
5. Automatizar e padronizar o máximo possível.

A automação permite que você execute tarefas repetitivas sem comprometer recursos humanos valiosos. A padronização garante que inputs e outputs da automação sejam consistentes o tempo todo.

Antes do nosso envolvimento com o projeto, as equipes de engenharia produziam manualmente um pacote implementável. Não havia garantia de que um novo pacote seria igual ao anterior. Na realidade, nem havia garantia de que era o software que as equipes andavam desenvolvendo e se funcionaria! Muitas vezes, a equipe técnica levava dias para criar um pacote com os recursos que estavam sendo entregues em uma estrutura que pudesse ser implementada.

Formulamos imediatamente uma estrutura e critérios de aceitação para o pacote implementável que as equipes estavam nos entregando e as ajudamos a padronizar o empacotamento. Isso ativou a implementação de processos automatizados para criar o software nesta estrutura consistente para cada ponto da liberação.

De repente, o empacotamento do software para liberação deixou de ser um problema. Sua executabilidade estava garantida, já que tínhamos automatizado a verificação dos critérios de aceitação — por exemplo, testar o código antes da entrega e implementar o teste para assegurar que a implementação real poderia ser feita. Como resultado, conseguimos empacotar, versionar, testar e implementar código acabado com um único comando em pouquíssimo tempo.

Mas a automação não parou por aí. A cada ciclo de desenvolvimento, tínhamos que fazer ainda mais testes de regressão. Os testes de regressão existentes levavam três semanas para serem executados manualmente e, por isso, as liberações nunca eram bem testadas.

No nosso recém-criado ciclo de liberações, tínhamos que realizar testes de regressão, desempenho e integração em duas semanas para podermos colocar em produção. Podíamos superar a questão de ter diferentes tipos de teste utilizando ambientes separados para cada um. Mas como encaixar três meses de testes de regressão em um período de duas semanas?!

Iniciamos um exercício de priorização. O cliente identificou os testes de regressão mais prioritários, o mínimo que aceitaria como prova de que a antiga funcionalidade ainda executava. Depois partimos para automatizar este conjunto. Testes de aceitação subseqüentes também se tornaram automatizados, assegurando que poderíamos fazer testes de regressão em cada liberação em algumas horas em vez de dias.

6. Estabelecer expectativas positivas.
Se a liberação de software é importante para você, não faça segredo disso. Nossas equipes reforçaram o compromisso de liberar o software quando sabiam que era importante.

Endossamos esta importância ao estabelecer que o gerente de liberações designado presumiria que o software estaria pronto na data que as equipes concordaram que ele estaria pronto. Fizemos o gerente de programa (na realidade, nosso cliente) explicar para as equipes por que esta liberação era importante. (No fim das contas, o motivo era não perder muito dinheiro!)

Pedimos que o software fornecido pelas equipes de engenharia seguisse um padrão (versionado, testado, documentado e empacotado). Estabelecemos que solicitaríamos este empacotamento padrão para cada ciclo de liberação. Tivemos de explicar por que queríamos o software desta maneira (nosso processo automatizado se tornava mais fácil e consistente) e incorporamos o feedback da equipe ao processo.

Estabelecer expectativas positivas é uma ótima maneira de empoderar todos os envolvidos no processo. Não nos foi delegada nenhuma autoridade executiva e, portanto, não receávamos sansões ou demissões. Tínhamos o poder da expectativa positiva para fazer as pessoas aderirem e nos ajudarem a melhorar o processo de liberação. Elas tomaram decisões-chave (que nunca tinham se sentido capazes de tomar antes) porque “Mike e Tym precisam deste software na quinta-feira e nós dissemos que o entregaríamos”.

7. Investir em pessoas.
Não importa o quanto você gaste em hardware, software e processos imaginativos — sem o comprometimento dos membros da equipe você não alcançará um sucesso sustentável na liberação do seu software.Talvez você nem mesmo tenha um software para liberar!

Provavelmente você pensou que falaríamos em arregimentar as pessoas certas e recompensá-las bem ou que discorreríamos sobre as ferramentas e qualificações necessárias para o trabalho. A verdade é que você sabe que precisa ter as pessoas certas nas equipes (a definição de “certas” varia de uma empresa para outra), você deve recompensá-las adequadamente pelo valor que agregam e, sim, você deve assegurar que elas tenham as ferramentas e qualificações necessárias.

Nossa pressuposição básica é de que as pessoas estão inerentemente interessadas em fazer um bom trabalho. Se você quiser que os membros das suas equipes se importem com seu produto e com a realização de um bom trabalho, antes você precisa demonstrar que se importa com o que é importante para elas. Desde o começo do projeto, criamos um ótimo relacionamento com todos os membros das equipes, baseado em compreensão e respeito mútuo. Demonstramos que éramos flexíveis em termos de desafios pessoais e fizemos o que estava ao nosso alcance para ajudar. Comprar almoço, pegar alguma coisa para beber, organizar treinamento, aconselhar, ouvir problemas, fazer o papel do advogado do diabo… fizemos o que era necessário para que cada indivíduo se sentisse valorizado e um elemento vital do processo.

No nosso primeiro contato com o projeto, detectamos um sentimento geral de apatia. Alguns funcionários fixos mais antigos estavam simplesmente à espera de um pacote de dispensa de pessoal; outros não eram chamados para nada porque nunca tinham feito nada certo. Nos dedicamos a criar um bom relacionamento e despertar um auto-julgamento positivo para que as pessoas voltassem a se importar em adicionar valor pessoal ao processo.

O gerenciamento de liberações é uma parte muito importante de qualquer projeto de software e, freqüentemente, não recebe a atenção que merece. Poderíamos compartilhar muitas outras dicas e observações excelentes sobre nossa experiência de fortalecer o processo de liberações desta empresa de telecomunicações de médio porte. Mas estas são as sete mais importantes para nós neste caso específico, embora suponhamos que sejam idéias muito boas para qualquer situação.
Um bom gerenciamento de liberações exige trabalho árduo, determinação e ótima comunicação. Mas o mais importante é a habilidade de revisar, aprender e adaptar melhorias.

Boa sorte!

Fonte: http://cio.uol.com.br/estrategias/2008/12/09/sete-maneiras-de-melhorar-o-lancamento-de-software/

Mike Sutton era um menino programador prodígio. Hoje, depois de 15 anos de atuação, deixou de ser tão menino mas é prodigioso em ajudar as equipes de programação a se tornarem fornecedoras de soluções vencedoras utilizando metodologias ágeis e abordagens pragmáticas como as descritas neste artigo. CEO da Wizewerx, é consultor de TI independente especializado em soluções de desenvolvimento Java high-end e coaching e mentoring para métodos ágeis e já trabalhou para empresas de primeira linha no Reino Unido e na Europa.
Tym Moore estava ocupado demais ajudando seus clientes e não conseguiu enviar a tempo sua biografia de autor.

Publicado por: evandropaes | Dezembro 12, 2008

XXII Semana Paraense de Informática e Telecomunicações – SEPAI

A Semana Paraense de Informática e Telecomunicações – SEPAI é o principal evento de tecnologia da informação do Norte do país. Durante sua realização, profissionais, estudantes e instituições têm acesso às
tendências tecnológicas futura e conhecem os rumos das pesquisas no setor de TIC. A XXII SEPAI oferecerá apresentação de cases e palestras, de renomados profissionais e acadêmicos, regionais e nacionais, que compartilharão seus conhecimentos e experiências com o público da região, objetivando aprimorar o conhecimento dos participantes.

A SEPAI é promovida pela SUCESU-PA e conta com patrocínios e apoios de grandes empresas e instituições. Outra característica da SEPAI é
participação dos grupos de usuários, que contribuem com a programação e
apoio ao realização do evento. Nas salas anexas ou no auditório central os
congressistas poderão conferir palestras ministradas por participantes dos
grupos de usuário PHP, JAVA, MS-BEL, Joomla, Bel-Jogos e outros.

Venha para da XXII Semana Paraense de Informática e Telecomunicações– SEPAI 2008

Período : 11 e 12/12/2008
Local:Computer Hall
Investimento : Estudante/Professor R$50,00 Prosfissional:R$ 100,00

Publicado por: evandropaes | Novembro 20, 2008

Alterando porta de acesso apex – oracle xe 10g

Recentimente instalei o Oracle XE 10G para trabalhar em uma aplicação. Quando terminei de instalar percebi que a ferramenta de administração utiliza a porta 8080, mesma porta que o jboss utiliza. Logo, precisei alterar a porta do apex (ferramenta de administração do banco).

Para alterar a porta padrão do apex:

1. No menu do Oracle Database 10g Express Edition, clique em Executar linha de comando SQL.

2. Digita: Connect

3. O sistema vai solicitar o usuário, digiete: system

4. O sistema vai solicitar a senha, entre com a senha escolhida na instalação do banco.

5. Execute o comando: exec dbms_xdb.sethttpport(XXXX);

onde XXXX é a porta desejada, por ex: 8081

6. A porta foi alterar, digita: quit para sair da aplicação.

Abraços,

Evandro paes

Publicado por: evandropaes | Novembro 13, 2008

EQPS 2008 – Belém

Nos dias 20 e 21 de novembro de 2008 será realizado em Belém, no auditório do Hangar, o Encontro de Qualidade e Produtividade de Software (EQPS). O evento é apoiado pela SEDECT, FAPESPA e UFPA, através do LABES-UFPA.

O EQPS é uma reunião do Programa Brasileiro da Qualidade e Produtividade em Software – PBQP-SW, iniciativa mobilizadora de quinze anos motivada pela promoção da melhoria da qualidade dos processos, produtos e serviços de software brasileiros.
O EQPS é um evento de inscrição gratuita composto de mini apresentações de projetos e palestras de convidados. A coordenação do EQPS será realizada pela Diva Marinho, do Ministério da Ciência e Tecnologia, PBQP-SW e localmente pela profa. Carla Alessandra Lima Reis da UFPA.

Link: http://www.mct.gov.br/index.php/content/view/76369.html

Abraços,

Evandro Paes

Publicado por: evandropaes | Novembro 10, 2008

Instalando e configurando o PostgreSQL 8.3 no Ubuntu

Autor: Juliano

Fonte: http://jmmwrite.wordpress.com/2008/05/08/instalando-e-configurando-o-postgresql-83-no-ubuntu/

No meu ambiente de desenvolvimento, eu sempre utilizo dois bancos: o Postgres e o DB2. Basicamente devido ao fato de minha instalação de DB2 ser pesada pois tenho várias configurações de Data Warehouse e um banco muito carregado, o que torna o banco mais pesado para meu simples desktop. Então, para debugar meus softwares, vou com meu postgres levinho mesmo.

Minha idéia aqui é mostrar como instalar e configurar o PostgreSQL 8.3 no Ubuntu 8.04. As configurações são as mesmas para a instalação em Windows, a única diferença obvia é que você irá ter que ir ao site do postgres e baixar o Installer do Windows.

Vamos lá, iniciamos a instalação com o comando:

$ sudo apt-get install postgresql-8.3 postgresql-client-8.3

Recomendo também instalar o pgAdmin, que é uma ferramenta para administrar o postgres:
$ sudo apt-get install pgadmin3 pgadmin3-data

Algo que aconteceu comigo na migração para o Ubuntu 8.04, foi que tive que remover o Postgres 8.2 (apt-get purge postgresql-8.2) para conseguir iniciar o 8.3 corretamente. Se você concluir meus passos aqui e mesmo assim não conseguir conectar no Postgres, recebendo algum erro, provavelmente terá que dar o purge. (talvez com mais tempo de pesquisa eu poderia descobrir qual era o problema… se alguem passar por isso me diga please).

O próximo passo é setar uma senha para o usuário postgres com os seguintes comandos:

sudo su postgres -c psql postgres
ALTER USER postgres WITH PASSWORD ‘password’;
\q

O primeiro comando chama o utilitário psql com o usuário postgres e conecta no postgres especificamente no database postgres.
O segundo comando altera a senha do usuário postgres.
O terceiro comando finaliza o psql.
Note que a palavra password deve ser substituida pela password que você desejar.

Feito a instalação e mudança de senha do usuário postgres, você estará apto a desenvolver um trabalho no seu computador conectando normalmente ao postgres, porém, se a idéia é disponibilizar o acesso ao banco para receber conexões de outras máquinas, você vai ter que alterar dois arquivos para isso. Para isso, vá para o diretório /etc/postgres/8.3/main

Edite o arquivo postgresql.conf

Na linha listen_addresses, troque o localhost por *, ficando a linha assim:

listen_addresses = ‘*’

Dessa forma seu postgres vai “escutar” não só conexoes provenientes da sua própria máquina.

A próxima configuração no mesmo arquivo é habilitar a encriptação de passwords, para fazer isso descomente a linha abaixo simplesmente removendo o # da frente dela:

password_encryption = on

Finalmente a próxima configuração é no arquivo pg_hba.conf. Neste arquivo você consegue restringir o acesso ao seu banco de dados por IP. Normalmente queremos liberar o acesso para todos os IPs em uma faixa, no meu exeplo, quero liberar para todas as máquinas da rede 10.5.2.*, então eu adiciono a seguinte linha no meu pg_hba.conf:

host    all    all    10.5.2.0    255.255.0.0    md5

Feito isso, basta reiniciar o postgres com o comando:

sudo /etc/init.d/postgresql-8.3 restart

Enjoy!

Publicado por: evandropaes | Setembro 30, 2008

Tabela de cores RGB

Cor
Valor RGB
Hexadecimal
Snow 255 250 250 #FFFAFA
GhostWhite 248 248 255 #F8F8FF
WhiteSmoke 245 245 245 #F5F5F5
Gainsboro 220 220 220 #DCDCDC
FloralWhite 255 250 240 #FFFAF0
OldLace 253 245 230 #FDF5E6
Linen 250 240 230 #FAF0E6
AntiqueWhite 250 235 215 #FAEBD7
PapayaWhip 255 239 213 #FFEFD5
BlanchedAlmond 255 235 205 #FFEBCD
Bisque 255 228 196 #FFE4C4
PeachPuff 255 218 185 #FFDAB9
NavajoWhite 255 222 173 #FFDEAD
Moccasin 255 228 181 #FFE4B5
Cornsilk 255 248 220 #FFF8DC
Ivory 255 255 240 #FFFFF0
LemonChiffon 255 250 205 #FFFACD
Seashell 255 245 238 #FFF5EE
Honeydew 240 255 240 #F0FFF0
MintCream 245 255 250 #F5FFFA
Azure 240 255 255 #F0FFFF
AliceBlue 240 248 255 #F0F8FF
lavender 230 230 250 #E6E6FA
LavenderBlush 255 240 245 #FFF0F5
MistyRose 255 228 225 #FFE4E1
White 255 255 255 #FFFFFF
Black 0 0 0 #000000
DarkSlateGray 47 79 79 #2F4F4F
DimGrey 105 105 105 #696969
SlateGrey 112 128 144 #708090
LightSlateGray 119 136 153 #778899
Grey 190 190 190 #BEBEBE
LightGray 211 211 211 #D3D3D3
MidnightBlue 25 25 112 #191970
NavyBlue (Navy) 0 0 128 #000080
CornflowerBlue 100 149 237 #6495ED
DarkSlateBlue 72 61 139 #483D8B
SlateBlue 106 90 205 #6A5ACD
MediumSlateBlue 123 104 238 #7B68EE
LightSlateBlue 132 112 255 #8470FF
MediumBlue 0 0 205 #0000CD
RoyalBlue 65 105 225 #4169E1
Blue 0 0 255 #0000FF
DodgerBlue 30 144 255 #1E90FF
DeepSkyBlue 0 191 255 #00BFFF
SkyBlue 135 206 235 #87CEEB
LightSkyBlue 135 206 250 #87CEFA
SteelBlue 70 130 180 #4682B4
LightSteelBlue 176 196 222 #B0C4DE
LightBlue 173 216 230 #ADD8E6
PowderBlue 176 224 230 #B0E0E6
PaleTurquoise 175 238 238 #AFEEEE
DarkTurquoise 0 206 209 #00CED1
MediumTurquoise 72 209 204 #48D1CC
Turquoise 64 224 208 #40E0D0
Cyan 0 255 255 #00FFFF
LightCyan 224 255 255 #E0FFFF
CadetBlue 95 158 160 #5F9EA0
MediumAquamarine 102 205 170 #66CDAA
Aquamarine 127 255 212 #7FFFD4
DarkGreen 0 100 0 #006400
DarkOliveGreen 85 107 47 #556B2F
DarkSeaGreen 143 188 143 #8FBC8F
SeaGreen 46 139 87 #2E8B57
MediumSeaGreen 60 179 113 #3CB371
LightSeaGreen 32 178 170 #20B2AA
PaleGreen 152 251 152 #98FB98
SpringGreen 0 255 127 #00FF7F
LawnGreen 124 252 0 #7CFC00
Green 0 255 0 #00FF00
Chartreuse 127 255 0 #7FFF00
MediumSpringGreen 0 250 154 #00FA9A
GreenYellow 173 255 47 #ADFF2F
LimeGreen 50 205 50 #32CD32
YellowGreen 154 205 50 #9ACD32
ForestGreen 34 139 34 #228B22
OliveDrab 107 142 35 #6B8E23
DarkKhaki 189 183 107 #BDB76B
Khaki 240 230 140 #F0E68C
PaleGoldenrod 238 232 170 #EEE8AA
LightGoldenrodYellow 250 250 210 #FAFAD2
LightYellow 255 255 224 #FFFFE0
Yellow 255 255 0 #FFFF00
Gold 255 215 0 #FFD700
LightGoldenrod 238 221 130 #EEDD82
goldenrod 218 165 32 #DAA520
DarkGoldenrod 184 134 11 #B8860B
RosyBrown 188 143 143 #BC8F8F
IndianRed 205 92 92 #CD5C5C
SaddleBrown 139 69 19 #8B4513
Sienna 160 82 45 #A0522D
Peru 205 133 63 #CD853F
Burlywood 222 184 135 #DEB887
Beige 245 245 220 #F5F5DC
Wheat 245 222 179 #F5DEB3
SandyBrown 244 164 96 #F4A460
Tan 210 180 140 #D2B48C
Chocolate 210 105 30 #D2691E
Firebrick 178 34 34 #B22222
Brown 165 42 42 #A52A2A
DarkSalmon 233 150 122 #E9967A
Salmon 250 128 114 #FA8072
LightSalmon 255 160 122 #FFA07A
Orange 255 165 0 #FFA500
DarkOrange 255 140 0 #FF8C00
Coral 255 127 80 #FF7F50
LightCoral 240 128 128 #F08080
Tomato 255 99 71 #FF6347
OrangeRed 255 69 0 #FF4500
Red 255 0 0 #FF0000
HotPink 255 105 180 #FF69B4
DeepPink 255 20 147 #FF1493
Pink 255 192 203 #FFC0CB
LightPink 255 182 193 #FFB6C1
PaleVioletRed 219 112 147 #DB7093
Maroon 176 48 96 #B03060
MediumVioletRed 199 21 133 #C71585
VioletRed 208 32 144 #D02090
Magenta 255 0 255 #FF00FF
Violet 238 130 238 #EE82EE
Plum 221 160 221 #DDA0DD
Orchid 218 112 214 #DA70D6
MediumOrchid 186 85 211 #BA55D3
DarkOrchid 153 50 204 #9932CC
DarkViolet 148 0 211 #9400D3
BlueViolet 138 43 226 #8A2BE2
Purple 160 32 240 #A020F0
MediumPurple 147 112 219 #9370DB
Thistle 216 191 216 #D8BFD8
Snow1 255 250 250 #FFFAFA
Snow2 238 233 233 #EEE9E9
Snow3 205 201 201 #CDC9C9
Snow4 139 137 137 #8B8989
Seashell1 255 245 238 #FFF5EE
Seashell2 238 229 222 #EEE5DE
Seashell3 205 197 191 #CDC5BF
Seashell4 139 134 130 #8B8682
AntiqueWhite1 255 239 219 #FFEFDB
AntiqueWhite2 238 223 204 #EEDFCC
AntiqueWhite3 205 192 176 #CDC0B0
AntiqueWhite4 139 131 120 #8B8378
Bisque1 255 228 196 #FFE4C4
Bisque2 238 213 183 #EED5B7
Bisque3 205 183 158 #CDB79E
Bisque4 139 125 107 #8B7D6B
PeachPuff1 255 218 185 #FFDAB9
PeachPuff2 238 203 173 #EECBAD
PeachPuff3 205 175 149 #CDAF95
PeachPuff4 139 119 101 #8B7765
NavajoWhite1 255 222 173 #FFDEAD
NavajoWhite2 238 207 161 #EECFA1
NavajoWhite3 205 179 139 #CDB38B
NavajoWhite4 139 121 94 #8B795E
LemonChiffon1 255 250 205 #FFFACD
LemonChiffon2 238 233 191 #EEE9BF
LemonChiffon3 205 201 165 #CDC9A5
LemonChiffon4 139 137 112 #8B8970
Cornsilk1 255 248 220 #FFF8DC
Cornsilk2 238 232 205 #EEE8CD
Cornsilk3 205 200 177 #CDC8B1
Cornsilk4 139 136 120 #8B8878
Ivory1 255 255 240 #FFFFF0
Ivory2 238 238 224 #EEEEE0
Ivory3 205 205 193 #CDCDC1
Ivory4 139 139 131 #8B8B83
Honeydew1 240 255 240 #F0FFF0
Honeydew2 224 238 224 #E0EEE0
Honeydew3 193 205 193 #C1CDC1
Honeydew4 131 139 131 #838B83
LavenderBlush1 255 240 245 #FFF0F5
LavenderBlush2 238 224 229 #EEE0E5
LavenderBlush3 205 193 197 #CDC1C5
LavenderBlush4 139 131 134 #8B8386
MistyRose1 255 228 225 #FFE4E1
MistyRose2 238 213 210 #EED5D2
MistyRose3 205 183 181 #CDB7B5
MistyRose4 139 125 123 #8B7D7B
Azure1 240 255 255 #F0FFFF
Azure2 224 238 238 #E0EEEE
Azure3 193 205 205 #C1CDCD
Azure4 131 139 139 #838B8B
SlateBlue1 131 111 255 #836FFF
SlateBlue2 122 103 238 #7A67EE
SlateBlue3 105 89 205 #6959CD
SlateBlue4 71 60 139 #473C8B
RoyalBlue1 72 118 255 #4876FF
RoyalBlue2 67 110 238 #436EEE
RoyalBlue3 58 95 205 #3A5FCD
RoyalBlue4 39 64 139 #27408B
Blue1 0 0 255 #0000FF
Blue2 0 0 238 #0000EE
Blue3 0 0 205 #0000CD
Blue4 0 0 139 #00008B
DodgerBlue1 30 144 255 #1E90FF
DodgerBlue2 28 134 238 #1C86EE
DodgerBlue3 24 116 205 #1874CD
DodgerBlue4 16 78 139 #104E8B
SteelBlue1 99 184 255 #63B8FF
SteelBlue2 92 172 238 #5CACEE
SteelBlue3 79 148 205 #4F94CD
SteelBlue4 54 100 139 #36648B
DeepSkyBlue1 0 191 255 #00BFFF
DeepSkyBlue2 0 178 238 #00B2EE
DeepSkyBlue3 0 154 205 #009ACD
DeepSkyBlue4 0 104 139 #00688B
SkyBlue1 135 206 255 #87CEFF
SkyBlue2 126 192 238 #7EC0EE
SkyBlue3 108 166 205 #6CA6CD
SkyBlue4 74 112 139 #4A708B
LightSkyBlue1 176 226 255 #B0E2FF
LightSkyBlue2 164 211 238 #A4D3EE
LightSkyBlue3 141 182 205 #8DB6CD
LightSkyBlue4 96 123 139 #607B8B
SlateGray1 198 226 255 #C6E2FF
SlateGray2 185 211 238 #B9D3EE
SlateGray3 159 182 205 #9FB6CD
SlateGray4 108 123 139 #6C7B8B
LightSteelBlue1 202 225 255 #CAE1FF
LightSteelBlue2 188 210 238 #BCD2EE
LightSteelBlue3 162 181 205 #A2B5CD
LightSteelBlue4 110 123 139 #6E7B8B
LightBlue1 191 239 255 #BFEFFF
LightBlue2 178 223 238 #B2DFEE
LightBlue3 154 192 205 #9AC0CD
LightBlue4 104 131 139 #68838B
LightCyan1 224 255 255 #E0FFFF
LightCyan2 209 238 238 #D1EEEE
LightCyan3 180 205 205 #B4CDCD
LightCyan4 122 139 139 #7A8B8B
PaleTurquoise1 187 255 255 #BBFFFF
PaleTurquoise2 174 238 238 #AEEEEE
PaleTurquoise3 150 205 205 #96CDCD
PaleTurquoise4 102 139 139 #668B8B
CadetBlue1 152 245 255 #98F5FF
CadetBlue2 142 229 238 #8EE5EE
CadetBlue3 122 197 205 #7AC5CD
CadetBlue4 83 134 139 #53868B
Turquoise1 0 245 255 #00F5FF
Turquoise2 0 229 238 #00E5EE
Turquoise3 0 197 205 #00C5CD
Turquoise4 0 134 139 #00868B
Cyan1 0 255 255 #00FFFF
Cyan2 0 238 238 #00EEEE
Cyan3 0 205 205 #00CDCD
Cyan4 0 139 139 #008B8B
DarkSlateGray1 151 255 255 #97FFFF
DarkSlateGray2 141 238 238 #8DEEEE
DarkSlateGray3 121 205 205 #79CDCD
DarkSlateGray4 82 139 139 #528B8B
Aquamarine1 127 255 212 #7FFFD4
Aquamarine2 118 238 198 #76EEC6
Aquamarine3 102 205 170 #66CDAA
Aquamarine4 69 139 116 #458B74
DarkSeaGreen1 193 255 193 #C1FFC1
DarkSeaGreen2 180 238 180 #B4EEB4
DarkSeaGreen3 155 205 155 #9BCD9B
DarkSeaGreen4 105 139 105 #698B69
SeaGreen1 84 255 159 #54FF9F
SeaGreen2 78 238 148 #4EEE94
SeaGreen3 67 205 128 #43CD80
SeaGreen4 46 139 87 #2E8B57
PaleGreen1 154 255 154 #9AFF9A
PaleGreen2 144 238 144 #90EE90
PaleGreen3 124 205 124 #7CCD7C
PaleGreen4 84 139 84 #548B54
SpringGreen1 0 255 127 #00FF7F
SpringGreen2 0 238 118 #00EE76
SpringGreen3 0 205 102 #00CD66
SpringGreen4 0 139 69 #008B45
Green1 0 255 0 #00FF00
Green2 0 238 0 #00EE00
Green3 0 205 0 #00CD00
Green4 0 139 0 #008B00
Chartreuse1 127 255 0 #7FFF00
Chartreuse2 118 238 0 #76EE00
Chartreuse3 102 205 0 #66CD00
Chartreuse4 69 139 0 #458B00
OliveDrab1 192 255 62 #C0FF3E
OliveDrab2 179 238 58 #B3EE3A
OliveDrab3 154 205 50 #9ACD32
OliveDrab4 105 139 34 #698B22
DarkOliveGreen1 202 255 112 #CAFF70
DarkOliveGreen2 188 238 104 #BCEE68
DarkOliveGreen3 162 205 90 #A2CD5A
DarkOliveGreen4 110 139 61 #6E8B3D
Khaki1 255 246 143 #FFF68F
Khaki2 238 230 133 #EEE685
Khaki3 205 198 115 #CDC673
Khaki4 139 134 78 #8B864E
LightGoldenrod1 255 236 139 #FFEC8B
LightGoldenrod2 238 220 130 #EEDC82
LightGoldenrod3 205 190 112 #CDBE70
LightGoldenrod4 139 129 76 #8B814C
LightYellow1 255 255 224 #FFFFE0
LightYellow2 238 238 209 #EEEED1
LightYellow3 205 205 180 #CDCDB4
LightYellow4 139 139 122 #8B8B7A
Yellow1 255 255 0 #FFFF00
Yellow2 238 238 0 #EEEE00
Yellow3 205 205 0 #CDCD00
Yellow4 139 139 0 #8B8B00
Gold1 255 215 0 #FFD700
Gold2 238 201 0 #EEC900
Gold3 205 173 0 #CDAD00
Gold4 139 117 0 #8B7500
Goldenrod1 255 193 37 #FFC125
Goldenrod2 238 180 34 #EEB422
Goldenrod3 205 155 29 #CD9B1D
Goldenrod4 139 105 20 #8B6914
DarkGoldenrod1 255 185 15 #FFB90F
DarkGoldenrod2 238 173 14 #EEAD0E
DarkGoldenrod3 205 149 12 #CD950C
DarkGoldenrod4 139 101 8 #8B658B
RosyBrown1 255 193 193 #FFC1C1
RosyBrown2 238 180 180 #EEB4B4
RosyBrown3 205 155 155 #CD9B9B
RosyBrown4 139 105 105 #8B6969
IndianRed1 255 106 106 #FF6A6A
IndianRed2 238 99 99 #EE6363
IndianRed3 205 85 85 #CD5555
IndianRed4 139 58 58 #8B3A3A
Sienna1 255 130 71 #FF8247
Sienna2 238 121 66 #EE7942
Sienna3 205 104 57 #CD6839
Sienna4 139 71 38 #8B4726
Burlywood1 255 211 155 #FFD39B
Burlywood2 238 197 145 #EEC591
Burlywood3 205 170 125 #CDAA7D
Burlywood4 139 115 85 #8B7355
Wheat1 255 231 186 #FFE7BA
Wheat2 238 216 174 #EED8AE
Wheat3 205 186 150 #CDBA96
Wheat4 139 126 102 #8B7E66
Tan1 255 165 79 #FFA54F
Tan2 238 154 73 #EE9A49
Tan3 205 133 63 #CD853F
Tan4 139 90 43 #8B5A2B
Chocolate1 255 127 36 #FF7F24
Chocolate2 238 118 33 #EE7621
Chocolate3 205 102 29 #CD661D
Chocolate4 139 69 19 #8B4513
Firebrick1 255 48 48 #FF3030
Firebrick2 238 44 44 #EE2C2C
Firebrick3 205 38 38 #CD2626
Firebrick4 139 26 26 #8B1A1A
Brown1 255 64 64 #FF4040
Brown2 238 59 59 #EE3B3B
Brown3 205 51 51 #CD3333
Brown4 139 35 35 #8B2323
Salmon1 255 140 105 #FF8C69
Salmon2 238 130 98 #EE8262
Salmon3 205 112 84 #CD7054
Salmon4 139 76 57 #8B4C39
LightSalmon1 255 160 122 #FFA07A
LightSalmon2 238 149 114 #EE9572
LightSalmon3 205 129 98 #CD8162
LightSalmon4 139 87 66 #8B5742
Orange1 255 165 0 #FFA500
Orange2 238 154 0 #EE9A00
Orange3 205 133 0 #CD8500
Orange4 139 90 0 #8B5A00
DarkOrange1 255 127 0 #FF7F00
DarkOrange2 238 118 0 #EE7600
DarkOrange3 205 102 0 #CD6600
DarkOrange4 139 69 0 #8B4500
Coral1 255 114 86 #FF7256
Coral2 238 106 80 #EE6A50
Coral3 205 91 69 #CD5B45
Coral4 139 62 47 #8B3E2F
Tomato1 255 99 71 #FF6347
Tomato2 238 92 66 #EE5C42
Tomato3 205 79 57 #CD4F39
Tomato4 139 54 38 #8B3626
OrangeRed1 255 69 0 #FF4500
OrangeRed2 238 64 0 #EE4000
OrangeRed3 205 55 0 #CD3700
OrangeRed4 139 37 0 #8B2500
Red1 255 0 0 #FF0000
Red2 238 0 0 #EE0000
Red3 205 0 0 #CD0000
Red4 139 0 0 #8B0000
DeepPink1 255 20 147 #FF1493
DeepPink2 238 18 137 #EE1289
DeepPink3 205 16 118 #CD1076
DeepPink4 139 10 80 #8B0A50
HotPink1 255 110 180 #FF6EB4
HotPink2 238 106 167 #EE6AA7
HotPink3 205 96 144 #CD6090
HotPink4 139 58 98 #8B3A62
Pink1 255 181 197 #FFB5C5
Pink2 238 169 184 #EEA9B8
Pink3 205 145 158 #CD919E
Pink4 139 99 108 #8B636C
LightPink1 255 174 185 #FFAEB9
LightPink2 238 162 173 #EEA2AD
LightPink3 205 140 149 #CD8C95
LightPink4 139 95 101 #8B5F65
PaleVioletRed1 255 130 171 #FF82AB
PaleVioletRed2 238 121 159 #EE799F
PaleVioletRed3 205 104 137 #CD6889
PaleVioletRed4 139 71 93 #8B475D
Maroon1 255 52 179 #FF34B3
Maroon2 238 48 167 #EE30A7
Maroon3 205 41 144 #CD2990
Maroon4 139 28 98 #8B1C62
VioletRed1 255 62 150 #FF3E96
VioletRed2 238 58 140 #EE3A8C
VioletRed3 205 50 120 #CD3278
VioletRed4 139 34 82 #8B2252
Magenta1 255 0 255 #FF00FF
Magenta2 238 0 238 #EE00EE
Magenta3 205 0 205 #CD00CD
Magenta4 139 0 139 #8B008B
Orchid1 255 131 250 #FF83FA
Orchid2 238 122 233 #EE7AE9
Orchid3 205 105 201 #CD69C9
Orchid4 139 71 137 #8B4789
Plum1 255 187 255 #FFBBFF
Plum2 238 174 238 #EEAEEE
Plum3 205 150 205 #CD96CD
Plum4 139 102 139 #8B668B
MediumOrchid1 224 102 255 #E066FF
MediumOrchid2 209 95 238 #D15FEE
MediumOrchid3 180 82 205 #B452CD
MediumOrchid4 122 55 139 #7A378B
DarkOrchid1 191 62 255 #BF3EFF
DarkOrchid2 178 58 238 #B23AEE
DarkOrchid3 154 50 205 #9A32CD
DarkOrchid4 104 34 139 #68228B
Purple1 155 48 255 #9B30FF
Purple2 145 44 238 #912CEE
Purple3 125 38 205 #7D26CD
Purple4 85 26 139 #551A8B
MediumPurple1 171 130 255 #AB82FF
MediumPurple2 159 121 238 #9F79EE
MediumPurple3 137 104 205 #8968CD
MediumPurple4 93 71 139 #5D478B
Thistle1 255 225 255 #FFE1FF
Thistle2 238 210 238 #EED2EE
Thistle3 205 181 205 #CDB5CD
Thistle4 139 123 139 #8B7B8B
grey11 28 28 28 #1C1C1C
grey21 54 54 54 #363636
grey31 79 79 79 #4F4F4F
grey41 105 105 105 #696969
grey51 130 130 130 #828282
grey61 156 156 156 #9C9C9C
grey71 181 181 181 #B5B5B5
gray81 207 207 207 #CFCFCF
gray91 232 232 232 #E8E8E8
DarkGrey 169 169 169 #A9A9A9
DarkBlue 0 0 139 #00008B
DarkCyan 0 139 139 #008B8B
DarkMagenta 139 0 139 #8B008B
DarkRed 139 0 0 #8B0000
LightGreen 144 238 144 #90EE90
Publicado por: evandropaes | Agosto 14, 2008

Instalando e Configurando o Java (JDK) no Ubuntu 8.04

13-08-2008
Escrito por Paulo Cassiano
Fonte: http://paulocassiano.wordpress.com/2008/08/13/instalar-java-ubuntu-804/

Para instalar e configurar o JDK (versão 6) no Ubuntu 8.04, siga esses passos:

1) Abra uma janela de terminal;

2) Digite: $ sudo apt-get -y install sun-java6-bin sun-java6-plugin sun-java6-jre sun-java6-jdk sun-java6-fonts <ENTER>; Em seguinda, digite a senha de root <ENTER>;

3) Apesar de termos usado a opção -y no passo anterior, é necessário rolar a janela do terminal em que ele exibe a Licença de Uso até o final e, ao final, digitar y <ENTER>;

4) Agora digite: $ sudo update-java-alternatives -s java-6-sun <ENTER>

É necessário editar o arquivo /etc/jvm. Ele define a ordem de pesquisa padrão da JVM no sistema. Cada JVM deve listar seu diretório JAVA_HOME compatível neste arquivo. A JVM padrão do sistema é a primeira disponível de cima para baixo. Para abrir o arquivo:

5) Digite: $ sudo gedit /etc/jvm <ENTER>

Certifique-se que a linha /usr/lib/jvm/java-6-sun está adicionada no topo da lista. O arquivo deverá ficar assim:

/usr/lib/jvm/java-6-sun
/usr/lib/jvm/java-gcj
/usr/lib/jvm/ia32-java-1.5.0-sun
/usr/lib/jvm/java-1.5.0-sun
/usr

Salve e feche o arquivo.

Agora vamos configurar as variáveis de ambiente (JAVA-HOME e PATH).

6) Abra o arquivo $HOME/.bash_profile: $ sudo gedit $HOME/.bash_profile <ENTER>

Adicione as seguintes linhas:

export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin

Salve e feche o arquivo.

7) Para testar a instalação, digite o seguinte comando no terminal: $ java -version <ENTER>

Se a saída for:

java version “1.6.0_03″
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)

A instalação foi feita corretamente ;-)

Agora vamos criar um programa de teste.

8 ) Digite: $ gedit Teste.java <ENTER>

e acrescente as linhas abaixo:

public class Teste {
public static void main(String[] args) {
System.out.println(”A instalação funcionou!”);
}
}

Salve e feche o arquivo.

Agora vamos compilar o arquivo Teste.java.

9) Digite: $ javac Teste.java <ENTER>

E para executar este pequeno programa,

10) Digite: $ java Teste <ENTER>

Se a saída exibida for:

A instalação funcionou!

Parabéns! O JDK foi instalado corretamente em seu sistema. Agora você já pode desenvolver em Java usando o Ubuntu.

Postagens Antigas »

Categorias