11/20/2007

Parque nacional "La Campana" v2.0

versión 2.0 (y no es Beta !!!)

Tiempo atrás había intentado subir la cima de este cerro, pero una seguidilla de muertes de algunos "turistas despistados" obligaron a cerrar el paso del andinista hasta nuevo aviso.

A finales de octubre, volvieron abrir el sendero con nuevas señales y rocas pintadas, todo esto para que el turista pueda ascender de forma segura.

Recuerdo que fue un día soleado y con poco viento, el ascenso se hizo a un ritmo moderado y descansando cada cierto tiempo. Nos demoramos casi 5 horas en llegar a la "punta del cerro" (ya se donde queda el lugar) pero antes de ese gran acontecimiento, pasamos por diversos lugares, como por ejemplo "La mina".

La mina

Hasta este punto los vehículos pueden llegar, después solo se puede seguir a pié. Vimos toda clase de animales, desde un zorro (medio flaco) hasta un águila (que seguramente se quería mandar un momento National Geografic con el pobre zorro).

Es bonito el ascenso hasta ese lugar, los árboles te protegen de los rayos del sol maligno, el camino es lizo y parejo y hay agua al final de trayecto, se los recomiendo un 100%... pero después, si no tienes bototos (con punta de fierro) quedarás con mas de alguna ampolla o un tobillo lesionado (misteriosamente todos los turistas Chilenos tenían puestas zapatillas y los turistas extranjeros llevaban consigo un buen par de bototos escaladores, ¿Porqué será?).

La cuesta se pone mas difícil, hay mas piedras puntudas en el camino y los árboles pasaron a ser espinos que en ves de protegerte del sol, te rasguñan las piernas y brazos, pero no todo fue penurias ya que iba conmigo mi linda novia ^_^, su hermano, mi hermana y mi cuñado (bueno en realidad es el pololo de mi hermana), atrás quedaron mi abuela, mi madre, mi sobrina y la polola de un tío.

Hasta que llegamos a la placa de Darwin, que! si era mas de lo mimo, rocas y arbustos espinosos !!! y no olvidemos que todavía quedaba una hora mas de ascenso.

Tocando el cielo

Llegando a la cima, uno podía ver como se creaban las nubes frente a tus ojos (no se porque nadie de los que iba conmigo se impresiono por eso), el aire se era mas puro y fresco y se podía ver por un lado (bueno, había que esforzarse un poco) la bahía de Valparaíso y por el otro la cordillera de los andes.

Bonita experiencia, pero la bajada cuesta tanto como la subida, mas si estas con zapatillas T_T

11/06/2007

Creando Conciencia

Por un mundo sin contaminación

Un día pensando en mi futuro (cosa que hago siempre), se me paso por la cabeza llegar un poco mas allá de lo que acostumbro a pensar e imaginé como sería el mundo para los tataranietos de mis hijos.

Pensar en eso es descabellado ¿?... quizás, posiblemente el mundo se acabe a causa de una guerra nuclear, llegue el día del juicio final o algo por el estilo, pero prefiero ser optimista e imaginar que nuestro planeta será "mejor" a de lo que es hoy.

¿Lindo planeta?

En la actualidad, el nivel de contaminación (polución ambiental) es muy elevado por la congestión vehicular, el sol es mas dañino que años anteriores (problema por la capa de ozono, rayos UV a niveles criticos) y la deforestación de bosques es algo común.

Estuve leyendo un artículo, sobre el rechazo a la utilización de la típica bolsa plástica o de papel. Sabían ustedes que las bolsas plásticas se biodegradan en aprox. 600,000 a 1000 años!!! de acuerdo a estudios de la EPA. A mi parecer, creo que es mucho tiempo, y los tataranietos de nuestros hijos no estarán vivos para ver desaparecer una bolsa plástica que arrojamos a la basura el mes pasado.

Oxo-Biodegradación, ¿Qué es?

Leyendo en un blog
, encontré esta tecnología que es aplicada al plástico, se trata de un proceso en el cual poliolefinas convencionales (polietileno, polipropileno, poliestireno) reaccionan con el oxígeno presente en la atmósfera para insertar oxígeno en el enlace molecular del polímero, de forma que este enlace se quiebre y convierta en moléculas polares más pequeñas, en un proceso llamado oxidación. Esta es la primera etapa del proceso, llamada degradación.

Entonces, estos fragmentos, cada vez más pequeños, absorben agua (son hidrófilos), por tanto se genera un ambiente propicio para que se desarrollen y prosperen microorganismos naturales.


¿Solución?

Crear conciencia es un paso, pero ayudar al medio ambiente con acciones y traspasar esas acciones a nuestros hijos como valores es mas útil, ya que así nos aseguramos que los tataranietos de nuestros hijos vivan en un mejor lugar.

11/02/2007

Enfoques de un proyecto

Procesos de desarrollo de software


La imagen superior puede resultar divertida para algunos, y para otros... una realidad. Mi experiencia en "Mega Proyectos" no es muy amplia, he tenido el privilegio de trabajar en proyectos de gran envergadura y que por lo general, la puesta en marcha (implementación) de estos, cuesta más que el desarrollo en sí.


Análisis y especificación de requerimientos

Lo esencial es poder entender lo que realmente quiere el cliente, o en este caso, el usuario final. Para esto se pueden aplicar diferentes técnicas o métodos de captura de información, como por ejemplo, los formularios, encuestas y/o entrevistas.

Para realizar bien el desarrollo de software es esencial realizar una especificación completa de los requerimientos de los mismos. Independientemente de lo bien diseñado o codificado que esté, un programa pobremente especificado decepcionará al usuario y hará fracasar el desarrollo.

...

El análisis y especificación de requerimientos puede parecer una tarea relativamente sencilla, pero las apariencias engañan. Puesto que el contenido de comunicación es muy alto, abundan los cambios por mala interpretación o falta de información. El dilema con el que se enfrenta un ingeniero de software puede ser comprendido repitiendo la sentencia de un cliente anónimo: "Sé que crees que comprendes lo que piensas que he dicho, pero no estoy seguro de que lo que creíste oír sea lo que yo quise decir".



En la práctica, esta etapa (análisis y especificación de requerimientos) tiene que tener una connotación elevada dentro del desarrollo de un sistema, porque no falta el cambio a última hora, o mejor dicho, la típica respuesta...

"bueno sí, se parece a lo que yo pedí en un comienzo, pero le falta esto !!!"
.

10/22/2007

Toda historia nos deja una enseñanza

Blogeando por ahí (en otras palabras, gastando mi tiempo de ocio) encontré una historia bien simpática, que tiempo atrás había escuchado, pero mejor vamos al relato...
En cierta ocasión una joven y pequeña almeja producto de un fuerte oleaje, se golpeo sobre una roca destruyendo por completo su protección, afortunadamente ella sobrevivió, pero de no encontrar pronto albergue moriría producto de las bajas temperaturas del mar.

Así llego muy agotada donde un gran choro zapato y le dijo... "don choro, por favor ayuda me, deje me entrar en su concha para poder salvarme!!", el choro zapato la miró y le dijo "Sal de acá insignificante, que te crees tu que me vienes a molestar!! "

La pequeña almeja se arrastro hasta una gran estrella de mar y le dijo... "Estrellita, por favor cubre me y proteje me, debajo de ti me podre salvar, la estrella ni siquiera contesto y simplemente la ignoro, apunto de morir la almejita llego hasta un picoroco y le pidió por favor que la deja entrar en él, a lo que el picoroco contesto, "como se te ocurre inmunda que voy a permitir que entres aca , sal de mi vista!!!"

Apunto de morir la almejita quedó tendida en una roca, de pronto paso su madre almeja, la pequeña le grito "mamá, mamá, he tenido un accidente deja me entrar en tu concha", la madre la miro y le dijo "no hay problema puedes entrar yo te protegeré".

Esta historia nos deja una enseñanza... "Cuando estés en apuros, y todo el mundo te de la espalda... andate a la CONCHADETUMADRE!!!"

10/17/2007

gEdit, guardar archivos por FTP

Desde hace tiempo (2 años mas menos) vengo utilizando "Ubuntu" como Sistema Operativo, con actualizaciones al día (7.10 Gutsy Gibbon), una bonita interfaz (Gnome) y una que otra chuchería en el escritorio (efectos 3D).

