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.

22 de enero de 2022

Introducción al uso de la API de Blogger v3

API Blogger
Una API o Interfaz de Programación de Aplicaciones (Application Programming Interface) es un protocolo que define cómo los dispositivos y las aplicaciones se comunican entre sí. Describe cómo los clientes que consumen las APIs pueden acceder a los recursos y qué métodos funcionan con su arquitectura.


A la hora de crear una API para la integración de software, el diseño REST (REpresentational State Transfer) destaca como el enfoque de arquitectura para el diseño de servicios web y se refiere al conjunto de reglas específicas que establecen como estos servicios se comunican a través de internet.

El estilo arquitectónico REST está compuesto por varios principios:

  • sin estado: las aplicaciones REST deben comunicarse con los recursos sin estado, es decir, no deben almacenar ningún contexto ni información de sesión.
  • separación cliente-servidor: la API se expone en un servidor y es consumida por clientes (apps, servicios).
  • sistema en capas: los componentes de los sistemas REST no deben poder ver más allá de su capa. Cada componente no debe influir en otro componente de la arquitectura.
  • cacheable: los datos del servidor REST deben marcarse como almacenables o no en caché. En caso afirmativo, el cliente puede reutilizar datos de la respuesta para solicitudes equivalentes posteriores.
  • interfaz uniforme: se hace hincapié en una interfaz uniforme entre los componentes (identificación y manipulación de recursos, hipermedia y mensajes autodescriptivos).

REST es independiente de cualquier protocolo subyacente y no está necesariamente unido a HTTP pero en las implementaciones más comunes de API REST, se usa HTTP como protocolo de aplicación.

De forma muy resumida, REST es un estilo arquitectónico y las API REST son servicios web que lo implementan.
Para complicar más las cosas, los desarrolladores llaman a una API HTTP que usa un estilo CRUD (Create, Read, Update, Delete) un servicio RESTful.

La API de Blogger v3 permite que las aplicaciones cliente vean y actualicen el contenido de Blogger. Tu aplicación cliente puede usar Blogger API v3 para crear nuevas publicaciones en tu blog, editar o eliminar publicaciones existentes y consultar publicaciones que coincidan con criterios concretos.

Cada solicitud que se envía a las APIs de Blogger debe identificar tu aplicación ante Google. Hay dos formas de identificar una aplicación: usando un token OAuth 2.0 (que también autoriza la solicitud) y/o usando la clave API de la aplicación.

  • si la solicitud requiere autorización (como una solicitud de datos privados de una persona), la aplicación debe proporcionar un token de OAuth 2.0 con la solicitud.
  • si la solicitud no requiere autorización (como una solicitud de datos públicos), la aplicación debe proporcionar una clave API o un token de OAuth 2.0, o ambos, la opción que consideres más conveniente.

Una vez que tengas una clave API, tu aplicación puede añadir el parámetro de consulta a todas las URL de solicitud con key=yourAPIKey

El formato específico para las URI de la API de Blogger es:
https://www.googleapis.com/blogger/v3/users/userId
https://www.googleapis.com/blogger/v3/users/self
https://www.googleapis.com/blogger/v3/users/userId/blogs
https://www.googleapis.com/blogger/v3/users/self/blogs
https://www.googleapis.com/blogger/v3/blogs/blogId
https://www.googleapis.com/blogger/v3/blogs/byurl
https://www.googleapis.com/blogger/v3/blogs/blogId/posts
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/bypath
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/search
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId/comments
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId/comments/commentId
https://www.googleapis.com/blogger/v3/blogs/blogId/pages
https://www.googleapis.com/blogger/v3/blogs/blogId/pages/pageId

Pongamos en práctica algunos métodos de la API de Blogger.

1- vamos a mostrar información del Blog usando la siguiente url:
https://www.googleapis.com/blogger/v3/blogs/byurl?url=https://www.tecnoblog.guru&key=yourAPIKey
<div id="api-blogger-v3" class="api-blogger-v3"></div>
<script>
function handleResponse1(response){
	document.getElementById("api-blogger-v3").innerHTML += "<div><a href='" + response.url + "' title='" + response.title + " target='_blank'>" + response.name + "</a></div><div>" + response.description + "</div><div>" + (response.published).substring(0,10) + "</div>";
}
</script>
<script async="true" defer="true" src="https://www.googleapis.com/blogger/v3/blogs/byurl?url=https://www.tecnoblog.guru&callback=handleResponse&key=yourAPIKey"></script>


2- ahora vamos a mostrar una lista con los cinco últimos post publicados en TecnoBlog invocando a la url:
https://www.googleapis.com/blogger/v3/blogs/blogId/posts
<div id="api-blogger-v3-2" class="api-blogger-v3"></div>
<script>
function handleResponse2(response){
  for(var i=0; i<5; i++){
	document.getElementById("api-blogger-v3-2").innerHTML += "<div><a href='" + response.items[i].url + "' title='" + response.items[i].title + " target='_blank'>" + response.items[i].title + "</a></div>" + (response.items[i].published).substring(0,10) + "<br/>" + "<div class='article'><em>" + response.items[i].content.substr(0,840) + "...</em></div><hr/>";
  }
}
</script>
<script async="async" defer="defer" src="https://www.googleapis.com/blogger/v3/blogs/5415513870832441455/posts?callback=handleResponse2&key=yourAPIKey"></script>


3- por último, vamos a mostrar cinco artículos publicados en la categoría "ciberseguridad" llamando a la siguiente url con el parámetro 'q' como etiqueta a buscar:
https://www.googleapis.com/blogger/v3/blogs/5415513870832441455/posts/search?q=ciberseguridad&callback=handleResponse&key=yourAPIKey
<div id="api-blogger-v3-3" class="api-blogger-v3"></div>
<script>
function handleResponse3(response) {
  for(var i=0; i<5; i++) {
	document.getElementById("api-blogger-v3-3").innerHTML += "<div><a href='" + response.items[i].url + "' title='" + response.items[i].title + " target='_blank'>" + response.items[i].title + "</a></div>" + (response.items[i].published).substring(0,10) + "<br/>" + "<div class='article'><em>" + response.items[i].content.substr(0,840) + "...</em></div><hr/>";
  }
}
</script>
<script async="async" defer="defer" src="https://www.googleapis.com/blogger/v3/blogs/5415513870832441455/posts/search?q=ciberseguridad&callback=handleResponse3&key=yourAPIKey"></script>



11 de diciembre de 2021

Introducción a la automatización robótica de procesos (RPA)

Robotic Process Automation
Con un número creciente de empresas que tratan de optimizar sus estrategias de transformación digital, se ha producido un aumento en la adopción del sistema RPA (Robotic Process Automation) para automatizar los procesos administrativos. Esto ha llevado a un crecimiento exponencial en el mercado global de RPA que ya estaba valorado en $1.4B en 2019 y se espera que alcance los $11B en 2027.


La pandemia de COVID-19 ha llevado a muchas empresas a adoptar tecnologías de computación en la nube y trabajo remoto. Además, los equipos de TI se han visto presionados para reducir la carga de trabajo y los costos operativos.

Una encuesta reciente reveló que las empresas están aumentando el uso de RPA aproximadamente un 5% para:

- reducir los costos extraordinarios al automatizar las tareas operativas y de back office, como los procesos de TI basados en reglas, las actualizaciones del sistema o la incorporación de nuevas contrataciones.

- apoyar a la fuerza de trabajo remota, por ejemplo, automatizando la recopilación de datos de múltiples fuentes para la generación de informes.


RPA


¿Qué es la automatización robótica de procesos?


Es una tecnología que imita e integra las interacciones de los usuarios humanos con las aplicaciones o sistemas informáticos, automatizando los procesos de trabajo de la misma manera que lo haría un usuario.

