JASoft.org

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

MENÚ - JASoft: JM Alarcón

Cómo solucionar el error con "Microsoft.PowerShell_profile.ps1" en PowerShell

Como ya os he contado hace poco, PowerShell es una herramienta avanzada de línea de comandos para Windows que trata de llevar a este sistema la potencia de otros intérpretes de comandos (fundamentalmente el shell bash para UNIX), muy extendidos en otros sistemas operativos. Si estás trabajando con alguna herramienta de administración desde línea de comandos puede que al cargar PowerShell te muestre el siguiente error:File Microsoft.PowerShell_profile.ps1 cannot be loaded because running scripts is disabled on this system.o en español "El archivo Microsoft.PowerShell_profile.ps1 no se ha podido cargar porque la ejecución de scripts está deshabilitada en este sistema":Pulsa para aumentarEste error se debe a que, por defecto, los permisos de ejecución de scripts externos están restringidos en PowerShell y solamente nos permite ejecutar comandos interactivos, es decir, directamente en la consola. El archivo que menciona el mensaje de error se crea por parte de algunas aplicaciones (por eje... [Más]

Introducción a la administración de sistemas con Windows PowerShell

Para los administradores de sistemas más avanzados, uno de los puntos débiles de Windows frente a otros sistemas operativos ha sido tradicionalmente  la capacidad de administración de éste desde línea de comandos. Windows siempre ha sido un sistema operativo muy fácil de administrar visualmente. En general todos los productos de Microsoft lo son, y esta ha sido siempre una de las principales causas de su preponderancia como sistema operativo. Sin embargo esta facilidad de uso, basada en consolas gráficas y asistentes, ha sido tradicionalmente un arma de doble filo y fuente de controversias. Por un lado la sencillez con la que se realiza cualquier tarea hace que ciertas personas ganen excesiva confianza. En muchas ocasiones esta sencillez se convierte en un grave problema que lleva a que los sistemas estén mal administrados, debido a que no se ha profundizado bien en los conceptos necesarios para una buena gestión (la ... [Más]

TRUCO: Búsqueda rápida de archivos en Visual Studio

Este es un truco que, sorprendentemente, muchos programadores que usan Visual Studio a diario desconocen. Se trata de la posibilidad de buscar a toda velocidad cualquier elemento de nuestro código, incluyendo archivos, variables, funciones, clases...La funcionalidad se denomina "Navigate to", y en las últimas versiones de Visual Studio se ha mejorado mucho, incluyendo VS2013.Para activarla lo único que hay que hacer es pulsar la combinación de teclas "CTRL + ," (sí, la coma).Esto abre una pequeña ventana adherida a la parte superior derecha del entorno, que tiene únicamente un cuadro de texto con el foco puesto, en el que podemos escribir:Lo que escribamos ahí se usa para localizar a toda velocidad cualquier elemento de nuestro proyecto que incluya esa palabra: archivos, rutas, clases, métodos, variables... y se nos van mostrando debajo con la primera seleccionada y su vista previa detrás (en la pestaña de vista previa):Si pulsamos las teclas del cursor para bajar o subir nos va mostra... [Más]

Uso selectivo de dependencias en módulos con RequireJS

La configuración de RequireJS ofrece muchas posibilidades para hacer gran cantidad de cosas útiles. La semana pasada, por ejemplo, os contaba cómo forzar la descarga de todos los scripts/módulos de una página inhabilitando la caché gracias a un parámetro añadido automáticamente a todas las peticiones.En esta ocasión me voy a fijar en otro parámetro interesante llamado map. La función de este parámetro es "mapear" ciertos módulos de manera especial cuando sean dependencias de otros módulos.Por ejemplo, imagínate que tienes que usar dos versiones del mismo módulo (digamos jQuery), pero quieres usar una en particular para un determinado módulo que depende de ella, y la otra para otro módulo diferente.Supongamos que tenemos una estructura de archivos como esta:- modulo1.js - modulo2.js - libs/ - jquery1.11.2.js - jquery2.1.3.js Es decir, dos módulos en la raíz de la carpeta de scripts, y una subcarpeta "libs" con las dos versiones de jQuery. Imaginemos ahora que el módulo núme... [Más]

Forzar siempre la descarga (sin caché) cuando usas RequireJS en aplicaciones JavaScript

Imagina la siguiente situación, bastante común por otro lado: Estás desarrollando una aplicación JavaScript (generalmente de tipo Single Page Application), y utilizas la biblioteca require.js para realizar la modularización de la misma en lado cliente. Vas tocando tu código JavaScript y probándolo y depurándolo en diferentes navegadores. Eso implica lanzarlos con bastante frecuencia, albergando tu aplicación en un servidor web local para probar la aplicación. El problema surge porque el servidor web hace caché de los archivos estáticos (como son los .js) por lo que cada vez que cambias algo en un script, aunque refresques la página, no siempre vienen los cambios que has realizado. Esto puede conducir a grandes frustraciones porque a veces cambias un carácter o una línea, crees que estás probando esa última versión, pero en realidad estás trabajando toda... [Más]

Autenticación de usuarios Windows y de dominio (con Directorio Activo) en IIS e IIS Express

Normalmente cuando desarrollas una aplicación web lo haces pensando en colocarla en Internet, abierta a todo el mundo. En estos casos lo que haces es habilitar la autenticación de usuarios bien a través de unas credenciales que introducen en tu aplicación y que validas contra la base de datos, o bien a través de algún servicio de autenticación de terceros (como autenticarse con Facebook, Twitter, Google o GitHub).Lo que ocurre es que algunas aplicaciones web están pensadas para trabajar en la red interna de una empresa o , aunque sea a través de Internet, utilizando la infraestructura de Directorio Activo para autenticar a los usuarios.Para estos casos es necesario activar la denominada "Autenticación Windows" en tu servidor Internet Information Server. Ésta permite validar usuarios del dominio (o de la máquina local) contra la infraestructura de la empresa, de modo que se identifican por el mero hecho de estar autenticados en la máquina local, usando su usuario y clave habituales. La ... [Más]

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: 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 busc... [Más]

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&oacut... [Más]

Unidades SAN/iSCSI desaparecidas en Windows Server

El protocolo iSCSIes 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 e... [Más]

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 nuest... [Más]