Al fin la facultad fue útil
Luego de tres años de estar en la facultad, siempre pensé que todo lo que aprendí ahí no me serviría para la vida, aunque suena un poco arrogante, pero la verdad es que pensarían lo mismo si sólo algunos profesores de los 25 profesores que me enseñaron, valen la pena. Esto es un simple comentario personal, y le moleste a quien le moleste es la verdad.
En la semana tuve una nueva meta, tener un nuevo mail @apache.org, @php.net, ambos antes de tener 23 años, aprovechando que me quedan 2 años y dos dias ;).
Bueno, me puse manos a la obra, comenzé por el que creía que sería más difícil, por apache (sin desprestigiar a @php.net), y la verdad que no me fué tan bien, pero claro que eso no me va a desanimar. Luego le llego al turno a php, y para eso la manera más fácil para mí y donde me sentiría mas cómodo, fue hacer una contribución en PEAR, y la verdad que mi primer “contacto” con PEAR el año pasado no me fue tan bien, pero por suerte este año me fue mejor de lo que estaba esperando.
Como habrán leído, estoy trabajando en mis tiempos libres en mi proyecto PEAR, una implementación del PageRank en PHP, que podrá ser ejecutada como un solo proceso, o en paralelo en varias máquinas.
El diseño de la clase, es bastante modular, y la persona que desea usarla debería tener una lista de números (fuente->destino), que se puede tener con un crawler, o bien puede ser útil para alguna red social para saber quienes son los “mejores” (más famosos, más activos, etc). usuarios.
Para mis pruebas, hice un pequeño y genérico crawler en PHP (que pronto estará publicado en PHPClasses), e indexé 116.396 páginas, 7.132.973 links, y 23.598.922 “nodos de links” (los intercambios de links origen->destino).
Como sabrán, el PageRank, es un proceso recursivo, que se necesitan iteraciones, osea repetir el proceso del calculado N veces (en el paper dice que ~52 veces fueron suficientes para sus pruebas), también menciona que es un proceso lento.
En mis pruebas, use a MySQL, como repositorio de mis datos, y para mi sorpresa la iteración tardó 2 horas exactamente, lo que significa que tardaría 104 horas (4 días) para calcular el PR de todo mi ejemplo, lo que es un tiempo inaceptable para tan insignificante grupo de páginas. Entonces buscando una solución, me acorde de mis magistrales clases de Sistemas Operativos con el Prof. Carlos Zayas, el capítulo de sistemas de archivos, específicamente la parte de cacheo en memoria, y empecé a desarrollar una capa de cacheo entre el PHP y el origen de los datos (en mi caso MySQL), el primer algoritmo fue el MRU. Alguna vez implementé este algoritmo en C, lo cual fue sencillo gracias a los punteros, pero en PHP me fue complicado, ya que no hay punteros sólo referencias, lo cual es un concepto nuevo para mí (humanware-error), y la solución era peor que la cura. Luego me di cuenta que los datos eran secuenciales, y que pensé que un cacheo usando FIFO sería suficiente, y empecé a codificar.
Para mi sorpresa, el FIFO con un buen tamaño (100MB), es perfecto, de 2 horas por iteración pasó a ser 16 minutos por iteración. Y viendo en los logs, me dí cuenta que el cache respondió a 14.598.272 consultas. Gracias a Prof. Carlos Zayas, mis problemas fueron resueltos.
Espero terminar pronto con este proyecto, por si alguien quiera ver el código, lo puede hacer en mi lugar de juego.








“En la semana tuve una nueva meta, tener un nuevo mail @apache.org, @php.net, ambos antes de tener 23 años, aprovechando que me quedan 2 años y dos dias ;).”
wtf?
que ganas con tener mails en esos dominios => nada
al pedo
Eh.. se nota que no sos informático… ;), pero lo mismo respondo a tu “flameware”, gano el prestigio, de ser el primero de este país con esos mails, lo que significa que voy a estar métido en el Open source enserio, no como algunos “informáticos” tienen por constumbre *solo* hablar de SL.
yo ahora estoy trabajando en donde fué tu primer laburo! tengo 19 y ojala me siga yendo bien! los mejores deseos para vos chera’a!
Cual trabajo? En Internet Design?
y como sabes que vas a ser el primero en el pais con esos mails?
@marcelo
En PHP.net tengo amigos y me consta que no hay nadie de PY, y en Apache.org me imagino.. aparte ahora mismo ctrl-z por un tiempo más.
y cuales son las exigencias paar obtener o poder acceder al uso de algunos de esos emails?
[...] Read more at Al fin la facultad fue útil [...]