Brunoprog64’s Blog

Un blog de Opinión, Software y demás cosas…

Cruzada a favor del Profesor David Nutt

Publicado por brunoprog64 en Octubre 31, 2009

Las drogas son malas. Muy malas. Este es el adagio que se viene oyendo desde hace muchos años por parte de preocupados padres, profesores, ministerios de salud y gobiernos. Inclusive tenemos países como los EE.UU invirtiendo grandes sumas en que la DEA y demás erradiquen de Coca y Amapola, usados además de el consumo propio de las comunidades, a la elaboración de drogas duras como la Cocaína y Heroína.

En definición las drogas son sustancias que alteran el ánimo o su estado psíquico. Entonces el alcohol, el tabaco, el café y demás también pueden y son denominadas drogas, aunque toleradas por la sociedad, porque asumimos que su efecto es menor a sus posibles perjuicios. Por eso rechazamos las drogas duras, porque sabemos o pensamos que sus efectos secundarios son peores que sus supuestos beneficios.

¿Pero qué pasa cuando la ciencia nos dice que algunos de nuestros supuestos son erróneos?

Para explicarlo mejor, veamos este cuadro publicado por la prestigiosa revista de Medicina: The Lancet.

Dependencia y Daño físico de las drogas según Lancet(El artículo de referencia para la imagen está aquí. Lamentablemente mi Universidad y HINARI no tienen acceso al PDF completo, por lo que no lo colgaré.)

Se puede ver que las drogas más peligrosas son la Heroína y la Cocaína. Es irónico, considerando que la Heroína fue vendida al inicio como un medicamento de venta libre para la tos.

Ahora, bueno el tema del post. Leo con indignación en Daily Mail que el Profesor David Nutts fue despedido de su posición de asesor científico contra la lucha antidrogas, por decir que el Éxtasis (MDMA) y el Cannabis (Marihuana) son menos dañinos que el Tabaco y el Alcohol.

Muchos de nosotros pensaremos que esto está bien, porque la función de una asesor antidrogas es la de respaldar la posición anti-drogas por la que se lucha. Sin embargo, esto sólo es válido si hablamos de ideas. Este Profesor, es un investigador y como científico tenía base para decir eso.

Entre otras cosas, está el gráfico de The Lancet. El Alcohol y el Tabaco están por delante del LSD y del Éxtasis. El gobierno no tenía derecho para despedirlo. ¿Recuerdan cuando el tabaco era algo que los propios doctores recomendaban? Pero cuando se descubrió su enlace con el cáncer, aunque se sigue vendiendo se le va demonizando más y cada ves más. Otra cosa es este ranking sobre las drogas más adictivas. (El LSD está casi como último de la lista)

Algún día tal vez eso ocurra con el Alcohol y el cigarrillo en referencia a las demás drogas. A favor del LSD se debe decir no produce adicción y la existencia de papers controvertidos (Por ciertos errores en el método) que lo vinculan con una recuperación de la adicción del alcohol. A favor del éxtasis diré que antes de su ilegalización era usado en psicoterapia (Bajo el nombre de MDMA) para mejorar la autoconfianza e inducir estados de compasión, empatía y perdón.

En contra de ambos, diré que su uso sin regulación es peligroso. En el LSD las alucinaciones podrían provocarnos cometer actos sin medir las consecuencias y se tiene reportes de daños al ADN y malformaciones fetales, y el Éxtasis puede producir hipertersión, vértigo e impotencia sexual. Se le intenta vincular con neurotoxicidad.

El punto aquí no es defender las drogas, sino llamar la atención de cuando la ciencia choca con la política. Es una verguenza que este hombre sea despedido por dar una posición científica y respaldada por ciertas publicaciones de prestigio. Lamentablemente hay intereses ocultos y eso explicaría el súbito cese de este investigador. Mi rechazo a quienes propiciaron este despido.

Y lo repito, no estoy aprobando el consumo de LSD y Éxtasis, sólo estoy mostrando que la opinión de este investigador tiene fundamento científico.

Publicado en Bilis, Opinion, Papers, Personal | Deja un Comentario »

La píldora del día siguiente: Controversia en el Perú

Publicado por brunoprog64 en Octubre 29, 2009

(Advertencia: Lo que voy a decir puede que no guste a todos. Acepto críticas constructivas pero eliminaré cualquier mensaje en el que sólo se me ataque gratuitamente. El que avisa no es traidor)

En el Perú hay una controversia parcial por el tema de la Píldora del Día Siguiente, un método anticonceptivo que se toma después de las relaciones sexuales. La controversia está presente por el efecto que produce la medicación. Se aduce que es abortiva.

Siendo más exactos, el Tribunal Constitucional aduce que la píldora es abortiva, porque impide la implantación del óvulo fecundado. Pueden leer las declaraciones del Tribunal y la Sentencia completa aquí. (Archivo cortesía de la USAT)

El fallo implica que el MINSA no puede distribuir la píldora de forma gratuita y estas deben indicar que tienen efectos abortivos. Este fallo es inapelable, y el gobierno ha pensado no recurrir a la Corte Interamericana de Derechos Humanos para apelar. Sin embargo, dejan abierta la posibilidad de que cualquier organización o individuo las reparta, por lo que la gente las podrá seguir comprando… aunque el MINSA las iba a regalar.

Las reacciones son del todo variadas. Veamos algunas que aparecen en los links anteriores:

Con estos burrocratas el Perú no avanzará mucho, mentalidades arcaicas, abogaditos de pacotilla, burocratas,,, en fin … si pudiera me cambiaría de país. Favuloso¡, como si no fuera suficiente los miles de niños abandonados en las calles producto de embarazos no planificados y hogares destruidos hasta que no mejoremos nuestra educación las píldoras del dia siguiente hubieran sido un medio de ayuda para queesas familias planifiquen sus familias, pero parece que eso no es importante, lastimosamente la iglesia de la edad media pesa mas aquí que una opinión lógica y coherente.

(A favor…)

Te comento que el aborto es asesinato y como tal no se puede legitimar.

¿Que tal sonaria este comentario? Los asaltos se realizan en el Perú lo unico que falta es legalizarlos, deberia ser asi ya que existe mucha pobreza en el pais.

La solucion a la pobreza no pasa por matar a los que nos van a pedir un pan mas adelante sino en educar al pueblo para que se desarrollo, los japoneses hicieron eso despues de la guerra y, bueno creo que tanta pobreza por aca no tienen, o ¿me equivoco?

(Y en contra…)

Todo funcionaba bien, en paz, hasta que Cipriani convencio a Alan Garcìa de suspender la pildora del dìa siguiente, para llevarle al Papa como regalo.
Si Cipriani esta convencido que la pildora es abortiva por que no nos convence que es asì que vengan cientificos expertos en estos temas y que nos demuestren que hace daño. Pero no tiene que predominar la imposición a como de lugar.
Cipriani no controla su estabilidad emocional es conflictivo, en el Perù necesitamos un cardenal màs humano, màs bondadoso, màs humilde, para los europeos Finlandìa, Suecia, Suiza, Noruega, serìa perfecto. Por estos lares necesitamos a alguien que nos acompañe con nuestras carencias tanto espìrituales como materiales, que se nos hable de amor, de paz, de comprensión, de humildad. etc.

(Y un acusación hacia Cipriani…)

