Archivo de la categoría ‘Esenciales [Desarrollo Web]’

Piwik sistema completo de estadísticas de libre distribución

Por fin recupero la rutina y hoy os recomiendo un completo sistema de estadísticas similar a google analytics, con una diferencia muy importante: como es código de libre distribución puedo modificarlo, y sé lo que sé hace con las estadísticas.

El sistema es muy sencillo de instalar y nos permite tener varios sitios ya que utiliza una cookie para almacenar las estadísticas. La instalación es muy sencilla:

Lo descargamos -http://piwik.org/latest.zip

Lo descomprimimos, lo subimos vía ftp al alojamiento y seguimos las instrucciones de instalación.

Nos permite la configuración de permisos para cada usuario, y las estadísticas a las que tienen acceso, además todos los módulos del tablero son configurables, sin duda una alternativa al arcaico awstats y sobre todo a google analytics de gran hermano.

Dispone de un plugin para joomla 1.5 que nos permite implementarlo en un sitio joomla sin tener que insertar el código en cada página, ni siquiera en la plantilla.

Una maravilla, y sino me gusta pues accedo al código y lo cambio!

Aquí podéis ver una demo del aspecto:

http://piwik.org/demo/index.php?module=CoreHome&action=index&idSite=1&period=day&date=yesterday#module=Dashboard&action=embeddedIndex&idSite=1&period=day&date=yesterday

Aquí podéis descargar el plugin para integrarlo en sitios joomla.

http://www.artd.ch/artd-webdesign-s-blog/compiwik-a-piwik-integration-to-joomla-15.html

http://joomlacode.org/gf/project/piwikjoomla/frs/

Formulario de contacto ajax utilizando lightform

Cuando creamos un sitio web,  una de las secciones “santísima trinidad”* es la de contacto. Obviamente no podemos ponerle barreras al usuario si se quiere poner en contacto con nosotros, utilizar un enlace a una dirección de correo implica que el usuario que por lo general utiliza un correo de webmail, tenga que configurar un cliente de correo o copiar y pegar esa dirección.

Además publicar una dirección de correo electrónico en una web (un mailto:) es un caramelo para bots de SPAM, cuando rastrean la web.

Para realizar un buen formulario de contacto:

  • Simplicidad: si hay campos obligatorios explicar claramente el motivo del error poniendo un ejemplo del formato.
  • Brevedad: Requerir el número de campos obligatorios imprescindible. Nombre, asunto, dirección de correo.
  • Alternativas: Posibilidad de elegir si quiere ser contactado por teléfono o por correo electrónico.

Lightform es una excelente extensión para crear un formulario de contacto, como es de libre distribución podemos mejorarlo y adaptarlo, pero es una buena base:

Existe como plugin para WordPress:

http://wordpress.org/extend/plugins/wp-lightform/

Y también para incluirlo en cualquier web:

http://web-kreation.com/demos/LightForm/

Lo instalamos como cualquier otro plugin (podemos utilizar el explorador de plugins de WP)

Insertamos el código LightForm en la página donde se debe mostrar el formulario de contacto.

Este script es el que uso en patripe.com para el formulario de contacto.

*(¿quiénes somos? | ¿dónde estamos? | contacto)

Herramientas LD para profesionales de las TI

Tan importante para una web es tener una buena programación, un buen contenido y un buen diseño, como la máquina en la que se aloja, y la seguridad de nuestro sitio web.

Obviamente no podemos predecir si nuestra página tendrá dos usuarios o diez mil, pero si podemos preparar un plan de contingencia para ello, ya que una página visitada, es un caramelo para hacer spam y  ataques.

Tampoco deberíamos permitirnos el lujo de que el sitio se quede fuera de línea porque simple y llanamente no sea capaz de soportar un pico de tráfico,  por una reseña, o un buen posicionamiento google y entonces se dé lo que venimos en llamar “morir de éxito”. Para comprobar que nuestro servidor, programación y sitio están  en forma podemos utilizar las siguientes herramientas que ha recopilado la gente de kineo open source, para poder realizar una auditoría de seguridad y de calidad del código.

tools

