miércoles, abril 18, 2007

Agenda - Calendar PHP

Por estos días estaba analizando en crear una pequeña aplicación que sirviera como agenda para reservar ayudas audiovisuales , como video beam, dvd, proyector acetatos, etc...

El requerimiento muy sencillo, sin necesidad de filtrar si el recurso esta asignado o no, simplemente que funcione como una agenda en la cual se puede llevar los apuntes sobre a quien se le ha asignado el recurso, y también que sirva para consultar en que horario hay que instalar las ayudas, lugar y docente - estudiante que lo ha solicitado.

Pues bien, pensé que podría desarrollar algo pequeño y para una intranet, desde luego con mis conocimientos en php y mysql empezé a pensar como podría crearla, pero antes le eché una ojeada a Google Calendar para basarme en la interfaz, luego busqué scripts en php ó ajax los cuales ya esuvieran listos para configurarlos y ponerlos a funcionar y que simularan una agenda, dentro de mi búsqueda encontré uno llamado Agenda Calendar escrito en php y que usa una base de datos en mysql.

Muy sencillo y preciso para lo que necesitaba. Lo instalé y configuré, según veo puedo hacerle algunos ajustes y pienso convertirlo en un script personalizado y por qué no reversionarlo y distribuirlo :p



usa una sola tabla, con unos campos id, texto, dia, mes, año para llevar registros y simular la agenda, desde luego nos muestra un calendario y las reservas se ven por semana. Me pareció perfecto, tal como me lo estaba imaginando, aunque yo quería usarlo con Ajax, ya que me interesaba mucho que con tan solo editar los campos de texto guardara los cambios, mientras que el Agenda Calendar tiene el botón de Guardar, pero como les digo, me encantaría personalizarlo y meterle algo de Ajax y modularlo un poco, ya que es en un solo archivo.php que viene toda la configuración, como la conexion, los estilos visuales y por supuesto la lógica.

jueves, abril 12, 2007

Xamp - Servidor Apache - Mysql - PHP

Bueno, desde que empezé a aprender Mysql-php siempre he usado como servidor el conocido Appserv, pues bajo un entorno Windows suele ser más rápido instalar de un solo clic todo el paquete que contiene php, mysql y apache :p bueno, aunque obviamente todo tiene sus pro y sus contras,,, nos vamos ya a montar la aplicación en un servidor linux y pues hombe, ciertas cositas que trabajas a veces te fallan.

Pues bien, conocí el XAMPP, un servidor que trabaja bajo el mismo esquema del Appserv, te instala todo el paquete Mysql-php-Apache y me ha llamado la atención porque una ventaja que tiene es que al parecer te deja el register_globals del php.ini en OFF, lo cual indica que para que trabajes con las variables y te sean reconocidas por el intérprete debes declararlas y usarlas bajo el esquema de los arrays que se trabaja desde php 4 (corríjanme si estoy errando la versión).

Desde luego entonces usas las variables de este tipo:

$_POST['variable'];
$_GET['variable];

de acuerdo a como la hayas pasado a traves de un formulario y su método.

Esto por lo menos, me ha sido útil para mí, un programador php que aprendió con ciertos resabios :p jeje, y pues que usaba una version vieja del php y entonces las variables las declaraba y usaba a lo clásico:

$variable;

y claro, usando este XAMPP no me reconocía los nuevos códigos que sigo haciendo pero que por ratos se me van de forma clásica, aunque tengo un parche en código php para evitar el register_globals en OFF, pero por experiencia propia SE LOS RECOMIENDO... esos servidores que tienen Stma operativo LINUX son muy jodiditos en este aspecto, así que para la comodidad del desarrollo, mejor tratar de usar todo bajo el mismo esquema de este pinguinoso stma operativo jijijiji.... claro, porque pues, yo soy muuuuy devoto de las herramientas buenas y cómodas y pues.. no encuentro aún el Dreamweaver en linux jijijiji ni el fireworks jejeje entonces no me quiero poner a programar en linux para testear las aplicaciones y ver que no me molesten después, bueno, para eso ahora uso XAMPP,.... ojo que no digo que sea que el XAMPP quede configurado como un linux, si no que me parece que es algo estricto en su configuración y pues es bueno ser estricto también programando.

Algo también que me pareció chévere, y ya que hablamos del tema de Linux, es que leí que también hay un paquete de XAMPP para linux que te instala tooodo el apache-mysql-php .... no sé, eso fué lo que leí... ahora sí de la práctica no doy testimonio porque no lo he instalado en linux, me gustaría mucho hacer la prueba para ver que tal resulta , si en verdad te instala todo el apache-php-mysql en linux con un solo paquete, que maravilla.



Otro dato interesante, es que el XAMPP tiene un pequeño panel de control desde donde puedes detener los servicios, php, mysql y el Filezilla que es un servicio de ftp . Interesante pues y lo recomiendo para los que programamos web con PHP, Mysql y Apache Server.


Es todo...... comentarios,dudas, aportes,,,, bienvenidos !!!

lunes, abril 09, 2007

La Función Eval

Bueno, pues no conocía esta función muy bien.. hasta que apareció en el momento que la necesitaba... pero como raro, no sabía que era para lo que queria hacer.

Tengo un pequeño ejemplo de un script en php que recibes 2 números y seleccionas en un combobox una de las operaciones (suma, resta, division, multiplicacion) + - / *.

Pues bien, la estructura de la función la hize asi:


function calcularOperacion($valor1,$valor2,$operador)

claro, donde el detalle mas importante es la variable $operador que representa en este caso si es suma, resta, multiplicacion ó división, para lo cual me interesaba mucho que interpretara el respectivo simbolo del operador (+ ,- ,* ,/ ). Pero desde luego lo intentaba en el cuerpo de la función:

function calcularOperacion($valor1,$valor2,$operador)
{
$resultado=$valor1.$operador.$valor2;
return $resultado;

}


Pero claro, esto no es tan sencillo.... ahí solo concatenaría las variables , si usara la función calcularOperacion(5,4,+); entonces como resultado me retornaría 5+4 y no efectuaría la operación como tal.

Pues bien, busqué, Googlié, y de todo busqué funciones de cadenas , conversión, etc.. sin tener éxito alguno. recurrí a la clásica y cutre solución de usar el switch :S



function calcularOperacion($valor1,$valor2,$operador)
{
switch($operador)
{
case 0:
$resultado = $valor1 + $valor2;
break;

case 1:
$resultado = $valor1 - $valor2;
break;

case 2:
$resultado = $valor1 * $valor2;
break;

case 3:
$resultado = $valor1 / $valor2;
break;


}
return $resultado;
}


Muy cutre.... pero bueno, me funcionaba de acuerdo al requerimiento, obviamente no muy óptima y pues, lógico que mas consumo de recursos, etc...

Bien, dejando unos días como solución este algoritmo, me dió por curiosear y buscar a ver si existía el código de la calculadora en php. Me topé con un codigo hecho con los mismos parametros, 2 números y un operador pero hecho en javascript. Desde luego evalué la lógica y me llamó la atención una función llamada eval();

Aja... nuevamente a Googlear, y pues claro, me da por digitar eval en el editor de php y me la reconocía :O bien... googleando me dí cuenta de que esta función esta en algunos lenguajes, php, javascript, python, y después de leer algunos ejemplos de código hasta en el mismo tutorial oficial de php , logré entenderla.

Bien, según entiendo lo que hace eval($cadena); es evaluar una cadena que le pasas y la evalúa para ver si es código ejecutable, como quien dice para que guardes código fuente en una variable.


y claro claro,,, la función se redujo a una sola línea:

function calcularOperacion($valor1,$valor2,$operador)
{
eval("echo $valor1 $operador $valor2;");
}

llamandola con parámetros:

calcularOperación(4,5,+);


fíjense que el valor de la cadena que se le pasa a eval es : echo $valor1 $operador $valor2;

donde prácticamente es una línea de código normal en php en la cual sus variables tienen un valor asignado, pero aqui si gracias a la función evalúa que esté bien codificado e interpreta la cadena como una linea normal de código. Entonces sí logré hacer lo que en un principio quería :D


Bien, eso ha sido todo.... uff, que mana de carreta

sábado, abril 07, 2007

Consejos para Planificar una aplicación Web




Este articulo me parece muy interesante:


A menudo antes de empezar un proyecto no tenemos claro cúal es el objetivo del mismo o qué pretendemos alcanzar por eso esta pequeña lista te puede ayudar a la hora de planificar un proyecto.

Planificar una aplicación web implica pensar y definir muchas cuestiones de importancia:

1. Planificar el futuro

Puede sonar un poco duro que nos tengamos planear el futuro de algo que aún no existe pero es así, que pasa si en un futuro tuvieramos problemas de escalabilidad, y sí tuvieramos que migrar las bases de datos de MySql a Oracle, de una buena planificación depende la dificultad en un futuro de realizar cambios en la plataforma que sostiene nuestra aplicación.

2. Documentación

Documenta todo lo que puedas tu aplicación en especial aquellas partes de la misma que hayan requerido un mayor tiempo de desarrollo, en un futuro cercano te librará de más de un quebradero de cabeza.

3. No empiezes por los pequeños detalles

A menudo es más sencillo plantearse el desarrollo de pequeños servicios cómo pueden ser los RSS o una galería de imágenes, pero es fundamental comenzar por lo que vendrá a ser la base de nuestra aplicación de este modo podremos ir completando nuestra aplicación en un orden lógico, primero los cimientos...

4. Diseño de la interfaz

Esta entrada puede que te ayude en esta parte, es importante conseguir un buen diseño para nuestra interfaz, es importante conseguir un interfaz que se atractivo y útil para la gran mayoria de los usuarios, lo más importante es llegar a conectar con el usuario y la mejor manera es ofrecerle la mayor cantidad de información posible para que se llegue a sentir parte del proyecto pero todo esto muchas veces no lo llegamos a conseguir por una mala elección en la combinación de los colores que se integran en nuestra interfaz.

5. Evita construirte librerías o frameworks inncesarios

Muchas personas siempre sostienen que es mejor que cada desarrollador utilize sus propias librerías, pero la realidad es que en muchas ocasiones esto supone una gran pérdida de tiempo, es mejor buscar una librería o framework que se parezca lo más posible a lo deseado que desarrollarlo por ti mismo.

6. Ten un plan de proyecto

Asegúrate de que cada desarrollador que trabaje en el proyecto sepa qué es lo que debe de hacer y cuándo tiene que hacerlo, teniendo todo esto redactado en un documento te ayudará a identificar problemas.

7. Elige el lenguaje adecuado

Ya sabes que hay numerosas discusiones sobre ¿Cúal es el mejor lenguaje de programación?, la respuesta a menudo es depende de para que quieras utilizarlo, por eso asegúrate de escoger el lenguaje adecuado.

8. Evita las distracciones

Optimiza tu tiempo, cuando estés trabajando que nada te distraiga, ni llamadas telefónicas, ni clientes de mensajerías instantáneas, proponte un buen número de horas al día de trabajo aislado dedicado al proyecto.

9. Sigue un buen control de calidad

Muchas veces nos equivocamos al planificar los tiempos de proyecto y esto lleva a menudo a los desarrolladores a tener que escribir "código sucio", esta es una buena opción si lo que quieres es una demo de la aplicación funcionando pero ea actitud te traerá problemas en el futuro.

10. Plantéate los pasos a seguir despues del desarrollo

Ten en cuenta que está fase de desarrollo algún día deberá acabar, estudia con qué frecuencia se deberá actualizar la actualización y cómo qué se necesita para que este funcione.



Tomado de :
Consejos para planificar una aplicación web