25
Nov 14

25N: Aún nos queda mucho camino por recorrer.

Hoy, 25N, es el día Internacional contra la Violencia de Género, y aunque la lucha contra esta lacra debe de ser diaria, nunca está de más que existan estos días para sentarnos a hacer balance de lo conseguido hasta ahora y de los retos que nos quedan.

Que la sociedad está más concienciada sobre la violencia de género es un hecho. Desde hace ya más de una década los movimientos sociales y los medios de comunicación se volcaron en visibilizar este drama y el bombardeo constante de información dejó huella. La gran mayoría de la población actualmente rechaza la violencia: Si vemos un episodio de violencia de género en la calle no dudaríamos en llamar rápidamente a la policía o defender a la víctima, mientras que hasta no hace demasiado la gente dejaba que “cada uno arreglara sus problemas domésticos”.

Las víctimas por su parte cada vez tienen menos miedo a denunciar a sus maltratadores, en gran medida gracias a Ley contra la violencia de género. Ésta asegura que los maltratadores pasarán automáticamente a la cárcel y que las víctimas contarán con la protección y cuidado del estado necesarios. En muchos casos el hecho de depender de sus maltratadores, ocasiona que muchas víctimas se mantengan en silencio. La ley de igualdad también ha ayudado equiparando los derechos de la mujer en el trabajo y dándonos mayor independencia.

Como digo hemos avanzado bastante, pero aún nos quedan muchas cosas en las que seguir trabajando y mejorando.

Las cifras de maltrato de género siguen siendo prácticamente las mismas desde los últimos 10 años, por mucho que hayamos avanzado en la lucha contra la violencia de género. En parte esto es debido a que los medios que ofrece el estado siempre han sido escasos – está muy bien hacer leyes pero sin dotaciones es como no hacerlas – y más en los últimos años.

Por otra parte, está surgiendo un peligroso repunte machista, en muchos casos en gente joven, precisamente por culpa de que algunos mecanismos de la Ley de Violencia de Género pueden crear situaciones del todo injustas.

Es una necesidad que al denunciar el posible maltratador ingrese automáticamente en un calabozo, que la víctima se le lleve a centros de acogida, etc. Aunque para algunos parezca “injusto” porque no es lo habitual en otro tipo de agresiones, hay que tener en cuenta el peligro que soporta la víctima al denunciar en los casos de violencia doméstica. El problema no son estas medidas cautelares, sino que no se castigue de forma ejemplar a quien hace uso de ellas de forma ilícita.

Habría que castigar duramente a las mujeres que denuncian falsamente por malos tratos a sus parejas. Estas denuncias son prácticamente marginales en el total, pero por desgracia hacen mucho daño al ser utilizados por determinados colectivos para satanizar la ley de igualdad y por ende a la mujer.

No hay cosa más repugnante y deleznable que una mujer utilizando los recursos de otras mujeres maltratadas para hacer daño a otra persona. Esta gentuza no diré que merece la pena de un maltratador, porque obviamente no son delitos equiparables, pero deberían de pasar unos cuantos años a la sombra. Si una mujer denuncia a un hombre de malos tratos y se demuestra que ese hombre es inocente, acto seguido la propia fiscalía debería abrir diligencias contra la mujer, y en caso de ser ésta culpable, como digo, aplicar penas contundentes.

Por otra parte, la Ley de Maltrato de Género se hizo pensando exclusivamente en las mujeres y no tuvo en cuenta a otros colectivos maltratados a parte del femenino.

25n

Los hombres también sufren violencia, la cual también debemos perseguir al igual que la violencia machista. Las parejas de gays, por ejemplo, no se les aplican las mismas medidas, ni tampoco a los hombres heteros maltratados por sus mujeres (que los hay). Este es uno de los frentes donde más nos queda por hacer. Basta buscar fotos del 25N, como he estado haciendo para este artículo, y ver como el violeta y los símbolos femeninos copan por completo Google. Es lógico en parte porque principalmente la violencia de género la sufre la mujer, pero no podemos olvidarnos, como digo, del resto de víctimas.

