feed twitter facebook LinkedIn facebook

Noticias Web » Driver JDBC Type 5

Abril 30, 2010 por Víctor Cuervo . 5522 visitas Sin Comentarios Imprimir Imprimir

Progress Software ha lanzado unos nuevos driver JDBC type 5. Los cuales se añaden a los 4 tipos de drivers ya existentes.

Y es que desde 1998, año desde el que están disponibles los driver type 4, no se había trabajado en nuevas especificaciones. Y ya iba siendo hora de tener una pequeña evolución.

Progress Software ha enfocado los driver JDBC type 5 a intentar subsanar las carencias de los driver type 4:

  • Rendimiento lento o inconsistente, el rendimiento en ciertos casos es pobre y  no es consistente entre diferentes tipos de plataformas.
  • Funcionalidades inaccesibles o no disponibles, el ajuste del driver es muy crítico y en ciertas ocasiones se necesita acceso al código JDBC.
  • Excesivo consumo de CPU y de memoria, en el tiempo de acceso a datos.
  • Restricciones en el despliegue de aplicaciones, se requieren de diferentes archivos JAR. Incluso, en algunos casos, el despliegue de DLL. Limitando los entornos en los que se puede desplegar.
  • Implementaciones propietarias, en ciertas implementaciones el soporte de transaccionalidad XA o el soporte de campos CLOB/BLOB requieren código propietario.

Progress Software tiene disponible los driver type 5 para para Oracle, SQL Server, DB2, Sybase, MySQL e Informix. Habrá que probarlos.

Vía: Application Development Trends

Java » Usando la API de Twitter4j en java

Abril 27, 2010 por Pablo Ruiz . 6598 visitas 18 Comentarios Imprimir Imprimir

Hola nuevamente acá estoy posteando de nuevo cómo cambiar el estado de Twitter con java gracias a la API Twitter4J.

Primeramente tenemos que tener descargarnos la API Twitter4J 2.1.2 del siguiente link…

http://twitter4j.org/en/twitter4j-2.1.2.zip

Ya descargada la añadimos a nuestro IDE en mi caso uso Netbeans:

  1. Botón derecho sobre “libraries (Librerías)”
  2. ADD jar/folder (Agregar)
  3. Seleccionamos el archivo que descargamos anteriormente del link antes mencionado

Y listo ya tenemos acceso a la API Twitter4J de twitter…

Comenzaremos creando nuestra clase base llamada TwitterJ.java y hacemos las importaciones correspondientes

  1. import java.util.List;
  2. import twitter4j.*;

Ahora creamos un atributo privado del tipo Twitter llamado mi_twitter

  1. private Twitter mi_twier;

Siguiendo creamos nuestro honorable constructor de la siguiente manera

  1. public TwitterJ(String userName, String password) {
  2. try {
  3. mi_twitter = new Twitter(userName, password);
  4. mi_twitter.verifyCredentials();
  5. } catch (TwitterException ex) {            
  6. System.out.println("Error: "+ex.getMessage());
  7. }    
  8. }

Información Constructor:

  • Dos parámetros String que contendran usuario-password respectivamente
  • Creación de objeto con los datos ingresados como parámetros (usuario,password)
  • Verificación de credenciales (si los datos ingresados son correctos)

Ahora crearemos el método que nos dará un nuevo tweet ó cambiará el estado

  1. public void nuevoTweet(String tweet) {
  2.  
  3. try {
  4. this.mi_twitter.update(tweet);
  5. } catch (Exception ex) {
  6. System.out.println("Error: " + ex.getMessage());
  7. }
  8. }

Información método nuevoTweet(String tweet):

  • String tweet será el nuevo estado que enviaremos
  • llamamos al método update de la clase Twitter y le damos de parámetro lo ingresado en el argumento de método creado

Ahora crearemos el método que nos devolverá nuestro actual estado

  1. public String getEstado(){
  2. String estadoActual = "";
  3.  
  4. try {
  5. List<Status> statusList = mi_twitter.getUserTimeline();
  6. estadoActual = String.valueOf(statusList.get(0).getText());
  7. } catch (TwitterException ex) {
  8. System.out.println("Error:"+ex.getMessage());
  9. }
  10.  
  11. return "Mi Estado es: "+estadoActual;
  12. }

Información método getEstado( ):

  • creamos una variable que contendrá el estado
  • creamos un List que contendrá lo que venga del método de la clase Twitter ( getUserTimeLine )
  • nuestra variable antes creada tendrá el valor de la lista en la posición o
  • retornamos nuestra variable

Ahora crearemos un método que nos devolverá la lista de contactos en twitter

  1. public void listaDeContactos() {
  2. try {
  3. List<User> friends = mi_twitter.getFriends();
  4. System.out.println("Lista de Contactos\n");
  5.  
  6. for (User f : friends) {
  7. System.out.println("Usuario: "+f.getScreenName());
  8. System.out.println("Estado: "+f.getStatusText()+"\n");
  9. }
  10. } catch (Exception e) {}
  11. }

Información método listaDeContactos():

  • Creamos un List que contendrá lo que venga del método de la clase Twitter ( getStatusText )
  • Recorrimos la lista “friends” que debería tener los amigos ó contactos
  • Vamos imprimiendo mientras se recorre el for each el USUARIO y ESTADO

La API Twitter4J consta con muchos mas métodos y cosas por el estilo, yo solo te daré la base para comenzar…  puedes hacer una gráfica mas atractiva y usar esta clase para aquello…

Bueno ahora haremos nuestro main:

  1. public static void main(String args[]){
  2. TwitterJ t = new TwitterJ("mi_user","Mi_password");
  3.  
  4. t.nuevoTweet("Ejemplo para Lineadecodigo.com");
  5. t.listaDeContactos();
  6.  
  7. System.out.println(t.getEstado());
  8. }

Información método main(String args[]):

  • Creamos la instancia a nuestra clase antes creada y a la vez pasamos sus dos argumentos ó parámetros en éste caso USUARIO,PASSWORD
  • usamos el método nuevoTweet para cambiar el estado actual pasando por parámetro el nuevo tweet
  • Llamamos a el método listaDeContactos() que debería imprimir la lista de contactos ó amigos
  • imprimimos el estado actual

Como ya ven es demasiado simple hacer un programa que funcione con Twitter…

Interfaz opcional usando la clase antes creada ( Proyecto para Netbeans )

puedes descargarla de acá : Descargar de aquí(opcional)

Java » Reproducir música por java

Abril 24, 2010 por Pablo Ruiz . 8898 visitas 81 Comentarios Imprimir Imprimir

Para ésto utilizaré las librerías de javazoom. En concreto basicplayer3.0.jar. Soy de pocas palabras. Vamos a código:

Creamos nuestra honorable clase llamada Reproductor.java

  1. public class Reproductor{...}

Añadiremos los imports correspondientes

  1. import javazoom.jlgui.basicplayer.BasicPlayer;
  2. import java.io.File;

Creamos el atributo del tipo BasicPlayer

  1. private BasicPlayer player;

y luego lo creamos en el constructor

  1. player = new BasicPlayer();

Bueno ahora vienen los métodos como el play, stop, pausa, resumen, etc…

  1. public void Play() throws Exception {
  2. player.play();
  3. }
  4.  
  5. public void AbrirFichero(String ruta) throws Exception {
  6. player.open(new File(ruta));
  7. }
  8.  
  9. public void Pausa() throws Exception {
  10. player.pause();
  11. }
  12.  
  13. public void Continuar() throws Exception {
  14. player.resume();
  15. }
  16.  
  17. public void Stop() throws Exception {
  18. player.stop();
  19. }

Con éstos métodos tendríamos ya formado nuestro reproductor…

Así que ahora a usarlo. No creo que tengan mayor problema con lo siguiente:

  1. public static void main(String args[]){
  2. try {
  3. Reproductor mi_reproductor = new Reproductor();
  4. mi_reproductor.AbrirFichero("c:/mi_archivo_de_musica.mp3");
  5. mi_reproductor.Play();
  6. } catch (Exception ex) {
  7. System.out.println("Error: " + ex.getMessage());
  8. }
  9. }

Como ven es demasiado simple reproducir música en java… pero a la vez éste método quizás no sea tan atractivo, ya que no posee una interfaz bonita ni nada, pero la base es ésta y la interfaz es a gusto de cada uno…

Pero mostrándoles un poco lo que se puede hacer, les dejaré adjunto un reproductor que hice hace algún tiempo haber si les agrada

MP3seth: Descargar aquí

Alguno que se interese en la aplicación gráfica que pida el código y lo envío sin ningún problema.

ASP » Fechas y monedas multi-pais con ASP

Abril 22, 2010 por Víctor Cuervo . 3230 visitas Sin Comentarios Imprimir Imprimir

El atributo LCID del objeto Session nos puede dar un juego muy grande en ASP a la hora de realizar aplicaciones que tengan que controlar el formato de las fechas y las monedas de diferentes países. Como ya vimos en el artículo Localización en ASP.

Y es que, modificando el contenido de dicha variable, conseguimos que sea el propio lenguaje, quien, mediante sus propias funciones de manejo de fechas y monedas, presente la información de la forma correcta.

Por defecto, el valor del atributo, es el valor en el que esté configurado el servidor. Este valor, suele ser, el valor del país origen del servidor. Para mostrar por pantalla el valor del atributo, vale con mostrarle por consola:

  1. <%= Session.LCID %>

Antes de comenzar con el ejemplo, tenemos que aprender a utilizar dos funciones. La primera será Date. Esta función será la que nos devuelva la fecha de hoy. La segunda es FormatCurrency(cantidad). En este caso se formatea, atendiendo a el valor de LCID, la cantidad indicada como parámetro de la función.

Lo primero que vamos a hacer es volcar los valores por defecto de la fecha y moneda.

  1.  
  2. <h2>Valores por defecto (<%=Session.LCID%>)</h2>
  3.  
  4. <%
  5. response.write("Fecha: " & date() & "")
  6. response.write("Moneda: " & FormatCurrency(50000))
  7. %>

El resto de valores que nos queda por conocer, para nuestro ejemplo, son los siguientes:

  • 1034 - Español
  • 2057 - Reino Unido
  • 1033 - Estados Unidos
  • 1036 - Francia

Y ahora solo hay que ir asignando uno a uno dichos valores al atributo LCID, y en medio, volcando los datos:

  1. Session.LCID=1033

ASP » Localización en ASP

Abril 18, 2010 por Víctor Cuervo . 3912 visitas 1 Comentario Imprimir Imprimir

Siempre es interesante saber en que país estar instalado el servidor de cara a gestionar la localización de los usuarios. O, por lo menos, como han configurado la "Configuración Regional" de nuestro servidor. Ya que esto va a afectar a la forma en la que se representan las fechas y monedas dentro de nuestra página, si es que estamos utilizando las funciones que nos proporciona el lenguaje para el manejo de las mismas.

Lo más seguro que queramos modificar la configuración por defecto e incluso adaptarla dependiendo del tipo de usuario que se conecte a nuestra web.

Y es que cuando subimos nuestras páginas ASP a ciertos servidores vemos que, las fechas aparecen en perfecto formato ingles mm/dd/aa. Y claro, que si tu página es de público mayoritario hispano-hablante, no está muy bien, que se diga.

El coste de cambiar esto no os llevará más allá de 1 minuto, ya que lo único que tenemos que hacer es incluir la siguiente línea de código en el fichero global.asa

  1. Session.LCID = 1034

La propiedad LCID del objeto Session nos permite configurar una localización o región específica para una determinada sesión.

El 1034 es el valor por defecto para España. Ahora que si manejasemos en algún sitio las monedas, tendríamos un pequeño problema. Ya que los países sudamericanos utilizan diferentes monedas: peso chileno, peso mexicano,...

En este sentido podemos utilizar una estructura de selección para determinar en que país nos encontramos

  1. select case Session.LCID
  2. case 1034
  3. Response.Write("España")
  4. case 11274
  5. Response.Write("Argentina")
  6. case 16394
  7. Response.Write("Bolivia")
  8. case 13322
  9. Response.Write("Chile")
  10. case 9226
  11. Response.Write("Colombia")
  12. case 5130
  13. Response.Write("Costa Rica")
  14. case 7178
  15. Response.Write("Republica Dominicana")
  16. case 12298
  17. Response.Write("Ecuador")
  18. case 4106
  19. Response.Write("Guatemala")
  20. case else
  21. Response.Write("Valor no contemplado")
  22. end select

Si tenemos usuarios en diferentes regiones que acceden a nuestra página, siempre podemos consultar la información y cargarla cuando inicien la sesión en el método Session_OnStart.

Java » Acceder al XML con SAX

Abril 17, 2010 por Víctor Cuervo . 3313 visitas Sin Comentarios Imprimir Imprimir

SAX es un parser que nos permite analizar documentos XML. Su caracteristica principal es que está basado en eventos. Eventos como inicio de etiqueta, fin de etiqueta, contenido de etiqueta,.....

SAX nos proporcionará ese conjunto de eventos y nosostros deberemos de ver qué realizar en cada uno de ellos.

En este primer ejemplo lo que haremos será simplemente volcar el contenido de cada una de las etiquetas que se encuentre el analizador. Para ello echaremos mano del evento characters...

  1. public void characters(char[] ch, int start, int len)
  2. throws SAXException{...}

Este evento es disparado cada vez que el analizador se encuentra el contenido de una etiqueta. Los parámetros que recibe son: la cadena encontrada como cadena de caracteres (ch), el inicio en dicha cadena (start) y la longitud de la misma (len). Hay que tener cuidado y controlar que no se produzca la excepción SAXException.

Nosotros volcaremos el contenido del elemento a pantalla...

  1. System.out.println(new String(ch,start,len));

El conjunto de eventos posibles a manejar se deberán de agrupar en lo que SAX denomina Handler o Manejador. La clase que tiene los eventos por defecto es DefaultHandler. A si que nosostros crearemos un “manejador” que herede de DefaultHandler, en el cual implementaremos la funcionalidad que nos interese de los eventos.

  1. public class MiManejador extends DefaultHandler {}

Una vez que nos hemos creado el manejador, deberemos de crear la aplicación que utilice dicho manejador para analizar el documento. Esta será una aplicación Java normal de consola.

Lo primero que necesitamos es el parser (analizador). Para ello deberemos de instanciar una factoría de parsers, a la cual le pediremos que nos porporcione uno para analizar nuestro documento XML.

  1. SAXParserFactory factory = SAXParserFactory.newInstance();
  2. parser = factory.newSAXParser();

Posteriormente deberemos de configurar el analizardor. Para ello le indicaremos cual es el fichero que contiene el XML y el manejador que hemos implementado para analizar dicho XML.

  1. MiManejador manejador = new MiManejador();
  2. parser.parse(is, manejador);