Archivo de Julio 2008

Creo que este recorrido ya lo puse una vez…la verdad es que no me acuerdo. El caso es que esta mañana he visto que estaba “nublado”, había boira he decidido coger la bici un rato y hacerme un paseito que no me matase pero tampoco fuese demasiado verano azul.

Al principio se iba mas o menos bien pero cuando han empezado a escampar las nubes bajas se ha puesto un sol que caía con ganas el condenado. El recorrido son unos 40 y tantos km y se puede ver un perfil en las imagenes siguientes.

Alicante - Busot - Campello - Alicante

Bueno, como se puede ver no se acumula demasiada altura pero la verdad es que con el sol, la bicicleta con doble amortiguación y poca agua que llevaba la subida se me ha hecho un poco incómoda. En Busot he descansado un poco en un mirador del que he tomado las siguientes fotos.

De izquierda a derecha ;).

Y por último, cuando se sube arriba del todo a unos pocos metros más de 350 por la CV773 se puede ir hasta Aigües de Busot, aunque esta carretera baja hasta el Mesón de Concha y se continúa por ésta hasta Campello, después, todo ha sido coger la playa y tirar para mi casa. Aunque por la playa he notado la ausencia de agua y he tenido que comprar una botella porque iba seco y empezaba a encontrarme deshidratado, bastante además.

Adjunto también un par de videos tomados durante la bajada…son un poco aburridos porque solo se ve carretera, pero bueno ^^U.



Y eso es todo por ahora :P.

Un saludo!!!!

Comments No Hay Comentarios »

Mi antigua bici.

Mi nueva bici.

Gracias a mis padres por todo lo que hacen.

Comments No Hay Comentarios »

Fuente: PHP Architects Guide to PHP Design Patterns.

El patron MVC (Modelo-Vista-Controlador) divide la aplicación en partes bien diferenciadas, como el nombre indica esas partes se llaman Modelo, Vista y Controlador.

  • Modelo. Encapsula los datos de la aplicación y la lógica de negocio.
  • Vista. Extrae los datos desde el Modelo y los presenta al usuario.
  • Controlador. Es el que se encarga de dirigir el flujo de la aplicación, recibe las llamadas HTTP por parte del usuario y se encarga de traducirlas para el Modelo y la Vista.

MVC se define conceptualmente como tres objetos relacionados entre sí, estos objetos, por cuarta vez, son el Modelo, la Vista y el Controlador :).

El controlador y la vista dependen del modelo ya que ambos interactúan con los datos de éste. Como he dicho antes la entrada a la aplicación se hace a través del controlador quien selecciona la vista para presentar los datos del modelo. En un diagrama de tiempos se verá mejor.

Como se observa el controlador actualiza el modelo y después elige que vista usar la cual recupera los datos del modelo para presentarlos.

En programación web los elementos de MVC están implementados como un conjunto de objetos relacionados estrechamente donde cada conjunto realiza una tarea diferente de MVC. Por ejemplo, el controlador puede estar implementado por varias clases que se combinan para analizar la petición HTTP y determinar la acción deseada que requiere la aplicación. El modelo se puede componer por muchas clases que definan la lógica de la aplicación y la vista normalmente viene definiada por algún tipo de sistema de plantillas como por ejemplo Smarty.

Ahora se va a profundizar un poco más en cada parte del patrón.

EL MODELO.

Como se ha comentado contiene la lógica de la aplicación y los datos que serán mostrados por la vista, por lo que podemos interpretar que es una parte esencial en la aplicación…sin datos ni lógica de negocio no hay aplicación :P.

Está totalmente desacoplado de la responsabilidad de procesar peticiones HTTP. NUNCA se deben unsar $_GET o etiquetas HTML en la parte del Modelo.

El llamado modelo de dominio es una capa de objetos que abstrae la lógica de negocio de los datos y otros problemas. Puede ser clasificado como Simple o Enriquecido.

El modelo de dominio simple tiene a tener correspondencias 1 a 1 entre los objetos de negocio y las tablas de la base de datos. Existen una serie de patrones que ayudan a hacer este mapeo que ya se verán con más detalle. El modelo de dominio enriquecido se compone por objetos usando herencia y demás…la verdad es que este no me queda muy claro así que estaré agradecido si alguien puede explicarlo, aunque investigaré sobre él.

LA VISTA.

