Mostrando entradas con la etiqueta diseño web. Mostrar todas las entradas
Mostrando entradas con la etiqueta diseño web. Mostrar todas las entradas

miércoles, 28 de noviembre de 2012

Efectos de sombra con css3

Con la propiedad box-shadow podemos crear sombras y utilizar sus modificadores para obtener diversos resultados.
En este ejemplo utilizamos 5 etiquetas <div> con diferentes selectores para aplicarle un estilo diferente de sombra a cada uno:
(clic en cada <div> para ver su código)



Descargar el código


Si te ha gustado esta entrada:
  Comenta.
  No cuesta nada!!!

martes, 27 de noviembre de 2012

Etiquetas multimedia en html5

Las etiquetas multimedia permiten agregar audio y video en nuestros sitios web de manera sencilla. Html5 implementa la etiqueta <audio> y <video> con gran facilidad como podrán ver en estos ejemplos.


Se utilizan diferentes sources (mp3 y ogg) para compatibilidad con los diferentes navegadores.

De igual manera se utilizan otros sources (mp4 ogg y webm) pora obtener compatibilidad con los diferentes navegadores.

Descargar el código


Si te ha gustado esta entrada:
  Comenta.
  No cuesta nada!!!



Agregar filas a una tabla desde un Formulario

Con este sencillo ejemplo les mostraré como agregar filas a una tabla desde un formulario, validar el formulario, y agregar un botón a la tabla para eliminar la fila.



Descargar el código


Si te ha gustado esta entrada:
  Comenta.
  No cuesta nada!!!

Area de dibujo con canvas


Una de las utilidades que incorpora html5 es la etiqueta <canvas> que permite trabajar con formas en dos dimensiones dentro de un documento html, además podemos manipularlo con javascript o jquery para darle usos muy creativas.

El siguiente es un ejemplo de un área de dibujo creado con canvas que permite dibujar con una paleta de colores.



Descargar el código

Si te ha gustado esta entrada:
  Comenta.
  No cuesta nada!!!

Como crear botones con css3


El día de hoy compartiré un poco sobre css y la forma como podemos crear botones con diferentes etiquetas como: <a>, <div> y <button>.



Descar código

Si te ha gustado esta entrada:
  Comenta.
  No cuesta nada!!!

domingo, 25 de noviembre de 2012

Instalando MySql y sus Herramientas

MySql es un excelente gestor de bases de datos, muy útil para trabajar con aplicaciones web, que además de tener una licencia GPL es multiplataforma y gratuito.
Si eres desarrollador web o principiante no importa, creo que todos los que hemos iniciado esta carrera nos hemos topado de alguna manera u otra con esta aplicación, el hecho es que el software libre ha hecho una gran contribución en este campo.




El servidor:  Es la aplicación de escucha que recibe peticiones de conexión y suministra el motor de base de datos.

El cliente: Son las aplicaciones que se conectan al servidor MySql para leer o escribir en la base de datos.

phpmyadmin: Cliente web (web-gui) muy potente y popular, de fácil manipulación y configuración.

Servidor Xamp: Servidor web multiplataforma, la "x" se sustituye por el sistema operativo anfitrión (Lamp en Linux, Wamp en windows), las otras iniciales significan:
a: Apache, m: MySql, p: Php, piton.

MySql Workbench: Cliente GUI capaz de crear diagramas y generar su código sql, además de conectarse al servidor y crear la base de datos. es muy útil, fácil de usar y ahorra mucho tiempo.

Instalación en Ubuntu:
Servidor:
sudo apt-get install mysql-server
Cliente (consola):
sudo apt-get install mysql-client
Servidor Lamp (Linux, apache, mysql, php, piton):
sudo apt-get install lamp-server^
phpmyadmin (cliente gui):
sudo apt-get install phpmyadmin
MySql Workbench:
Paquetes .beb: 32 bits y 64 bits.

Instalación En Windows:
Servidor:
Dirígete a la pagina de descargas de MySql y selecciona el archivo correspondiente a tu equipo:
http://dev.mysql.com/downloads/mysql/#downloads.

Servidor Wamp (Windows, apache, mysql, php, piton, phpMyAdmin):
http://dev.mysql.com/downloads/.
Después de la instalación se agrega un icono  al área de notificación desde donde podemos iniciar o detener los servicios

MySql Workbench:
http://dev.mysql.com/downloads/workbench/#downloads.

Otras Herramientas como:
clusters, conectores, conector/ODBC y librerías  en la pagina de descargas de MySql:
http://www.mysql.com/downloads/


Si te ha gustado esta entrada:
  Comenta.
  No cuesta nada!!!


viernes, 23 de noviembre de 2012

Crea tu web con Aptana Studio 3

Aptana Studio es un excelente editor para crear y diseñar aplicaciones y paginas web, es multiplataforma y tiene licencia GNU, lo que lo convierte en una excelente alternativa para los que usamos software libre.
Aptana Studio soporta tecnologías como: HTML5, CSS3, Javascript, Ruby, Rails, PHP y Python y gran variedad de plantillas como HTML5 Boilerplate entre otros.

Instalación en Windows/Linux/Mac OS:
Podemos descargar Aptana Studio 3 para nuestro sistema operativo favorito desde su pagina de descargas:
http://www.aptana.com/products/studio3/download.

