Feeds:
Posts
Comentários

Blog atualizado os novos posts serão incluídos em: blog.mangar.com.br

Agile Programming

Permsize

Are you getting problem with Eclipse with PermSize?

Try this arguments when eclipse starts:

-vmargs -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

Field formating is a feature that all client application must have.
Specially with web application it´s not “cool” to create masks and some interface features, at least for back end developers.

So, that’s a good tool named: jQuery, it’s a javascript library, easy to use and very simple.

This sample, was to create a mask for Brazilian fields, like Zip code, Phone and Date.

1 – Downloads
jQuery lib: http://jquery.com/
MaskedInput lib: http://digitalbush.com/projects/masked-input-plugin

2 – HTML code:

<html>
<head>
<script type=”text/javascript” src=”jquery-1.2.3.js”></script>
<script type=”text/javascript” src=”jquery.maskedinput-1.1.2.js”></script>

</head>
<body>
<script type=”text/javascript”>
$.noConflict( );
jQuery(function($){
$.mask.addPlaceholder(”~”,”[+-]“);
$(”#fieldDate”).mask(”99/99/9999″);
$(”#fieldBrZip”).mask(”99999-999″);
$(”#fieldPhone1″).mask(”(99) 9999-9999″);
});
</script>

Date: <input id=”fieldDate” type=”text” /> 99/99/9999<br>
BR. Zip: <input id=”fieldBrZip” type=”text” /> 99999-999<br>
Phone: <input id=”fieldPhone1″ type=”text” /> (99)9999-9999<br>

</body>
</html>

Ubuntu and Cairo-Dock

It’s very simple to install a similar MacOS bar in Gnome/Ubuntu.

  1. Get the Cairo-Dock look for the last version here: https://developer.berlios.de/project/showfiles.php?group_id=8724&release_id=14331 Get the binary and the plugins (it will be useful)
  2. Run the binary and after the plugins
  3. Open a terminal and type: cairo-dock

To make the Cairo-Dock open together with Gnome, open: System > Preferences > Session > Startup Programs > Add

Type:

  • Name: Cairo
  • Command: cairo-dock
  • Press: Ok and Close.

Now, every time that you run Gnome the Cairo-Dock will starts.

If you want to let your Gnome like MacOS, try this website, you will find some good features, like Firefox themes, Gnome themes.

Enjoy!

Babylon and Linux = Babytrans

Recently arrived from Windows world with a very very good (not free) dictionary software called Babylon, I missed this kind of software at Linux world.

Searching on the web, I found babytrans, actually it’s not as good as Babylon, missing some excellent features like just press CTRL and Right Click over the word and a smart pop-up window blows up on the screen with the translation and the meaning of the word, Babytrans is a good choice ( and I think the unique) .

I have install Babytrans in my laptop with Ubuntu, and it was very easy to install and a bit boring to configure.

Let’s start with instalation:

By the Gnone interface, click on System > Administration > Synaptic Package Manager, insert the root password.

Click on Search button, and type: Babytrans, mark the option: babytrans, click in Apply, the software will be installed.

The next phase is configure it, go to the ftp: ftp://ftp.ac-grenoble.fr/ge/languages/babylon_dict and get the files: dictionary, english.dic.gz, and in my case, I would like to translete some words from english to portuguese, I got the EngToPor.dic.gz.

Logged as root, open a terminal windows and type:

# mkdir /usr/local/share/babytrans
# cp dictionary /usr/local/share/babytrans
# mkdir /usr/local/lib/babytrans
# cp *.gz /usr/local/lib/babytrans

# gunzip /usr/local/lib/babytrans/EngToPor.dic.gz

# gunzip /usr/local/lib/babytrans/english.dic.gz

The next step is configure the dictionary to open the right file, type: #vim /usr/local/share/babytrans/dictionary

and check if the dictionary file name is the same as you just copy to the lib/babytrans directory, in my case the English/Portuguese dictionary wasn’t, I just changes the line:

po = Portugues , EngtoPort.dic

to

po = Portugues , EngtoPor.dic

Now, the final step is, choose your default dictionary/language, now as your user (not as root) type:

$vim ~/.babytrans/config

find the line: language = XX

change it to: language = po

Finished! Now you just need to open Babytrans (Applications > Other > Babytrans), select a word in you browser, for exemple, and take a look at the babytrans window, the word is right there, explained.
Babytrans is not a Babylon, but it can be useful in special cases that you have a doubt about a word in some text.

Enjoy!

Babytrans website: Babytrans

How to Install Skype on Ubuntu

Open a command line – with root privilegies – and type:

#vim /etc/apt/sources.list

Insert the follow line:

deb http://download.skype.com/linux/repos/debian/ stable non-free

save and quite the editor (type: :wq! and Enter)

Back in command line, just to update the repositories, type:

#apt-get update

Now type:

#apt-get install skype

Nice and Easy! Skype is installed and if everything on instalation was fine, you can see the Skype icon on: Applications > Internet > Skype

Others packages for apt-get you can find in: http://www.apt-get.org

Enjoy!

  • Project Template
Project Template (Archetype) Purpose
maven-archetype-archetype Create your own project template (archetype).
maven-archetype-j2ee-simple Creates a J2EE project (EAR), with directories and subprojects for the EJBs, servlets, etc.
maven-archetype-mojo Create your own Maven 2 plugins.
maven-archetype-quickstart Simple Java project, suitable for JAR generation. Maven 2 default.
maven-archetype-site Documentation-only site, with examples in several formats. You can run this archetype on top of an existing Maven 2 project to add integrated documentation.
maven-archetype-webapp Creates a web application project (WAR), with a simple Hello World JSP.

Usage:

mvn archetype:create
  -DgroupId=[your project's group id]
  -DartifactId=[your project's artifact id]
  -DarchetypeArtifactId=maven-archetype-webapp
  • Maven Commands
mvn clean Cleans out all Maven-2-generated files.
mvn compile Compiles Java sources.
mvn test-compile Compiles JUnit test classes.
mvn test Runs all JUnit tests in the project.
mvn package Builds the JAR or WAR file for the project.
mvn install Installs the JAR or WAR file in the local Maven repository (use this if you have multiple interdependent local projects).

Origem: java.net

Mais uma da série Maven2, desta vez com EJBs.

Não são raras as vezes que desenvolvendo projetos que precisem de um pouco mais de robustes e controle de transações  utilizem EJB’s.

Geralmente aplicações backend (utilizem EJBs) e frontend  (consomem EJBs) ficam empacotados no mesmo arquivo EAR, por tanto, o codigo do bean e as interfaces de conexão entre os EJBs e o cliente ficam no mesmo pacote, até então nada de errado, nada de estranho.

No entanto, participando de uma aplicação que será consumida por clientes de forma remota, mas interna a empresa, algumas alternativas aparecem com prós e contras:

WebService

Prós: fácil de integrar com a grande maioria das aplicações que rodam na empresa, seja Delphi, VB, .Net e o próprio Java.

Contras: muito lento se comparado com modelos nativos.

Modelos nativos

Prós: hand-shake e troca de informação entre aplicações rápido.

Contra: fortemente acoplado, a aplicação deve saber se comunicar com a aplicação servidora de  forma nativa.

Algums vezes WebService pode ser a melhor solução em se tratando de integração de aplicações de diferentes linguagens, por exemplo Java e .Net.

Em uma cenário em que existe uma aplicação cliente e uma aplicacao servidora em java não existe razão para conectar as aplicações através de WebService, a melhor opção neste caso seria RMI-IIOP.

Não é muito elegante e muito menos seguro entregar para o desenvolvedor da aplicação cliente um pacote JAR com todo o codigo (mesmo que compilado) incluindo a implementação do Bean.

Para isso, o Mave2 utiliza um plugin que gera um pacote JAR apenas com as interfaces necessárias para integracao das partes, de forma fácil e simples.

  • Passo 1:

Inclua  o trecho de código no pom dos EJBs:

<build>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-ejb-plugin</artifactId>
  <configuration>
    <generateClient>true</generateClient>
    <ejbVersion>3.0</ejbVersion>
    <clientExcludes>
      <clientExclude>br/com/mangar/ps/adm/business/dao/**/*</clientExclude>
      <clientExclude>br/com/mangar/ps/adm/business/util/**/*</clientExclude>
      <clientExclude>**/*Bean.class</clientExclude>
    </clientExcludes>
  </configuration>
</plugin>
</build>

Com esse código será gerado um pacote JAR como mesmo nome do pacote com os beans incluindo -client ao nome deste, que conterá todas as classes do pacote de EJB, exceto as classes do pacote dao, do pacote util e os Beans

  •  Passo 2

Para gerar o pacote, basta informar na linha de comando:

mvn ejb:ejb

Mais informações podem ser encontradas em: Maven EJB Plugin

Depois de muito relutar, nao teve jeito, tive que ceder a um “sisteminha de controle de build” e foi o Maven,
nunca me soou bem ter uma aplicacao que definisse quais os diretorios e padroes eu deveria utilizar no
desenvolvimento de uma aplicacao, assim como a utilizacao de PMD e Checkstyle sempre foram, e de certo modo
continuam sendo, uma burocracia desnecessária e um inibido de criatividade do desenvolvedor, mas isso já é papo
para outro post.

Para mim nunca fez sentido “embutir” uma ferramenta a mais no processo de desenvolvimento que nao agregasse valor algum
para o desenvolvedor do sistema, mas estudando e utilizando o Maven percebi que realmente, “criatividade” na mao de desenvolvedor
é uma arma, algumas vezes (quase sempre) deve ser definido o padrao de diretorios para recursos, classes, arquivos de configuracoes,
conteudo web e etc….

Vejamos alguns passos para utilizar essa ferramenta:

Instalando

Simples, rápido e indolor, va no site do projeto e facao download do binario: http://maven.apache.org/download.html
Feito isso, descompacte o conteudo e crie uma variavel de ambiente chamada: M2_HOME apontando para este diretorio,
altere a variavel de ambiente: “Path” incluindo no final: ;%M2_HOME%\bin

Abra uma linha de comando e digite:

mvn --version

se a resposta for algo do tipo:

Maven version: 2.0.5

Perfeito, o primeiro passo está dado, Maven2 instalado e funcionando.

Criando projetos

O Maven cria uma estrutura de diretorios de acordo com o tipo do projeto, este pode ser direcionado para projeto web,
projeto EJB (business) ou apenas um jar, por defautl ele cria uma estrutura de diretorio JAR, para isso, va na linha
de comando e digite:

mvn archetype:create -DgroupId=mangar.corp -DartifactId=mangar-jar

groupId = nome do pacote que será criado no repositorio
artifactId = nome do projeto

existem mais alguns parametros que podem ser informados na linha de comando para criar uma arvore de diretorios para determinados
tipos de projetos, uma delas é:

-DarchetypeArtifactId=maven-archetype-webapp

este criará uma estrutura para um projeto web, com WEB-INF.

A estrutura criada será:

mangar-jar

   |-- pom.xml

       `-- src

           `-- main

           |   `-- java

           |       `-- App.java

           `-- test

               `-- java

                    `-- AppTest.java

Se vc criou uma estrutura jar mas na verdade precisa de uma estrutura web, nao se desespere!
Crie o diretorio, dentro do diretorio main: webapp e webapp\WEB-INF, crie tbem o arquivo web.xml dentro do WEB-INF,
e altere o arquivo pom.xml a tag packaging de jar para war.

pom.xml

É aqui que mora todo o segredo do Maven, este é o arquivo onde ficam todos os segredos, dependencias, empacotamento,
relatorios e todas as magicas que o Maven pode fazer por voce.

No comeco temos:

<groupId>mangar.corp</groupId>

 <artifactId>mangar-jar</artifactId>

 <packaging>jar</packaging>

 <version>1.0-SNAPSHOT</version>

A tag <version> e a <packaging> sao duas que tambem podem ser informadas na linha de comando quando criado o repositorio
do projeto, mas por default, estes valores apresentados sao os padroes caso nao seja mencionado.

Maiores detalhes sobre esse arquivo vc pode encontrar nos sites: maven.apache.org, onjava entre outros.
Vou apresentar aqui alguns parametros que precisei.

Compilando o codigo com a versao 1.5 do JDK

Na maquina já existia uma VM 1.5 instalada no entando, nao sei por causa de que, meu codigo que compilava perfeitamente
no Eclipse, nao estava rolando via maven (estava usando enum e generics), entao, garimpando na WEB descobri os seguintes
parametros que devem ser incluidos no pom.xml:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>

A tag <build> é unica no arquivo, assim como a <plugins> dentro da <build>, mas a tag <plugin> pode ser incluido de acordo com os
plugins necessários com a fase de build exigir.

Uso de bibliotecas (agregando para o desenvolvedor)

Chegamos na hora boa, a hora que o desenvolvedor vai deixar de apenas cumprir regras sem um ganho de fato.
Em um projeto web, nao é raro utilizar struts, por acaso vc sabe a dependencia entre o pacote struts.jar com os demais pacotes?
Eu tbem nao! Mas o Maven sabe!
Apenas informando que o projeto tem dependencia com struts e qual a versao deste, o maven vai trazer para o repositorio local
todas as dependencias necessárias, para isso, inclua no seu pom:

<dependencies>
<dependency>
<groupId>struts</groupId>
<artifactId>struts</artifactId>
<version>1.2.9</version>
</dependency>
<dependencies>

A tag: <dependencies> é unica para todo o pom, já as <dependency> pode se multiplicar de acordo com a necessidade.
Com esse trecho de codigo o maven fará o downlod da lib do struts 1.2.9 incluindo todas as dependencias.

Repositorios

Como dito na sessao anterior o maven baixa as bibliotecas do repositorio remoto para o repositorio local, por definicao o
repositorio padrao remoto é o: http://repo1.maven.org/maven2/ este contem uma quantidade de bibliotecas muito grande, ainda
assim algumas mais especificas ou versoes mais novas podem nao estar atualizadas, por tanto, vc pode incluir alguns repositorios.

Uma das maneiras de incluir um novo repositorio é incluir o codigo no arquivo pom.xml:

<repositories>
<repository>
<id>galaxy</id>
<url>http://galaxy.andromda.org/maven2</url>
</repository>
</repositories>

A tag <repositories> é unica no pom, a tag <repository> pode ser repetida para incluir os repositorios desejados, inclusive o repositorio
do JBoss.

O repositorio local por definicao é criado dentro do diretorio “home” do usuario, no windows: %Documents and Settings%\%Usuario logado%\.m2\repository
Mas pode ser alterado, para isso, copie o arquivo settings.xml que fica em: %M2_HOME%\conf para o %Documents and Settings%\%Usuario logado%\.m2
localize a linha: <settings> insira logo a baixo : <localRepository>c:/m2</localRepository>
Isso mudara o diretorio do seu repositorio.

Executando

Com tudo isso feito, agora é hora de vermos o Mvn em ação, na linha de comando vá para o diretorio onde está localizado o arquivo pom.xml e digite:

mvn clean install

Executado a primeira vez este comando fará o downlad de todas as bibliotecas associadas direta e indiretamente ao projeto, compulara o projeto,
executará os testes, empacotará o projeto e o instalará no repositorio local.

outros comandos:

clean = limpa o diretorio de target, que o maven usa como stage para a geracao do pacote com os binarios da aplicacao
package = compila o projeto e gera o pacote (war, jar, ….)
compile = apenas compila o projeto, gerando a saida no diretorio target.
site = compila, empacota o projeto e gera o site do projeto

Postagens Antigas »