Fermin Lab

:)

Puertas logicas Dominoides agosto 8, 2008

Filed under: humor,programacion — Fermin @ 7:31 am

Me ha parecido genial como ejercicio de clase ^_^

Hoy es VIERNES !!!

via BoingBoing

 

php con conexiones paralelas agosto 4, 2008

Filed under: programacion,web2.0 — Fermin @ 7:53 am
Tags: ,

Llevaba con una semanita intentando saber como hacer peticiones en paralelo en php. Buscaba una manera de lanzar peticiones como procesos distintos, pero no tener que hacerlo desde el cliente con javascript con peticiones Ajax.

Asi que la primera idea fue fork. Una idea buena cuando estas haciendo scripts de modo consola, crons en php etc … ya que cuando desde web haces un fork, se instancia un nuevo apache, y cuando termina el script el apache no se killea … ooooooh estamos jodidos, por eso hay tant controversia con eso.

La segunda opcion fue jugar con el exec, y con la idea de que el servidor web corre sobre un unix. De esta manera generariamos la url que necesitamos y ejecutariamos un metido en un bucle:

$url = "http://www.anibalk.es/quitarropa.php?ropa=$ropa";
exec("links -source $url & > /dev/null");

Por ejemplo, de esta manera nuestro servidor haria las peticiones, aunque no seria bastante complicado recoger las respuestas que devuelve las peticiones.

Asi que me encontre con este articulo en sentidoweb.com que hablaba sobre las conexiones paralelas, pero esta vez con curl.

La idea es usar curl_multi_exec y curl_multi_init para lanzar las peticiones. Muy util ^_^

Con los links y un poco de google podreis hacerlo sin ningun problema, eso si, siempre acudir a la pagina de php.net si quereis saber bien que hace cada funcion 😉

Saludos.

 

eXtreme Programming diciembre 5, 2007

Filed under: programacion — Fermin @ 1:08 pm

No, no es programar en un precipicio mientras un mono te tira sus heces.

La programación extrema o eXtreme Programming (XP) , es una técnica de programación documentada y estudiada por la ingeneria del software que se basa en poner por delante la adaptabilidad que la previsibilidad.

¿Por que elegir este tipo de desarrollo?
En el entorno que me encuentro ahora necesito entregas rapidas y mejoras rapidas. Es necesario ir implementando pequeñas mejoras iterativamente para obtener un producto rápido y estable.

Esta técnica que muchos hemos “usado” sin saber en la universidad no se basa en hacer las cosas rápido y mal, aunque parezca lo contrario, se basa en planteamientos pequeños para resolver pequeños problemas que necesitemos para nuestro proyecto.
Tampoco podemos hablar de aplicar esta tecnica a un desarrollo pesado y laborioso típico donde tenemos un equipo de mas de 5 personas trabajando a la vez. Hablamos de proyectos de 3 personas (en mi opinión) como máximo, en los que necesitemos ir viendo como evoluciona el desarrollo.

Pros:

  • Nivel de aprendizaje altísimo.
  • Modulacición de pequeños problemas con solución en cortos periodos de tiempo.
  • Refactorización.
  • Perfecto para pequeños equipos de desarrollo.
  • Perfecto para I+D con requerimientos dinámicos.

Contras:

  • Inviable para proyectos grandes .
  • Díficil de coordinar cuando tenemos grandes equipos.
  • Necesitas a desarrolladores espabilados, que no pregunten que busquen respuestas.
  • Demasiadas pruebas unitarias para proyectos grandes.
  • Gran cantidad de módulos.
  • Refactorización.

Y ahora … ¿ por que la refactorización sale en los dos lados ? mas tarde os explico 😉

Fuentes:

http://es.wikipedia.org/wiki/Programaci%C3%B3n_extrema
http://www.extremeprogramming.org/index.html

Editado:
Casualmente leo esto ITERAR en javahispano. Y he de decir que estoy parcialmente de acuerdo con las opiniones que sueltan, supongo que hemos de empezar a dividir las técnicas de programación que podemos usar con el proyecto que vamos a realizar.

Y decir que por supuesto en la vida, se ha de comenzar a desarrollar sin antes diseñarlo en papel o en formato digital.