Te encuentras en la páginas de Blogsperu, los resultados son los ultimos contenidos del blog. Este es un archivo temporal y puede no representar el contenido actual del mismo.
Cartas al futuro
entre una de las cosas que hago normalmente es navegar por paginas al azar, buscando nuevos temas, tratando de ver cosas nuevas que me animen y llenen la curiosidad, hoy cai en la web: futureme desde la cual podemos enviarnos un email a nosotros mismos y que sera entregada en un año o menos (previa verificacion de la direccion de correo a la que se envia) (nosotros podemos elegir la fecha) esto es bastante curioso me acabo de escribir un mail a mi yo en el futuro deseandome lo mejor y esperando nuevas sorpresas y exitos en las desiciones a tomar
puede ser muy motivante escribirte a ti mismo y plantearte los objetivos que deseas se los recomiendo mucho
Enlace: Futureme
Naruto 486: fist (puños)
Para nadie es un secreto que me gusta este manga, asi que aqui les dejo un video con el escaneo del episodio 486 del manga de Naruto: puños Naruto por fin decide si enfrentar o no a sasuke,
cual sera su desicion???
Como si fuera la primera vez... version real
Han Visto la pelicula "Como si fuera la primera vez" ("50 first dates") en ella una muchacha llamada Lucy tras un accidente pierde la capacidad de retener cualquier informacion que tenga por mas de un dia, como resultado todos los dias despierta pensando que es el mismo dia, siempre sin conciencia de que el tiempo pasa, Adam Sandler un tio Irresponsable se enamora de ella y al enterarse de la enfermedad de lucy se propone enamorarla y estar con ella, cada dia idea un nuevo plan para enamorarla...
en la historia se puede ver un curioso personaje "Tom 10 segundos" una persona que tras un accidente pierde parte del cerebro y es incapas de retener nada por mas de 10 segundos este personaje aparentemente comico y nada real sin embargo tiene su version en el mundo real...
Clive Wearing un hombre de Inglaterra de 72 años tras un grave caso de encefalitis tratada tarde vio afectado el cerebro y perdio la memoria, no tiene recuerdos previos a el ataque de fiebre, no recuerda a sus hijos ni que fue un famoso director musical esto no es lo peor, pues debido a la fiebre tampoco puede mantener informacion por mas de 7 segundos, Clive vive momentos de 7 segundos cada uno como si fuera el primero, una version espeluznante y real de "Tom 10 segundos" sin embargo aun mantiene su habilidad por la musica, tocar el piano, leer y escribir y recordar a su esposa con quien lleva 36 años de matrimonio (18 meses antes de que lo atacara la fiebre) esto ultimo digno de una pelicula romantica
les dejo un documental que se hizo sobre el es algo largo pero creanme que vale la pena verlo a pesar del desconcierto que puede dar ver a alguien incapaz de recordar (repite incesantemente "uds son los primeros seres humanos que veo en 30 años") no deja de enternecer ver el amor y devocion que le demuestra su esposa, muy recomendable


