quinta-feira, 29 de abril de 2010

XMarks - Sincronizador de bookmarks (favoritos)

XMarks - ótima ferramenta que serve para sincronizar bookmarks (favoritos).

O XMarks é uma ferramenta que pode ser instalada no firefox, internet explorer ou chrome.

Com ela, todos os seus bookmarks são sincronizados de um navegador pra outro, ou seja, você tem todos os seus favoritos à sua disposição independente do navegador que estiver usando!!! muito bom :)

E o melhor de tudo, você também pode acessar seus favoritos a partir da internet, a partir do site do XMarks, ou seja, você pode acessar seus favoritos onde quer que você esteja! muito bom mesmo.

Este é o site do XMarks:

http://www.xmarks.com

Java - Pegar uma conexão Oracle (OracleConnection) real do Tomcat

Geralmente, precisamos pegar a Connection do banco de dados em que estamos trabalhando para uma porção de coisas: para pegar alguma informação do banco de dados, para chamar alguma stored procedure, para executar algum código específico do banco de dados, etc.

Em alguns casos, quando se está trabalhando com Java e Oracle, se formos utilizar alguns recursos avançados exclusivos do Oracle, veremos que algumas bibliotecas exigem que seja utilizado uma instância de OracleConnection (que seria o resultado normal quando você pega uma conexão com o Oracle via java).

No entanto, quando estamos utilizando o Tomcat e pegamos uma conexão do Oracle, percebemos que não pegamos uma instância de OracleConnection, mas sim uma instância de org.apache.tomcat.dbcp.dbcp.PoolableConnection.

Para conseguirmos pegar o OracleConnection a partir deste org.apache.tomcat.dbcp.dbcp.PoolableConnection retornado, devemos fazer dois passos:

1º) Primeiro devemos alterar o arquivo XML de conexão com o banco de dados do Tomcat. Este arquivo pode ser o context.xml ou o server.xml (ou ainda alguma outra configuração), depende de como você usa o Tomcat para se conectar ao banco de dados.

Este é um exemplo de arquivo de conexão ao banco de dados do Tomcat:


<Context docBase="c:\workspace\MinhaApp\WebContent" path="/minhaapp" reloadable="true">
   <Resource auth="Container"
      driverClassName="oracle.jdbc.driver.OracleDriver"
      maxActive="-1" maxIdle="30" maxWait="10000"
      name="jdbc/minhaapp" type="javax.sql.DataSource"
      username="minhaapp" password="minhaapp"
      url="jdbc:oracle:thin:@localhost:1521:xe"
   />
</Context>


Neste caso, estou usando o Tomcat para me conectar a um banco de dados Oracle XE.

O que devemos fazer aqui é - na tag Resource - que devemos adicionar o atributo "accessToUnderlyingConnectionAllowed" como true.

Dessa forma, o arquivo ficaria assim:

<Context docBase="c:\workspace\MinhaApp\WebContent" path="/minhaapp" reloadable="true">
   <Resource auth="Container"
      driverClassName="oracle.jdbc.driver.OracleDriver"
      maxActive="-1" maxIdle="30" maxWait="10000"
      name="jdbc/minhaapp" type="javax.sql.DataSource"
      username="minhaapp" password="minhaapp"
      url="jdbc:oracle:thin:@localhost:1521:xe"
      accessToUnderlyingConnectionAllowed="true"
   />
</Context>


Pronto, esta é a primeira parte da alteração que precisamos fazer.



2º) A segunda parte da alteração é no próprio código que pega a conexão com o banco de dados.

Digamos que este é o código que você usa para pegar uma conexão com o banco de dados:

InitialContext ic = new InitialContext();
DataSource dataSource = (DataSource) ic.lookup("java:comp/env/XXX");
Connection con = dataSource.getConnection();

Pronto, pegamos a conexão com o banco de dados. Só que, na verdade, pegamos uma instância de org.apache.tomcat.dbcp.dbcp.PoolableConnection.

Para pegar o OracleConnection, devemos utilizar o método "getInnermostDelegate()" da conexão recebida.

Desta forma, o nosso código completo para pegar o OracleConnection seria este:

InitialContext ic = new InitialContext();
DataSource dataSource = (DataSource) ic.lookup("java:comp/env/XXX");
Connection con = dataSource.getConnection();

OracleConnection oracleConnection;
if (connection instanceof org.apache.tomcat.dbcp.dbcp.DelegatingConnection) {
   oracleConnection = (OracleConnection) ((org.apache.tomcat.dbcp.dbcp.DelegatingConnection) connection).getInnermostDelegate();
} else {
   oracleConnection = (OracleConnection)connection;
}


Pronto, desta forma conseguimos pegar o OracleConnection a partir do PoolableConnection.


Atenção: a classe DelegatingConnection é de um .jar do Tomcat. Esta classe está no .jar chamado "naming-factory-dbcp.jar".

Como este .jar está dentro do Tomcat, você não precisa colocar ela dentro do .war do seu projeto. Mas você precisa colocar ela no classpath do seu projeto (build path do projeto no Eclipse, classpath da aplicação, etc.) senão você não irá conseguir compilar este código, ok?


Bem, é isso. Até mais, pessoal.

Sem doutorado? Então fora!


Sem doutorado? Então fora!


Texto interessante que fala que as universidades brasileiras não aceitam profissionais super conceituados como professores universitários enquanto que no exterior este problema não existe.

Segundo o autor: "no Brasil, vigora o 'quem sabe faz e quem não sabe ensina'".

Texto interessante... Questionável? ... deixo as conclusões para cada um. Particularmente não tenho uma opinião 100% formada sobre o assunto. Mas é um assunto interessante.



Usabilidade na Web - Jakob Nielsen

Jakob Nielsen é considerado o pai da usabilidade na web.

Ele tem vários livros sobre usabilidade na web. Vale a pena conhecer o trabalho dele e os seus livros. Procurem no google pelos livros dele.

Além disso, ele mantém um site que fala sobre usabilidade na web. O site é o http://www.useit.com/ (particularmente achei o site dele bem feinho... acho que é o tipo "faça o que digo, mas não faça o que eu faço". mas as idéias dele são muito boas) :)

Abraços

6 Teorias que todo Marketeiro Digital deveria saber

6 Teorias que todo Marketeiro Digital deveria saber

Texto bem interessante sobre teorias sobre a internet, seus usuários e marketing.

muitolegal blog :: sua overdose diária de inspiração: 6 Teorias que todo Marketeiro Digital deveria saber