Monday, November 3, 2014

Problema ao abrir o Oracle SQLDeveloper no Ubuntu

Recentemente atualizei o Oracle SQLDeveloper para a versão 4.0.3 e tive um problema ao abrir o programa. Para quem não conhece o Oracle SQLDeveloper, ele é uma ferramenta muito top (na minha opinião) para trabalhar com o Oracle. Utilizo esta ferramenta a bastante tempo e para mim faz tudo o que é necessário em meus projetos. Conheça mais sobre a ferramenta clicando aqui.
Este problema ocorria quando eu tentava abrir a aplicação pelo ícone que criei no Unity do Ubuntu 14.04. Quando eu clicava no ícone ele abria o programa, o programa carregava as bibliotecas mas de repente o programa fechava sozinho.

Carregando o Oracle SQLDeveloper

Daí testei abrir via terminal e rodou perfeitamente.. Busquei em vários fóruns (stackoverflow, askubuntu entre outros) a solução para este problema até que por um milagre uma das respostas resolveu este problema que por sinal é bem simples de resolver.
Para resolver este problema você tem que abrir o arquivo sqldeveloper que fica localizado dentro da pasta bin do programa.

/caminho/sqldeveloper/sqldeveloper/bin

Após abrir o arquivo com seu editor de textos preferido adicione os seguintes comandos abaixo de #!/bin/bash que fica na primeira linha do arquivo.

unset GNOME_DESKTOP_SESSION_ID
unset DBUS_SESSION_BUS_ADDRESS

Prontinho! Salve e feche o arquivo e tente abrir o programa novamente.

Sunday, November 2, 2014

Instalando servidor web Apache, PHP, MySQL, PostgreSQL no Ubuntu

Neste post irei abordar de forma resumida como instalar o famoso LAMP incluindo o PostgreSQL que é um poderoso banco de dados. Recentemente tive um projeto que iria manipular muitos dados, testei o MySQL, PostgreSQL e o Oracle. Para projetos de pequeno e médio porte eu particularmente recomendo o MySQL ou o PostgreSQL, no meu caso eu sempre escolho o PostgreSQL. Foram poucos os projetos em que trabalhei com o MySQL. Mas tudo depende e vai de cada um realizar a melhor escolha.
Para este projeto eu acabei ficando com o Oracle. Oracle é Oracle e não precisa falar muito. Neste projeto também utilizei JavaEE com JSF2.2. Depois vou fazer um post de como instalar o Oracle, configurar o Java e o Tomcat no Ubuntu.
Daqui para frente vou entender que você já sabe o que é um terminal e já sabe como instalar programas via linha de comando.
Vamos começar pelo Apache, lembrando que esse não é o Apache Tomcat. O comando para instalar o Apache é:

#sudo apt-get install apache2

Em seguida iremos instalar o MySQL e o MySQL Workbench que é a ferramenta visual (GUI) que usamos para trabalhar com o banco de dados de forma mais produtiva, lembrando que você pode usar outra ferramenta de sua preferência.
Durante a instalação do MySQL será necessário informar a senha do root, basta digitar a senha e apertar a tecla para baixo, ele vai cair no [OK] então pressione a tecla Enter ou a tecla de espaço, digite a senha novamente e repita o processo para confirmar a senha.
Para instalar o MYSQL executaremos o seguinte comando:

#sudo apt-get install mysql-server mysql-workbench

Agora iremos instalar o PostgreSQL bem como o pgAdmin3 que é a interface gráfica (GUI) de manipulação do banco de dados de forma mais produtiva.

#sudo apt-get install postgresql pgadmin3

No processo de instalação do PostgreSQL o sistema não vai solicitar que você informe a senha do postgres (usuário do tipo root do MySQL). Para que seja definida a senha padrão do seu usuário postgres você deverá aguardar toda a finalização do processo de instalação do banco e no terminal você vai digitar:

sudo su postgres

Vai ser solicitado sua senha de root, após informar sua senha irá aparecer:

postgres@(seu usuário):

Digite:

psql

E altere a senha do banco com o seguinte comando:

ALTER ROLE POSTGRES PASSWORD 'sua_senha';

Pressione enter vai aparecer ALTER ROLE e em seguida \q para sair.

E por último iremos instalar o PHP5.5.9 versão estável atual do Ubuntu e também as bibliotecas de conexão com os bancos de dados MYSQL e PostgreSQL, integração com o apache e outras bibliotecas comuns.

#sudo apt-get install php5 php5-pgsql php5-mysql libpq-dev php-pear php5-xsl php5-gd libapache2-mod-php5 php5-curl

Agora é hora de testar tudo e ver se foi corretamente instalado o PHP, Apache, MySQL e o PostgreSQL. Como já temos o terminal de comando aberto digite:

#sudo gedit /var/www/html/index.php

Vai ser aberto o texteditor do Ubuntu, digite:

<?php phpinfo(); ?>

Salve e feche o texteditor.
Abra o Firefox ou o seu browser preferido e digite localhost/index.php e verifique se todas as suas configurações foram ativadas.
☝️Se você acessr apenas o localhost neste momento, o Apache vai buscar o arquivo index.html que existe na pasta www/html e não vai exibir os dados do PHP que criamos no arquivo anterior.

Tela do phpinfo();
Se estiver tudo OK vamos agora finalizar todo este processo e alterar algumas configurações do Apache e do php.ini.
No Apache iremos alterar o  caminho padrão das pastas do servidor que é onde os seus projetos PHP deverão ficar salvos. Já li várias maneiras de alterar, mas a que eu sempre uso (e sempre funciona) é a seguinte:
Pelo terminal de comando digite:

#sudo gedit /etc/apache2/sites-available/000-default.conf

Localize o texto /var/www/html e altere o caminho para o que você irá utilizar por exemplo /home/fulano/webroot. Feito salve o arquivo e feche o texteditor. Em seguida altere o arquivo:

#sudo gedit /etc/apache2/apache2.conf

Localize o mesmo caminho alterado no arquivo anterior (/var/www/html) e coloque o mesmo caminho que você informou no arquivo anterior.
Só execute estes comandos acima caso você possua um outro local de armazenamento e execução dos seus projetos.

Para finalizar iremos alterar algumas configurações básicas do PHP. Posteriormente você poderá alterar qualquer outra configuração que desejar!
Para isto abra o arquivo php.ini localizado em /etc/php5/apache2/php.ini e procure por short_open_tag = Off e altere para short_open_tag = On esta configuração faz com que os scripts em PHP (seu arquivo .php) possa ser executado utilizando <?php ?> ou apenas o <? ?>. Muitas bibliotecas que já utilizei do PHP não foram "criadas" utilizando o modo padrão do PHP que é <?php ?> com isso acaba que o PHP não consegue "ler" o seu arquivo.
Em seguida procure por display_errors = Off e altere para display_errors = On o nome já diz tudo né? Essa configuração faz com que o PHP exiba os erros na tela do browser (ou linha de comando).
E por fim procure date.timezone = e altere para date.timezone = America/Sao_Paulo com isso iremos "setar" o Timezone do seu servidor para o Timezone do Brasil. Alguns frameworks como o Symfony e o Cake utilizam esta configuração para serem instalados corretamente.






Thursday, October 30, 2014

Gerando o Get and Set para o PHP utilizando o Eclipse

Para quem está iniciando o desenvolvimento de sistemas utilizando metodologias de orientação a objetos sempre pensam nessa pergunta: para que serve o get e o set? Onde eu gero isso no Eclipse? Hmmm não tem no Eclipse (PHP)! Putzz coisa de graça da nisso!
Se alguém pensou nisso (assim como pensei em 2005) estamos enganados. Fuçando um pouco na internet é possível encontrar alguns recursos que facilitam a geração desses métodos!
Quando trabalhamos com Java no eclipse basta selecionar esse recurso no menu Source » Generate Getters and Setters e o Eclipse irá abrir uma janela para que você selecione quais os atributos de sua classe serão incluídos na geração do get/set. Mamão com açúcar! Isso facilita bastante principalmente quando temos muitos atributos em uma classe.
Quando trabalhamos com o Hibernate ele já faz tudo isso automaticamente, o Hibernate é realmente uma mãe, depois irei falar um pouco sobre o Hibernate.
No PHP a única forma que eu encontrei até o momento foi trabalhar com os Templates, essa funcionalidade está disponível no Eclipse (desde que você tenha instalado o PDT plugin PHP para o Eclipse), para criar um template acesse Windows » Preferences » Digite "Template" no campo de Pesquisa » Procure por PHP e selecione Template

PHP Template

em seguida basta clicar em New colocar o nome do template (não se esqueça que este será o nome que você terá que digitar para iniciar o método de criação do get/set) e no campo Pattern basta colocar o código abaixo.

/**
 * Retorna o valor de(a/o) ${fieldName}.
 *
 * @return ${variableType}
*/
public function get${fieldNameCapital}() {
         return $$this->${fieldName};
}

/**
 * Seta o valor de(a/o) ${fieldName}.
 *
 * @param ${variableType} $$${fieldName}
 */
public function set${fieldNameCapital}($$${fieldName}) {
         $$this->${fieldName} = $$${fieldName};
}

${cursor}

Você pode customizar o seu template basta alterar o código acima e verificar as modificações.

Ativando o template

Gerando o get/set