Programacion

[Javascript] simpleValidate Jquery Plugin

Pues les cuento un preámbulo

Una de las cosas que menos me gusta es estar repitiendo código (recordemos -DRY-) entonces, pues cuando deseaba validar un formulario siempre andaba buscando cual opción era la mejor, y hay muchas opciones y son excelentes en lo que hacen, sin embargo todas tenían un punto débil, por ejemplo que no soportaban ajax, es decir terminaban de validar y se seguían (enviaban el formulario), otros me mandaban mensajes de errores de validación en ciertos colores y en cierto lugar que si bien es correcto, a veces en muchos proyectos no va el estilo o simplemente quieren ponerle un alert o similar.

Bajo ese preámbulo y recordando que siempre quise hacer un validado de formularios con Javascript (hace años hice uno chafita con Javascript).

Entonces pensé por que no hacer uno que fuera muy simple de usar y que no fuera obtrusivo, y así fue como desarrolle simpleValidate que es un plugin el cual como su nombre lo dice solo es un validador de formularios y nada mas.

Les presento a:

simpleValidate – Jquery Plugin

A continuación pongo las características.

  • Fácil de usar
  • Extremadamente Ligero 2kb (minifed)
  • Compatible con Jquery 1.5.2
  • No requiere CSS especial
  • No obtrusivo
  • Posibilidad de inyectar algún tipo de alert especial mediante sus settings
  • Completamente personalizable
  • Soporta expresiones regulares
  • Y valida checkboxes

Su uso es muy simple, solo necesitamos de Jquery y del plugin

 <script src="jquery.1.5.2.min.js" type="text/javascript"></script>
 <script src="simpleValidate.1.6.min.js" type="text/javascript"></script>

Y ejecutamos el plugin donde indicamos el id del Formulario en cuestión


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <title></title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script src="jquery.1.5.2.min.js" type="text/javascript"></script>
 <script src="simpleValidate.1.6.min.js" type="text/javascript"></script>
 <script type="text/javascript">
 $(document).ready(function(){
    $("#testForm").simpleValidate();
 });

 </script>
 </head>
 <body>
 <form action="try.php" method="post" id="testForm">
 <label>Name</label>
 <input type="text" name="name" title="valid[Ingrese un nombre valido]" /><hr />
 <label>Ingrese una cantidad valida (tipo numero.decimal(2 digitos))</label>
 <input type="text" name="cantidad" title="valid[regex,Por favor ingrese un numero con o sin decimales únicamente]" data="^([0-9]+\.?[0-9]{0,2})$" /><hr />
 <label>Required</label><input type="checkbox"  name="condiciones" value="Required" title="valid[Debes de aceptar los terminos y condiciones]"/>
 <input type="submit" value="Guardar datos"/>
 </form>
 </body>
</html>

Y con esto ya tenemos funcionando el plugin ahora necesitamos indicarle cuales son los campos a validar lo haremos de la siguiente forma.

En cada input que necesitemos, vamos a agregar lo siguiente en el campo (input) que queramos validar

title=”valid[tipo_de_validacion,{params,}]“

Donde los tipos de validación son los siguientes:

  • valid[required,mensaje de error] ==> Solo verifica que el campo tenga algún valor y el segundo parametro es lo que mostrara cuando no pase la validación
  • valid[email,mensaje de error] => Valida que sea un email valido y si no muestra el mensaje del segundo parametro.
  • valid[zip,mensaje de error] => Valida que sea un código postal valido (5 caracteres numéricos) y si no muestra el mensaje del segundo parámetro.
  • valid[minlength,mensaje de error,numero_minimo] => Valida que el campo contenga un mínimo de caracteres indicado el el ultimo parámetro
  • valid[maxlength,mensaje de error,numero_maximo] => Valida que el campo contenga un máximo de caracteres indicado el el ultimo parámetro
  • valid[regex,mensaje de error] => Este forma de validación necesita un parámetro data dentro del input donde venga especificada la expresión regular a validar y si no pasa lanza el error.
  • valid[ensaje de error] =>Este solo es aplicable a los checkboxes y solo contiene como argumento el error que mostrara cuando el checkbox no este marcado

Leer más

[Ajaxman] Como me fue en el Flisol 2011

Bueno hoy que tengo que dormirme temprano me dio por postear lo de el sábado pasado osea el Flisol 2011.

