JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Funciones reguladoras en JavaScript: cómo limitar el número de veces que se puede llamar a una función cada segundo (throttling y debouncing)

En muchas ocasiones tenemos la necesidad de ejecutar en una aplicación la misma función JavaScript muchas veces seguidas, incluso sin pretenderlo. Por ejemplo un evento costoso que repinta un canvas a medida que redimensionamos la pantalla o que hace llamadas AJAX cuando un usuario teclea en un cuadro de texto. Pueden provocar muchas llamadas innecesarias y sería muy útil poder limitar el número máximo de veces que permitimos hacer una llamada a ciertas funciones. Para conseguirlo puedes crear un método regulador. Es lo que vamos a ver en este artículo. [Más]

Azure Web Apps #5 - Haciendo copias de seguridad automáticas de tus Web Apps

Azure Web Apps ofrece la posibilidad de efectuar copias de seguridad automáticas de todos los archivos de la aplicación, la configuración y también de las bases de datos SQL Server o MySQL que estemos utilizando. Podremos establecer la frecuencia del backup y también el periodo de retención. Veremos que existen algunas limitaciones (y trucos) que deberíamos tener en cuenta. Con este artículo termino esta mini-serie sobre migración de aplicaciones a Azure Web Apps. [Más]

Azure Web Apps #4 - Asociando certificados SSL a tu Web App y configuración avanzada con Cloudflare

En la actualidad toda aplicación web (o sitio web) que se precie debería trabajar con conexiones seguras. Esto no solo da una mejor imagen a los visitantes, sino que ofrece ventajas de todo tipo aparte de las obvias relacionadas con la seguridad. Por ejemplo, mejorará tu posicionamiento en buscadores (Google es adalid de esto), y dependiendo de donde albergues la web, incluso mejorará su rendimiento gracias a que tus visitantes podrán usar automáticamente HTTP2. Gracias a la existencia de Let's Encrypt y sus certificados SSL gratuitos, ya no hay disculpa. Cloudflare también te proporciona de manera automática un certificado SSL gratuito para tu dominio, así que si, como yo, utilizas este servicio, no te tienes que preocupar de esto. Aún así, si quieres tener Cloudflare con la máxima seguridad disponible te resultará útil saber cómo instalar a mano un certificado SSL en tu Azure Web App. Existen varias opciones de tener un certificado SSL en tu dominio alojado en Azure web Apps. en este artículo vamos a verlas todas... [Más]

Azure Web Apps #3 - Asociando dominios a tu Web App

En las dos entregas anteriores hemos estudiado qué son las Plataformas como Servicio o PaaS, en qué consiste el PaaS de Azure y sus ventajas e inconvenientes, y hemos creado nuestra primera Web App real en Azure, la hemos configurado y la hemos puesto en marcha. En la entrega de hoy vamos a ver cómo poner a andar el servicio con su propio dominio asignado. Esto es indispensable para dar una imagen corporativa y de calidad, y no podremos hacerlo en la capa gratuita de Azure Web Apps, solo en las opciones de pago. Pero es muy importante. Vamos a ver cómo hacerlo y qué dificultades nos podemos encontrar. [Más]

Azure Web Apps #2 - Creando y configurando la aplicación

En el anterior artículo expliqué qué es una Plataforma como Servicio (PaaS) en la nube y por qué son interesantes. Presenté la PaaS de Microsoft, llamada Azure Web Apps, así como sus ventajas, sus inconvenientes, sus precios y para quién es adecuada. Ahora vamos a la parte práctica de cómo montar una aplicación real sobre Azure Web Apps, siguiendo el ejemplo de este blog, que migré sin adaptaciones a este servicio. En próximos artículos veremos configuraciones adicionales importantes, dominios propios, certificados SSL, la creación de backups, etc... [Más]

¿Migrar tu Web app a Azure? - Caso práctico con este blog (Parte I) - Qué es PaaS y Azure Web Apps

Con este post inicio una pequeña serie sobre Azure Web Apps con la disculpa de que hace unas semanas he migrado este blog a dicho servicio. Se trata de una Plataforma como Servicio (PaaS) que ofrece Microsoft en la nube y que permite obtener enormes ventajas para desplegar aplicaciones Web. Aunque no es para todo el mundo tampoco. En este primer artículo explico qué es PaaS, qué son las Azure Web Apps, qué ventajas presentan, qué inconvenientes tienen, cuánto cuestan (las hay gratuitas) y te comento lo que pienso sobre si son una buena opción para ti o no. [Más]

¿Detectar dispositivos móviles mediante código? Una mala idea...

Hace poco alguien me preguntó cómo podía hacer, mediante JavaScript, para detectar si el dispositivo que estaba usando un usuario era o no un móvil. La idea era adaptar la interfaz y parte del JavaScript a ese caso concreto, para mostrar una interfaz y funcionalidad diferente para dispositivos móviles respecto a la "versión" de escritorio de la aplicación web. De entrada, detectar el dispositivo es una práctica muy poco recomendable. Hace ya bastantes años era lo habitual, pero en los últimos años, con la proliferación de dispositivos, navegadores, factores de forma, etc... y la velocidad con la que cambian las características soportadas por todos ellos, hacer una detección de tipo de dispositivo o navegador es una mala idea. La cadena de agente de usuario: mala idea Lo que se hacía hace mucho tiempo para detectar el tipo de dispositivo era utilizar la cadena de agente de usuario (User Agent) de los navegadores, para determinar el tipo de navegador, su versión y el sistema operativo... [Más]

TRUCO: Hacer "bundling" de archivos JavaScript o CSS sin necesidad de herramientas externas

Este es un truco rápido pero muy útil para programadores Front-End que trabajan con HTML, CSS y JavaScript.Como todo el mundo sabe (o debería saber), con HTTP 1.1 cada petición que se envía al servidor añade "peso" a la carga total de la página porque se debe abrir una nueva conexión, se deben enviar las cabeceras y recibirlas, hay un máximo de conexiones abiertas a la vez, etc... Por ello, si la página incluye por ejemplo 10 archivos .css que en conjunto pesan 250KB, su descarga va a tardar más que si descargásemos ese mismo contenido exactamente, con el mismo peso, pero en un solo archivo .css.Esto no ocurre con la nueva versión HTTP 2, pero no siempre está disponible todavía.Como en una aplicación o en una página web cada milisegundo cuenta, se suelen utilizar dos técnicas habitualmente para disminuir el efecto de tener varios archivos y disminuir su peso:"Bundling" o empaquetamiento: consiste en combinar varios archivos dentro de uno solo para que, aunque ocupen lo mismo, puedan de... [Más]

Cómo obtener una referencia al ámbito global en cualquier entorno JavaScript (HTML, Node.js, Windows Scripting Host...)

El ámbito global de JavaScript es el ámbito superior en el que se definen las variables y que contiene algunas de las funcionalidades globales del entorno de ejecución. Se trata de un objeto especial que: Siempre está disponible Se llama de manera implícita, es decir, no es necesario mencionar su nombre explícitamente para usar sus métodos o propiedades, al contrario que con cualquier otro objeto. Según indica el estándar ECMAScript, este objeto global no dispone de constructor ni de prototipo y no se puede invocar como una función al igual que el resto de los objetos. Si en un fragmento de código JavaScript definimos una variable o una función como estas fuera de todo contexto, o sea, para simplificar, sin ser dentro de una función): var miVar = 0; function sumar(a, b) { return a+b; } Lo que estamos haciendo es crear sendos miembros en el objeto global, que es el que constituye ... [Más]

Precedencia de codificaciones en una página web

En informática existen muchas maneras diferentes de representar texto, de modo que pueda representar diversos conjuntos de caracteres, ideogramas y símbolos.Al principio todo era muy sencillo, pero poco útil. Los estadounidenses desarrollaron la informática y, como no, la hicieron totalmente "anglocéntrica" desarrollando el conjunto de caracteres ASCII (American Standard Code for Information Interchange). ASCII era capaz de representar 128 caracteres diferentes del alfabeto anglosajón. Por lo tanto no había ni tildes, ni "eñes" ni por supuesto caracteres cirílicos, ideogramas japoneses, etc...En la actualidad existen infinidad de maneras de codificar los caracteres para almacenarlos, transmitirlos y mostrarlos en un sistema informático. El más común y utilizado en el mundo es UTF-8 (Unicode transformation Format-8). UTF-8 es capaz de codificar millones de caracteres diferentes y dispone de todos los símbolos usados en lenguajes humanos, además de otro tipo de representaciones (como emo... [Más]