Usando Apache en Centos 5.4
Queria averiguar algo tan inocente como la version de apache que estaba usando, viendo el manual me encontre que solo debia usar la siguiente sentencia
$ httpd -v
Inocente de mi cada vez que lo intentaba obtenia un simpatico y frustrante
bash: httpd: command not found
busque y busque por un par de dias sin encontrar respuesta buscando en manuales y foros por fin di con la solucion: en centos y como usuario root la version se puede hallar usando:
# /usr/sbin/httpd -v
pero la administracion del servicio (iniciar, detener, reiniciar) se hace desde otra ubicación, por ejemplo para iniciar el servicio
# /etc/init.d/httpd start
debemos tener permisos de ejecucion para lograrlo
para una ayuda de todas las opciones del comando httpd podemos usar:
$ /etc/init.d/httpd help
bien espero que les ayude.
Preparandose para la certificacion SCJP (1) Declaraciones y Estandares de Nomenclatura
Dado que el objetivo de estos posts es orientado al examen de certificacion y este es en ingles los ejemplos serán en este idioma, procurare poner ejemplos en español a fin de ilustrar un poco pero siempre se incluirán ejemplos en ingles, si quieres ver la lista completa de tutoriales solo ve al Indice
Identificadores Legales
Un identificador es una secuencia de caracteres que se usa para nombrar (o identificar, de ahi su nombre) algun elemento de codigo como puede ser:
Clases
interfaces
paquetes
variables
metodos
etc.
Un identificador legal en lenguaje java debe respetar las siguientes reglas:
- Iniciar con una letra, simbolo de dolar ($) o un caracter conector como el guion bajo (_), en ningun caso puede iniciar con un numero.
- Despues del primer caracter, se puede colocar cualquier combinacion de letras, numeros, simbolos de dolar y guiones bajos
- No existe un limite en el tamaño de un identificador
- No se pueden usar palabaras reservadas
- Lo identificadores son case sensitive esto es que diferencian minusculas de mayusculas por lo que perro y pErro se consideran identificadores correctos y diferentes.
Ejemplos de identificadores legales:
___c;
$rtFrog;
el_p3rr0_d31_vec1no_que_vive_en_el_8;
Im_K00L;
Ejemplos de identificadores ilegales:
4u$; (empieza con numero)
el veloz perro; (lleva caracteres invalidos: espacio en blanco)
int (palabra reservada)
a continuacion les coloco las palabras reservadas hasta la version 6 del Lenguaje Java
abstract, boolean, break, byte, case, catch,
char, xclass, const, continue, default, do,
double, else, extends, final, finally, float,
for, goto, if, implements, import, instanceof,
int, interface, long, native, new, package,
private, protected, public, return, short, static,
strictfp, super, switch, synchronized, this, throw,
throws, transient, try, void, volatile, while,
assert, enum,
aqui debemos recordar que Java es un lenguaje case sensitive por lo que si bien import es una palabra reservada, Import e IMPORT son identificadores validos y perfectamente utilizables, pero no es recomendable utilizarlos a fin de evitar confusiones.
Convenciones de Codigo en JavaClases e Interfaces: La primera letra en mayuscula, si es necesario usar mas de una palabra se escribe todo junto sin espacios en blanco cada palabra despues de la primera tiene su primera letra en mayuscula; ademas, para las clases deben emplearse sustantivos normalmente y para las Interfaces adjetivos relacionados al comportamiento o caracteristicas que representa la interfaz
Ejemplo de Clases:
Animal
Auto
Motor
PowerGauntlet
Ejemplo de Interfaces:
Sortable
Resizable
Ordenable
Volador
Desplazable
Metodos y Variables: la primera letra en minuscula y si es necesario mas de una palabra se aplica la misma regla que para clases e interfaces, en el caso de los metodos el nombre generalmente se compone de un verbo seguido de un sustantivo. En el caso de las variables la recomendacion es que el nombre sea corto y con sentido hacia una caracteristica o propiedad
Ejemplos de Metodos
getName
setValue
runAlgorithm
ordenaArreglo
invocaInvisibilidad
Ejemplos de Variable
name
value
flag
superPoder
color
Constantes: Las constantes se crean al añadirle a una variable los modificadores static y final, para sus nombres se usan solo mayusculas y a diferencia de las demas en caso de necesitar mas de una palabra se separan con guion bajo (_)
una delcaracion tipica de una constante suele ser:
final static int VALOR_DE_PRUEBA = 3;
Ejemplos de Constantes
TRUE
MAX_AGE
EDAD_MAXIMA
Estándares Java BeansEl estandar Java Bean esta orientado a establecer una convencion que ayude a facilitar el trabajo con componentes (Beans) desarrollados por otras personas y que podamos utilizarlos en los diferentes ides que existen (Netbeans, Eclipse, etc)
primero daremos algunas de las reglas de un java bean:
- un Java Bean es una clase cuyas variables de instancia son privadas y son llamadas propiedades, por ello la unica forma de acceder a las propiedades es por 2 metodos cada uno con un proposito especifico:
- metodo get (tambien llamado getter) encargado de obtener el valor de la propiedad
- metodo set (Tambien llamado setter) encargado de establecer el valor de la propiedad
Ejemplo:
en este ejemplo el bean Person cuenta con 3 propiedades: age, name y alive, la tercera es un booleano; se accede a cada propiedad a traves de sus respectivos getters y setters.
Tambien vemos que cuenta con 2 constantes MAX_AGE Y MIN_AGE las cuales no necesitan metodos de acceso
las reglas sobre nomenclatura de java beans que necesitamos saber son:
- El metodo getter de las propiedades no booleanas llevan siempre get como prefijo, debe notarse que un metodo getter no siempre necesita tener una variable de instancia asociada a ella, por ejemplo si tenemos un metodo: public int getSize(); no necesariamente debe existir una variable de instancia size: private int size; esto debido a que el nombre de una propiedad se obtiene de sus metodos setter y/o getter; y no de la variables de instancia asociada (que como acabamos de ver podria no existir.).
- El contenido del metodo depende unicamente de nosotros (un valor estatico, una constante, un valor obtenido de archivos o base de datos, etc.)
- En el caso de las propiedades booleanas (como la propiedad alive de nuestra clase de ejemplo) el metodo getter puede usar como prefijo get o is, esto quiere decir que en nuestra clase de ejemplo podriamos reemplazar el metodo isAlive por getAlive y seguiria siendo un nombre valido para el estandar.
- El metodo setter de una propiedad debe tener por prefijo set.
- Tanto para el metodo getter y setter a continuacion del prefijo va el nombre de la propiedad con su primera letra en mayuscula.
- El metodo setter debe ser de acceso publico (modificador public), tener como tipo de retorno void y un argumento que representa el tipo de la propiedad
- El metodo getter debe ser de acceso publico (modificador public), no tiene argumentos y debe tener por tipo de retorno uno que haga match con el tipo de dato del argumento del metodo setter de la propiedad.
En segundo lugar tenemos que saber que la especificacion soporta eventos, esto quiere decir que permite que un bean notifique a otros beans (que se hayan registrado para ello) cada vez que algo sucede. Esta caracteristica es especialmente util en el desarrollo de interfaces de usuario permitiendo por ejemplo que diferentes componentes puedan reaccionar al mismo evento como el click de un mouse. Un bean se registra para "oir" los eventos de algun bean en particular por ello estos bean que deben registrarse son llamados listeners (oyentes en español)
Para el examen necesitamos conocer las reglas respecto a la nomenclatura para los metodos de registro y desregistro de listeners:
- el metodo para registrar un objeto listener a una fuente de eventos debe tener por prefijo add
- el metodo para desregistrar un objeto listener a una fuente de eventos debe tener por prefijo remove
- el metodo siempre debe a continuacion del prefijo incluir el tipo de Listener a registrar o desregistrar
- Tanto para el metodo add como remove el tipo de listener debe ser añadido como argumento en el metodo
- Tanto el metodo de registro como el de desregistro debe terminar con la palabra Listener
Ejemplo
para un Objeto del tipo ActionListener el metodo de registro seria
public void addActionListener(ActionListener listener);
y el metodo de desregistro seria:
public void removeActionListener(ActionListener);
como recomendacion final practiquen mucho, la idea del examen es probar su dominio del lenguaje y como cualquier otro solo se domina usandolo asi que codifiquen mucho hagan ejemplos pequeños, prueben cada una de las reglas que les he dado, intenten torcerlas un poco a ver si es permitido o no siempre es una buena oportunidad de aprender algo nuevo,
nos vemos en el siguiente repaso.
Las aventuras del pequeño Cthulhu
Este no podria presumir de ser un blog friki si no escribiera alguna vez sobre las aventuras de Cthulhu y todo lo que creo el sumo Sacerdote Eich Pi El alias H.P. Lovecraft pero si consideras que sus historias son muy oscuras para los mas pequeños aqui te dejo un video para que puedas iniciar a los pequeños en el mundo de lovecraft
A disfrutar!!
por que buscamos enemigos?
Este post es una respuesta al post El Enemigo en el blog de @jersson
Con mucho acierto Jersson menciona una reaccion comun a la situacion de un proyecto mal llevado o incluso fallido y es la de buscar culpables, buscar un "enemigo"
Yo mismo hago mea culpa y me he encontrado alguna vez usando tambien las frases que se mencionan:
Lo que pasa es que este proyecto estaba mal desde que lo vendieron, osea, fue mal vendido.
Ese proyecto era simple, lo que pasa es que no está siendo bien gestionado!
y es que en esto se suele preferir la "salvación" personal sobre la del equipo o aun mas la del proyecto, esto tiene 2 causas básicas y estan en como se enfrentan las siguientes situaciones:
-Solución de problema (parche, apagar incendio): Dada la gravedad del asunto puede requerir desde horas extras a fines de semana y amanecidas extras, esto junto con el estrés y malhumor y la falta de garantías de que no vuelva a suceder, es comprensible que si el equipo no actúa compenetrado se pase un muy mal rato y se quiera evitar el esfuerzo extra, hallar un culpable es la mejor manera de decir: "si yo no tuve la culpa yo no tengo por que esforzarme mas para corregirlo", la búsqueda del enemigo suele responder a la necesidad de enfocar la frustración y resentimiento en un objetivo y así poder descargarlos, y aqui prima el espíritu individual sobre el del equipo, pero... por que no querría participar en la solución? la respuesta suele estar en la segunda causa:
-Aprendizaje: Si de chico me quemé con un fósforo pues no vuelvo a coger el lado que quema eso es algo básico y todos a causa de lastimarnos aprendimos esas reglas, pero afrontemoslo ese comportamiento es mucha veces opuesto en empresas, muchas veces se plantea la pregunta ¿como lo solucionamos? pero no se considera ¿Como evitamos que vuelva a pasar? como parte de la solución, en equipos esto suele hacerse pero que pasa cuando el origen del problema esta en una fuente externa al equipo?, a muchas empresas solo les importa resolver el proyecto por que si no "no se cobra", no se hacen evaluaciones de que salio mal, o se hacen pero no queda ninguna garantía de que se apliquen mejoras (cuando se proponen) es mas, se les considera proyectos exitosos dando cenas y declarándolos proyectos representativos solo por el hecho de haber facturado mucho y lograr ser cerrados; como el caso de una empresa en la que trabaje y en la que solo por salir en el periódico uno de los proyectos se le considero exitoso, se cursaron correos de felicitación y una cena posterior... personalmente me hubiera gustado mas un correo diciendo que se iba a hacer evaluacion de que salio mal y establecer las mejoras y correcciones para evitar que las cosas se repitan en otros proyectos, cosa que no sucedio por que ni bien termino nos asignaron otro proyecto. (de gran facturacion, "representativo", y en el que se repitieron muchos de los mismos errores) lamentablemente dicha evaluacion ya no sera posible por que todos los que participamos en el primer proyecto ya no trabajamos ahí ;)
una práctica comun son las reuniones de revision de estatus el tan popular "como vamos" me he declarado enemigo de estas reuniones si solo va un como vamos prefiero las reuniones donde ademas se incluye el "como mejoramos".
Lamentablemente lo común es que una vez resuelto se espera que siempre se pueda resolver de la misma manera (horas extras, amanecidas, selección y ejecucion de culpables) y esto suele ser con "esfuerzos especiales", lo importante es facturar mas.
Entonces si bien esta en nosotros tomar una actitud positiva frente a la resolución de problemas dando todo de nosotros, esto debe verse reforzado y valorado en una actitud responsable de gestión de proyectos estableciendo apoyo y la garantía de tener lecciones aprendidas y primando la identificacion de mejoras y el compromiso a aplicarlas sobre la identificación de culpables.
Televisores de Super Heroe
Ya era tiempo de poner algo friki
pues Marvel ha decidido hacer una linea de televisores o prestar la marca pues los tvs serán hechos por la empresa RTC23 catalogo incluyendo características que hagan alusión a alguno de sus super héroes, podremos escoger alguno y en el marco aparecerán algunas imágenes y durante los 8 segundos entre el encendido y la aparición de la señal podremos ver una ilustración del super héroe elegido en pantalla
yo me pediria el de wolverine
Preparandose para la certificacion SCJP -Java 6- (presentacion)
Pues eso inicio una serie de artículos de los capítulos cubiertos en mi preparación para la certificación SCJP en la version 6 de Java y con la idea que sirvan a 2 motivos
- Como refuerzo de lo estudiado
- Como guía de preparación para quien quiera empezar en la preparacion para esta certificación
hay que destacar que no es la idea que reemplacen a un curso completo.
Seguiré la misma estructura del libro "Sun certified Programmer for java 6 study guide" de Katty Sierra y Bert Bates; y cuando considere que algún concepto es muy oscuro aumentare con contenidos de los tutoriales de Java en la web de SUN
esta demás decir que recomiendo mucho que adquieran el libro pues tiene una manera ordenada y estructurada de abarcar los temas a ser evaluados en el examen además de incluir muchas preguntas tipo y exponer los conceptos de manera clara y sencilla
bien eso es todo comencemos:
Lista de Posts
1. Declaraciones y Estándares de NomenclaturaTUTORIAL: Centos en Virtual Box
por asuntos de trabajo he tenido que instalar un servidor centos en una maquina virtual para poder probar diferentes aplicaciones asi que aproveche de apuntar los pasos y dejarles este pequeño tutorial
instalacion de centos 5.4 como maquina virtual sobre virtual box
Equipo host:
Laptop dell studio 17 procesador core i7, 6 GB de Ram, 500 GB de disco duro
sistema operativo host: windows 7 home premium
Instalación de Virtual Box
descargamos virtual box de su pagina web
http://www.virtualbox.org/wiki/Downloads
usaremos la ultima version:
3.1.4
Tambien descargamos las imagenes iso de la distribucion que instalaremos en este caso CENTOS 5.4 para 64 bits
la instalacion es sencilla y directa:
Creación de maquina virtual
Creamos la maquina virtual que albergara nuestro centos
Tipo de Sistema Operativo:
en la pantalla de tipo de sistema operativo seleccionamos Linux y en version other linux, aqui podriamos poner tambien redhat recordemos que centos es una compilacion de las fuentes de redhat
Memoria:
asigne giga y medio 1024 + 512 = 1536 MB
Disco Duro Virtual
dejamos seleccionada la opcion Boot Hard Disk
en caso de no contar con un disco previo usamos la opcion Create New Hard Disk
Se abrira el asistente de discos duros virtuales
escogemos el tipo dynamical expanding storage esto hara que el archivo del disco duro virtual sea inicialmente pequeño e ira creciendo conforme se vaya necesitando hasta llegar al tope que establecido y le asignamos un tamaño de 10 GB
seleccionamos finish para tener nuestro disco duro virtual
cerramos y damos finish al asistente para crear la maquina virtual
con esto nuestra maquina virtual esta creada ahora solo queda instalar el sistema operativo a nuestra nueva maquina virtual
Instalación del sistema operativo
Centos requiere que se habilite IO APIC no es mas que una tabla de direcciones para que el cpu controle el multiproceso.
Esto lo hacemos seleccionando la nueva maquina virtual y la opción settings en el apartado System, pestaña motherboard la sección extended features, habilitamos la opcion IO APIC, aqui podemos aprovechar y si nuestro procesador cuenta con mas de un núcleo en la pestaña procesador podemos indicar el numero de núcleos que usara la maquina virtual
una vez hecho eso esta listo para la instalación del sistema operativo, iniciamos la maquina virtual y aparecera un mensaje que nos indicara que si el teclado y el cursor son capturados podemos hacer switch entre el sistema operativo guest (Centos) y el sistema Operativo host (Windows) con la tecla ctrl derecha
ahora nos aparece el asistente para la primera ejecución de la maquina virtual en este asistente nos guiara atraves de los pasos para registrar las medias (cd's, imágenes de disco) para la instalación de centos
damos a siguiente y aparece la pantalla donde seleccionamos el tipo de media seleccionamos cd/dvd pues hemos descargado las imagenes de dvd desde el sitio de centos
en media source seleccionamos el boton al extremo de la caja de seleccion para poder cargar la ruta donde estan las imagenes de los dvd's agreguemos los 7 isos necesarios para centos pues despues los necesitaremos
despues de eso damos a finalizar para iniciar la instalación de centos
la maquina virtual iniciara y ya tenemos el instalador de centos funcionando
escogemos instalador grafico
saltamos la comprobacion de cd's a mi me arrojo un error de que el cd no estaba en la lectora (esto se debe a que verifico el primero y cuando me pidio el segundo no cambie la imagen de disco asignada a la maquina virtual)
con esto inicia el instalador gráfico es asignar algunos valores y dar a next
en idioma seleccionare ingles, seleccionamos el teclado de acuerdo a la distribucion que tenemos
entramos al particionamiento del disco duro, dejamos en la caja de seleccion la opcion por defecto:
remove linux partitions on selected drives and create default layout
si queremos aplicar alguna configuracion especial o plan de particion podemos seleccionar el check review and modify partitioning layout en mi caso sera una maquina virtual para desarrollo sin ninguna configuracion especial por lo que dejare las opciones por defecto
a continuacion se seleccionan los dispositivos de red y dejamos que el hostname sea asignado automaticamente via dhcp
despues seleccionamos nuestra zona horaria,
luego de esto, nos toca asignar la contraseña al usuario root del sistema operativo, esta demas decir que sea algo seguro y que recordemos
despues de esto seleccionamos los conjuntos de paquetes a instalar de acuerdo al uso que pretendemos dar en este caso como es un servidor de pruebas he seleccionado:
Desktop-Gnome
Server
Server-GUI
si deseamos revisar los repositorios de centos y contamos con conexion a internet podemos seleccionar Packages from centos extras
tambien podemos personalizar aun mas la seleccion del software a instalar seleccionamos la opcion customize now y damos a siguiente
ahora se presentan diferentes sets de programas y a la derecha el conjunto de programas de los que se compone cada set, de acuerdo en los sets que escogimos en la pantalla anterior aqui algunos estaran o no ya previamente seleccionados aqui depende de cada quien pero puedo recomendar, nuevamente tomando en cuenta que es un servidor de pruebas:
set applications:
authoring and publishing
set development:
development libraries
java development
Set Servers:
Mysql Server
Set Base System:
Java
System Tools
Despues de seleccionar siguiente seguimos con la pantalla final antes de cargar los paquetes de software que escogimos, como aviso nos indica que podemos revisar un log del proceso de instalacion en /root/install.log y que tenemos un archivo kickstar en /root/anaconda-ks.cfg por si queremos replicar la instalacion en otros equipos con las mismas opciones
a continuacion nos indica los cd's que necesitaremos una vez dado a ok inicia la copia de paquetes
cuando nos pida el cambio al cd 2 en la pantalla que contiene a nuestra maquina virtual vamos al menu devices y en la opcion cd/dvd devices cargamos el disco 2, para esto previamente cargamos las imagenes en el virtual media manager, si no cargaste los discos; en el mismo menu en la opcion "more cd/dvd images" puedes agregar las imagenes que sean necesarias, repetimos el paso con cada disco que nos pida
con esto terminamos la instalacion y seguiremos con la configuracion del sistema reiniciando la maquina virtual.
una vez reiniciado entramos a la configuracion del sistema en la pantalla firewall seleccionamos los servicios que queremos que esten abiertos en mi caso:
FTP
mail (SMTP)
ssh
samba
https
http
en caso tengas algun otro servicio en other ports puedes agregar los puertos necesarios
SELinux
Esta es una caracteristica de seguridad avanzada en este caso es un servidor interno para desarrollo y pruebas por lo que lo desabilitare
Kdump
es un registro del estado del sistema en caso de que haya un crash de kernel como esto es muy probable que pase (debido a que testeare cosas inestables con resultados insospechados }:D ) lo activaremos, dejamos las opciones por defecto
a continuacion creamos la primera cuenta de usuario, prueba de sonido e instalacion de cualquier software extra que tengamos a mano en imagenes de cd
reiniciamos el sistema y...
felicitaciones!! hemos completado la instalacion de centos en virtual box!!!