La ignorancia instigada y promovida por algunos ministros y el cardenal (qué decir del TC) es supina y atentatoria. Está CIENTÍFICAMENTE DEMOSTRADO por organizaciones mundiales como la OSM, OPS, y el Colegio Médico del Perú que el Postinor-2 NO ES ABORTIVA. ¿Qué otras pruebas quieren?. Seguramente querrán superar los 400 mil abortos clandestinos anuales para que lleguen al millón 800 mil, eso sería bueno para sus señorías, como viven plácidamente de nuestros impuestos y tengan debate hasta el infinito, meten miedo a la gente con el concepto del terrible pecado que es que una mujer dirija libremente su natalidad. Además es una pastilla de emergencia, cuando han fallado los métodos anticonceptivos tradicionales. No creo que a las mujeres “les guste” abortar como dicen histéricamente algunas beatas, o que las adolescentes las tomen como caramelos, como dice otra. La educación empieza por casa (si algunas se quitaran el velo de la ignorancia y la huachafería para no hablar de sexo con sus hijos) Es una cuestión de salubridad simplemente ¿o es que el Cardenal se comprometerá a correr con los gastos médicos de pre y post parto? a darles manutención, educación y trabajo?. ¿o el ministro Rey?

(Y otro todavía más pintoresco…)

Ahora, vamos a mi opinión. (Absténgase sensibles…)

Para empezar, ni rechazo ni celebro la decisión. Por una parte es una pena que se prohibido, pero no faltarán quienes la distribuyan o la vendan por ahí. Y por otro lado es una buena noticia, porque repartir la píldora sin control es una irresponsabilidad tremenda.

Me explico… conozco a mucha gente que practica el sexo sin protección o “a pelo”, “calato” o  como lo llamen ellos, por múltiples razones. Sin embargo, a lo largo del tiempo que los he conocido, he visto de que muchos han cambiado de parecer y han empezado a utilizar los condones, por la seguridad, el precio y demás. Algunos todavían insisten en el sexo sin protección, pero como tienen a la mano la píldora del día siguiente… no pasa nada según ellos.

Si el MINSA distribuyera las pastillas gratis, muchos de los que ahora optan por el preservativo, volverían al sexo inseguro… porque podrían pedir la píldora gratis en el centro de salud y ahorrarse los 5 soles promedio de un condón. (Aquí en Chiclayo he visto condones desde S/. 2.50 hasta S/. 7.50)

El problema de la píldora sería en este caso que esta no previene las ETS. Claro, cualquiera me dirá que no se acuesta con cada mujer que encuentra por ahí, pero aún así. La gonorrea, la sífilis, la clamidia, el VIH y demás pueden ser contagiados y no creo que sea de inteligentes correr el riesgo. Además, como muchos de mis conocidos y yo somos Universitarios… muchos querremos sexo por diversión y las posibilidades del contagio se disparan. Aqui lo más seguro es el condón. Son baratos y se pueden llevar en la billetera. (Conozco un amigo que tiene siempre 2 condones en su billetera… “por si acaso”)

El otro caso más extremo es quienes creen erróneamente que el Coitus Interruptus (El acto de retirar el pene de la vagina antes de la eyaculación) o la “marcha atrás”, es un método anticonceptivo eficaz, aunque la experiencia nos diga lo contrario. No voy a hablar de anatomía, pero existe cierta controversia respecto a las micro-eyaculaciones o fluidos de Cowper que se emiten antes de la eyaculación principal. Este fluido podría contener espermatozoides y según muchos de mis conocidos, este fluido se da poco después de la erección. (Es un lubricante natural)

Lamentablemente muchos prefieren el sexo sin protección, porque la sensación de placer es mayor. (Ya que las terminaciones nerviosas están en el propio pene y no en el látex del condón). No me opongo del todo, pero creo que si se tiene sexo con un desconocido lo más seguro es el preservativo. Si la persona resulta de confiar, se podría relajar la regla.

Ahora, no seamos parciales y digamos que también es un error que no se distribuyan. Todos cometemos errores… o podemos caer en situaciones no esperadas. Por ejemplo, si una persona es violada… puede evitar la concepción ingiriendo esas pastillas. (Aunque no creo que sea su preocupación primordial después de sufrir semejante salvajada) En el caso del sexo, dependiendo de lo que se haga el condón puede romperse. (Común en el caso del sexo anal o ciertas formas “movidas” de sexo común)

Muchos adolecentes además por culpa de una pésima educación sexual, experimentan con el sexo al estilo Boys Empire. (Un manga que trata de jóvenes experimentando el sexo por casualidad o coincidencias bien extrañas. No recomiendo su lectura, salvo que tengas la mente muy abierta). Aquí la culpa la tienen los padres y la escuela por no formarlos adecuadamente, pero de todos modos, se podría paliar un poco con la anticoncepción.

Otro tema importante sería los efectos de no llevar a término un embarazo. Si una persona queda embarazada por un desliz o un momento de pasión, puede tomar anticonceptivos para evitar que eso pase a mayores, porque de darse el caso, ese embarazo sería no deseado con todas las implicancias que tiene.

También he de mencionar que en el Perú, la Iglesia Católica, famosa por oponerse a los anticonceptivos en general, tiene presencia en el gobierno. (Y en la población en general, al ser la religión oficial). No le hecho la culpa a la Iglesia, pero al ser un grupo con presencia, es normal de que tengan gente de acuerdo a sus ideales y que estas se hayan manifestado en este debate.

Ojo, que no digo que la Iglesia tiene congresistas en como tales, sino que influye en la opinión de estos mediante exhortaciones, obligaciones (En el caso de que el político esté en el Opus Dei, por ejemplo) o la gran identificación que pueda tener alguno con la Iglesia.

Dejémonos de opiniones y veamos que dice la OMS sobre la píldora: (Levonorgestrel, para los que les gustan los nombres médicos)

Se ha demostrado que las píldoras anticonceptivas de emergencia (PAE) que contienen levonorgestrel previenen la ovulación y que no tienen un efecto detectable sobre el endometrio (revestimiento interno del útero) o en los niveles de progesterona, cuando son administradas después de la ovulación. Las PAE no son eficaces una vez que el proceso de implantación se ha iniciado y no provocarán un aborto.

Para OMS la píldora no es abortiva. Sin embargo, veamos el prospecto de uno de los fabricantes.

Podría impedir igualmente la implantación de un óvulo, pero es ineficaz si el proceso de implantación ha comenzado.

En este aspecto es dificil decidir. Depende de como pensemos que inicia la vida: Con la implantación o con la fecundación.

Cierto es que desde la fecundación se inicia la división celular que dará inicio al embrión y luego al feto. Pero no siempre los óvulos fecundados logran implantarse en la pared del útero. Desde el punto de vista del derecho… podrían ser una especie de delitos los abortos espontáneos, porque la mujer arroja de sí el óvulo fecundado.

En el punto de vista de la implantación, tampoco es para estar 100% seguro, ya que hay abortos espontáneos con endometrio incluído.

Llamamos aborto a la interrupción del embarazo en el caso del Feto, la cual produce la muerte del mismo. El grupo de células en el que se encuentra el óvulo no ha sido implantado en el momento de tomar la píldora y como da a entender la OMS, aborto se refiere a post-implantación, podemos decir al menos desde el punto de vista de la OMS, que la píldora no es abortiva.

Ah… me olvidaba. La píldora en exceso puede provocar una especie de tumor benigno llamado Adenoma Hepatocelular, según este paper de JAMA (Journal of American Medical Association). Este tumor crece hasta sangrar y si no se trata a tiempo puede ser letal. Ahora, nótese que el paper indica uso en exceso. No es cuestión de tomar la píldora como caramelos, pero tampoco de no usarla por este motivo.

Así que a menos que el Tribunal Constitucional sepa más que la OMS en materia médica… creo que la razón de que podría provocar un aborto no es del todo válida. De todos modos, me parece algo responsable que no se haya autorizado el uso gratuito, porque estaríamos permitiendo a muchos jóvenes una excusa para practicar el sexo sin protección. (El debate habla sólo de distribución, no de educación sexual).

Tal vez con una buena educación sexual en la población, se pueda en el futuro abrir este debate para bien o para mal de los implicados en el tema.

