Um Manifesto!

...

  • Increase font size
  • Default font size
  • Decrease font size

Blog

Workstation 2 JAVA

E-mail Print PDF
Tutorial - Instalando o JAVA no Linux Debian Etch 

Apesar de existir versão mais recente 6 do java, escolhi pela 5 porque a 6.0 tem problemas ao usar os EJB3 do Jboss. Faça o download do site da sun na versão 5 do java SDK.

Existem duas maneira de instalar o java a partir deste binario, a maneira do debian (debian way) ou tradicional. Vamos a maneira do Debian:

Instale o pacote java-package dos repositórios oficiais, com root:

# apt-get install java-package

O java-package serve para converter um pacote instalador java para deb, e assim estar mais integrado ao sistema, mas por motivos de segurança, este não pode ser usado como root. Como usuário normal, use:

$ jpkg jdk-*bin

ou

$ fakeroot jpkg jdk*.bin

Isso irá gerar um pacote .deb, agora basta instala-lo como root:

# dpkg -i jdk-*.deb

Agora usamos um utilitário debian para usar o java que acabamos de instalar como principal, rode o seguinte comando e escolha o java que acabamos de instalar:

# update-alternatives --config java

Aqui termina o “debian way”. Pronto esta instalado corretamente, vamos configurar algumas variáveis de ambiente e links para ficar tudo redondo. Como root crie um link de /usr/lib/j2sdk1.5-sun (verifique se esta pasta mesmo) para /usr/java:

# ln -s /usr/lib/j2sdk1.5-sun /usr/java

Como root, edite o arquivo /etc/profile , e adicione essas linhas no final:

JAVA_HOME=/usr/java

export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin

export PATH

E para terminar de configurar o java, edite o seu arquivo .bashrc e adicione no final a seguinte linha para terminar. E pronto.

source /ect/profile

Com isso em breve estarei postante como instalar o JBoss para servir o tomcat e aplicações j2ee com ejb3.

 

Acelerando ainda mais boot com o TexasFlood

E-mail Print PDF

Já falei uma vez sobre o TexasFlood e como ele acelera bem seu tempo de boot.

Outro dia, navegando por ai, vi que houve uma atualização na versão "generic"(para outras distros) dele.

A mudança foi grande, principalmente em informação. No Site a documentação explica bem como funciona e como lidar com o sistema, além do Fórum, onde você consegue suporte. Agora ele cuida ele mesmo do carregamento de processos, no lugar do INIT do SYSVINIT, de forma inteligente, de acordo com o estágio e a importância do processo,e mesmo pós-boot pode-se obter uma melhora de performance.

Bom, testado e aprovadíssimo no Debian Etch! Bastou descompactar e rodar o ./setup (como root obvio) e ele reconhece o seu sistema, cria os backups necessários e instala o texasflood muito rápido!  Novamente funcionou perfeitamente no meu notebook , acer 5050, e no desktop , um P4, de primeira e sem reclamar de nada.

Quero apenas ressaltar que a leitura da documentação completa do site , e de todo o arquivo /etc/texasfloot.conf , incluindo os comentários, é muito importante para assegurar o bom funcionamento do sistema. O INIT é algo crítico, e deve-se ter cuidado ao lidar com ele. Existe também agora o /etc/texasflood.list aonde você configura as prioridades dos serviços, sendo as mais baixas mais prioritárias, para assegurar performance em serviços críticos.

Grande mudança também, agora dá para desinstalar o texasflood facilmente:
# texasfloot-remove

E ele esta fora, e tudo de volta! Mas eu prefiro ficar com o texasflood.

Explicando um pouco mais , mas ainda assim resumindo. O texasflood é responsável pelo carregamento de serviços e balanceamento de cargas. Isso quer dizer que ele identifica de forma inteligente os serviços mais importantes, e assegura a prioridade destes(Configurável).

