Weblog de Victor Ramirez

Sábado, febrero 15, 2014

Crear aplicaciones para Twitter desde NetBeans

Archivado en: java, jdk, jdk7, netbeans, tutorial, Twitter — Etiquetas: , , , , , , , — vramirez @ 3:05 PM

En el siguiente post crearemos una aplicación muy básica y sencilla (sin GUI, de hecho) en NetBeans para conectarnos a Twitter y leer nuestro timeline. Los siguientes son los prerequisitos para este tutorial:

  • Cuenta en Twitter
  • NetBeans IDE 7.x
  • JDK 1.7
  • Twitter4J

Lo primero es loguearnos en el sitio web de desarrolladores para Twitter https://dev.twitter.com/apps. Una vez allí le damos click en crear nueva aplicación. A continuación, diligenciamos un formulario con el nombre que tendrá la aplicación, una breve descripción (10 o más caracteres), y una URL de la App, la cual se supone apunta a una direccion en Internet con información sobre la App. Por ahora, pueden poner cualquiera como en mi ejemplo y cambiarla después (La URL debe ser completa, por ejemplo, debe empezar por http o https…).

Twitter new app

Formulario de creación nueva aplicación en Twitter

Una vez la hemos creado, Twitter nos muestra una serie de opciones de configuración de la aplicación, acá las vamos a repasar brevemente mostrando lo que nos interesa para el tutorial.

En la pestaña “Details” verificar que la opción “Access level” tenga “read-only”. En esta misma pestaña, al final, se encuentra la opción para borrar la aplicación.

En API Keys esta toda la info que necesitaremos darle a nuestra aplicación en NetBeans. En la sección “Your access token” dar click en “Create my access token”. Darle “Refresh” a la página. Ahora tenemos 4 parámetros MUY importantes para nuestra App:

  • API key
  • API Secret
  • Access token
  • Access token secret

Ya veremos porqué debemos tener estos 4 hashes muy presentes. Cabe destacar que dichos hashes son SECRETOS, pues si alguien los obtiene, puede suplantar tu aplicación, incluso tu cuenta de Twitter.

Lo siguiente es descargar la librería de Twitter4j entrando a http://twitter4j.org/ y en el link Download descargar el .zip. Una vez descargado, entrar a NetBeans y en Tools –> Libraries  –> New Library. En el nombre, ponerle nombre a la librería, por ejemplo, “Twitter4j” o algo que la identifique con Twitter. En classpath, darle Add Jar/Folder y buscar la carpeta previamente descomprimida de Twitter4J y en la subcarpeta “lib”, se pueden seleccionar todos los archivos jar, sin embargo, agregando solo el que tenga nombre “core”, bastará.

Libreria de Twitter Twitter4J creada en NetBeans

Libreria de Twitter4J creada en NetBeans

Ahora, con la librería ya creada, debemos crear un nuevo proyecto tipo “Java Aplication” de NetBeans. Al proyecto ya creado, agregarle la librería que se creó en el paso anterior. Sobre el proyecto hacer click derecho –> Properties. Luego hacer click en la categoría “Libraries”, en la pestaña “Compile” agregar la librería de Twitter4J. En la clase

public static void main(String[] args) throws TwitterException {
        ConfigurationBuilder cb = new ConfigurationBuilder();
        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();
        List<Status> statuses = twitter.getHomeTimeline();
        System.out.println("Mostrando el timeline...");
        for (Status status : statuses) {
            System.out.println("@" + status.getUser().getScreenName()+": "+ status.getText());
        }
    }

Ahora, debemos pasar los parámetros de la API de Twitter a nuestra aplicación. Para ello existen varias alternativas. Una de ellas, es mediante un archivo .properties:

Lo primero es dar click derecho sobre el proyecto New –> Other… –> Other –> Properties File. Al archivo llamarlo twitter4j. El archivo debe quedar en la raíz del proyecto, al mismo nivel de carpetas como “src” y “dist”.

El archivo debe ser completado con estas cuatro líneas, con la información (los hashs) provista por Twitter:

oauth.consumerKey=<La Api Key>
oauth.consumerSecret=<La Api Secret>
oauth.accessToken=<El token access>
oauth.accessTokenSecret=<El token access secret>

Desde luego, todo esto sin los signos de <>.

Ahora podemos ejecutar la aplicación y mostrará por consola nuestro timeline más reciente. O

Otra opción es pasarle los parámetros a través del código Java directamente, (eliminando primero el archivo .properties) así:

public static void main(String[] args) throws TwitterException {
        // TODO code application logic here
        ConfigurationBuilder cb = new ConfigurationBuilder();
         cb.setDebugEnabled(true)
         .setOAuthConsumerKey("<API key>")
         .setOAuthConsumerSecret("<API key secret>")
         .setOAuthAccessToken("<Access token>")
         .setOAuthAccessTokenSecret("<Access token secret>");
        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();
        List<Status> statuses = twitter.getHomeTimeline();
        System.out.println("Showing home timeline.");
        for (Status status : statuses) {
            System.out.println("@" + status.getUser().getScreenName()+ status.getText());
        }
    }

