segunda-feira, 18 de agosto de 2008

Novo Blog

Depois de muito tempo, resolvi voltar a escrever no meu Blog.

Muitas coisas mudaram desde a última postagem. Terminei meu mestrado e estou fazendo doutorado em Informática em Saúde na Universidade Federal de São Paulo (UNIFESP). O título provisório é Um Ambiente Colaborativo, baseado na Web 2.0 e na Web Semântica, para o Ensino Construtivista de Medicina.

Assim, acho que o propósito inicial desse Blog já não tem mais muito sentido, uma vez que estou
programando muito pouco atualmente. Dessa forma, muitos posts terão como tema conceitos sobre informática em saúde, análise qualitativa e educação médica. Eventualmente, vou postar também sobre programação de ambientes Educacionais e Web 2.o.

Além disso, vou escrever sobre minha vida pessoal, quando eu achar pertinente.

Um abraço!

domingo, 16 de dezembro de 2007

Jade Leap

Very Important:

java -cp JadeLeap.jar jade.Boot -gui –nomtp

segunda-feira, 21 de maio de 2007

Vídeo em JME

Mais uma vez, perdi um tempo enorme para fazer um coisa simples pq não acho documentação clara.

Dicas:

1. Esse código funciona:

VideoControl vc;

try {

HttpConnection conn = (HttpConnection)Connector.open("http://www.inovani.no/Videos/adrian_32aKbps_80vKBps.mpg");

Player player = Manager.createPlayer(conn.openInputStream(),"video/mpeg");

player.addPlayerListener(this);
player.realize();

VideoControl video = (VideoControl) player.getControl("VideoControl");
Item videoItem = (Item)video.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, null);
helloForm.append(videoItem);

player.start();

vc = (VideoControl) player.getControl("VideoControl");

} catch(Exception e) {
helloStringItem.setText(e.getMessage());
}

2. Se vc tem dúvidas sobre quais são os formatos que seu emulador/dispositivo suporta execute o seguinte código:

String types[] = Manager.getSupportedContentTypes(null);

for (int i=0; i
System.out.println(types[i]);
String protocols[] = Manager.getSupportedProtocols(types[i]);
for (int j=0; j
System.out.println(protocols[j]);
}
}

3. Utilize os emuladores da SonyEricson, os outros não funcionam direito para vídeo.

http://developer.sonyericsson.com/getDocument.do?docId=65255


Um abraço!

terça-feira, 15 de maio de 2007

Entity Manager no Netbeans

Há algum tempo tentei utilizar o Hibernate no Netbeans seguindo esse tutorial da própria Netbeans:

http://www.netbeans.org/kb/articles/hibernate-javaee.html

Porém, estava incompleto, por isso eu não estava conseguindo repeti-lo. O tutorial que segue funciona:

http://blec.lec.ufrgs.br/page/lounge?entry=hibernate_persistence_no_netbeans_5

Outra dica é, esse tutorial não funciona com a última versão do Entity Manager do Hibernate, apenas com a versão 3.2.1.

Um Abraço!

Jade - Agentes

Olá, mais um post útil apenas para mim! hahahaha...espero estar enganado.

Tive muitos problema para utilizar o Jade, não gostei da documentação deles. Principalmente, pois: é pouco objetiva e possui uma introdução que trata de assuntos relacionados à teoria de agentes, o que para quem deseja utilizar Jade, não deve ser novidade.

Bem, de qq forma algumas dicas práticas para utilizar o Jade em aplicações externas são:

1. Se estiver criando um projeto Web, todos os .jar do Jade devem ser copiados no lib do servidor.
2. Para utilizar o Jade é necessário inicia-lo, para isso digite no diretório lib do servidor: java –jar jade.jar -notmp.
3. Crie uma classe para gerenciamento dos Agentes da sua aplicação (Sugestão):

public class AgentsManager{

public String start() {

Runtime rt = Runtime.instance();
rt.setCloseVM(true);
ProfileImpl containerProfile = new ProfileImpl("127.0.0.1",1099,");
ContainerController cc = rt.createAgentContainer(containerProfile);

//Cria um Agente e um Controlador
AgentSearch searchAgent = new AgentSearch(musica,artista);
AgentController search = cc.acceptNewAgent("searchAgent",searchAgent);

search.start();
}
}

4. Leia todos os tipos de comportamentos disponíveis na documentação, na minha opinião são muito importantes para o desempenho da aplicação.
5. Essa monografia é muito boa:
jade.tilab.com/papers/2003/monografia.pdf

Um Abraço!

sexta-feira, 11 de maio de 2007

Áudio em celulares com Java ME

Depois de muito bater cabeça, entendi porque o seguinte código, encontrado em muitos fóruns, não funcionava:


try {
HttpConnection conn = (HttpConnection)Connector.open("http://www.dc.ufscar.br/~luiz_santana/1.wav");

Player player = Manager.createPlayer(conn.openInputStream(),"audio/X-wav");

player.addPlayerListener(this);
player.realize();
player.start();

} catch (Exception e) {
stringItem1.setText(e.getMessage());
e.printStackTrace();
System.out.print(e.getMessage());
}
}


O problema é que o CLDC não suporta qualquer tipo de arquivo WAV. Apenas arquivos do tipo PCM, 8 bits, mono, com a frequencia de 16000 hz. Para transformar seus arquivos use o programa Ease Audio Converter (
http://superdownloads.uol.com.br/download/115/ease-audio-converter/).

Um abraço!

Traduzir Linguagens de Marcação

Não sei se alguem mais precisa disso, mas eu vivo precisando.

Primeiro é necessário baixar os seguintes arquivos:

Xerces - http://xml.apache.org/dist/xerces-j/
JTidy - http://jtidy.sourceforge.net/

public static String html2xhtml(String URL) {
try {
URL HTMLurl = new URL(URL);
InputStream HTMLis = HTMLurl.openStream();

if ( HTMLis != null ) {

Tidy converter = new Tidy();

converter.setTidyMark(false);
converter.setXmlOut(true);
converter.setXmlPi(true);
converter.setXmlPIs(true);
converter.setNumEntities(true);
converter.setDocType("omit");

Document doc = converter.parseDOM(HTMLis, null);
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("c:/teste.xhtml"));
XMLSerializer ser = new XMLSerializer(out, new OutputFormat("xml", "UTF-8", true));
ser.serialize(doc.getDocumentElement());
}

return null;
} catch ( Exception e ) {
return e.getMessage();
}
}

public static void main(String[] args) {

try {

html2xhtml("http://www.uol.com.br");

} catch (Exception e) {
System.out.println(e.getMessage());
}
}