Transformar los resultados Electorales a Excel

Continuando con mi experimentacion en Web Scrapping quise realizar ésta con una cantidad de datos importante. La pagina del CNE de divulgacion de resultados electorales. Se organizaron los resultados por Estado y Municipio. Dentro de los municipios se incorporaron hojas para las parroquias, centros electorales y mesas.

Desarrollado en Ruby 1.8 utilizando las librerías Hpricot y spreadsheet-excel

Incluidas las Embajadas y Zonas Lejanas

Dejo aca los comprimidos con la información y el código fuente

Transformar Búsquedas de SF.net en HTML a XML

Realizando un recorrido completo de SourceForge, mientras inventariaba todas las tecnologías listadas relacionadas con Servicios Web, me di cuenta -al llegar a la página 14- que si queria terminar en este año debería haber un mecanismo para hacer eso más rápido. Sin embargo estuve buscando un servicio de SF.net público para obtener el resultado de una búsqueda en el SoftwareMap. No lo encontre, no se si exista, pero en todo caso no lo pude ver.

Me anime, y prepare un script que le entra un documento HTML, en este caso un listado de busqueda de SF, y genera un documento XML basado en tres criterios preestablecidos: nombre del proyecto, enlace y nombre. Asi puedo hacer un script bash para ir página por página y generar xml’s de cada una de ellas y luego transformar el xml en otra cosa más de utilidad.

La desventaja es que sólo funciona para el buscador de SF.net (esta cableado con las propiedades del HTML) pero me resuelve mi problema por ahora. Seria interesante seguir con esta idea incorporando IA, reconocimiento de patrones, etc.

Aqui el código, bastante simple :)

URL de entrada:

http://sourceforge.net/search/?type_of_search=soft&words=web+services

sourceforge extractor de informacion de busqueda

y un extracto de la salida del documento XML

<proyectos>
<proyecto>
<nombre>XML/XSLT Web Services Framework (XWSF)</nombre>
<enlace>/projects/xwsf/</enlace>
<descripcion>Bionanny is a tool for Web Services providers. It allows to monitor other Web Services. It can intercept requests incoming from clients, pass it to the destination Web Service and log number of requests and elapsed time spend by services.</descripcion>
</proyecto>


</proyectos>

Ahora si! – Charla de RubyOnRails en la UCV

La charla de la semana pasada que dimos en la UCV se limitó a Ruby – Aníbal se acaparó el show mostrando lo interesante que es Ruby como lenguaje de programación.

Debido a que hubo una nutrida asistencia a la charla de Ruby y a que no pudimos conversar de RubyOnRails, quedamos en intentar hacerlo en una próxima oportunidad. La cual llegó más temprano que tarde, gracias al Prof. José de Sousa.

La cita es entonces el próximo viernes 02 de Junio en el auditorium de la Escuela de Computación de la Facultad de Ciencias de la UCV, de 11:00 am a 1:00 pm [1], donde estaremos conversando acerca de RubyOnRails e intentaremos hacer cosas “en vivo” con este framework.

La entrada es libre, asi que el que quiera acercarse, será bienvenido.

[1] Se que algunos han expresado su inconformidad con el hecho de que la charla se realice en un horario que “choque” tanto con el horario laboral. Pero es el horario en el que está disponible el auditorium. Si alguien tiene disponibilidad en otro espacio/horario estaremos encantados de repetir la experiencia.

P.S: valga nuestro agradecimiento a los muchachos de UCVLUG y al Prof. Jose de Sousa por la logística de la charla anterior.

150+ iconos estilizados para usar en sus aplicaciones

Navegando por StumbleUpon llegue a esta página que ofrece 150+ iconos listo para usar, me parecio bueno colocar esta reseña por que –como yo– muchos no tenemos ni la experticia ni el tiempo de hacer iconos cuando estamos haciendo las aplicaciones.

http://projects.sublink.ca/sweetie/

¿Mozilla Runtime?