En la sección Code Examples de  http://twitter4j.org se pueden encontrar distintos ejemplos más avanzados de código Java para Twitter. Espero que este corto tutorial les sea de utilidad.

Notas:

  • Un error de “401:Authentication credentials” es que alguno de los 4 hash fueron mal ingresados.
  • Un error de “Authentication credentials are missing” indica que a la aplicación le faltan los 4 hashs. Si se le están pasando los hashs a la aplicación mediante archivo .properties, es probable que el archivo no esté en la raíz del proyecto (debe estar en el mismo nivel del archivo manifest.mf).

Jueves, septiembre 19, 2013

Configurar NetBeans con Android: Parte 2

Archivado en: android, netbeans — Etiquetas: , , — vramirez @ 9:43 AM

En la primera parte del tutorial (hace ya varias semanas…), quedó configurado lo necesario para poder desarrollar una aplicación Android en NetBeans. En esta, crearemos un “Hola Mundo”. Lo primero es crear un AVD (Android Virtual Device), que no es más que un emulador de un dispositivo Android (una máquina virtual). Sin esto, no podemos emular nuestras aplicaciones hechas: cada vez que quisiéramos probar una App tendríamos que pasarla a un dispositivo Android físico. Para crear la AVD, estando en NetBeans seleccionar Tools > AVD Manager > New. Acá el asistente pregunta por un nombre para la máquina virtual (puede ser cualquiera). Luego vienen dos cosas muy importantes, el “device”, el cual es el dispositivo físico en el cual se basa nuestra AVD, y por último el target, es decir la versión API de Android que utilizará esa máquina (Gingerbraid, Ice Cream Sandwich, etc…). En el “device” aparecen algunos reconocidos modelos Nexus y otros genéricos. Estos “devices” lo que traen preconfigurado son las propiedades físicas del aparato como: tamaño de la pantalla (en pulgadas), memoria RAM, memoria interna o disco, número de cámaras, botones por hardware (estilo blackberry clásica) o por software (pantalla 100% touch). La siguientte figura muestra un ejemplo.

alt

AVD Manager

Si ningún dispositivo predeterminado satisface nuestras necesidades, crear un nuevo “device”. Ahi mismo en el AVD Manager, es solo cambiar de TAB hacia Device Definitions y luego en Edit. Es decir en, Tools > AVD Manager > Device Definitions > New Device. Allí podremos personalizar el número de cámaras del dispositivo, los dpi, el tamaño de la pantalla, etc. A continuación, un dispositivo que yo creé. Un supuesto Galaxy Note 2:

 Android Device

Hasta acá, ya está configurada nuestra “máquina virtual”. Ahora si, a crear el proyecto. En NEw project, escoger tipo Android:

android996

Luego, escoger el nombre del proyecto, el paquete y por último el API “Target”:

android995

Lo ideal es escoger una API en el mismo nivel que la del “device”, para no tener problemas de ejecución. Se genera un nuevo proyecto con una clase MainActivity. Ésta, es la clase principal o de entrada de la aplicación. Será lo primero que se ejecute, al iniciar la App. En ella, agregamos el siguiente código:

public void onCreate(Bundle icicle) {
 super.onCreate(icicle);
 setContentView(R.layout.main);
 TextView tv = new TextView(this);
 System.out.println("Enter the android zone...");
 tv.setText("Hello, Android");
 setContentView(tv);
}

Al ejecutar este proyecto, el resultado será:

android997

Nota: Cabe aclarar que este Tutotrial fue hecho bajo Ubuntu (12.04). Durante la ejecución tuve algunos problemas, sobre todo con la AVD (el device). Lo mejor es desde el AVD Manager darle “Start” a la máquina, y esperar que el Android virtual arranque. Luego, si ejecutar la aplicación y esperar unos segundos. Si aún la app no se muestra, probar desde el $Android_Home/platform-tools/ (donde Android_Home es la carpeta del Android SDK que descomprimimos en la primera parte de tutorial), ejecutar:

sudo adb kill-server && sudo adb start-server

Luego intentar correr nuevamente la AVD, y después ejecutar la App de NetBeans.

Miércoles, agosto 14, 2013

Configurar NetBeans con Android: Parte 1

Archivado en: android, netbeans — Etiquetas: , , — vramirez @ 7:32 AM

Este sencillo instructivo, será muy útil para aquellos que quieren empezar a desarrollar apps en el mundo Android y no saben por dónde empezar.

Prerequisitos

Son pocos y muy fáciles de conseguir:

  • NetBeans IDE
  • Android Plugin para NetBeans
  • Android SDK

Si aún no tenemos Netbeans, lo primero es descargarlo desde https://netbeans.org/downloads/ e instalarlo. Lo más recomendable es elegir la opción “All”; dependiendo de la velocidad de su conexión, tardará entre 10 mins y 1 hora. Luego, es necesario instalarle el plugin de Android. Éste no viene por defecto instalado, primero se hace necesario agregar el repositorio donde se encuentra y luego sí, instalarlo. Para esto, se debe agregar un nuevo “Update Center” al IDE. Esto lo hacemos vía Tools > Plugins > Tab de Settings. Ahí, hacer click en “Add”. En Nombre, ponerle alguna descripción significativa (“NBAndroid”, por ejemplo), y en URL: http://nbandroid.org/release73/updates/updates.xml “OK”. En este momento deben aparecer cuatro repositorios, como la siguiente imagen:

Android_001

Listado de Update Centers en NetBeans

A continuación en “Available plugins” hacer click en “Check for newest”. Esto hará una consulta en todos los repositorios, incluyendo el que se acaba de agregar. Una vez terminado el proceso de update, en “Search” escribimos “Android”, debe aparecer el nuevo plugin. Seleccionarlo y darle install. Luego de un par de “Next” y “OK” estará instalado el plugin.

Hasta acá solo hemos instalado el plugin, es decir, la posibilidad de que NetBeans entienda cuando se le hable de Android. Ahora falta lo más importante, la librería Android, para ellos entramos a http://developer.android.com/sdk/index.html y una vez allí abrir la pestaña “Use an existing IDE” y hacer click en el botón “Download the SDK Tools”. Esto descargará el tar.gz del SDK Android más reciente. Al terminar la descarga, descomprimir el archivo (En Linux, con el comando tar -xzvf <archivo.tar.gz> hará todo el trabajo en un solo comando).

Una vez descomprimido, vamos dentro de NetBeans a Tools > Options > Miscellaneous > Android. En SDK Location, la carpeta descomprimida, así:

Android_002

Configuración de la librería Android en NetBeans

Hasta acá tenemos configurado el Android SDK, sin embargo, aún falta un último paso y es validar que todos los componentes de Android estén instalados. Para ello vamos a Tools > Android SDK Manager. Esta ventana permite aregar o actualizar las últimas Tools del SDK y descargar un “Target”, es decir, la versión de Android con la cual vamos a trabajar (Ice Cream, Gingerbread, etc…) y puede ser una o más. Seleccionando una o más API y la sección “Tools” le damos “Install packages”. Ésto descargará el API (Target) que deseemos y las Tools para trabajar con dicho Target. Al final si seleccionamos solo el check de “installed” debe verse similar a este:

Configuracion SDK Android NetBeans

Configuración APIs del SDK Android para NetBeans

Hasta acá llega la primera parte, donde ya está todo configurado y listo para desarrollar en Android usando NetBeans. En la próxima entrega un típico Hola Mundo. Aunque, si son tan impacientes como yo, seguro lo harán antes. Hasta entonces.

Domingo, julio 28, 2013

NetBeans 7.4 a la vuelta de la esquina

Archivado en: java, java ee, netbeans — Etiquetas: , , , — vramirez @ 7:15 PM

Luego de más de 2 años de la salida al ruedo de Netbeans 7.0, Oracle y la comunidad open source están a punto de entregarnos NetBeans 7.4, la más reciente versión de este maravilloso IDE. Mejoras en el soporte de HTML 5 y su integración con Java EE, así como compatibilidad con las nuevas características de JDK 8 (proyecto Lambda, por ejemplo), hacen parte de las características de NetBeans 7.4 versión Beta.

NetBeans es, sin lugar a dudas, el IDE que se mantiene siempre a la vanguardia en compatibilidad con las últimas tecnologías, sobre todo de aquellas relacionadas con el mundo Java.

Para un resumen de todas las nuevas características les recomiendo leer acá, o para mayor detalle aquí. Si quieren un “test drive” de la versión Beta lo pueden descargar o incluso, la versión de desarrollo más reciente que se genera a diario también se puede descargar. No está de más decir, que estas versiones al ser “Beta” o en desarrollo, no se encuentran 100% estables, así que no es recomendable utilizarlas en el día a día, pues podemos dañar o perder los proyectos en que estamos trabajando.

Sábado, julio 27, 2013

Documentación DB2 en el sitio IBM

Archivado en: db2 — Etiquetas: , , , , — vramirez @ 11:31 AM

IBM es una de las empresas más grandes del mundo, y en el campo de tecnología es líder indiscutible con innumerables patentes y licencias de inventos. Sin embargo, algo para lo que considero no es bueno IBM, es para ordenar su sitio web. Constantemente cambia, lo rediseñan (hablo de al menos una vez cada 8 meses o 1 año, algo no muy común para un sitio de Internet) y luego uno tiene que volver a trazar el camino hacia lo que ya había encontrado finalmente. A veces pienso que debería existir una certificación “IBM Website Certified”, pues no cualquiera encuentra lo que busca en la web de IBM.

Uno de mis sitios favoritos y frecuentemente visitado en IBM es la biblioteca con la documentación de DB2, al cual recurro para obtener los documentos actualizados para realizar cualquier tipo de configuración, o despejar dudas sobre un código de error SQL. Pues bien, para no dar tantas vueltas cada vez que necesito ver un pdf de Monitoreo o la configuración HADR, por ejemplo, voy a dejar aquí el link hacia el sitio central de la documentación DB2. Solo es cuestión de elegir la versión con la que estoy trabajando actualmente:

Documentación IBM DB2

Older Posts »

El tema Shocking Blue Green Blog de WordPress.com.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.