habilitamos SyntaxHighlighter
Pues eso despues de un numero de intentos que ya no recuerdo por fin pude habilitar el script SyntaxHighlighter que no es mas que un script para que el codigo se pueda ver ordenado y con el resaltado propio de cada lenguaje, vamos como se ve en cualquier editor de codigo decente y añade algunas funcionalidades como impresion y pegado al portapapeles, puede ser poquita cosa pero es algo que hacia tiempo queria poner por aqui
el post que me ayudo a ponerlo pueden encontrarlo aqui:
http://geektalkin.blogspot.com/2009/11/embed-code-syntax-highlighting-in-blog.html
disfrutenlo
Grub
Donde colocar las anotaciones en hibernate y jpa
Hola a todos volvemos a tomar el blog para escribir sobre las clases anotadas en hibernate
Hibernate es uno de los frameworks
ORM mas Utilizados en java o en su contraparte para .Net NHibernate; entre otras cosas permite el abstraernos del uso de engorroso codigo sql cambiandalo por consultas en hql que estan mas cercanas a nuestro modelo de objetos
el ejemplo es bastante tonto y no explota la versatilidad del mapeo que se puede conseguir su finalidad es solo ilustrar la ubicacion de las anotaciones dentro de una clase.
Para ello necesitamos establecer un mapeo entre las clases y las tablas que las representan tomemos por ejemplo una clase que representa un mensaje y que se guarda en una tabla llamada tambien mensaje
Como se puede ver es un bean simple comun y silvestre antes de cada atributo se colocan las anotaciones de esa manera hibernate sabe a que columnas se debe mapear cada atributo
Otra opcion es colocar las anotaciones en el metodo get de cada atributo
en cualquier caso debemos escoger uno u otro lugar nunca debemos mezclar el lugar de las anotaciones (algunas en el atributo y otras en el método)
pero donde es mejor? en el campo o en el método?
la documentacion no hace ningun indicacion sobre donde es mejor:
"Depending on whether you annotate fields or methods, the access type used by Hibernate will be field or property. The EJB3 spec requires that you declare annotations on the element type that will be accessed, i.e. the getter method if you use property access, the field if you use field access. Mixing EJB3 annotations in both fields and methods should be avoided. Hibernate will guess the access type from the position of @Id or @EmbeddedId."
asi que tengo mis propias ideas al respecto:
por el lado de diseño me parece mucho mejor tener las anotaciones en el método get para mantener el encapsulamiento, y dado que todas las anotaciones deben estar en una misma localización, si tengo que incluir algo de lógica en algun get o set no tendré que mover todas las anotaciones una vez hecha la modificación
sin embargo para no quedar solo en mi punto de vista buscando un poco encontre que este tema ha sido tratado en la web stackoverflow
algunos datos importantes despues de leer los 2 enlaces:
- al parecer por preformance da igual donde se coloquen.
- la mayoria prefiere colocar las anotaciones en el campo antes que en el método según un sondeo hecho en dzone
Si bien el punto de que podria haber comportamientos extraños en beans con mas de un metodo getter o setter para un atributo me parece valido y digno de probarse, aun no he tenido ningun caso de ese tipo por lo que seguire aplicando el acceso a través de metodos mientras me sea posible
Saludos
Grub