O carregamento de serviços é então dividido em 3 estágios. É no terceiro estágio que devem ser atribuídos serviços, e esta versão do Texas Flood não elimina mais serviços do INIT, o desempenho é com todos os serviços atribuídos no estagio 3, la que você deve atribuir serviços importante, como de servidor. Quando se atribui serviços no estagio 3 não há perda nenhuma de desempenho.

Mas alguns serviços precisam ser obrigatoriamente ser atribuídos no estagio 1, é nele que você atribui serviços q não são tão necessários(no 1) ...

LEMBRO QUE ESTA É A VERSÃO ALPHA ,PARA TESTE , NÃO TESTE EM SEU PC DE USO CRÍTICO CASO NÃO TENHA UM CONHECIMENTO RAZOAVEL DE LINUX.

Referências:

http://resulinux.forumdebian.com.br/texasfloodweb/index_pt_BR.html
http://linuxhard.org/?page_id=3

Parabéns ao Luciano Andress Martini, e a equipe do Resulinux, distro original no TexasFlood.

 

Workstation 1 Linux Apache PHP Mysql PostgreSQL ou LAMPP

E-mail Print PDF
Eu criei um monstro!

Apache PHP JAVA TOMCAT MYSQL POSTGRESQL SSL ...

Muitos nomes, pois bem assim esta minha maquina hoje, e tende a crescer. Um pequeno monstro! Devido aos meus estudos e sede de coisas novas, mas também pela produtividade no trabalho e por esta fazendo um curso sobre JAVA aplicações distribuídas, na infnet .

Como fiz isso tudo e possa ser necessário fazer de novo ou alguém pode, como eu estava até ainda agora, precisar deste conteúdo, post novo de how-to! Eba.

O que vamos fazer, descrição:

Instalar o servidor Apache, com os módulos para PHP e o Tomcat, jsp e servlets, e faze-los funcionar em paralelo, com direito a OpenSSL para certificados digitais. Instalar e configurar os bancos de dados MySql e PostgreSQL. Isso no Debian 4 etch, mas deve funcionar nos baseados no debian qualquer versão, incluído o ubuntu, o kurumin, mas isso eu não confirmo(se alguém me confirmar eu agradeço muito!).

A primeira parte é bem fácil, instalando e configurando o Apache com php5 e algumas bibliotecas para o mesmo:

# apt-get install apache2 php5 apache2-mod-php5 php5-gd php5-mcrypt

Isso irá instalar, na ordem, o apache2, o php5, o modulo para o apache comunicar com o php5, gd(biblioteca gráfica) para o php, e uma biblioteca de encriptação também. Tem muitas outras, mais por hora apenas essas.

Para rodar o apache basta executar o comando, já com php ativado:

# apache2

Para parar use "apache2ctl stop" e reiniciar "apache2ctl restart". O Diretório padrão é /var/www , lá você pode colocar seus sites ou, melhor na minha opinião, linkar sua pasta padrão, eu fiz assim:

# ln -s /home/diogo/worspace /var/www

Assim sempre que quiser acessar um projeto eu abro o navegador e entro com: "localhost/projeto".

Os arquivos de configurações ficam em /etc/apache2 , são os arquivos fragmentados. Os módulos ativos ficam em mods-eneabled.

Agora os bancos de dados, mysql primeiro:

# apt-get install mysql-server-5.0 mysql-cliente-5.0 mysql-admin php5-mysql

Instala, na ordem, o servidor mysql em si, um cliente para acesso via terminal e um cliente gráfico. Por ultimo o modulo para o PHP. Para ver os efeitos, tem que reiniciar o apache, e executar o mysqld (MySql Daemon, para o servidor ficar rodando). Você pode usar o mysql-admin (haverá uma entrada no menu) ou o mysql via terminal. Via terminal, como usuario normal:

$ mysql -l localhost -D database -u usuario -p

ou , para passar um arquivo com instruções sql:

$ mysql -l localhost -D database -u usuario -p < arquivo.sql

Assim vai pedir a senha do usuario cadastrado. A sintaxe básica para criar a primeira base de dados e usuario no mysql é assim, como root: # mysql