Utilizo Zend Studio para desarrollar sitios web, tiene un excelente soporte para crear, modificar y eliminar archivos y directorios que se encuentran en algún servidor "FTP" o local, pero algunas veces, por "tiempo", edito los archivos con el famoso Midnigth Commander mas conocido por sus siglas como "mc". No es por desmerecer al mc-editor pero de que es feo es feo, además no tiene algunas características de edición que tienen los editores "mas gráficos".

Bueno, como trabajo con Gnome, hay un editor (instalado por defecto) bien pequeño pero poderoso!!!, llamado "gEdit". Este editor tiene de todo, resalta la sintaxis, corrige los errores ortográficos, puede abrir múltiples archivos (maneja el concepto de pestañas), entre otras cosas.

Pero tenía un problema, no podía modificar los archivos que fueran abiertos por FTP, los abría, podía editar su contenido, pero al momento de guardar... paf!!! no me dejaba guardar los cambios y como premio de consuelo, me daba la opción de guardar el archivo en el disco duro local, el problema era de que el gEdit abría los archivos como "solo lectura".

Navegando por ahí (san google), encontré la solución a mis problemas, seguí las instrucciones y ahora tengo soporte para guardar los archivos por FTP.

Los pasos que seguí
  • alt+f2 (Ejecutar una aplicación)
  • ingreso "gconf-editor" y ejecuto
  • busco la siguiente clave (navegando por los directorios), /apps/gedit-2/preferences/editor/save/writable_vfs_schemes
  • y por último, modifico la clave agregando a la lista "ftp"

10/08/2007

Modelo MVC, Modelo - Vista - Controlador


Es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página, el modelo es el Sistema de Gestión de Base de Datos y el controlador representa la Lógica de la aplicación.


Mi experiencia con este modelo empezó hace 3 años mas menos, en un proyecto donde se requería un cambio estructural coordinado y de veloz desarrollo. Este modelo en si es lento (construcción) ya que solo para desplegar el famoso "Hola Mundo" se requiere de un controlador y una vista, pero lo importante es que al utilizar este modelo uno puede desarrollar aplicaciones robustas y escalables.

Existe una infinidad de frameworks MVC para PHP, los mas ocupados por la comunidad son:
Particularmente no ocupe ninguno de estos frameworks, ya que en ese entonces buscábamos uno que ya estuviera testeado y no en fase beta. Se escogió para el desarrollo del proyecto (y con el cual tengo mas experiencia) el framework Phrame, que lamentablemente no tendrá mas mantenciones, ya que el "Team PHP" dejará de dar soporte para PHP4.

Pero en sí, independiente del framework que uno elija, el modelo MVC es el mismo, puede que cambie la forma de crear las instancias de cada capa, o la forma de incorporar plantillas (templates) pero siempre mantendrá el mismo esquema de Modelo - Vista - Controlador.

Veamos con detenimiento la funcionalidad de cada capa

La imagen muestra las 3 capas fundamentales del modelo MVC. Primero se detona un controlador el cual puede o no invocar a un modelo o a una vista o viceversa.

Un ejemplo sería; Un usuario envía datos por un formulario, esta acción detona al controlador "ingresar_datos" posteriormente el controlador deriva estos datos (enviados por el formulario) al modelo "guardar_datos", luego el controlador llama a una vista la cual se encarga de mostrar un mensaje al usuario advirtiendo que los datos enviados fueron registrados.

Esta combinación puede variar en otros casos, un controlador puede llamar a un modelo y este a su vez a una vista o un controlador llama a una vista y este al modelo, personalmente sugiero que el controlador llame aun modelo, este modelo retorne algo, y que después el mismo controlador llame a una vista mostrando lo que devolvió el modelo.
  • Controlador: Este responde a eventos, usualmente acciones del usuario (agregar, modificar, eliminar, etc.) e invoca cambios en el modelo y probablemente en la vista.
  • Modelo: Esta es la representación específica de la información con la cual el sistema opera. La lógica de datos asegura la integridad de estos y permite derivar nuevos datos, en otras palabras es el modelo de negocios del sistema. También es en esta capa donde:
    • La aplicación se conecta con la(s) base(s) de datos
    • Ejecuta operaciones lógicas
    • transacciones entre archivos
  • Vista: Esta capa presenta el modelo (datos) en un formato adecuado para interactuar, mas bien conocida como la capa de presentación o la interfaz del usuario.