Brindaré por el maldito año que se va

Poco tengo que agradecerle al maldito año que se va. En lo literario no ha estado mal: aparte de escritos menores, he publicado un libro, entregado otro como encargo de una editorial y concluido un tercero, pendiente de valoración en una editorial capitalina. En lo personal solo me han reportado alegría mi propia boda, bien tardía en lo ceremonial, y el nacimiento de un bebé muy esperado por una buena amiga. Pero alguna monstruosa divinidad ha estimado que no nos merecíamos esas pinceladas de felicidad y que debían ser borradas con tinta negra y roja. El año nos ha arrebatado a un buen amigo y a un familiar muy querido y ha instilado el veneno de la enfermedad en otro buen amigo y otros tres seres queridos. Con este saldo solo me queda esperar a esta noche para, como a execrable enemigo que huye, tenderle un puente de plata. Lo cual precisamente me da más razones que nunca, queridos lectores, para desearos a todos un

FELIZ AÑO 2014

PARA TODOS Y TODAS.

EN LOS ANTIGUOS CAFÉS DE MADRID NOS TOMAREMOS LAS UVAS PENSANDO EN QUE SÍ SE PUEDE.

¡¡¡ FELIZ Y AFORTUNADO AÑO 2014 !!!

Foto: M.R.Giménez (2013)
El señor orondo de la calle de Postas, con su loro al hombro.

Europa debe Cambiar de Base

1.Una Europa que garantice trabajar menos para todos y todas.

La Unión Europea de las multinacionales y los banqueros y del Pacto de Estabilidad y Crecimiento se ha convertido en un arma de destrucción de derechos sociales, de fomento del paro masivo (23,5 millones de personas en 2009), de la precarización laboral (alrededor de 100 millones de personas en 2007) y del empobrecimiento creciente de amplias capas de la población (79 millones en el mismo año) que, con la excusa de la crisis provocada por el propio sistema que pretenden perpetuar, amenaza ahora con proseguir por ese camino con mayor intensidad y dureza mediante políticas como la “flexiguridad”. La Europa por la que luchamos deberá basarse en la armonización por arriba de los derechos sociales, empezando por la prohibición de los despidos en las empresas con beneficios y la garantía de recolocación, sin disminución de salarios, en los sectores en crisis mediante su reconversión bajo control social hacia la satisfacción de necesidades sociales compatibles con el medio ambiente.

Promoverá el reparto de todos los trabajos –incluidos los no remunerados- mediante la derogación de la Directiva que sigue permitiendo la prolongación de la semana laboral más de 48 horas, estableciendo la reducción de la semana laboral a 35 horas, sin disminución de salarios, y la socialización de las tareas de cuidado. Reducirá radicalmente la temporalidad en la contratación laboral mediante la consideración de la contratación indefinida como norma y la eventual como excepción. Asimismo, propondrá un aumento sustancial del Salario Mínimo en toda la UE (que en el Estado Español debería alcanzar 1.200 euros), un Ingreso Social equivalente para todas las personas desocupadas y unas Pensiones dignas a partir de la jubilación a los 60 años, en el camino hacia una Renta Básica Universal. Igualmente, frente a las sentencias del Tribunal Europeo de Justicia favorables al “dumping” social, derechos básicos como el de huelga y la igualación de condiciones laborales y salariales, independientemente del origen del país de procedencia, deberán ser reconocidas plenamente.

2. UNA EUROPA QUE ASPIRE A LA SOCIALIZACIÓN DE LOS BIENES COMUNES Y DE LA BANCA Y AL REPARTO DE LA RIQUEZA

El agua, la tierra, la sanidad, la educación, la cultura son bienes comunes que han de garantizar una vida digna para todos y todas, por lo que deben ser reconocidos constitucionalmente como derechos fundamentales. Frente a los procesos de liberalización y privatización de los servicios dentro de la UE y a las directivas que las promueven –que deberían ser derogadas-, tiene que haber unos servicios de propiedad y de gestión 100% públicos, paralizando todos los procesos de privatización y exigiendo el retorno al sector público, bajo control social, de los ya privatizados. Garantizará el derecho a la salud universal, equitativa y gratuita, así como a la educación pública y gratuita desde los centros infantiles hasta la Universidad; paralizará el Plan Bolonia y asegurará una Universidad Pública y de calidad al servicio de las necesidades sociales; que reconozca la vivienda como un derecho fundamental y no como un negocio, procediendo a la expropiación de viviendas vacías y a la creación de un parque público para alquiler social, no superior al 20% del salario y prohibiendo los desahucios por impago de hipotecas de hogares afectados por el fraude inmobiliario y el paro. Revisará profundamente la Política Agrícola Común (PAC) de la UE para ponerla al servicio de quienes trabajan la tierra y a favor de un mundo rural vivo, que exija que la agricultura y la alimentación estén fuera de las negociaciones de la Organización Mundial del Comercio, que prohiba los transgénicos y exija la abolición de los festejos con malos tratos a los animales. Promoverá una política cultural que garantice que los medios de comunicación públicos estén al servicio de la ciudadanía, la creación artística desmercantilizada, el copyleft y el apoyo a los medios de comunicación alternativos.

Frente a la socialización de las pérdidas, adoptada por los gobiernos al servicio de los banqueros, los especuladores y los estafadores para luego volver a privatizar sus beneficios, la Europa que queremos deberá promover una Banca Pública bajo control social para poner en marcha un sistema de préstamos ecosociales que facilite la transición hacia otro modelo productivo al servicio de las necesidades básicas de la población. Será una Europa que abolirá los “paraísos fiscales” existentes dentro de su territorio, establecerá un control estricto e impuestos sobre el libre movimiento de capitales, los beneficios de las multinacionales y las grandes fortunas y promoverá una armonización hacia arriba de las políticas fiscales hsta conseguir la desaparición de todos los “paraísos fiscales”.

3. UNA EUROPA QUE LUCHE CONTRA EL CAMBIO CLIMÁTICO Y SIENTE LAS BASES DE OTRO MODELO CIVILIZATORIO