Aptana Studio 3 en Windows 7

Aptana Studio 3 enUbuntu 12.04

Requisitos para Ubuntu:

- xulrunner:
aptitude install xulrunner
- Git:
sudo apt-get install git
- El descompresor p7zip: Aptana Studio viene comprimido en un paquete .zip, por lo que antes necesitamos instalar:
sudo apt-get install p7zip-full p7zip-rar rar unrar
- Oracle Java:
sudo add-apt-repository ppa:webupd8team/java &&
sudo apt-get update &&
sudo apt-get install oracle-java7-installer
Si tienes otra versión de java instalada, seleccionamos Oracle java con:
sudo update-alternatives --config java

Una vez descargado el paquete zip, lo descomprimimos: clic derecho/ Extraer aquí
y buscamos el archivo ejecutable dentro de la carpeta: AptanaStudio3.

O podemos moverlo a otra ubicación y crear un lanzador:

Abrimos /opt como administrador:
sudo nautilus /opt
Creamos la carpeta "aptana"  y colocamos el contenido de la carpeta extraída en esta carpeta.
creamos un script para ejecutarlo facilmente:
sudo gedit /usr/bin/aptana
Se nos abrirá el editor de texto y colocamos el siguiente script dentro:
#!/bin/sh
#export MOZILLA_FIVE_HOME="/usr/lib/mozilla/"
export APTANA_HOME="/opt/aptana"
$APTANA_HOME/Aptana_Studio_3 $*
Luego damos permisos a los archivos que acabamos de crear:
sudo chmod 755 /usr/bin/aptana
sudo su
chmod 777 /opt/aptana
cd /opt/aptana
chmod 777 *
Con esto ya se puede lanzar desde el terminal con el comando "aptana", pero para que aparezca en el dash creamos el lanzador:
sudo gedit /usr/share/applications/aptana.desktop
y pegamos el siguiente código:
[Desktop Entry]
Encoding=UTF-8
Name=Aptana Studio 3
Comment=IDE para html, Ruby, Rails, Python, PHP
Exec=env UBUNTU_MENUPROXY= /usr/bin/aptana
Icon=/opt/aptana/icon.xpm
Terminal=false
Type=Application
Categories=GNOME;Application;Development;
StartupNotify=true
y por último arrastramos el lanzador al escritorio o al lanzador de unity.

Si te decides a probarlo, cuéntanos como te ha ido.

Si te ha gustado esta entrada:
  Comenta.
  No cuesta nada!!!

miércoles, 14 de noviembre de 2012

Como crear un Count Down para Ubuntu

El día de hoy aprenderemos como crear un sencillo contador regresivo para ubuntu como este:

También aprenderemos a personalizarlo, subirlo y como insertarlo en un blog o web.
Pero vamos paso a paso:

1- Estuctura de archivos.
- Creas una carpeta con el nombre widged.

- Crearemos tres archivos dentro de "widged": widged.html , estilo.css  y fechas.js 
- Luego descargaremos un cuarto archivo llamado jquery.js desde aquí (clic derecho guardar enlace) y lo guardamos también dentro de la carpeta "widged".

2- Estructura del widged.
 Tendremos un contenedor principal y cuatro contenedores mas que estarán al mismo nivel:

3- Contenido de los archivos

widged.html
<!DOCTYPE html>
<html>
<head>
  <title>Ubuntu Countdown</title>
  <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript" src="fechas.js"></script>
  <link type="text/css" rel="stylesheet" href="estilo.css" media="screen"/>
  <meta http-equiv="Content-Type" content="text/html; gcharset=ISO-8859-1"/>
</head>
<body>
  <!-- ________________Contenedor principal_________________ -->
  <div class="principal">


  <!-- _______________Contenedor para la imagen________________ -->
  <!-- El logo de Ubuntu de la versión en cuestión o imagen  -->
  <div class="marco1" id="marco1">
  <img id="logo" src="logo1.png" />     
  </div> 


  <!-- _______________Contenedor para el contador________________ -->
  <!-- debe estar bacia, se llena con una funcion javascript -->
  <!-- contendrá la leyenda de días faltantes y lik de descarga -->
  <div class="marco2" id="indic"></div> 


  <!-- ____________Contenedor para la barra de progresso_____________ -->
  <!-- debe estar bacia, se llena con una funcion javascript -->
  <div id="cont"><div id="progress"> </div> </div>
   

  <!-- ____________Contenedor para el boton "acerca de"_____________ -->
  <!-- Este div se convierte en un botón que muestra los creditos -->
  <div id="web" onclick="about();"> <a > Acerca de</a></div>


  <!-- ________________Contenedor para los creditos____________________ -->
  <!-- Este div está oculto por defecto,se muestra con el boton"acerca de" -->
  <div id="creditos">
  <br>Este widged ha cido creado por:<br><b>

  <!-- tu nombre y link personal -->
  <a href="la ruta de tu facebook/twetter/etc" target="_blank">Tu nombre</a>
  </b><br>para:<br>

  <!-- aqui pones la ruta de tu web -->
  <a href="http://www.tu_web.com/" target="_blank">
  <b>www.tu_web.com</b><br><br>

    <!-- aqui pones la ruta de tu foto -->
  <img id="foto" src="tu-foto.jpg"/></a><br>

  <!-- botón para ocultar los creditos -->
  <div class="boton" onclick="about_close();">cerrar</div>
  </div>
  </div> <!-- cierra el div principal -->