Aquí va un pequeño resumen de como me fue, la verdad pensaba postearlo antes pero con mi exceso de tiempo y demás pues ya no se pudo bueno aquí vamos.

Se realizo el día 9 de Abril, en toda latinoamerica, en muchas sedes como Universidades,o similares.

Yo me organice y me fui a dar una platica de PHP en la UACM (Universidad Autónoma de la Ciudad de México) campus “Cuautepec” que se ubica en La Gustavo A. Madero de México D.F.

La platica se denomino “Desarrollo de Aplicaciones Web con PHP”, en la cual trate de abordar las ventajas de PHP, y cual es el presente y futuro del desarrollo Web profesional con PHP.

Básicamente aborde los siguientes temas.

  • Importancia de tener presencia en la Web
  • Tener un blog o un sitio Web
  • Por que apostar por las tecnologías Libres
  • Ventajas de tener un Servidor Linux
  • Ventajas de usar Apache Web Server
  • Por que usar PHP
  • Como es la sintaxis de PHP
  • Desventajas de PHP (Codigo Spaghetti)
    • Soluciones
    • Programación Orientada a Objetos
    • Arquitectura MVC
  • Los CMS
  • Los Frameworks y sus ventajas y desventajas
  • Quien usa PHP y por que lo usan (Ventajas, Estabilidad, Potencia)
  • El grupo Programadores PHP

Realmente me hizo falta tiempo para mostrar todas las ventajas de PHP, pero al parecer gusto mucho la platica tuve un par de Feedbacks interesantes.

Me regalaron una playera, un Tux y el gafete decía Firefox (y yo bien feliz) además de que me ofrecieron un reconocimiento los cuales pongo a continuación

Ahora dejo los slides que use para dicha platica, por si alguno quiere ver las ventajas de PHP.

Saludos y seamos más phpheros

Leer más

[Flisol 2011] Platica “Desarrollo de Aplicaciones Web con PHP”

Hola, pues de algunos ajustes ya estamos en un nuevo servidor, el anterior nos funciono muy bien, pero tuvimos que migrar por otras causas (gracias Tirso =) ).

He estado trabajando duro en el proyecto MSK(codename), pero aun faltan algunas cosas, ya compre el server y todo, en breve (léase 1 mes jaja) estaremos lanzado invitaciones para que lo testeen y me digan que les parece.

Ahora bien, pensé en apoyar con algo en alguna sede, y bueno pues ya esta. Se trata de una platica desde básica a avanzada, la cual durara aproximadamente 2 horas.

Tema: Desarrollo de Aplicaciones Web con PHP
Objetivo: Mostrar al capacidad del lenguaje, mostrar la sintaxis básica, y por que es la mejor opción como software para desarrollo de paginas web dinámicas
Duración: 2 Horas (aproximadamente)
Lugar: Universidad Autónoma de la Ciudad de México (UACM) Campus “Cuautepec”
Dirección: Avenida La Corona 320, Colonia Loma la Palma, Delegación Gustavo A. Madero.
Costo: Gratuito

Temas:

  • Internet y la Web
  • La importancia del internet en la vida diaria.
  • Servidores Web
  • LAMP, El Open Source en la red
  • Programando en PHP
  • La programación Orientada a Objetos en PHP
  • Los CMS y Frameworks, como desarrollar mejor y mas rápido
  • El pasado, presente y futuro de PHP

Sera un platica con intención de ser taller, ya que se pretende mostrar todo estos y es opcional que los usuarios programen algo como ejemplo, aunque claro tomemos lo con platica.

Como llegar:

  • En auto te puedes ir por avenida de los Cien Metros, a la altura del Reclusorio Norte. A 20 minutos de Poli Zacatenco.
  • Metro La Raza, sale el RTP que dice “Reclusorio-Charco”, y pasa por las estaciones de metro Autobuses del Norte, Instituto del Petróleo y Politécnico(pasa afuera de la UACM).
  • Metro Indios Verdes, salen RTP y microbuses con la misma leyenda que el anterior(pasa afuera de la UACM).

Mapa:

Esperamos que les guste y ya saben cualquier queja, felicitación, donativos( =) ), me avisan por mi twitter @ajaxman.

Por cierto habra talleres de instalacion de Linux, platicas, asistan y disfrutemos este evento.

Leer más

[Programadores PHP] Datos del Taller de POO con PHP5

Bueno como casi todos ya sabían este sábado 26 de Febrero doy comienzo con el taller de POO en PHP5, el cual se realizara en #Telmexhub, lamentablemente (afortunadamente) los lugares ya se llenaron, solo había 30 lugares.

Las fechas a realizarse son:

  • 26 de febrero 2011 (12:00 pm – 3:00 pm)
  • 5 de Marzo 2011 (12:00 pm – 3:00 pm)
  • 12 de Marzo 2011 (12:00 pm – 4:00 pm/4 hrs)

Es gratuito, si alguno de los asistentes ya registrados no va a ir le pedimos por favor si fuera tan amable de avisarnos por que hay mucha gente que desea ir y ya esta lleno.

Este es le temario que se desarrollara durante el taller.

  • Conceptos OOP
    • Clases
    • Objetos
    • Herencia
    • Polimorfismo
    • Interfaz
    • Encapsulado
  • Clases
  • Métodos
  • Propiedades(Atributos)
  • $this
  • Objetos
  • Herencia (extender una clase)
  • Encapsulado (privado, protegido,publico,final)
  • clases final
  • Método constructor __construct()
  • Método destructor __destruct()
  • Operador de alcance de resolucion :: (Paamayim Nekudotayim)
    • Constantes clase::CONST
    • self:: => mismos metodos y propiedades pero estaticas
    • parent:: =>Metodos y propiedades padres
  • Métodos estáticos
  • Propiedades estáticas
  • Constantes

Se tratara de realizar todo el temario dependiendo del avance general del grupo y del tiempo.

Algunas cosas a considerar son las siguientes.

Leer más

[Kohana - PHP] Lanzamiento de Kohana 3.1 “Merle” y como hacer el upgrade

Pues apenas me vengo enterando de que los desarrolladores de Kohana han liberado el día 7 de Febrero la versión 3.1 del Framework Kohana llamada “merle“.

Pues obviamente hay muchos que queremos tener nuestro Framework actualizado, entonces pues me dispuse a migrar un website de la versión 3.0.9 a la 3.0.x.

Las instrucciones de migrar son fáciles, regularmente se basa en reemplazar el directorio system de nuestra aplicación, pero esta nueva versión incorpora muchos cambios los cuales, hacen la migración un poco mas complicada.

El mismo sitio de kohana nos avisa de los siguientes cambios:


//Versión 3.0.x

$this->request->response = 'foo';

//Versión 3.1
$this->response->body('foo');

//Cambios en la clase Request de propiedades a métodos

//Versión 3.0.x  ===>    Versión 3.1
Request::$controller ==> Request::controller()
Request::$action ==> Request::action()
Request::$directory ==> Request::directory()
Request::$uri ==> Request::uri()

Todos lo puntos son marcados aquí
http://kohanaframework.org/3.1/guide/kohana/upgrading.

Ahora bien, a mi los que mas me interesaron, son importantes y no vienen aqui son los siguientes.

Request


//Versión 3.0.x

Request::instance();

El método estático anterior nos devolvía el singleton de nuestra solicitud con dicho método estático podiamos obtener parámetros y una de las cosas para lo que yo la utilizaba era para la creación de mi Breadcrumb.


//Version 3.1

Request::current();

//o

Request::initial();

Aquí como vemos tenemos dos opciones, y se elimino instance, las dos son iguales salvo por un detalle, si usamos HMVC, initial contendrá la información de la petición inicial, es decir si desde un controlador estamos invocando a un Request::factory(), ese sera inital y el factory invocado sera current cuando estemos programando dentro del factory.

Leer más

[Python] Ejecutando scripts de Python y psp’s con Apache 2 en GNU/Linux Debian

Pues dándome espacio nuevamente, mientras estoy preparando nuevos posts, les pongo este que es lo que precisamente estoy preparando en mi Laptop con Debian Squeeze, que no es otra cosa mas que correr aplicaciones Python (y Django posteriormente) en Linux para saber mas.

Bueno suponemos que ya tenemos instalado Apache2 en Linux y si no pues pueden ver el post anterior, que fue el que puse ayer en vez de este.

Esto solo aplica para la distribución Debian.

Para hacer esto, es necesario estar logueado como root (su)

root@debian:/home/ajaxman# apt-get install libapache2-mod-python

Y listo con esto ya tenemos casi listo nuestro servidor para poder desarrollar paginas en python, solo hace falta agregar ciertos controladores a nuestro VirtualHost.

