slide1

Alt1040. Noticias acerca de Internet, diseño, música, cine, opiniones, weblogs y medios

Es uno de los weblogs de tecnología más seguidos de la blogosfera hispana.

slide2

Bitelia. Blog de software, internet y servicios web

Software y aplicaciones para mejorar tu vida, guías de uso, trucos, listas, noticias y todo sobre tecnología.

slide3

Xataka. Publicación de noticias sobre gadgets y tecnología.

Últimas tecnologías en electrónica de consumo y novedades tecnológicas en móviles, tablets, informática, etc.

slide4

Wwwhatsnew. Aplicaciones, marketing y noticias en la web.

Servicios que os pueden ser útiles para dibujar, gestionar tareas, hacer amigos, encontrar restaurantes...

slide5

Fayerwayer. Discusiones y opiniones de lo ultimo en tecnología y gadgets

Con secciones dedicadas a Internet, Software o Redes Sociales es un referente a nivel de tecnología en español.

Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

23 de octubre de 2017

Google pone fecha límite al uso de reCAPTCHA en su primera versión

Y remite la información a través de un email del tipo
"usted está recibiendo este correo electrónico porque está registrado como administrador del sitio web de reCAPTCHA, y su sitio web sigue utilizando reCAPTCHA v1, versión que dejará de funcionar a partir del 31 de marzo de 2018".


¿Qué es reCAPTCHA?


reCAPTCHA es un servicio gratuito que protege a los usuarios de Internet del spam y el abuso en sus sitios web, siendo el proveedor de CAPTCHA más utilizado en el mundo.

Utiliza técnicas avanzadas de análisis de riesgos para diferenciar a los humanos y los bots, impidiendo que el software automatizado participe en actividades abusivas en tu sitio web y permitiendo, al mismo tiempo, que los usuarios validados pasen con facilidad.

Con la nueva API, un número significativo de usuarios humanos validados superarán el desafío reCAPTCHA sin tener que resolver un CAPTCHA.



¿Cómo funciona?


La nueva version (reCAPTCHA v2) elimina completamente el recuadro con números y/o letras que estábamos acostumbrados a ver.



Esta tecnología analiza cómo han interactuado los usuarios en un sitio web, cómo hacen clic en el botón 'enviar formulario', cómo mueven el ratón, su comportamiento de navegación, etc.

De esta forma podremos acceder a un sitio web sin ser conscientes de que hemos pasado el filtro de la Inteligencia Artificial(IA) de Google y sin necesidad de detener la navegación para demostrar que no somos robots.

El nuevo CAPTCHA está disponible para todo tipo de webs y navegadores, y si la IA tiene dudas, mostrará un rompecabezas con imágenes en pantalla para validad la autenticidad del usuario.

reCAPTCHA se presenta en forma de widget que puedes añadir fácilmente a tu blog, foro, formulario de registro, etc.



¿Cómo integrar la api en tu blog o página web?


En la página para desarrolladores, Developer's Guide, se explican los pasos a seguir para su implementación.

Para comenzar a utilizar reCAPTCHA, tenemos que registrarnos para obtener un par de claves API para nuestro sitio.

El par de claves consiste en una clave pública del sitio y una clave secreta:

  • la clave pública se utiliza para invocar el servicio reCAPTCHA en tu sitio web o aplicación móvil.
  • la clave secreta autoriza la comunicación entre el backend (servidor web) de tu aplicación y el servidor reCAPTCHA para verificar la respuesta del usuario.
A continuación, elegimos el tipo de reCAPTCHA:

  • reCAPTCHA v2: requiere que el usuario haga clic en una casilla de verificación que indica que el usuario no es un robot.
  • Invisible reCAPTCHA: no requiere que el usuario haga clic en una casilla de verificación, sino que se invoca directamente cuando el usuario hace clic en un botón existente en su sitio o puede invocarse a través de una llamada API de JavaScript.
  • reCAPTCHA Android Library: esta librería proporciona APIs nativas de Android que puedes integrar directamente en una aplicación.
Por último, especificamos los dominios autorizados o nombres de paquetes (packages) para el uso de estas claves API.

Página de administración de claves API del servicio reCAPTCHA: Manage your reCAPTCHA API keys

Si ya estás registrado y quieres actualizar el servicio a la nueva versión, accede al panel de administración y genera un nuevo par de claves para tu dominio.

En el lado del cliente hay que añadir:

  • la librería javascript <script src='https://www.google.com/recaptcha/api.js'></script>
  • el siguiente elemento html <div class="g-recaptcha" data-sitekey="API_KEY"></div> dentro del formulario, dónde sustituimos el valor API_KEY por la clave pública del sitio.
El action del formulario html nos dirige hacia una página de servidor dónde se procesan los datos enviados por el cliente.

  • en la página de servidor, hay que sustituir el valor API_SECRET por la nueva clave privada.
Si quieres incorporar el captcha en tu página de WordPress, tan sólo tendrás que acceder a la siguiente página oficial e instalar el plugin siguiendo las instrucciones detalladas: https://es.wordpress.org/plugins/google-captcha/

API de Android de reCAPTCHA


