27 de julio de 2016

Tutorial HTML5 y Canvas



¡Hola developer! Como imagino ya sabrás, la semana pasada hice una encuesta en twitter para que me dijerais que era lo próximo que querías ver en el blog y salio ganador el tema Frontend. Así que pensé ¿Quien mejor que Martin Schwarz, nuestro experto en frontend para hablarnos del tema?

Si quieres participar en siguientes encuestas puedes seguirme en twitter: @rsdeveloperblog

Una vez más para el blog de Rubén Soler les saluda Martin Schwarz Torres @martin_scto, en la entrada de hoy hablamos de HTML5, la última y más actual versión del Hyper Text Markup Language.

Por todos los programadores frontend es conocido que se han añadido nuevas etiquetas entre las cuales destacamos:
Keygen Email Color Canvas
Nos centraremos en Canvas pero primero conoceremos de forma sencilla que se puede hacer con cada una de ellas:
  • Etiqueta Keygen

Los nuevos campos para la generación de claves aún están en proceso de poder ser implementados en todos los navegadores del mercado. Se basa en una simple línea de código que añadimos a una plantilla básica de php dentro de un formulario:


Con la adición de la etiqueta, logramos que al cargar la web en los navegadores compatibles, se nos permita generar de la nada un password con la complejidad que nosotros deseemos, media o alta.


Esta es una forma sencilla de generar claves aleatorias con cifrado, en posteriores entradas ahondaremos a cerca del control de este tipo de entradas.
  • Etiqueta e-mail

Ya no es necesario dar estilos a los formularios para resaltarlos cuando se comete un error al escribir una dirección mail. Con esta etiqueta validamos automáticamente la entrada y le damos su formato de forma sencilla, con una simple línea de código.


Al incluir el input correspondiente, logramos tener un campo que de forma automática valida si lo que escribimos se trata de un correo electrónico.

En este caso de forma intencionada obviamos teclear el @ de la dirección mail y la etiqueta html5 al ser interpretada por el navegador, no nos permite enviar en el formulario ese tipo de contenido. Pero igual ocurre si introduciendo el @ no completamos la dirección de correo:

Como desarrollador frontend nos ahorramos definir los estilos de las alertas, e incluso la programación en Javascript para que estas aparezcan al darse un error.
  • Etiqueta color

Una de las grandes novedades de HTML5 es la posibilidad de insertar un selector de colores. Lo que posibilita una interacción completa con el usuario permitiendo darle a elegir tonalidades para diferentes funciones, como puede ser elegir el color de un producto o de un tema de la web. 

Se inserta de forma sencilla como mostramos a continuación, dentro de un input, el tipo “color”:


De esta forma podremos elegir el color que deseemos.


  • Etiqueta Canvas

Sin duda una de las grandes ventajas para los desarrolladores frontend. Se utiliza en el mercado para diferentes funciones tales como espacios publicitarios, juegos en el navegador ( dinosaurio de Google) o bien para insertar videos o imágenes de forma simple y con un control total. Para este tipo de etiqueta necesitamos añadir el archivo canvas.js en función de lo que queramos realizar. Y me refiero con ello, a que ya los navegadores son capaces de reconocer pequeños lienzos con figuras simples o bien poco contenido. Para nuestro caso creamos una estructura básica, un lienzo de 500 por 300 pixels al que llamamos “lienzo”.


Creamos un archivo de Canvas donde introducimos por medio de Javascript los contenidos:


Y obtenemos el siguiente resultado en pantalla:


Realmente el texto que vemos representado en el navegador no actúa como tal, es decir, no se puede seleccionar, no se puede copiar y pegar. Esto se debe a que está como contenido del canvas y no como contenido de la web de forma directa en el sentido más estricto de la palabra. Este tipo de contenidos puede albergar publicidades o anuncios, donde no interesa que se seleccione lo que se ve, sino que al hacer click, se destine al usuario a un espacio web distinto o un enlace externo.

En próximas entradas veremos más a fondo el uso de canvas, la mezcla de este con Sprite para generar iconos internos y toda la gama de posibilidades. 
¡Hasta la próxima!

Rubén Soler Web Developer

Soy muy autodidacta, además de mis estudios reglados siempre estoy aprendiendo cosas por mí mismo, me encanta lo que hago.

18 de julio de 2016

Livecoding el twitch de los programadores, programación en streaming


livecoding-in-java-youtube

¡Hola developer! En esta ocasión te voy hablar sobre algo que encontré en Internet  hace unos días, se trata de Livecoding.tv

Livecoding es una plataforma donde compartir las horas y horas que hechas programando con otros programadores, es una comunidad muy activa y solidaria. Gracias a su chat mientras estas retransmitiendo en streaming otros programadores pueden ayudarte a programar y así aprender juntos.

Además empezar es muy sencillo, solamente hay que instalar OBS (Un programa de retransmisión de video en directo) y seguir los pasos que indica la guía que proporcianan.

La idea me ha gustado tanto que me hice un canal allí y estoy haciendo periódicamente directos, si quieres me puedes seguir en este enlace: https://www.livecoding.tv/rsdeveloper/ Y así te enteraras cuando estoy retransmitiendo.

Además puedes buscar otros canales que te interesen y ver que están creando en ese momento. Están agrupados por lenguaje de programación de manera que eliges 3 lenguajes que te gustaría aprender y la plataforma te sugiere los directos que más te pueden interesar.

Como livecoding no esta muy de moda en la comunidad española y latinoamericana también retransmito simultáneamente en  Youtube, en el chat de youtube suelo hablar en español y en el de livecoding en ingles, puedes entrar en el que más te guste.

Aquí tienes un ejemplo del último directo que hice, estoy ahora trabajando en un reproductor de música de escritorio en Java SE.


Si quieres enterarte de cuando estoy programando en directo puedes seguirme en:

Livecoding: http://www.livecoding.tv/rsdeveloper
Facebook: http://fb.com/rsdeveloperblog
Twitter: http://www.twitter.com/rsdeveloperblog
Youtube: https://www.youtube.com/channel/UCSmMfbt6N9c1UkpkOcUAxiA

Espero que te haya gustado y ¡Hasta la próxima developer!

Rubén Soler Web Developer

Soy muy autodidacta, además de mis estudios reglados siempre estoy aprendiendo cosas por mí mismo, me encanta lo que hago.

12 de julio de 2016

Navegadores, resetear propiedades CSS


css-reset-propierties-browsers


Por todos es conocido que a diario utilizamos un variado número de navegadores. Para los desarrolladores web supone un handicap el hecho de tener que adaptar las especificaciones en cuanto a formato y estilo de los contenidos online, para que todos los usuarios que accedan a la información queden satisfechos. 

Cada navegador tiene parámetros css básicos preestablecidos con los que se muestran los contenidos web. Estos podemos verlos en las siguientes fuentes para conocer de primera mano la necesidad de resetear antes de desarrollar nuestro proyecto. 

Dicen que vale mas una imagen que mil palabras, por tanto, vamos a ver un ejemplo. Construimos un documento html básico con su respectivo documento css vinculado.

html-css

Obteniendo los siguientes resultados en los distintos navegadores:

se-muestra-diferente

Todos vienen con las configuraciones predeterminadas que nombrábamos al principio de este artículo. Que nos generan un molesto borde blanco en los extremos del contenido. ¿Cómo podemos evitar estas configuraciones para nuestros diseños? La respuesta es sencilla, reseteando los valores CSS. Ello se consigue añadiendo una entrada en el documento de hoja de estilos con el siguiente formato: 

solucion

Con el * lo que hacemos es englobar a todos los elementos a los que se puede dar formato. El siguiente paso es llevar a cero los parámetros que por defecto el navegador trae con valores. Obteniendo los siguientes resultados: 

solucion

De esta manera conseguimos que nuestros diseños comiencen en la coordenada 0,0. Lo cual da un toque de profesionalidad y calidad a los trabajos y mejora la adaptación de los contenidos a todos los tipos de pantalla y navegador. Hasta aquí la entrada de hoy. Especial agradecimiento a Rubén Soler por permitirme colaborar mano a mano en su blog.
Les saluda Martin Schwarz Torres @martin_scto
Hasta la próxima
Rubén Soler Web Developer

Soy muy autodidacta, además de mis estudios reglados siempre estoy aprendiendo cosas por mí mismo, me encanta lo que hago.

6 de julio de 2016

Entrevisto a Martin Schwarz, desarrollador web.


entrevista-desarrollador-web

¡Hola developer! He tenido la suerte de conocer a Martin Schwarz, un programador frontend miembro de las listas Top Freelance Francia y RSA influencers 2016 por Bastille, además fue Worldskill de su promoción.

He pensado que sería interesante hacerle algunas preguntas sobretodo para ti y los demás lectores y este es el resultado.
  • ¿Cómo aprendiste a programar?

Pues mi aprendizaje empezó estudiando la carrera de Ingeniería en tecnologías industriales. Una de las primeras asignaturas era Lenguajes de programación donde enseñaban lo básico de C++. Fue a raíz de ahí cuando empecé a explorar otros lenguajes y terminé decantándome por aquellos creados para el desarrollo web tales como HTML, CSS y Javascript.

  • ¿Dirías que eres feliz siendo programador? ¿Es una profesión que te llena? 

La verdad es que resulta gratificante muchas veces ver cómo algo que has creado puede llegar a ser útil para otras personas. Eso es lo que me hace feliz de programar. 

Para mi personalmente comenzó siendo un hobby al que le echaba muchas horas, y se terminó convirtiendo en algo que a día de hoy me ha servido para conseguir un puesto de trabajo. Por lo tanto me siento satisfecho y realizado gracias a la programación.

  • ¿Qué consejo darías a alguien que va a entrar en la universidad para aprender ingeniería de software?

Pues a todos aquellos que se decanten por ese camino lo que les recomiendo es que de antemano lleven una fuerte base en matemáticas y al menos conozcan un lenguaje de programación básico como C++, Java o Python.

  •  ¿Qué opinas sobre el "bum" que está teniendo la programación funcional últimamente?

Estamos entrando en una nueva era tecnológica, donde el IoT o “Internet de las cosas” va a marcar las tendencias del mercado gracias a las ingentes cantidades de información que emitimos en cada operación, como utiliza JyK para el análisis financiero. Eso favorece que la programación funcional vaya abarcando terreno y se abran nuevas puertas del mercado laboral para los desarrolladores especializados. Destacando Erlang como lenguaje de porgramación usado para aplicaciones tales como Facebook o Whatsapp.

  • ¿Cuál es tu lenguaje de programación favorito? ¿Utilizas algún framework? ¿Cuál o cuáles?

 La verdad es que me decanto por Javascript. La amplia variedad de plugins e implementaciones de utilidad tales como Jquery permiten realizar proyectos completos y profesionales. Además de permitir crear nuevas librerías y frameworks personales que facilitan los trabajos metódicos y recurrentes. Es así que la aparición de Angular y otras tecnologías comienzan a tomar gran relevancia en el mercado y se posicionan como herramientas de futuro.

A la segunda pregunta puedo contestar que normalmente, cuando necesito hacer maquetas web rápidas, recurro a Bootstrap. Pero las configuraciones de CSS de esos proyectos por ejemplo son más fáciles de trabajar utilizando el Framework Pure gracias a su versatilidad de uso. Pero sinceramente los proyectos en los que trabajo suelo hacerlos desde cero, ya que en su mayoría  se hacen a  medida.

  •  Con CSS3 llegaron las mediaquerys ¿Qué nos puedes contar sobre estas? 

Las mediaquerys permiten adaptar los estilos de los contenidos web a los diferentes tipos de dispositivos donde estos se van a mostrar. Destaca la regla @media de sencilla sintaxis con la que podemos elegir el tamaño de pantalla al que se aplicarán las normas que nosotros queramos, entre otras muchas funciones. 

mediaquerys

En este ejemplo aplicamos estilos a pantallas con una resolución de 700 px cuando el dispositivo se encuentre en su orientación “landscape”. Es una de las maneras más sencillas de adaptar los contenidos de nuestra web a las diferentes resoluciones, logrando trabajos con la denominación “Responsive”.

  • He oído a mucha gente decir que JQuery está en decadencia y que otros frameworks como Angular o React terminaran de matarlo ¿Crees que será así y por qué?

Cierto, Angular sobre todo está tomando gran importancia en el mercado y muy probablemente sustituya a JQuery como referencia. Está claro que estamos hablando de dos librerías con alcances distintos. Siendo JQuery con la que modificamos el estado de elementos de un proyecto y Angular un Framework que como su propio nombre indica, es mucho más potente y permite desarrollar aplicaciones web de gran calado.

La facilidad de uso y capacidad de desarrollo prima, así que inevitablemente el mercado cambiará a favor de Angular. Manteniéndose JQuery como referencia para modificaciones y como un amplio repositorio gracias a las grandes cantidades de desarrollos hechos con esta tecnología que ahora mismo están en internet.

  • ¿Utilizas alguna herramienta para ayudarte con el frontend de tus desarrollos como bootstrap o material design?

Normalmente los diseños que he desarrollado para web son a medida, debido a que los framework en algunas ocasiones no permiten hacer ciertas modificaciones que son necesarias. El desarrollo con este tipo de herramientas sólo lo realizo cuando son proyectos en los cuales prima más el plazo de entrega que el diseño complejo.

Es necesario saber diferenciar los proyectos y las tecnologías que vamos a utilizar porque será la clave para obtener grandes resultados.

  • ¿Dirías que la introducción de dispositivos móviles ha cambiado por completo el modo de desarrollar el frontend?

Ha modificado bastante la estructura básica de los proyectos. Tipografía, imágenes, logos, todo debe ser adaptado para que en los diferentes dispositivos la calidad de los contenidos sea óptima. Ya el programador no sólo piensa en como queda el proyecto en su pantalla, sino la facilidad de uso en el dispositivo móvil y la adaptación a los mismos. 

Definitivamente el volumen de trabajo ha crecido de forma exponencial con la inclusión de estos dispositivos en el desarrollo frontend.

  • Y por último ¿Tienes actualmente algún proyecto en mente o en desarrollo?

A día de hoy soy el desarrollador web de la empresa Ferretería Germán Medina SL, donde he implementado desde cero la tienda online del negocio www.germanmedina.es. Y próximamente espero montar una plataforma conjunta con desarrolladores para fortalecer la creación de proyectos de calidad.

Eso es todo, espero que te haya gustado y ¡Hasta la próxima developer!
Rubén Soler Web Developer

Soy muy autodidacta, además de mis estudios reglados siempre estoy aprendiendo cosas por mí mismo, me encanta lo que hago.