Para ello editaremos nuestro virtualHosts por default y le agregaremos algunas lineas que están en el siguiente código

root@debian:/home/ajaxman# vim /etc/apache2/sites-available/default
<Directory /home/ajaxman/htdocs>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride None
 Order allow,deny
 allow from all

 #####################################################################
 ##### Las siguientes lineas son las que agregaremos para python #####
 #####################################################################

 AddHandler mod_python .py
 PythonHandler mod_python.publisher
 PythonDebug On

 #####################################################################
 #####         Fin de las lineas para python             #####
 #####################################################################
</Directory>

Y reiniciamos nuestro Apache

root@debian:/home/ajaxman# /etc/init.d/apache2 restart

Y ahora crearemos un script en python, para probar que funciona (Lo podemos hacer en Vi,nano, Kwrite o en algún otro editor) y lo guardamos en nuestro DocumentRoot

Y agregamos el siguiente código (vim test.py)


def index(req):
 return "Python esta instalado correctamente con apache";

Y lo corremos para ver que efectivamente este funcionando bien nuestro python y apache, lo que nos tiene que mostrar es el resultado que esta entre comillas.

Si además de eso deseamos ejecutar paginas PSP(Python Server Pages), debemos editar nuevamente nuestro VirtualHost, y cambiar los controladores de los archivos .psp.

Nota Importante: Podemos correr scripts PSP’s y .py correctamente en apache pero al menos yo no logre que funcionaran ambos en el mismo VirtualHost, por ello si deseamos correr psp’s debemos modificar el contenido de nuestro VirtualHost o agregar un nuevo VirtualHost, ya que si queremos correr ambos generan errores.

Solo agregaremos el código que marco en las siguientes lineas a nuestro VirtualHost.

Leer más

[LAMP] Instalando un servidor Apache2, MySQL, PHP y PhpMyadmin en GNU/Linux Debian

Bueno les estaba preparando un post sobre Python-Django con apache pero creo que antes voy a postear esto.

Bueno la idea es instalar un servidor LAMP completo con Apache MySQL y PHP(de momento luego python también),en un entorno GNU/Linux, esto lo haremos mediante nuestro gestor de paquetes apt o aptitude, que vienen siendo casi lo mismo, luego quizá lo hagamos compilando nuestros propios binarios pero para la practica esta bien aprender con esto.

Primero abrimos nuestra Terminal(Konsole en KDE4) o vamos directamente a nuestra consola si no tenemos interfaz grafica y con el comando su nos logueamos como root.


ajaxman@debian:~$ su
Contraseña:

root@debian:/home/ajaxman#

Una vez como root procederemos a instalar nuestros paquetes los cuales serán los siguientes.

  • Apache
    • apache2
  • PHP
    • php5
    • php5-mysql
    • libapache2-mod-php5
    • php5-curl
    • php5-mcrypt
    • php5-gd
  • MySQL
    • mysql-server
    • mysql-client
    • phpmyadmin

Con la lista anterior estaremos instalando Apache, PHP y MySQL, además de algunos módulos necesarios para que estos tres softwares estén instalados y algunos módulos extras, los cuales a veces pueden ser necesario como en mi caso que le puse el modulo GD, el CURL y el MCRYPT.

GNU/Linux es muy practico y por ello nos permite instalar todo desde un solo comando, ojo puedes ser necesario tener instalado ncurses para que el MySQL no pida los datos de acceso, inserta la siguiente linea en tu consola y ahí te mostrara si las dependencias están completas o si necesitas algún software extra(para ncurses instala libncurses5-dev).


root@debian:/home/ajaxman#apt-get install apache2 php5 php5-mysql libapache2-mod-php5 php5-curl php5-mcrypt php5-gd mysql-server mysql-client phpmyadmin

Leer más

Historico de entradas

febrero 2012
L M X J V S D
« ene    
 12345
6789101112
13141516171819
20212223242526
272829  

Ajaxman

Mi nombre es Javier, soy desarrollador web con especialización en PHP (avanzado), HTML, CSS y Javascript(Medio).

Me considero evangelizador de Kohana Framework, Mozilla Firefox y GNU/Linux Debian.

Estoy casado, y tengo dos hermosos hijos.

Todos los contenidos a menos que se exprese lo contrario estan bajo licencia Creative Commons.

Enlazanos!!

hit counters online counter