mysql>create database nome_do_banco_de_dados ;
mysql>GRANT select,update,insert,delete,alter,show,create,index,drop ON nome_do_banco_de_dados.* TO usuario IDENTIFIED BY 'senha' ;

Isso garante os comandos listados (Select...) no banco de dados informado, a todas as tabelas ( pelo * ) para o usuário indicado com a senha informada. Como o usuário não existe ele sera criado. ;)

E o postgree?

# apt-get install postgresql-8.1 postgresql-cliente-8.1 pgadmin3 php5-pgsql

Instala o servidor, o cliente terminal, o administrador gráfico e o modulo para o php. Para usar é um pouco mais complicado!

Primeiro crie uma pasta para conter o banco de dados:

# mkdir -p /opt/postgre/data
# chown postgres.postgres /opt/postgre -R
# chmod 755 /opt/postgre -R

Depois edite o arquivo /etc/postgresql/8.1/main/postgresql.conf , procure as linhas abaixo e deixas assim:


listen_addresses = 'localhost'
data_directory = '/var/lib/postgresql/8.1/main/base'

OK, agora pode iniciar o servidor, como root passe ao usuário postgres:

$ su
(digite sua senha de root)
# su - postgres
(agora esta como postgres)
$ cd /usr/lib/postgres/8.1/bin
(todos os comandos são desta pasta)

Agora crie o banco de dados nesta pasta:

$ ./initdb -D /opt/postgre/data

E pode então iniciar o banco de dados, os arquivos de configuração estão na pasta do banco.

$ ./pg_ctl start -D /opt/postgre/data

Para parar use:

$ ./pg_ctl stop -D /opt/postgre/data

Agora para criar um usuário no postgre para esse banco de dados, inicio e depois abra a interface de sql com psql, então entre o seguinte sql:

CREATE ROLE nome_do_usuario LOGIN PASSWORD 'senha' NOSUPERUSER NOCREATEROLE NOCREATEDB ;

(até o ponto o vírgula ainda não terminou a instrução)

Traduzindo: CRIE O PAPEL nome_do_usuario QUE FAZ LOGIN COM PASSWORD 'senha' NAO SUPERUSUARIO(ROOT) não CRIA ROLE NAO CRIA DB ;

Após isso pode-se usar o pgamin3 como usuario comuna para administrar o banco de dados.

Ficam faltando o certificado SSL no apache, depois o JAVA e o Tomcat, até o próximo post!
 

Links e Mais Links

E-mail Print PDF

Estou fazendo um curso, de onde escrevo esse post agora, de Java que esta sendo incrível mas consume um bom tempo. Além disso tenho dois projetos grandes acontecendo, um CRM que ainda esta no planejamento e um Sistema de auditorias Incrível que esta me consumindo vivo hehehe. Mas tem sido ótimo, aprendendo muito com esses projetos em php e o curso em java, conhecimento que vou procurar compartilhar por aqui.

Fica então sobre o que tenho Lido por ai de interessante já que não vou escrever nada agora:

.:WebHome > TWikiBar > Aqui temos um _livro livre_ e completo sobre _Shell_:. --Ótima referencia sobre shell script, que é sempre útil

Linux: Comando MAKE [Artigo] --Eu pretendia até fazer um post sobre o make, esta engavetado a muuuuito tempo. Mas fica esse por hora. 

HSQLDB-- Hipersonic SQL database, banco de dados pequeno e rápido escrito em java, parece interessante. 

Apache: Como usar SSL e criar seu certificado instalando sua própria Autoridade Certificador-- Em ambos os projetos precisei certificar, então estudei um pouco. Mas vi mais coisas mesmo na linux magazine. 

Linux: Servidor IM interno em 5 minutos (jabber) [Artigo]-- Parece ser bem útil... 

Programando em MVC com PHP - phpbrasil.com -- Eu não li na verdade, mas indico a todos que querem aprender Orientação a Objetos e padrões  OO  em PHP;

PHP: PDO Functions - Manual -- A principio parece um bela abstração para camadas de persistência. Outro post que estava engavetado.

