lunes, 28 de septiembre de 2015

Inscripciones abiertas 05 de Octubre

Inscripciones Abiertas el lunes 05 de OCTUBRE

El lune 05 de Octubre: Inscripciones abiertas, Diplomado de Programación,  Diseño Digital, Integración Web y Mercadeo  Inscripciones abiertas.

 CLASES PRESENCIALES:

  • Mañana  9am a 12m
  • Lunes a Viernes de 9am a 12m:  Jquery
  • Lunes a Viernes de 9am a 12m:  Mysql
  • Lunes a Viernes de 9am a 12m:  Photoshop nivel 1
  • Lunes a Viernes de 9am a 12m:  Android nivel 4
  • Tarde 2pm a 5pm
  • Lunes a Viernes de 2pm a 5pm:  Flash
  • Lunes a Viernes de 2pm a 5pm:  Illustrator nivel 1
  • Lunes a Viernes de 9am a 12m:   HTML 5
  • Lunes a Viernes de 9am a 12m:   Marketing viral
  • Noche 6pm a 9pm
  • Lunes a Viernes de 6pm a 9pm:  Javascript
  • Lunes a Viernes de 6pm a 9pm:  Postgre SQL
  • Lunes a Viernes de 6pm a 9pm:  JavaWebservices
  • Lunes a Viernes de 6pm a 9pm:  3D

Cursos online CLASES EN VIVO con el profesor abiertos:

Curso de Marketing viral on line 05 de Octubre 2015

Curso de WordPress 100% online 05 de Octubre 2015

Curso Especialización en Android 100% on line 26 de Octubre 2015

domingo, 27 de septiembre de 2015

Las nuevas cadenas de texto de JavaScript

Las cadenas de texto de JavaScript han sido desde siempre muy limitadas, sobre todo comparadas con las cadenas de lenguajes como PHP, Python o Ruby. Las Template Strings del estándar EcmaScript 6 (que están disponibles a partir de Google Chrome 41) eliminan todas estas limitaciones y permiten incluso definir DSLs (domain-specific languages) en tus aplicaciones JavaScript.
Las principales funcionalidades que aportan las Template Strings son:
  • Interpolación de cadenas.
  • Posibilidad de incluir (y evaluar) expresiones dentro de cadenas.
  • Definición de cadenas de texto en varias líneas sin tener que usar hacks.
  • Formatear cadenas de manera avanzada.
  • Cadenas etiquetadas.
En vez de añadir todas estas funcionalidades en las cadenas que conocemos y usamos a diario en JavaScript, lasTemplate Strings añaden sus funcionalidades de una manera completamente nueva.

Sintaxis

Las Template Strings utilizan las comillas invertidas o backticks para delimitar sus contenidos, en vez de las tradicionales comillas simples o dobles de las cadenas de texto normales. Así que este es un ejemplo de cómo definir una Template String:
// esto es una Template String
var saludo = `¡Hola Mundo!`;
// esto es una cadena normal con comillas simples
var saludo = '¡Hola Mundo!';
// esto es una cadena normal con comillas dobles
var saludo = "¡Hola Mundo!";
Aunque de momento las Template Strings no parecen gran cosa, sigue leyendo para descubrir todas sus funcionalidades.

Interpolación de cadenas

Una de las mejores características de las Template Strings es la interpolación de cadenas. En pocas palabras, la interpolación permite utilizar cualquier expresión válida de JavaScript (como por ejemplo la suma de dos variables) dentro de una cadena y obtener como resultado la cadena completa con la expresión evaluada.
Las partes variables de una Template String se denominan placeholders y utilizan la sintaxis ${ } para diferenciarse del resto de la cadena. Ejemplo:
// Sustitución simple de cadenas
var nombre = "Juan";
console.log(`¡Hola ${nombre}!`);
// resultado => "¡Hola Juan!"
Como dentro de las partes variables de la cadena se puede incluir cualquier expresión válida de JavaScript, en la práctica sirven para mucho más que mostrar el contenido de una variable. En los siguientes ejemplos se muestran cómo interpolar algunas operaciones matemáticas sencillas:
var a = 10;
var b = 10;
console.log(`¡JavaScript se publicó hace ${a+b} años!`);
// resultado => ¡JavaScript se publicó hace 20 años!
console.log(`Existen ${2 * (a + b)} frameworks JavaScript y no ${10 * (a + b)}.`);
// resultado => Existen 40 frameworks JavaScript y no 2000.
Dentro de un valor interpolado también se puede utilizar cualquier función:
function fn() { return "Este es el resultado de la función"; }
console.log(`Hola "${fn()}" Mundo`);
// resultado => Hola "Este es el resultado de la función" Mundo
La sintaxis ${} también funciona con expresiones que invocan métodos y acceden a propiedades:
var usuario = { nombre: 'Juan Perez' };
console.log(`Estás conectado como ${usuario.nombre.toUpperCase()}.`);
// resultado => "Estás conectado como JUAN PEREZ.";
var divisa = 'Euro';
console.log(`Los precios se indican en ${divisa}. Utiliza nuestro conversor para convertir ${divisa} en tu moneda local.`);
// resultado => Los precios se indican en Euro. Utiliza nuestro conversor para convertir Euro en tu moneda local.
Si la Template String contiene en su interior las mismas comillas que se usan para delimitar sus contenidos, escápalas usando la habitual barra invertida \ delante de la comilla:
var saludo = `¡\`Hola\` Mundo!`;

Cadenas en varias líneas

Definir una cadena de texto en varias líneas con JavaScript es sencillo, pero requiere de algunos hacks que ensucian el código de la aplicación. La solución más utilizada actualmente consiste en añadir una barra invertida antes de cada salto de línea. Ejemplo:
var saludo = "Hola \
Mundo";
Aunque este código funciona perfectamente en cualquier engine moderno de JavaScript, no deja de ser un hack. Otra forma de definir cadenas en varias líneas consiste en utilizar la concatenación de cadenas, aunque el resultado no es mucho mejor que el anterior:
var saludo = "Hola " +
"Mundo";
Las Template Strings simplifican drásticamente la definición de cadenas en varias líneas. De hecho, es tan sencillo que no hay que hacer absolutamente nada: pulsa <Enter> cada vez que quieras incluir un salto de línea en la cadena y ya está. Ejemplo:
var cadena = `Línea número 1 de la cadena
Línea número 2 de la cadena`;
Este código funciona bien porque cualquier espacio en blanco (incluyendo los saltos de línea) que se incluyen dentro de las comillas invertidas se considera que es parte de la cadena.

Cadenas etiquetadas

Otra de las funcionalidades avanzadas de las Template Strings son las "tagged strings" o cadenas etiquetadas. Las etiquetas permiten transformar los contenidos de una cadena aplicándoles una función. El nombre de la etiqueta se indica justo delante de la cadena y su nombre coincide con el de la función que se ejecutará para transformar los contenidos de la cadena:
fn`¡Hola ${nombre}! Tu última conexión fue el ${fechaUltimaConexion}.`
En este ejemplo, fn es el nombre de la etiqueta y por tanto, también es el nombre de la función que se ejecuta. El siguiente código muestra cómo se transforman realmente los contenidos de la Template String en los argumentos de la función:
fn(["¡Hola ", "! Tu última conexión fue el  ", "."], nombre, fechaUltimaConexion);
A continuación, se muestra un ejemplo práctico del uso de las cadenas etiquetadas. Imagina que en tu aplicación necesitas escapar todo el contenido HTML que puedan contener las cadenas de texto. Gracias a las cadenas etiquetadas, podrías definir una etiqueta llamada html y utilizarla de esta manera:
html`<b>${nombreUsuario} dice</b>: "${comentario}"`
Lo que queremos es que el contenido de las variables nombreUsuario y comentario se escape automáticamente para que no "rompan" el contenido HTML de la página. La función a desarrollar tendrá dos argumentos llamadosnombreUsuario y comentario. Los dos argumentos pueden contener caracteres problemáticos desde el punto de vista HTML (<>&, etc.)
La función html() que utilizaremos como etiqueta podría tener este contenido:
function html(parametros) {
var resultado = parametros[0];
var substituciones = [].slice.call(arguments, 1);
for (var i = 0; i < substituciones.length; ++i) {
resultado += escape(substituciones[i]) + parametros[i + 1];
}
return resultado;
}
function escape(s) {
return s.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/'/g, "&#39;")
.replace(/"/g, "&quot;");
}
var nombreUsuario = "Juan Perez";
var comentario = "aprendiendo <em>JavaScript</em> & <b>ES6</b>";
console.log(html`<b>${nombreUsuario} dice</b>: "${comentario}"`);
// resultado => <b>Juan Perez dice</b>: "aprendiendo &lt;em&gt;JavaScript&lt;/em&gt; &amp; &lt;b&gt;ES6&lt;/b&gt;"
Las posibilidades de las cadenas etiquetadas son prácticamente ilimitadas. Puedes utilizarlas para escapar información, formatear cadenas, traducirlas y cualquier otra sustitución avanzada que puedas imaginar:
// Escapar información
qsa`.${className}`;
safehtml`<a href="${url}?q=${query}" onclick="alert('${mensaje}')" style="color: ${color}">${mensaje}</a>`;
// Formatear valores en función del idioma (:numero y :divisa transforman el contenido)
l10n`Hola ${nombre}; eres nuestro visitante ${visitante}:numero. El saldo de tu cuenta es ${dinero}:divisa.`
 
// Embeber HTML/XML
jsx`<a href="${url}">${texto}</a>` // se transforma en React.DOM.a({ href: url }, texto)
// DSL propio para ejecutar comandos
var proceso = sh`ps ax | grep ${pid}`;

Resumen y referencias

Las Template Strings se pueden utilizar en Google Chrome 41, la Tech Preview de Internet Explorer, Firefox 35 y el framework io.js. La mayor parte de transpilers de ES6 también las soportan, como por ejemplo Tracuer.
Puedes encontrar más ejemplos sobre Template Strings en el repositorio de ejemplos de código de Google Chrome. Consulta también este artículo para descubrir el código equivalente en ES5 para conseguir una funcionalidad similar a la ofrecida por ES6.
Las Template Strings añaden funcionalidades muy interesantes a las cadenas de texto tradicionales de JavaScript. Entre otras, permiten interpolar expresiones, definir cadenas en varias líneas y crear tu propio lenguaje DSL gracias a las cadenas etiquetadas.
Esta última es la funcionalidad más importante, ya que gracias a las etiquetas, las aplicaciones pueden definir sus propios lenguajes DSL. En la práctica, las etiquetas reciben como argumentos las diferentes partes de una cadena y los procesan para obtener como resultado una nueva cadena.

Fuente:enlace
Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros 
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

jueves, 24 de septiembre de 2015

Cómo mostrar imágenes pixeladas con CSS 3

Las imágenes son una de las partes más importantes del diseño web. Normalmente dejamos que sean los navegadores los que redimensionen y escalen las imágenes para que encajen bien en el diseño y se vean lo mejor posible. No obstante, en ocasiones es mejor controlar explícitamente cómo se escalan las imágenes.
Por ese motivo, la versión 41 de Google Chrome añadió soporte para el nuevo valor pixelated de la propiedad image-rendering de CSS 3. Gracias a esta propiedad, podrás definir el algoritmo utilizado para ampliar las imágenes.
En concreto, el valor pixelated permite desactivar el suavizado de imágenes cuando se amplia su tamaño. Este suavizado normalmente se realiza mediante una interpolación bilineal. El valor pixelated hace que el algoritmo utilizado sea el denominado "nearest neighbor", que consigue imágenes perfectamente pixeladas (más adelante verás por qué a veces nos interesan las imágenes pixeladas en vez de suavizadas).
La siguiente imagen muestra el resultado de ampliar una imagen pequeña mediante el algoritmo por defecto de los navegadores:
Imagen escalada y suavizada
Utilizando el algoritmo asociado al valor pixelated, el resultado de ampliar la misma imagen es el siguiente:
Imagen escalada y pixelada
Para aplicar este algoritmo, simplemente utiliza la propiedad image-rendering con el nuevo valor pixelated:
<img style="image-rendering: pixelated;" width="100" height="100" src="...">
Si tu navegador es Google Chrome 41 u Opera 26, puedes probar la demo del funcionamiento de esta propiedad.
Además de las imágenes, esta propiedad se puede aplicar también a los siguientes elementos:
  • <canvas>
  • cualquier elemento con una propiedad background-image

¿Cuándo es útil mostrar las imágenes pixeladas?

Obviamente, si tu sitio incluye fotografías, nunca deberías aplicar esta propiedad porque se verían muy mal.
El primer caso de uso de esta propiedad son los juegos, ya que normalmente redimensionas el elemento <canvas> del juego para que ocupe toda la anchura del navegador. Antes el juego podía llegar a verse ligeramente borroso al ampliar la imagen, pero ahora se verá perfecto.
El otro caso de uso más útil es el de las aplicaciones que muestran códigos QR, códigos de barras y gráficos similares. En estas aplicaciones es normal que el usuario amplie la imagen del código hasta ocupe toda la pantalla del móvil, así que es muy importante mantener la pixelación de la imagen para que se reconozca el código sin problemas.
Esta es la imagen de un código QR ampliado y suavizado:
Esta es la imagen de un código QR ampliado y pixelado (sólo lo verás bien en Google Chrome 41 y Opera 26):


Fuente:enlace

Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros 
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

miércoles, 23 de septiembre de 2015

Aprende sobre las Media Queries, incorporadas en CSS3

Las Media Queries son, en una traducción rápida, consultas de las características del medio donde se está visualizando una web y nos sirven para definir estilos condicionales, que solo se aplicarán en caso que esa consulta del medio sea satisfactoria.
Son una de las herramientas fundamentales para implementar el "Responsive Web Design" y han llegado de la mano de las CSS3, convirtiéndose en un aliado fundamental de cualquier diseñador web.
En la mayoría de los casos las Media Queries sirven para definir estilos diferentes para distintos tamaños de la pantalla. Son sencillas de entender y aplicar, aunque el estándar es bastante sofisticado, con diversas posibilidades. Existen muchos usos, algunos no tan habituales en el mundo del diseño actual, pero que podrán tener su protagonismo en algún momento.
Nota: A modo de curiosidad, pues realmente no se usa mucho en el diseño actual, las media queries pueden decirnos si el dispositivo tiene una relación de pantalla 4:3 o 16/9, o una profundidad de color dada, por ejemplo. En este artículo nos encargaremos de conocer los casos más comunes de uso y más adelante nos adentraremos en estas otras características adicionales.

Paso al frente de las CSS

Las Media Queries representan una evolución importante de CSS, puesto que suponen la primera estructura condicional en el lenguaje. Sabemos que CSS no es un lenguaje de programación, ni tiene motivos para parecerse, pero existen muchas cosas que se implementan en los lenguajes de programación y que nos vendrían bien en el desarrollo con CSS, como es el caso de los condicionales.
"Si ocurre ésto, entonces haz tal cosa"
Una construcción condicional como esta es tan útil y básica que, aunque CSS no sea un lenguaje de programación, necesita incorporarlas. Ejemplos de casos en los que nos vendría bien un condicional:
- Si la pantalla del usuario tiene estas características, entonces aplica estos estilos 
- Si se imprime el documento en la impresora, aplica estos estilos. 
- Si la pantalla del dispositivo tiene estas dimensiones y además está situado en posición horizontal (landscape), entonces aplica este CSS.

Situaciones como esas son básicas y los diseñadores pueden resolverlas usando las Media Queries. Son un paso al frente en cuanto a la separación entre el contenido y su representación, puesto que nos facilitan que el contenido de una página pueda adaptarse al medio donde se está reproduciendo, sólo a través de la definición de estilos, sin tener que tocar el HTML para nada.

Alternativas para implementar Media Queries

Aunque la utilidad es novedosa, la sintaxis es parecida a lo que ya conocemos de las CSS, por lo que nos resultará bien sencilla.
Para producir Media Queries debemos tener siempre en mente la expresión condicional, aquella que debe cumplirse para que se apliquen ciertos estilos. Además la expresión condicional puede tener incluso varias condiciones, usando operadores lógicos como "and" para combinarlas. De modo que las circunstancias que se deban cumplir para aplicar unas reglas CSS sean de lo más variadas.
Alternativa 1: 
La primera alternativa de las Media Queries es a través del atributo media de la etiqueta LINK. Como sabemos, esa etiqueta es la que se usa para enlazar una hoja de estilo con un documento HTML. En ese enlace podemos especificar condicionales que deben cumplirse para que los estilos enlazados se apliquen. Por ejemplo, que se esté imprimiendo un documento o que la pantalla tenga cierta anchura mínima.

Recordamos, la etiqueta LINK tiene esta forma:
<link rel="stylesheet" href="estilos-generales.css">
Pues ahora simplemente le podemos agregar el atributo "media" indicando la condición que se debe cumplir para que estos estilos se apliquen:
<link rel="stylesheet" href="estilo-imprimir.css" media="print">
Este atributo media="print" quiere decir que los estilos deben aplicarse sólo cuando la página se están mostrando para la impresión.
Nota: Este uso ya lo vimos anteriormente en el artículo Estilos específicos para impresión.
<link rel="stylesheet" href="estilo-pantallas-grandes.css" media="(min-width:1200px)">
Este uso será seguramente más novedoso para ti. Quiere decir que esos estilos deben aplicarse sólo cuando la pantalla del usuario (En caso de ordenadores de escritorio, la ventana del navegador) tenga una anchura mínima de 1200 píxeles.
El problema de escribir tus Media Queries así es que tienes archivos de CSS separados. Es decir, aquellos estilos para impresión o para pantallas de 1200px están en archivos independientes, lo que es sencillo de administrar para nosotros, pero una mala práctica en términos de optimización de la web, puesto que se tienen que realizarse varias solicitudes al servidor distintas para traerse los CSS. En la práctica ralentiza la carga de la página en relación a hacer una única solicitud de un archivo CSS que contenga todo el código de los estilos.
Alternativa 2: 
Este método que vamos a ver ahora es más interesante y es el que se usa habitualmente a nivel profesional. Consiste en incorporar los estilos en una construcción @media donde se apliquen entre llaves todos los estilos que queremos para una consulta de medio dada.

@media (min-width: 500px) {
h1{
margin: 1%;
}
.estiloresponsive{
float: right;
padding-left: 15px;
}
}
Como puedes ver, tenemos la sentencia @media en la que podemos indicar entre paréntesis las condiciones que deben cumplirse para que se aplique esta media query. En este caso será para pantallas que tengan una anchura mínima de 500 píxeles.
Luego entre llaves colocamos todas las reglas y atributos de estilos CSS que necesitemos aplicar en esta situación. Las reglas de estilos son las mismas que pondrías fuera de la estructura condicional. Cuando la sentencia entre paréntesis se evalúe como verdadera, se aplicarán todas ellas.

Operadores lógicos para las Media Queries

Para combinar diversas condiciones podemos usar los operadores lógicos, de una manera similar a como se usan en lenguajes de programación. Los que tenemos disponibles son:
  • Operador and: las dos condiciones deben cumplirse para que se evalúe como verdadera. 
  • Operador not: es una negación de una condición. Cuando esa condición no se cumpla se aplicarán las media queries. 
  • Operador only: se aplican las reglas solo en el caso que se cunpla cierta circunstancia. 
  • Operador or: no existe como tal, pero puedes poner varias condiciones separadas por comas y cuando se cumpla cualquiera de ellas, se aplicarán los estilos de las media queries.
@media (max-width: 600px) and (orientation: landscape) {
h1{
color: red;
}
}
Esta regla se aplicaría para pantallas con una anchura máxima de 600 píxeles y cuando la orientación está en horizontal.
Nota: Ten en cuenta que la mayoría de smartphones simulan tamaños de pantalla mayores, haciendo una especie de dimensiones virtuales que faciliten la lectura de webs que no están diseñadas para Responsive Web Design. Por ello, lo más seguro es que tengas que poner el "viewport" en el documento HTML a algo como: 
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

Sin ese viewport tu móvil simularía que tiene unas dimensiones de unos 980 píxeles, cuando quizás la pantalla solo tenga una anchura real de 320 o 500 píxeles. 
Este asunto ya se explicó con detalle en el artículo sobre el viewport.
Para ver en funcionamiento la parte del orientation (landscape o portrait), tienes que usar un móvil o tablet y cambiar la posición de la pantalla, para que esté en horizontal o vertical.
Nota: Si tienes un ordenador que no reconozca el cambio de orientación la posición siempre será considerada será landscape.
@media tv and (min-width: 1200px){
h1{
margin: 10%;
}
}
Esta regla aplicaría en dispositivos de tipo televisión y cuya resolución minima de anchura sea de 1200 píxeles.
@media (min-width: 600px), handheld and (orientation: portrait) {
h1{
color: green;
}
}
Este mediaquery servirá para pantallas de minimas dimensiones 600 píxel y también para todos aquellos dispositivos handheld que estén en posición vertical.
Nota: Handheld es un término inglés que sirve para especificar aquellos dispositivos que son de mano. Pequeños ordenadores que se llevan en la mano, como los palm o agendas electrónicas que aparecieron antes de popularizarse los smartphones o tablets. Por mis pruebas handheld no aplica a los móviles o tablets.
Las Media Queries tienen muchas más posibilidades que no cubrimos con este artículo. Las veremos más adelante, pero sin duda con lo que ahora sabes podrás resolver el 98% de las necesidades que te puedas encontrar en el mundo del diseño web.
Si te interesa saber más sobre este tema, en este otro artículo de DesarrolloWeb.com te contamos la estrategia para aplicar las Media Queries en Responsive Web Design.



Fuente:enlace
Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros 
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

Entradas populares