Maré de Agilidade em Belém
Publicado em Eventos
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 em JAVA
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):
- 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
- X já imagina qual a linha de código que estragou a coisa e começa a corrigir
- 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.
- Y começa a tentar descobrir onde está o bug
- 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.
- 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.
- 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:
- 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
- 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).
- 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
- 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.
- 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.
- 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 em Software, bucktracker
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.
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 em Gerencia de Projetos
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 em JAVA
FISL 10
O Fórum Internac
ional 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/
Publicado em Eventos
Informação não é poder! Veja como a falta de clareza causa o fracasso do líder
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 em Gerencia de Projetos
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 em Banco de Dados, Linux
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 em Eventos
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 em Informatica
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 em Drupal
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 em JAVA
Stress no trabalho? É melhor procurar um médico!
Publicado em Humor
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 em processo de software
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 em Eventos
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 em Banco de Dados
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 em Eventos
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 em Linux
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 em Designer
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.
Publicado em JAVA