Estos robots son entrenados para seguir unas instrucciones específicas y ejecutar ciertas tareas, tareas como por ejemplo cuando un usuario tiene que acceder a un correo electrónico o a un directorio compartido y extraer 'x' ficheros para realizar ciertas modificaciones o verificaciones dentro de estos ficheros.

Una vez finalizadas estas tareas, tiene que compartir estos ficheros a través de una plataforma web o un repositorio común.
El robot podría hacer estas mismas tareas del mismo modo que las gestiona un usuario humano.

¿Qué ventajas tiene el uso de RPA?


Son numerosas las ventajas del rpa, destacando la agilidad operacional puesto que un robot es cinco veces más rápido que una persona.

Son herramientas que monitorizan la ejecución completa del robot, por lo tanto desde el punto de vista de auditoría, son herramientas bastante seguras.

Se trata de herramientas no invasivas ya que interactúan con la interfaz permitiendo atacar a la mayoría de las aplicaciones.

Tambien son herramientas muy escalables, muy precisas y que trabajan de forma continua (24x7 los 365 días del año) por lo que van a estar siempre disponibles.

Por otro lado permiten que las personas se enfoquen en el talento ya que el objetivo es aportar valor en las empresas y no realizar tareas repetitivas que no generen ningún tipo de valor añadido.

Además, son herramientas con un ROI muy elevado ya que existe una rápida recuperación de la inversión con perídos de payback inferiores a un año.

¿Qué tipos de procesos son candidatos a ser robotizados o automatizados?


Siempre se busca un patrón con una serie de características como por ejemplo que los procesos sean estándar, es decir, que no tengan ambiguedad y que estén procedimentados.

También es necesario que estos procesos estén basados en reglas ya que tenemos que entrenar al robot y decirle cuales son los pasos que tienen que seguir para ejecutar estas tareas.

Tienen que ser procesos con datos electrónicos cuyo formato siempre sea digital. Procesos en los que el tiempo de ejecución sea mejorable, procesos repetitivos, procesos desarrollados en sistemas estables y procesos que ya sean maduros, estén en funcionamiento y bien definidos.

En RR.HH. podrían ocuparse de:

  • verificación del historial del empleado
  • gestión de viajes y gastos
  • gestión de asistencia
  • gestión de nóminas
  • gestionar los datos de los empleados
  • añadir datos para revisiones de desempeño
  • gestionar la baja de los empleados

En el departamento financiero:

  • automatización de nóminas
  • preparar informes financieros
  • mantenimiento de registros

En el departamento de TI:

  • descargar software con licencia
  • instalar y actualizar software disponible en servidores preasignados y máquinas de usuarios
  • monitorizar y guardar datos de rendimiento de un servidor
  • automatizar notificaciones de problemas en un servidor o tiempos de inactividad
  • automatizar copias de seguridad
  • sincronizar, eliminar y vaciar carpetas




7 de diciembre de 2021

Cuenta atrás para la Navidad