6 Pasos para... CAZAR UNA PITON!!!!
Pues bien, ya iba siendo tiempo de poner alguna anotacion freak asi que sacada de una de las listas de interes que leo aqui lo tienen como atrapar una piton en 6 comodos pasos!!! eso si, incluimos un video demostrativo para quienes quieran ponerlo en practica xD
- coges a un voluntario
- le huntas la pata con aroma de rana muerta bendecida por el chamán
del pueblo
- atas un trapo a la pata del voluntario
- el voluntario mete la pata en el agujero de la pitón (segun parece
es importante poner la otra pata por fuera para evitar que la
serpiente te meta en el agujero) cortas algunas plantas y las pones de guarnición.
- la pitón te muerde, pero tienes que esperar a que te coma hasta más
arriba de la rodilla!!!, sino podría soltarse
- el voluntario pide ayuda a los colegas, lo sacan del agujero y con
él un monstruo de unos 10 metros!!!
disclaimer: el video es un fragmento del documental: " "Les Chasseurs de Pythons" y en las escenas finales incluye como matan al animal por lo que podria herir susceptibilidades
Frase del dia
"Definitivamente soy muy malo para convencerme de que mis pendientes son mas importantes que seguir rascandome la panza"
Frase del Dia
No deja de tener cierto encanto cuando veo a la gente twittear: "Logre hackear mi Iphone para que pueda hacer lo que otro cel, mas antiguo y barato hace de caja!!!!" ;)
Entrevista: Lennon Shimokawa
Con este post ensayo una seccion de Entrevistas a diferentes personas freaks y geeks del entorno para inaugurar la seccion publicare una entrevista a Lennon Shimokawa quien en sus propias palabras se considera evangelista Java y de Spring Framework, instructor IBM, practicante de metodologías ágiles, creyente en el software Open Source, aprendiz de Ruby y freelancer. Participa de diferentes listas sobre temas java, spring, Ruby y otros orientados al desarrollo, tiene un blog donde escribe pequeños tutoriales, ofrece diferentes servicios de consultoria, cursos y que pueden usar para contactarse con el:
http://lshimokawa.net/
Ultimamente se viene un aumento de quienes se dedican a freeLancer de manera mas formal, él es uno de ellos por lo que la entrevista girara en torno a ese tema y por supuesto a su lado freak!
Hola Lennon:
Soy Freak y tambien Geek (SFyTG): Creo que la primera pregunta seria que en tus propias palabras nos definas que es para ti ser un freeLancer?
Lennon Shimokawa (LS): Un freelancer es una persona que trabaja en forma independiente, generalmente por proyecto o por entregable.
SFyTG: Cuales consideras que son las principales habilidades que debe tener alguien que se anime a seguir el mismo camino?
LS: Organización y pasión por lo que haces
SFyTG: Porque decidiste iniciar la aventura de ser independiente?, por que no continuar con la "estabilidad" de un empleo fijo?
LS: Porque no estaba contento en un horario de 9 a 6pm, si bien tenía flexibilidad de horario e iba a diferentes clientes no era suficiente. No me gusta la estabilidad porque te puedes acostumbrar y quedarte, el trabajar de freelancer hace que continuamente te exijas por buscar nuevas oportunidades, en ingeniería informática todo cambia muy rápido.
SFyTG: Empezar un proyecto propio al menos en nuestro pais, es un reto, cuales fueron los principales obstaculos que encontraste para realizarlo?
LS: Empezar fue dificil, renuncié en noviembre, a fin de año no salen proyectos. Pero poco a poco fueron saliendo los proyectos y las oportunidades.
SFyTG: Y por que no armar una consultora propia, en lugar del freelancer? cuales crees que son las principales diferencias entre ambas?
LS: Considero que el mercado de las consultoras está saturado, además es riesgoso por la forma como se llevan los proyectos de desarrollo aquí, preferí especializarme y brindar servicios a las consultoras.
SFyTG: Se habla bastante de la crisis economica y que esto ha afectado negativamente la inversion de las empresas en proyectos TI por ser costosos y tener muchas veces resultados imprevistos, consideras que esto te ha afectado?
LS: Para nada, he tenido bastante trabajo los últimos meses felizmente.
SFyTG: entonces, consideras que hay un mercado nacional para potenciales freeLancers?
LS: Claro, varias consultoras trabajan con esta modalidad, además hay proyectos en el extranjero aunque aun no he incursionado por ese lado. Está en mis planes formar una comunidad de freelancers en Perú.
SFyTG: una de las ventajas de trabajar en TI es que es posible trabajar a distancia o desde casa, que opinas de esa forma de trabajo?
LS: Me parece excelente pero depende del tipo de proyecto. Son esenciales las herramientas de comunicación, la organización del tiempo y la disciplina.
SFyTG: y en que proyectos que nos puedas contar estas involucrado ahora?
LS: Estoy actualmente dictando un curso de Web Services para Aceros Arequipa, cerrando un proyecto de Web Services para el BCR con Novatronic y empezando la segunda fase de un proyecto de WebServices para EsSalud con Gustavo Quiroz... me estoy dando cuenta que me estoy especializando en Web Services.
SFyTG: existe alguna literatura o webs recomendables a revisar a quien este interesado en investigar sobre la alternative de volverse independiente?
LS:
Freelance Switch: http://freelanceswitch.com/
Freelance Folder: http://freelancefolder.com/
El blog de Inés Temple es muy bueno también: http://blogs.elcomercio.com.pe/empresariodetuempleo/
SFyTG: ahora, como el blog lo dice considero que ademas del lado geek todos tienen parte de su corazoncito freak
entonces aca va algo mas tirado por ese lado:
Te consideras freak o geek? o una mezcla de ambos?
LS: Me considero algo geek, el hecho de ser informático ya te hace geek.
SFyTG: Al escuchar tu nombre es imposible no recordar a Jhon Lennon alguno de tus padres es Fanatico de los beatles?
LS: Si a ambos.
SFyTG: a ti te gustan los beattles?
LS: Si me gustan, escucho de vez en cuando, pero no soy fanático. Prefiero la salsa y el reggaeton jajajaja.
SFyTG: algun pasatiempo freak o geek?(video juegos, fanboy de alguna plataforma, serie de animacion o historietas, algun grupo musical que sigas hasta morir)
LS: Antes jugaba más juegos en red, Starcraft, Warcraft, Dota pero ya lo he dejado. Seguir utilizando la PC en mis ratos libres me estresaba mucho. Paro leyendo libros, manuales, pdfs, blogs de cosas de informática, nada literario.
SFyTG: Gracias por el tiempo