Google presenta la nueva API de Android de reCAPTCHA (Making the Internet safer and faster: Introducing reCAPTCHA Android API).

Como parte de la API de Google SafetyNet, mitiga los riesgos en los dispositivos móviles a través de una seguridad mejorada y utiliza la última tecnología Invisible reCAPTCHA para optimizar la experiencia del usuario.




23 de enero de 2017

Alternativas a Google Feed API para añadir a tu web artículos de un blog

En el post Google Api hicimos mención a las APIs de Google que permiten acceder a múltiples servicios de forma muy sencilla. Una de las características de Google Feed Api era la posibilidad de integrar artículos publicados en cualquier blog en nuestra web, a modo de tablón de anuncios o sección de últimas noticias.


Desafortunadamente, Google ha decidido dejar de dar soporte a esta funcionalidad (Google Feed API Subject to the Deprecation Policy)

No obstante, existen otras opciones útiles para tal propósito.
En este post voy a hacer especial hincapié en estos tres servicios por su facilidad de uso:

  • FeedBurner: es un proveedor de gestión de fuentes web propiedad de Google. Proporciona herramientas de gestión de fuentes web RSS a bloggers, podcasters, y otros publicadores de contenido basado en tecnología web.
  • Yahoo Query Language: la plataforma YQL (Yahoo! Query Language) permite consultar, filtrar y combinar datos a través de la web mediante una única interfaz. Utiliza una sintaxis similar a SQL y puede leer información en formato HTML, XML, JSON, RSS, Atom y microformato devolviendo el resultado en formato xml o json.
  • Rss to Json online converter: se trata de una api creada por un desarrollador independiente que ofrece documentación en https://rss2json.com/docs con ejemplos funcionando en lenguajes de programación como Javascript, PHP, Ruby o Python.

Feedburner

El servicio FeedBurner permite convertir el Feed (Fuente o Canal web) de cualquier blog en un fragmento de código HTML para integrar en tu página web.
En el post "FeedBurner: como añadir entradas de un blog a tu web, sin plugins y en una línea de código." doy instrucciones precisas para utilizar esta api.
Vas a poder comprobar que el 100% es configuración dando como resultado un línea de código para integrar en tu blog o web.
<script src="https://feeds.feedburner.com/hipertextual/index?format=sigpro" type="text/javascript"></script>

Yahoo Query Language

Este servicio web de uso público presenta pocas limitaciones (Información de uso de esta api) y parece ser una opción válida para la visualización de canales RSS de recursos externos.
Dispone de una consola YQL Console que podemos utilizar para realizar consultas in situ y una guía YQL Guide para obtener más información sobre la creación de consultas.

<script>
  var mycallback = function(data) {
    var entry = data.query.results.rss.channel.item;
    var container = document.getElementById("feed"), date;
 for(var i = 0; i < entry.length; i++){
  dv = document.createElement("div");
  date = new Date(entry[i].pubDate);
  dv.innerHTML = '<a href="' + entry[i].link + '" target="_blank">' + entry[i].title + '</a><br/>' + date.toDateString().substr(4) + '<br/><div class="article">' + entry[i].description.substring(0,600) + '...</div>';
  dv.innerHTML += '<hr/>';
  container.appendChild(dv);
 }
  };
</script>
<div id="feed"></div>
<script src="https://query.yahooapis.com/v1/public/yql?q=select * from xml where url = 'http://feeds.feedburner.com/hipertextual'&format=json&callback=mycallback"></script>

Rss to Json online converter

La web facilita una caja de texto para introducir la url de un feed válido.
A continuación, pulsamos el botón Convert to Json y obtenemos la respuesta del documento en formato json.

<div id="feed"></div>
<script>
(function(){
 var url = "https://hipertextual.com/feed";
 var xhr = createCORSRequest("GET","https://api.rss2json.com/v1/api.json?rss_url="+url);
 if (!xhr) {
   throw new Error('CORS not supported');
 } else {
  xhr.send();
 }
 xhr.onreadystatechange = function() {
  if (xhr.readyState==4 && xhr.status==200) {
   var responseText = xhr.responseText; 
   var result = JSON.parse(responseText);
   var container = document.getElementById("feed"), entry = result.items, date;
   for(var i = 0; i < entry.length; i++){
    dv = document.createElement("div");
    date = new Date(entry[i].pubDate);
    dv.innerHTML = '<a href="' + entry[i].link + '" target="_blank">' + entry[i].title + '</a><br/>' + date.toDateString().substr(4) + '<br/><div class="article">' + entry[i].content.substring(0,600) + '...</div>';
    dv.innerHTML += '<hr/>';
    container.appendChild(dv);
   }
  }
 }
})();
function createCORSRequest(method, url) {
    var xhr = new XMLHttpRequest();
    if ("withCredentials" in xhr) {
        xhr.open(method, url, true);
    } else if (typeof XDomainRequest != "undefined") {
        xhr = new XDomainRequest();
        xhr.open(method, url);
    } else {
        xhr = null;
    }
    return xhr;
}
</script>


