5 Accesos Rapidos que Quizá no Conocias de NetBeans


Java: Construyendo una GUI
Netbeans es uno de los entornos de desarrollo en Java más usados dada su facilidad de uso y la forma en la que todo lo necesario para codificar compilar y correr estan integrados en un solo IDE.

Si eres un usuario de Netbeans aquí te van 5 accesos rapidos que te serán útiles al momento de codificar en Netbeans:

ForEach: Al tener una lista para iterar como esta:

List<Empleado> empleados = facade.listaEmpleados();

Escribe fore + tabulador y al instante tendras un for each iterando sobre tu lista recien creada.

for: Para crear un ciclo que se repita 10 veces al instante solo escribe for + tabulador y listo.

if : Buscas una forma todavia mas facil de escribir un if?, escribe if + tabulador y tendras un

if(true){

}

Println : Cuando programas para consola para hacer alguna pruebaa es normal aburrirse de escribir “System.out.println(“”)” , para ello mejor escribe sout + tabulador y tendras toda la sentencia completa.

Log: El println te parece mala practica, entonces usa el log escribiendo log+tabulador para agregar una entrada en el log al instante.

Netbeans tiene muchisimas cosas que a lo mejor no conocemos y que vale la pena descubrir!

 

Struts 2 : Mostrar Checkboxlist Vertical

English: Logo of Apache Struts

English: Logo of Apache Struts (Photo credit: Wikipedia)

Saludos de nuevo! cuanto sin escribir?, bastante yo diría. Pero en fin, ésto de trabajar y estudiar hace que los días parezcan de 3 horas, porque el tiempo se va volando.

En éste caso voy a postear un tip que posiblemente les sea util a los que trabajan actualmente con Struts 2 y JSP. Y es que si bien es un gran framework (struts 2) tambien tiene algunas cosillas que complican mucho la vida (y que deberian ser simples).

Una de ellas es la creacion de listas de checkbox (si, las del cuadrito palomeado), pues al hacerlo de esta forma:

<s:checkboxlist list="servicios" name="ser" label="Servicio listValue="nombre" listKey="id" >

Nos va a renderizar nuestra lista de checkbox en forma vertical, cosa que se ve muy mal, y el gran manual de apache nos dice que para corregirlo hay que crear un nuevo elemento para el template de struts 2 que renderize un “<br>” en cada checkbox, lo cual es sumamente frustrante (cuando no lo sabes hacer).

Para una solucion rapida y sin tanta complicacion vamos a hacer lo siguiente:

  1. Agregar el siguiente estilo al header de la web (no recomiendo hacerlo en tu hoja de estilos, puesto que solo aplica para un elemento individual).
    <style> label[for*=ser-]:after { content:"\A"; white-space:pre; }</style>
  2. Nota que en el “label[for*=ser-]” el  ”ser” es el nombre (propiedad name) de nuestra lista y por tanto únicamente a ese elemento se le aplicara el estilo.

Con esto tu lista se renderizará de forma vertical sin tocar la plantilla de struts 2.

Gracias a Eduardo Islas por el tip

[Solucion] Windows 8 No se Apaga Despues de Instalar Linux

Despues de pelearme con linux toda la semana ya que ninguna distro actual inicia siquiera para instalarla (Ubuntu 12.10, SuSe 12.3 o Fedora) decidi instalar SuSe 12.2, que me ha funcionado desde siempre en mi laptita.

El caso es que hay un problema  con el inicio dual de Linux y Windows 8, y es que al querer apagar Windows 8 simplemente te regresa a la pantalla de login sin apagar el sistema.

Ésto ocurre porque el nuevo inicio veloz (en serio son menos de 10 segundos) de W8 en realidad es un estado de “Hibernacion” de la PC. Así cuando la enciendas una buena parte de los archivos requeridos para iniciar ya estaran cargados.

Sin embargo, ésta funcion por alguna razon deja de funcionar correctamente al modificar el MBR y es necesario desactivarla para que Windows 8 se apague correctamente.

Para ello deberas dirigirte al Panel de Control > Hardware y Sonido > Opciones de Energia > Elegir el comportamiento de los botones de encendido (Panel izquierdo).

Ahi desbloquearemos la configuracion dando clic en :

Captura2

 

Y en seguida bajamos el scroll hasta ver la opcion de “Activar Inicio Rapido”, entonces desactivamos ése checkbox y guardamos los cambios.

Con ésto windows 8 podria tardar un poco mas en iniciar, pero no tendra que forzar el apagado (lo cual no es sano para el Disco Duro)

Captura

Spotify Ya en Mexico!

spotify_pantall_08042013

Con el apoyo (patrocinio?) de Coca Cola, llega por fin el servicio de Spotify a mexico.

Que es Spotify?

Pues ni mas ni menos que el servicio en el que podras escuchar musica en tu PC de manera legal con eventuales comerciales (los cuales pagan a los responsables y los derechos). 

Ahora que si quieres escuchar musica sin anuncios, puedes comprar una cuenta unlimited o una cuenta premium que te permitira usar spotify desde tu celular, tablet y otros dispositivos compatibles.

Para registrarte hay que seguir los siguientes pasos:

  1. Registrar tu correo en el link de mas abajo
  2. Ir al sitio que te indican en el correo que te envia coca cola
  3. Llenar el formulario y pegar el codigo de invitacion que viene en el correo
  4. Bajar el Cliente para tu PC
  5. Disfrutar!

Te intereza?

Checa el siguiente link de registro:

http://www.coca-cola.com.mx/es/spotify/

Mi reencuentro con Linux

Instalar OpenJDK 7 en Suse 12.1Han pasado alrededor de 6 o 7 meses que no uso linux en mi maquina, salvo una que otra vez que enciendo mi netbook (la cual aún tiene Arch Linux).

La razon principal es que ubuntu simplemente es imposible de instalar en mi laptop, supongo que por la tarjeta de video (una Radeon HD 6400) y otras distros como SUSE siempre dejan de funcionar por nada, es decir, un dia simplemente el entorno gráfico deja de funcionar y por más que intento configurar el Xorg no me es posible arrancar el escritorio de nuevo.

El caso es que hoy decidi redimensionar mi particion de windows (por cierto, windows 8 mola más de lo que creí) e instalarle SuSe de nuevo.

¿Por que SuSe?

Porque de todas las distros que he usado ha resultado ser la más estable, madura y bien mantenida. Y tomando en cuenta que no tengo el tiempo de pelearme compilando en Arch es una excelente opcion.

Así que volvere a las andadas en éste blog.. a ver que posteo, traigo mucho material sobre J2E, Struts2 y JQuery. ;D

[Tip] Buscar y configurar aplicaciones en Windows 8

Como algunos saben (más los que me conocen) me gusta siempre probar lo más nuevo de lo nuevo en el Software. Por ello no pude resistirme a probar Windows 8 que ha sido lanzado hace ya algunas semanas.

Una cosa que me incomodó del market y otras aplicaciones es que no encontraba por ningun lado la opcion de buscar, por lo cual si queria algo buscaba categoria por categoria. Hasta que me iluminaron con el siguiente tip:

Buscar dentro de las Aplicaciones

Para buscar algo en cualquier App (de estilo modern UI o metro) básta con oprimir la combinacion Windows + Q  y comenzar a teclear lo que queremos buscar, e inmediatamente elegir de la lista de aplicaciones de abajo sobre que app queremos buscar ése término.

Por ejemplo, si en el market quiero buscar “Messenger” oprimo Windows + Q, escribo Messenger y selecciono la App de “Tienda”.

Entonces se abrirá la tienda y hará la busqueda con ése término. Simplificando sin duda la tarea de buscar una seccion de “buscar” en cada app y agregando mejor una funcion global para hacer nuestras consultas!.

Configurar tus Aplicaciones

Y ya que estamos en esas, otra cosa que no ubicaba era el boton de configurar!, hasta que tambien me iluminaron y resulta que para configurar una aplicacion debes oprimir la combinación Windows + I  y del menu de la derecha seleccionar “Configurar” ahí encontraras las opciones (más otras extras que haya añadido el autor como about, help, etc).

La Playbook!


La historia

Resulta que ya por julio-agosto, unos compañeros de la carrera me contaron de un concurso de 7BlackBerries y SFEREA, junto con BlackBerry llamado Reto Blackberry.

En éste concurso los participantes desarrollarian en un tiempo de 3 meses una aplicacion de entretenimiento o algun videojuego para la plataforma Blackberry Tablet Os. O lo que es lo mismo, para la playbook.

El premio para todos los participantes que entregaran la aplicacion en tiempo era una flamante playbook.

Así que entré y desarrollé (aunque fue mas tiempo de investigacion que de desarrollo) un juego simple, pero adictivo a la vez en HTML5 con Webworks y Phonegapp.

Y finalmente la semana pasada llego mi flamante tablet de 16GB.

Pero blackberry? . Si es una plataforma muerta!

Lo mismo pensé y por eso estaba dispuesto a venderla, pero mis impulsos geek no me dejaron en paz y decidi abrirla. Lo mas extraño es que me agrado mucho.

La verdad es que la playbook es una tablet muy bien construida, con detalles que no le piden nada a tablets como la Atrix de motorola, exceptuando el SO. La verdad es que le falta mucho al BBOS. Sin embargo esperemos que esto cambie con la version 10 de su SO.

Sin embargo, dejando un poco eso de lado, la Playbook es una excelente tablet para moverse en la universidad.  Me permite checar rapido el correo, consultar el navegador, Facebook y Twitter en una comoda pantalla de 7″.

Un problema grave son las aplicaciones, pues no hay mucha variedad y la peor parte es que las pocas que hay son de pago.

Uno no va a pagar 10 a 50 pesos por una aplicacion que en el telefono es gratuita. Asi que el problema se agrava teniendo pocos desarrolladores y que a parte cobran sabiendo que no hay muchos usuarios.

Creo que le sacare todo el jugo posible a la playbook mientras sale su nuevo SO, el cual llegara a principios del proximo año :) .

Trabajando con Spring Security + Struts 2

Que? de la nada saco frameworks para Java?

Pues si, resulta que ultimamente he estado aprendiendo mucho acerca de programacion de aplicaciones web usando Java con algunos frameworks como Spring, Struts y algunos otros.

Una de las cosas que necesito es implementar Spring Security a Struts 2 para una aplicacion web (haciendo uso de JSP para la presentacion). Cosa que hasta el momento habia sido un dolor de cabeza ya que resulta que llevo 5 dias leyendo tutoriales, guias y documentacion sin resultados satisfactorios hasta hace un momento que vi por fin la pantalla de login.

Pues bien, saltandonos explicaciones sobre que es cada cosa, daremos por hecho que sabes todo eso y has llegado aqui preguntandote como hacerlo, yo explicaré el como usando Netbeans (porque hacerlo por eclipse es un dolor de cabeza).

Lo primero es hacer nuestro proyecto web usando Struts 2 (no agregar spring todavia)

Inmediatamente vamos a agregar las librerias correspondientes a Spring Framework 3 (ya incluidas en Netbeans) , Spring Security , Struts 2 Spring Plugin y aopalliance.

Una vez agregado esto vamos a agregar a nuestro web.xml lo siguiente, justo antes del filtro de struts 2.

 

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/security.xml</param-value>
</context-param>

<!--Spring Security-->

<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Luego vamos a crear un archivo de configuracion de Spring (Nuevo Archivo > Spring > Spring Configuration File) y lo nombramos security.xml ,tomando en cuenta lo que esta en las etiquetas context-param de más arriba.

Nuestro archivo deberá contener más o menos esto:

<?xml version="1.0" encoding="UTF-8"?>

<!--
- Configuracion de Muestra
-
-->

<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-3.1.xsd">

<beans:bean/>

<http auto-config='true'>

<intercept-url pattern="/**" access="ROLE_USER" />
<form-login default-target-url='http://google.com'
always-use-default-target='true' />
</http>

<authentication-manager>
<authentication-provider>
<user-service>
<user name="rafuru" password="test" authorities="ROLE_USER, ROLE_ADMIN" />
<user name="bob" password="bobspassword" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>

</beans:beans>

Vemos los siguientes tags:

  • <http auto-config=”true”> : Nos facilita la vida para hacer funcionar el framework
  • <intercept-url pattern=”/**” access=”ROLE_USER” /> : Nos dice que todos los links de la aplicacion requieren acceso a un usuario con permisos de … usuario.
  • <form-login default-target-url=’/example/index.jsp’ always-use-default-target=’true’ />: Especifica la URL de redireccion al hacer login.

El ultimo bloque es el administrador de autenticacion, para razones de pruebas especificamos manualmente usuarios y contraseñas, aunque hay forma de hacer que funcione directamente con una base de datos (una forma que aun no investigo :P )

Una vez hecho esto si intentamos correr nuestra aplicacion nos mandara a la pantalla de login (dado que todas las url del sitio requieren permisos de usuario), si intentamos iniciar sesion con alguno de los usuarios antes especificados nos reenviara a google lo cual significa que está funcionando.

 

 

Nota: Tutorial hecho en 5 minutos, posiblemente lo mejore :3.

[Solucion] Ruidos en el Disco Duro en Linux

Después de acondicionar mi nueva laptop con linux y Windows, noté algo muy interesante en linux (usando Suse 12.2), y es que se escuchaban ruidos en el disco duro, una especie de “clac”, como cuando se apaga el disco.

Y esto solo era en Linux, por lo cual no podia ser una falla mecánica en el disco.
Buscando  me encontré con que el problema era la baja velocidad con la que funcionan los discos duros en algunas distribuciones de linux. Para arreglarlo es necesario cambiar el plan de energia para que giren a una mayor velocidad impidiendo que se detengan.

Para solucionarlo debes introducir en la linea de comandos como root lo siguiente:

sudo sudo hdparm -B 254 /dev/sdaX

Cambiando X por la particion donde está instalado linux (“/”), si no lo recuerdas siempre puedes ejecutar:

sudo fdisk -l

Con esto, tu disco duro funcionara correctamente, de hecho yo pensaba que en mi equipo anterior ese ruido era por una falla fisica, pero resulto que al ingresar este comando funciono de maravilla :)