Mas sobre persistência, é a camada que lida com a comunicação com banco de dados. Em meus projetos recentes desenvolvi uma classe para tal, que espero compartilhar em breve, com a qual nunca mais usei SQL.  Mais ainda tem muito o que melhorar, inclusive para facilitar o mapeamento objeto-relacional atender a mais alguns padrões de projetos.

Fiz ainda de bob um script em python para lidar com o Vivo Zap 3G e o Modem Yiso da luxicom no linux, uma interface para facilitar e manter a conexão... mas ainda esta bem primário. Caso precisem de ajuda com a vivo zap no linux é só pedir.

Por hora é só essa enrolação mesmo...

 

Javascript DOM não obstrusivo

E-mail Print PDF

Volto hoje a escrever sobre javascript . O Ultimo post ja falei um pouco sobre DOM API do javascript e como manipular elementos XHTML em uma pagina. Hoje pretendo focar em boas práticas de como aplicar os recursos de javascript, mantendo o bom código e a acessibilidade.

Algumas premissas devem ser entendidas, sobre as quais não vou prender na explicação. Não se esqueça que o conteúdo vem acima de tudo, então ter um monte de recursos legais não adiante se isso dificultar chegar ao conteúdo, e principalmente o site deve ser perfeitamente navegavel sem javascript. Isso mesmo. Questão de acessibilidade e de SEO.

O JS deve ser usado para facilitar a navegação e oferecer recursos extras, facilidades, e não para SER a navegação em si. Aconselho a primeiro fazer todo o site funcionando normalmente, todo o fluxo de paginas e informações, e depois aplicar o JS onde esse possa ser útil.

Mãos a obra:

Um uso por exemplo de Javascript, ou ajax que seja, em link. Muitos sites hoje utilizam em certo ponto navegação sem reload de pagina, apenas alterando através de JS o conteúdo de uma determinada area do site. O erro é SE o link só funciona dessa forma:

<a href="javascript:func()">

Isso é um erro comum. O correto é que o link funcione e uma pagina abra normalmente com o conteúdo caso o javascript não funcione. Fazendo assim:

<a href="http://pagina.com/"  onclick="return func()" >  ou <a href="http://pagina.com" onclick="func(); return false;" >

O que acontece é que, caso o onclick retorne FALSO, o evento acaba e o link não é acionado. Isso vai acontecer com o JS acionado. Caso o JS não esteja funcionando por algum motivo, o link vai funcionar tradicionalmente. No caso o func() quardadra a função para alterar o conteúdo

Um exemplo de validação automática de formulário, faremos uma função que percorre os campos do fomulario, procurando por aqueles que devem ser validados, e retorna false caso nao valide algum.

<script> 

function valida(form) {
    // deve-se passar qual formulario a valida
    // normalmente this
    for(i=0;(a=form.getElementsByTagName("input")[i]);i++) {
        // Aki fazemos um loop pelos inputs do form
        if(a.getAttribute("valida") == "ok") {
            // se o atribute valida é ok
            if(a.value.lenght <= 1) {
                // Se nao foi preenchido com mais de uma letra
                alert("O campo "+ a.getAttribute("id") +" é obrigatório") ;
                return false;
                // retorna falso, cancelando o envio e terminando a funcao
            }
        }
    }
    return true ;
}

</script> 

E no formulario fazemos assim:

<form action="enviar.php" method="post" name="contanto" onsubmit="return valida(this)" >

Isso que dizer que ao enviar o formulário ele executara a funcao valida. No mesmo caso do link, esta retornando falso o envio é cancelado. Caso nao tenha javascript, o formulario é enviado. Caso os campos estajam preenchidos, o formulario é enviado pois retorna verdadeiro.

Vejam bem, cada caso é um caso. Existe sim por exemplo casos em que se possa fazer uma pagina baseada em JavaScript, se for por exemplo para o painel de controle da empresa, ou para o sistema de gestão. Mas em paginas de INFORMÇÂO, abertas, de CONTEÚDO deve-se pensar duas ou mais vezes antes disso, pois vai dificultar o acesso ao seu conteúdo.

Por hoje é só!

 

Last Updated on Wednesday, 06 February 2008 23:36
 

Mais Configurações para o editor VIM

E-mail Print PDF
Muito tempo sem atualizar, não por vontade própria mas por falta de tempo mesmo, tenho estado muito ocupado ultimamente.

Vou falar mais um pouco sobre como usar o vim como uma IDE, algumas configurações realmente interessante agora.
O vim usa um arquivo de configuração chamado .vimrc, ele procura primeiro esse arquivo na home do usuario. Os comandos que estiverem nesse arquivo serão executados toda vez que o vim for iniciado, serão as configurações padrões do editor.
Quando você instala o vim, ele ja vem com um arquivo de exemplo, que você pode copiar para usar como base, esse arquivo fica em /usr/share/vim/vimXX/vimrc_example.vim ( onde XX é a versão do VIM).
 $ cp /usr/share/vim/vim70/vimrc_example.vim ~/.vimrc # Esse comando vai copiar o vimrc para sua home

Com isso ele ja vem com uma configuração interessante. Mas vamos a algumas mais, caso não estejam configurados você pode adciona-los ao arquivo .vimrc, ou usar direto no vim.
Para digitar direto no vim, use os ":"(dois pontos) antes do comando, no .vimrc não se usa.

Linha numeradas -> serve para numerar as linhas, muito util, comando: set number
Sintaxe Colorida -> Essencial de qualquer IDE, deixa o codigo colorido: syntax on
Identação -> Também essencial, trata-se do espaçamente, importante principalmente para quem programa em python: set autoident. Você pode ainda configurar a identação com set sw=X, sendo X o tamanho da ident.    "ctrl+i" identa.
Mouse -> AHA! você PODE usar o mouse no vim, apesar do teclado ser bem mais útil, comando: set mouse

Autocompletar de texto -> (autocomplete) Esse já um recurso muito útil, e que pode ser usado de varias formas. O que ele faz é, ao requisitado, lhe da opções para completar a palavra sobre a qual se encontra o cursor. Esse recurso é usado no modo de INSERÇÂO. São varias formas que ele funciona, vou explicar as que mais uso.

Completar no texto -> Procura por ocorrências no texto, acima ou abaixo, e lhe da a lista de opções. No modo de inserção, ao digitar a palavra pressione "ctrl+x", ativa o autocomplete, seguido de "ctrl+i". É só escolher, ele vai lhe dar a lista apartir da palavra antesessora ao cursor.

Completar do dicionario -> Aqui sim é que é muito bom, você vai obter uma lista de opções apartir de um arquivo de dicionario , que é um arquivo de texto com varias palavras. Ex. eu programo em php, eu tenho um arquivo de dicionario com as funções de php. Para usar você tem que configurar primeiro um dicionario, você pode por exemplo colocar os dicionarios na sua home, dentro da pasta .vim (~/.vim/) No meu caso esta em ~/.vim/php.dict. o comando para ativar o dicionario é  set dictionary=~/.vim/php.dict (precedido de ":" no vim).
Depois disso no modo de inserção, posicione o cursor ao fim da palavra  que deseja completar e pressione "ctrl+x" e "ctrl+k", e vc tera uma lista baseado no seu dicionario. Interessate também para quem esta desenvolvem um sistem com muitas funções própria é ter um dicionario baseado nessas funções, e umas mais usadas apenas.

Referências:

  • vivaotux.blogspot.com tem falado bastante do vim
  • Você pode ainda usar as listas de funções do scite como dicionarios, aqui.
  • Ou ainda fazendo uma busca no site do vim.
  • Aqui tem muuuito sobre o vim, no aurelio.net

Bom, por hoje é só. Nosso vim ja esta quase imbativel, mas ainda tem alguns recursos para torna-lo mais incrivel.

Last Updated on Thursday, 07 February 2008 00:20
 


Page 18 of 19