Escribimos este fragmento de código dentro del cuerpo de nuestro documento html y sustituimos la url 'https://www.tecnoblog.guru/feeds/posts/default' por la de nuestro feed. También podemos modificar el número de entradas a mostrar representado entry.length por un número entero.

Éste es el resultado final:




9 de septiembre de 2015

¿sabes cómo funciona un programa antivirus y cómo protegerte contra malwares?

Un antivirus no es más que un programa de seguridad que se instala en un equipo informático o dispositivo móvil para protegerlo de infecciones por malware.
El término "malware" hace referencia a cualquier tipo de software malicioso o malintencionado cuyo objetivo es infiltrarse o dañar una computadora o sistema de información sin el consentimiento de su propietario.

Este tipo de software incluye:

  • Virus: su función es alterar el normal funcionamiento del ordenador, sin el permiso o el conocimiento del usuario. Habitualmente, reemplazan archivos ejecutables por otros infectados con el código de éste.
  • Troyanos (Trojans): se presenta al usuario como un programa aparentemente legítimo e inofensivo, pero que, al ejecutarlo, le brinda a un atacante acceso remoto al equipo infectado.
  • Gusanos (IWorm): tiene la propiedad de duplicarse a sí mismos. Se propagan de computadora a computadora, pero a diferencia de un virus, tiene la capacidad a propagarse sin la ayuda de una persona.
  • Keyloggers: se encarga de registrar las pulsaciones que se realizan en el teclado, para posteriormente memorizarlas en un fichero o enviarlas a través de internet.
  • Botnets: hace referencia a un conjunto o red de robots informáticos o bots, que se ejecutan de manera autónoma y automática. El artífice de la botnet puede controlar todos los ordenadores/servidores infectados de forma remota.
  • Spyware o Programa espía: recopila información de un ordenador y después transmite esta información a una entidad externa sin el conocimiento o el consentimiento del propietario del ordenador.
  • Adware: muestra publicidad web al usuario durante su instalación o durante su uso para generar lucro a sus autores.
  • Rootkits: permite un acceso de privilegio continuo a una computadora pero que mantiene su presencia activamente oculta al control de los administradores al corromper el funcionamiento normal del sistema operativo o de otras aplicaciones.
  • Hijackers: realizan cambios en la configuración del navegador web. Por ejemplo, algunos cambian la página de inicio del navegador por páginas web de publicidad o página pornográfica, otros redireccionan los resultados de los buscadores hacia anuncios de pago o páginas de phishing bancario.
  • Dialers: toman el control del módem dial-up, realizan una llamada a un número de teléfono de tarificación especial, muchas veces internacional, y dejan la línea abierta cargando el coste de dicha llamada al usuario infectado.
  • Ransomwares o Secuestradores: cifran los archivos importantes para el usuario, haciéndolos inaccesibles, y piden que se pague un "rescate" para poder recibir la contraseña que permite recuperar los archivos.
  • etcétera...
Fuente: Malware (del inglés 'malicious software') - Wikipedia

Cualquier sistema operativo, incluyendo Mac OS X y Linux, puede ser infectado.
Y cada mes surgen nuevos virus que atacan a teléfonos inteligentes y tablets.


Cómo funciona un antivirus

Basicamente, existen dos formas de que un software antivirus identifique el malware:

  • Detección de firmas y
  • Detección de comportamiento.
La detección por firma funciona como el sistema inmune humano.
Se analiza el equipo en busca de características o “firmas” de programas maliciosos identificables.

Para ello hace uso de un diccionario de malware conocido, si hay algo en la computadora que coincide con un patrón en el diccionario, el programa intenta neutralizarlo.

Al igual que el sistema inmunológico humano, el enfoque del diccionario requiere actualizaciones (como vacunas contra la gripe) para proteger contra las nuevas cepas de malware. Un antivirus sólo puede proteger contra lo que reconoce como nocivo.

El problema con los atacantes cibernéticos es que están desarrollando nuevo malware tan rápido, que los desarrolladores de antivirus no pueden mantener el ritmo.

Con la detección de comportamiento, el antivirus no trata de identificar malware conocido pero monitorea el comportamiento de software instalado en tu computadora.

Cuando un programa actúa sospechosamente, como tratando de acceder a un archivo protegido o modificar otro programa, el software antivirus basado en comportamiento hace notar la actividad sospechosa y te advierte de ello.

Este enfoque proporciona protección contra nuevos tipos de malware que aún no existen en los diccionarios.

El problema con este enfoque es que puede generar falsas advertencias. Tú como usuario puedes sentirte inseguro sobre lo que debes permitir o no permitir y con el tiempo, llegar a ser insensibles a todas esas advertencias.

Puedes tener la tentación de hacer clic en “Aceptar” en cada aviso dejando tu computadora abierta a un ataque o una infección.
Además, en el momento en que se detecta el comportamiento, el malware probablemente ya se ejecutó en tu máquina y podrías ignorar qué acciones tomó antes de que el software antivirus lo identificara.

Extracto del boletín de seguridad preventiva del Instituto SANS (SysAdmin Audit, Networking and Security Institute), una de las organizaciones más prestigiosas de seguridad de la información que agrupa a 165.000 profesionales de la seguridad informática (consultores, administradores de sistemas, universitarios, agencias gubernamentales, etc).


