Artículos
Noticias Web

Driver JDBC Type 5

Creado: 30/Abr/2010 Actualizado: 26/Dic/2024

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

Artículos
Java

Usando la API de Twitter4j en java

Creado: 27/Abr/2010 Actualizado: 27/Ago/2021

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

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

Ahora creamos un atributo privado del tipo Twitter llamado mi_twitter

private Twitter mi_twier;

Siguiendo creamos nuestro honorable constructor de la siguiente manera

public TwitterJ(String userName, String password) {
  try {
    mi_twitter = new Twitter(userName, password);    
    mi_twitter.verifyCredentials(); 
  } catch (TwitterException ex) {             
    System.out.println("Error: "+ex.getMessage());   
  }     
}

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

public void nuevoTweet(String tweet) {

  try {
    this.mi_twitter.update(tweet);    
  } catch (Exception ex) {
    System.out.println("Error: " + ex.getMessage());    
  }
}

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

public String getEstado(){
  String estadoActual = "";
 
  try {
    List<Status> statusList = mi_twitter.getUserTimeline();
    estadoActual = String.valueOf(statusList.get(0).getText());    
  } catch (TwitterException ex) {
    System.out.println("Error:"+ex.getMessage());    
  }

  return "Mi Estado es: "+estadoActual;    
}

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

public void listaDeContactos() {
  try {
    List<User> friends = mi_twitter.getFriends();    
    System.out.println("Lista de Contactos\n");
    
    for (User f : friends) {
      System.out.println("Usuario: "+f.getScreenName());
      System.out.println("Estado: "+f.getStatusText()+"\n");
    }    
  } catch (Exception e) {}
}

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:

public static void main(String args[]){
  TwitterJ t = new TwitterJ("mi_user","Mi_password"); 

  t.nuevoTweet("Ejemplo para Lineadecodigo.com");    
  t.listaDeContactos();

  System.out.println(t.getEstado());    
}

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)

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Java

Reproducir música por java

Creado: 24/Abr/2010 Actualizado: 27/Ago/2021

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

public class Reproductor{...}

Añadiremos los imports correspondientes

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

Creamos el atributo del tipo BasicPlayer

private BasicPlayer player;

y luego lo creamos en el constructor

player = new BasicPlayer();

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

public void Play() throws Exception {
  player.play();
}

public void AbrirFichero(String ruta) throws Exception {
  player.open(new File(ruta));
}

public void Pausa() throws Exception {
  player.pause();
}

public void Continuar() throws Exception {
  player.resume();
}

public void Stop() throws Exception {
  player.stop();
}

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

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

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

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.

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
ASP

Fechas y monedas multi-pais con ASP

Creado: 22/Abr/2010 Actualizado: 27/Ago/2021

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:

<%= 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.

Valores por defecto (<%=Session.LCID%>)

<% response.write("Fecha: " & date() & "
") response.write("Moneda: " & FormatCurrency(50000)) %>

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:

Session.LCID=1033
Artículos
ASP

Localización en ASP

Creado: 18/Abr/2010 Actualizado: 27/Ago/2021

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

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

select case Session.LCID
 case 1034
  Response.Write("España")
 case 11274
  Response.Write("Argentina")
 case 16394
  Response.Write("Bolivia")
 case 13322
  Response.Write("Chile")
 case 9226
  Response.Write("Colombia")
 case 5130
  Response.Write("Costa Rica")
 case 7178
  Response.Write("Republica Dominicana")
 case 12298
  Response.Write("Ecuador")
 case 4106
  Response.Write("Guatemala")
 case else
  Response.Write("Valor no contemplado")
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.

Artículos
Java

Acceder al XML con SAX

Creado: 17/Abr/2010 Actualizado: 25/Ago/2021

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

public void characters(char[] ch, int start, int len)
   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…

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.

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.

SAXParserFactory factory = SAXParserFactory.newInstance();
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.

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

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java