</body>
</html>

fechas.js
Contiene las funciones que hacen el cálculo de las fechas y escriben el resultado en el html.

// lo que esta en esta funcion se ejecute al cargar la pagina.
$(document).ready(function(){ 
 
   // Fecha de lanzamiento de la última versión    
   var old = new Date(2012, 9, 28, 0, 0, 0);

   // Fecha de lanzamiento de la próxima versión
   var fecha = new Date(2013, 2, 28, 0, 0, 0);

   // Esto captura la fecha del sistema
   var hoy = new Date(); 
 
   // Esto obtiene los dias restantes
   var dif = fecha.getTime() - hoy.getTime();  
   var diferencia = Math.floor(dif / (1000 * 60 * 60 * 24));

   // Muestra en el widged los dias restantes
   document.getElementById("indic").innerHTML = "Faltan <br>"
   +" <span id= \"dias\" style= \"display: inline-block;\">"
   +diferencia+"</span><br> dias";

   // Obtiene los dias que van transcuriendo hasta el lanzamiento
   var dif2 = fecha.getTime() - old.getTime();  
   var lapso = Math.floor(dif2 / (1000 * 60 * 60 * 24));

   // calcula el porcenteje de dias transcurridos
   var porcentaje = Math.floor(((lapso-diferencia)*100)/lapso);

   // Selecciona el div progress
   progres_bar = document.getElementById('progress');
   // Cambiamos el porcentaje de width al porcentaje de dias transcurridos
   progres_bar.setAttribute('style','width: '+porcentaje+'%;');

   //---------------------- * --------------------------------------
   //--Cambiamos el texto de dias faltantes por el link de descarga
   //--Esto ocurre cuando quedan cero dias para el lanzamiento
   //---------------------------------------------------------------
   if (diferencia==0) {
     
   document.getElementById("marco1").innerHTML ="<a href=\"http://www.ubuntu.com"
   +"/download\"><img id=\"logo\" src=\"logo1.png\"/> </a>";

   document.getElementById("indic").innerHTML = "<a href=\"http://www.ubuntu.com"
   +"/download\">Disponible <br><span id= \"dias\" style= \"display: inline-block;\">"
   +"Descargalo</span><br> ya!</a>";
  } 
})

// Muestra los creditos
function about(){
    creditos = document.getElementById("creditos");
    creditos.setAttribute('style','display:inline');
}

// Oculta los creditos
function about_close(){
    creditos = document.getElementById("creditos");
    creditos.setAttribute('style','display:none');
}


Y por último agregamos el archivo:
estilo.css
Este carga la imagen de fondo detras del logo, crea los colores naranja y el color y estilo del texto y otros elementos.
.principal, #about{
    width:100%;
    height:100%;
    background-color:#111; 
    border-radius: 20px;
}
.marco1{
    width:100%;
    height:80%;
    border-radius: 20px ;
    background-color:#000;
    background-image: url("gun_metal.png");
    background-repeat: repeat;
    background-attachment: fixed;
}

#cont, #progress{
    height: 4px;
    width: 100%;    
    background: #000;
}

.marco2, #progress{
    width:100%; 
    background: -moz-linear-gradient(19% 75% 90deg, #EB470f, #F58423);
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#F5842f),to(#EB4701));
    background: -o-linear-gradient(rgb(96%, 49%, 13%),rgb(92%, 28%, 6%));
    font-size:1em;
    font-family:monospace;
    text-align: center;
    text-shadow: 0px -1px 1px rgba(0, 0, 0, 0.8);
    padding: 2px 0px 0px 0px;
}

#dias{
    color:#fff;
    font-size:2em;
    text-shadow: 0px -1px 1px rgba(0, 0, 0, 0.8);
}

#logo{
     width:100%;
}

#web{ 
    color:#4C4C4C;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);
    text-align: center;
    cursor: pointer; 
    font-family:monospace;
    padding: 4px;

}

a{
    color:#808080;
    text-decoration: none;
    text-transform:
    font-family: Courier, monospace;
}
a:hover{
    color:#fff;
}
#creditos{
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 1);
    text-align: center;
    background-color: #070707;
    width: 100%;
    height:100%;
    position: absolute; left: 0px; top: 0px;
    border-radius: 20px;
    color:#4C4C4C;
    font-size: 15px;
    font-family:arial,helvetica,sans-serif;
    display: none;
}

.textbox{
    font-size: 15px;
    width: 25%;
    max-width: 25%;
 }

.boton{
    display: inline-block;
    margin: 2px 2px 2px 2px;
    padding: 2px 2px 2px 2px;
    cursor: pointer;
    font-family:monospace;
    background: -moz-linear-gradient(center top,rgba(
        255, 255, 255, .2) 0%, rgba(255, 255, 255, .1) 100% ); 
    border: 1px solid #999;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;    
    border-radius: 4px;
    color:#fff;
    bottom:5px;    
}

.boton:hover{
    box-shadow: 0px 0px 5px #fff;
    -webkit-box-shadow: 0px 0px 5px #fff;
    -moz-box-shadow: 0px 0px 5px #fff;
    
}
.boton:active{
    top:1px;
}
#foto{
    width: 33%;
    padding: 0% 33% 0% 33%;
}

No olviden colocar las imágenes en la carpeta widged.

4- Hospedaje.

Si cuentas con un servidor solo lo subes, copias la ruta y listo.

Si no cuentas con un servidor puedes usar una cuenta de Dropbox (crear cuenta e instalar) como yo lo hago.
Guardas la carpeta widged en tu carpeta publica de dropbox, y copias el enlace público de widged.html.

4- Insertarlo en tu web o blog.

Este es el código para insertarlo en tu web:
<iframe frameborder="0" width="200" height="250" scrolling="no"src="widged.html">
Ubuntu countdown</iframe>
Donde "widged.html" lo sustituyen por la ruta completa en el servidor o por el enlace público de dropbox.
Por ejemplo este es el código para insertarlo desde mi cuenta, lo pueden probar y darse cuenta de lo rápido y fiable que resulta cargarlo desde el servidor de Dropbox
<iframe frameborder="0" width="200" height="250" scrolling="no"
src="https://dl.dropbox.com/u/59010066/web/widged/widged.html">
Ubuntu countdown</iframe>
Y por último aquí esta el count down funcionando.

Descargar este ejemplo

Si te ha gustado esta entrada:
Comenta.
  No cuesta nada!!!

lunes, 12 de noviembre de 2012

CountDown Ubuntu 13.04 Raring Ringtail


A pocos días después del lanzamiento de Ubuntu 12.10 me he animado a diseñar por primera vez un count-down para Ubuntu, siempre me ha gustado el diseño así que le he agregado un poco de estilo css3 con otro poco de javascript y la receta está lista.
Como pueden ver la primera es una captura y el segundo es el widged en funcionamiento



Puedes insertarlo fácilmente en tu blog con este código:
<iframe frameborder="0" height="250" scrolling="no" 
src="https://dl.dropbox.com/u/59010066/web/widged/widged.html"
 width="200">Ubuntu countdown </iframe>

Como no cuento con un servidor, utilizo mi cuenta publica de Dropbox como hosting. Aun así carga rápida y fielmente como pueden ver.

Si quieres aprender como hacerlo y personalizarlo haz click en: Como crear un Count Down para Ubuntu

Si te ha gustado esta entrada:
Comenta.
  No cuesta nada!!!

lunes, 27 de agosto de 2012

Instalar Un Servidor Web En Ubuntu 12.04

En esta ocasión quiero compartir un tutorial que me ha sido de mucha utilidad mientras en el aprendizaje de desarrollo web: la instalación de un servidor web, en ubuntu por supuesto.
En los repositorios de ubuntu existe un meta paquete que instala en un solo paso todo lo necesario para montar un servidor web, se trata de LAMP (Linux, Apache, MySql, Php, Perl, Pitón).

para instalar en Ubuntu:

sudo apt-get install lamp-server^ 

 Durante el proceso de instalación nos pedirá la contraseña para MySQL.
Al finalizar nos creará una carpeta en /var/www/ que será la carpeta de inicio para nuestro servidor web, a esta carpeta debemos darle permisos:

sudo chmod -R /var/www/ 

Podemos crear un enlace simbólico a nuestra carpeta Home:

ln -s /var/www /home/usuario/www


Luego accedemos a /var/www y borramos el archivo index.html, esto permitirá que al ingresar a localhost nos mostrará el index de carpetas.




Y por último instalamos phpmyadmin para administrar la base de datos de MySQL:

sudo apt-get install phpmyadmin


Ahora para acceder al servidor describimos desde el navegador: localhost, para acceder a la configuración de MySQL escribimos localhost/phpmyadmin.

También puedes acceder al servidor web desde otro equipo de la web colocando la ip del servidor por ejemplo: 192.168.1.102.

Eso es todo, si tienen alguna pregunta no duden en compartirla.

 Si te ha gustado esta entrada, Comenta es gratis!!!  o Suscríbete a nuestro blog.

viernes, 17 de agosto de 2012

Media Query, Tu web adaptable

ya habíamos hablado anteriormente sobre la técnica responsive layout para hacer que nuestra web se adapte a dispositivos móviles sin necesidad de tener dos o tres versiones de la misma, hoy comentaremos algo de código css3 para dar formatos independientes del dispositivo.


Media Query.
Es una técnica moderna que utiliza css3 para dar estilos condicionados de nuestra página al dispositivo en el que visualiza.
En realidad la técnica es bastante simple en comparación con otras y las ganancias estéticas muy buenas.

importamos el estilo con el atributo media="screen", de esta manera:

<link type="text/css" rel="stylesheet" href="estilos/estilo1.css" media="screen"/>

luego en el css establecemos un estilo por defaulf
.contenido {
 background-image: url("img/fondo2.png");
 margin:2% 10% 2% 10%;
 padding: 2% 2% 2% 2%; 
 font-size:18px;
}

   
y establecemos los estilos condicionados al ancho de la pantalla, de modo que si al ancho cae bajo el tamaño establecido entonces se aplicará el estilo:
@media screen and (max-width: 800px) {
    .contenido {    
        margin: 2% 7% 2% 7%;
        padding: 1% 1% 1% 1%;
        font-size: 15px;
    }
    h1 {
        font-size: 16px;
    }
    
}
@media screen and (max-width: 480px) {
    .contenido { 
  margin: 1% 1% 1% 1%;
  padding: 1% 1% 1% 1%;
  font-size: 12px;
 }
 h1 {
  font-size: 14px;
 
}
@media screen and (max-width: 300px) {
    .contenido {    
        margin: 0 0 0 0;
        padding: 0 0 0 0;
        font-size: 10px;
    }
    h1 {
        font-size: 12px;
    }
    
}
      
De esta forma tenemos tres opciones de 4 opciones de ancho para visualizar nuestra web, el navegador mostrará una u otra dependiendo del ancho de la pantalla.
Es importante notar que mientras menos espacio se, tendremos que achicar el texto, reducir o eliminar margenes, paddins, tablas, etc.
No es necesario reescribir todo el formato en cada  apartado @media screen, solo sobre escribimos el estilo que deseamos modificar.
Las imágenes podemos colocarlas dentro de un contenedor y darles formato width expresado en porcentajes y no pixeles, así la imagen se redimencionará con el ancho de la web. En algunos casos lo mejor será que algunos elementos no tan importantes no se visualicen en resoluciones pequeñas, para eso podemos colocar un display: none al elemento.
En realidad puedes ahorrarte tiempo y lineas de código con un poco de ingenio al estilo css3.

ver elemplo funcionando.
Descargar archivos de ejemplo


Si te ha gustado esta entrada, Comenta es gratis!!!  o Suscríbete a nuestro blog.

 

lunes, 30 de julio de 2012

Validación de formularios con JavaScript

Hace unas semanas comenzamos con el tema de expresiones regulares específicamente aplicadas a la validación de correo electrónico, el día de hoy vamos a ampliaremos el tema de validación de formularios.

El ejemplo con el que trabajaremos contiene tres campos: nombre, edad y correo electrónico, estos son los campos por validar, además incluiremos un botón imput tipo submit y uno tipo reset:




Lo primero es mostrar el código del formulario:

<!DOCTYPE html>
<html>
<head>
  <title>Mi p&aacute;gina</title>       
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  <link type="text/css" rel="stylesheet" href="estilos/estilo2.css" media="all">   
  <script src="js/functions.js" type="text/javascript"></script>
</head>
<body>
  <form action="save.php" method="post" onsubmit="return validar();">

      <span>nombre</span><br/>
      <input type="text" id="name" name="name"></input>
      <span id="error_name" class="error"></span> <br/> 

      <span>edad</span><br/>
      <input type="text" id="age" name="age"></input>        
      <span id="error_age" class="error"></span><br/>

      <span>e-mail</span><br/>
      <input type="text" id="mail" name="mail"></input>    
      <span id="error_mail" class="error"></span><br/><br/>

      <input type="submit"></input><br/>
      <input type="reset" id="reset" name="reset"></input>
   </form>

 </body> 
</html>


En este código destacan tres etiquetas "span" sin contenido:
<span id="error_name" class="error"> </span>
<span id="error_age" class="error"> </span>
<span id="error_mail" class="error"> </span> 

La razón por la que no tienen contenido es porque se les asignará un texto de forma dinámica a través  de JavaScript. Estas etiquetas deben estar ocultas al cargar la pagina, y esto lo conseguiremos mediante css:

.error
{
 color:red; 
 display:none;
}

Aquí utilizamos el class "error" al que pertenecen estas etiquetas para ocultarlas y colorearlas de rojo.

Ahora veamos el código Javascript:

function validar() {
  
  /* SE OBTIENEN LOS ELEMENTOS NOMBRE, EDAD Y MAIL */
  fname = document.getElementById('name');
  age = document.getElementById('age');
  mail = document.getElementById('mail');

  /* SELECCIONA LAS ETIQUETAS DE ERROR Y LAS OCULTA */
  sp_fname = document.getElementById('error_'+fname.id );
  sp_fname.setAttribute('style','display: none');

  sp_age = document.getElementById('error_'+age.id);
  sp_age.setAttribute('style','display: none');

  sp_mail = document.getElementById('error_'+mail.id);
  sp_mail.setAttribute('style','display: none');

  continuar = true; /*envio activado por defecto*/

  /*SE EVALUAN LAS EXPRESIONES*/
  /* 1- QUE El CAMPO NOMBRE NO ESTE VACIO*/
  if (fname.value.length <= 0) {
    sp_fname.innerHTML = "Por favor digite un nombre válido";
    sp_fname.setAttribute('style','display:inline');
    continuar = false; /*se desactiva el envio y se muestra el mensaje de error*/
  }
  /*2- QUE EL CAMPO EDAD NO ESTE VACIO Y CONTENGA SOLO NUMEROS*/
  if (age.value.length <= 0  || isNaN(age.value)) {
    sp_age.innerHTML = "Por favor digite una edad válida";
    sp_age.setAttribute('style','display:inline');
    continuar = false; /*se desactiva el envio y se muestra el mensaje de error*/
  }
  /*3- SE VALIDA LA EXPRESION REGULAR PARA E-MAIL*/
  if (/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$/.test(mail.value)){
        /*no hacer nada*/
  }
  else{
 sp_mail.innerHTML = "Por favor digite un e-mail válido";
 sp_mail.setAttribute('style','display:inline');
 continuar = false; /*se desactiva el envio y se muestra el mensaje de error*/
 }
  
  /*CUALQUIERA DE LAS EVALUACIONES ANTERIORES PUEDE ANULAR EL ENVIO*/
  return continuar;
}

En cada "if" se evalúa uno  de los campos, y si la expresión no pasa la evaluación, entonces se escribe el error,  se muestra la etiqueta junto al campo correspondiente: 

sp_fname.innerHTML = "Por favor digite un nombre válido";
sp_fname.setAttribute('style','display:inline');

Y por último, se marca en false la variable continuar, esto detendrá el envío del formulario:




continuar = false;

Este código es muy sencillo y se pueden validar la cantidad de campos que se quiera y fue creado con la intención de aprender a dominar JavaScript.
Actualmente existen métodos mas sencillos para lograr esta validación basados en jQuiery y derivados.

Descargar archivos de este ejemplo:validacion-de-formularios.rar.
ver este ejeplo online


Si te ha gustado esta entrada, comenta es gratis!!!  o Suscríbete a nuestro blog.

viernes, 27 de julio de 2012

Multi editor de codigo Sublime Text 2.0

Aunque no es una herramienta libre, Sublime Text es un excelente y potente editor de código, su interfase es sencilla, limpia e intuitiva, con cierto parecido a la interfase de pestañas de Chrome, soporta el uso de Snippets y Plugins, es altamente configurable y es gratuito, aunque la versión de pago ofrece algunas funciones extra y cuesta $59.



Esta aplicación me ha resultado muy útil en diseño web por la facilidad de manejar archivos html y css con marcadores, auto completado y auto guardado.

La verdad es que he quedado muy impresionado con el webcast de Sublime text presentada por desarrolloweb en el que muestran lo potente que puede ser esta herramienta y la activa que es su comunidad en español, pues ya han preparado una guía para el uso de esta herramienta disponible desde aquí.

Hace unos dias desarrolloweb ha presentado dos webcast explicando como instalar, configurar y utiliza Sublime text 2, aqui les dejo las grabaciones, tambén pueden suscribirse en desarrolloweb para recibir información de los proximos Webcast que se estarán presentando.


Conociendo Sublime Text 2:




Sublime Text 2, 2º round, Desde cero!







Algunas de sus principales características:

- Soporte de Snippets y Plugins para extender funciones.
- Soporte nativo para infinidad de lenguajes. 
-Preview de la estructura del código a un lado del tab. Es muy útil para desplazarse por el archivo y puede ocultase si se quiere.
- Multi Selección de un término por diferentes partes del archivo con Cmd+D en Mac OS X o Ctrl+D en Windows y Linux.
- Multi Cursor para escribir texto de en diferentes posiciones en al mismo tiempo.
- Paleta rápida de comandos Shift+Cmd+P en Mac OS X o Shift+Ctrl+P en Win y Linux.
- layouts configurables para trabajar con única o múltiples ventanas.

- Remarcado de sintaxis es completamente configurable.
- Búsqueda Dinámica de expresiones regulares, archivos, proyectos, directorios, o por todo a la vez.  
- Auto completado y marcado y desplazamiento de llaves.
- Configuración completa de las funciones y atajos de techado.


Puedes bajarte Sublime text 2.0 para Linux, Windows y Mac OS desde su página de descargas: http://www.sublimetext.com/2
También en esta página encontrarás la version portable. El paquete para Linux también es portable, ya que solo lo descomprimimos y lo utilizamos.

Para instalarlo en Ubuntu: descargamos la versión para Linux o lo podemos hacer mediante este comando:


32 bits
wget http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1.tar.bz2
tar -zxvf Sublime Text 2.0.1.tar.bz2

64 bits
wget http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1%20x64.tar.bz2
tar -zxvf Sublime Text 2.0.1 x64.tar.bz2


Si te ha gustado esta entrada, comenta es gratis!!! o Suscríbete a nuestro blog.




martes, 24 de julio de 2012

Expresiones Regulares y JavaScript


Es común que en internet hagamos uso de formularios: para hacer compras, para escribir comentarios, para descargar software, suscripciones, etc. Y es muy común que esa información que digitamos sea comprobada por el sitio web para saber si es válida o no, esto con el fin de prevenir que llegue información errónea al servidor.  Así que si agregas algún formulario a tu web, te verás en la necesidad de validarlos.

Por ejemplo si en tu formulario tienes un campo de email, deberás validar si lo que está introduciendo el usuario es realmente un email. Esta comprobación debe hacerse en la maquina cliente y no en el servidor que ya que éste tiene una gran carga de transacciones y es mucho mas rápido y eficiente hacerlo en la máquina cliente.

Para realizar tal efecto, claro está, usaremos lenguajes del lado del cliente como JavaScript para validar si la cadena introducida por el usuario es un email. Y al trabajar con validaciones con cadenas nos usaremos expresiones regulares.

Las expresiones regulares son modelos que describen las combinaciones de caracteres en el texto. Se podrían definir como una serie de caracteres que forman un patrón, que serán reemplazados por la cadena que cumpla con el patrón, de tal forma que podemos comparar el patrón con otros conjuntos de caracteres para ver las coincidencias. 

La expresión regular inicia con /^ y finaliza con $/. 

/^ expresión regular $/

Un email se compone de cuatro partes:

usuario + @ + servidor + dominio

Nombre
Debe de empezar por letra o numero. Al menos tiene una letra o número. La letra o número se expresa mediante el carácter \w. Para asegurarnos de que la letra o número aparece al menos una vez utilizaremos el modificador +.
Puede contener puntos y guiones además de las letras y números. Esta combinación podrá aparecer, es por ello que utilizaremos el modificador * (cero o varias veces). Insertaremos toda la combinación entre paréntesis.
Su expresión regular, para ambos casos, será la siguiente:

\w+([\.-]?\w+)*

Dominio
Irá al final, detrás de un punto. Podrá tener dos (.es, .fr, .it,...) o tres letras (.com, .net, .org,..) o cuatro (.mobi, info,...). Si queremos indicar un número concreto de caracteres lo expresamos con el número entre los operadores { y }
Además podemos tener varios dominios seguidos (.com.ar, .com.uk,....) es por ello que deberemos de usar el modificador +. Ya que el dominio podrá aparecer varias veces.
Su expresión regular será como sigue:

(\.\w{2,3,4})+

La expresión regular final para validar el email con JavaScript sería: 

/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/


Ahora colocamos la Expresión dentro del código JavaScript:

function validarEmail(valor)
     {
       /** comentario**/
       if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/.test(valor))
       {
         alert("La dirección de email " + valor + " es válida.");
       } else 
       {
         alert("Gracias!, email guardado");
       }
     }

Esta es la métrica para escribir expresiones regulares:
^ Principio de entrada o línea.
$ Fin de entrada o línea.
* El carácter anterior 0 o más veces.
+ El carácter anterior 1 o más veces.
? El carácter anterior una vez como máximo (es decir, indica que el carácter anterior es opcional).
. Cualquier carácter individual, salvo el de salto de línea.
x|y x o y.
{n} Exactamente n apariciones del carácter anterior.
{n,m} Como mínimo n y como máximo m apariciones del carácter anterior.
[abc] Cualquiera de los caracteres entre corchetes. Especifique un rango de caracteres con un guión (por ejemplo, [a-f] es equivalente a [abcdef]).
[^abc] Cualquier carácter que no esté entre corchetes. Especifique un rango de caracteres con un guión (por ejemplo, [^a-f] es equivalente a [^abcdef]).
\b Límite de palabra (como un espacio o un retorno de carro).
\B Cualquiera que no sea un límite de palabra.
\d Cualquier carácter de dígito. Equivalente a [0-9].
\D Cualquier carácter que no sea de dígito. Equivalente a [^0-9].
\f Salto de página.
\n Salto de línea.
\r Retorno de carro.
\s Cualquier carácter individual de espacio en blanco (espacios, tabulaciones, saltos de página o saltos de línea).
\S Cualquier carácter individual que no sea un espacio en blanco.
\t Tabulación.
\w Cualquier carácter alfanumérico, incluido el de subrayado. Equivalente a [A-Za-z0-9_].
\W Cualquier carácter que no sea alfanumérico. Equivalente a [^A-Za-z0-9_].

Mas informacion: expresiones regulares
 

Si te ha gustado esta entrada, comenta es gratis!!! o Suscríbete a nuestro blog. 



lunes, 23 de julio de 2012

Traducir Página Web con JavaScript


Hola a todos, días atrás tuve la necesidad de investigar e implementar este código y logré encontrar la forma de traducción de un texto en mi web madiante eventos,  en realidad lo que hace es reemplazar el contenido de una etiqueta tipo Paragraph <p> o de cualquier tipo de etiqueta. Además agiliza mucho más tu sitio ya que es más rápido para cargar que una copia de tu página indexada.

A mi me fue muy útil, les dejo el código Saludos… 



<html>
<head>
<title>Una Web + Libre</title>
<h1>Una Web + Libre</h1>
<script type="text/javascript">
 
function español()
<!--funciones y contenido a nuestras etiquetas-->
document.getElementById("p1").innerHTML = "Bienvenidos!";
document.getElementById("p2").innerHTML = "Todo el parrafo estaria aquí Una Web + Libre";
}
 
function ingles()
{
document.getElementById("p1").innerHTML = "Welcome!";
document.getElementById("p2").innerHTML = "Paragraph here A web + freer";
}

</script>
 
</head>
<body onload="español()"><!--ejecutamos la función inicial-->

<input align="center" type=image src="ruta de la bandera española" width="40" height="30" onClick="español();">

<input align="center" type=image src="ruta de la bandera Inglesa" width="40" height="30" onClick="ingles();">

<p align="center" id="p1" ></p>
<p align="center" id="p2" ></p>

</body>
</html>



Ver ejemplo online.

Si te ha gustado esta entrada, comenta es gratis!!! o Suscríbete a nuestro blog.
 

viernes, 20 de julio de 2012

Diseño Sensible - Responsive layaut


Si quieres que tu web, se visualice tanto en pcs como en smartphones, tienes dos opciones. La primera: crear dos versiones de la pagina y utilizar un script de carga para seleccionar la versión a mostrar dependiendo del dispositivo o usar responsive layaut.


El diseño sensible (responsive layaut) es un estilo que nos permite desarrollar páginas web que se visualicen de forma correcta en cualquier dispositivo y resolución. Las páginas se redimensionan, ajustan, cambian de imágenes y se acoplan la resolución disponible en el dispositivo en el que se visualiza. Esto reduce el tamaño total del la web en el servidor y minimiza las tareas de mantenimiento.


Ventajas:

1- No hay que rediseñar la misma página para cada dispositivo: pc, Tablet, Smartphone.
2- No hay que crear versiones ajustables a los porcentajes de resolución (diseño fluido).
3- Mejor adaptación al dispositivo final y al usuario.
4- Sitios más escalables y fáciles de mantener.

Técnicas

Grid fluidos: tablas que mantienen sus porcentajes de ancho en diferentes resoluciones.
Imágenes flexibles: imágenes en capas móviles, que se recortan o imágenes con fondo escalable.
CSS3 media querys: capases de obtener la anchura del dispositivo, su resolución u orientación.
Cambios de contenido: mostrar u ocultar imágenes, columnas u otros objetos dependiendo del espacio en pantalla a través de la propiedad “display: none”.


Si te ha gustado esta entrada, comenta es gratis!!! o Suscríbete a nuestro blog.

 


domingo, 15 de julio de 2012

Charsets y Entidades HTML



Los charsets son codificaciones que podemos incluir en nuestras paginas web para visualizar correctamente algunos caracteres como por ejemplo a ñ-Ñ del alfabeto español o símbolos acentuados o especiales de una región, ideogramas o fonemas. Para caracteres especiales del español se utilizan UTF-8 ó ISO-8859-1 que los podemos incluir el código html de declarándolo en los metatypes de la siguiente manera:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
o bien
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Existen diversos charsets para diferentes idiomas por ejemplo para el chino:

<META HTTP-EQUIV= "Content-Type"CONTENT="text/html;charset= chinese">

Estándar ISO 8859
El estándar ISO 8859 fue formado por diferentes paquetes de caracteres para las lenguas más comunes. Este estándar fué definido por la ECMA (Asociación de Fabricantes Europeos de Computadoras) en 1980, y aprobado posteriormente por la ISO (Organización Internacional de Normas), y es el que se debe usar en el lenguaje HTML.
Las principales familias de caracteres pertenecientes al ISO 8859 son:

ISO-8859-1 (Latin1): cubre las lenguas de Europa del Oeste, incluyendo francés, español, catalán, vasco, portugués, italiano, albanés, holandés, alemán, inglés, sueco, noruego y otras más.

ISO-8859-2 (Latin2): Lenguas de Europa Central y Occidental, como checo, polaco, rumano, croáta y esloveno.

ISO-8859-3 (Latin3): esperanto y maltés.

ISO-8859-4 (Latin4): estonio, el letón, lituano y lapón.

ISO-8859-5 (alfabeto cirílico): Búlgaro, bielorruso, macedonio, ruso, servio y ucraniano.

ISO-8859-6 (alfabeto árabe): comprende las letras básicas de la lengua árabe.

ISO-8859-7 (griego): cubre todas las letras de la lengua griega.

ISO-8859-8 (hebreo): abarca los caracteres necesarios para escribir en hebreo y yídish.

ISO-8859-9 (Latin5) y ISO-8859-10 (Latin6): amplía los conjuntos de caracteres latinos anteriores, añadiendo las letras que faltaban para poder escribir completamente en turco y en islandés, letón, el esquimal, el lapón y las demás lenguas nórdicas.

Juegos de caracteres UCS y UNICODE
Estos estándares son mas recientes, más completos y unificados: el UCS (Juego Universal de Caracteres), que es en realidad el ISO-10646, evolución del estándar ISO-8859, y el UNICODE, que contienen en un solo charset todos los caracteres mundiales. Ambos estándares se basan en asignar un número hexadecimal único a cada carácter.

Entidades HTML
Las entidades html es código con los que el interprete html reconoce de forma directa ciertos caracteres.
Podemos utilizar entidades HTML en los casos en que el charset que usamos no reconozca cierto carácter o en el caso de usar caracteres reservados para el interprete de código html como <,>.
Los mas conocidos son los de acentuación y la ñ del español entre otras:

Caracteres html mas comunes
símbolo código símbolo código
á &aacute; Á &Aacute;
é &eacute; É &Eacute;
í &iacute; Í &Aacute;
ó &oacute; Ó &Oacute;
ú &uacute; Ú &Uacute;
ñ &ntilde; Ñ &Ntilde;


algunos símbolos html
símbolo código símbolo código
< &lt; > &gt;
& &amp; " &quot;
¡ &iexcl; ¢ &cent;
¬ &not; ° &deg;
µ &micro; &para;
© &copy; ® &reg;

Ver ejemplo de html entities


Seguidores