Mas que es un post es una pregunta que dejo en el aire. Con todo esto de aplicaciones XUL, XML y javascript, ¿sera que firefox o mozilla se convertira en un runtime en el futuro cercano para este tipo de aplicaciones?

[disconnect...]

Coloquio Ruby @ UCV

Primera Lámina Presentación El viernes pasado tuve la oportunidad de hablar sobre Ruby, dentro de un ciclo de coloquios de la Escuela de Computación de la UCV. Esperaba que asistieran los profesores y estudiantes interesados en el tema, pero fue una agradable sorpresa contar con la asistencia de invitados fuera de la escuela.

Gracias a los compañeros que difundieron la invitación por la red y a los amigos de La Cara Oscura por realizar un post sobre el tema.

Aunque fue una charla muy, pero muy introductoria (creo yo) sirvió para dar a conocer Ruby y sus características principales como lenguaje de programación. Me hubiese gustado hablar mas de RoR pero el tiempo era limitado y queria enfocarme mas en el lenguaje, su sintaxis, etc… para otra oportunidad sera.

Tambien me gusto la receptividad de los estudiantes que asistieron –casi todos seminaristas o tesistas– y me comentaron que iban a reevaluar la tecnologia a utilizar ahora que para ellos Ruby no era un cuento sino mas bien algo que funciona y como!, dijeron algunos.

A los interesados sobre lo que se hablo en esas dos horas les dejo un pequeño indice de los temas tratados.

  1. Historia, usabilidad de Ruby, características del Lenguaje (OO), Modelo de Objetos, Estructuras sintácticas: clases, instanciación, módulos, condicionales, bucles, nomenclatura. Con ejemplos en vivo.
  2. RubyGems, RubyForge, instalación de gemas
  3. IDEs para desarrllo en Ruby: Mondrian y Eclipse
  4. Ruby Development Tools (Eclipse Plugin), ejemplos prácticos
  5. Ruby-on-Rails. Historia, arquitectura, descripcion del filesystem, ejemplos prácticos: creación de una aplicacion, creacion de un controlador, creacion de una vista. Aplicacion en vivo: BlackJax
  6. Video Rails y Flickr

Saludos pues a todos

Ejercicio 3 (MPI)

int buf[lim]= {27,24,3,8,45,10,50,15,10,11,9,48,69,25,19,29,61,72,93,20};

int buf2[lim];int buf3[lim];int max;
int main(int argc, char *argv[])
{
int n, myid, numprocs, i;int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME]; MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
MPI_Get_processor_name(processor_name,&namelen);
n=lim/numprocs;
MPI_Scatter(buf,n, MPI_INT,buf2,n,MPI_INT, 0, MPI_COMM_WORLD);
MPI_Reduce(buf2,buf3,n, MPI_INT, MPI_MAX, 0,MPI_COMM_WORLD);
if (myid == 0) {//Recorrer el arreglo e imprimir el maximo}
MPI_Finalize();
return 0;
}

Ejercicio MPI

Para aquellos interesados en conocer mas las bondades de MPI (expertos en MPI no continuar) dejo este pequeño ejercicio que simplemente calcula el máximo valor de un arreglo. Pueden instalar el mpich desde esta direccion

http://www-unix.mcs.anl.gov/mpi/mpich/download.html

y ejecutarlo desde su maquina.

Por supuesto que no se va a aprovechar las ventajas de la distribución de los procesos pero para practicar es suficiente.

Este ejercicio forma parte del taller introductorio de instrucciones coperativas en MPI.

Finalmente aca

Transmitiendo desde devlinux.wordpress.com. Waiting for reply…

Predicciones para el 2006

Blake Ross publicó sus 10 Predicciones para el nuevo año. Muy entretenido para aquellos que han visto como se desarrolló la web en el 2005. Vale la pena leerlo.

http://blakeross.com/2005/12/26/my-predictions-for-the-new-year/

Entradas siguientes »