Administra todos los aspectos que tienen que ver con la presentación. Extrae los datos del Modelo y los formatea como HTML, XML, Servicio Web, Texto o lo que se nos ocurra. Una manera de saber si se han separado bien las capas es crear varias vistas, lo dicho, por ejemplo XML y HTML.

La vista solo debe recuperar los datos del modelo, no cambiar su estado. Solo lectura. En las vistas se usan dos patrones de diseño, el de plantilla y el de transformación.

El de plantilla usa un fichero de plantilla, normalmente HTML que incluye marcas especiales que se sustituyen por los datos del Modelo cuando la Vista se ejecuta, un ejemplo es Smarty del que ya se hablará en otras entradas.

El de transformación extrae los datos del modelo y transforma esos datos en el formato deseado. La principal diferencia es que con el de plantilla tu partes de un esqueleto que rellenas con los datos y el otro es al reves, comienzas con los datos y de ahí los transformas en la salida deseada.

EL CONTROLADOR.

Lo incluyen la mayoría de los frameworks PHP. El modelo dependerá de la logica de negocio y la vista de motor de plantillas preferido por el programador. El controlador interpreta la peticion HTTP y controla el flujo de la aplicacion seleccionando la acción apropiada a ejecutar o vista que mostrar.

Los Controladores Frontales ayudan a centralizar el control del flujo de la aplicación en un punto en concreto. Esta centralización puede ayudar a entender como funciona un sistema complejo y proveen de un lugar donde insertar codigo global.

Los Controladores de aplicación son controladores que se encargan de las acciones que los frontales pueden delegar en ellos. La principal responsabilidad del Controlador es decidir que tiene que hacer la aplicación ante una petición.

Para realizar estas acciones e implementar un controlador se suele usar el patrón por comandos.

Este patrón encapsula una acción en un objeto para que se pueda parametrizar una petición, encolarla o hacer operaciones como deshacer la acción.

En siguientes entradas se pondrá un ejemplo de separación de capas en una aplicación web.

Salu2.0 :)

Comments No Hay Comentarios »

Los patrones de diseño en programación intentan buscar soluciones a problemas comunes cuando se nos presentan en el desarrollo software. Según Wikipedia son soluciones a problemas de diseño. Para considerarse patrón ha debido de quedar demostrado que es efectivo resolviendo problemas similares en ocasiones distintas.

El hecho de hablar de los patrones en PHP es de manera introductoria y para mí, recordatoria, para después estar más capacitado/s a usar un framework de desarrollo como Symfony o desarrollar uno propio.

Cuando desarrollamos una aplicación debemos adelantarnos a los posibles problemas que pueden surgir en ese desarrollo pudiendo posteriormente solucionar esos problemas con los patrones que como he dicho no son más que soluciones diseñadas por otros a problemas frecuentes.

Cabe destacar que los patrones no son solo cosa de PHP sino que se pueden aplicar a un amplio campo de disciplinas.

Para aplicar patrones tenemos que tener en cuenta el tipo de aplicación que se está desarrollando ya que como cualquier herramienta no hay que usarla siempre simplemente por el hecho de que exista. Una idea principal de los patrones según se comentó en PROWEB el curso que ha pasado es la de añadir flexibilidad a las aplicaciones de manera que a la hora de realizar cambios en la aplicación solamente se hagan allá donde se requiera sin necesidad de ir arrastrando cambios por el código aunque está flexibilidad tiene por contra la desventaja de que se añade complejidad a la arquitectura de la aplicacion debido a que se añaden capas y clases adicionales.

Al final es como todo, la experiencia nos dice cuando se deben usar patrones y cuando no.

Los patrones, principalmente tienes algunas partes importantes para su descripción, los que hemos sufrido Ingenieria del Software 1 lo recordamos, estas partes principales son el Nombre que identifican al patrón, el Problema que pretenden solucionar, la Solución a ese problema y las Consecuencias de su aplicación para el sistema.

A la tarde o mañana intentaré explicar mas o menos el patrón Modelo Vista Controlador que es el que usan la mayoría de frameworks de desarrollo con la ayuda de Proweb, Wikipedia, documentaciones de frameworks y el libro PHP Architects Guide to PHP Design Patterns.

Comments No Hay Comentarios »

Al final no pude escribir la entrada de ayer por falta de tiempo así que hoy hablaré de los últimos tres días de lo que ha sido el curso La web 2.0: retos y tecnologías para la internet de nueva generación así como algunas opiniones, ideas, impresiones y conclusiones.

Si tenemos que empezar por el miércoles lo que destacaría es sobre todo la conferencia de Hector García (Kirai, Un Geek en Japon) en la cual hizo una comparativa del Internet de Japón con el de occidente y la verdad es que fue de lo más sorprendente y divertida, me encantó. Esa conferencia fue la segunda pero a la primera solo pude ir los últimos minutos debido a asuntos familiares por lo que la siguiente, la de después de Kirai habló sobre El papel de las bibliotecas digitales en la educación 2.0 de mano de Pedro Pernias Peco, me gustaron bastante las primeras pinceladas iniciales para introducir la Web 2.0 en la educación y bibliotecas virtuales, la verdad es que el tema de la educación de este tipo y las posibilidades que ofrece es algo que me interesa bastante además se hizo bastante amena.

Por último esa mañana, Kirai de nuevo explicó como funciona un buscador de blogs y dió algunos datos técnicos que la verdad es que estaban bastante chulos.

El Jueves comenzó el día con la conferencia de Angel Maria, CEO de Bubok, sobre los Emprendedores 2.0, explicó los 7 puntos más importantes para intentar emprender un proyecto en Internet y sobrevivir, visto un poco de perspectiva esta conferencia dió un giro al curso el cual ahora comentaré.

Claudio Baccigalupo tomó el timón de las conferencias hablando sobre algoritmos de clasificación de música para sistemas de recomendación, siempre me había preguntado como funcionaba por ejemplo Last.fm. Interesante aunque sinceramente no fue una de las que más me gustase.

Y por último una mesa redonda en la que algunos de los conferenciantes teniendo como moderador a Juan Antonio Perez hablaron, respondiendo a sus preguntas y posteriormente a la de los alumnos si con la web 2.0 se podía vivir además de otros asuntos interesantes todos ellos.

Hoy viernes ha sido el último día y ha sido más light, se nos ha hablado de Ruby On Rails por parte de Ernesto Jimenez Caballero. La verdad es que explicado se ve la potencia de este lenguaje pero es que pienso que muchos frameworks de PHP van en la misma dirección, a facilitar la programación y a seguir la idea DRY (Dont Repeat Yourself).

Luego ha sido el turno de los alumnos que hemos presentado algunos proyectos Web 2.0 que salieron de la votaciones que hicimos a través de la web de la red social del curso.

Mi grupo ha hecho la presentación de Civitos, cuyas transparencias están en la entrada anterior y pienso que la idea del proyecto no ha sido bien entendida por ‘el jurado’ puesto que se ha etiquitado como ONG y bueno, ciertamente está muy lejos de eso el planteamiento. Yo si pienso que se pueda involucrar a la gente en una plataforma online para mejorar la calidad de vida de los ciudadanos y a la vez quien sabe obtener algunos ingresos.

Aquí es donde encaja el giro del que hablaba, el curso pasó una línea de “haz para la gente” a “gana pasta con lo que haces para la gente“, pienso que no es siempre ganar pasta sino que bueno, si se gana pues bienvenida sea, evidentemente si SOLO te quieres dedicar a eso, perfecto, tendrás que tener un plan pero muchas veces quizá haya que empezar por proyectos personales, sobre todo cuando estás acabando la carrera) a los que dedicas tiempo a desarrollar plataformas o software útil para la gente en las que esa gente genera el contenido, mientras tu habrás aprendido, habrás engordado el curriculum y te sentiras satisfecho (o no) de lo que has hecho, el dinero siempre puede venir por otros lados diferentes a los del orgullo de haber intentado cambiar algunas cosas a mejor, todo esto se puede hacer mientras trabajas como desarrollador en otros proyectos en empresas u otros sitios.

Y nada…por último unas conclusiones ofrecidas por Juan Antonio después de realizar una encuesta y una ‘evaluación’ de lo que ha sido esta semana.

He salido bastante satisfecho, a decir verdad.

Le doy de nota al curso un sobresaliente, si se repite, volveré. Agradecer desde este humilde blog a los organizadores Juan Antonio y Domingo el esfuerzo realizado para todos.

Saludos :)

Comments 2 Comentarios »

Comments 2 Comentarios »

Ayer empezó, tal como dije el curso organizado dentro del marco de la universidad Rafael Altamira titulado La web 2.0: Retos y tecnologías para la Internet de nueva generación y por ahora la verdad es que está dejando buen sabor de boca.

Ayer, y tras una introducción de lo que iba a ser el curso dió comienzo la charla sobre los Blogs a cargo de Antonio Ortiz, Director Editorial de la red de blogs WeblogsSL, editor del blog Error500, aunque él dijese que se sentía como un telonero, a mi, personalmente me gustó mucho su charla ya que me permitió ver un poco el panorama de los blogs y como están enmarcados dentro de la Web2.0.

Se continuó con un manual sobre la Web2.0, a mi parecer fue un poco flojilla y quizá en algunos momentos se hacia un poco larga, no obstante me pareció adecuado que se introdujese el concepto por si había gente que no estaba muy puesta, no obstante en este tipo de charlas introductorias o manual se suele decir lo mismo que en casi todos los cursos de Web2.0 a los que he asistido.

Por la tarde ya hubo un taller de Ruby on Rails que más que dedicado a enseñarnos el lenguaje era para ver algo funcional realizado con este lenguaje de programación. El taller, la verdad es que era interesante pero se vió un poco empañado por el calor que hacía en el laboratorio ya que era por la tarde, puerta cerrada durante un buen rato y 45 personas con todos los PCs encendidos. Un poco agobiante. Sobre Ruby on Rails, ciertamente era la primera vez que lo veía y como tal (a parte de haber leido sobre su potencia y haberlo visto in situ) me resultó un poco raro, creo que de momento, me quedo con PHP que con frameworks tan buenos como Symfony se puede hacer lo mismo y con el mismo número de líneas.

Hoy Martes la cosa ha ido de Mashups y redes sociales, esta conferencia ha sido impartida por Carlos Sanchez, fundador y ‘jefazo’ de Nvivo. De nuevo interesantísimo el hecho de ver como ‘arrejuntando’ un montón de servicios puede llegar a salir algo tan útil y funcional para el resto de los mortales.

Después fue el turno de Félix Ruiz, hablando sobre redes universitarias y más concretamente de Tuenti del que es socio fundador. A mi modo de ver ha sido un poco más descafeinada y lo más interesante más allá del concepto de red social, para mí, ha sido como han sabido explotar desde el principio el papel de ‘exclusividad’ por el acceso basado en invitaciones y creo que en gran medida el crecimiento de sus usuarios se debe a eso, lo mismo paso con GMail al principio, era por invitaciones y todo el mundo quería conseguir invitaciones de GMail, pienso que sucede lo mismo, por lo demás, aunque no he accedido a la red, por lo que he visto y leido no es más que una red social más pero enfocada a las amistades ‘reales’.

Y bueno, para acabar la mañana un taller de Ajax para continuar el trabajo de ayer con RoR, sigo prefiriendo bajarme mis librerias y combinar Ajax con PHP.

Eso ha sido todo lo que han dado de sí los dos primeros días de curso, el Jueves comentaré que tal va el Miercoles y el propio Jueves y el Viernes, mis conclusiones y opiniones.

Saludos :)

Comments 4 Comentarios »

Mañana comienza el curso de la universidad de verano Rafael Altamira en la Universidad de Alicante, Estiu 2.0.

La verdad es que en principio pinta bastante bien y se que me dará alguna que otra idea para el proyecto de fin de carrera ya que lo quiero orientar por ese camino, el de Internet y la Web 2.0.

En la web enlazada se puede ver el programa de todo el curso durante toda la semana.

Mañana a parte de la presentación del curso a cargo de dos profesores de Ingeniería Informática que a mí me impartieron en PL y en LPP. El día de mañana parece dedicado a la Web 2.0 en general, las conferencias y talleres van sobre los Blogs, la Web 2.0 y por la tarde a programar en Ruby on Rails que la verdad es que tengo ganas de ver de que va porque nunca lo he tocado, siempre está bien tener un punto de partida.

El Martes será sin duda, y creo, el día que más me gustará, dedicado a las Redes Sociales y Mashups, además de a Ajax (que lo tengo bastante reciente con lo de Proweb).

El resto de días parece una mezcla de todo un poco relacionado con Web 2.0.

Iré comentando aquí que tal se van desarrollando las jornadas y mi punto de vista sobre lo que allí se proponga.

Saludos :)

Comments 2 Comentarios »

INTRODUCCIÓN

He decidido, de cara al proyecto del curso que viene hacer un repaso a fondo de lo que es PHP y de lo que se puede hacer con él, de la mano de los apuntes dados en el curso de PROWEB y del libro “Fundamentos de PHP5″ de la editorial Anaya Multimedia.

Intentaré ser siempre claro y conciso de manera que se entienda.

El asunto empieza desde cero así que para los que más sepan y hayan ido a parar aquí siento que se vayan a decepcionar. Aunque intentaré ir mezclando un poco entre todo, algo ‘más’ avanzado entre lo menos.

Bueno, al tema.

PHP son las siglas de preprocesador de hipertexto y como la gran mayoría sabe es usado, dicho a grandes rasgos, muy grandes rasgos, incluir características dinámicas a los sitios web.

Este lenguaje cuenta entre sus principales ventajas que se deriva de otros lenguajes muy conocidos por lo que para los que hemos programado alguna vez se hace muy fácil de aprender.

PHP se diseñó para convivir con HTML, u hoy en día, con XHTML que viene siendo usado cada vez más. La evolución es clara, partíamos desde la web estática, HTML puro como mero escaparate online y ha ido evolucionando con la incorporación de estas características dinámicas. Cuando se accedía a una web el servidor enviaba al cliente el código HTML y este era interpretado por el navegador  (como sigue haciéndolo) encargado de presentar el código recibido.

Algunas mejoras que se introdujeron sobre HTML fue el Javascript de manera que parte del know-how se delegó al cliente, pero no había manera de acceder al servidor (por ejemplo, acceso a base de datos).

Y llego el modelo de páginas activas, dentro del cual encaja PHP.

Nació con el nombre de PHP/FI allá por 1995 (3 añitos antes de que yo conectase con Internet) por Rasmus Lerdorf a partir de secuencias en PERL y a principios de 1998 apareció la versión 3.0 del lenguaje, la primera similar a las que existen hoy día.

El significado de web dinámica hace referencia a la posibilidad de que el contenido y la estructura de este tipo de webs puede cambiar cada vez que se accede a ellas, por ejemplo, recuperando el catálogo de accesorios desde una base de datos.

Por último, y como fin a esta breve introducción ‘de culturilla’, decir que PHP, como he comentado, se puede combinar con HTML incrustándolo en su código de manera que el servidor cuando interprete el código devolverá al cliente el código HTML generado. Pero PHP no se queda solo ahí sino que con estas últimas versiones puede ser una base sólida para crear aplicaciones web robustas y agradables a la vista combinandolo con otras tecnologías para la interfaz gráfica.

Ya, en la siguiente entrada sobre PHP hablaremos de TCP/IP, HTTP y algo más.

Saludos!

Comments No Hay Comentarios »

Pues ayer salí en plan dominguero con la bicicleta hasta el Maigmó, así que la primera parte del recorrido es igual que el del Martes, sin demasiados incidentes y bien equipado con parches, bomba de aire, agua en abundancia y un bocata que me comí como Dios en el pantano de Tibi.

Aquí dejo la imagen del Google Earth del recorrido así como el fichero para poder descargarlo.

Descarga el recorrido

La ruta, al igual que la del otro día, ronda los 55km y se hace perfectamente en 4 horas siendo amateur como yo y en bastante menos, seguro, estando más fuerte.

La parte ‘dura’ del trazado es la subida al Maigmó, después prácticamente todo es bajada hasta Monnegre y después algunas subidas, pero nada del otro mundo, aunque si las piernas están cansadas igual si quema un poco, pero bueno, estoy aquí, sobreviví y la verdad es que llegué y aún podría haber estado un par de horas más, cansado, pero podría.

Eso sí, no recomiendo hacer el recorrido a la inversa a no ser que se tenga mucho tiempo y muchas ganas de subir pendientes ya que la bajada desde el Maigmó hasta el pantano tiene zonas bastante empinadas y subir eso, la verdad es que tenía pinta de quemar bastante, no digo que no se pueda…solo digo que se puede si se tiene muchas ganas ^^ y piernas de acero junto con una buena bici.

Aquí algunas imagenes tomadas por el camino, y un video de la bajada al pantano, de nuevo disculpad por la calidad.

Saludos!

Comments No Hay Comentarios »