¿Cómo protegernos contra "malwares"?

  • Instala un antivirus adecuado y un firewall o cortafuegos.
  • Utiliza contraseñas de alta seguridad: se recomienda que las contraseñas no contengan nombres completos, nombres reales o de tu empresa, así como números muy conocidos (número de teléfono o fecha de nacimiento).
    La web howsecureismypassword averigua la dificultad para descifrar tu contraseña por una computadora.
  • Mantén actualizados el sistema operativo y los navegadores web de tu equipo.
  • Usa el "sentido común": ten precaución al ejecutar software procedente de Internet o de periféricos como CD o memorias USB. No abras páginas o mails de orígenes dudosos o desconocidos.

¿Qué antivirus debemos usar?

En la actualidad, existen infinidad de antivirus y debemos elegir la solución que mejor se adapte a nuestras necesidades.
Voy a hacer mención especial a BitDefender Antivirus España por razones que expongo a continuación:

  • Dispone de un laboratorio de pruebas, un servicio técnico y convenios con diferentes universidades y entidades públicas como la Universidad Abierta de Cataluña o el Centro de Alerta Antivirus.
  • Posee múltiples certificaciones y premios internacionales: Bitdefender 2015 ha ganado cuatro premios de PC MAG y CNET, y obtuvo Editor’s Choice una crítica excelente de PC WORLD. El producto se desarrolla sobre una versión mejorada de Bitdefender 2014, la cual ganó el título de "Mejor Antivirus of 2014" y dos premios Editor’s Choice de PC MAG.
  • Ofrece software contra las amenazas a más de 500 millones de usuarios domésticos y soluciones corporativas en más de 180 países.
    Tiene oficinas en Estados Unidos, Reino Unido, Alemania, España (ubicadas en Madrid, Barcelona, Vigo, Las Palmas de Gran Canaria, Valencia y Sevilla), Perú y Rumanía. Además, posee una red local de distribuidores en más de 200 países.
  • Además de la protección antivirus habitual en este tipo de aplicaciones contra malware, spyware, ataques de phishing, etc., incluye un firewall, un gestor de contraseñas, control parental, un escáner para perfiles de Facebook (Safego) que bloquea posibles enlaces que podamos recibir a través de esta red social, una aplicación para borrado seguro de ficheros y, también, un navegador Web (Safepay) para acceder de forma segura a cualquier entidad bancaria que funciona en su propio escritorio sin interactuar con el resto del Sistema Operativo.
  • También ofrece una licencia gratuita para que puedas probar sus productos antes de adquirirlos.
Toda la información en:

Antivirus Bitdefender
Bitdefender Internet Security

Aquí os dejo un vídeo sobre Bitdefender Total Security 2015 Full (en español):




17 de agosto de 2015

Gadget para aumentar tu número de suscriptores - Blogger (Web Storage de HTML5)

Ya hablamos de la importancia del boletín electrónico o newsletter como herramienta de marketing y comunicación. También mencionamos las tres opciones de programación para implementar el código del gadget: a través de la ip del visitante, utilizando cookies o los métodos de almacenamiento del W3C Web Storage.

Y como lo prometido es deuda, voy a implementar el código de programación utilizando el método localStorage de HTML5.
Pero antes de ponernos a codificar vamos a realizar una breve introducción.

En las nuevas especificaciones de la W3C, HTML5 incorpora nuevos métodos para guardar información de los usuarios en los navegadores.
Para ello entran en acción Local Storage y Session Storage: estos dos métodos nos permiten guardar en el navegador pares de nombre/valor de manera muy sencilla.

¿qué ventajas fundamentales proporciona respecto de las cookies?

  • el almacenamiento DOM (DOM Storage) está diseñado para facilitar una forma amplia, segura y sencilla para almacenar información alternativa a las cookies.
  • la información se guarda en cliente web y no viaja con cada petición.
  • la capacidad de almacenamiento varía entre 2.5 y 5Mb dependiendo del navegador mientras que en las cookies el límite es de 4Kb.
    En la siguiente página web puedes comprobar cuantos caracteres puede almacenar tu navegador: Web Storage Support Test
  • el almacenamiento local es por dominio. Todas las páginas de un dominio pueden acceder a los mismos datos.
  • están soportados por los navegadores más modernos del mercado (IE/Edge, Firefox, Chrome, Safari, Opera, iOS Safari, Opera Mini, Android Browser, Blackberry Browser, Opera Mobile, Chrome for Android, Firefox for Android, IE Mobile, UC Browser for Android).
    Toda la información en Caniuse: Web Storage - name/value pairs

Estos son los pasos a seguir para añadirlo a nuestra web o blog


  1. Selecciona la entrada Diseño del panel principal de Blogger.
  2. Pulsa sobre el link Añadir un gadget y se abrirá una ventana con diferentes alternativas
  3. Desplazamos el scroll de la nueva ventana hacia abajo hasta llegar a la opción:

    HTML/JavascriptAñadir
    Añade una característica de un tercero u otro código a tu blog.





  4. En la caja Contenido pega el siguiente código:

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jmacuna/subscription-feedburner@master/style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script>
    idleTime = 0;
    $(document).ready(function(){
    try{
     $limit = 5; //seconds
     if(!localStorage.test_status){
      function timerIncrement() {
       idleTime = idleTime + 1;
       if (idleTime > $limit) {
        $('html, body').css('overflow', 'hidden');
        $('.subs-popup ').fadeIn('slow');
        idleTime = 0;
       }
      }
      // Increment the idle time counter every second.
      var idleInterval = setInterval(timerIncrement, 1000); // 1 second
      // Zero the idle timer on mouse movement.
      $(this).mousemove(function (e) {
       idleTime = 0;
      });
      $(this).keypress(function (e) {
       idleTime = 0;
      });
      localStorage.test_status = 1;
     }
     $('.email-close').click(function() {
      $('.subs-popup').fadeOut('slow');
      $('html, body').css('overflow', 'auto');
      $limit = 9999;
     });
    }catch(e){
     alert(e.message);
    }
    });
    </script>
    <div class="subs-popup">
     <div id="newsletter">
      <div class="email-close">X</div>
      <div class="newsletter-wrap">
       <h4>Suscríbete y recibe<br/>contenido exclusivo</h4>
       <p>Las últimas novedades del blog<br/>directamente a tu email.<br/><br/></p>
       <form action="http://feedburner.google.com/fb/a/mailverify?loc=es-ES&uri=[FEED_DE_TU_BLOG]" method="post" onsubmit="$('.email-close').click();window.open('about:blank', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true" target="popupwindow" novalidate="">
        <input name="uri" type="hidden" value="bloggertrix"/>
        <input name="loc" type="hidden" value="en_ES"/>
        <input type="email" value="" name="email" placeholder="Tu e-mail aqui..." required=""/><br/><br/>
        <input type="submit" value="Suscribirme" class="button-popup">
       </form>
      </div>
     </div>
    </div>
    
  5. Por último hacemos click sobre el botón Guardar

Vamos a analizar los parámetros que intervienen en el código:

  • $limit = 5: tiempo de espera en segundos (desde que se carga la página) para mostrar el popup de suscripción.
  • [FEED_DE_TU_BLOG]: feed de suscripción de tu blog.
    Más información en ¿Qué es el feed de un sitio?
Como indicación final, resaltar que la hoja de estilo que utilizo (style.css) así como el formulario son totálmente personalizables.




2 de febrero de 2015

Resalta el código fuente de tu web con Google Code Prettify

¿cuántas veces hemos recurrido a internet para consultar lenguajes de programación tan conocidos como html e insertar fragmentos de código en los blogs, foros o cualquier página web?
La manera más fácil y rápida de entender el código fuente es resaltar su sintáxis con diferentes colores.


En la red podemos encontrar multitud de servicios online para resaltar bloques de código fuente. Algunos de los más conocidos son:

Otras páginas nos ofrecen la posibilidad de descargar archivos (ficheros javascript y css) para instalar en nuestra web:

De todas las opciones disponibles he decidido usar Google Code Prettify por dos razones de peso:

  • No necesito instalar ninguna librería
  • Es muy fácil de usar: para integrarlo en mi blog, voy a escribir muy pocas líneas de código (a continuación os mostraré varios ejemplos).
Las características fundamentales de este resaltador de códigos son:

  • No bloquea la carga de la página mientras se ejecuta
  • Detecta automáticamente los bloques de código y el lenguaje de programación usado
  • Reconoce los lenguajes tipo C, Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, Ruby, PHP, VB, y Awk
  • Es compatible con la mayoría de los navegadores web
La forma de proceder es la siguiente:

  • Escribimos la línea

    <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js?autoload=true&skin=default" defer="defer"></script>

    dónde skin es la hoja de estilos que vamos a cargar.
    skin = default
    skin = sons-of-obsidian
    skin = sunburst
    skin = desert
    skin = doxy
  • A continuación escribimos la etiqueta <pre class="prettyprint">
  • Introducimos el código que vamos a colorear dentro del tag pre.
    Importante: hay que reemplazar todos los < por &lt; y los > por &gt; para que el navegador entienda que es texto plano.
  • Por último, cerramos la etiqueta </pre>
Ejemplo con 'default':



Ejemplo con 'sons-of-obsidian':



Ejemplo con 'sunburst':



Ejemplo con 'desert':



Ejemplo con 'doxy':



Además podemos numerar las líneas de código para cada uno de los estilos mencionados.
Para ello, tenemos que añadir la clase linemus al tag pre de la siguiente manera:
<pre class="prettyprint linenums">
Ejemplo con 'default' y 'linemus':



Documentación oficial:

https://github.com/google/code-prettify/blob/master/README.md
https://github.com/google/code-prettify
https://rawgit.com/google/code-prettify/master/examples/quine.html



12 de enero de 2015

Gadget para aumentar tu número de suscriptores - Blogger

Un newsletter o boletín electrónico es una poderosa herramienta de marketing y comunicación que informa a los usuarios acerca de noticias de interés, promociones y productos o servicios de forma regular y ayuda a construir una relación única con ellos, lo que conocemos como engagement y fidelización de clientes.

En el post anterior hablo de la importancia del Email Marketing en la fidelización de clientes. Échale un vistazo, no tiene desperdicio :)

Técnicamente, un newsletter es un mensaje en formato HTML que se envía por correo electrónico a una lista de suscriptores. Existen numerosas plantillas html gratis y de pago para newsletters pero el propósito de este post es proporcionar el código html necesario para su uso.

Los popups utilizados de forma correcta en tu web site pueden llegar a ser un instrumento muy útil para convertir a tus visitantes en suscriptores o clientes. Atrás quedaron las ventanas emergentes y banners molestos e intrusivos con anuncios o publicidad que nos asaltaban nada más visitar una página web.
En este sentido, debemos tomar en consideración la usabilidad como aspecto fundamental en el diseño.
Personalmente, me incomoda mucho que aparezcan ventanas emergentes de suscripción en todas y cada una de las páginas de un mismo sitio web. Para evitar ésto, contamos con tres posibilidades:

  • controlar la ip del visitante de tal forma que sólo nos la ofrezca la primera vez que visitamos la página. Ésto se hace desde el servidor o back-end.
  • almacenar la información del visitante en una cookie en la parte cliente o navegador web (front-end).
  • almacenar la información en el cliente web a través del método SessionStorage de html5 (lo soportan los navegadores más modernos del mercado).
En el ejemplo que muestro a continuación optaré por las cookies y me comprometo a codificar el resultado en html5 en un artículo posterior.

Éstos son los pasos a seguir:

  1. Selecciona la entrada Diseño del panel principal de Blogger.
  2. Pulsa sobre el link Añadir un gadget y se abrirá una ventana con diferentes alternativas
  3. Desplazamos el scroll de la nueva ventana hacia abajo hasta llegar a la opción:

    HTML/JavascriptAñadir
    Añade una característica de un tercero u otro código a tu blog.





  4. En la caja Contenido pega el siguiente código:

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jmacuna/subscription-feedburner@master/style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script>
    <script>
    idleTime = 0;
    $(document).ready(function(){
     $limit = 5; //seconds
     if ($.cookie('test_status') != '1') {
      function timerIncrement() {
       idleTime = idleTime + 1;
       if (idleTime > $limit) {
        $('html, body').css('overflow', 'hidden');
        $('.subs-popup ').fadeIn('slow');
        idleTime = 0;
       }
      }
      // Increment the idle time counter every second.
      var idleInterval = setInterval(timerIncrement, 1000); // 1 second
      // Zero the idle timer on mouse movement.
      $(this).mousemove(function (e) {
       idleTime = 0;
      });
      $(this).keypress(function (e) {
       idleTime = 0;
      });
      $.cookie('test_status', '1', { expires: 30 });
     }
     $('.email-close').click(function() {
      $('.subs-popup').fadeOut('slow');
      $('html, body').css('overflow', 'auto');
      $limit = 9999;
     });
    });
    </script>
    
    <div class="subs-popup">
     <div id="newsletter">
      <div class="email-close">X</div>
      <div class="newsletter-wrap">
       <h4>Suscríbete y recibe<br/>contenido exclusivo</h4>
       <p>Las últimas novedades del blog<br/>directamente a tu email.<br/><br/></p>
       <form action="http://feedburner.google.com/fb/a/mailverify?loc=es-ES&uri=[FEED_DE_TU_BLOG]" method="post" onsubmit="$('.email-close').click();window.open('about:blank', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true" target="popupwindow" novalidate="">
        <input name="uri" type="hidden" value="bloggertrix"/>
        <input name="loc" type="hidden" value="en_ES"/>
        <input type="email" value="" name="email" placeholder="Tu e-mail aqui..." required=""/><br/><br/>
        <input type="submit" value="Suscribirme" class="button-popup">
       </form>
      </div>
     </div>
    </div>
    
  5. Por último hacemos click sobre el botón Guardar

Vamos a analizar los parámetros que intervienen en el código:

  • $limit = 5: tiempo de espera en segundos (desde que se carga la página) para mostrar el popup de suscripción.
  • [FEED_DE_TU_BLOG]: feed de suscripción de tu blog.
    Más información en ¿Qué es el feed de un sitio?
Como indicación final, resaltar que la hoja de estilo que utilizo (style.css) así como el formulario son totálmente personalizables.

Puedes visualizar y descargar el ejemplo para integrarlo en tu blog en la siguiente dirección

Widget para Suscripción de Correo Electrónico




11 de octubre de 2014

Como generar barcodes lineales y QR barcodes con jQuery en pocas líneas de código

En el artículo anterior Quick Response Barcode o «código de respuesta rápida» perfilamos las dimensiones que tiene y puede alcanzar este tipo de software. También hablamos de la infinidad de servicios que nos permiten generar el código de forma sencilla y transparente ya sea a través de la instalación de un programa o directamente desde la barra de direcciones de nuestro navegador.

Ahora bien, ¿estamos dispuestos a crear códigos qr dependientes de servicios de terceros?

Con jQuery.qrcode generar códigos QR de forma dinámica en nuestro sitio web será muy fácil y tendremos la posibilidad de codificar alrededor de 2900 caracteres (8 bits).

Este plugin permite la creación de códigos QR de dos formas diferentes:

  • Dibujándolo sobre un objeto canvas: genera en el elemento que deseemos una etiqueta canvas de HTML5, y luego pinta el código sobre su superficie.

    Funcionará en los navegadores más modernos que soporten el objeto canvas de forma nativa:

    • Internet Explorer 9+
    • Firefox 31+
    • Chrome 31+
    • Safari 5.1+
    • Opera 24+
    • iOS Safari 7.1+
    • Opera Mini 7+
    • Android Browser 2.3+
    • Chrome for Android 37+

    Toda la información en http://caniuse.com/#feat=canvas

  • Generándolo a partir de capas o divs: crea el código dibujando cada punto a partir de un elemento div de HTML, por lo que funcionará en cualquier navegador.
Podemos ver una demostración que ilustra estos dos métodos en la dirección https://larsjung.de/jquery-qrcode/latest/demo/

Su uso es simple: seleccionamos con jQuery el elemento en el que queremos albergar el código y llamamos al método qrcode con el parámetro text y la información que queremos mostrar.

Obtenemos el código QR:



También podemos pasar parámetros al método para definir el aspecto del código QR: tamaño, color, fuente, bordes, etc.

Código QR resultante:



jQuery también nos proporciona otro plugin para generar barcodes o códigos de barras lineales, cuya concepción se basa en en la 'representación mediante un conjunto de líneas paralelas verticales de distinto grosor y espaciado que en su conjunto contienen una determinada información, es decir, las barras y espacios del código representan pequeñas cadenas de caracteres'.
Fuente: http://es.wikipedia.org/wiki/Código_de_barras

También resulta extraordinariamente fácil su uso, tan sólo tenemos que importar en nuestro web site la librería jquery-barcode.min.js que podemos bajarnos del sitio oficial http://barcode-coder.com/download/jquery-barcode-2.0.3.zip.

En este caso seleccionamos el elemento en el que queremos insertar el código y llamamos al método barcode con la cadena numérica a codificar y el tipo de codificación.




De la misma forma que los códigos de dos dimensiones, podremos definir el aspecto del barcode: color de fondo, color de las barras verticales, ancho y algo de las barras, etc.


Obtenemos el siguiente código de barras lineal:



Los tipos de códigos de barras que nos proporciona la librería son:

  • EAN 8
  • EAN 13
  • UPC
  • standard 2 of 5 (industrial)
  • interleaved 2 of 5
  • code 11
  • code 39
  • code 93
  • code 128
  • codabar
  • MSI
  • Data Matrix

Toda la información en http://barcode-coder.com/en/barcode-jquery-plugin-201.html


16 de diciembre de 2013

Tarjeta de Navidad animada con jQuery

jQuery es una biblioteca de JavaScript, creada inicialmente por John Resig, que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web. Fue presentada el 14 de enero de 2006 en el BarCamp NYC. jQuery es la biblioteca de JavaScript más utilizada. jQuery es software libre y de código abierto, posee un doble licenciamiento bajo la Licencia MIT y la Licencia Pública General de GNU v2, permitiendo su uso en proyectos libres y privativos.

La familia y los amigos son como las estrellas: no siempre las ves, pero siempre están ahí.

¡¡¡FELIZ NAVIDAD!!!



Tarjeta de Navidad animada con jQuery

 

Haz clic en el lazo azul para abrir la tarjeta

 
 
 
 
 


Si lo deseas, puedes descargar y modificar el ejemplo para añadirlo a tu página web en la siguiente dirección: navidad-jquery
(Fuente original: www.lewebmonster.com)

 



9 de octubre de 2013

Librerías javascript de gran utilidad para tu desarrollo web


JavaScript es un lenguaje de programación que a lo largo de los últimos años ha ido ganando popularidad y con la incursión de HTML5 ha dotado de mayor dinamismo e interactividad a la web, haciendo posible una navegación más agradable para el usuario.


Todos los navegadores llevan integrados sus propios motores JavaScript con objeto de aprovechar al máximo sus características y ofrecer al usuario un mayor rendimiento en aplicaciones web.

Algunas de las librerías más conocidas y que nos pueden ayudar en el desarrollo de nuestros proyectos web son:

  • jQuery: es la librería más utilizada por su fácil manejo en el tratamiento de los objetos del DOM ya que nos permite abstraernos completamente. Muy aconsejable para la integración de efectos y animaciones personalizadas.
    jQuery es software libre y de código abierto permitiendo su uso en proyectos libres y privativos. Además es compatible con los navegadores más comunes del mercado como Mozilla Firefox 2.0+, Internet Explorer 6+, Safari 3+, Opera 10.6+ y Google Chrome 8+
    Recomiendo el siguiente libro gratuito en español sobre Fundamentos de jQuery: http://librojquery.com/
  • Mootools: este framework está enfocado a la orientación de objetos como sus siglas indican (My object oriented tools).
    Cuenta con un componente avanzado de efectos y con transiciones optimizadas y utilizadas por multitud de desarrolladores Flash.
    Es de código abierto y compatible y probado en Safari 3+, Internet Explorer 6+, Mozilla Firefox 2+, Opera 9+, Google Chrome 4+
  • Prototype: es un framework escrito en JavaScript para el desarrollo sencillo y dinámico de aplicaciones web. Su potencial es aprovechado al máximo cuando se desarrolla con Ruby On Rails.
  • Yahoo! UI Library: bibliotecas utilizadas para la construcción de aplicaciones enriquecidas RIA (rich Internet applications) o aplicaciones web que tienen la mayoría de las características de las aplicaciones de escritorio tradicionales.
    Liberadas bajo licencia BSD por parte de la compañía Yahoo.
  • Modernizr: esta librería proporciona la misma experiencia de usurio a todos los visitantes del sitio web independientemente de su navegador.
    Modernizr no añade ninguna funcionalidad al navegador. En cambio, sólo averigua si la funcionalidad que estás intentando implementar responde en dicho navegador. Esto nos permite experimentar con las nuevas características de HTML5 y CSS3 sin preocuparnos por restar experiencia de usuario o que la página no se renderice adecuadamente.
  • Dojo: es un framework que contiene APIs y widgets para facilitar el desarrollo de aplicaciones Web que utilicen tecnología AJAX.
    Es de código abierto y se puede descargar de forma gratuita en su página oficial. Cuenta con el patrocinio de IBM, Google, AOL y Nexaweb.
Si buscamos librerías que atiendan a propósitos específicos:

  • Visualización y efectos de imagenes: JS charts (gráficos de barras, circulares y de líneas simples), Gráfico (10 tipos de gráficos, de barras, de area, de línea y barras horizontales...), Canvas 3D JS Library (objetos 3D), CanvasXpress (gráficos tridimensionales), Raphaël (gráficos vectoriales con SVG y VML), ImageFX (efectos sobre imágenes con CANVAS), Reflection.js (efectos de reflexión), PaintbrushJS (efectos sobre imágenes similares a los que podemos encontrar en aplicaciones como Instagram o picplz)
  • Manejo de cadenas y funciones matemáticas: Date.js (funciones complejas de fechas), Sylvester (vectores y arrays en varias dimensiones), XRegEx (expresiones regulares), JavaScript Url Library (manipulación de direcciones o url).

Como punto final, os reto a que resolváis el siguiente puzzle realizado con JQuery Puzzle:

jqPuzzle


22 de enero de 2013

Cross Domain: comunicación entre distintos dominios


Cuando desarrollamos orientados a tecnologías webs se establece un mecanismo de seguridad de comunicaciones en navegadores webs con el fin de evitar acceder a información alojada en otros servidores.


Lo que se pretende es que ningún script ejecutado desde el navegador de una página web pueda acceder a otro servidor de páginas diferente al suyo.

No obstante hay alternativas para acceder al contenido de otro servidor web desde el browser desde dónde se ejecuta nuestra aplicación:

  •  podemos usar un proxy como web service de tal forma que la comuniación no se establece entre mi browser y el servidor web deseado sino que llamo al servicio web alojado en mi servidor y éste hace la llamada.

  • con jsonp o lo que es lo mismo Json con Padding: en lugar de realizar una petición Ajax (Asynchronous Javascript And Xml no funciona entre dominios distintos), generamos un archivo jsonp dinámicamente en el que definimos una variable que va a actuar como callback de la petición.

Como soy fiel seguidor de "maestros del web", voy a hacerle un guiño y voy a traerme sus diez últimos post publicados:



14 de enero de 2013

CSS3 = Presente y Futuro


El acrónimo CSS (Cascading Style Sheet en inglés) se traduce al castellano como Hojas de Estilo en Cascada y es una tecnología diseñada para la presentación de los documentos que forman una página web.


El organismo que regula sus especificaciones es el W3C (World Wide Web Consortium) de la misma forma que lo hace con el lenguaje Html.

Las novedades que ha introducido la nueva versión de CSS (en el post "html5, el cambio que esperabamos" menciono algunas de sus propiedades más importantes) hacen posible una mayor dinamización e interactividad de la web utilizando tecnologías abiertas. En este sentido, los nuevos estándares web permiten el desarrollo de sitios mucho más accesibles.

Tan sólo debemos disponer de un navegador actualizado para poner en práctica algunos ejemplos asombrosos como los que vemos a continuación:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris pulvinar rhoncus risus, vel ornare lacus sagittis sit amet. Duis vel sem magna. Proin pulvinar velit eleifend ligula ultrices vestibulum. Nunc posuere dolor eu mauris feugiat dignissim.



Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris pulvinar rhoncus risus, vel ornare lacus sagittis sit amet. Duis vel sem magna. Proin pulvinar velit eleifend ligula ultrices vestibulum. Nunc posuere dolor eu mauris feugiat dignissim.



Contact Us.....

Name:
Email:
Message:
Pass The Paper



Top cube face

The top face is nested in an extra div tag to give correct rotation of skewed rectangle.

This face is also scaled, so the font size has been reduced to accommodate.

Left cube face

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt.

Right cube face

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco.