Portafolio de Proyectos
Diciembre 14, 2006 — Gonzalo Díaz CruzMi Portafolio:
Estos son algunos de los proyectos en que he participado, divididos en públicos y privados según tengo opción de mostrarlos y ordenados por el más reciente. En su mayoría
Públicos
- (2007) gdt.sourceforge.net Proyecto sobre Kit de desarrollo de juegos en C++, multiplataforma y de código libre. Soporta Mallas, Huesos, Panoramas tipo cubo y esférico, Mallas animadas, Texturas, Luces, Movimientos, Sombras dinámicas, audio Openal/Alut, sistema de scripting con Lua, opcionalmente físicas usando Newton SDK. Gestión del proyecto en SourceForge, incluyendo mantenimiento del repositorio SVN, los paquetes publicados, la página web basada en wordpress, y el wiki basado en mediawiki.
Contribuciones:- Arreglo de algunos bugs
- Actualzación de librerías dependientes.
- Gestión del proyecto en Sourceforge
- Implementación de WordPress y Mediawiki
- Documentación generada con Doxygen. Consiste en escribir los comentarios del código fuente en un formato especial, para que Doxygen genere la documentación a partir de ellos.
- Compilación en Linux
- Empaquetado de binarios precompilados en formato .deb (debian, ubuntu).
- (2006) www.promolibros.cl Web de distribuidora Promolibros, sistema de gestión de contenido y catálogo basado en Joomla!. No sólo la instalación del sistema, sino también instalación y configuración de otros componentes, adaptándolos a las necesidades de la distribuidora. Mantenimiento general, edición de los productos, y alguna que otra modificación manual (a nivel de código fuente) en algunos componentes y módulos.Actualización:- Nuevos cambios a mano:Corrección manual de plug- Nuevos componentes/modulos/mambots instalados:
- Parches de seguridad de Joomla al día.
- Parches de seguridad de Virtuemart al día.
- com_security_images: Agrega imagenes captcha a los formularios.
- bot_TagJ: convierte las palabras clave de los artículos en “tags”.
- bot_ socialbookmarkerbot: añade una botonera al pie para enviar los artículos a diversas webs de como digg o del.icio.us
- Nuevos cambios a mano:
- Corrección manual de plugins de terceros para cumplir con XHTML 1.0 + CSS válido.
- (2005-2006) www.mtreceptor.cl Receptor Judicial. Sistema de Información creado en PHP y MySQL. Con capacidad de administrar los datos de las causas, abogados asociados, acceso por nivel de usuario, emitir informes en formato PDF, y además permitir el acceso al abogado para ver los documentos asociados a las causas.Actualización:- Se a agregado un sistema CAPTCHA para fortalecer la seguridad del sitio.
Privados
Estos proyectos no están disponibles al aire o no puedo exhibirlos directamente:
- Nombre código: OpenModular. Será un sistema de administración de contenido escrito en PHP, basado en Zend Framework junto con uno o varios motores de bases de datos. Esta en estado verde (inmaduro, recién comenzando). Por el momento, hay varias ideas principales definidas, aunque no son absolutas, es decir podrían cambiarse por otras ideas si se consideran mejores.
PRIMERA ETAPA:
-
- Que sea Opensource.
- Que todo lo producido (vista HTML) respete los estándares de la programación web.
- En caso de utilizar javascript, con o sin ajax, hacerlo de la manera “no intrusiva”, es decir, sin incluir propiedades extrañas en las etiquetas para capturar eventos y esas cosas que restan accesibilidad.
- Incluiría un sistema de manejo de “paquetes”, parecido a lo que hace Joomla. El objetivo sería que funcione como un administrador de paquetes como los populares apt/yum/pacman/emerge en GNU/Linux, es decir, que reconozcan dependencias, conflictos, o que avise cuales tienen actualizaciones.
- Resolver el problema de las plantillas (temas, diseño, skin, etc…). E l problema es que los sistemas prefabricados caen generalmente en una de 2 opciones:
- Hacer plantillas en HTML, donde el texto variable (el contenido del sitio) se incorpora reemplazando texto, haciendo comparaciones de expresiones regulares, etc… (como con Smarty) que son procesos extenuantes para un servidor web (considerando una eventual demanda alta). Además supone que tanto los programadores como los diseñadores deben adoptar las mismas convenciones o un pseudolenguaje para trabajar, aparte de los lenguajes propios de su trabajo.
- Hacer plantillas con código HTML y PHP mezclado. Si se va a usar el modelo MVC, resulta paradójico que mientras el proceso de programar apunta a separar las capas, finalmente se terminen mezclando variables PHP y otros procedimientos en las vistas. Además, cuando para un programador es fácil leer una plantilla así, es un terror para un diseñador. Y para el programador, es un terror tener que diseñar si no es su fuerte. La ventaja es que se evita pasar por una fase de interpretado extra del texto, aumentando el rendimiento de la aplicación, a costa de su legibilidad.
- La solución propuesta es crear un sistema intermedio, es decir, algo como un instalador o traductor de plantillas. De este modo, para el diseñador resulta transparente el proceso de ver, leer y trabajar con la plantilla en HTML, pero una vez instalada, el sistema trabajaría con variables y procedimientos de PHP sin realizar un doble interpretado. También podría incluírse un editor en linea que conserve el original en HTML que permita editarlo y volver a realizar el proceso de conversión. En este caso, el proceso de interpretado solo requeriría hacerse cada vez que se instala una plantilla nueva o se edita una existente.
- Entendiendo los “Bloques” como los widgets de WordPress o los módulos de Joomla, debería incluirse un panel de administración que permita colocarlos fácilmente en sus posiciones usando Drag&Drop si es posible, sino que igual funcione.
- En el lado del código del servidor, se predefinirían ciertas Posiciones para Bloques, es decir, lugares de la plantilla donde se desplegará tal o cual contenido. Quedará a criterio de los diseñadores de las plantillas en que lugar de la vista ubicarlos, y a criterio de los administradores cuantos Bloques poner en cada posición y en que orden.
- Hacer un instalador, si es necesario usando el administrador de paquetes. Aunque en primera instancia pareciera no ser necesario.
- Empaquetarlo, hospedarlo y distribuirlo.
SEGUNDA ETAPA, entendiendo como “añadidos” a cualquier elemento tal como componentes, módulos, plugins, temas, bloques:
-
- Hacer una campaña en la web para proponer su uso.
- Crear documentación para que terceros desarrollen añadidos, etc…
- Crear añadidos básicos o de alta demanda, como un blog, galería de imágenes, vitrinas de productos, subir fotos, …
Interesados por favor comuníquense en el formulario de Contacto.
- Cargador de archivos y mensajes, clasificados por categorías y con permisos grupales jerárquicos (el cliente decidió no revelar su nombre). Además, durante el desarrollo, solo conté con acceso limitado al código, por lo cual no dispongo de él completamente.
- Basado en Zend Framework (a petición del cliente).
- Permisos jerarquizados sobre los grupos, es decir, miembros de un grupo superior tienen control para subir archivos en su grupo o sub-grupos que dependan de él.
- Clasifica por “etiquetas” (tags) cada subida.
- “Slideshow”. Las imágenes subidas pueden ser exhibidas en un “player”basado en ajax, usando el efecto “lightbox” para las transiciones.
- Las miniaturas de las images pueden ser ajustadas para incluir reflejos, sombras, y marcas de agua en las miniaturas de ser necesario.
- Permite bajar los archivos subidos, pero solo a los miembros de un grupo con permiso.
- Lógicamente, un administrador puede acceder a todos los grupos.
- Sistema de mensajería similar a un blog, incluyendo sistema de comentarios, pero con menos características que un blog (por ejemplo, no usa rss ni xmlrpc). Trabaja con los mismos permisos de jerarquías sobre los grupos.
- Soporta mensajes “globales”, es decir, mensajes que ven todos los usuarios (solo pueden se posteados por administradores)
- Manejador de Tienda (Sin nombre, proyecto propio en desarrollo, pero funcional). Es un sistema de Información creado en PHP, JavaScript, Ajax y MySQL. Características:
-
- Inicio de Sesión protegido por una imagen CAPTCHA.
- Maneja una lista de productos, nombre, código, precios, etc.
- Maneja la información de los clientes.
- Guarda información de ventas por pedido, es decir el valor total pagado por el pedido, los productos, y que cliente hizo la compra.
- Imprime cupones de cada pago de la venta (puede ser más de uno en )
Características de la programación:
-
- Programado como web modular
- Escrito de tal forma que el diseño y la programación están completamente separados. Tratando de apegarse al modelo MVC.
-
- Ocupa el motor de plantillas Smarty.
- Ocupa la clase FPDF para generar los cupones.
- Algunos formularios funcionan con Ajax.
Características diseñadas aun no implementadas 100%:
-
- Refundir 2 o más pedidos en una sola venta. Por ahora los formularios no lo permiten, pero si la base de datos.
- Editor de cupones. Tal vez sea mejor implementar alguna forma de integración con generadores de reportes.