Para concluir, quiero decir que si han visto la película 4 Meses, 3 Semanas y 2 Días, estarán de acuerdo que si el aborto o métodos anticonceptivos son ilegales, las mujeres se arriesgarán a realizarlos en la clandestinidad en muchos casos. Y el resultado es peor que si hubieran sido tratados mediante los profesionales adecuados.

Publicado en Bilis, Opinion, Personal | 1 comentario

Mozilla bloquea el complemento .NET

Publicado por brunoprog64 en Octubre 17, 2009

La imagen habla por sí misma…

Mozilla bloquea .NET

Mozilla bloquea .NET

Tras el reporte en el BugZilla de Mozilla de unos problemas de inestabilidad provocados por componentes .NET, Mozilla ha decidido bloquearlos. Una jugada muy responsable por parte de Mozilla, pero daría a Microsoft razones para quejarse.

Aunque buscando un poco, veo que Microsoft aprobo el bloqueo, según el blog de Mozilla. No queda más que agradecer a Mozilla por esta jugada en aras a la seguridad, aunque debieron dar la opción de activar o desactivar los componentes, porque en algunas versiones actualizadas de Windows este problema ya no está presente.

Y criticar a Microsoft, porque parece que el plugin es instalado silenciosamente vía Windows Update.

Publicado en Bilis, Opinion, Personal, Windows | 1 comentario

Publicando Papers Basura – El caso de SCIgen

Publicado por brunoprog64 en Octubre 13, 2009

Uno de los sueños de todo Ingeniero que postule a trabajos más allá de los operarios y de gestión, es publicar en alguna revista de prestigio para que se vea en su Currículum que es una persona de referencia en su área investigativa.

En Ingenierías, una de las organizaciones que más destaca es el IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) y que genera conferencias en diferentes temas de la Ingeniería cada año.

Tristemente, manejar todo esto a nivel mundial es muy difícil para una organización y se han presentado casos de Conferencias co-patrocinadas por IEEE que han resultado ser verdaderos fraudes. Entre ellas destacar las siguientes lindezas:

  • Una de estas conferencias aceptó un paper que tenía un abstract y 4 páginas de imágenes pornográficas.
  • Un paper generado por computadora que inclusive llegó al IEEE Xplore. Felizmente hoy por hoy, está retirado de la Base de Datos, aunque deberían haber vetado a la Universidad que hizo eso.
  • Un blog muy pintoresco que arremente contra IEEE y los papers basura que acepta en conferencias de dudosa calidad.
  • Un correo de IEEE reconociendo que les metieron un gol con respecto a papers generados por computadora, y pidiendo acciones correctivas.
  • Un correo hacia IEEE donde se les advierte de los irresponsables que registran a sabiendas conferencias con el logo de IEEE para desprestigiar a la institución.

Ya que soy miembro de la IEEE (Miembro Estudiantil) saldré un poquito en defensa de IEEE. Las conferencias son co-patrocinadas por la IEEE, pero la IEEE dedicará sus recursos a velar por la pureza académica de las más importantes. (IEEE no tiene recursos infinitos). Por ejemplo, los casos citados en los blogs son en conferencias terriblemente remotas (En China casi todas). No he oído casos de papers basura colados en Proccedings of IEEE o cualquier otro Journal importante de la organización. Lo cual no significa que la falta de atención de IEEE en estos casos sea preocupante. (Algunos son de 2008, por lo tanto recientes).

IEEE ha respondido creando un comité para detectar y solucionar el problema de los papers basura. Para los preocupados el tema no ha trascendido fuera de ciertos ámbitos, aunque otro grande de la ciencia (Medicina): Elsevier también ha sido involucrado en fraude académico, publicando 6 Journals que eran publicidad de Merck y demás farmacéuticas. Felizmente los Journals no fueron indexados en ningún buscador serio ni tenían web site.

En ningún caso estoy queriendo desacreditar a IEEE, ya que muchas veces por la lejanía de los congresos falsos, no se enteran del fraude sino hasta cuando ya pasó el incidente. Lo cual no significa que los representantes locales de IEEE en dichas regiones no deban ponerse alertas. Felizmente estos eventos no trascienden mucho porque casi todos han sido conferencias realizadas por dudosas organizaciones en China.

Parece que Nagib Callaos y sus congresos son realmente timos. Felizmente IEEE le ha retirado toda financiación hasta donde tengo conocimiento.

Insisto, no estoy desacreditando a IEEE. Estoy dandoles a conocer estos hechos para poder entender lo que voy a tratar a continuación.

¿Y si en lugar de dañar a IEEE… queremos demostrar que algun congreso en particular es uno de pésima calidad académica? No nos atreveríamos a mandar un paper nosotros, porque nuestro trabajo quedaría impugnado si resultara ser verdad.

Entonces tenemos a SCIGen, un software que genera papers automáticamente pero solamente referidos al tema de Computer Science (Ciencias de la Computación). Más de uno podrá divertirse mandando este tipo de papers a eventos difusos y ver si son aceptados o no.

Vamos a hacer una inocentada. Imaginemos a nuestro personaje favorito… el Dr. Heinz Doofenshmirtz queriendo hacer un paper (Si han visto Phineas y Ferb, la ofensa es inmediata ya que Heinz, no es Doctorado, sino tan sólo compró el título a 15 dólares en una feria) y para más INRI… que su co-autor sea Perry. (Agent P, para darle “seriedad”).

Entramos en SCIGen, digitamos los nombres y generamos. Puede que el primero no nos convenza. De ser el caso, iteramos hasta dar con uno que nos guste.

Sustre: Client-Server, Low-Energy Information

Agent P and Dr. Heinz Doofenshmirtz

Para los que quieran reírse leyendo las tonterías que genera el SCIGen, he colgado el PDF que exporta aquí.

Lo más interesante es que SCIGen es software libre… así que podemos bajárnoslo para modificarlo y hacer que genere más lindezas, como por ejemplo papers falsos sobre otras Ingenierías, Medicina y demás. El objetivo final es jugar con el lenguaje natural y demostrar que ciertos irresponsables pueden estar promocionando pseudo-conferencias científicas. Si aceptacen esos papers ridículos… podemos dudar de su prestigio.

Si sospechan que un congreso es un fraude… envíen un paper usando SCIGen y una falsa identidad… y acaben de una vez con aquellos congresos que lo único que hacen es mancilar el nombre de los investigadores… y de extra, gánense la atención de sus iguales por unos días.

Publicado en Bilis, Humor, Opinion, Papers, Personal | Deja un Comentario »

Nostalgia… juegos de antaño

Publicado por brunoprog64 en Septiembre 30, 2009

Este post no debe tener muchas palabras. Imagínense recordado tiempos aquellos… cuando eran niños… o no tan niños…

Kirby's Adventure - Nestopia

Kirby's Adventure - Nestopia

El por pocos tal vez conocido, Kirby’s Adventure, uno de los primeros juegos de Kirby, un personaje de HAL Laboratories. (El juego es de 1993)

Prince of Persia - BSnes

Prince of Persia - BSnes

Y el más conocido por todos… Prince of Persia, una saga que sigue hasta hoy. (Que recuerdos…)

Lamentablemente, los emuladores clásicos como el Nesticle y ZNES ya no corren en mi PC. (Será por tener un Monitor de Aspect Ratio 16:9 y al iniciar se cuelgan, por estar programdos en DOS). Así que la suerte me la vuelve a dar el Software Libre, con dos simuladores:

  • Nestopia, simulador de Nintendo.
  • BSnes, simulador de Super Nintendo.

Disfruten de la nostalgia… mientras puedan. Yo seguiré jugandolos…

Publicado en Opinion, Personal, Windows | Deja un Comentario »

Decidiendo un tema de Tesis

Publicado por brunoprog64 en Septiembre 29, 2009

Tenía una discusión con una amiga acerca de su tema de tesis. La chica estaba llevando el Curso de Tesis I y sin embargo no sabía muy bien que tema de Tesis realizar. El tema es complicado, porque si no decide pronto, pasará el periodo de tolerancia y sería reprobada. Entonces pasé a hacerle ciertas recomendaciones. Curioso que rechazase todas.

Primero decir que en mi Universidad, la USAT, no existen los Proyectos de Fin de Carrera, o implementaciones prácticas de algún tema que sirven para que la persona merezca el título. Para graduarse es imprescindible hacer una tesis.

Bueno… según mi amiga, para que una tesis sea aceptada debe tener lo siguiente:

  • Justificación Académica: Debe ser algo novedoso.
  • Justificación Social: Debe ser útil a la sociedad.

Bueno, podemos ver que cualquier cosa no puede ser tesis. Así que si queremos hacer algo técnico… tendremos que disfrazarlo de algo útil para la ciencia. (Lo es, pero es algo tedioso pasar ciertos controles).

El tema origen de mi amiga era una especie de pulsera que captaba el pulso y tensión cardíaca y los mandaba por la red GSM a un médico. Un título que se me ocurre es “Sistema de Monitorización de Impulsos Vitales usando GSM“. ¿La vialibidad?

  • Académica: Usar el GSM para propósitos de soporte vital y alerta médica. Una información a tiempo podría salvar a un paciente.
  • Social: El uso de los dispositivos puede mejorar la calidad de vida del paciente no ambulatorio y permitirle pasar una temporada fuera del hospital.

El problema, es que la chica se desanimaba del proyecto. Lo entiendo, es algo demasiado ambicioso y tal vez falle algo más. ¿Que pasa si el paciente está ya comprometido? Si a uno le diera una FV (Fibrilación Ventricular) y no es corregida enseguida, se llega a una parada cardiaca. Que interesante sería que un aparato desfibrilara el corazón automáticamente por nosotros mientras llega el paramédico.

Esperen un momento… eso ya existe: Desfibrilador Interno Automático.

Pero aún así sería interesante proponer una forma novedosa de diagnosticar una arritmia o cosas así. Sabemos que una persona esta mal del corazón por su EKG (Electrocardiograma), que son ondas que siguen ciertos patrones. ¿Y si usasemos la Transformada de Fourier o el Reconocimiento de Patrones para detectar condiciones y “zumbar” al paciente? Ya hemos ganado dos cosas en el área académica:

  • Inteligencia Artificial: Reconocimiento de Patrones
  • Procesamiento Digital de Señales: Transformada de Fourier (Análisis espectral)

Lo novedoso tal vez aquí, sería el uso de GSM. En el caso de la justificación social, nada más facil. Este invento de “bajo coste” salvaría vidas humanas. Es un argumento que convence a los jurados.

Pero aún así… no quizo el tema de Tesis. Bueno… el problema es que estos proyectos son muy difíciles de ejecutar.

Vamos a ver algunas ideas “locas” que en mi opinión podrían ser temas de tesis o investigaciones interesantes.

Tenemos el tema de Gestión. Pero no son más que nada aplicaciones a empresas o instituciones de ciertas metodologías ya establecidas. ¿Eso es innovar? Si… para la empresa, se exploran nuevas oportunidades… pero como ya existen, carecen en mi opinión, de importancia académica. Pongo un ejemplo: Aplicar PERT para planificar aplicaciones de entrega de notas en un colegio es interesante y hasta divertido… pero no es novedoso.

En temas como COBIT y Gobernabilidad de las TI no me meto, porque aún no llevo esos cursos y prefiero formarme mejor antes de hablar tonterías. En el mundo de la Minería de Datos, las cosas cambian un poquito. Les pongo un caso:

Por mi Universidad tenemos un lugar llamado “El Hueco” . Es un bar. Lo único que sirven es cerveza sin ningún añadido. Venden bien, pero pienso que se puede mejorar. A la sazón por ahí tenemos pensiones, menues y 3 cevicherías rivals: Jhon’s, Ricomar y Mar Azul. (Personalmente prefiero la primera).

¿No se podría usando Minería de Datos, saber cuales son las posibles preferencias del público universitario para saber que negocios abrir?. Aquí no apoyamos a ninguna empresa, sino que potenciaríamos el desarrollo de la zona y la apertura de negocios, que se traducen a más impuestos para la municipalidad y más obras. (O más dinero para el bolsillo del alcalde, que se yo…). Nuevamente tenemos en el área académicas.

  • Estadísitca y Data Mining
  • Dinámica de Sistemas (Tenemos que simular y predecir el modelo, no vaya a ser que se nos vaya de las manos)
  • E-Commerce (Un sistema unificado de créditos manejado por la Universidad sería alucinante para obtener toda la data en un suspiro)
  • Sociología (De alguna forma tenemos que analizar el comportamiento humano. No se comportan igual en la Universidad Católica, que en la Pedro Ruiz)

Desde el punto social, mejoramos la calidad de vida de la zona.

El título de esa tesis podría ser: “Enfoque multidisciplinario basado en el Data Mining y las Redes Sociales para mejorar la calidad de vida del Sector Primavera” (Donde está mi Universidad)

No se la comenté a mi amiga, pero seguro le sirve. Se lo mencionaré estos días.

Otra idea que se nos puede ocurrir es… ¿Alguno de Uds. le encuentra utilidad a los cursos de Investigación Operativa en su vida personal? (En la empresa todos tienen sentido, pero en la vida de uno)

En mi Universidad son comunes las personas que vienen de afuera de Chiclayo y tienen un presupuesto limitado. Algunos no trabajan y no podrán recolectar más dinero hasta el mes siguiente, cuando sus padres les manden más.

Que tal, si le damos a un sistema ciertos datos de la ciudad y nuestros hábitos para venir a la Unviersidad, consumo (Complemento de la idea de tesis anterior) y de acuerdo al uso de PERT / CPM, Optimización, Programación Lineal y demás, nos de una lista de hábitos para poder estirar nuestro presupuesto al máximo. Le resolvemos la vida parcialmente a varias personas que por muchas razones se meten en líos al gastar sus presupuestos.

Título tentativo: “Aplicación de la Investigación Operativa y el Data Mining para el desarrollo de un Sistema de Planificación de Presupuestos para Universitarios“. Este proyecto tiene inclusive la oportunidad de poder ser portado a la empresa y ser un “boom”.

Desde el punto académico tenemos:

  • Estadística / Data Mining
  • Investigación de Operaciones
  • Dinámica de Sistemas (No debemos permitir que el modelo se nos salga de las manos)

En el punto de la viabilidad social, lo mismo, mejoramos el punto social al permitir ahorro y menos carga económica a las familias. Este trabajo debería tener cuidado en considerar ciertas “exageraciones” en gastos hechos en amigos. Si nos ponemos muy estrictos en el presupuesto y no hacemos vida social, podremos perder amigos y arruinaríamos la fuente de datos de la misma, estudiantes que reporten todo lo que hagan. (Data Mining humano tal vez)

Un tema muy interesante, pero que no serviría como tesis de pregrado por el excesivo nivel que llevaría, sería perfeccionar las Interfaces Cerebro-PC para videojuegos, como los juegos de shooter en primera persona. El problema que tienen las interfaces actuales es que requiere extrema concentración. ¿Hay algún modo de detectar un patrón de pensamiento superficial? Si jugamos, por decir Counter Strike u Open Arena, estaremos más preocupados por la estrategia que por nuestros movimientos. Pero seguimos pensando hacia donde movernos (Para que movamos el mouse o el teclado que usemos). Si lograsemos captar esa onda en específico y usarla… sería una experiencia nueva para los videojuegos de shooting.

(En realidad no sabría que decir. Y si el cerebro es multiplexador. Cuando ejecuto la acción de moverme usando el teclado, envía la orden tan rápido y luego regresa a lo que hacía sin que me de cuenta del cambio. No lo sé. ¿Algún Neurólogo en la sala?)

