jueves, 16 de octubre de 2014

Validar formularios con HTML5

Como muchos de vosotros ya sabréis, HTML5 ha aportado nuevas características de validación de formularios con el atributo required de los elementos <input>. Sin embargo sigue siendo necesario realizar la validación clásica ya que ciertos navegadores como Internet Explorer 9 y anteriores y Safari no soportan dicho atributo.

El primer paso que debemos dar sería indicar que un elemento es obligatorio de la siguiente forma:




Con esto conseguiremos que simplemente nos aparezca un mensaje genérico por parte del navegador. Si queremos personalizar dicho mensaje usaremos el atributo title:



Si queremos ir más allá y validar que lo que escribamos en el email tenga un formato correcto añadiremos el atributo pattern:



Con esto ya hemos conseguido validar el formato y mostrar un mensaje personlizado, pero podemos hacérselo un poco más fácil al usuario que debe introducir su email escribiéndole por defecto el formato dentro del mismo texto con el atributo placeholder:



Fuentes:

http://www.w3schools.com/tags/att_input_required.asp

martes, 14 de octubre de 2014

Samsung anuncia que está trabajando en un nuevo estándar de Wifi que multiplicará hasta por 5 la velocidad actual

El gigante surcoreano ha anunciado que está trabajando en un nuevo estándar Wifi, el llamado 802.11ad, que según indican, multiplicará hasta por cinco la velocidad de conexión del estándar actual.

Este nuevo estándar que está desarrollando Samsung utiliza ondas de 60 GHz para la transmisión en lugar de los 2.4 o 5 GHz que se utilizan actualmente. Para ello "Samsung ha superado satisfactoriamente las barreras para la comercialización de la tecnología WiFi de 60 GHz y está deseosa de poder empezar a comercializar esta nueva tecnología", ha explicado en el blog de la empresa, Samsung TomorrowKim Chang Yong, Director del Centro DMC R&D de Samsung Electronics.

Según explican en el mismo blog, a diferencia de las tecnologías Wifi actuales a 2.4GHz y 5GHz, el nuevo estándar 802.11ad de Samsung, mantiene la velocidad máxima eliminando las interferencias del canal de transmisión, independientemente del número de dispositivos que estén utilizando la misma red.

Con todo esto la velocidad de transmisión llegaría hasta los 4.6 Gbps o 575 MB por segundo, cinco veces más que los 866 Mbps o 108 MB por segundo, que es la máxima velocidad posible actualmente. Como resultado, un fichero de 1GB podría enviarse en menos de tres segundos entre dos dispositivos conectados a la misma red Wifi.

Los planes de Samsung Electronics pasan por empezar la comercialización de esta nueva tecnología a partir del 2015 o 2016 y pretenden implantarla en "dispositivos visuales y médicos" así como en el equipamiento de sistemas de telecomunicación, el desarrollo del hogar inteligente de Samsung y otras iniciativas relacionadas con el Internet de las cosas.


Fuentes:

http://global.samsungtomorrow.com/?p=43234
http://www.elmundo.es/tecnologia/2014/10/13/543ba783e2704e23238b457c.html

lunes, 13 de octubre de 2014

Eliminar elemento array Javascript

Si deseamos eliminar un elemento de un array en Javascript tenemos varios métodos que podemos utilizar:

Operador delete


Con el operador delete realmente no estamos eliminando. Si nos fijamos lo que realmente hemos conseguido es establecer el valor undefined al elemento del array.
var myArray = ["A", "B", "C"];
delete myArray[1];  // myArray -> ["A", undefined, "C"]

Método pop()


Si lo que necesitamos es eliminar un elemento al final de un array podemos utilizar este método pop().
var myArray = ["A", "B", "C"];
myArray.pop();  // myArray -> ["A", "B"]


Método shift()


Con este operador shift() lo que conseguimos hacer es eliminar el primer elemento del array.
var myArray = ["A", "B", "C"];
myArray.shift();  // myArray -> ["B", "C"]

Método splice(index, count)


A pesar de que el método splice() sirve también para añadir elementos a un array, si solamente usamos los dos primeros parámetros, lo que estaremos haciendo será eliminar elementos. Con este ejemplo podremos apreciar mejor qué sucede.
var myArray = ["A", "B", "C"];
myArray.splice(1, 1);  // myArray -> ["A", "C"]

Resumen


En resumen, si tenemos un array definido de la siguiente forma: myArray = ["A", "B", "C"] los métodos vistos anteriormente nos devolverán los siguientes resultados:
  • delete myArray[1] -> devuelve ["A", undefined, "C"]
  • myArray.pop() -> devuelve ["A", "B"]
  • myArray.shift() -> devuelve ["B", "C"]
  • myArray.splice(1, 1) -> devuelve ["A", "C"]
  • myArray.splice(0, 2) -> devuelve ["C"]
  • myArray.splice(1, 0, "D", "E") -> devuelve ["A", "D", "E", "B", "C"]


viernes, 26 de septiembre de 2014

Instalar librería mcrypt de PHP en CentOS 6

En Centos 6 no viene por defecto el repositorio para descargarnos la extensión mcrypt para PHP. Para instalar el paquete mcrypt de PHP tenemos que habilitar el repositorio epel e instalar el paquete php-mcrypt.

Para ello realizaremos los siguientes pasos:

1. Conectar con el equipo Linux vía SSH con el usuario root.

2. Descargar el último repositorio epel. Antes hay que averiguar tal y como he explicado en el anterior post si la arquitectura es de 32 o 64 bits.

  • CentOS 6 32 Bit 

          $ wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

  • CentOS 6 64 Bit 

          $ wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm


3. Instalar el repositorio descargado

    $ rpm -ivh epel-release-6-8.noarch.rpm


4. Instalar el paquete mcrypt

    $ yum install php-mcrypt


5. Reiniciar Apache

    $ service httpd restart


6. Comprobar si el paquete está correctamente instalado

    $ php -m | grep -i mcrypt


En el caso en que al instalar el paquete nos dé el siguiente error:

Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

Lo que tenemos que hacer es editar el fichero /etc/yum.repos.d/epel.repo y donde pone https:// cambiarlo por http:// y volver a ejecutar a partir del punto 4.

Saber si la versión de Linux es 32 o 64 bits

En el post anterior os explicábamos la forma de obtener la versión de distribución del equipo Linux al que nos encontrábamos conectado mediante cat /etc/issue.

Pero además, otra información que nos puede interesar conocer es si el sistema tiene una arquitectura de 32 bits o 64 bits. Para esto vamos a utilizar el comando uname. Este comando tiene varios argumentos aunque el que más nos interesa para este caso es:

$ uname -m

Este comando devolverá una de estas dos posibilidades sobre la arquitectura:
86_64 - Arquitectura de 64 bits
i686 - Arquitectura de 32 bits

Como saber que distribucion y versión de Linux tenemos instalada

Hay veces en las que necesitamos conocer la distribución y versión de Linux que tiene el equipo al que nos estamos conectando.
Para ello tenemos varias posibilidades, aunque la más simple sería esta:
cat /etc/issue
En este caso nos devuelve:
CentOS release 6.4 (Final)
Con lo que obviamente vemos que se trata de la versión 6.4 de CentOS.