Weblog de Victor Ramirez

Viernes, mayo 30, 2014

¡200 mil visitas!

Filed under: netbeans — vramirez @ 12:48 PM

Hace 6 años abrí este blog para postear acerca de Java, NetBeans y temas relacionados con el desarrollo, los problemas que encontraba en el día a día y sobretodo cómo los resolvía. Aunque 200 mil visitas parece poco para 6 años, debo decir que tuve un bache (ligero) de unos 2-3 años. Sin embargo, he realizado 50 posts que sé que han ayudado a más de uno a encontrar el rumbo en algún momento.

No tengo más que decir, sino gracias a todos por leerme. Ahora la siguiente meta es llegar a las 500mil (¿un millón?) y que no me tome 10 años más.

Martes, mayo 27, 2014

Cambiar el directorio por defecto de NetBeans

Filed under: java, netbeans — Etiquetas: , , , , — vramirez @ 10:02 AM

Si te gusta organizar las cosas a tu manera aunque los demás le llamen a eso desorden (como en mi caso), entonces muy seguramente querrás cambiar el directorio por default donde quedan los proyectos de NetBeans. Resulta que existen dos maneras. La sencilla y la difícil (como casi todo en esta vida).

La sencilla, es al momento de crear un nuevo proyecto, cambiarle la ruta a la nueva que queramos. De ahí en adelante todos los proyectos nuevos se crearán por default en esa carpeta.

La difícil, (aunque no tanto) es modificar el archivo projectui.properties ubicado en <directorio raíz>.netbeans\<versión NetBeans>\config\Preferences\org\netbeans\modules\ reemplazando el valor de  projectsFolder lastOpenProjectDir por la ruta nueva. Si movemos los proyectos viejos, lo mejor es borrar las líneas de

  • RecentProjectsDisplayNames.*
  • RecentProjectsIcons.*
  • recentProjectsURLs.*

Esto con el fin de que NetBeans no nos siga mostrando los proyectos anteriores, apuntando a rutas que ya no existen. En mi caso, (en Linux) la ruta hacia el archivo es /home/vramirez/netbeans/8.0/config/Preferences/org/netbeans/modules/

NOTA: En cualquiera de los dos casos, los proyectos que tengamos creados previamente habrá que moverlos manualmente. Es importante hacer un backup del archivo projectui.properties antes de modificarlo.

Lunes, mayo 19, 2014

Atajos del teclado en NetBeans

Filed under: java, jdk, netbeans, tips, tutorial — Etiquetas: , , , , — vramirez @ 7:46 PM

NetBeans tiene decenas de atajos (shortcuts) en el teclado para un montón de tareas desde compilar, hasta darle formato a un texto e incluso plantillas (o Templates), que con solo digitar un par de letras puede generar toda una línea de código. Por ejemplo, al escribir “sout” y luego darle “Tab”, completará “System.out.println()”.

No todos podemos, ni queremos tener toda esta información memorizada en la cabeza. Es por eso que NetBeans incluye un archivo pdf con la lista completa de dichos atajos. Esta lista se encuentra dentro del directorio de instalación de NetBeans en una carpeta llamada “nb”. Allí encontraremos 2 pdfs:

  • shortcuts.pdf
  • shortcuts_mac.pdf

El primero contiene los atajos para PC (Windows/Linux), el segundo para nuestros queridos amigos que usan Mac. Espero que este pequeño tip les sea útil.

Sábado, febrero 15, 2014

Crear aplicaciones para Twitter desde NetBeans

Filed under: java, jdk, jdk7, netbeans, tutorial, Twitter — Etiquetas: , , , , , , , — vramirez @ 3:05 PM

En el siguiente post crearemos una aplicación ejemplo 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

Filed under: 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.

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.