En el ámbito académico, tenemos al menos que justificar:

  • Interfaz Cerebro-Computador
  • Transformada de Fourier (Análisis Espectral) / Transformada Wavelets
  • Procesamiento Digital de Señales (Filtrado, amplificación)
  • Redes Neuronales (El sistema debe aprender a procesar la señal cerebral, que es diferente por individuo)
  • Videojuegos / Computación Gráfica (De que nos sirve el modelo, si el juego no es realista)

Desde un punto de vista social, está más dificil, porque adrede sólo se puede usar para jugar. Sin embargo mejoras en la técnica podrían mejorar la calidad de vida de personas paralizadas o con derrames cerebrales.

El título tentativo de esta tesis (De Doctorado mínimo) sería “Aplicación de la Intefaz Cerebro-Computador para el procesamiento de pensamientos superficiales” o también “… pensamientos sin necesidad de extrema concentración

Y si utilizamos lo que “sirve” para una cosa, para otra más. Por ejemplo los GPUs gráficos son sólo para cálculos vectoriales y gráficos. ¿Y si usamos su potencia para mejorar el acceso a Bases de Datos? (Bueno, la idea la tomé de esta noticia de IEEE Spectrum) Esto facilitaría el acceso a la información, ya que uno de los cuellos de botella que hay en las bases de datos es cómo responder sin agotar toda la CPU a las miles o millones de conexiones concurrentes.

Un título tentativo: “Aplicación de los GPU de tarjetas gráficas para la mejora de transacciones en Bases de Datos

En lo académico tenemos:

  • Programación de Bajo Nivel (Para sacarle el jugo a los chips de la tarjeta gráfica, sea NVDIA, ATI, etc)
  • Administración de Base de Datos (Quizá tengamos que modificar alguna Base de Datos libre o escribir nuestra prueba de concepto)
  • Computación Paralela (Para el tema de usar CPU y GPU a la vez)

En lo social, podremos decir que se minimza el analfabetismo digital, ya que esto aumenta la velocidad de acceso a la información y hasta decir que evita la contaminación, ya que si un GPU hace el trabajo de muchos CPUs se evita el uso de recursos adicionales.

En realidad el ámbito de la Computación con GPU es muy amplio y prometedor. Podríamos usarlos para muchas otras cosas.

Bueno, esos son temas genéricos, es decir temas que aportan al conocimiento en general. Pero no es raro encontrar este tipo de tesis en las universidades:

Tesis de Aplicación en la Biblioteca Virtual

Tesis de Aplicación en la Biblioteca Virtual

Las puedo llamar tesis aplicativas, porque aplican un conocimiento dado hacia una empresa o institución. El problema que les veo es que no aportan mucho, salvo a la propia institución. Esos son más Proyectos de Fin de Carrera, que Tesis. Pero en fin… si permiten esto también, podemos dejarnos de lo terriblemnte académico y buscar casos más prácticos: (No los justificaré academicamente ni socialmente)

  • Un sistema que nos permita usar biometría para identificar a los trabajadores de una empresa. (Podríamos usar iris del ojo)
  • Desarrollo de un Sistema de Filtro automático de Internet Inteligente (Usando redes neuronales tal vez)
  • Desarrollo de un detector de movimiento basado en webcam.
  • Aplicación de Análisis Estratégico para la mejora en la empresa <X…>
  • Implantación de un ERP para la empresa <X…>
  • Desarrollo de un driver para Kernel Linux (Lo dudo que sea aceptada)
  • Sistema Experto para el diagnóstico de problemas de pronunciación (Hay un proyecto así en la Universidad actualmente)
  • Etc

En fin… hay cosas y cosas. Pero considerando que una Tesis es una presentación para la Sociedad… diría yo que una tesis que no sea taan aplicativa y más inovadora, podría estar bien. El problema es el tiempo, el dinero y sobre todo… de dónde sacar toda la información.

Le propondré las alternativas a mi amiga, aunque no postearé su respuesta.

Publicado en Opinion, Papers, Personal, Programacion | 4 Comentarios »

Exposición de Botnets en el Colegio de Ingenieros

Publicado por brunoprog64 en Septiembre 24, 2009

De una forma un poco accidentada me entero que el Colegio de Ingenieros estaba celebrando una serie de conferencias por el Aniversario de su Capítulo de Ingeniería de Sistemas e Industrial. Ya que vivo cerca del local del Colegio de Ingenieros, decidí darme una vuelta.

(Tengo mi opinión sobre la denominación, pero nos la guardamos para otro post)

El único tema del día era el ponente Ing. Daniel Ivan Domingez, comandande de la FAP, con su tema “Ciberguerra y su planteamiento: El uso de Botnets y el control simultáneo sobre decenas de ordenadores“.

El ponente empezó diciendo que los delitos informáticos son causa principal de pérdida de confianza, pérdida de dinero, operaciones, etc en las organizaciones. Además mencionó que se ha pasado de un modelo de destrucción de información, a un modelo de hurto de información, que es más valioso para quien quiera perjudicar a una empresa.

Luego mostró como un USB con Tecnología U3, al que había convertido en una herramienta de Hacking para recopilar información del PC destino. Lo único que había que hacer, era hacer tiempo con el usuario, para que el programa haga su trabajo. A diferencia de otras ponencias, se demostró el ataque.

Podemos ver una descripción de las herramientas que se utilizan aquí.

(Entre otras cosas que se pueden sacar con ese USB autorun, tenemos hash de contraseñas, la IP, contraseñas WiFi, historial de Mozilla, etc)

Luego mencionó el tema de la ciberguerra. Entre otras cosas, dijo que ahora es más fácil que nunca ordenar ataques a empresas mediante la contratación de BotNets a los administradores de aquellas ilícitas redes de computadores zombis. El punto de encuentro de las 2 partes suelen ser IRCs.

Ser infectado por una BotNet es fácil. Es tan sólo colgar un ejecutable sobre un usuario novato y este se autoinstalará en el PC. Hasta podríamos usar el método U3 de ciertos USB. Según el expositor, no se pueden detectar las botnets por los Antivirus, porque los antivirus realizan “vacunas” para archivos reportados como dañinos por los propios usuarios. Dado que los botnets son silenciosos, nunca son reportados.

Aquí hago un alto y digo que el expositor es muy equivocado. ¿Acaso el ponente no ha oído la palabra ‘Análisis Heurístico’? No pude decírselo en la exposición, pero al menos lo comparto con ustedes. De todos modos, veremos que detectar una botnet no es tan díficil en teoría, al menos.

Bueno, y sin más preámbulo nos mostró un BotNet real llamado RxBot, un BotNet muy completo que se puede obtener en forma de código fuente y configurable por IRC. Puedes descargar el código desde aquí. (Y busca en la lista RxBot)

El software es muy completo. Si deseas saber la lista de funcionalidades, aquí está la lista de sus comandos y un pequeño tutorial.

Luego, el expositor infectó una laptop (Sin antivirus) con el RxBot y entró a un canal IRC donde había configurado su RxBot. Vió el nombre de la máquina infectada entre los “miembros” del canal y comenzó a darle órdenes. (Borrar archivos, abrir navegadores, etc)

Luego mencionó que con miles de esos bots, se podría realizar infecciones en masa y atacar servidores, siendo difícil parar el ataque, por venir de redes diferentes. Eso fue toda su exposición.

Detectando un RxBot:

El ponente decía que detectar un BotNet es muy difíicl, pero viendo el truco que se usa, no creo que lo sea tanto. Entre otras cosas deberíamos revisar:

  • La apertura de un puerto hacia un server IRC
  • Los datos que circulan por dicho socket. Si vieramos cosas que concordaran con la lista de comandos de RxBot, sabremos que algo anda mal.
  • La detección de una sesión IRC con “comandos máquina” como ‘.getinfo’ o cosas así, que no son comunes en una conversación IRC normal.

