Resolver problemas para activar Windows 10 Preview

Si has instalado Windows 10 Preview para tratar de experimentar con tiempo las novedades del sistema operativo de Microsoft que promete redimirlos ante el público, es posible que te hayas encontrado con un problema. Al cabo de unos días el sistema te pedirá que lo actives, mostrando un mensaje transparente superpuesto a todo lo demás, y diciéndote que vayas a los ajustes del sistema para hacerlo. Una vez allí dispones de un enlace para realizar la activación, pero al intentarlo recibes un error diciéndote que no ha sido posible activarlo y que lo intentes de nuevo más tarde. Si le das al enlace de «Error details» verrás que te indica un código de error:

Problemas-Activacion-Windows-10-Prev (1)

En este caso concreto el error es el 0x8007232B, que quiere decir que no encuentra el servidor de activaciones. Si este es tu caso seguramente es porque tienes instalada la edición «Enterprise» del producto, y lo que hace esa activación es buscar el servidor empresarial de licencias, que por supuesto no tendrás normalmente en tu red, y menos con licencias para Windows 10 Preview 😉

SIGUE LEYENDO PARA VER CÓMO SOLUCIONARLO

Error al descargar archivos JSON con IIS Express

Visual Studio es una herramienta sensacional para hacer desarrollo web, y más actualmente gracias a la disponibilidad de la Visual Studio Community Edition, que permite instalar cuantos plug-ins y extensiones queramos, entre ellos Web Essentials.

El caso es que para desarrollar con Visual Studio utilizamos normalmente Internet Information Server Express (IIS Express), que es el núcleo de IIS a nuestra disposición para lanzarlo bajo demanda y servir nuestras webs y aplicaciones.

El problema con IIS es que trae una determinada configuración por defecto que, aunque es válida para la mayor parte de los casos, no nos sirve siempre y hay que aprender a ajustarla.

Uno de estos casos, muy habitual, es no tener configurado un determinado tipo MIME.

Básicamente un tipo MIME define la manera de transmitir un archivo mediante el protocolo HTTP, de modo que en el otro extremo (el navegador) sepa qué tipo de información le viene y cómo procesarla. No es lo mismo recibir un archivo de texto que uno binario, por ejemplo.

Por este motivo hay ciertos archivos que aunque los pongamos en la carpeta de la aplicación y aunque los enlacemos desde una página, el servidor nos responde todo el tiempo que no los encuentra o que no puede servirlos.

Un ejemplo típico es cuando estamos prototipando una aplicación web y queremos simular la disponibilidad de datos mediante archivos de tipo JSON (en lugar de leerlos de un servicio, que aún no existe). En este caso si intentamos descargar mediante AJAX el archivo JSON recibimos todo el tiempo un error 404, como si el archivo no existiera.

Esto ocurre también con muchos otros tipos de archivo (por ejemplo, documentos de Office, aplicaciones Silverlight (.xap), etc… y es debido a que no están definidos sus correspondientes tipos MIME en el servidor.

¿Cómo lo solucionamos?

SIGUE LEYENDO EN: http://www.jasoft.org/Blog/post/Error-al-descargar-archivos-JSON-con-IIS-Express.aspx

Unidades SAN/iSCSI desaparecidas en Windows Server

El protocolo iSCSI es muy útil. Nos permite definir unidades virtuales de almacenamiento en una máquina, y adjuntarlas a una máquina remota diferente. Lo interesante de esto es que esas unidades remotas se ven en la máquina como si fueran unidades locales. Es decir, aunque están ubicadas en otro sitio, para el sistema operativo es como si fueran discos duros físicos que tuviese enchufados, y no se ven como unidades de red. Esto es estupendo porque permite hacer un acceso de bajo nivel a la unidad, usando los mismos comandos que usaría para acceder a un disco físico, y por lo tanto la unidad se puede formatear y escribir como cualquier otra. Al no tratarse como carpetas de red remotas no tiene las limitaciones de éstas, aunque sí tienen otras.

En iSCSI cada unidad virtual dispone de un identificador único denominado LUN, o Logical Unit Number. Éste sirve para identificarla de manera inequívoca en la red. Aunque técnicamente no es correcto, lo más habitual es que nos refiramos a las unidades virtuales directamente como LUNs. O sea, cuando dices "Voy a adjuntar a esta máquina esa LUN" todo el mundo entiende que dices "Voy a adjuntar a esta máquina la unidad de disco virtual cuya LUN es esa".

El rendimiento de iSCSI es muy bueno, y es una gran alternativa a las carpetas compartidas cuando no es necesario compartir el acceso a la unidad, ya que cada LUN solo puede estar adjuntada a un único equipo a la vez. Es decir, al contrario que una unidad de red compartida, las LUN solo pueden usarse desde un único equipo remoto si no queremos que se corrompan. El motivo es que al gestionarse con un acceso a bajo nivel al disco, los comandos enviados simultáneamente desde varios sitios pueden entrar en conflicto y corromper la información.

iSCSI es muy fácil de montar con una versión cualquiera de Windows Server, pero la mayor parte de los equipos de almacenamiento (NAS) que hay en el mercado ofrecen la posibilidad de crear LUNs y compartir mediante iSCSI, incluso los equipos destinados a pequeñas oficinas o PYMEs (los hay por poco más de 100€, sin discos, basados en Linux).

El problema de Windows Server 2012 con las LUN

Hace poco estaba trasteando con un servidor virtual nuevo con Windows 2012, y me ocurrió una cosa muy extraña: había adjuntado un par de LUN remotas de un NAS a la máquina, pero de repente, al día siguiente, habían desaparecido.

Esto es algo extraño porque tengo otro equipo con Windows Server 2008 R2 al que tengo adjuntadas también otras dos LUN y en las que jamás había pasado nada parecido.

Cuando me fui al administrador de discos para ver si estaban allí "físicamente", aunque no fuesen accesibles desde el explorador de archivos, en efecto allí se encontraban, pero mostraban un icono de información con el siguiente mensaje:

The disk "XXXX" is offline because of a policy set by an administrator

O lo que es lo mismo, en español:

El disco "XXXX" está offline debido a una política creada por un administrador

¡Qué raro! Yo soy el administrador y no he establecido ninguna política al respecto.

……

SIGUE LEYENDO para averiguar por qué ocurre esto, qué sistemas operativos están afectados y cómo puedes solucionarlo de una vez por todas:

http://www.jasoft.org/Blog/post/Unidades-SANiSCSI-desaparecidas-en-Windows-Server.aspx

Seguridad: Identidades de grupos de aplicaciones en IIS 7.5 y IIS 8.0

Internet Information Server ofrece desde hace muchos años un concepto llamado Grupo de Aplicaciones, que incluso más comúnmente se suele denominar con su nombre en inglés: "Application Pool".

Un Application Pool es una forma de aislar unas aplicaciones web de otras, confinándolas en su propio proceso y en sus propios límites de seguridad. Son tremendamente útiles ya que nos ayudan con la estabilidad general del sistema, la mejora de la seguridad y la salud de las propias aplicaciones entre otras muchas cosas.

Un mismo grupo de aplicaciones puede contener a varias aplicaciones a la vez, pero lo más habitual es que haya una relación uno a uno entre aplicaciones y grupos de aplicaciones, es decir, uno por cada aplicación.

De este modo para cada grupo de aplicaciones podemos establecer multitud de parámetros, por ejemplo (hay todavía más):

  • La identidad bajo la que se ejecuta el proceso de nuestra aplicación (súper-importante y de lo que amos a hablar enseguida).
  • Las acciones a llevar a cabo en caso de que se superen ciertos límites de uso de CPU o memoria, de modo que no tengamos aplicaciones acaparadoras que, debido a fugan memoria o consumen muchos recursos, puedan afectar a las demás.
  • Si debemos ejecutar el proceso en un único procesador para sacarle partido a la caché, o en varios (afinidad de procesador).
  • El tiempo máximo de inactividad antes de descartar un proceso y así liberar recursos de una aplicación que no se usa de modo que queden libres para el resto.
  • El número máximo de peticiones que se pueden encolar antes de devolver estatus 503 de servicio no disponible.
  • Bajo qué condiciones se debe reciclar el proceso para librar recursos (cada x tiempo, al cabo de x peticiones, si se producen fallos, etc…)
  • Si se permite ejecutar aplicaciones de 32 bits en sistemas operativos de 64bits.
  • La versión de .NET que ejecuta el proceso
  • El modo de integración de la pila de peticiones (integrada o clásica)

Además aislamos a las aplicaciones entre sí, evitando que los problemas de estabilidad o de seguridad de una puedan afectar a las demás. Son útiles para todos, pero para empresas que albergan aplicaciones para otras empresas son una bendición del cielo.

En este post te explico:

  • Qué son los grupos de aplicaciones
  • Qué es la identidad de un grupo de aplicaciones
  • Cómo podemos sacarle partido
  • Cómo ha cambiado este aspecto de IIS entre la versión 7 y las más recientes 7.5 y 8.0
  • Qué son los usuarios virtuales y cómo podemos establecer permisos en el sistema de archivos para éstos.

LEE EL ARTÍCULO COMPLETO AQUÍ: http://www.jasoft.org/Blog/post/Seguridad-Identidades-de-grupos-de-aplicaciones-en-IIS-75-y-IIS-80.aspx

El problema de los IDs duplicados en HTML

DuplicadosEsto es lo que dice la especificación de HTML5 respecto a los identificadores de elementos HTML en una página (traduzco):

El valor (del ID) debe ser único entre todos los IDs en el sub-árbol raíz del elemento, y debe contener al menos una letra. El valor no puede contener espacio alguno.

El quid de la cuestión aquí es ¿qué es eso de "sub-árbol raíz"?. Bueno, pues yendo de nuevo a la especificación lo que dice es:

El sub-árbol raíz de un nodo es el sub-árbol cuya raíz es el nodo raíz del elemento. Cuando un nodo está en un documento, su sub-árbol raíz es el árbol de ese documento.

Esto parece un trabalenguas y, para ser sinceros, no lo deja nada claro. Pero si sigues leyendo, acabas por llegar a lo importante, que en lo que nos ocupa viene siendo que en una página web hecha con HTML el sub-árbol raíz de cualquier elemento dentro de la página es el documento.

Es decir, en la práctica todo esto lo que quiere decir es que para cualquier elemento de una página web HTML su identificador debe ser único dentro de la página.

Sin embargo, la realidad es que luego vemos por ahí elementos con el mismo atributo id dentro de una misma página, es decir, con identificadores repetidos.

… CONTINUA…

  • Propósito de los identificadores
  • Comportamiento de los navegadores ante identificadores duplicados
  • Posibles problemas
  • La tolerancia de los navegadores: un arma de doble filo

Lee el post completo en JASoft.org: http://www.jasoft.org/Blog/post/El-problema-de-los-IDs-duplicados-en-HTML.aspx

Controlar la vista previa de Facebook (un par de trucos y una extensión)

Una quinta parte de la población mundial está en Facebook hoy en día. Según datos de la propia empresa, a finales de este año 2014 tienen:

  • 1.350 millones de usuarios activos mensuales en la web (es decir, que entran al menos una vez al mes a la aplicación de esta red social).
  • 1.120 millones de usuarios activos mensuales a través del móvil
  • 864 millones de usuarios activos diarios en promedio.

Las cifras son apabullantes y dan una idea de la importancia que tiene esta red social, más allá de la opinión que nos merezca y de si queremos o no estar en ella.

Por eso es muy importante que nuestras páginas y nuestras aplicaciones web sean fácilmente "compartibles" en esta red social. Es decir, cuando alguien desee compartir una de nuestras páginas en Facebook que estemos seguros de que se va a ver lo que nosotros queremos, y no lo que determine automáticamente un algoritmo.

Etiquetas del grafo social

Por defecto, en una página normal y corriente, sin un marcado especial, lo que hace Google a la hora de compartir es detectar las imágenes que hay en la página, poner el título de la misma y sacar automáticamente una descripción a partir del texto inicial de ésta.

El mayor problema de dejar esto al azar se produce con las imágenes, ya que la mayor parte de la gente no se va a molestar probablemente en elegir la correcta y además muchas veces no se detectan todas o la que nos interesa promover está puesta como fondo o se establece mediante estilos CSS y no con un elemento <img>.

Por ello es conveniente tomar el control sobre lo que se comparte, y para ello Facebook ofrece una serie de etiquetas especiales que podemos añadir a nuestra página y que sirven precisamente para eso.

Estas etiquetas se implementan en forma de elementos <meta> en la cabecera de la página, siguiendo la estela de las tradiciones meta: "title", "description", etc… Sus nombres en este caso se preceden con el prefijo "og:", que deriva de Open Graph.

Open Graph es un protocolo que permite que cualquier página web se convierta en un objeto "rico" dentro del grafo social, de modo que pueda ofrecer la misma funcionalidad que cualquier otro objeto en Facebook.

Esta es la teoría y en el enlace anterior encontrarás mucha información. En la práctica lo que vamos a necesitar es compartir las páginas tal y como comentaba. Para ello debemos implementar las siguientes etiquetas básicas:

….. CONTINÚA con varios trucos y una extensión gratuita para BlogEngine….

Lee el post completo en JASoft.org: http://www.jasoft.org/Blog/post/Controlar-la-vista-previa-de-Facebook-un-par-de-trucos-y-una-extension.aspx