Windows

Actualizando Microsoft Windows en todas sus versiones desde Windows 1.0 hasta Windows 7

Os dejo un video que he encontrado de Andriew Tait. El video es un experimento de una actualización de Microsoft Windows en todas sus versiones, desde Windows 1.0 hasta Windows 7. Me llama especialmente la atención este video ya que salvo la versión 1.0 y la versión 2.0, el resto las he instalado cientos de veces, salvo el Windows 7 que solo una vez y la verdad es que ver este video me trae gratos recuerdos de juventud. Os dejo el video donde en la misma maquina instala Windows 1.0, Windows 2.0, Windows 3.0, Windows 3.1, Windows 95, Windows 98, Windows 2000, Windows XP, Windows Vista y Windows 7.

Resaltar como mantiene algunas configuraciones de por ejemplo color de fondo y compatibilidad de programas antiguos como editores y juegos aparte de las pruebas que se realizan en cada versión con el Monkey Island y el Doom 2. También resaltar que se hecha en falta algunas versiones con menos éxito como Windows Millenium mas conocido como Windows Me y bueno no se puede tener todo ya que son de otra rama, pero versiones Windows NT y posteriores Windows Server que sería interesante ver si mantiene la misma compatibilidad.

NGen y como precompilar ensamblados .Net

En .Net existe una aplicación llamada ngen.exe que se encuentra dentro de la versión del Framework en la carpeta Windows (generalmente C:windowsMicrosoft.NetFrameworkvXXXXXX, donde las X son la versión) que precompila a código nativo un código de .Net.

Las aplicaciones desarrolladas en .Net pueden llegar a ser mas rápidas en algunos casos que las programadas en C o C++, porque a diferencia de estos lenguajes, no compila todo el código para ser ejecutado todo a la vez, sino que se realiza una compilación a un código intermedio IL que luego sera ejecutado por el JIT, y es aquí donde radica su velocidad, en que el JIT compila nativamente el código según lo vaya necesitando y se va almacenando en memoria para no tener que compilar algo 2 veces. Aparte de lo ya dicho que acelera la ejecución de una aplicación que no llame a cientos de métodos en poco tiempo (1 segundo o así). También hay que sumar a lo anterior el hecho de que JIT aplica ciertas optimizaciones sobre el código, antes de compilar este, por lo que esta realmente optimizado en comparación con C o C++.

Hay ocasiones, en que el uso de JIT reduzca mucho la velocidad de nuestra aplicación y necesitariamos hacerla en un lenguaje nativo. Por ejemplo, si tenemos una aplicación desarrollada en C# (es indiferente que sea en C#, VB o cualquier otro lenguaje de .Net) y necesite de un gran cantidad de microprocesador para procesar datos, es posible que nos interese precompilar nuestra aplicación para evitar la compilación JIT y así ahorrarnos tiempo de ejecución. Esto es posible gracias a NGen.

NGen es una aplicación que precompila a código nativo nuestra aplicación de .Net, realizando la misma función que JIT pero antes de ejecutar una aplicación, por lo que es posible que si se realiza con cabeza, nuestra aplicación se ejecute más rápidamente.

Para precompilar nuestra aplicación con NGen, abriremos la consola de DOS y añadiremos al PATH si no lo está ya la ruta donde se encuentra NGen (la ruta esta escrita más arriba). Una vez añadida la ruta, iremos donde esta nuestra aplicación y ejecutaremos el siguiente comando:

ngen install miaplicacion.exe

Con esto precompilaremos en una carpeta de cache de .Net nuestra aplicación para que se ejecute como código nativo.  Existen otras opciones aparte del install que apareceran al ejecutar ngen sin ningún parámetro.

Como conseguir el mejor IDE de desarrollo para la Web

Hace ya algunos años que me dedico a la programación en exclusiva de PHP en entornos web, pero a pesar de tratarse de entornos web, no son páginas web, sino webservices, donde la presentación gráfica esta de sobra porque todo se transmite por XML. Durante este tiempo he pasado por diferentes IDE’s de programación, terminando en el Zend Studio 5.2 y 5.5, ya que para entornos de desarrollo complejos donde el numero de clases, interfaces, variables, etc. es enorme y se mueven multitud de datos, es el mejor con diferencia.

Es cierto que el Zend Studio es maravilloso si lo comparamos con el resto de IDE’s de PHP que hay en el mercado, sobre todo y algo que los demás no tienen es el reconocimiento de las clases que nosotros mismos desarrollamos y su documentación al estilo PHPDoc. Hace algunos meses, redescubrí el plugin PDT de Eclipse, que había dejado de estar verde, para tener un autocompletado del código casi equiparable con el del propio Zend Studio, pero con la gran ventaja de ser mas ligero a pesar de que Eclipse consume más memoria  RAM.

Hace un par de días, vi por primera vez Aptana, un IDE basado en Eclipse que incorpora interesantes funcionalidades como una mejor cobertura del autocompletado de código en cuanto a HTML y CSS se refiere y algo que me ha maravillado, un autocompletado y reconocimiento de clases y funciones de Javascript. Esto me ha maravillado porque para desarrollar una web gráfica, es lo mejorcito que he visto.

Lo que había pensado y efectivamente se puede hacer, es que si PDT es un plugin de Eclipse y Aptana es otro plugin de Eclipse, quizás se pudieran mezclar creando un conjunto realmente bueno por no decir el mejor para el desarrollo web.  Lo más curioso, es que analizando un poco las funcionalidades de Aptana, me he dado cuenta o eso me ha parecido, que la parte de PHP usa el plugin PDT (al menos es igualito) pero de una versión vieja, que por mi experiencia creo que se trata de la 0.7. Así que aventurandome a mezclar los dos plugins y cruzando los dedos para que los apartados de PHP no se den de ostias, los instale.

El resultado de mi experimento es un Eclipse con el plugin de PDT y Aptana instalados a la perfección, si creo un nuevo proyecto de PHP con la vista de PHP (PDT) utiliza todo el entorno de PDT para las páginas PHP y el sitema de Aptana para todas las paginas de Javascript, HTML, CSS, etc. por lo que podemos tener el que sería para un profesional, el mejor IDE de desarrollo para PHP, HTML, CSS y Javascript que podemos encontrar, completamente gratuito y multiplataforma.

Problema al instalar IIS en Windows XP

En mi empresa un proveedor nos ha proporcionado una herramienta de testeo de su WebService y esta estaba programada en ASP.Net. Por experiencia, se que este tipo de WebService que ha montado este proveedor son enormemente complicados, asi que quise hacer uso de su herramienta de test.

Al montarla me plantee 2 opciones, la primera y mas complicada y que por tanto rechace es un modulo de Apache que hace de pasarela entre ASP.Net y Apache. Esta opción la rechace porque era muy complicada, sobre todo cuando al integrar el módulo de apache este me decía un bonito mensaje de error de «Operation requested failed» y por tanto no podía arrancar apache.

Mi segunda opción y teoricamente más sencilla, era la de montarme un Internet Information Server (IIS) en mi flamante Windows XP Profesional con SP 2. Recalco lo de teóricamente porque las veces que he instalado un IIS ha sido, añadir complemento, instalar y a correr. Pero claro esta, estamos en una empresa de informática y como no, aquí todo debe de fallar, al menos, a la primera. Cuando insertando un «disco original de Windows» instalo el componente de IIS, este me da un error como el siguiente:

Programa de instalación no puede copiar el staxmem.dl_ de archivo.

Asegúrese de que el disco con etiqueta está en la unidad seleccionada abajo o proporcione la ubicación donde se puede encontrar el archivo

Por supuesto, el archivo staxmem.dl_ si que se encuentra en el disco y todo esta correcto, pero aún así, no funciona. Googleando durante algún tiempo, encuentro una referencia del soporte técnico de Microsoft con el título «Mensaje de error cuando el error intenta instalar componentes IIS en Windows XP«. En esta página de referencia, lo que nos viene a decir es que hay una base de datos de seguridad corrompida y nos da un comando para repararla. El comando facilitado en cuestión es:

%windir%securitydatabasesecedit.sdb /p esentutl

Según el comando facilitado por Microsoft, secedit.sdb, que es la base de datos, lo debemos de ejecutar con los parámetros, pero realmente es una errata y es al revés, así que el comando sería el siguiente:

esentutl /p %windir%securitydatabasesecedit.sdb

De esta forma, nos aparecerá una ventana de dialogo, que nos preguntara que si queremos reparar la base de datos, así que pinchamos en Aceptar (Nota, no es aceptar, porque viene en ingles) y tras unos segundos, repara nuestra base de datos. No hace falta decir, que antes de hacer esto, hagais una copia de seguridad del archivo secedit.sdb por si las moscas.

Una vez reparada la base de datos de seguridad, ya podemos instalar nuestro IIS como si de cualquier otro componente se tratara.

Por último, vamos a registrar ASP.Net dentro de IIS para que funcione correctamente. Pare esto debemos de ejecutar el comando aspnet_regiis.exe con el parámetro -i para que funcione, tal que

%windir%Microsoft .NetFrameworkvX.xxxxxxxaspnet_regiis.exe -i

No hace falta decir, que antes de ejecutar este comando, deberemos de tener instalada alguna versión de .Net Framework en nuestro equipo.

Estos han sido los pasos que me han ayudado a instalar IIS con XP y ASP.Net, que aunque parezca una tontería, hay veces que puede llegar a complicarse.

Scroll al inicio