Frente al cambio climático el sector energético ha de ser considerado un servicio público planificado democráticamente en toda Europa y, por tanto, pasar a ser de titularidad pública. La UE es la segunda emisora de gases de efecto invernadero (24 %) del planeta y, pese a su retórica verde, prosigue ese camino con su obsesión por el “crecimiento económico” y proyectos como las grandes infraestructuras. La Europa que queremos debería asegurar el cumplimiento efectivo del compromiso de reducir las emisiones de gases de efecto invernadero en un 40 % para 2020 con respecto a los niveles de 1990, la renuncia a la energía nuclear, el abandono progresivo de las energías no renovables y la adopción de un Plan europeo de suministro energético que tienda a basarse en un 100 % en energías renovables. Deberá establecer una Moratoria de nuevas infraestructuras de transporte, proceder a una reevaluación de los proyectos ya en marcha y el abandono o reconversión de aquéllos que sean considerados innecesarios o destructivos, suspendiéndose la financiación a la inversión en este sector y redirigiéndola prioritariamente a gastos sociales. Todo ello con el propósito de emprender una transición efectiva hacia otro modo de producir, distribuir y consumir sostenible y socialmente justo, hacia un “Buen Vivir” que cuestione radicalmente la lógica depredadora de recursos del actual sistema y el fetichismo del “crecimiento económico” ilimitado que le acompaña.

4. UNA EUROPA BASADA EN LA IGUALDAD PLENA DE TODAS LAS MUJERES, EN SU DERECHO A DECIDIR Y EN EL RESPETO A LA LIBERTAD SEXUAL

Frente a una UE que mantiene una sociedad patriarcal y discriminatoria y a las restricciones que persisten en muchos países –como Irlanda, Polonia, Malta y, también, pese a los avances logrados, el Estado español- al derecho a decidir de las mujeres, reivindicamos una legislación común a escala europea que garantice la despenalización total del aborto y el derecho a la interrupción del embarazo y a la contraconcepción libres y gratuitos a cargo de la Sanidad Pública. La maternidad ha de ser también libre y deseada y por ello es imprescindible una educación sexual y afectiva, honesta y sincera, para evitar embarazos no deseados. Reivindicamos el derecho a las prestaciones sanitarias públicas para la maternidad y reproducción asistida sin límite de edad, territorio, orientación sexual o modelo de convivencia doméstica. Exigimos la igualdad de género en todos los trabajos y consideramos urgente poner fin a la precariedad laboral en forma de contratos temporales y parciales y discriminación salarial, los cuales aefectan de forma particularmente severa a las mujeres.

Rechazamos la consideración de las tareas de cuidado como “inherentemente femeninas” o “cosa de mujeres” y apostamos por una educación y una socialización de los y las jóvenes que no perpetúen los actuales roles de género. Con el objetivo de conseguir la plena responsabilidad pública respecto al cuidado, deberían adoptarse leyes a escala europea que garanticen el acceso al cuidado público gratuito y de calidad para todas las personas en situación de autonomía restringida y el desarrollo de los equipamientos sociales necesarios que faciliten el uso equitativo de los tiempos de vida cotidiana de las mujeres y del conjunto de la sociedad. Debería establecerse también una legislación europea contra la violencia machista, garantizando un servicio público de acogida, alojamiento y protección de las mujeres víctimas de violencia y la equiparación de derechos para las mujeres inmigrantes independientemente de su situación legal. Finalmente, frente a las discriminaciones y frecuentes violencias homófobas que persisten en la práctica totalidad de países de la UE, rechazamos la imposición de la “norma” heterosexual y reivindicamos la libre opción sexual y plenos derechos y protección para gays, lesbianas, bisexuales, transexuales y transgéneros.

5. UNA EUROPA SIN MUROS NI GUETOS. NINGÚN SER HUMANO ES ILEGAL.

La Unión Europea, al mismo tiempo que facilita la sobreexplotación de la fuerza de trabajo inmigrante en función de las necesidades empresariales, se está convirtiendo en una fortaleza llena de muros, vallas y Centros de “Internamiento” de Inmigrantes (CIEs) dentro y fuera de sus fronteras, y prosigue las expulsiones masivas (medio millón de personas en 2007), basándose en un racismo institucional que tiene en la Directiva de la “vergüenza” (mal llamada de “retorno”), aprobada por el Parlamento Europeo y la casi totalidad de eurodiputados del PSOE, su peor expresión. La Europa que queremos derogará esa Directiva, suprimirá los CIEs y las leyes discriminatorias (como la Ley de Extranjería española), desmantelará el FRONTEX y las vallas fronterizas en el Norte de Africa, derogará la política restrictiva del derecho de asilo, despenalizará la ayuda y el apoyo a la entrada, circulación y estancia de inmigrantes y demandantes de asilo y garantizará la tutela efectiva para las personas menores de edad no acompañadas. La Europa que queremos respetará el derecho a la libre circulación y elección de país residencia y regularizará y garantizará plenos derechos para todas las personas residentes en suelo europeo, sin distinción de nacionalidad, etnia o religión, con o “sin papeles”.

6. UNA EUROPA DEMOCRÁTICA Y LAICA QUE RECONOZCA TODOS LOS DERECHOS PARA TODAS LAS PERSONAS, TODOS LOS PUEBLOS Y TODAS LAS CULTURAS

El proceso de “integración europea” y, luego, de la UE tuvo un carácter antidemocrático desde sus mismos orígenes y, tras el Acta Única de 1986 y el Tratado de Maastricht de 1992, llegó a su culminación con el proyecto de Tratado Constitucional Europeo, finalmente frustrado por el rechazo de los pueblos francés y holandés. Ahora, con el Tratado de Lisboa, pese a su rechazo por el pueblo de Irlanda, se pretende legitimar de nuevo un régimen oligárquico y despótico que tiene sus peores expresiones en el Banco Central Europeo, el Tribunal Europeo de Justicia y la Comisión Europea, al servicio todos ellos de los “lobbies” de las grandes multinacionales europeas y de la libertad empresarial. La Europa por la que luchamos derogará el Pacto de Estabilidad y Crecimiento y, en el caso de que finalmente se apruebe, el Tratado de Lisboa; romperá con el marco procapitalista e institucional de la UE y deberá ser refundada desde abajo, desde el reconocimiento de todos los derechos –incluido el de la autodeterminación y la independencia- para todos los pueblos y para todas las personas residentes en suelo europeo. Sólo un nuevo proceso constituyente, libremente pactado y basado en la decisión soberana de los pueblos, podrá establecer las bases de otra Europa democrática, plurinacional y pluricultural. Será una Europa que luche contra la profesionalización de la política, limitando la permanencia en cargos públicos a no más de 2 mandatos, con salarios no superiores al salario medio del país respectivo, con derecho de voto a partir de los 16 años, la regulación generosa de los derechos de iniciativa legislativa popular y el referéndum, la derogación de toda la legislación “antiterrorista” de excepción -incluida la Ley de Partidos vigente en el Estado español-, la separación total entre los Estados y las iglesias y la democratización de todas las instituciones, incluida la jefatura de los Estados.

7. UNA EUROPA RESPETUOSA DE LA SOBERANÍA DE LOS PUEBLOS DEL SUR Y FUERA DE LA OTAN

La UE ha sido uno de los principales motores de la globalización neoliberal y neoimperialista, siendo ahora sus más claros ejemplos los “Acuerdos” y “Tratados” de “Libre Comercio” que pretende imponer en países como Africa, Caribe y Pacífico o Centroamérica., contrarios al respeto a la soberanía de los pueblos sobre sus bienes y recursos naturales y al servicio del saqueo de sus recursos en beneficio de las grandes multinacionales del Norte, como se comprueba en el documento de la Comisión Europea “Europa Global: Competir en el mundo”. Al mismo tiempo, su política exterior y de defensa comparte en lo fundamental los intereses geoestratégicos de EE UU y se desarrolla en el marco de la OTAN y de las guerras que emprenden en países como Iraq y Afganistán. La Europa que queremos deberá cancelar la Deuda Externa contraída por los países del Sur, reconocer la Deuda Ecológica hacia los mismos, derogar los injustos “Acuerdos” y “Tratados” comerciales y establecer una relación solidaria con ellos basada en el respeto a su soberanía. Será una Europa que deberá romper todos sus compromisos con el FMI, el BM y la OMC. Apostará radicalmente por establecer unas relaciones pacíficas con todos los pueblos empezando por la retirada inmediata de sus tropas de Afganistán y Líbano, rompiendo todo tipo de vínculos con la OTAN y exigiendo su disolución.

Asimismo, anulará el Acuerdo Preferencial de Comercio con el Estado de Israel y suspenderá todo tipo de relación con ese Estado mientras persista sus constantes violaciones de derechos humanos fundamentales del pueblo palestino, reconociendo a sus representantes elegidos democráticamente. También deberá proceder al reconocimiento diplomático de la República Árabe Saharaui Democrática, solidarizarse con el pueblo marroquí frente a un régimen que es el principal aliado del imperialismo en el Norte de Africa y respetar el derecho a la autodeterminación de todos los pueblos.

Democracia y libertad: el cuerpo de las mujeres como campo de batalla

Paula Quinteiro, enfermera, activista social y militante de Esquerda Anticapitalista Galega.

El viernes 20 de diciembre el Consejo de Ministros aprobó el anteproyecto de Ley Orgánica de Protección de la Vida y del Concebido y los Derechos de la Mujer Embarazada. El título y los mecanismos no dejan de ser irónicos. Los derechos de la mujer se ven mermados una vez más por un Partido Popular que recorta derechos individuales desmontando servicios públicos, en nombre de la libertad, y liquidando los mecanismos de bienestar garantizados por el Estado. El Estado, para el Partido Popular, no es una herramienta para aumentar el bienestar de la población y garantizar derechos, es una máquina para impulsar recortes y atacar a la democracia.

¿A qué nos enfrentamos?

En esta ocasión, el gobierno del PP arremete contra las libertades sexuales y reproductivas de las mujeres, imponiéndonos la maternidad y fomentando exclusivamente nuestro rol reproductor.
Con esta ley nos muestran una vez más su verdadera cara, conservadora y retrógrada. Desde 1985 rigieron leyes de plazos, ahora retrocedemos casi 30 años y volvemos a una ley de supuestos, aun más restrictiva que la de 1985. Sólo será legal abortar bajo dos supuestos: el embarazo fruto de la violación (hasta 12 semanas), y el grave peligro para la salud física o psíquica de la mujer gestante (hasta 22 semanas).

Se elimina el supuesto de la malformación fetal, con la excusa de no discriminar a los discapacitados. Por un lado, proclaman la defensa de los y de las más vulnerables, y por otra les atacan constantemente con su austeridad, reduciendo las ayudas a estas personas con autonomía restringida. Esta ofensiva neoliberal está aumentando su exclusión social, cambiando el Estado del Bienestar, que había servido en los últimos años como principal fuente de legitimación del sistema, por un modelo de beneficencia.

El paternalismo machista de esta nueva regulación también se refleja en medidas como el aumento del período de reflexión obligatorio, que pasa de 3 a 7 días, tras recibir información y asesoramiento por profesionales sanitarios que carecen de la formación específica. Además, los abortos realizados fuera de los supuestos citados anteriormente pasan a ser delito, pero sólo será castigado el médico que los realice (de 1 a 3 años de cárcel). La mujer no tendrá consecuencias penales, ya que pasa a ser considerada una víctima. Si esta ley hubiera estado vigente en el año 2012, el 91,26% de los abortos no se podrían haber realizado de manera legal, ya que ese es el porcentaje de mujeres que interrumpieron el embarazo por petición propia fuera de los supuestos.

¿Por qué ahora?

Hay múltiples razones que llevan al PP y al ministro Gallardón a impulsar estas medidas. Los recortes y la austeridad también afectan a la base social del Partido Popular, cercenándola y haciendo que buena parte de su electorado tradicional esté dispuesto a mirar a otras opciones partidarias a la hora de dirigir su voto. Hacía falta un reagrupamiento de corte ideológico, ya que las políticas neoliberales empobrecen también a sus bases sociales. Si no hay éxitos económicos que vender, habrá que buscar otra clase de golpes de efecto. Ahora que se acercan las elecciones europeas y que la doctrina Parot y ETA ya no parecen ser tan rentables, hay que buscar un nuevo "objeto" (es así como el PP ve a los seres humanos) sobre el cual centrar los ataques. Las mujeres y la familia son un clásico que nunca falla.
El relanzamiento de este discurso, que parecía olvidado pero que aún subyace en parte minoritaria en la sociedad española, pretende mostrar a la mujer como una persona sin capacidad de decisión. Un sujeto pasivo incapaz de pronunciarse sobre su cuerpo y sobre su maternidad, y la subordina a terceras personas que actuarán como meros gestores de un derecho hasta ahora hasta cierto punto personal.

En este caso es el Estado quien modula el ejercicio de este derecho, anteponiendo una vez más la subjetividad de las creencias religiosas frente a la objetividad de los derechos sexuales y reproductivos. Esto vuelve a hacer patente la sumisión del actual gobierno del Partido Popular a la Iglesia Católica, ya que esta reforma responde indudablemente a los intereses de esta institución todavía omnipresente en el Estado Español, la cual, como residuo feudal que es, depende para ejercer su poder y mantener sus intereses materiales de ligarse a los aparatos del Estado y de ejercer un papel de garante del orden en la sociedad civil.

Argumentan que quieren defender el derecho de las mujeres a ser madres, pero para ellos sólo son válidas las que pertenecen a una familia normativa heteropatriarcal. No hay que olvidar que han manifestado repetidamente su intención de limitar el acceso a las técnicas de reproducción asistida en la sanidad pública a las mujeres lesbianas y a las solteras. Los planes del Ministerio de Sanidad pasan por excluir a las parejas no integradas por un hombre y por una mujer, legitimando exclusivamente el único modelo de familia que encaja en sus postulados dictados directamente desde El Vaticano.

Otro de sus argumentos fundamentales es la "defensa de la vida", que bajo el gobierno del PP se reduce a los 9 meses de gestación, ya que una vez que se sale del útero materno, la mayoría de las personas están condenadas a una vida de miseria. No se defiende la vida, sino que se atenta contra ella. Las mujeres con embarazos no deseados se verán abocadas a abortar en clínicas clandestinas sin garantías de salubridad, o bien en el extranjero, si cuentan con los recursos económicos suficientes. Aunque la violencia se ejerce contra todas las mujeres, son las de clase trabajadora las más afectadas. Abortar en Londres, según los cálculos más moderados, puede costar 5000 euros en total. La lucha de clases llega así a los cuerpos de las mujeres.

Para disminuir el número de embarazos no deseados y los abortos es necesario un mayor acceso a la información en materia de sexualidad, así como posibilitar sin ningún tipo de traba el uso de métodos anticonceptivos. Deberían incluirse en los planes de estudio, especialmente, en profesiones socio-sanitarias, acciones formativas protocolarizadas sobre derechos sexuales y reproductivos desde el enfoque de género.

Este ataque, sumado a todos los efectuados sobre las mujeres desde el estallido de la crisis, no hace sino aumentar las desigualdades de género. Estos recortes de derechos tienen una dimensión económica diseñada para garantizar la reproducción de capital. Pretenden imponernos la tarea de ser madres, igual que nos imponen el cuidado de las personas dependientes, reduciéndonos a meros entes reproductores y obligándonos a cumplir con nuestro rol tradicional de sumisión.

El ministro Gallardón, que alardea de la defensa de los derechos de las mujeres, debería establecer la implicación de las instituciones en la tarea de cuidados, ya que debe ser una tarea llevada a cabo por el conjunto de la sociedad y no exclusivamente por la mitad de ésta. Pero el PP prefiere cargar sobre las mujeres lo que recorta en bienestar. Así, la estrategia para recuperar los derechos sociales recortados y la lucha feminista, quedan conectados. Luchar por los derechos de las mujeres genera contradicciones irresolubles en un sistema que requiere del trabajo no pagado femenino para mantener la explotación del mundo laboral; por otra parte, confrontar con un sistema que para mantener los beneficios de una minoría requiere de la "acumulación por desposesión" de la mayoría de la población es condición necesaria para avanzar en la conquista de la igualdad entre hombres y mujeres, en la autonomía sobre nuestros cuerpos. Ese es el verdadero significado de la democracia: medios materiales e ideológicos para que las personas puedan decidirlo todo.ç

¿Qué hacemos?

La contrareforma del aborto es un ataque de extraordinaria gravedad. Los retos son enormes y no podemos permitirnos relegar esta lucha a un segundo plano. Es urgente otorgarle la centralidad política que merece. Esta ley nos impone precariedad y miseria material a las trabajadoras que necesitamos vender nuestra fuerza de trabajo para mantenernos, a la vez que institucionaliza la violencia sobre el conjunto de las mujeres. Porque violencia no es sólo el maltrato penado legalmente, violencia es también privarnos de los recursos materiales y legales para poder decidir lo que queremos hacer con nuestras vidas.

El aborto debe estar fuera del código penal, debe ser un derecho al que las mujeres podamos acceder de manera gratuita en la sanidad pública. Así pues, es necesario construir una propuesta alternativa que convierta el derecho a decidir sobre los cuerpos en una demanda transversal amplia, que agregue a sectores que tradicionalmente no tienen vinculación con el feminismo organizado o la izquierda militante, evitando caer en discursos autorreferenciales, construyendo una hegemonía basada en los derechos y en las libertades personales. El feminismo es una lucha por la democracia; todas y todos tenemos que asumir la responsabilidad que nos corresponde, para que nadie decida por nosotros.

Publicado originalmente en Praza Pública: http://praza.com/opinion/1554/democ...

Proyecto Picross: haciendo un videojuego HTML5 en Dart

Ya lo dije en mi anterior entrada sobre el lenguaje Dart: Dart está muy bien, puede suponer una revolución en la web y su futuro potencialmente es muy prometedor. Pero claro, una cosa es el posible futuro y otra es el presente. ¿Cuál es realmente el estado actual de la plataforma Dart?.

Por otra parte, otra tecnología que me llama la atención es la de los videojuegos HTML5. Sobre todo para videojuegos 2d, sencillos, que aparentemente ya deberían poder hacerse en la web. Con la gran ventaja de ser multiplataforma, que se puedan jugar en Android, en iOS, o hasta desde el Facebook, y en este último caso sin tener que instalar nada. ¿Están estas tecnologías suficientemente maduras?.



Con ánimo de comprobarlo y a la vez divertirme, me lié la manta a la cabeza, uní las dos inquietudes y me puse a hacer ¡un videojuego en Dart!. Y aquí cuento todo el proceso, que duró sólo una semana, pero que me dio para asistir a la Gameme5  e incluso participar en la PiWeek.


La GameMe5

Yo de videojuegos en HTML5, la verdad, ni idea. Afortunadamente, estaba apuntado a la GameMe5, un evento organizado por HTML5 Spain y Wimi5 en el que ofrecían un taller de programación de videojuegos en Javascript el Viernes y varias charlas el Sábado.

El taller lo daban Carlos Benítez (@EtnasSoft) y Sergio Ruiz (@serginator), y en él fueron explorando un juego que se habían currado aposta y que era muy muy completito, desarrollado enteramente en Javascript a pelo y sin librerías.

Fueron avanzando poco a poco en el desarrollo y cubrieron muy bien muchos aspectos del desarrollo de videojuegos en general y de Javascript en particular, desde los temas más básicos como el loop principal y el doble buffer hasta otros más complejos como las rotaciones, los fondos por trocicos (en mosaicos), los métodos de detección de colisiones, algoritmos de búsqueda (pathfinders), manejo de física y sistemas de partículas. Lo mejor del taller es que aparte de estos aspectos más o menos generales de los videojuegos, iban comentando también temas de rendimiento y problemas de Javascript. Dijeron que un buen juego JS puede llegar a estar a la altura de un juego de PS2, si es 2d, o entre PS1 y PS2, si es 3d. Pero además comentaron problemas que tenían los navegadores si querían hacer efecto espejo automáticamente en las imágenes, usar base64 o como no tuvieran cuidado con los arrays y el recolector de basura (al eliminar un elemento de un array no lo elimina de verdad, sino que lo deja pendiente de GC, lo cual puede llegar a causar un parón sensible en un videojuego).

En las charlas del día siguiente hubo de todo, pero me gustaría destacar sobre todo 3 que fueron especialmente interesantes. En la primera, José Javier García-Aranda de Alcatel-Lucent hablaba sobre un algoritmo en el que están trabajando para compresión de imágenes y vídeo, LHE (Logarithmical Hopping Encoding), y que puede ser muy potente para el Cloud Gaming y las videoconferencias, ya que se consiguen tiempos de codificación rondando los 2ms y una calidad decente a 0,1 bits por pixel. Fue una de esas charlas que destacan porque lo que se cuenta es muy interesante, se entiende muy bien y además el ponente es muy ameno.

En la segunda Jorge del Casar (@jorgecasar) hablaba sobre WebSockets, y nos hacía una demo con un Tetris multi-jugador.

Y por último Imanol Fernández (@MortimerGoro) de Ludei nos daba una apabullante lección sobre rendimiento de Javascript, haciendo una demostración de un pequeño programa que tardaba 600 veces más en su versión Javascript que en la versión C++, y luego le aplicaba muchos trucos hasta conseguir que fuera "sólo" 6 veces más lenta. Sobre todo se usaron técnicas para conseguir que el compilador JIT de Javascript hiciera "inline caching" de las funciones más importantes, ya que es muchísimo más rápido, con cosas tan aparentemente absurdas como borrar un comentario o borrar un try-catch. Por ahí rondaron conceptos como las "hidden classes" (que se crean cuando añades atributos nuevos en tiempo de ejecución, y que ralentizan bastante) y arrays de más de 64K (leeentos). Pero vamos, si os interesa el tema, lo mejor es que veais la presentación completa.

Aparte de eso, también nos habló de CocoonJS, una herramienta que ha hecho que permite publicar tus videojuegos HTML5 en móviles, pero que al contrario que Phonegap, en lugar de utilizar los browsers que vienen de serie en las respectivas plataformas, utiliza uno propio, con su propia implementación de canvas, audio, webGL, etc., y con un rendimiento optimizado respecto a los otros (are we crazy? yes, but we're from Bilbao). La verdad es que tenía una pinta tremenda.



El videojuego: Picross

La verdad es que la GameMe5, en la práctica, sirvió a mi proyecto sobre todo para una cosa: acojonarme. Tanta optimización, tanto comportamiento extraño de los motores JS, tanto lío con los navegadores, tanta facilidad para quedarse sin memoria... y voy yo y le meto una capa más de riesgo por encima, Dart.

Así que decidí que ya tenía bastante cubierto mi cupo de riesgo y decidí hacer un juego sencillito, que no requiere gran rendimiento pero que a la vez escala muy bien, y da para ir añadiéndole cositas poco a poco. Y por supuesto, ¡muy divertido!.

Picross es un juego de tipo puzzle que se conoce por muchos otros nombres de los cuales el parecer el más oficial es "nonogramas".  Habrán salido millones de versiones del juego, tanto para ordenador como en papel, pero la que se hizo más famosa en su día fue la versión de Nintendo DS, o al menos esta es la que yo conocía y de la que me vicié hace años. Como buen juego de puzzles, se puede dejar el rendimiento un poco de lado y que siga siendo jugable, y eso es lo que a mi me importaba llegado a este punto. Sobre todo, porque tenía que tener una versión presentable en una semana, ya que me había presentado a la PiWeek.

El funcionamiento del juego es sencillo: hay una matriz de celdas, y cada una de ellas es un píxel, que puede ser blanco o negro. Todas juntas forman un dibujo binario que es el que hay que averiguar. Para hacerlo, cada fila y cada columna tienen una serie de números que indican los grupos de píxels negros que son consecutivos. Por ejemplo, si en una fila pone "3 2" significa que hay 3 píxels negros seguidos y luego separados otro grupo de 2 píxels negros. Entre medias, antes y después, hay un número indeterminado de píxels blancos. Combinando las pistas de las filas y las columnas, se va averiguando el dibujo.


La PiWeek

Kaleidos es una empresa de desarrollo que probablemente pueda presumir de tener el mayor ratio de densidad de geeks por metro cuadrado en toda España. Se definen como una empresa orientada a proyectos de innovación, así que tienen varias iniciativas muy interesantes orientadas a la innovación y la mejora. Una de ellas es la PiWeek ("Pi" de "Personal innovation"), una semana entera en la que paran por completo todos los proyectos que estén haciendo en ese momento para hacer... lo que le dé la gana a cada uno. Así, tal cual, lo que sea que le interese. Las únicas reglas son usar software libre para el desarrollo, y tener algo enseñable para una demo el Viernes.

La PiWeek tiene vocación abierta, y por tanto admite gente que no sean empleados de Kaleidos, ya sean individuos o empresas. El caso es que a mi me quedaba todavía una semana de vacaciones, sin ningún plan concreto, y de hecho tenía pensado dedicarla a este proyectillo, así que, ¿por qué no presentarme a la PiWeek, y así por un lado obligarme a hacer algo y por otro poder compartir proyectos con más gente?. Dicho y hecho, el Viernes anterior a la PiWeek se presentan propuestas de proyectos para formar equipos... y allí estuvo Picross.

Yo ya conocía a unos cuantos de Kaleidos, sobre todo a través del grupo de usuarios de Groovy Madrid GUG, pero la semana me dio la ocasión de charlar con todos, y la verdad es que es una gozada, en general son gente muy preparada y sobre todo derrochan pasión por la tecnología y el desarrollo. Entre los proyectos que se presentaron a la PiWeek había algunos como un clon de Twitter usando Redis y Spring integration, un visor de comics Android con detección de viñetas, un plugin de Chrome capaz de capturar pantallazos como GIF animados, un traductor de Python a Javascript (bautizado como CobraScript) o un aplausómetro hecho en Arduino, junto a otros más... rarunos, como un MUD hecho en Eiffel o una librería que permite crear parsers en Clojure. Salieron un montón de proyectos, pero todos tenían algo que contar. El ambiente que se crea durante la PiWeek es impresionante.


Haciendo el juego

Y llegó el momento de ponerse con el juego. Las primeras sensaciones con Dart son muy buenas, no es un lenguaje ni unas herramientas a las que estés acostumbrado, no son ni mucho menos tu "zona de confort", pero tanto las herramientas como el lenguaje y las librerías resultan cómodos e intuitivos. Esperaba encontrarme con alguna característica del lenguaje que echara de menos (el típico "no me puedo creer que esto no exista aquí"), pero no encontré ninguna.

Integración de Dart con Javascript
Mi primera intención era hacer un interfaz Dart para una librería Javascript de videojuegos. Después de estar echando un vistazo a unas cuantas me decidí por MelonJS, ya que había oído hablar bien de ella y era más pequeña y ligera que otras como Cocos2D. Después de varias pruebas básicas que aparentemente funcionaron, fui creando clases "proxy" que intermediaran con la librería, usando sólo lo que iba necesitando... hasta que de repente una prueba, justo después de haber hecho un montón de código, dejó de funcionar.

Tras un rato pegándome con ello, descubro que no podía llevar a cabo lo que pretendía. El caso es que Dart permite hacer llamadas a funciones y objetos Javascript sin ningún problema, y de una forma bastante cómoda, convirtiendo colecciones de una manera sencilla. También se le pueden mandar funciones Dart que sirvan de "callback" y se las llame desde JS. Sin embargo, la integración tiene una limitación importante, y es que no se puede llamar a objetos Dart desde código Javascript. Esto invalida por completo la posibilidad de usar un framework como es MelonJS, ya que en él todas las entidades del juego se definen como objetos a los que invoca el núcleo Javascript de la librería.

Un día entero perdido con la tontería. Y en realidad es culpa mía, porque lo ponía muy claro en la documentación. Odio los Lunes.

Problemas APIs HTML5
Como había oído que el sonido daba problemas, decidí usar la librería Howler para que ella se encargue de elegir el fichero de audio adecuado según el navegador, poniendo versiones de los sonidos en mp3, ogg y wav. En este caso al no tratarse de un framework no tuve ningún problema para encapsularla en clases Dart. Pensaba que con esto ya conseguiría que los sonidos y músicas sonaran en todos los navegadores modernos pero... craso error. Ni así. El tema del audio en los navegadores es un berenjenal de cuidado. He ido probando en varias versiones y nunca sabes si te va a funcionar o no, a veces incluso versiones del mismo navegador con muy poca diferencia entre ellas. Con Chrome por ejemplo, en Dartium no funciona la música pero sí los sonidos, y lo mismo en otras versiones de Chrome que he probado. Sin embargo, en mi Chrome y la mayor parte de versiones que he probado sí funciona también la música. En Firefox más de lo mismo, aunque aquí a veces me ha ocurrido lo contrario, que funcionaba la música pero no los sonidos.

Rendimiento
La verdad es que hasta ahora no he cuidado nada el rendimiento del juego, ni siquiera dentro de las limitaciones que pudiera tener usando Dart, pero aun así los resultados son curiosos. En Chrome en general el juego parece funcionar bastante bien, al menos en los ordenadores en los que he probado (imagino que en ordenadores antiguos le costará más). Curiosamente, parece que funciona igual de rápido en Chrome, es decir, ejecutando el código compilado a Javascript, que en Dartium, ejecutando el código de forma nativa. En Firefox, al menos en Linux, sufre mucho más, notándose mucha mucha diferencia según el tamaño del dibujo que se intenta averiguar. En Windows me pareció que funcionaba un poco mejor, aunque pudo ser por la máquina.

En el Chrome de mi tablet Android el juego funciona, justita de rendimiento, pero funciona. Parece sufrir bastante en cuanto tiene que usar cualquier sonido, lo cual me hace sospechar que los sonidos pueden ser causantes en buena parte de los problemas de rendimiento. Al final se acabó quedando colgado. En cualquier caso no me parece muy preocupante por el momento, porque como ya he dicho no he mirado todavía nada del rendimiento, y para la versión móvil probaré con el ya mencionado CocoonJS, que espero que no tenga problemas con el sonido (y si los tiene ya les vale).

Imagino que Dart debe estar ralentizando en general todo el código, y de hecho puede que la lentitud en Firefox sea por eso, aunque tampoco me extrañaría nada que fuera sencillamente un tema de rendimiento de las librerías HTML5, que no las veo demasiado optimizadas. Aunque la conclusión principal que saqué de charlas del GameMe5 es que el rendimiento de Javascript es muy muy muy sensible, y un pequeñísimo cambio puede causar de repente un gran aumento en la velocidad. En cualquier caso, en principio para este juego me vale.

Programando en Dart
Esperaba que Dart me diera algún problema: que las herramientas no funcionaran bien, que me encontrara con algún bug molesto en alguna librería, que no encontrara documentación sobre las librerías... Sin embargo, no ha sido así, todo ha funcionado como la seda.

El IDE funciona muy bien. A pesar de tener tipado opcional, hace una buena inferencia de tipos y permite autocompletar, buscar referencias, refactorizar o navegar por las clases incluso en variables sin tipo explícito declarado. Encontré algunos errores en esto, en cuanto a variables de las que de repente es incapaz de inferir el tipo aunque un rato antes sí lo hacía, pero lo considero errores menores e imagino que se arreglarán. También detecta errores de llamada a métodos o propiedades inexistentes, aunque al ser un lenguaje dinámico los marca como warnings en lugar de errores. Hubiera preferido lo segundo, pero me vale, e imagino que en el futuro permitirán esta opción.

Dartium, el navegador que incluye la máquina virtual Dart para ejecutar de forma nativa, funciona también muy bien, y el debugger tampoco me dio ningún problema. Incluso, me encontré alguna sorpresa agradable como que cuando el debugger te muestra los atributos de un objeto, te incluye también los valores de sus getters, es decir, de las propiedades que tenga que se calculan a partir de una función en lugar de devolver directamente el valor de una variable. Esto es comodísimo.

Me encontré muy cómodo también con el lenguaje. Me fastidia el que las reglas de estilo recomienden tabulaciones de dos espacios, que creo que hacen el código menos legible, y al venir yo de lenguajes de tipado estático me costó un rato hacerme a la idea de que no tenía por qué declarar tipos en variables locales (en propiedades de clases y parámetros de métodos yo que tú sí lo haría siempre). Todo lo demás me encantó desde el principio. No eché nada de menos al plasmar un diseño orientado a objetos, tiene sus clases, objetos, clases abstractas, e incluso modificadores de atributos interesantes para el control del código como const y final. Pero sobre todo el lenguaje tiene un montón de "azúcar sintáctico", con comodidades muy importantes como los getters/setters implícitos, las funciones lambda, los parámetros opcionales y/o nombrados en los métodos, los constructores con inicialización directa de propiedades con argumentos, el operador en cascada y el manejo de colecciones.

Las librerías estándar también son muy completas y están muy bien documentadas, existen clases para cualquier cosa básica que se te puede ocurrir a hacer y, también muy importante, se encuentra cualquier cosa muy rápido buscando en http://api.dartlang.org/. Si se quiere hacer algo más especializado (aunque a mi no me ocurrió), también existe un repositorio de librerías en el que es fácil buscar: http://pub.dartlang.org/ y gracias al gestor de paquetes incluido en Dart, pub, usar cualquiera de esas librerías es muy sencillo.

Lo más importante que puedo decir es que olvidé por completo la sensación de que estaba programando para el navegador. Creo que la separación entre programación "front" y "back", aunque tenga cierto sentido, es un poco artificial. Se ha hecho muy necesaria de unos años a esta parte en programación web porque programar para la parte cliente era un infierno, en el que contaba más conocer los truquillos y las compatibilidades en los navegadores que la programación real. Pero eso está cambiando mucho: con jQuery y demás librerías JS nos podemos olvidar de las incompatibilidades en el acceso al DOM, con Bootstrap (como ya comenté en otro artículo) y otras librerías de LESS y SASS nos podemos olvidar en buena parte de los dolores de cabeza con el CSS. Con Dart podemos dar un paso más y olvidarnos de la problemática de Javascript y sus librerías, comenzando a programar exactamente igual a como se hace en la parte back, al menos en mi caso, con un diseño orientado a objetos, con encapsulación, con librerías potentes, con tipado, con las facilidades de un buen IDE...


El resultado

Se puede acceder al juego online en esta direcciónhttps://googledrive.com/host/0B-qqsnsC2gHuS210TnQ4cENGSkk/index.html

Es completamente jugable, aunque sólo tiene 4 niveles y a veces le pasan cosas raras. Esta es la versión que presenté en la demo del Viernes de la PiWeek. Tampoco hay instrucciones, así que lo cuento aquí: botón izquierdo del ratón = negro, botón derecho = blanco (se ve como una X con sombras).

Mi intención es mejorarlo y convertirlo en un "juego de verdad". Se pueden hacer un montón de cosas, como:

  • Añadirle muchas más fases: una de las grandes ventajas (y también alicientes) de este juego es que añadir más fases es tan fácil como añadir un pequeño dibujo pixelado... y si empiezas a tirar del hilo de los juegos retro ¡hay un montón!. Tres de los cuatro dibujos de la demo están hechos así, uno de ellos incluso con un gráfico propio de un mono que era el sello de mi "marca" de juegos de Spectrum, ¡sniffffff!. ¿Reconoces los otros dos?.
  • Mejorar el código, sobre todo el loop principal del juego y la carga de recursos, ya que me basé en el código del taller de Gameme5 y no me gusta mucho cómo les quedó esta parte. Tengo localizada ya una librería para el loop y otra para la carga de recursos, ambas con buena pinta.
  • Versión para móviles (probando CocoonJS)
  • Modo "duelo" multijugador, que me permitiría también probar a hacer un mini servidor en Dart (y reutilizar clases de la parte cliente), y probar los WebSockets.
  • Conectarlo con Facebook y/o Google Play Games.

En definitiva: Dart me ha funcionado muy bien, HTML5 un poco más regular, y sobre todo me ha encantado la experiencia y me lo he pasado muy bien. Y lo mismo... hasta acaba saliendo como resultado un juego de verdad. Permanece atento a la pantalla.

Listas de libros al filo del año y abejas productoras

Las postrimerías del año muriente y los primeros compases del naciente son espacios de tradicional recapitulación, de rosario de cuentas de lo habido en los ámbitos más dispares de la vida. En el literario (asunto que ocupa al escribidor y a buena parte de los lectores de estos Silenos), tal recuento suele hacerse en forma de listas e índices de libros extraordinarios que asoman a los periódicos, los suplementos culturales y otras páginas librescas. Aunque hay juicios que responden al lector singular, ajeno a imposiciones crematísticas, lo habitual es que la proclama de los volúmenes meritorios publicados en el año venga acordada por un puñado de pujantes editoriales, metidas en la harina de la campaña navideña. Hoy, último sábado decembrino de 2013, Babelia y El Cultural de ABC se aplican a ello, desplegando ambos suplementos el marchamo de autoridad de críticos y escritores de varia naturaleza. Llegados a este punto del año nunca recuerdo el título de todos los libros que he leído, hayan sido o no editados en los doce meses precedentes; tampoco creo que, si los recordara, me resultase fácil establecer una pirámide cualitativa. Porque las luces que proyecta la lectura de un libro dependen en buena medida del acogimiento que le dispensa el ánimo mudadizo del lector. Lo cual se evidencia en las relecturas, que siempre traen consigo una nueva valoración asentada en otro tiempo y otro poso cultural. Así me ha sucedido con Madame Bovary, de Flaubert, y Ágata ojo de gato, de Caballero Bonald, releídas ambas más de veinte años después, engrandecidas ambas ante ojos míos tan distintos. Uno se pasa el año leyendo, libando de libros muy dispares, preparando el néctar propio a partir de tantas flores ajenas. Al filo del año cabe preguntarse si hemos logrado algo de ese dulce propósito. Antes que la suma de autores (Tomeo, Merino, Denevi, Zúñiga, Perucho, Olgoso, Benítez Ariza, Benítez Reyes, Rivero Taravillo, Baudelaire, Éluard, Poe, Tizón... son algunos que me vienen a las mientes), valdría más hacer recuento de las lecturas productivas, mientras en el aire de la biblioteca zumba la abeja clásica que cazara al vuelo Marc Fumaroli.

¡Burgos vuelve a vibrar en defensa del aborto libre!

Imagen de la cabecera de la manifestación
Cientos de personas hemos vuelto a salir hoy contra la reforma de la ley del aborto de Gallardón, que hará retroceder los derechos sexuales y reproductivos de las mujeres al franquismo.

La Plataforma por el Derecho al Aborto, de la que Izquierda Anticapitalista forma parte, ha demostrado ser capaz de aglutinar a buena parte de la izquierda en defensa de un derecho tan básico como el de poder decidir libremente y sin intromisones sobre qué quiere hacer cada mujer con su propio cuerpo.

El reto, ahora, consistirá en debatir colectivamente cómo continuar la lucha ahora que la ley ha sido aprobada, y es que no nos van a callar. Ni un paso atrás, ¡ni para cojer impulso!

Un crimen organizado

Olga Rodríguez || eldiario.es

En el mundo hay suficiente comida para que todas las personas dispongan de los alimentos necesarios para gozar de una vida sana y productiva. Esta frase es una cita exacta rescatada de la FAO, la Organización para la Alimentación y Agricultura de Naciones Unidas.

De hecho, según cálculos de la ONU, en la actualidad se producen alimentos para nutrir a 12.000 millones de personas en un planeta habitado por 7.000 millones. Y sin embargo, cerca de 3,1 millones de niños se mueren de hambre cada año y una de cada ocho personas no recibe suficiente comida para estar saludable y poder llevar una vida activa, también según datos de la FAO.
Además, más de 1.300 millones de personas viven con menos de un dólar al día, y casi 3.000 millones lo hacen con menos de 2 dólares. Mientras, los ricos son más ricos. Los 100 multimillonarios más adinerados del mundo poseen una fortuna de 2,1 billones de dólares -200.000 millones más que en 2012-, equivalente al 2,9% del PIB mundial.
En España un total de 30 familias se reparte gran parte del capital. Las 100 mayores fortunas de la Bolsa suman 88.735 millones de euros, un 13% más que en 2012. Mientras, la pobreza infantil en nuestro país afecta ya al 26,7% de los menores de 16 años y la pobreza severa se ha duplicado en pocos años, alcanzando ya a 3 millones de españoles.

Las cifras son contudentes: este modelo no funciona. O, dicho de otro modo, solo funciona para satisfacer la voracidad de una minoría.
El valor máximo del sistema actual es el dinero. Con el beneplácito de gobiernos y organismos internacionales, las corporaciones y multinacionales especulan con lo más básico, los alimentos, decidiendo así quién come y quién no, quién vive y quién muere.

Casi 1.000 millones de personas pasan hambre en el mundo, mientras se desperdician o se retienen alimentos, mientras se especula con su precio, limitando por tanto el acceso a ellos.
Hay en la imposición de aranceles, en el control de los cultivos ajenos, en la especulación de los precios de los alimentos -que, como ocurrió en 2008, puede dejar a millones de personas sin pan- todo un mecanismo que facilita que unos pocos ganen muchos millones de dólares a cambio de que otros se mueran de hambre.

“En los últimos años el precio de los alimentos es muy inestable, es una montaña rusa que dificulta el acceso de las personas más pobres a alimentos nutritivos”, advierte la ONU.
Por eso Jean Ziegler, ex relator de Naciones Unidas para Alimentación y posteriormente integrante del Comité consultivo de Derechos Humanos de la ONU, sostiene que en la actualidad opera una red de crimen organizado responsable de provocar el hambre en el mundo y “asesinatos masivos”.
“Vivimos un orden caníbal del mundo. El mercado alimentario está controlado por una decena de sociedades multinacionales inmensamente poderosas, que controlan el 85% del maíz, arroz, aceite. Estos amos del mundo deciden quién va a morir y a vivir, fijan precios”, denuncia.

A través de mecanismos neocoloniales, a través de la imposición del pago de deuda externa, las grandes potencias y organismos internacionales como el FMI imponen a terceros países políticas y medidas económicas desfavorables para las poblaciones locales y favorables para las multinacionales que buscan nuevos mercados en los que introducir e imponer sus productos, a costa de acorralar cultivos autóctonos e industrias locales.

Esto ha ocurrido también en la Unión Europea, donde algunos países, como España, han disuelto, al dictado de Bruselas, parte de su propia industria, su ganadería, su agricultura, a cambio de ayudas y de un ingreso en la UE cuyos resultados estamos padeciendo ya en nuestras propias carnes.
Si no cambiamos radicalmente de modelo económico, en un cuarto de siglo la desnutrición será un fenómeno inherente a grandes metrópolis como Río de Janeiro, El Cairo o Singapur, tal y como vaticina la ONU. La población mundial alcanzará los 9.600 millones en el año 2050, habrá cada vez más distancia entre ricos y pobres y el hambre “dejará de ser patrimonio de los parias”, porque ya en la actualidad, como denuncian organismos internacionales y ongs, la desnutrición toca en las puertas del primer mundo.

En esta Navidad el fantasma del futuro del cuento de Dickens se presenta claro y definido para anunciar la tragedia y ruina venidera. Nos encontramos en un mundo tendente a una mayor desigualdad social y económica, con menos recursos para garantizar una vida digna a la gente. En España la desigualdad alcanza ya los niveles más altos de la democracia. Esta carrera neoliberal, en la que el Gobierno español participa activamente, limita la atención sanitaria universal y gratuita, favorece la educación de pago mientras maltrata la pública, retira la inversión en la atención para las personas dependientes -mientras pretende obligar a las mujeres a tener hijos con malformaciones- y se niega a garantizar el derecho de las personas a una vivienda, a luz, a una alimentación sana y completa, a la cultura.

Dentro de este panorama, la imposición que el Gobierno ha aprobado para que las mujeres, desposeídas nuevamente ya no de su libertad sino de su propio cuerpo, tengan hijos en contra de su voluntad, es una sofisticada forma de violencia que contribuirá a crear un mundo con más seres humanos sin una vida digna, sin sus necesidades cubiertas, algunos con malformaciones que quizá el sistema sanitario público no pueda atender, e incluso sin el amor y autoestima que todos merecemos para saber exigir nuestro derecho no solo al pan, sino también a las rosas.

Es decir, nuestro derecho a una vida y no a un triste camino de dolor, precariedad y supervivencia.

http://www.eldiario.es/zonacritica/...