JASoft.org

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

MENÚ - JASoft: JM Alarcón

Utilizando la API de pantalla completa en todos los navegadores

Nota: He estado un poco “missing” desde hace un tiempo, casi un mes, entre otras muchas cosas por que he estado muy involucrado en el lanzamiento de nuestra zona de recursos para programadores en campusMVP.es. En ella encontrarás muchas cosas interesantes para programadores, sobre todo los que se inician, y podrás encontrar trucos, conceptos de base, vídeos prácticos, noticias, y mucho más. Añádelo a favoritos :-) Ahora, para compensar, un artículo bastante a fondo sobre un tema muy interesante... ;-) De toda la vida estamos acostumbrados a que, cuando visualizamos un vídeo, tengamos la opción de verlo a pantalla completa, para poder apreciar todos los detalles y verlo en alta definición. En lo que no se fijaba casi nadie es en que, hasta hace relativamente poco, todos esos visores de vídeo estaban basados en Flash y en menor medida en Silverlight, y esa capacidad de verse a toda pantalla... [Más]

Contadores automáticos con CSS

Una necesidad muy común es la de numerar elementos en nuestras páginas web. Una manera muy sencilla, pero muy poco flexible, es utilizar listas ordenadas, <ol>, que por defecto numeran usando dígitos arábicos (los más habituales) pero que se pueden cambiar por otros tipos de numeración (números romanos o letras, por ejemplo). Sería algo así: <ol> <li>Elemento 1 <ol> <li>Lorem ipsum dolor sit amet.</li> <li>Consequuntur, in facilis quae praesentium?</li> </ol> </li> <li>Elemento 2 <ol> <li>Lorem ipsum dolor sit amet.</li> <li>Quasi illo aperiam labore aliquid!</li> </ol> </li> <li>Elemento 3 <ol> <li>Lorem ipsum dolor sit amet.</l... [Más]

Cómo conservar la relación de aspecto en los vídeos embebidos en páginas web

Tenemos una página web (por ejemplo, un blog) en la cual necesitamos insertar vídeos de YouTube, Vimeo, etc...  La cosa parece muy fácil: vamos a la página en cuestión y usamos el código de “Embeber” que nos dan: Ahora vamos a la página y metemos ese simple iframe y listo: tenemos el vídeo en la página y YouTube, Vimeo o quien sea se encarga de mostrarlo en el formato más adecuado para el dispositivo con el que se visualice la página. Los problemas comienzan cuando necesitamos que ese vídeo se redimensiones automáticamente según la resolución o el tamaño de la pantalla del dispositivo que se conecte para verlo. Es decir, cómo conseguir que el vídeo se redimensione de manera fluida, adaptándose automáticamente a los cambios de tamaño de la página, al más puro estilo Responsive Web Design. El código que nos dan para el marco embebido lleva un ancho y un alto fijos. El primer intento es simplemente quitarle esos atributos. Esto no sirve porque entonces el tamaño será el mínimo p... [Más]

Google Chrome ya no permite el cambio de agente de usuario

En Google Chrome siempre ha sido muy sencillo “simular” otros navegadores cambiando la cadena de usuario (User Agent String) del navegador desde las herramientas del desarrollador (pulsando F12): Además se podía especificar unas dimensiones para la ventana y algunos otros ajustes que permitían simular otros navegadores fácilmente. En la reciente versión 31 del navegador, Google decidió retirar la posibilidad de cambiar el agente de usuario y estos otros ajustes desde las herramientas del desarrollador, por lo que si estás usando ese navegador ya no podrás hacerlo directamente. Internet Explorer permite el cambio de la cadena de agente de usuario y otros parámetros desde sus herramientas del desarrollador (con F12 también), usando para ello la pestaña inferior: que es equivalente a la que tenía Chrome. Si quieres poder cambiar a voluntad el agente de usuario desde Chrome te recomiendo que utilices alguna de las extensiones disponibles para ello, por ejemplo User Agent Switch... [Más]

TRUCO: Cómo editar libremente, de manera temporal, cualquier página web de Internet

Este es un truco muy útil, muy sencillo pero a la vez poco conocido. De hecho le resultará de gran utilidad no sólo a técnicos como a diseñadores, sino también a responsables de marketing o, en general, cualquiera para el que un navegador sea su herramienta principal de trabajo.
Se trata de poder editar libremente cualquier página de Internet. Aunque no sea nuestra.
Esto tan sencillo tiene una enorme utilidad para muchas cosas... [Más]

Suplantación de usuarios en IIS y ASP.NET: un resumen detallado

A la hora de desplegar en un entorno real de producción, para ponerlas a disposición de todo el mundo, las aplicaciones web creadas con ASP.NET se albergan en un servidor web. Por regla general éste será Internet Information Server (IIS), incluido en las versiones de servidor de Windows. IIS no es más que otra aplicación que se ejecuta sobre el sistema operativo, por lo que es Windows el que se ocupa del nivel más bajo de la cadena de la seguridad. Por ello conviene tener claro que la última palabra a la hora de conceder acceso a un recurso físico del sistema la tiene el propio sistema operativo, no IIS ni ASP.NET. Contextos de seguridad En Windows, cada proceso se ejecuta dentro de su propio contexto de seguridad. Cuando un proceso accede, por ejemplo al sistema de archivos NTFS, los permisos se le otorgan en función del contexto en el que se ejecute. Normalmente si un proceso lanza otro subproceso éste ... [Más]

Cómo conectarse a IIS Express desde fuera de la máquina local

Hace unos tres años Microsoft lanzó IISExpress, una versión ligera de su servidor Web y servidor de aplicaciones, pensada fundamentalmente para ser utilizada por parte de los desarrolladores. Hasta entonces cuando queríamos probar y depurar una aplicación web desde Visual Studio teníamos básicamente dos opciones: Usar el servidor de desarrollo integrado, conocido comúnmente como “Cassini”. El problema es que no era el servidor verdadero y había ciertas diferencias con un entorno de producción real. Además no permitía usar otras tecnologías como PHP o ASP Clásico, y a veces era necesario por que tenemos aplicaciones mixtas. Usar el propio Internet Information Server, que sí que era ya como el entorno real y no tenía ningún tipo de limitaciones. El problema es que para poder usarlo necesitas permisos de administrador y además implica configurar el ... [Más]

Calculando valores de propiedades CSS dinámicamente sin programar

Una característica muy interesante introducida en CSS3 es la posibilidad de asignar valores a propiedades CSS utilizando cálculos, de forma que en lugar de utilizar valores constantes coo siempre, se utilicen valores dinámicos que varíen en función de ciertas condiciones. Para ello se ha diseñado la función calc de CSS3. Es una función específica para trabajar con valores numéricos (generalmente dimensiones) y que nos permite realizar operaciones matemáticas muy sencillas. Los operadores que permite utilizar son solamente la suma (+), la resta (-), la multiplicación (*) y la división (/). Su principal característica, y para lo que vamos a usarlo realmente la mayor parte de las veces, es que gracias a calc podemos mezclar unidades de medida, incluso relativas y absolutas, en los valores de las propiedades CSS. Por ejemplo: ¿cómo centrarías un elemento dentro de otro de modo que el centro de ambos quede superpuesto? (es decir, un centrado perfecto). Si tenemos estos dos elementos: ... [Más]

Booleanos, pseudo-booleanos, operadores y condicionales en JavaScript: mucho más complejo de lo que parece

Lo que voy a explicar hoy tiene mucho más trasfondo del que puede parecer a simple vista, y es aplicable no solo a JavaScript sino a cualquier lenguaje débilmente tipado que maneje valores que se pueden evaluar automáticamente como si fueran booleanos. En JavaScript existen valores booleanos (true y false) pero existen también otros valores que usados en el contexto de un operador booleano se comportan también como si fueran booleanos. A los tipos de datos no booleanos que se interpretan como verdadero cuando se evalúan se les denomina valores "truly" (o como les llamo yo en español: valores "verdadosos"). Cuando se evalúan como falsos se les denomina valores "falsy" (o valores "falsosos"). Condicionales y conversiones implícitas Por ejemplo consideremos este código:   var v = "cualquier cosa"; if (v) alert("verdadero"); else alert("falso"); ¿Cuál crees que será... [Más]

Nuevos proyectos unificados de aplicaciones ASP.NET en Visual Studio 2013

Un poco de historia para comenzar y ayudarnos a entender el porqué de lo que voy a explicar. Cuando nació ASP.NET hace ya casi 15 años lo único que existía era ASP.NET Web Forms. Este novedoso paradigma de desarrollo trataba de acercar el desarrollo web a los programadores de escritorio, y permitía arrastrar y soltar controles, controlar eventos en el servidor como si fueran eventos de cliente, etc… Algo muy innovador y que todavía sigue siendo muy útil (y muy utilizado), pero que cada vez se usa más para ciertos ámbitos concretos, como las aplicaciones empresariales. Una década más tarde Microsoft decidió que aunque esto estaba muy bien para crear rápidamente aplicaciones de tipo empresarial no daba la flexibilidad apropiada para crear aplicaciones web generales, donde se necesitaba un control absoluto sobre el HTML generado, y se necesita poder sacar partido con total libertad a... [Más]