En cuanto a la tan criticada ley de Igualdad, creo que es muy necesaria, pero debería de sufrir algunos cambios que la hagan tender precisamente a eso, a la igualdad, y no a la discriminación positiva como hasta ahora. Sigo creyendo que el tener un 50 / 50 de hombres y mujeres en el trabajo tiene que seguir manteniéndose, hasta que se normalice la situación de las mujeres, pero habría que ir más allá. Por ejemplo, uno de los mayores hándicap de la mujer en el mundo laboral es que puede quedarse embarazada. ¿Por qué no introducimos un periodo de maternidad que sea compartido de forma OBLIGATORIA por igual entre el padre y la madre?

Por último hay otro factor que ocasiona este repunte machista y debemos atajar: la influencia de determinadas culturas y creencias claramente machistas.

Se puede respetar una cultura y acoger a la gente que viene de fuera, pero no se deben permitir tradiciones bárbaras como la sumisión de la mujer en algunas corrientes islamistas. Hay que perseguirlo, sí, pero sobre todo educar a esos colectivos de que nada tiene que ver el maltrato con sus raíces e identidad.

Cuando hablamos de víctimas de violencia de género pocas veces tenemos en cuenta a los millones de mujeres y gays que están sufriendo brutalmente la violencia de género en países fundamentalistas.

Se bombardeó Afganistán y ahora se hace con el Estado Islámico, pero jamás movidos por las lapidaciones y torturas atroces que sufren estos colectivos. Los talibanes maltrataban mujeres y gays cuando eran grandes combatientes en Rambo II, igual que cuando occidente les bombardeó en busca de Bin Laden. Hay países como Arabia Saudí, una de las mayores dictaduras absolutistas que existen y donde menos se respetan los derechos de género, de las que nadie dice nada, porque tienen petróleo y nos lo venden.

Como veis, queda un camino larguísimo con muchos retos, pero tenemos que ser cada uno de nosotros, los ciudadanos anónimos, los que persigamos esta lacra.

Si en la casa de al lado se viven episodios violentos no te calles y denuncia. Si tienes una amiga que ha denunciado a su ex falsamente de maltratos y te lo confiesa, denúnciala. Si tienes un amigo que sufre malos tratos de su pareja pero tiene vergüenza de denunciar, dale todo tu apoyo y fuerzas para que dé el paso. Si sabes de países donde se vulneran sistemáticamente los derechos humanos y de género, pídele a tu gobierno que intervenga, que para eso estén las misiones internacionales, no para enriquecerse expoliando a otros.

Como todo cambio social, es necesaria la colaboración de TODOS para que dentro de 20 años las cifras de maltrato de género sean 0.

Vamos por el buen camino. Sigamos trabajando como hasta ahora.

Artículo publicado en El Boletin:

25N: Aún nos queda mucho camino por recorrer (El Boletin)

Share
21
Nov 14

Pildoritas de POO y Java: Introducción a la Orientación a Objetos

pildoras poo java

Como veíamos en la pildorita introductoria, la evolución de los lenguajes de la programación siempre ha seguido una meta clara: encontrar la metodología más intuitiva para los seres humanos. Para ello, la programación siempre intenta alcanzar el mayor grado de abstracción, modularidad y encapsulación. La Programación Orientada a Objetos no es más que el enésimo y último (o penúltimo si contemplamos la programación orientada a aspectos) intento de alcanzar esas metas, utilizando para ello dos conceptos muy claros: Clases y Objetos.

El mundo real está repleto de Objetos. Algunos son tangibles, como una persona, una mesa o un coche y otros intangibles, como un crédito, una raíz cuadrada o la ventana de una aplicación. Los seres humanos somos criaturas muy observadoras que tendemos además a clasificar esos objetos en diferentes tipos (o Clases) por medio del proceso de abstracción, por el cual se identifican las características esenciales comunes de un conjunto de objetos, prescindiendo de los detalles superfluos.

Por ejemplo, por medio de la observación de otros animales y nosotros mismos, hemos identificado que un conjunto de los mismos somos vertebrados, de sangre caliente, tenemos glándulas mamarias y somos vivíparos (con la excepción del ornitorrinco xD) y los hemos clasificado como Mamíferos.

Un capítulo de biología sobre los Mamíferos nos explica las partes que lo componen, las funciones que realizan, etc., eso es una Clase. Por otra parte tú, o mis gatetes, son objetos de esta clase. Los objetos son entidades concretas que siguen la descripción de dicha Clase.

mamiferosObjetos de la clase Mamífero

En el desarrollo POO se definirá antes de nada la clase y una vez hecho esto, crearemos objetos de esa clase y trabajaremos con ellos. Poniéndonos filosóficos y egocéntricos, los programadores de POO son algo así como Demiurgos, encargados de describir ideas que sirven de molde para los objetos que luego compondrán el mundo real.

Por otra parte, como la POO es imperativa al fin y al cabo, todo se entiende a partir de variables que cambian sus estados durante el transcurso de la ejecución. Para ello, los objetos se compone de atributos, variables que almacenan diferentes estados, y métodos, funciones que realizan diferentes acciones sobre los estados de los atributos.

Hay que tener en cuenta que los atributos también serán objetos (los tipos primitivos no dejan de ser clases también) que componen ese supra-clase. La interacción de estos diferentes objetos entre sí, a partir de lo que se llama mensajes, y las relaciones que existen entre ellos, son precisamente las causantes de que esta programación imperativa marque la diferencia.

Por otra parte, las clases también tienen un ámbito privado y otro público, para conseguir las tan preciadas metas de la encapsulación y abstracción. Tanto las clases, como variables, constantes o métodos, pueden tener un ámbito privado o público, dependiendo si interactuarán con otras clases o son sólo de carácter interno. En el caso de Java también existe otro ámbito, el protected, pero por ahora no vamos a entrar en él.

Veamos ahora un ejemplo muy sencillo de definición de una clase y uso de la misma, para que podáis asimilar las ideas expuestas hasta ahora.

Aunque es un ejemplo muy básico pondré un Diagrama de Clases para que se vea mejor. El UML es un lenguaje de diseño que en sí mismo daría para una serie de Pildoritas nuevas (que espero algún día hacer xD). Cada símbolo tiene significados muy concretos y diferencias con otros que, aunque visualmente no sean muy notables, suelen ser muy importantes a la hora de plasmar nuestro código. También es cierto que se puede llegar a entender en líneas generales el problema sin tener ni idea de UML, que es lo que pretendo en este caso 🙂

f3aec65a

Vamos a definir una clase Persona. Los atributos están al comienzo de la "tabla" Persona y separados por una línea, los métodos. Los símbolos + y - indican su ámbito (público o privado). Por último, tendremos una clase PruebaPersona que simplemente tiene un método main y utiliza una clase Persona.

Para el desarrollo del diagrama, por cierto, he utilizado una herramienta online que no conocía pero me ha enamorado, yuml.me. Genera vía online diagramas de clases, casos de uso y diagramas de actividad. Simplemente hay que definir el diagrama con una sintáxis que se explica muy bien en los ejemplos y te genera directamente una URL de edición, imágenes png, jpg, archivos pdf y json...Vamos, una pasada. Os lo recomiendo.

 package ejemplo1.persona;
/**
 * Clase Persona
 * @version 1.0
 * @since 2014
 */
public class Persona {

	private String nombre;
	private String apellidos;
	private String dni;
	private Integer edad;
	private String sexo;
	
	public String codigoUnico;

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellidos() {
		return apellidos;
	}

	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}

	public String getDni() {
		return dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}

	public Integer getEdad() {
		return edad;
	}

	public void setEdad(Integer edad) {
		this.edad = edad;
	}

	public String getSexo() {
		return sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}
	
	public String toString() {
		String nuevalinea = System.getProperty("line.separator");
		String resultado = "DATOS DE LA PERSONA: " + nuevalinea + 
				"Codigo Unico: " + this.codigoUnico + nuevalinea +
				"Nombre: " + this.getNombre() + nuevalinea + 
				"Apellidos: " + this.getApellidos() + nuevalinea + 
				"DNI: " + this.getDni() + nuevalinea +
				"Edad: " + this.getEdad() + nuevalinea +
				"Sexo: " + this.getSexo() + nuevalinea;

		return resultado;
	}
}

Como veis, la clase persona está compuesta por los atributos que le describen, en este caso nombre, apellidos, dni, edad, sexo y codigoUnico. Además, se han creado una serie de métodos para poder obtener los valores de los atributos privados (métodos get) y cambiarlos (métodos set), así como un método toString que devuelve es una representación en formato String de la clase.

Todos los atributos menos codigoUnico son privados, por lo que no se puede acceder directamente desde otra clase a los mismos si no es a través de los métodos públicos get y set creados para este fin. Por su parte el atributo codigoUnico se puede modificar y obtener directamente desde otras clases, como se puede ver en la clase de Prueba de a continuación, ya que está en la vista pública de la clase.

La palabra reservada this, por su parte, lo que hace es indicar que se hace referencia a atributos o métodos del objeto. Existen otras palabras reservas como super, que ya veremos más adelante para que sirven.

package ejemplo1.persona
/**
 * Clase Test para probar la clase Persona
 * @version 1.0
 * @since 2014
 */
public class PruebaPersona {

	public static void main(String[] args) {
		
		Persona mar = new Persona();
		
		mar.codigoUnico = "112";
		
		mar.setNombre("Mar");
		mar.setApellidos("Millan");
		mar.setEdad(27);
		mar.setSexo("F");
		mar.setDni("01168899Q");
		
		
		System.out.println(mar.toString());
		
	}
}

SALIDA DE LA CLASE PruebaPersona:

DATOS DE LA PERSONA:
 Codigo Unico: 112
 Nombre: Mar
 Apellidos: Millan
 DNI: 01168899Q
 Edad: 27
 Sexo: F

Como podéis ver para crear un objeto se utiliza la siguiente sentencia: Persona mar = new Persona(). Esto se llama constructor y lo que hace es crear en memoria una instancia, es decir, un objeto, del tipo Persona. No entraremos en que es un constructor y lo veremos en la siguiente pildorita, pero por ahora basta saber que todas las clases tienen uno sin parámetros, como el utilizado en este ejemplo, encargados de crear objetos concretos en memoría de la clase a la que pertenecen.

El atributo codigoUnico le hemos dado un valor refiriendonos directamente a él, lo cual se hace indicando el nombre del objeto de la clase que hemos creado seguido del atributo o método separado por un punto.

El resto de parametros al ser privados, sólo se pueden setear a través de los métodos creados con tal fin. Como se ve para este fin utilizamos sus métodos set, pasándoles por parámetro los valores que queremos que tomen estas variables.

Por último, podemos ver una sentencia System.out.println al que le pasamos el string que genera el método toString(), que muestra por pantalla dicha cadena.

Espero que esta Pildorita os haya dado una visión general de la Programación Orientada a Objetos. En las próximas pildoritas empezaremos a meternos con mayor profundidad en los diferentes conceptos que hoy hemos tocado de pasada.

Índice de Pildoritas

Share
12
Nov 14

Urdangarín sufre una "robotomía"

Ayer por la noche dediqué un buen rato a temas de posicionamiento, en concreto sobre configuraciones del robots.txt.

Un robots.txt, para los que no lo sepais, es un archivo de configuración web que indica a los buscadores algunas recomendaciones a la hora de añadir el contenido de nuestra web al buscador: el sitemap de la web, el tiempo de revisión del crawler, el contenido que no queremos que indexe...

Aunque más o menos tengo claras las configuraciones típicas, quería ver ejemplos de webs potentes para ver que cosas suelen ellos bloquear a la hora de indexar, así que utilicé los parámetros de la búsqueda de Google inurl:robots.txt filetype:txt y me puse a mirar ejemplos.

Los primeros resultados que obtení fueron el del propio Google, la Wikipedia, la Casa Blanca y, oh sorpresa, el de la Casa Real. Como soy muy escéptica sobre el código que suelen tener las webs españolas decidí echarle un ojo:

User-agent: *
Disallow: 
Disallow: /_*/
Disallow: /ES/FamiliaReal/Urdangarin/
Disallow: /CA/FamiliaReal/Urdangarin/
Disallow: /EU/FamiliaReal/Urdangarin/
Disallow: /GL/FamiliaReal/Urdangarin/
Disallow: /VA/FamiliaReal/Urdangarin/
Disallow: /EN/FamiliaReal/Urdangarin/
Sitemap: http://www.casareal.es/sitemap.xml

URL: http://www.casareal.es/robots.txt

Ni un disallow de los js o cualquier carpeta de configuración, pero oye, no ha faltado ni una referencia a las diferentes versiones de la página de Urdangarín, no vaya a ser que alguien descubra que este sinvergüenza era el cuñadísimo de nuestro monarca.

Artículo publicado en El Boletin:

Urdangarín sufre una "robotomía" (El Boletin)

Share
11
Nov 14

Interstellar: Una odisea espacial 2.0

interstellar-poster

Últimamente ir al cine es francamente difícil, ya no por los precios, que también, sino por las pésimas producciones a las que nos tienen acostumbrados. Es por eso que cuando te encuentras con una película como Interstellar no puedes más que lagrimear ante tal obra maestra. No hay película de Nolan que no dure mínimo 3 horas y después de El Caballero Oscuro me temía lo peor, pero nada más lejos de la realidad: El carácter relativo del tiempo no sólo es parte del argumento, sino que es inherente a la película, ya que las 3 horas de película pasan en un suspiro.

Aviso antes de nada que este post está plagado de spoilers. Intento pasar de puntillas y dar pocos datos generales de la historia, pero para el análisis no me queda más remedio que entrar en algunas partes, incluido el final, que os pueden fastidiar los mayores hype de la película. Avisados quedáis 😛

Mi adoración hacia 2001: Una odisea en el espacio resulta a veces enfermiza. Siempre que veo películas de Ciencia Ficción no puedo evitar ver similitudes con ella y hacer todo tipo de comparaciones, en las cuales siempre gana la película de Kubrick. En el caso de Interstellar las similitudes con 2001 son constantes y es obvio que Nolan quería hacer su propia versión de 2001 revisada, pero, aunque resulte sorprendente mi aseveración, creo que la obra de Nolan supera con creces a la de Kubrick, aun teniendo en cuenta la época de cada una y su contexto.

Interstellar es la película hasta la fecha más fiel a la física que he visto jamás, rallando incluso la divulgación científica. El funcionamiento de los agujeros negros, del horizonte de sucesos, de la relatividad general, de la teoría de cuerdas...todos estos conceptos tan difíciles de entender se tienen en cuenta y se le explican al espectador de manera que pueda entenderlo, aunque, eso sí, requiera de más de un diálogo entre los protagonistas que se darían por supuestos entre astronautas.

interstellar-2

Es tal el grado de fidelidad con la astrofísica que me pasé parte de la película preguntándome quien asesoraría a Nolán en la materia, porque era obvio que había tirado de lo mejorcito en el campo. Al llegar a casa y googlear vi que la tarea de asesoramiento corría a cargo Kip Thorne, uno de los mayores expertos mundiales en las aplicaciones a la astrofísica de la Teoría de la Relatividad General. Se nota.

Como decía, Interstellar es una revisión mejorada de 2001: Las señales y el agujero de gusano son los monolitos puestos no se sabe bien por quién para que evolucionemos. El viaje a Júpiter de 2001 es la parte que Interstellar desarrolla en el sistema planetario al que lleva el agujero de gusano. Y el final de la película, a su vez, también tiene lugar en una habitación que representa el interior del agujero negro y donde se desarrolla todo el desenlace de la historia principal.

Pero hay notables diferencias que hacen que esta película no sea un refrito y la conviertan en una de las mejores obras, bajo mi humilde opinión, del género de la ciencia ficción.

worm-hole

Para empezar la sociedad de la película es más cercana a la realidad: Una especie agónica que ha esquilmado los recursos de su planeta y ve que su futuro próximo tiene fecha de caducidad. En este caso viajar hacia el punto origen de la señal se convierte en una cuestión de extrema urgencia y en todo momento el futuro de la especie pende de un hilo. Esto no ocurre en 2001: La especie humana parece haber llegado a un estado de equilibrio y avance idílicos.

Nolan también tira de las tomas del espacio pausadas con música clásica para recalcar el caracter armonioso, inalterable y basto del universo, pero sin llegar a que te plantees cortarte las venas. La OST son versiones casi en su totalidad de la misma melodía, la cual recuerda muy mucho el final atronador del tema principal de 2001.

interstellar-bts-2

También tenemos IAs en Interstellar pero poco tienen que ver con HAL 9000. Una de las pocas cosas que siempre me ha desagradado de 2001 es que Kubrick no tuviera ya en cuenta las leyes de la robótica que enunció en 1940 Isaac Asimov. Tampoco seré dura. Kubrick hizo a HAL como lo hizo para incidir en las ideas de "¿Puede una máquina tener conciencia de sí misma? ¿Puede sentir? ¿Puede temer a la muerte?" Estas preguntas tan innovadoras en la época hoy en día ya están bastante trilladas, así que Nolan le ha dado una revisión a sus IA's y a quien de verdad superpone siempre el espíritu de autoconservación por encima del interés general: el ser humano, encarnado en la figura Dr. Mann (Matt Damon), que protagoniza una de las mejores partes de la película, donde, entrelazando la historia de éste con la que tiene lugar en ese mismo instante en La Tierra, se anteponen la fuerza del egoísmo y espíritu de autoconservación que tanto rige al ser humano, con la búsqueda del bien general.

La parte de la habitación final, que esperaba desde mitad de película debido a las obvias similitudes con 2001, es otra obra de arte. Es increíble como se traducen las diferentes dimensiones y la teoría de cuerdas en una habitación de Tesseract de forma comprensible. También se utiliza el carácter de señal de la fuerza gravitacional sin que te explote la cabeza, sino todo lo contrario, ameno y de gran trascendencia en la historia. El carácter del tiempo como una dimensión más también es llevado de forma que un crío pueda entenderlo y se generan dos paradojas temporales que, de nuevo, resultan comprensibles, y lo más importante, sólidas. Cooper (Matthew McConaughey) crea la primera paradoja al enviar señales a su hija a su yo pasado, pero gracias a ésta se crea otra aún mayor, que el ser humano avance lo suficiente para que seamos nosotros mismos, en un futuro muy lejano, los que creemos el agujero negro que nos llevó a tal avance en el pasado.

bowman mid room

Es tal el grado de "frikismo" científico que hasta el mensaje binario con las coordenadas de la NASA que envía el propio Cooper quedaba aposentado en el suelo, mostrándonos el funcionamiento de la transformada de Fourier de forma muy intuitiva (ya podrían haberme explicado hace un mes en el master la transformada de fourier así).

Eso sí, la película no llega al 10 por un detalle que ni a mis conocidos ni a mí nos gustó una pizca: La licencia de Nolan de decirnos que el Amor es una dimensión propia con sus propias leyes físicas, y que estas también mueven el mundo.

Que sí, que es aceptable y le da un punto ñoño moral muy bonito, pero cuando uno lleva casi 3 horas visionando una película que, como digo, ralla la divulgación científica, que de repente te vengan con esta patochada tan poco fundamentada te descoloca cuanto menos. Se hace tan artificial en la historia que esta es una de las razones por las que en el minuto uno de los créditos me sintiera tan desencantada. Eso sí, sólo me duró unos minutos, hasta que empecé a reflexionar un poco sobre lo que había visto. No sólo le quité importancia a esta licencia, sino que ha llegado a parecerme un puntito de fantasía muy agradable.

Creo que Nolan se ha catapultado con Interstellar al top de las películas de Ciencia Ficción. Yo por mi parte, cosa que desde hace muchos años no hacía con una película, esta semana volveré a ir al cine para visionarla de nuevo, porque seguro que, como es también tradición con las películas de Nolan, cada visionado desvelará mil y un detalles que se te pasan la primera vez por alto y que no harán más que reafirmar la calidad de la obra.

Si sois aficionados a la Sci-Fi, Interstellar es un MUST en toda regla.

Artículo publicado en El Boletin:

Interstellar: Una odisea espacial 2.0 (El Boletin)

Share