Herramientas para comprobar los servidores, errores sobre las máquinas, pruebas sobre las bases de datos, pruebas de rendimiento, comprobación de enlaces, y otro tipo de pruebas.

Herramientas para verificar la programación dividas por lenguaje de programación.

Sin duda un recurso imprescindible que se merecía una entrada y no un simple enlace.

¿Qué tiene wordpress en contra de mover las imágenes? Va fatal la alineación. Si le pongo espacio horizontal y vertical, todavía es peor.

Gestores de proyectos de desarrollo colaborativos

Cuando estamos creando un proyecto entre varias personas, se hace imprescindible montar un entorno colaborativo.

Existen excelentes programas de libre distribución que nos permiten hacer esto vía web (CMS de gestores de proyectos), de todas las alternativas posibles dependerá el uso que le vamos a dar, mis favoritos:

Gestores de proyectos con controlador de versión de código, y aplicación de tecnologías de programación extremas y/o ágiles como SCRUM, XP, y que nos permiten tanto gestionar los diferentes usuarios, tareas, proyectos, etc…como controlar los cambios realizados en el código, de modo que todos los desarrolladores trabajen sobre el mismo código, y generar un informe sobre quién ha hecho cada cambio, y la posibilidad de recuperar versiones anteriores de ficheros.

logo_collabnetCollabnet svn: Collabnet Subversion.  Integración del ciclo de vida del software, binarios certificados de subversion (asegura que todos los desarrolladores trabajan con la misma versión que la de subversion). Repositorio centralizado de código fuente. Versión para escritorio y multiplataforma.

firstlogofveFVE Project Manager: Integración de tecnologías ágiles y de programación extrema como SCRUMP, XP…Es una versión modificada de dotnet hecha en españa! Incluye también subversion.

Gestores de proyectos vía web sin control de versiones: En esta categoría se encuentran los gestores de proyectos enfocados a la gestión de soporte técnico, y/o herramienta de comunicación con el usuario, y la mayoría disponen de un sistema de incidencias. Todos disponen de creación de grupos, asignación de tareas, creación de roles, control del estado del proyecto, generadores de informes, envío de solicitud de asistencia (ticket…)

phprojekt_logo2

Sobran los comentarios para este sistema. Excepcional, aunque el estilo no está completamente cuidado es fácil modificarlo utilizando plantillas.

phpeasyproject

PhpEasyProject: Sin duda uno de los más prometedores. Múltiples funcionalidad y sobre todo, facilidad de uso, para quienes necesitan un gestor de proyectos, fácil de instalar y de gestionar.

Utiliza el motor de plantillas Smarty, y entre otras cosas permite la exportación de datos a otras aplicaciones mediante xml.

Prueba tus servidores

Una parte muy importante en un sitio web y que se tiene muy poco en cuenta son las pruebas sobre el sitio web, tanto si tenemos un servidor dedicado, o un alojamiento compartido, deberemos comprobar que nuestro sitio aguanta repuntes de visitas, está bien programado, y responde de una manera rápida.

Para hacer pruebas sobre un servidor web, habrá que diferenciar dos partes fundamentales:

  • El rendimiento de la máquina

Para ello tendremos los controladores siempre actualizados con las versiones estables.

Pruebas sobre el procesador, rendimiento de la tarjeta gráfica, tarjeta de red, chequeo de disco duro.

  • El rendimiento de los aplicativos web.

Para ello deberemos hacer pruebas sobre el envío de todos los formularios, comprobación de programación redundante, cierre correcto de las conexiones a la base de datos, eliminación de las variables de sesión transcurrido un tiempo x desde la primera conexión.

Actualización y parcheado del sistema operativo,  software y aplicaciones de terceros.

  • La velocidad de la red.

Debemos asegurarnos un caudal constante, fluido y adecuado al tráfico de nuestro sitio web.

Para ello podemos realizar pruebas, realizando peticiones simultáneas con múltiples usuarios que realicen peticiones constantes al servidor, en diferentes formularios. Esto además de ayudarnos a comprobar la solidez de nuestros aplicativos, comprobará la velocidad de respuesta de la base de datos, carga de memoria, balanceo de aplicaciones…

Estos programas nos ayudan a realizar todo tipo de pruebas automatizadas, son de libre distribución :

Funkload Emula un navegador web (monohilo), con comprobación envío de formularios, funcionamiento de aplicativos web, monitorización de serviedores… Sólo Linux

testmakerTestMaker Test de escalabilidad, funcionalidad y mejora. Se crean agentes que nos permiten emular pruebas inteligentes, como si fuerámos un usuario navegando (multihilo). Buen centro de soporte. Todas las plataformas.

pro_box_med_whiteJblitz Puede hacer pruebas sobre scripts ASP, scripts JSP, Servlets, CGI scripts etc. (Multihilo). Hecho en java, funciona sobre windows. Todas las plataformas, buen entorno gráfico.

Herramientas para depurar errores en un sitio web

Cuando desarrollamos un sitio web es relativamente sencillo provocar errores, aunque utilicemos un editor de programación muy intuitivo, siempre hay una parte que queda a merced del fallo humano: etiquetas mal cerradas, signos de puntuación olvidados, mezcla de lenguajes de programación. Para facilitar la tarea de corregir estos errores podemos ayudarnos de herramientas de depuración, se instalan como extensión en el navegador y !a corregir!

ie_developer

Para internet explorer Microsoft ofrece Internet Explorer Developer Toolbar. Puedes descargar esta herramienta desde el sitio web de Microsoft. En inglés.

web_developerPara Firefox, disponemos de Web Developer. Para instalarlo sólo es necesario pulsar en herramientas –> complementos y buscarlo, aunque también podemos descargarlo de la página de complementos para firefox.

ie_tabOtra opción a tener en cuenta es instalar ie tab para firefox y dejar de usar Internet Explorer, esto nos permite ver las páginas en firefox con el motor de explorer, también nos permite usar la herramienta web developer.

ie4linuxY sin duda mi favorito para Linux Debian es ie4linux que nos permite utilizar internet explorer dentro de linux. Para instalarlo necesitaremos también wine ($sudo apt-get install wine). Esta es una herramienta de desarrollo si utilizas linux, ya que no se puede instalar el complemento ie tab para explorer en firefox si estás usando un sistema operativo linux.

Además estas herramientas nos permiten también depurar las hojas de estilo del sitio web, ya que todas cuentan con soporte para css.

VirtualBox. Virtualizando Sistemas Operativos

VirtualBox es un programa de libre distribución que nos permite tener diferentes sistemas operativos en nuestro sistema operativo. Una de sus mayores ventajas es que es multiplataforma y dispone de instaladores para linux, mac, y windows. Además la descripción de la configuración de la máquina se crea en archivos xml, que permiten sea sumamente sencillo migrar las máquinas. En estos momentos lo utilizo tanto en Windows como en Debian Gnome, me permite tener instalado entre otros: en Windows un debian gnome y un ubuntu, y en debian un windows xp, y un windows 2003 server SP 2. En fin todo sea por que las páginas se vean igual para todo el mundo…También es una interesante alternativa si te piensas pasar a linux y sabes manejar algunos programas que no funcionan correctamente con los emuladores de windows en linux. Tiene versión de empresa de pago y versión Código Abierto (OpenSource).

Página web de Virtualbox (Abundante documentación para el usuario, para desarrolladores, soporte…)

Crear Documentación de un Proyecto

Cuando nos planteamos cualquier proyecto de programación la primera cosa que hay que tener en cuenta, es la continuidad del proyecto, puede que en un futuro el proyecto lo lleve otra persona, y comprender la programación de otros a veces es muy díficil. Para el trabajo en equipo resulta una condición indispensable tener una generosa documentación de un proyecto.

Crear documentación de un proyecto

Crear documentación de un proyecto

Doxygen es un programa de libre distribución que nos puede ayudar mucho en esto. Entre sus principales características:

  • Multiplataforma
  • Libre Distribución (Licencia GNU/GPL)
  • Excelente documentación para desarrolladores (…)

Se puede utilizar para documentar código escrito en:

Leer el resto de esta entrada »