3 de diciembre de 2012
Demian
Frase leída en Demian de Hermann Hesse. Uno de mis libros favoritos del año. Lo leí un par de veces (febrero y noviembre) y en ambas acasiones me fue una lectura útil para salir de ciertos baches personales y existenciales. Suele pasar.
----------
Enviado vía Nokia Email
3 de noviembre de 2012
NO TE DEJES
30 de octubre de 2012
Entrevista a @codinghorror
6 de junio de 2012
Mi voto
----------
Enviado vía Nokia Email
15 de mayo de 2012
Muere Carlos Fuentes
Ahora repasando algunas otras entrevistas, me tope con una frase que me encanto. Hace referencia a el manejo que tenía Carlos respecto a los elogios:
"...después le pregunté cómo le resultaba eso de escuchar todo el tiempo tanto elogio, tanto gran escritor.
–Me mato de risa, me muero de risa. Yo me veo todas las mañanas en el espejo y digo: ¿gran qué? ¿Ese señor que se va a rasurar y a lavar los dientes?
–¿Pero no te da cierto escalofrío...?
–No. Además recuerda que detrás de todo gran hombre entre comillas hay una gran mujer diciéndole 'che no sos tan grande, no te lo creas, no seas pendejo'... Y yo por fortuna tengo esa mujer."
Q.E.D.
14 de marzo de 2012
Feria reclutamiento
"Esta unidad es formadora de profesionistas capaces de desarrollarse exitosamente en cualquier empresa, gracias al concepto de interdisciplinariedad que aquí se maneja, que nos hace diferentes a otras escuelas, y nos brinda un perfil académico de alta calidad"
23 de diciembre de 2011
Imagenes de mi segundo post en JavaHispano
17 de septiembre de 2011
Genericos y Colecciones Parte 1. Sobreescribiendo equals y hashCode
Puntos a tocar en esta publicación:
- Sobrescribiendo el método equals
- Reglas que sigue el método equals
- Ojo, mucho ojo.
- Sobrescribiendo el método hashCode
- ¿Que implica el hashcode?
- Reglas que sigue el método hashCode
- Ojo, mucho ojo.
Indagando en la javadoc acerca del método equals(Object o), podemos encontrar lo siguiente:
Método: equals(Object o)
Valor de retorno : boolean
Descripción: Indica si un objeto es igual a este.
Este método lo utilizamos para saber si un objeto es igual que otro. Este método utiliza el operador == para comparar a dos objetos y decidir si son iguales, por ejemplo podemos tener la siguiente clase:
public class Demo {
private int boleta;
public Demo(int boleta){
this.boleta = boleta;
}
public int getBoleta(){
return this.boleta;
}
public static void main(String[] args) {
Demo demoA = new Demo(20);
Demo demoB = new Demo(20);
System.out.println(demoA.equals(demoB));
}
}
@Override
public boolean equals(Object o){
if(( o instanceof Demo) && (((Demo)o).getBoleta() == this.boleta))
{
return true;
}else{
return false;
}
}
public static void main(String[] args) {
Demo demoA = new Demo(20);
Demo demoB = new Demo(20);
System.out.println(demoA.equals(demoB));
}
Por lo anterior, esta ejecución del método main, nos dará como resultado un true en la salida por consola.
Reglas que sigue el método equals
- Reflexivo: Para cualquier referencia al valor x, x.equals(x) debe regresar true.
- Simetrico: Para cualquier referencia a los valores x y z, x.equals(z) debe regresar true si y solo si z.equals(x) es true.
- Transitivo. Para cualquier referencia a los valores w, x y z, si w.equals(x) regresa true y x.equals(z) regresa true, entonces w.equals(z) debe regresar true.
- Consistente: Para cualquier referencia a los valores x y z, múltiples invocaciones a x.equals(z) consistentemente regresaran true o false, si es que los valores utilizados para la comparación de los objetos no ha sido modificada.
- Para cualquier referencia no nula al valor x, x.equals(null), debe regresar false.
Ojo, mucho ojo
- Asegúrate de sobrescribir el método equals. Las siguientes son implementaciones del método equals que son validas para el compilador, pero no validas para sobrescribir el método:
- boolean equals(Objeto o). Esta implementación no sobreescribe el método equals de la clase Object, ya que el método debe ser declarado como public.
- public boolean equals(Demo o). Esta implementación no sobreescribe el método equals de la clase Object, ya que el parámetro que necesita el método equals debe ser explícitamente un objeto de la clase Object, y no uno que extienda de éste. Esta implementación, al igual que la anterior es una sobrecarga del método equals, mas no sobreescribe este método.
La descripción correcta del método equals, es decir, la forma en como debe sobrescribirse es la siguiente:
public boolean equals(Objeto o);
¿Qué implica el hashcode?
public class Demo {
private int boleta;
public Demo(int boleta){
this.boleta = boleta;
}
public int getBoleta(){
return this.boleta;
}
@Override
public boolean equals(Object o){
if((o instanceof Demo) && (((Demo)o).getBoleta()== this.boleta))
{
return true;
}else{
return false;
}
}
public static void main(String[] args) {
Demo demoA = new Demo(20);
Demo demoB = new Demo(20);
System.out.println(demoA.equals(demoB));
System.out.println(demoA.hashCode());
System.out.println(demoB.hashCode());
}
}
Esto nos da como resultado:
true
1414159026
1569228633
Sobrescribiendo el método hashCode
A continuación veremos como podremos sobrescribirlo:
@Override
public int hashCode() {
int hash = 7;
hash = 97 * hash + this.boleta;
return hash;
}
La salida que obtenemos una vez que se rescribe este método en el ejemplo de arriba es :
true
699
699
lo que nos dice que estos métodos son iguales según equals, y que además tienen el mismo numero hashcode.
Reglas que sigue el método hashCode
- Si el método hashCode es invocado en múltiples ocasiones durante la ejecución de una aplicación, debe regresar consistentemente el mismo valor entero, esto si la información utilizada para calcular el hashcode no ha cambiado entre invocación e invocación del método hashCode.
- Si dos objetos son iguales según el método equals, entonces la llamada al método hashCode debe regresar el mismo hashcode.
- No es requerido que si dos métodos no son iguales según el método equals, tengan diferentes valores hashcode.
Ojo, mucho ojo
- Si dos métodos son iguales según el método equals, el método hashCode debe regresar el mismo entero para ambos métodos. Sin embargo, si el métodos equals dice que dos métodos no son iguales, el método hashCode puede o no regresar el mismo entero.
- Retornar un valor fijo en un método hashCode es una mala idea, ya que tendremos múltiples objetos con el mismo valor hashcode, lo cual no ayuda en nada a la hora de trabajar con colecciones de tipo Hash*.
- Si utilizamos variables de clase de tipo transient para generar un hashcode, serializamos el objeto en cuestión y queremos recuperar el hashcode de ese método, nos encontraremos con que el hashcode será diferente al hashcode con que se serializó el objeto. Ya que este tipo de variables no se serializa. Por eso es una mala idea utilizar variables transient para generar el hashcode.
23 de abril de 2011
Ver mas alla
3 de abril de 2011
Crear una libreria para una aplicacion Java ME
java.lang.NoClassDefFoundError: com/blogspot/pplouis/saludo/Saludo
at hello.PipaApp.getFormPrincipal(+2)
at hello.PipaApp.startMIDlet(PipaApp.java:50)
at hello.PipaApp.startApp(PipaApp.java:183)
at javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:43)
at com.sun.midp.midlet.Scheduler.schedule(Scheduler.java:374)
at com.sun.midp.main.Main.runLocalClass(Main.java:466)
at com.sun.midp.main.Main.main(Main.java:120)
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.1
Created-By: 1.6.0_14-b08 (Sun Microsystems Inc.)
X-COMMENT: Main-Class will be added automatically by build
mientras que un archivo .jar creado para una app mobile de Java Me, tiene lo siguiente:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.1
Created-By: 1.6.0_14-b08 (Sun Microsystems Inc.)
MIDlet-Vendor: Vendor
MIDlet-Name: SaludoLibreriaMobile
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.1
y se observa que hay especificaciones acerca de la configuracion y el perfil de la libreria.
Para crear una libreria para Java Me es necesario que sea especificamente para un proyecto Java Me. Para esto haremos lo siguiente:
Primero creamos nuevo proyecto de tipo Java Me, dentro de las categorias que nos muestra ponemos que sea un "Mobile Class Library"
24 de marzo de 2011
error: The virtual machine does not support this operation: schema change not implemented
22 de marzo de 2011
Si fuera ingeniero...
Si fuera ingeniero o alguien mas tecnico, te hablaria de los errores tecnicos de Guindous Vista, como que se desintala a la primera provocacion el archivo rundll32.exe, que se devora la memoria RAM, una serie de errores indocumentados por Guindous, a nivel de controladores siempre nos quedo mal Vista, etc, etc etc... pero para el caso no soy tecnico, mas bien rudo (los rudos los rudos los rudos!!), asi es que esta es la lectura que le doy al Vista gate:
La onda es q Microsoft aplico lo q hace Apple, de venderte todo por partes, pero en su version mala onda, me explico :
A la salida de Guindous Vista, Microsoft se dio cuenta de que a nivel empresarial no era viable cambiar de sistema operativo, ya que XP ya se habia convertido en un sistema maduro y muy funcional. A nivel usuario cacero, tampoco creaba muchas espectativas la salida de un sistema operativo (mucha gente ni entereda de que salia un nuevo S.O.). A nivel personas relacionadas con las tecnologias de informacion realmente creo espectativas, pero este no es un mercado muy grande. Los tentaculos de Microsoft estan en las empresas. Asi que lo q hizo fue dejar de darle soporte y descontinuar a XP. Con lo cual forzo el cambion de SO, pero no solo de eso, sino que ademas forzo en la mayoria de los casos un cambio de hardware, ya que Vista es tan diva como para pedir 3 GHz de procesador, 2GB RAM, 256MB video (las especificaciones marcan otros requerimientos como minimos, pero con eso Vista se arrastra todavia mas). Ademas de que las nuevas computadoras ya te vendian la licencia de Vista, y dejaron de vender XP Asi que hubo un traslado masivo a Guindous Vista.
Hasta este momento Microsoft ya se embolso una buena lana por todo lo generado por Vista. Pero aqui viene lo critico. Siendo Vista un S.O. planeado para que no funcionara correctamente (con esto digo que es malo a proposito), Microsoft te dice: "ahh, no te jala Vista, ah pues mira en unos mese saco Guindous 7, cambiate a Guindous 7". Ahi fue cuando todo tuvo sentido. Primero te obligan a comprar un mal SO, para luego orillarte a comprarles un Guindous 7 que no es otra cosa q Vista sin errores (al menos evidentes). Doble ingreso para Microsoft!
En estos momentos los Linux-boys y los Mac-boys estaran mentando madres y su odio hacia Microsoft tuvo un +1000. Pero no hagamos bilis...
Are You Ok - Alfa

15 de marzo de 2011
Error: "home/manie/netbeans-6.5/mobility8/WTK2.5.2/bin/emulator: 26: java: not found"
10 de marzo de 2011
ACTA
Tal vez uno de los pecados que estamos cometiendo es de centralizarnos en un servicio particular. Llamese google, facebook, hotmail, paypal, siento que no estamos creando y usando soluciones alternativas a las conocidas. ¿Que pasaria si el dia de mañana nos cierran paypal, o nuestra cuenta de twitter? Si centralizamos la red nos hacemos mas bulnerables a poder ser censurados, a que nuestra información o servicios ya no estén disponibles de un día para otro, por particulares de una minoria muy pequeña, cuyos intereses difieren enormemente de los de la sociedad en general, de practicamente TODOS. Dejo un video explicativo acerca del ACTA, es muy ilustrativo y lo deja muy claro de lo que se trata. Aun asi hay que informarse para estar permeados del tema. 8^)
8 de marzo de 2011
El unico que sabe
Es un misterio el como trabaja la mente humana, talvez en esos 3 minutos de sueño, se llevaron a cabo en mi cuerpo reacciones quimicas que me hicieron despertar con tal claridad de mente. O talvez eran pensamientos que siempre he traido conmigo, y que habian estado oprimidos por las cataratas mentales que solemos tener todos en algun momento de la vida. El caso es que me alegro de no haber tenido suficiente autocontrol para evitar ese momento de sueño que no queria. A vivir en paz!
2 de marzo de 2011
Hiperbolico
1 de marzo de 2011
Crear un branch en Subversion
19 de enero de 2011
Volver a Compartir
llamado "Pico".
14 de junio de 2010
Solo le pido a Dios - Mercedes Sosa
Hace unos dias lei esto en un periodico:
Solo le pido a Dios
Que el dolor no me sea indiferente,
Que la reseca muerte no me encuentre
Vacio y solo sin haber hecho lo suficiente.
Solo le pido a Dios
Que lo injusto no me sea indiferente,
Que no me abofeteen la otra mejilla
Despues que una garra me araño esta suerte.
Solo le pido a Dios
Que la guerra no me sea indiferente,
Es un monstruo grande y pisa fuerte
Toda la pobre inocencia de la gente.
Solo le pido a Dios
Que el engaño no me sea indiferente
Si un traidor puede mas que unos cuantos,
Que esos cuantos no lo olviden facilmente.
Solo le pido a Dios
Que el futuro no me sea indiferente,
Desahuciado esta el que tiene que marchar
A vivir una cultura diferente.
En estos dias busco material de Mercedes Sosa. Esto me engancho.