Christmas Icon
TecnoBlog les desea a todos sus lectores Feliz Navidad con esta animación realizada con jQuery. Si lo deseas, puedes descargar y modificar el ejemplo para añadirlo a tu página web siguiendo las instrucciones detalladas más abajo.
(Fuente: https://codepen.io/JorgeAguilar/).





Para componer la animación, tendrás que incorporar código html, adaptar los estilos correspondientes importando la fuente de Google Mountains of Christmas con tres imágenes de fondo y código javascript con la librería jQuery.

Código HTML
<section class="countdownSection">
  <div class="decorations">
    <div class="decoration" data-pos="bottom left"></div>
    <div class="decoration" data-pos="top right"></div>
    <div class="snow"></div>
    <div class="santaWrapper">
      <div class="santa">
        <div class="hat">
          <div></div>
          <div></div>
        </div>
        <div class="face">
          <div class="eyeBrows left"></div>
          <div class="eyeBrows right"></div>
          <div class="eye left"></div>
          <div class="eye right"></div>
          <div class="nose"></div>
          <div class="cheek left"></div>
          <div class="cheek right"></div>
          <div class="beard">
            <div></div>
            <div></div>
            <div></div>
          </div>
        </div>
        <div class="body">
          <div class="sweater"></div>
          <div class="hand left">
            <div class="inner"></div>
          </div>
          <div class="hand right"></div>
        </div>
      </div>
      <div class="rope"></div>
      <div class="rope back"></div>
      <div class="sled"></div>
      <div class="reindeer">
        <div class="face">
          <div class="ear"></div>
          <div class="horn right"></div>
          <div class="horn left"></div>
        </div>
        <div class="body">
          <div class="foot front">
            <div class="inner">
              <div class="extension"></div>
            </div>
          </div>
          <div class="foot back">
            <div class="inner">
              <div class="extension"></div>
            </div>
          </div>
          <div class="tail"></div>
        </div>
      </div>
      <div class="reindeer second">
        <div class="rope"></div>
        <div class="face">
          <div class="ear"></div>
          <div class="horn right"></div>
          <div class="horn left"></div>
        </div>
        <div class="body">
          <div class="foot front">
            <div class="inner">
              <div class="extension"></div>
            </div>
          </div>
          <div class="foot back">
            <div class="inner">
              <div class="extension"></div>
            </div>
          </div>
          <div class="tail"></div>
        </div>
      </div>
    </div>
  </div>
  <div class="container">
    <div class="counterWrapper">
      <p>Sólo quedan ...</p>
      <div class="countdown"></div>
      <p>para Navidad</p>
    </div>
  </div>
</section>

Código CSS
<style>
@import url("https://fonts.googleapis.com/css2?family=Mountains+of+Christmas:wght@700&display=swap");
@keyframes santa__mov {
  0%, 100% {
    bottom: 0;
    left: 0;
    transform: translateX(-100%) rotate(-10deg);
  }
  30% {
    bottom: 100%;
    left: 100%;
    transform: translateX(100%) rotate(-10deg);
  }
  40% {
    bottom: 0;
    left: 100%;
    transform: translateX(100%) rotateY(180deg);
  }
  70% {
    bottom: 0;
    left: 0;
    transform: translateX(-100%) rotateY(180deg);
  }
}
@keyframes santa__hand-left {
  0% {
    transform: rotate(15deg);
  }
  100% {
    transform: rotate(-30deg);
  }
}
@keyframes santa__hand-right {
  0% {
    transform: rotate(15deg);
  }
  100% {
    transform: rotate(-6deg);
  }
}
@keyframes rope__left {
  0% {
    transform: rotate(2deg);
  }
  100% {
    transform: rotate(5deg);
  }
}
@keyframes rope__right {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(-4deg);
  }
}
@keyframes rope__inner {
  0% {
    transform: rotate(-15deg);
  }
  100% {
    transform: rotate(-15deg) translateY(3px);
  }
}
@keyframes reindeer__leg-front {
  0% {
    transform: rotate(-24deg);
  }
  100% {
    transform: rotate(-13deg);
  }
}
@keyframes reindeer__leg-front-extension {
  0% {
    transform: rotate(131deg);
  }
  100% {
    transform: rotate(0);
  }
}
@keyframes reindeer__leg-back {
  0% {
    transform: rotate(-73deg);
  }
  100% {
    transform: rotate(-95deg);
  }
}
@keyframes reindeer__leg-back-extension {
  0% {
    top: 4px;
    left: -4px;
    transform: rotate(50deg);
  }
  100% {
    top: 0;
    left: 0;
    transform: rotate(0);
  }
}
@keyframes snow {
  0% {
    fill-opacity: 1;
  }
  100% {
    fill-opacity: 0;
    transform: translateY(50%);
  }
}
body {
  overflow-x: hidden;
  color: #fff;
  margin: 0 auto;
  background-color: #005b38;
}
body * {
  font-family: "Mountains of Christmas", cursive;
}
body p, body h1, body h2, body h3, body h4, body h5, body h6 {
  margin: 0;
}
body a {
  color: #fff;
  text-decoration: none;
}
body ul, body li {
  padding: 0;
  margin: 0;
  list-style-type: none;
}
.countdownSection {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  align-content: center;
  width: 100%;
  min-height: 100vh;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
}
.countdownSection:before, .countdownSection:after {
  content: "";
  position: absolute;
}
.countdownSection:before {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(rgba(255, 255, 255, 0.3), transparent);
  pointer-events: none;
}
.countdownSection:after {
  width: 90%;
  height: 90%;
  /*border: 1px solid rgba(255, 255, 255, 0.1);*/
}
.countdownSection .decorations {
  pointer-events: none;
}
.countdownSection .decorations .decoration {
  background-image: url("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcD16hX9tPJgLkdoLFTTfy5YZoVEVKcLNrvgIFHPtRpFTprLA3v-gcwEBpLGDYEgfwoKe2zZ085D7E4QpXEyQOK60QtoOH8z08mxIE1Ms34WO2ceEy0sfWOs_eAIB4XYMnBqKwmHkUIobX/s0/decoration.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 500px;
  height: 500px;
  filter: blur(3px);
  z-index: 1;
}
.countdownSection .decorations .decoration[data-pos="top left"] {
  top: 0;
  left: 0;
  transform: rotate(90deg);
}
.countdownSection .decorations .decoration[data-pos="top right"] {
  top: 0;
  right: 0;
  transform: rotate(180deg);
}
.countdownSection .decorations .decoration[data-pos="bottom left"] {
  bottom: 0;
  left: 0;
}
.countdownSection .decorations .decoration[data-pos="bottom right"] {
  bottom: 0;
  right: 0;
  transform: rotate(-90deg);
}
.countdownSection .decorations .snow {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.countdownSection .decorations .snow .particle {
  fill: #fff;
  animation: snow 5s ease-out infinite;
}
.countdownSection .decorations .snow .particle:nth-child(2n) {
  animation-delay: 1.5s;
}
.countdownSection .decorations .snow .particle:nth-child(3n) {
  animation-delay: 2.5s;
  animation-duration: 5.3s;
}
.countdownSection .decorations .snow .particle:nth-child(4n) {
  animation-delay: 1s;
  animation-duration: 5.2s;
}
.countdownSection .decorations .snow .particle:nth-child(5n) {
  animation-delay: 3s;
}
.countdownSection .decorations .santaWrapper {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 430px;
  height: 155px;
  transform: translateX(-100%);
  animation: santa__mov 15s linear infinite;
}
.countdownSection .decorations .santaWrapper .santa {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 125px;
  height: 107px;
  z-index: 10;
  transform: rotateY(180deg);
}
.countdownSection .decorations .santaWrapper .santa:before, .countdownSection .decorations .santaWrapper .santa:after {
  content: "";
  position: absolute;
  bottom: 0;
  background-color: #520d0d;
}
.countdownSection .decorations .santaWrapper .santa:before {
  left: -10px;
  width: 126px;
  height: 30px;
  border-radius: 10px 50% 10px 50%;
  transform: rotate(0);
  z-index: 10;
}
.countdownSection .decorations .santaWrapper .santa:after {
  left: 70px;
  width: 50px;
  height: 53px;
  border-radius: 50% 10px 22px 10px;
  transform: rotate(8deg);
}
.countdownSection .decorations .santaWrapper .santa .hat > * {
  position: absolute;
  top: 7px;
  left: 31px;
  width: 43px;
  height: 58px;
  border-radius: 50%;
  transform: rotate(28deg);
  background-color: #d63527;
}
.countdownSection .decorations .santaWrapper .santa .hat > *:nth-child(1):before, .countdownSection .decorations .santaWrapper .santa .hat > *:nth-child(1):after {
  content: "";
  position: absolute;
}
.countdownSection .decorations .santaWrapper .santa .hat > *:nth-child(1):before {
  top: 9px;
  left: 45px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #fff;
}
.countdownSection .decorations .santaWrapper .santa .hat > *:nth-child(1):after {
  top: 3px;
  left: 19px;
  width: 30px;
  height: 7px;
  border-radius: 50%;
  transform: rotate(22deg);
  background-color: #d63527;
}
.countdownSection .decorations .santaWrapper .santa .hat > *:nth-child(2) {
  position: absolute;
  top: 18px;
  left: 31px;
  width: 44px;
  height: 34px;
  border-radius: 50%;
  transform: rotate(12deg);
  background-color: #fff;
}
.countdownSection .decorations .santaWrapper .santa .face {
  position: absolute;
  top: 25px;
  left: 37px;
  width: 31px;
  height: 17px;
  border-radius: 20px 20px 50% 50%;
  transform: rotate(10deg);
  background-color: #fde2b7;
  z-index: 10;
}
.countdownSection .decorations .santaWrapper .santa .face .eyeBrows {
  position: absolute;
  top: 0;
  left: 0;
  width: 2px;
  height: 7px;
  border-radius: 50%;
  background-color: #fff;
}
.countdownSection .decorations .santaWrapper .santa .face .eyeBrows.left {
  top: 2px;
  left: 22px;
  transform: rotate(-65deg);
}
.countdownSection .decorations .santaWrapper .santa .face .eyeBrows.right {
  top: 1px;
  left: 4px;
  transform: rotate(65deg);
}
.countdownSection .decorations .santaWrapper .santa .face .eye {
  position: absolute;
  top: 8px;
  left: 2px;
  width: 3px;
  height: 4px;
  border-radius: 50%;
  background-color: #000;
}
.countdownSection .decorations .santaWrapper .santa .face .eye.left {
  top: 8px;
  left: 2px;
}
.countdownSection .decorations .santaWrapper .santa .face .eye.right {
  top: 8px;
  left: 20px;
}
.countdownSection .decorations .santaWrapper .santa .face .nose {
  position: absolute;
  top: 10px;
  left: 6px;
  width: 12px;
  height: 9px;
  border-radius: 50%;
  z-index: 10;
  background-color: #f7d194;
}
.countdownSection .decorations .santaWrapper .santa .face .cheek {
  position: absolute;
  top: 10px;
  left: 6px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  z-index: 10;
  background-color: #f4cfe3;
}
.countdownSection .decorations .santaWrapper .santa .face .cheek.left {
  top: 12px;
  left: -3px;
}
.countdownSection .decorations .santaWrapper .santa .face .cheek.right {
  top: 13px;
  left: 22px;
}
.countdownSection .decorations .santaWrapper .santa .face .beard > * {
  position: absolute;
  top: 8px;
  left: -14px;
  width: 15px;
  height: 17px;
  border-radius: 50%;
  background-color: #fff;
}
.countdownSection .decorations .santaWrapper .santa .face .beard > *:before, .countdownSection .decorations .santaWrapper .santa .face .beard > *:after {
  content: "";
  position: absolute;
  background-color: #fff;
}
.countdownSection .decorations .santaWrapper .santa .face .beard > *:before {
  top: 12px;
  left: 1px;
  width: 15px;
  height: 17px;
  border-radius: 50%;
}
.countdownSection .decorations .santaWrapper .santa .face .beard > *:nth-child(2) {
  top: 16px;
  left: -8px;
  width: 26px;
  height: 30px;
}
.countdownSection .decorations .santaWrapper .santa .face .beard > *:nth-child(2):before {
  top: 16px;
  left: 13px;
  width: 19px;
  height: 17px;
}
.countdownSection .decorations .santaWrapper .santa .face .beard > *:nth-child(2):after {
  top: 1px;
  left: 13px;
  width: 19px;
  height: 17px;
}
.countdownSection .decorations .santaWrapper .santa .face .beard > *:nth-child(3) {
  top: 16px;
  left: 14px;
  width: 27px;
  height: 28px;
}
.countdownSection .decorations .santaWrapper .santa .face .beard > *:nth-child(3):before {
  top: -4px;
  left: 13px;
  width: 17px;
  height: 17px;
}
.countdownSection .decorations .santaWrapper .santa .body {
  position: absolute;
  top: 54px;
  left: 16px;
  width: 88px;
  height: 53px;
}
.countdownSection .decorations .santaWrapper .santa .body:before {
  content: "";
  position: absolute;
  top: -23px;
  right: -10px;
  width: 53px;
  height: 51px;
  border-radius: 42% 50%;
  background-color: #f3f0f0;
  z-index: -1;
}
.countdownSection .decorations .santaWrapper .santa .body .sweater {
  top: -3px;
  left: 10px;
  position: absolute;
  width: 45px;
  height: 39px;
  border-radius: 50% 50% 10% 10%;
  background-color: #d63527;
  z-index: 5;
}
.countdownSection .decorations .santaWrapper .santa .body .sweater:before {
  content: "";
  top: 28px;
  left: 0px;
  position: absolute;
  width: 45px;
  height: 5px;
  background-color: #000;
  transform: rotate(1deg);
}
.countdownSection .decorations .santaWrapper .santa .body .sweater:after {
  content: "";
  top: 27px;
  left: 10px;
  position: absolute;
  width: 7px;
  height: 5px;
  background-color: #000;
  border: 1px solid #fff;
  border-radius: 3px;
  transform: rotate(1deg);
}
.countdownSection .decorations .santaWrapper .santa .body .hand {
  position: absolute;
}
.countdownSection .decorations .santaWrapper .santa .body .hand.left {
  top: 5px;
  left: 19px;
  width: 33px;
  height: 30px;
  overflow: hidden;
}
.countdownSection .decorations .santaWrapper .santa .body .hand.left .inner {
  position: absolute;
  top: 10px;
  left: 8px;
  width: 49px;
  z-index: 100;
  height: 7px;
  border-radius: 10px;
  transform: rotate(12deg);
  background-color: #d63527;
  animation: santa__hand-right 0.3s linear alternate infinite;
}
.countdownSection .decorations .santaWrapper .santa .body .hand.left .inner:before {
  content: "";
  position: absolute;
  width: 8px;
  height: 7px;
  top: -2px;
  left: -6px;
  background-color: #000;
  border-radius: 50%;
  transform: rotate(25deg);
}
.countdownSection .decorations .santaWrapper .santa .body .hand.right {
  top: 4px;
  left: 3px;
  width: 11px;
  height: 7px;
  border-radius: 10px;
  background-color: #d63527;
  transform: rotate(25deg);
  animation: santa__hand-left 0.3s linear alternate infinite;
}
.countdownSection .decorations .santaWrapper .santa .body .hand.right:before {
  content: "";
  position: absolute;
  width: 8px;
  height: 7px;
  top: -2px;
  left: -6px;
  background-color: #000;
  border-radius: 50%;
  transform: rotate(10deg);
}
.countdownSection .decorations .santaWrapper .rope {
  position: absolute;
  top: 92px;
  left: 84px;
  width: 182px;
  height: 33px;
  overflow: hidden;
  z-index: 10;
  transform: rotate(0deg);
  transform-origin: bottom right;
  animation: rope__right 0.3s linear alternate infinite;
}
.countdownSection .decorations .santaWrapper .rope.back {
  top: 85px;
  left: 105px;
  width: 149px;
  transform: rotate(4deg);
  z-index: 0;
  transform-origin: top left;
  animation: rope__left 0.3s linear alternate infinite;
}
.countdownSection .decorations .santaWrapper .rope:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: -12px;
  width: 100%;
  height: 48px;
  border-bottom: 1px solid #fff;
  border-radius: 50%;
}
.countdownSection .decorations .santaWrapper .sled {
  position: absolute;
  bottom: -12px;
  left: 0px;
  width: 145px;
  height: 11px;
  transform: rotate(-3deg);
  border-bottom: 5px solid #690e00;
  border-right: 5px solid #690e00;
  border-radius: 10px;
  z-index: 10;
}
.countdownSection .decorations .santaWrapper .sled:before, .countdownSection .decorations .santaWrapper .sled:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 5px;
  height: 5px;
  background-color: #690e00;
}
.countdownSection .decorations .santaWrapper .sled:before {
  top: 2px;
  left: 34px;
  height: 9px;
}
.countdownSection .decorations .santaWrapper .sled:after {
  top: 3px;
  left: 108px;
  width: 5px;
  height: 8px;
}
.countdownSection .decorations .santaWrapper .reindeer {
  position: absolute;
  width: 115px;
  height: 155px;
  top: 50px;
  right: 0;
  transform: rotate(14deg) translateX(calc(-100% - 30px));
  z-index: 0;
}
.countdownSection .decorations .santaWrapper .reindeer.second {
  top: 0;
  transform: rotate(14deg);
}
.countdownSection .decorations .santaWrapper .reindeer.second .rope {
  top: 70px;
  left: -55px;
  width: 155px;
  transform: rotate(-15deg);
  animation: rope__inner 0.3s linear alternate infinite;
}
.countdownSection .decorations .santaWrapper .reindeer:before {
  content: "";
  position: absolute;
  top: 65px;
  left: 76px;
  width: 8px;
  height: 31px;
  background-color: #520d0d;
  z-index: 10;
  transform: rotate(-55deg);
}
.countdownSection .decorations .santaWrapper .reindeer:after {
  content: "";
  position: absolute;
}
.countdownSection .decorations .santaWrapper .reindeer .face {
  position: absolute;
  width: 30px;
  height: 22px;
  top: 44px;
  left: 72px;
  border-radius: 10px 10px 50% 50%;
  transform: rotate(-3deg);
  background-color: #cca58b;
}
.countdownSection .decorations .santaWrapper .reindeer .face:before {
  content: "";
  position: absolute;
  background-color: #cca58b;
  width: 29px;
  height: 16px;
  border-radius: 50%;
  top: 0px;
  left: 11px;
  transform: rotate(-49deg);
}
.countdownSection .decorations .santaWrapper .reindeer .face:after {
  content: "";
  position: absolute;
  background-color: #000;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  top: -8px;
  left: 31px;
}
.countdownSection .decorations .santaWrapper .reindeer .face .ear {
  position: absolute;
  width: 21px;
  height: 11px;
  top: 4px;
  left: -18px;
  border-radius: 4px 0 50% 50%;
  transform: rotate(4deg);
  background-color: #cca58b;
}
.countdownSection .decorations .santaWrapper .reindeer .face .ear:before {
  content: "";
  position: absolute;
  top: -2px;
  left: 34px;
  width: 4px;
  height: 5px;
  border-radius: 50%;
  transform: rotate(-35deg);
  background-color: #000;
}
.countdownSection .decorations .santaWrapper .reindeer .face .horn {
  position: absolute;
  width: 29px;
  height: 4px;
  top: -7px;
  left: -21px;
  border-radius: 2px;
  transform: rotate(38deg);
  background-color: #f0dbc2;
}
.countdownSection .decorations .santaWrapper .reindeer .face .horn:before, .countdownSection .decorations .santaWrapper .reindeer .face .horn:after {
  content: "";
  position: absolute;
  background-color: #f0dbc2;
  border-radius: 2px;
}
.countdownSection .decorations .santaWrapper .reindeer .face .horn.left {
  top: -7px;
  left: -21px;
}
.countdownSection .decorations .santaWrapper .reindeer .face .horn.left:before {
  top: -4px;
  left: 6px;
  width: 14px;
  height: 4px;
  transform: rotate(43deg);
}
.countdownSection .decorations .santaWrapper .reindeer .face .horn.left:after {
  top: -4px;
  left: 13px;
  width: 14px;
  height: 4px;
  -webkit-transform: rotate(43deg);
  transform: rotate(53deg);
}
.countdownSection .decorations .santaWrapper .reindeer .face .horn.right {
  top: -12px;
  left: -6px;
  width: 24px;
  transform: rotate(62deg);
}
.countdownSection .decorations .santaWrapper .reindeer .face .horn.right:before {
  top: -3px;
  left: 5px;
  width: 10px;
  height: 4px;
  transform: rotate(43deg);
}
.countdownSection .decorations .santaWrapper .reindeer .face .horn.right:after {
  top: -3px;
  left: 11px;
  width: 10px;
  height: 4px;
  transform: rotate(53deg);
}
.countdownSection .decorations .santaWrapper .reindeer .body {
  position: absolute;
  width: 58px;
  height: 31px;
  top: 84px;
  left: 28px;
  border-radius: 50% 0;
  transform: rotate(-3deg);
  background-color: #cca58b;
}
.countdownSection .decorations .santaWrapper .reindeer .body:before {
  content: "";
  position: absolute;
  width: 46px;
  height: 26px;
  top: -15px;
  left: 32px;
  border-radius: 0 0 50% 50%;
  -webkit-transform: rotate(-3deg);
  transform: rotate(-55deg);
  background-color: #cca58b;
}
.countdownSection .decorations .santaWrapper .reindeer .body:after {
  content: "";
  position: absolute;
  width: 43px;
  height: 26px;
  top: -11px;
  left: 29px;
  border-radius: 0 0 50% 50%;
  -webkit-transform: rotate(-3deg);
  transform: rotate(-30deg);
  background-color: #cca58b;
}
.countdownSection .decorations .santaWrapper .reindeer .body .foot.front .inner {
  position: absolute;
  width: 40px;
  height: 8px;
  top: 13px;
  left: 35px;
  border-radius: 0 50%;
  transform: rotate(-17deg);
  background-color: #cca58b;
  animation: reindeer__leg-front 0.3s linear alternate infinite;
}
.countdownSection .decorations .santaWrapper .reindeer .body .foot.front .inner .extension {
  position: absolute;
  width: 28px;
  height: 8px;
  top: 3px;
  left: 100%;
  border-radius: 2px 50%;
  transform: rotate(131deg);
  background-color: #cca58b;
  transform-origin: top left;
  animation: reindeer__leg-front-extension 0.2s linear alternate infinite;
}
.countdownSection .decorations .santaWrapper .reindeer .body .foot.front .inner .extension:after {
  content: "";
  position: absolute;
  top: 0;
  right: -2px;
  width: 7px;
  height: 8px;
  border-radius: 2px;
  background-color: #000;
}
.countdownSection .decorations .santaWrapper .reindeer .body .foot.back .inner {
  position: absolute;
  width: 56px;
  height: 9px;
  top: 37px;
  left: -29px;
  border-radius: 0 50%;
  transform: rotate(-73deg);
  animation: reindeer__leg-back 0.3s linear alternate infinite;
}
.countdownSection .decorations .santaWrapper .reindeer .body .foot.back .inner:before {
  content: "";
  position: absolute;
  width: 25px;
  height: 16px;
  top: 4px;
  left: 25px;
  border-radius: 0 50%;
  transform: rotate(15deg);
  background-color: #cca58b;
}
.countdownSection .decorations .santaWrapper .reindeer .body .foot.back .inner:after {
  content: "";
  position: absolute;
  right: 0;
  width: 65%;
  height: 100%;
  background-color: #cca58b;
}
.countdownSection .decorations .santaWrapper .reindeer .body .foot.back .inner .extension {
  position: absolute;
  top: 0;
  left: 0;
  width: 28px;
  height: 8px;
  background: #cca58b;
  border-radius: 2px 50%;
  transform-origin: top right;
  animation: reindeer__leg-back-extension 0.2s linear alternate infinite;
}
.countdownSection .decorations .santaWrapper .reindeer .body .foot.back .inner .extension:after {
  content: "";
  position: absolute;
  width: 8px;
  height: 9px;
  top: -2px;
  left: -2px;
  border-radius: 2px 0 2px 2px;
  transform: rotate(14deg);
  background-color: #000;
}
.countdownSection .decorations .santaWrapper .reindeer .body .tail {
  position: absolute;
  width: 27px;
  height: 26px;
  top: 6px;
  left: -8px;
  border-radius: 50% 2px;
  transform: rotate(-17deg);
  background-color: #cca58b;
}
.countdownSection .decorations .santaWrapper .reindeer .body .tail:before {
  content: "";
  position: absolute;
  background-color: #cca58b;
  border-radius: 50%;
  top: -2px;
  left: -3px;
  width: 15px;
  height: 5px;
  transform: rotate(25deg);
}
.countdownSection .container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  align-content: center;
  width: 90%;
  padding: 50px 0;
}
.countdownSection .container .counterWrapper {
  width: 100%;
  text-align: center;
  position: relative;
  z-index: 1;
}
.countdownSection .container .counterWrapper p {
  background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCxcL1jUIlrzSSrTtWyjwatisU5E2FuaQpGXztSERO1YPXExrYRlsz1_TDQJ6f9POLJgSSUIZpPVg5r7aeBnHu2ogaSYrqjwxe3XAWPuBIWURY8YqQXjUUtXWWeFLymaRct4OCB7dixgdP/s0/pattern.jpg);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 100px;
}
.countdownSection .container .counterWrapper .countdown {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  align-content: center;
}
.countdownSection .container .counterWrapper .countdown .countdownProp {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  align-content: center;
  width: 240px;
  margin: 10px;
  font-size: 200px;
  line-height: 150px;
  background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgor0zxlPtH9go59mfHe-IpHE0US6YyoOXcr7iiQY7qYcri_Zj-pIze-cz5HwTBydbBZ_khIQCZb454MtxMzBm_FyqOlgGAwNkL1nWu3OH6oDPGI7oHhgRk9vGSMd6o6kv8fP6b8_wBzZIy/s0/pattern1.png);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 100px #fff;
}
.countdownSection .container .counterWrapper .countdown .countdownProp:not(:first-child):before {
  content: ":";
}
.countdownSection .container .counterWrapper .countdown .countdownProp:after {
  content: attr(date-count);
  width: 100%;
  font-size: 20px;
  -webkit-text-fill-color: #fff;
  line-height: normal;
}
@media only screen and (max-width: 700px) {
  .countdownSection .decorations .decoration {
    width: 300px;
    height: 300px;
  }
  .countdownSection .container .counterWrapper p {
    font-size: 70px;
  }
  .countdownSection .container .counterWrapper .countdown {
    margin: 20px 0;
  }
  .countdownSection .container .counterWrapper .countdown .countdownProp {
    width: 120px;
    font-size: 100px;
    line-height: 80px;
  }
}
@media only screen and (max-width: 300px) {
  .countdownSection .decorations .santaWrapper {
    display: none;
  }
  .countdownSection .container .counterWrapper p {
    font-size: 50px;
  }
  .countdownSection .container .counterWrapper .countdown .countdownProp {
    display: block;
  }
  .countdownSection .container .counterWrapper .countdown .countdownProp:not(:first-child):before {
    display: none;
  }
  .countdownSection .container .counterWrapper .countdown .countdownProp:after {
    display: block;
  }
}
</style>

Código JavaScript
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script id="rendered-js" >
$(function () {
  $.fn.extend({
    countdown: function (props) {
      props = jQuery.extend({ //Default props
        until: new Date() },
      props);
      const state = {
        days: 0,
        hours: 0,
        minutes: 0,
        seconds: 0 };

      let render = props => {
        const { days, hours, minutes, seconds } = props;
        this.empty();
        this.append(`
        <div class="countdownProp" date-count="${days == 1 ? 'día' : 'días'}">${days}</div>
        <div class="countdownProp" date-count="${hours == 1 ? 'hora' : 'horas'}">${hours < 10 ? '0' + hours : hours}</div>
        <div class="countdownProp" date-count="${minutes == 1 ? 'minuto' : 'minutos'}">${minutes < 10 ? '0' + minutes : minutes}</div>
        <div class="countdownProp" date-count="${seconds == 1 ? 'segundo' : 'segundos'}">${seconds < 10 ? '0' + seconds : seconds}</div>
        `);
      };
      render(state);
      let update = setInterval(function () {
        let counter = props.until - new Date().getTime();
        if (counter <= 0) {
          clearInterval(update);
          return false;
        }
        state.days = Math.floor(counter / (1000 * 60 * 60 * 24));
        state.hours = Math.floor(counter % (1000 * 60 * 60 * 24) / (1000 * 60 * 60));
        state.minutes = Math.floor(counter % (1000 * 60 * 60) / (1000 * 60));
        state.seconds = Math.floor(counter % (1000 * 60) / 1000);
        render(state);
      }, 1000);
      return this;
    },
    snow: function (props) {
      props = jQuery.extend({ //Default props
        amount: 60 },
      props);
      let random = (min, max) => {
        return Math.random() * (max - min) + min;
      };
      let svg = '<svg class="snow" xmlns="http://www.w3.org/2000/svg">';
      for (let index = 0; index < props.amount; index++) {
        svg += `<circle class="particle" r="${random(1, 3)}" cx="${random(1, 100)}%" cy="-${random(1, 100)}" />`;
      }
      svg += '</svg>';
      this.replaceWith(svg);
    } });
  $('.countdown').countdown({
    until: new Date('Dec, 25, 2021') // you can add time optionally ('Dec, 25, 2020 00:00:00')
  });
  $('.snow').snow({
    amount: 100 //Number of particles
  });
});
</script>



Crédito: https://codepen.io/JorgeAguilar


Puedes visualizar la animación a pantalla completa en el siguiente enlace: Cuenta atrás para la Navidad



27 de noviembre de 2021

Nuevo campus de Inteligencia Artificial Cuántica de Google

Qubit - Icons made by Flat Icons from www.flaticon.com
Los avances en la tecnología para la medicina, la agricultura, la biología e incluso la informática se han acelerado gracias a nuestra capacidad para simular y predecir cómo se comportan las cosas en la vida real. Sin embargo, estamos comenzando a alcanzar el límite de nuestro poder para calcular soluciones a algunos problemas.


En esta década, Google tiene como objetivo construir una computadora cuántica útil y con corrección de errores. Esto acelerará las soluciones para algunos de los problemas más urgentes del mundo, como la energía sostenible y la reducción de emisiones para alimentar a la creciente población mundial, y desbloqueará nuevos descubrimientos científicos, como una inteligencia artificial más útil.

El nuevo campus de Google Quantum AI se encuentra en Santa Bárbara, Califormia y es el primer centro de datos cuántico de la compañía. Está provisto de laboratorios de investigación de hardware cuántico e intalaciones de fabricación de chips de procesador cuántico. Su software y hardware están diseñados de forma específica para crear algoritmos cuánticos novedosos que ayuden a resolver problemas prácticos a corto plazo.


Background Quantum Datacenter
Crédito Google


Muchos de los desafíos globales más importantes, desde el cambio climático hasta la gestión de la próxima pandemia, exigen un nuevo tipo de computación.

Algunos de de los retos marcados son construir mejores baterías para aligerar la carga en la red eléctrica, crear fertilizantes para alimentar al mundo sin generar el 2% de las emisiones globales de dióxido de carbono (CO2), o crear medicamentos más específicos para detener la próxima pandemia antes de que comience. Para conseguirlo, es necesario comprender y diseñar mejor las moléculas: los enlaces químicos e interacciones intermoleculares se comportan siguiendo un modelo probabilístico con una dinámica más rica que agota la lógica informática clásica.

Aquí es donde entran en juego las computadoras cuánticas.
Las computadoras cuánticas usan bits cuánticos o "qubits" que pueden estar entrelazados en una compleja superposición de estados, reflejando naturalmente la complejidad de las moléculas en el mundo real.

Con una computadora cuántica con corrección de errores será posible simular cómo se comportan e interactúan las moléculas, de modo que podamos probar e inventar nuevos procesos químicos y nuevos materiales antes de invertir en costosos prototipos de la vida real. Estas nuevas capacidades informáticas ayudarán a acelerar el descubrimiento de mejores baterías, fertilizantes energéticamente eficientes y medicamentos específicos, así como una optimización mejorada y nuevas arquitecturas de inteligencia artificial.

Las computadoras cuánticas tienen más de 10.000 componentes y el criostato es solo uno de ellos. En la actualidad, estos sistemas incluyen componentes electrónicos, cableado, amplificadores y un procesador cuántico hechos a medida. Su tamaño es de 2 metros² (el tamaño de tres neveras).





Background Cryostat
Crédito Google


El procesador cuántico es similar a una CPU que se encuentra en una placa base. Es un chip altamente especializado unido a una placa de circuito.
La placa proporciona soporte y conexiones para que el chip interactúe con otros componentes electrónicos. El chip está cubierto por capas de blindaje protector y su tamaño es de 60 cm² (tamaño de una mesa auxiliar).





Background Processor
Crédito Google


El chip qubit es donde se unen la mecánica cuántica con la fabricación moderna. La capa de qubits contiene los metales superconductores y los magnetómetros que forman los qubits. Su tamaño es de 150 mm² (tamaño de un sello postal).





Background Qubit Chip
Crédito Google


Un qubit es un detector electromagnético muy sensible hecho de un inductor y un condensador, que están conectados en paralelo. La inductancia proviene de Josephson Junction que intercaló un metal superconductor y un aislante; la capacitancia proviene de las dos placas metálicas en forma de letra X. Su tamaño es de 10 micrómetros² (ancho de una hebra de cabello).





Background Qubit
Crédito Google


Su misión es avanzar en el estado del arte de la computación cuántica y desarrollar las herramientas para operar más allá de las capacidades clásicas, con la esperanza de permitir que la humanidad resuelva problemas que de otro modo serían imposibles.






18 de octubre de 2021

Ciberseguridad 2021: encuestas a Pymes

Pool Icon
Google, en colaboración con The Cocktail Analysis, pone un marcha un proyecto destinado a entender la situación de la Ciberseguridad en España.
En este informe se recogen los principales aprendizajes tras realizar un análisis del estado de la ciberseguridad a través de la metodología de encuesta telefónica CATI (Computer Assisted Telephone Interwiew) para Pymes españolas con el objetivo de conocer el grado de seguridad percibido, nivel de conciencia, adopción de las diferentes soluciones, etc.



Se han realizado 737 entrevistas telefónicas a PYMES en el período comprendido entre el 27 de abril y el 21 de mayo de 2021.
Las principales conclusiones son:

La cultura de ciberseguridad en las Pymes


Crece la conciencia del problema pero no se acompaña de una implementación de prácticas adecuadas (aunque existen algunos indicadores de madurez). Además, hay una baja identificación con el problema.

  • Elevada conciencia de la importancia de la ciberseguridad entre las Pymes españolas : 8 de cada 10 consideran la ciberseguridad como un aspecto de máxima importancia (incrementándose 7 p.p. respecto a 2019 los que la consideran muy o bastante importante).
  • Existe además cierta madurez por parte de las Pymes en la identificación de riesgos para sus empresas. Más allá de mencionar el riesgo de robo de información como principal riesgo de los ciberataques, como sucedía en 2019, las Pymes son capaces de mencionar otros riesgos como pérdida de dinero o destrucción de equipos, reflejando un conocimiento más preciso.
  • Sin embargo, el nivel de auto identificación con el problema es bajo: pese a que las Pymes son uno de los principales objetivos de los ciberataques, tan sólo 2 de cada 10 se ven a sí mismas como un objetivo atractivo para los ciberdelincuentes. Consideran que “no trabajan con información relevante” o “son una empresa pequeña - mediana” como para resultar de interés para los ciberatacantes.
  • A pesar del enorme incremento de ataques y de los costes que puede llegar a suponer, cerca de la mitad de las PYMES considera su nivel interno de ciberseguridad como deficiente: a nivel total, 45% considera su nivel de seguridad Malo o Muy malo, es decir, estamos ante un panorama de la cultura de la ciberseguridad entre las Pymes donde existe un amplio margen de mejora.
  • A pesar de un contexto marcado por el teletrabajo, 2 de cada 3 empresas no cuenta con medidas de seguridad específicas para los dispositivos personales de los trabajadores (dispositivos más usados para teletrabajar).
  • Se detectan ciertos brotes de madurez en la atención dedicada a la ciberseguridad interna de la empresa a nivel de:
    1) desempeño y procesos cotidianos.
    2) a través del uso de almacenamiento en la nube, que parece ser una tendencia creciente y que cada vez más empresas consideran segura.
    3) también el sistema de autenticación 2SV es cada vez más conocido entre las Pymes.
    4) aumenta también la concienciación por parte de los empleados de la importancia de la ciberseguridad.
    Con respecto a otras cuestiones no hay grandes cambios en las medidas de seguridad standard, ni en la web ni el ecommerce con respecto al año pasado.
  • El porcentaje de empresas que son conscientes de haber sido atacadas se mantiene en cifras mínimas (14%), probablemente derivado de una limitada capacidad de detección de ataques.



CiberSecurity


La ciberseguridad, un sector en auge


Las empresas consideran que la ciberseguridad adquirirá más relevancia en los próximos años.

  • Elevada conciencia de la importancia de la ciberseguridad entre las Pymes españolas : 8 de cada 10 consideran la ciberseguridad como un aspecto de máxima importancia (incrementándose 7 p.p. respecto a 2019 los que la consideran muy o bastante importante).
  • Mirando a un futuro próximo, el 55% de las empresas considera que en 5 años la ciberseguridad será más importante en su empresa.
  • 1 de cada 4 planea aumentar la inversión en ciberseguridad (esta cifra es mayor en el caso de las empresas más grandes, 37%).
  • Cada vez son más las empresas que externalizan la gestión de la ciberseguridad, un 54% frente al 38% de 2019, denotando cierta profesionalización del sector y la creación de todo un mercado de servicios alrededor de la ciberseguridad.
  • Entre las empresas a las que se externaliza la seguridad destacan, consultoras (53%), mayoristas/ distribuidores (24%) y fabricantes (23%).
  • Parece que esta tendencia hacia la externalización va a continuar ya que tan sólo un 4% de las empresas tiene intención de contratar empleados especializados en ciberseguridad los próximos años.

Medidas de seguridad adoptadas en las Pymes


  • Tendencia hacia la externalización de la ciberseguridad: sube un 16% desde la edición anterior el porcentaje de pymes que externalizan sus servicios.
    A diferencia de la edición anterior donde la ciberseguridad se asumía mayoritariamente de manera interna, cada vez son más las que optan por la externalización: un 54% de PYMES externalizan la seguridad a otras PYMES, denotando cierta profesionalización del sector.
    Entre las empresas a las que se externaliza la seguridad destacan las consultoras (53%).
  • Las medidas de seguridad más extendidas entre las Pymes son las más básicas: antivirus, cortafuegos y backups de información.
    Sin embargo, son pocas las empresas que cuentan con medidas de protección más avanzadas como antimalware o formación/protocolos específicos a empleados en ciberseguridad que dejarían ver una cultura de ciberseguridad más madura y consolidada.
    Las empresas de mayor tamaño, muestran un nivel de madurez superior implementado más medidas de seguridad.
  • Aunque aumenta el número de empresas con alguna política o normativa concreta de ciberseguridad, un 58% de las Pymes aún no dispone de ninguna. Además, solo un 14% dispone de un seguro contra riesgos cibernéticos.
  • Aunque casi todas las PYMES realizan controles en la actualización de ordenadores, solo la mitad los realizan en los móviles.
    Además, 4 de cada 10 empresas aún no dispone de ningún protocolo de actualización de contraseñas.
  • A pesar de que aumenta el conocimiento del sistema 2SV (verificación en 2 pasos), tan solo un 30% de las PYMES lo tienen implementado. Aunque se incrementa significativamente su conocimiento desde la anterior oleada.
  • Casi 4 de cada 5 empresas (78%) tiene implantado el bloqueo automático de la pantalla tras un período de inactividad.
  • El 42% de las empresas tiene discos duros cifrados.
  • El 61% de las Pymes dispone de almacenamiento en la nube, incrementándose 10 p.p desde el año anterior.
    Además, ha aumentado también la confianza en este tipo de herramientas: Un 57% los considera fiables, tan sólo a 1 de cada 10 le provoca desconfianza.
  • Un 46% de las empresas utilizan infraestructura de escritorios virtuales como método de acceso remoto.
    Aproximadamente la mitad lo califica como bastante fiable.
  • 3 de cada 4 empresas (73%) utilizan el protocolo https en su página web.
    Tan sólo un 6% es consciente de haber sufrido algún tipo de ataque a su página web.
  • La mayoría de empresas con ecommerce consideran que comprar en su web es muy seguro.
  • El teletrabajo se ha visto incrementado: 42% de las empresas lo permite (frente al 16% del 2019), generando un contexto de exposición propicio a los ciberataques.
    La mayoría se conecta a través de escritorios remotos o de VPN.
  • Incremento considerable de la concienciación de los empleados sobre la importancia de la ciberseguridad. Sin embargo, el 55% de los empleados todavía no recibe formación sobre ciberseguridad.


CiberSecurity


El futuro de la ciberseguridad


  • 1 de cada 4 empresas planea incrementar la inversión en ciberseguridad en los próximos años. En el caso de las empresas más grandes este porcentaje es mayor (37%).
  • No se vincula a una cuestión de imagen: un 53% no cree que la ciberseguridad pueda impactar en la imagen de su empresa.
    Tan sólo el 13% de las PYMES sienten que sus clientes les exigen algún tipo de protección referente a ciberseguridad.
  • En España, la tendencia es la externalización del servicio: sólo un 4% de las Pymes tiene intención de contratar empleados especializados en ciberseguridad.
  • Mirando a un futuro próximo, el 55% de las empresas considera que en 5 años la ciberseguridad será más importante en su empresa.







7 de octubre de 2021

Cómo lograr la satisfacción de tus usuarios con cuestionarios de compra por Internet

Cuestionario Compra Internet
El comercio online es cada vez más popular entre los consumidores. Los negocios tienen como objetivo superar las expectativas del cliente, y una de las mejores formas de lograrlo es usando cuestionarios de compra por Internet. ¿No estás seguro de esto? Continúa leyendo y te contaremos por qué.

No hay nada más erróneo que pensar que al no tener contacto directo con el cliente tu negocio por Internet tendrá el éxito asegurado. Pero, ¿cómo sabes si tu cliente se encuentra feliz con el proceso de compra, con la experiencia del producto o con tu marca en general o incluso, asegurar que regresará?.

Existen diversas herramientas que te ayudarán a tener este dato, una de ellas son los cuestionarios o encuestas de compras de productos que puedes hacer online.

¿Qué son los cuestionarios de compra por internet?


Los cuestionarios de compra por Internet son herramientas que permiten recolectar la opinión de los clientes para mejorar su experiencia de compra en tu sitio web y lograr su satisfacción con la marca.

Estos cuestionarios tienen el objetivo de evaluar diferentes aspectos como el diseño de la página, calidad del servicio, tiempo de resolución de problemas, tiempo de entrega, empaquetado, características de uso del producto y muchos más.

Beneficios de realizar cuestionarios de compra por Internet


Realizar cuestionarios de compra por Internet tiene grandes beneficios para tu negocio. A continuación, te mencionamos los más importantes:


Beneficios de realizar cuestionarios de compra por Internet

  • Optimizar tu sitio web para realizar un proceso de compra rápido para los usuarios. Sin tantos clics o atajos para lograr su objetivo.
  • Ofrecer una experiencia del cliente efectiva, asegurar que cada punto de contacto se encuentre listo para una interacción positiva entre el cliente y tu marca y lograr una experiencia del cliente digital única.
  • Asegurar que tu equipo de atención realice un trabajo efectivo, de lo contrario puedes implementar programas de capacitación que los guíe en la forma de interactuar con los clientes y conocer las características de los productos para resolver sus dudas en tiempo y forma.
  • Cuando conoces las preferencias de tus clientes, puedes ofrecerles los productos que necesitan para satisfacer sus necesidades para que recurran a tu marca cada vez que lo necesiten.

Estar al frente de la competencia en la actualidad es un trabajo complicado, y los cuestionarios de compra por internet son una herramienta esencial.

Quizá te interese conocer más sobre Big Data e Inteligencia de Cliente: dos tecnologías que serán fundamentales para muchas empresas.

Usos de los cuestionarios de compra por Internet


Entre los principales usos de estas herramientas se encuentran los siguientes:

Evaluar la experiencia del cliente

Los cuestionarios de compra por Internet te permiten evaluar cada punto de contacto en el trayecto del cliente. Desde el momento en el que accede a Internet para resolver su necesidad, hasta que adquiere tu producto y lo utiliza.

Con ayuda de estos cuestionarios podrás realizar los ajustes necesarios, como por ejemplo, optimizar el proceso de compra, añadir otros métodos de pago, reducir la cantidad de clics que el usuario da antes de pagar un producto, etc.

Descubrir los niveles de satisfacción del cliente

Otro de los usos de los cuestionarios de compras por Internet es que te permite conocer cómo de contentos se encuentran los clientes con tus productos o servicios, es decir, si son capaces de resolver sus necesidades o es necesario ajustarlo a las necesidades de tu público objetivo.

Este cuestionario permite evaluar aspectos como el empaquetado del producto, el diseño, las características y funciones, facilidad de uso, etc.

Satisfacción del cliente

La única forma de descubrir si tus clientes se encuentran satisfechos es preguntándoles. ¿Suena un poco obvio no? Sin embargo, muchas empresas simplemente omiten este paso o en efecto, lo realizan simplemente para llenar una base de datos infinita que nunca será utilizada.

Si tus clientes se encuentran satisfechos, te lo dirán y si no, también. Y si sienten que estás haciendo algo al respecto para mejorar su experiencia, asegurarás su lealtad a tu marca y su recomendación a sus amigos, compañeros de trabajo y familiares, y no hay mejor forma de publicidad que el boca a boca.

Evaluar el servicio al cliente

A diferencia de un establecimiento tradicional, tu equipo de servicio al cliente debe esforzarse aún más por entender las necesidades de los clientes a través de las redes sociales, un chat o correo electrónico.

Con los cuestionarios de servicio al cliente podrás evaluar el conocimiento de tu equipo respecto a tus productos, el nivel de atención que ofrecen a los usuarios, el tiempo de respuesta, la capacidad para solucionar un problema, etc.

Te recomendamos que leas: Redes sociales y comercio electrónico, ¡3 cosas que estás haciendo mal!

Guía para realizar cuestionarios de compras por Internet


Si pretendes realizar un cuestionario de compras por Internet, tenemos para ti los mejores consejos para que te asegures de realizar este proceso de forma rápida y efectiva.

Consejos para realizar cuestionarios de compra por Internet

Establece el objetivo de tu cuestionario

No puedes usar las mismas preguntas para calificar la experiencia de compra y evaluar las características del producto, y tampoco vas a distribuirlas en el mismo escenario.

Así que el primer punto, es que antes de crear un cuestionario debes tener claro qué es lo que quieres identificar al aplicarlo. Ya que eso te dará una pauta para distribuirlo, ya sea después de que el cliente haya realizado la compra, al recibir su producto y probarlo por primera vez o después de interactuar con un representante de servicio al cliente.

Realiza preguntas directas y fáciles de entender

Al realizar cuestionarios de compra por Internet, evita el uso de tecnicismos y de preguntas que se presten a dobles interpretaciones.

Nada aburre más a un usuario que los cuestionarios largos, con preguntas abiertas, así que te recomendamos combinarlas con preguntas de opción múltiple o cerradas, como por ejemplo una de puntuación Net Promoter Score, donde los usuarios podrás ofrecer una calificación que va del 0 al 10 y que así de fácil te ayudará a conocer sus niveles de satisfacción y si recomendarían tu marca a otras personas.

Algunas otras preguntas que puedes aplicar son:
1.	¿Dónde te enteraste de nuestra marca?
2. ¿Cuáles fueron las razones por las que elegiste comprar nuestro producto online y no en tienda?
3. Menciona 3 cosas que más te gustan de nuestro producto.
4. Menciona 3 cosas que menos te gustan de nuestros productos.
5. ¿Cómo de satisfecho te encuentras con el tiempo de envío de nuestro producto?
6. ¿Nuestro sitio web menciona las características e instrucciones de uso de forma clara?
7. Por favor, menciona qué podemos hacer para mejorar tu experiencia en nuestro sitio web.
8. ¿Tu paquete llegó en buenas condiciones?
9. ¿Fueron claros los términos de garantía para hacer válida la devolución del producto?
10. ¿Te sientes seguro al hacer tu compra en nuestra página web?

Utiliza un cuestionario dinámico y visualmente amigable

Como te mencionamos anteriormente, si quieres que la tasa de respuesta de tu cuestionario sea alta, debes asegurarte de que los clientes tengan un proceso dinámico, agradable y fácil de ejecutar.

Asegúrate de contar con una herramienta que te permita diseñar cuestionarios profesionales con diferentes tipos de preguntas, además de añadir el logotipo de tu marca para que los clientes puedan identificarla y se sientan en total confianza de responder.

Distribuye tu cuestionario

Asegúrate de recibir las respuestas adecuadas en el momento indicado. Muchas plataformas profesionales te ofrecen diversos métodos de distribución de encuestas, como redes sociales, correo electrónico, mensaje SMS o insertarlo en tu sitio web.

De esta forma podrás asegurarte de que los clientes respondan en el momento que deseen, ya sea en su teléfono móvil, computadora o tablet.

Sé objetivo con los resultados

Definitivamente recolectar los comentarios de tus clientes puede ser un golpe para el orgullo, sobre todo si recibes comentarios negativos. Sin embargo, es esencial si quieres asegurarte de satisfacer sus necesidades y que tu marca se encuentre entre las preferidas.

Así que, no te tomes como algo personal los comentarios. Al contrario, evalúa las tendencias, cómo de común es que los clientes respondan de forma negativa o positiva. Así podrás saber qué procesos debes conservar y qué otros debes mojorar definitivamente.

Haz los cambios necesarios

Cada comentario que los clientes comparten es una mina de oro. Pero no sirve de nada si solamente tienes una pila de datos y no vas a hacer nada con ellos.

Lo único que conseguirás es que los clientes se sientan decepcionados de que sus comentarios no sean tomados en cuenta y dejarán de hacerlo, lo que significa que continuarán insatisfechos y que eventualmente se irán.

Utiliza el software para encuestas adecuado

Un trabajo como este no es sencillo, por lo que precisas del apoyo de un software profesional y sólido que cuente con las funciones adecuadas para recolectar los comentarios de tus clientes.

Además, cerciórate de que la plataforma que elijas te permita visualizar los datos en tiempo real, que te presente las respuestas a través de gráficos, cuadros de comparación y muchas otras herramientas. De esta forma podrás realizar un análisis de datos efectiva que te ayude a tomar mejores decisiones para tu organización.

Ahora que ya sabes la importancia de medir la satisfacción de tus clientes en tu ecommerce, es momento de decidirte a recopilar esa información que necesitas para crear estrategias efectivas para el éxito de tu negocio.