Algunos comentarios sobre el nuevo iphone 3G S:
a raiz de todo el movimiento que genera el nuevo iphone aqui hago de abogado del diablo y pongo algunas frases leidas acerca del lanzamiento del nuevo terminal... solo es mi opinion no pretendo convencer a nadie asi que.... no se piquen!!!!
"venga, primera killer-app: TomTom (disponible en todo smartphone desde hace años, menos en el iPhone)"
"Qué curioso, el iphone del 2009 graba el mismo vídeo que mi N93 del 2006. Da gusto cuando Apple innova"
"oh por dios!!! cuanto cuesta ponerle un puto flash a la camara??? " <--- este fue impagable!!! y es mia!!!! xD
"Por suerte, han habilitado la descarga de películas y series a través de la red 3G en el iPhone 3G S: gracias por permitirnos gastar nuestro dinero en cualquier momento y lugar."
"Marcado por voz de caja... claro y hace cuanto que los otros telefonos ya hacen lo mismo?"
como punto final un articulo a revisar:
http://www.xatakamovil.com/apple/iphone-3g-s-en-contra
En resumen apple vuelve a hacernosla y nos ofrece un revolucionario terminal para lo que fue un año atras, con la cara lavada y una interfaz bonita, pero lo siento eso no me convence
A pesar de todo debo decir que el iphone recien se convierte en una opcion frente a otros smartphones eso si, solo si es con una tarifa de datos plana que me premita tenerlo conectado todo el tiempo pues siempre he dicho que no es un telefono es un terminal de conexion. pues como telefono o reproductor de medios no termina de convencerme

