sexta-feira, 16 de dezembro de 2011
Primeiro post: um teste
Vamos ver se a inserção de script funciona.
Isso aí! Agora todos os posts que tiverem código fonte serão bonitos e bem formatados, graças às facilidades de compartilhamento via script do github:gist.
Pelo que vi é "só" muito melhor que o mecanismo lento e restrito do wordpress. Aqui posso até adicionar scripts no post, sem strip-tags. A interface de edição é fácil e rápida. Muito bom!
Vamos ver como é a inclusão de imagens.
Beleza!
Acho que vou mudar pra cá. Aqui tenho a liberdade que preciso.
Portanto estou importando todos os posts interessantes para este provedor. Para isso, existe a aplicação wordpress2blogger que presta uma grande ajuda, e sabe fazer tudo direitinho.
Valeu!
Acessar parâmetros da JVM de dentro do programa
A maior dúvida que tive foi, como acessar os parâmetros da JVM de dentro da aplicação.
Para isto a dica é simples: a classe RuntimeMXBean fornece o acesso a estes parâmetros.
Sua utilização é muito simples conforme a seguir:
RuntimeMXBean runtimemxBean = ManagementFactory.getRuntimeMXBean();
List arguments = runtimemxBean.getInputArguments();
Na lista "arguments" temos a lista de todos os parametros passados na inicialização da JVM junto com seus respectivos valores em cada linha. No meu caso, tive que passar parametros personalizados, que nao são da lista de parâmetros nativos da JVM. Fiz isto configurando o servidor de aplicação para adicionar aos parametros passados para a JVM a seguinte entrada:
-DismaelParametro="valor"
Com isto, na lista "arguments" procurei por uma linha que começasse com "-DismaelParametro" e lá estava!
Muito obrigado!
Referência:
RuntimeMXBean
terça-feira, 13 de dezembro de 2011
Manipulação de XSD no Eclipse
Neste post será vista a construção do XSD que é o elemento base para a composição do XML, pois é usado para efetuar sua validação. Para tanto, será utilizado o plugin XSD Editor da IDE Eclipse.
A seguir, um passo a passo, de como construir um XSD no eclipse:
Criar um diretorio META-INF dentro do diretorio src no projeto.
Clicar com o botão direito em cima do diretório e seguir: New->Other...->XML->XML Schema
Clicar em next e definir um nome para oa arquivo. Neste exemplo o nome é "pessoa.xsd".
Será aberto o editor XSD. Alterne entre as abas Design e Source para se ambientar. Iremos trabalhar na aba Design.
Iremos construir o objeto pessoa, que segue o seguinte esquema de atributos:
Pessoa
->nome
->endereco
-->>rua
-->>numero
-->>cidade
->telefones
Como percebemos dois atributos não são primitivos. É o caso de "endereco", que é um tipo composto e "telefones" que é uma lista. Precisamos definir estes tipos então.
Na seçao Types, na aba Design, clique com o botão direito e em Add Complex Type. Nomeie com endereço e clique duplo no item criado.
[caption id="attachment_142" align="aligncenter" width="640" caption="Adicionando Complex Type"]
[/caption]Na tela que se abre clique com o direito no quadro endereço e clique em add element, e nomeie o elemento criado como rua.
[caption id="attachment_143" align="aligncenter" width="640" caption="Adicionando item no tipo complexo"]
[/caption]Repita o processo de forma a contemplar o esquema definido anteriormente. No esqueça de trocar o tipo do item numero para int.
[caption id="attachment_144" align="aligncenter" width="640" caption="Tipo complexo resultante"]
[/caption]Clique no botao superior, no XSD Editor, para voltar à tela principal.
Da mesma forma como ja criado, adicione um segundo complex type, chamado listaTelefones. Clique duplo no item criado. Clique com o direito no quadro listaTelefones, em seguida, Add Element.
Defina o nome do item como telefone, e na aba propriedades, defina os valores: Minimum Occurence=0 e Maximum Occurence=unbounded. Desta forma definimos uma lista com ocorrência minima de zero e sem limitação no número de itens.
[caption id="attachment_145" align="aligncenter" width="640" caption="Tipo Lista"]
[/caption]Clique no botao superior, no XSD Editor, para voltar à tela principal.
Agora crie outro complex type chamado pessoaData. Clique duplo no item criado e adicione os atributos "nome", "endereco" e "telefones", conforme ja definido. Para selecionar o tipo do atributo "endereço", clique na caixa de seleção de tipo e selecione "Browse...".
[caption id="attachment_149" align="aligncenter" width="624" caption="Selecionando tipo complexo"]
[/caption]Na caixa que se abre, selecione o tipo endereco e confirme. Logo após, repita o processo e selecione o tipo "listaTelefones" para o atributo "telefones".
[caption id="attachment_150" align="aligncenter" width="640" caption="Caixa de seleção de tipo complexo"]
[/caption]O esquema de complex types deve ficar desta forma:
[caption id="attachment_148" align="aligncenter" width="640" caption="Esquema final"]
[/caption]Clique no botao superior, no XSD Editor, para voltar à tela principal.
Na seção Elements, na aba Design, clique com o botão direito em Add Element, e defina o nome do elemento para "pessoa".
[caption id="attachment_146" align="aligncenter" width="640" caption="Adicionando Elemento raiz"]
[/caption]Clique duplo no elemento. No quadro pessoa, clique com o direito, em seguida Set Type->Browse...
Na caixa que aparece selecione o tipo pessoaData e clique em OK.
[caption id="attachment_151" align="aligncenter" width="640" caption="Seleção do tipo criado"]
[/caption]O esquema do elemento deve ficar desta forma.
[caption id="attachment_147" align="aligncenter" width="471" caption="Esquema do elemento"]
[/caption]Por fim, temos o documento XSD resultante de nossa configuração.
[caption id="attachment_155" align="aligncenter" width="640" caption="XSD Resultante"]
[/caption]
quarta-feira, 30 de novembro de 2011
Acessando SpringBeans no contexto do Servlet
Digamos que você tenha um SpringBean da classe "Pessoa" e você queira acessá-lo através de um Servlet. Então temos o seguinte código no ApplicationContext.xml.
<bean id="pessoaBean" class="com.wordpress.ifsantos.Pessoa"/>
Para possibilitar o acesso através do Servlet, primeiro, dentro do ApplicationContext.xml adicione a seguinte entrada:
<bean class="org.springframework.web.context.support.ServletContextAttributeExporter">
<property name="attributes">
<map>
<entry key="pessoaBean" value-ref="pessoaBean" />
</map>
</property>
</bean>
O código acima, adiciona o SpringBean "Pessoa" no mapa de atributos do contexto de Servlets, tornando-o acessível a partir de qualquer Servlet da aplicação.
Agora, dentro do Servlet, adicione o seguinte trecho de código:
Pessoa pessoaBean = (Pessoa) getServletContext().getAttribute("pessoaBean");
Pronto! O SpringBean "Pessoa" foi exportado para o contexto do Servlet e agora é possível acessá-lo sem problemas.
Gracias!
quarta-feira, 14 de setembro de 2011
Limpar password do Subclipse
Existe um arquivo chamado "svn.simple". Nele se encontram o username e password utilizado. Basta apagar estas informações dentro do arquivo.
Sistemas Unix-like:
~/.subversion/auth/svn.simpleWindows 7:
C:\Users\[usuario]\AppData\Roaming\Subversion\auth\svn.simpleWindows XP:
C:\Documents and Settings\[usuario]\Application Data\subversion\auth\svn.simpleDELETAR o arquvo no seguinte caminho:
[eclipse_home]/configuration/org.eclipse.core.runtime/.keyringThanks ;-)
sexta-feira, 9 de setembro de 2011
Escrita de arquivos em Java: FileWriter e FileOutputStream
Abaixo, exemplos de utilização destas duas abordagens:
FileOutputStream:
FileWriter:
No primeiro código, temos a escrita de 1024 bytes em um arquivo binário. No Segundo código, temos a escrita de 1024 caracteres em um arquivo texto. Caso o array de bytes do primeiro código, fosse escrito em disco, utilizando-se FileWriter do segundo código, o arquivo iria possuir valor diferente, em função da codificação de caracteres utilizada pelo FileWriter. Entretanto, se você tiver um array de caracteres, poderá utilizar o FileOutputStream porque este, ao efetuar a escrita, não re-codifica os bytes recebidos na entrada.
Abraço,
Até mais!
Referências:
FileOutputStream Javadoc
FileWriter Javadoc
quinta-feira, 11 de agosto de 2011
Instalando dependências Maven manualmente
- Coloque o arquivo "ojdbc5.jar" em um diretório vazio;
- Entre neste diretório através do prompt de comando;
- Informe o seguinte comando:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc5 -Dversion=5.0 -Dpackaging=jar -Dfile=ojdbc5.jar -DgeneratePom=true
Pronto! Agora esta dependência está disponível para ser utilizada no arquivo POM de sua aplicação, da seguinte forma:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc5</artifactId>
<version>5.0</version>
</dependency>
Thanks!
quinta-feira, 4 de agosto de 2011
Capturando mensagens SOAP de aplicações com JAX-WS
Inserir o seguinte parâmetro na JVM:
-Dcom.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump=true
@rememberNote: I need to improve this post soon. For now, the essence is here.
Fonte:
http://weblogs.java.net/blog/ramapulavarthi/archive/2006/08/monitoring_soap.html
terça-feira, 2 de agosto de 2011
Trocar a porta HTTP Oracle 10gXE
begin
dbms_xdb.sethttpport('8180');
dbms_xdb.setftpport('2100');
end;
quinta-feira, 2 de junho de 2011
O poder do Hiperlink
Então. Estou eu de volta. De volta, pois algo me moveu a escrever. Percebi, numa movimentação de internet, que fiz uma grande viagem que durou instantes mas que passou por muita coisa, graças ao hiperlink.
Pois bem! Começo minha narrativa desta aventura assim: estava eu, no fim de noite, abrindo meu twitter para ver sobre o que meus amigos e ídolos tinham reportado ao longo do dia, quando passei por um tweet de uma ex-colega de escola que me chamou a atenção (por ser de um tema incomum em meio aos tweets da minha lista). Falava em Design. Resolvi conferir. Acessei o primeiro hiperlink. Com isto fui direcionado a uma tirinha em um site de design. Vi aquilo, não entendi muito por parecer ser piada interna, mas imaginei sobre o que poderia ser o assunto. Ok! Acessei o hiperlink que direcionava à home do site e lá estavam vários posts. Era um blog. Fui navegando por ali, dando uma última olhada, para nao ir embora sem saber em que site tinha entrado. Eu ja estava de saída. De repente me deparo com um video: "Sabe o que um designer faz?". Parei e dei voto de confiança. Um pouco pelo fato de o vídeo apresentar um visual legal, e eu ser muito vulnerável à coisas bonitas. Comecei a assistir. Um vídeo muito criativo. Bem feito, bem humorado e instrutivo, falava sobre como é o trabalho do designer. Mas além disso uma outra coisa me chamou a atenção: a narração do vídeo. Uma voz e um tom tão familiar, que eu me obriguei a assistí-lo até a parte dos créditos para saber o nome do locutor. Apareceu: Sérgio Moreno. A essas alturas eu já tinha detectado de onde eu conhecia aquela fala. Os desenhos do Mickey de quando eu era criança. Fui ao google, coloquei o nome do cara. Seguindo o mecanismo de busca fui ao hiperlink de uma entrevista. No decorrer da entrevista, falavam nomes de outros locutores, e no mesmo instante em que falavam, eu, pausava o vídeo, e ia ao youtube procurar pelo nome. Fiz isto (acho que) umas 3 vezes ao assistir. Interessante que enquanto eu estava no youtube, apareciam os hiperlinks relacionados e fui seduzido algumas vezes à explorar o que alguns traziam. Enfim, voltei ao site da entervista e acabei de ver o vídeo. Muito interessante. Falava sobre o universo da dublagem. Ao terminar, fiquei olhando para o site, e pensando: olha só que tanta volta eu dei por causa de um simples tweet. Eu já estava indo desligar o computador. Poisé! Então este momento me conduziu a mais um hiperlink, para agora para descarregar minha mente e fechar a noite: Wordpress.