Entre otras medidas, para contrarrestar a RxBot podemos:

  • Antivirus que detecte firmas o EXEs parecidos a RxBot
  • Filtrado inteligente de puertos
  • Bloqueo total de IRC
  • Firewall estricto
  • Análisis de los datos de los sockets TCP.

El problema, es que también RxBot puede “mutar” para ser indetectable:

  • Ofuscación de código fuente
  • Pasar de usar IRC a usar HTTP y mandar los comandos tipo PHP (algo.com/send.php?cmd=.format)
  • Usar MSN (Lo cual sería tonto, porque es más facil la detección, pero es perfectamente posible, salvo que disfrazemos los comandos como lenguaje natural)

Lo del MSN y el lenguaje natural es sencillo, aunque trabajoso. Supongamos que queremos pedir datos del Sistema. Esto es lo que normalmente usaríamos:

.getsysteminfo

Un poco más “MSN”:

‘hola amigo. Me dicen que compraste nuevo PC. ¿Me mandas la info?’

Y las posibles respuetas:

Windows XP [Service Pack 2]. Intel Celeron 700 MHZ. 800 MB RAM Base. (Versión Bot)

‘Amigo, tengo una PC:- Windows XP [Service Pack 2], con un procesador:- Intel Celeron 700 Mhz y de RAM:- 800 MB’ (Versión Bot-MSN)

Noten que :- no es un Smiley si no un “error” de tipeo, usado para el parseo. Jamás he visto implementaciones así, sólo se me acaba de ocurrir.

En conclusión, una ponencia que prometía, pero que me decepcionó parcialmente porque el ponente no tenía el nivel elevado con el que se le anunciaba.

Publicado en Opinion, Personal, Programacion, Windows | 8 Comentarios »

Si estudias sistemas y no sabes programar, de taxista vas a terminar

Publicado por brunoprog64 en Septiembre 18, 2009

El título tan polémico de este post: “Si estudias Sistemas y no sabes programar, de taxista vas a terminar“, viene cortesía de un amigo mío que lo reitró de su MSN tras recibir un monton de críticas. Transcribimos una: (Censuramos el e-mail por motivos de privacidad)

agraviada@hotmail.com said:
xumas….
se ve q nuna  has stado en una mpresa para q t ds cuenta q hay muchos ing de sistemas q se desempeñan en cosas mucho mas importantes q programar y les va muy bien
hay q sr un poco mas humilds jopoli

La frase ofendió a muchos, pero creo que aunque hiriente, es válida. Y vamos a explicarlo.

Ya hemos dicho en otro post que Ingeniería de Sistemas en el Perú, no se centra en la Dinámica de Sistemas, sino que es un mix de muchas disciplinas que se enseñan en separado en otros países. El origen de esta terrible confusión, tal vez sea la denominación de “Sistemas” a todo lo que sea un Sistema de Tecnologías de la Informacióm, sin diferenciar que tambien pueden existir sistemas que no sean software.

Entonces… ¿Cómo acaban la mayoría de “Ingenieros de Sistemas”? Muchos optan por la programación, al ser el aspecto en el que más se les enfoca en la carrera. Al ocurrir esto o pueden terminar como directores de proyecto o como simples operarios que escriben código. Hay un porcentaje que termina como Analistas de Software, Administradores de Servidores, etc. Pero una gran mayoría termina de programadores.

En el mundo de los Analistas de Software, Jefes de Proyecto y Programadores, me temo que programar sencillamente es de vital importancia para estos trabajadores. Y no porque los Jefes de Proyecto o los Analistas tengan que escribir código, sino porque el conocer ciertos lenguajes de programación les hace poner pies en tierra y pedir criterios y requisitos funcionales y no funcionales realistas. ¿De qué le sirve a un Jefe dirigir a un equipo si les va a pedir imposibles como “desarrollar un sistema de intercambio de Voz sobre IP” para un sistema sencillo, sólo porque el término VoIP impresiona al cliente?

Y ojo, no digo que los Jefe de Proyecto sean así de vanales, pero he visto algunos casos de lo más ridículos alguna vez. Además… se supone que un especialista en Desarrollo de Aplicaciones debe saber al menos escribir una. Porque si sólo sabe “dar ciertas normas”, pero no conoce el mundo del desarrollo personalmente, puede que sus recomendaciones sean técnicamente correctas, pero irrealistas.

Y tal vez otra razón para que alguien sepa programar, es que la programación (Al menos bien enseñada) enseña a pensar y a pensar ordenada y lógicamente. Y esto es muy deseable para la solución de problemas. Veamos un ejemplo:

“Desarrolle un software que sume del 1 al 100 (1 + 2 + 3… + 100)”

Aquí van algunas posibles soluciones:

  • Crear un bucle for que sume del 1 al 100 (1 + 2 + 3…)
  • Usar la fórmula de la sumatoria: n * (n +1) / 2
  • Que escriba directamente “5050″

¿Cuál creen que es la mejor solución?

La primera es la que todo el mundo escogería. Es ordenada, sigue ciertos fundamentos de programación y usa estructuras repetitivas.

¡Pero nooooo! Esa respuesta “técnicamente” correcta no es la mejor. Es la peor respuesta.

Un Analista que jamás haya visto el tema de optimización (Común en cursos de programación de cierta envergadura), no sabrá que sumar del 1 al 100 con un for implica que el computador repita la función “sumar” 100 veces sin ninguna ganancia en velocidad.

Es mucho más fácil usar la función de la sumatoria, que multiplicará y dividirá 2 valores para dar con la respuesta. Como la mayoría de microprocesadores tiene un co-procesador matemático especializado, la ganancia en velocidad será mayor.

(Y para los que digan que multiplicar y dividir se hacen sumando y restando, lo cual es verdad, les diré que el procesador implementa “aceleradores” dependiendo del modelo para realizar automáticamente cierta clase de operaciones)

La tercera respuesta es una estupidez. Es válida prácticamente, pero si cambian los requerimientos (Término común entre analistas), de nada sirve. La segunda sigue siendo la más adecuada, ya que sólo cambia un valor. “n”. En la primera también cambiaría un valor, pero es menos eficiente.

Ahora, para los que trabajen Administrando Servidores, Bases de Datos y demás. La programación también les sirve. Es más fácil y eficiente programar scripts de mantenimiento en lugar de hacer la misma rutina “n” veces que se solicite del departamento.

Vemos que programar (Visto desde un punto de vista más amplio que escribir software) tiene vital importancia en la formación de un Ingeniero de Sistemas y que no saber esto puede conllevar a tomar decisiones erróneas como si fueran las mejores, avalados en una falsa capa de “tecnicismo”.

Así que aunque les duele a muchos, la frase del inicio es perfectamente válida y la repito: “Si estudias Sistemas y no sabes programar, de taxista vas a terminar

Publicado en Bilis, Opinion, Personal, Programacion | 6 Comentarios »

Gráficos estadísticos en Python – El caso del concurso de Phineas y Ferb

Publicado por brunoprog64 en Septiembre 16, 2009

Python sigue siendo un lenguaje que no es muy conocido en el Perú, pero que sigue demostrando que es muy versátil y útil. Justamente me sirvió como co-ayudante para saber las tendencias de un concurso que estoy siguiendo desde hace unos días: El “Phineas and Ferb Cliptastic Countdown” (Algo así como ‘Torneo Cliptástico’, que en realidad no significa la gran cosa)

Explico que es este concurso, para el que no lo sepa.

La serie Phineas y Ferb (De la cual ya hablamos una vez en este blog), está en el mes de Septiembre 2009 en un evento en el que se permite votar por 10 canciones para que sean emitidas en un episodio especial a ser transmitido el 21 de Octubre en los EE.UU (Tardará unas semanas en darse en América Latina por el tema de la traducción).

Ahora bien una cosa que me molesta del concurso es la poca información que se brinda sobre el estado del mismo en la actualidad.

Interfaz de Resultados - Concurso Phineas y Ferb

Interfaz de Resultados - Concurso Phineas y Ferb

Lo malo es que los videos no indican cuantos votos tienen ni de que videos se tratan, por lo que no podemos saber cuantos van votando o cual es el vídeo más votado por si queremos decantar nuestro voto a ese propio video.

Suponiendo que el Dr. Heinz Doofenshmirtz estuviese en este caso, diría algo parecido a esto:

Ah, Perry el Ornitorrinco. Que inesperada sorpresa… y por inesperada digo… ¡Totalmente esperada! [Atrapa al agente de alguna forma] Verás… no logro decidir mi voto en este concurso. Sabes… no indicar estadísticas hace que no se aprecia la popularidad (En este caso la mía) de los mismos y tenga que votar a ciegas. ¿Qué se han creído aquellos que diseñan una interfaz web así, sin ayudas al que vota? Por eso… y para estar un paso más allá que los otros votantes, inventé este “malvado” invento. Contempla… ¡El Generador de Estadísticas XML-dor!”.

Dejándonos de bromas, diré que el Flash debía recibir el “Top 10″ de los videos de algún lado. Ahora esta la posibilidad que solo se envie la gráfica con las imágenes, lo que arruinaría todo plan de poder obtener estadísticas. Un breve análisis con Live HTTP Headers me mostró de que al final de cada votación se llamaba a un archivo .xml. Probé ponerlo en mi navegador y obtuve un resultado como este:

<quiz>

<question>
<text>E.V.I.L. B.O.Y.S</text>

<choice>
<text>option 1</text>
<vote>719930</vote>
</choice>
</question>

<question>

[Siguen más etiquetas]

Podemos ver que han tenido la gentileza de darnos todo cuanto queremos en el XML que luego supongo el Flash parseará y mostrará como la interfaz de arriba. Personalmente hubiera sido más fácil que sólo obtuvieran imágenes, pero bueno… agradescamos que hayan dejado un XML.

Pero si el XML ya fue parseado por el Flash… ¿Que impide que lo parsee yo mismo para los propósitos que yo desee? (En este caso, generar estadísticas). Es aquí donde entra Python y la librería XML.dom.minidom.

Para los entendidos, diré que estoy usando XML.dom.minidom porque el archivo no pesa tanto y no será la gran cosa tenerlo cargado en memoria. Además lo veo más fácil que otras opciones.

Ahora nos queda obtener el XML. ¿De dónde? Bueno, de momento el Live HTTP Headers me muestra el mismo origen:

http://dcquiz.disney.go.com/disneychannel/index?data=true&format=xml&def=dc_phineasandferb_cliptastic&pass=1

Si abrimos esta URL en el navegador obtendremos el .xml que necesitamos. Luego podemos parsearlo y obtener los datos de los votos. ¿Pero cómo los mostramos gráficamente y de manera amena?

Python tiene la librería matplotlib, que no viene con la biblioteca estándar, pero que merece la pena bajársela ya que nos permite posibilidades de gráficos que les serán familiares a los que hayan usado MatLab. Lamentablemente debo decir, que la documentación no me parece  muy accesible para quien no esté familiarizado con Matlab o aplicaciones similares.

Usando matplotlib y parseando XML tendremos este resultado:

Estadísticas con Python y matplotlib

Estadísticas con Python y matplotlib

(Matplotlib tiene una característica muy agradable. Permite una interfaz en la que podemos exportar estos gráficos a .pdf, .png y otros formatos gráficos, lo que hará a la librería muy útil en temas relacionados con la estadística o implementaciones simples de sistemas transaccionales con reportes.)

Personalmente me extraña de que sean miles de votos los que se han de contar. El XML envía esos resultados, así que podría decir que esta serie es muy popular o alguien está votando sin parar de manera automática contra ciertos temas.

(La canción más popular de toda la gráfica es “Backyard Beach” y muy cerca le sigue “Gitchee Gitchee Goo”. Entiendo la popularidad de “Backyard Beach”, porque Ferb casi no habla y en ese episodio lo hace por casi 1 minuto seguido. La otra… es graciosa pero ya está sobre-referenciada en la serie)

Y no nos olvidemos de lo más importante… el código fuente, que como siempre está bajo la licencia MIT. Lástima que sólo dure hasta el 1 de Octubre, cuando la votación acabe y el aplicativo ya no nos sirva.

#-*- coding: utf-8 -*-

# Estadisticas del Concurso "Phineas and Ferb Cliptastic Countdown"
# 2009 por BrunoProg64
# *************************

# Este programa sólo servirá hasta 1 de Octubre, cuando se cierren las votaciones del citado concurso
# al que se puede acceder desde: http://www.disneylatino.com/disneychannel/phineasandferb/cliptastico/index.html

# Programa bajo la licencia MIT.

import urllib2
import numpy as np
import matplotlib.pyplot as plt
import xml.dom.minidom

def main():

	#primero nos bajamos el XML de las estadísticas
	url_qr = "http://dcquiz.disney.go.com/disneychannel/index?data=true&format=xml&def=dc_phineasandferb_cliptastic&pass=1"
	data = urllib2.urlopen(url_qr)

	xml_raw = data.read()

	#creamos una lista de 2 para guardar la data
	nombres = []
	votos = []

	#xml_resp = xml.dom.minidom.parse("index.xml")
	xml_resp = xml.dom.minidom.parseString(xml_raw)

	#el XML del website tiene un campo padre <quiz> 

	tmp = xml_resp.childNodes[0]

	for quiz_structure in tmp.childNodes:

		if quiz_structure.nodeType == quiz_structure.ELEMENT_NODE and quiz_structure.localName == "question":
			#ahora estamos adentro

			for e in quiz_structure.childNodes:
				if e.nodeType == e.ELEMENT_NODE and e.localName == "text":
					#entramos al nodo
					#mostramos el nombre de la cancion
					tname = e.childNodes[0].data
					#print "La cancion actual es: " + str(tname)
					nombres.append(tname)

				#ya entramos al nodo <choice> y buscamos la cantidad de votos
				if e.nodeType == e.ELEMENT_NODE and e.localName == "choice":

					#y tan solo para aseguranos buscamos el nodo que diga 'vote'
					for vt in e.childNodes:
						if vt.nodeType == vt.ELEMENT_NODE and vt.localName == "vote":
							nvotos = vt.childNodes[0].data
							#print "Se ha votado: " + str(nvotos)
							votos.append(nvotos)

							print "El tema '" + str(tname) + "' ha obtenido " + str(nvotos) + " votos"

	#ahora vemos el gráfico
	totitems = len(votos) #deberian ser 20
	ind = np.arange(totitems)
	b_width = 0.35

	plt.subplot(111) #creamos el grafico

	for i in range(0, len(votos)):
		votos[i] = int(votos[i]) / 1000.0

	rects1 = plt.barh(ind, votos , b_width, color='r', label='data')

	plt.xlabel('Miles de Votos')
	plt.title("Status de Votaciones del Concurso 'Phineas y Ferb Cliptastic Countdown'")
	plt.yticks(ind+b_width, nombres)

	plt.show()

if __name__ == "__main__":
	main()

No he encontrado de momento una manera clara de votar automáticamente en este concurso. Tal vez se me ocurra una en un par de días, pero de momento parece que todas las votaciones son de personas legítimas. Lástima que los temas que quiero que ganen están tan lejos.

#-*- coding: utf-8 -*-

# Estadisticas del Concurso “Phineas and Ferb Cliptastic Countdown”
# 2009 por BrunoProg64
# *************************

# Este programa sólo servirá hasta 1 de Octubre, cuando se cierren las votaciones del citado concurso
# al que se puede acceder desde: http://www.disneylatino.com/disneychannel/phineasandferb/cliptastico/index.html

# Programa bajo la licencia MIT.

import urllib2
import numpy as np
import matplotlib.pyplot as plt
import xml.dom.minidom

def main():

#primero nos bajamos el XML de las estadísticas
url_qr = “http://dcquiz.disney.go.com/disneychannel/index?data=true&format=xml&def=dc_phineasandferb_cliptastic&pass=1
data = urllib2.urlopen(url_qr)

xml_raw = data.read()

#creamos una lista de 2 para guardar la data
nombres = []
votos = []

#xml_resp = xml.dom.minidom.parse(“index.xml”)
xml_resp = xml.dom.minidom.parseString(xml_raw)

#el XML del website tiene un campo padre <quiz>

tmp = xml_resp.childNodes[0]

for quiz_structure in tmp.childNodes:

if quiz_structure.nodeType == quiz_structure.ELEMENT_NODE and quiz_structure.localName == “question”:
#ahora estamos adentro

for e in quiz_structure.childNodes:
if e.nodeType == e.ELEMENT_NODE and e.localName == “text”:
#entramos al nodo
#mostramos el nombre de la cancion
tname = e.childNodes[0].data
#print “La cancion actual es: ” + str(tname)
nombres.append(tname)

#ya entramos al nodo <choice> y buscamos la cantidad de votos
if e.nodeType == e.ELEMENT_NODE and e.localName == “choice”:

#y tan solo para aseguranos buscamos el nodo que diga ‘vote’
for vt in e.childNodes:
if vt.nodeType == vt.ELEMENT_NODE and vt.localName == “vote”:
nvotos = vt.childNodes[0].data
#print “Se ha votado: ” + str(nvotos)
votos.append(nvotos)

print “El tema ‘” + str(tname) + “‘ ha obtenido ” + str(nvotos) + ” votos”

#ahora vemos el gráfico
totitems = len(votos) #deberian ser 20
ind = np.arange(totitems)
b_width = 0.35

plt.subplot(111) #creamos el grafico

for i in range(0, len(votos)):
votos[i] = int(votos[i]) / 1000.0

rects1 = plt.barh(ind, votos , b_width, color=’r', label=’data’)

plt.xlabel(‘Miles de Votos’)
plt.title(“Status de Votaciones del Concurso ‘Phineas y Ferb Cliptastic Countdown’”)
plt.yticks(ind+b_width, nombres)

plt.show()

if __name__ == “__main__”:
main()

Publicado en Humor, Linux, Opinion, Personal, Programacion, Windows | Deja un Comentario »

El Paper de la Semana – Edición 01

Publicado por brunoprog64 en Agosto 26, 2009

Pido perdón a mis lectores por el tema de los últimos post que son reflexiones y que se han ido alejando poco a poco del espíritu técnico de este blog. Ando un poco liado con la Universidad y no puedo realmente escribir software “por diversión” ya que el poco tiempo que dispongo se me va entre clases y consultas.

Pero en lugar de comentar y repetir noticias, hay algo que hago a veces que estoy en Biblioteca de mi Universidad. Algún Journal cae en mis manos y tras apuntar el artículo lo busco en Internet y los leo. Pues en este blog haré oportunidad para comentarlos.

No garantizo que la sección esté cada semana, ya que depende de los papers que considere interesantes. En alguna semana pueden haber más papers que en otras. Diciendo esto, comenzemos la sección. Los temás pueden ser de lo más variados… ya que tengo intereses en muchos temas. Si quieren sugerir un paper, comenten por favor.

Paper de la Semana: “Seam Carving for Content-Aware Image Resizing” (Algo así como ‘Redimensionamiento de Imágenes Inteligente’)

Este es un paper presentado en la prestigiosa SIGGRAPH, edición 2007 y posteriormente publicado en ACM Transaction on Graphics. (Transaction es una revista académica que describe técnicas novedosas). No hay necesidad de describirlo… tan sólo una imagen basta para apreciarlo.

Seam Carving según los propios autores

Seam Carving según los propios autores

(Básicamente permite estirar una imagen sin distorcionarla demasiado, como se ve en el caso de la casa oriental en la derecha)

Lamentablemente estos Papers son de pago. Es triste que artículos así deban ser de pago… pero como soy estudiante la Universidad donde estudio, posee cierta subscripción para bajar papers. No puedo facilitar los datos de la misma, pero puedo colgar el Mediafire el paper para ustedes. Como todos los papers… en inglés lamentablemente y en formato PDF.

Muchos ven aplicaciones Photoshop y de Edición de imágenes para este algoritmo de redimensionamiento. En lo personal, con el auge de la HDTV y la falta de emisión en el aspect ratio de 16:4 en el Perú, se me ocurre usarlo para estirar las imágenes cuadradas para que quepan en las dimensiones de un televisor plasma y podamos “disfrutar” un Widescreen de momento, hasta que la televisión HDTV se imponga en el Perú. Veamos un ejemplo:

Imagen de la serie 'Kid vs Kat' en Aspect Ratio 4:3

Imagen de la serie 'Kid vs Kat' en Aspect Ratio 4:3

Esta es una imagen de TV-Rip de una serie llamada ‘Kid vs Kat’ mostrada en Aspect Ratio de 4:3, el estándar de aspect ratio en TV. Con la llegada del HDTV deberíamos esperar que la serie se emita en HDTV. Esta serie si está hecha en HDTV, pero el canal la emite “cortada”. (A diferencia de Japón donde todas las series ya son HDTV y Widescreen). Es hora de aplicar “Seam Carving”.

La imagen anterior, en "Widescreen" mediante Seam Carving

La imagen anterior, en "Widescreen" mediante Seam Carving

La imagen mantiene proporciones en lo que el algoritmo puede (Se nota que la puerta detrás del chico es más ancha), por lo que no remplaza al HDTV. En algunos casos el algoritmo puede empeorar a la imagen, pero en este caso se han respetado las proporciones (En lo que se puede) de Cooper Burtonburger (El chico), ya que no se nota que su cara sea demasiado ancha o sus manos sean más anchas.  El algoritmo trabaja desplazando “elementos” por así decirlo para mantener proporciones.

Las imágenes las manipulé con Fungenschtnizer, una implementación en Python de Seam Carving disponible en Source Forge.

Otra cosa que “Seam Carving” posee es la capacidad de eliminar elementos de una fotografía sin notarse siquiera que hubo manipulación. Veamos con una imagen sacada del propio paper, que recomiendo que bajen, porque para algo lo colgué.

Remover objetos con Seam Carving

Remover objetos con Seam Carving

Esto realmente no es novedad, ya que existen algoritmos anteriores que presentan iguales características. Véase el caso de “Vector-valued regularization PDE’s for Image Processing” que no recibe el “paper de la semana”, no por su falta de calidad, sino porque su sitio web está caído y desaparecido. Sólo lo pude recuperar accediendo al Internet Archive. (Por eso si van al enlace demorará un rato en cargar… es normal). Sin embargo el paper no esta en el Internet Archive. Así que tras un rato de búsqueda lo cuelgo aquí para ustedes, en MediaFire. (Se referencia otro paper y una Tesis, pero según la web son el mismo trabajo o similares)

Y bueno, de momento no he visto otro paper que pueda sorprenderme como el de Seam Carving. Para los que quieran probarlo, ya existen plugins para GIMP y para Photoshop que implementan dicho algoritmo.

Leanos la otra semana para ver si hay algún paper “interesante”. Si ustedes quieren recomendar uno en particular, sugiéranlo en los comentarios.

Publicado en Linux, Papers, Personal, Programacion, Windows | Deja un Comentario »