Windows 7 Starter llego a niveles demenciales
Todos sabemos que Microsoft suele sacar diversas edicion de su sitemas operativo, cada una con diferentes restricciones, pues bien el futuro windows 7 tendra como la mas restrictiva a la edicion starter pero esto ya es demasiado pues en esta version no se permitira alterar el fondo de pantalla o papel tapiz del escritorio... Asi es, acabo de leer en genbeta la noticia y he corrido a ver el calendario por si ya era 1 de abril y no me habia enterado, y no, aun es marzo asi que ha de ser verdad, ya sabia de que solo se podian abrir 3 aplicaciones, pero no poder cambiar el papel tapiz???? esto ya me parece de locos
Uds que opinan?
El Iphone se empieza a convertir en una opcion
Si señores asi es, para quienes me conocen saben que el iphone como esta actualmente no es santo de mi devocion me parece un telefono que no esta terminado, (al igual que el famoso g1 pero esa es otra historia) comparado con otros smartphones que existen en el mercado, tiene puntos buenos como que el manejo de la interfaz es bastante suave, fluido e intuitivo, ademas como todos los productos de la manzana es bonito, muy pero muy bonito que es de lo que mas se cuidan, sin embargo eso para mi al menos, no es suficiente para suplir las carencias que tiene a nivel de Sw y Hw como por ejemplo:
- un Bluetooth capado y a medio cuajar,
- la falta de poder grabar video
- la inexplicable ausencia de algo tan basico como cortar y pegar: asi es si quiero incluir algun texto citado, medianamente largo en algun correo, o pegar algun texto como un enlace que estasolo como texto y de ahi pegarlo al navegador pues ahi tienes: a tipear nada mas, mas aun, esto me parece grave en un dispositivo que se deberia caracterizar por tener que usar el teclado lo menos posible.
- una camara de unos miserables 2 Megapixeles (Vamos Apple en que año estamos ya?)
- No reproductor de flash (asi que si quieres ver alguno de los 'tubes', que no sean youtube pues anda encendiendo la laptop o la pc)
- no hay una aplicacion integrada para buscar cosas a traves de todo el telefono
- No hay soporte nativo para el teclado en modo horizontal (que si en algunas aplicaciones pero si la que usamos no la tiene pues a comernos el teclado vertical)
y otras perlas mas, pues si esta tan a medio hacer pues no, paso , no me gusta, si me voy a comprar algo pues quiero que tenga algo que otros no hacen, o que al menos haga lo mismo que otros, en algun lugar lei que incluso lo tomaban como una beta pero bueno, no quiero iniciar un flame contra mi pobre blog :D
pero esto algun dia tenia que mejorar apple ha anunciado el nuevo sistema operativo que ya va reduciendo la brecha entre las caracteristicas del iphone y los otros smartphones (al menos en sw) y si, empieza a convertirse en una opcion:
- Copiar, cortar y pegar (ya era tiempo)
- Google Maps en aplicaciones
- Sincronización de notas
- Bluetooth estéreo A2DP (por fin si tenias un handsfree por bluetooth... ya podras usarlo!!!)
- Auto identificación en redes WiFi (auto login)
- Aplicaciones GPS
- Mejoras en SMS y MMS
- Accesorios con sus propios protocolos
- Peer to Peer (P2P)
- Spotlight (busquedas en todo el telefono, y una copia del que ya existe para palm)
- Aplicaciones en horizontal
- Anti-phising
- Mejora de YouTube (esto no es lo mismo que flash pero bueno empieza a mejorar)
entonces , si, empieza a convertirse en una opcion por que no es que no me guste el iphone por que sea iphone, simplemente me parece que comparado con otros celulares del mismo tipo pues aun le falta, por ejemplo unos que veo hace un tiempo muy interesantes son el futuro
Samsung i8910 de Samsung y el
htc touch hd de htc El primero con el nuevo Symbiam S60 y el segundo con windows mobile.
Cambios en Google Traductor
Nunca he sido una luminaria en Ingles, es mas nunca lo estudie formalmente mas alla de mi ingles de Colegio y gracias a mi padre quien supo usar una buena finta para enseñarme el idioma de shakespare usando de una de mis debilidades: los comics de misterio y fantasmas
Pues bien soy autodidacta con lo que el uso de diccionarios o en mayor frecuencia acudo al traductor de google el cual hoy he descubierto con nuevos cambios, ahora nos incluye sinonimos o ascepciones de diccionario como se ve en la imagen abajo
Y a ti tambien te gustaria un 20 super Pirata?
Hola, este post esta inspirado en un comercial sobre pirateria que vi en el cine
el punto es como intuiran sobre pirateria y escuela; pero no de copiar o plagiar notas, hoy recibi una llamada de un familiar para ayudarlo a instalar una nueva version de un conocido software de oficina ya que en la escuela le estan enseñando al pequeñin de la casa a usar ese programa en su version 2007 y como no lo tienen pues hay que comprarlo,
"obviamente" no pensaban instalar una version oficial, entonces me pregunto si el colegio tendra copias originales del software que enseña, mas aun, existe una legislacion que impide que en las listas de utiles se exija una marca especifica para los utiles como cuadernos, lapices y demas, entonces tambien existira algo similar para el software que se enseña? por que no optar por una opcion libre como puede ser open office la respuesta suele ser es que el programa que usamos es el mas utilizado y los padres acuden a comprar duscos de esos del ojo parchado por que en el colegio lo enseñan y asi se forma un circulo que nadie quiere romper simplemente por temor de probar algo nuevo
Hace una semana una tia me pidio que le instale su disco super pirata del mismo software de oficina pero no tenia el cd key (esa clave que te dan para garantizar que pagaste por el software, si, debes pagar por usar el software propietario.) asi que como la veia tan desesperada sin decirle nada le instale open office en su version en español, le explique que funcionaba igual y lo configure para que grabe todo por defecto en formato word 97-100 (*.doc) le dije que lo pruebe y que si no se acostumbraba pues que compre el que siempre usa para cambiarselo, el hecho es que hasta ahora no me han llamado para cambiar el programa ni para preguntar nada con lo que supongo que le debe estar resultando bien y hablamos de una Señora que supera la base 5 (+ de 50 primaveras) asi que pierdan el miedo e intenten algo nuevo y que es libre!!!
Hasta la proxima
Grub

Cinturon Amarillo en Java Black Belt!!!
Hola hace un tiempo recomende en este post la pagina de java Black Belt
Bueno hoy decidi predicar con el ejemplo y ya gane mi primer cinturon!!. durante las siguientes 24 horas estara publicada la felicitacion en la web :D pero por si ven esto despues hice capturas de pantalla para los incredulos!!
y aqui el listado de felicitacion en la pagina: