martes, 30 de junio de 2009

Creación de un gadget para la Sidebar de Windows II

Hace unos meses publiqué un post en el que expliqué como programar e instalar un gadget para la Sidebar de Windows Vista. Dado el éxito que tuvo, he decidido realizar otro post, programando otro gadget, pero esta vez para Windows 7:

http://www.windowstecnico.com/archive/2009/04/05/creaci-243-n-de-un-gadget-para-la-sidebar-de-windows.aspx

¿Qué diferencias hay entre programar un gadget para Vista o 7?

En la etapa de programación no hay ninguna diferencia. El único punto donde varía el proceso es durante la instalación, ya que como sabrán los usuarios que han tenido la oportunidad de probar las betas de Windows 7, en el nuevo sistema operativo no hay una sidebar como tal, sino que los gadgets podrán ser colocados por el escritorio en cualquier lugar. Aún así la tarea es bastante sencilla.

Creación del gadget

Como antes comenté el proceso de programación del gadget para Windows 7 es exactamente el mismo que para Vista y se basa en la estructura que tenéis en el post anterior:

· Documento XML de manifiesto

· Documento HTML

· Documento HTML de configuración

· Imágenes

· Fichero js

· Hojas de Estilo CSS

Para el nuevo gadget he decidido realizar un pequeño programa que convierta un símbolo a su equivalente ASCII, al igual que le ocurrirá a muchos desarrolladores o usuarios como a mí, de vez en cuando nos toca buscar por internet una tabla ASCII para ver un símbolo concreto, por lo que nunca está de más tener un convertidor a mano.

Ya que el proceso completo lo tenéis indicado en el primer post, voy a omitir toda la parte común y voy a ir directo al apartado de la generación del fichero HTML, que es el que ejecutará y contendrá los elementos de nuestro programa:

<html>

<head>

<title>ascii</title>

<link rel="stylesheet" type="text/css" href="css/style.css">

</head>

<body text="white">

<center>

<br/><br/>

<form name="box">

<input name="box2" style="background:blue;color:white" size="1" type="text"/>

<input type="button" style="background:transparent;color:white" onclick="ascii()" value="Go" >

</form>

<script>

function ascii()

{

var x = document.box.box2.value;

document.box.box2.value = x.charCodeAt(0);

}

</script>

</center>

</body>

</html>

Cómo veis el código es bastante sencillo, simplemente tendremos un cuadro de texto, en el que escribiremos un símbolo, y un botón, que cada vez que sea pulsado ejecutará la función “ascii”, que se encargará de sustituir el símbolo inicial en el cuadro por su equivalente ascii.

Para modificarle el aspecto visual, he creado un nuevo fondo de pantalla con un editor de imágenes.

Tras finalizar el proceso, deberíais tener lo siguiente:

clip_image002

Al igual que en Windows Vista, en Windows 7 los gadget se almacenan en la ruta:

C:\Program Files\Windows Sidebar\Gadgets

Por lo que en ese lugar será donde debéis dejar la carpeta raíz del gadget con todos los elementos que la contienen.

clip_image004

Una vez agregada la carpeta iremos al escritorio. Haremos click derecho con el ratón y pulsaremos en la opción “gadget”. Se nos abrirá la siguiente ventana, en la que podremos ver nuestro nuevo gadget con la descripción que escribimos en el fichero XML de configuración.

clip_image006

clip_image007

Si hacemos doble click sobre el icono del gadget, nos aparecerá en el escritorio, donde podremos colocarlo en cualquier lugar:

clip_image011

clip_image009

 

jueves, 25 de junio de 2009

Programación de módulos para IIS7 (III de IV)

Programación de módulos para IIS7 (I de IV)
Programación de módulos para IIS7 (II de IV)
Programación de módulos para IIS7 (III de IV)

Hoy vamos a continuar con los post sobre programación de módulos para IIS7, que comenzamos anteriormente con una pequeña introducción en el tema y explicando las instalaciones necesarias, y con un manual sobre la programación de módulos manejadores.

En este post voy a explicaros cómo programar vuestro propio módulo con interfaz gráfica configurable y cómo instalarlo en el IIS.

¿Para que sirve un módulo gráfico?

Muchos, por no decir la mayoría de los programas requieren de algunos parámetros que necesitan ser configurables para adaptarse a las diferentes situaciones para las que es aplicable el programa que se ha desarrollado. Los módulos del IIS no son menos, y estos no son ni más ni menos que un programa normal, pero embebido dentro de la interfaz del IIS. La programación gráfica de estos programas será exactamente igual a la de otro programa realizado en .NET, con la diferencia de que tendremos que añadirle algunos elementos para que pueda ser reconocido por el IIS. ¡Vamos a ello!

Instalaciones necesarias:

1. Microsoft Server 2008

2. Visual Studio 2005-2008

3. IIS 7

Construcción del módulo:

Una vez tengamos IIS instalado, abrimos el Visual Studio, el primer paso para la construcción de nuestro módulo será crear un nuevo proyecto, seleccionamos crear una nueva Biblioteca de clases, le damos un nombre, por ejemplo: proyecto_i64 y aceptamos:

clip_image002

Eliminamos la clase que nos crea por defecto: Class1.cs, que no la vamos a utilizar.

Ahora tenemos que añadir dos referencias, para ello hacemos clic con el botón derecho del ratón en “References” y pulsamos en “Agregar Referencia”.

clip_image004

Tenemos que incluir las siguientes referencias:

· Microsoft.Web.Administration.dll.

· Microsoft.Web.Management.dll.

Las encontraremos en la pestaña examinar, en la ruta: c:\windows\system32\inetsrv.

Una vez agregadas las referencias procedemos a firmar nuestra librería, para que el IIS pueda reconocerla como .dll:

1. Para firmar nuestra librería .dll hacemos doble clic en el explorador de soluciones en la etiqueta “properties” y nos vamos a la pestaña “firma”, marcamos la casilla “firmar el ensamblado” y en seleccionar un archivo de clave de nombre seguro le damos a <Nueva..>:

clip_image006

2. Le asignamos un nombre, por ejemplo, key.snk y desmarcamos la casilla de proteger con contraseña. Con esto ya tenemos nuestra .dll firmada:

clip_image007

3. Tenemos que añadir un pequeño script, que nos enviará nuestra .dll firmada a la carpeta de ensamblados que se encuentra en la ruta C:\Windows\assembly, desde donde el IIS la recogerá para poder agregarla finalmente cómo modulo. Para ello, sin salirnos de la ventana “properties” nos vamos a la pestaña “Eventos de generación”, y en el cuadro “línea de comandos del evento posterior a la generación” incluimos el siguiente script si estáis usando Visual Studio 2005:

CALL "%VS80COMNTOOLS%\vsvars32.bat" > NULL

gacutil.exe /if "$(TargetPath)"

ó el siguiente si estáis usando Visual Studio 2008:

CALL "%VS90COMNTOOLS%\vsvars32.bat" > NULL

gacutil.exe /if "$(TargetPath)"

Quedando finalmente algo cómo lo siguiente:

clip_image009

Una vez hecho esto vamos a proceder a preparar el módulo. Se va a componer de tres partes, las dos primeras son comunes a cualquier tipo de modulo que queramos crear, la tercera tendrá una parte también común y otra que variará dependiendo del módulo que queramos realizar, que será la parte de la interfaz:

1. Module: Inicializa el módulo en nuestro servidor, y lo añade a la consola del IIS para poder seleccionarlo.

2. Module Provider: Donde indicaremos el alcance de nuestro módulo, para todo el servidor, o local a ciertas partes, el tipo de módulo, etc.

3. Module Page: Esta es la parte más importante de nuestro módulo, aquí es donde programaremos la interface gráfica y las acciones del mismo.

Ya que está claro de qué partes se compondrá nuestro módulo, ahora procedemos a montarlo.

Primero crearemos el Module, para ello agregamos un nuevo elemento al proyecto, le damos un nombre, por ejemplo, i64Module, y añadimos el siguiente código, en caso de utilizar otros nombres deberéis cambiar las diferentes llamadas que haya en el código a otras partes del módulo por el nombre que hayáis elegido:

using System;

using Microsoft.Web.Management.Client;

using System.Windows.Forms;

using Microsoft.Web.Management.Server;

namespace proyecto_i64

{

internal class i64Module : Module

{

protected override void Initialize(IServiceProvider serviceProvider, Microsoft.Web.Management.Server.ModuleInfo moduleInfo)

{

base.Initialize(serviceProvider, moduleInfo);

IControlPanel controlPanel = (IControlPanel)GetService(typeof(IControlPanel));

ModulePageInfo modulePageInfo = new ModulePageInfo(this, typeof(i64Page), "Respuestas", "Muestra proc");

controlPanel.RegisterPage(modulePageInfo);

}

}

}

En Segundo lugar tenemos que montar el Module Provider, volvemos a agregar un nuevo elemento al proyecto, le damos un nombre, por ejemplo: i64Provider, y añadimos el código siguiente:

using System;

using Microsoft.Web.Management.Server;

namespace proyecto_i64

{

class i64Provider : ModuleProvider

{

//devuelve el tipo de módulo de servicios que está asociado con el proveedor de módulo

public override Type ServiceType

{

get { return null; }

}

//metodo que devuelve informacion sobre nuestro modulo

public override ModuleDefinition GetModuleDefinition(IManagementContext context)

{

return new ModuleDefinition(Name, typeof(i64Module).AssemblyQualifiedName);

}

//decide el alcance del modulo, en nuestro caso, TODO el servidor

public override bool SupportsScope(ManagementScope scope)

{

return true;

}

}

}

En tercer lugar tenemos que montar el Module Page, volvemos a agregar un Nuevo elemento al proyecto y le damos un nombre, por ejemplo: i64Page. Esta parte es la más compleja, así que vamos a ir por partes, en primer lugar debemos crear el esqueleto, por lo que agregaremos el siguiente código:

using System;

using System.Windows.Forms;

using Microsoft.Web.Administration;

using Microsoft.Web.Management.Client.Win32;

namespace proyecto_i64

{

internal class i64Page : ModulePage

{

Microsoft.Web.Administration.ServerManager manager = new ServerManager();

public i64Page()

{

InitializeComponent();

}

private void InitializeComponent()

{

}

}

}

Una vez agregado, vamos a estudiarlo. Nada más empezar tenemos la siguiente línea de código:

Microsoft.Web.Administration.ServerManager manager = new ServerManager();

Esta línea crea una nueva ServiceManager que podemos utilizar para recuperar las solicitudes de nuestro servidor, en caso de que lo necesitemos. Despues ya podemos ver la función que inicializará nuestro módulo. Ahora queremos programar una interface gráfica para nuestro módulo. Para ellos vamos a aprovechar la característica Forms que nos brinda .NET, desde la que podemos agregar todo tipo de elementos gráficos pinchándolos con el boton del raton y arrastrando desde una toolbar. Para poder utilizar Forms, debemos hacer un pequeño truco, tenemos que cambiar el tipo de clase actual:

internal class i64Page : ModulePage

por el siguiente:

internal class i64Page : Form//ModulePage

Ahora si hacemos doble clic en el explorador de soluciones sobre nuestra clase i64Page, se nos abrirá una ventana con un fondo blanco, este sera el aspecto de nuestro módulo, si abrimos el cuadro de herramientas, veremos todos los posibles elementos que le podemos agregar, por ejemplo, podeis agregar un button y un campo label, cambiar fondos de la pantalla, tipos de letra,... Si queremos que alguno de estos elementos interactúe con nuestro módulo haremos doble clic sobre él una vez que lo hayamos agregado, de esta manera se nos añade el sólo al código de nuestra clase i64Page. En el post de hoy simplemente vamos a hablar sobre la creación de modulos con interfaz y su instalación, en el siguiente post comentaremos aspectos sobre las interfaces gráficas, iconos y demás elementos mas en detalle.

Una vez agregados los elementos volvemos a dejar el tipo de la clase como estaba antes, si no nos dará fallo de compilación:

internal class i64Page : ModulePage

Ahora veremos que se nos han añadido varias partes nuevas a nuestro código. Primero veremos que nada mas empezar la clase se nos han incluido la declaración del button y el label, y de los demás elementos que agregasemos antes. Despues en la función InitializeComponent(), se nos ha añadido todo el apartado gráfico de los elementos que hemos agregado, esto lo hace internamente el visual studio, por lo que directamente procedemos a ignorarlo. Por otro lado vemos que se nos ha añadido una función nueva por cada elemento insertado en el que hicimos doble clic. En estas funciones es donde debemos programar lo que queremos que haga nuestro módulo, por ejemplo en la funcion button, podemos decirle que muestre un determinado texto en el label.

Ya tenemos nuestro módulo terminado, si lo guardamos y compilamos, el gacutil firmará el ensamblado y podremos acceder a él en la ruta: C:\Windows\assembly. La buscamos en dicha carpeta y copiamos el key (pulsamos botón derecho sobre ella, propiedades y lo copiamos):

clip_image011

Ahora debemos irnos al fichero Administration.config, en la ruta:

c:\windows\system32\inetsrv\config\Administration.config

Y modificaremos 2 lineas. Para abrirlo vereis que posiblemente no tengais derechos de administrador, por lo que hay que subir los derechos del fichero o bien abrirlo desde el WordPad ejecutandolo como administrador:

Buscamos la línea <ModuleProviders> dentro del fichero y añadimos después la siguiente línea, donde pone KEY pondremos la key que antes copiamos:

<add name="CurrentRequestsUI" type="CurrentRequestsUI.RequestModuleProvider, CurrentRequestsUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=269f1cc1a4bf892b" /> <add name="proyecto_i64" type="proyecto_i64. i64Provider, proyecto_i64, Version=1.0.0.0, Culture=neutral, PublicKeyToken=KEY" />

Ahora buscamos la línea <modules> y añadimos la siguiente línea:

<add name="CurrentRequestsUI" /> <add name="proyecto_i64" />

Si habéis dado otros nombres al proyecto y al provider debereis modificarlos por los correspondientes.

Una vez hecho todo, reiniciamos el servidor, para ello abrimos una consola en modo administrador y escribimos: iisreset.

Con esto ya deberíamos tener el módulo funcionando y con un icono seleccionable en nuestro servidor:

clip_image013

Si lo abrimos podremos ver la interface de nuestro módulo. Para restar complejidad al post he decidido no comentar aspectos sobre la interfaz, la modificación de los iconos del IIS y que utilidades tiene una interfaz en el IIS. En el próximo post, utilizaremos todo lo aprendido en los post anteriores, para crear un módulo de securización, utilizando un módulo manejador, un módulo gráfico y una base de datos SQL Server para almacenar los datos configurables del módulo, y la información recogida por el módulo manejador, y lo adornaremos con iconos y una bonita interfaz, pero por el momento ir practicando y creándoos vuestro módulo gráfico, y el próximo día nos ponemos manos a la obra para programar una plataforma de securización para nuestro IIS :), nos vemos en el siguiente post!

Saludos!

miércoles, 24 de junio de 2009

Creación e instalación de un gadget para Sidebar

 

En la pasada entrada sobre la tecnología SideShow de Microsoft os comentaba el poder que tenían los gadget como elemento de comunicación con el PC, pero lo que no os comenté es que estos gadget además de ser descargables gratuitamente desde la página de Microsoft habilitada al uso, también pueden ser creados por cualquier usuario con unos conocimientos mínimos de programación web, consiguiendo de esta manera romper los límites que pudiese tener esta tecnología.

Cómo podéis imaginar, los gadget de SideShow y de la SideBar, la barra lateral del escritorio de Windows Vista, son muy semejantes, de hecho, hoy vamos a hacer una demo de cómo programar nuestro primer gadget para la SideBar.

Para poder programar un gadget no necesitaremos ser verdaderos expertos en programación web, simplemente nos bastará con saber un poco sobre los siguientes lenguajes y tecnologías:

· HTML

· JavaScript ó VBScript

· CSS

· XML

Por si no os ha quedado claro aún que son los gadget, son una serie de miniaplicaciones que se pueden instalar en la barra lateral del Windows Vista, en el nuevo Windows 7 y en los hardware que soporten la tecnología SideShow, que nos permiten explotar al máximo todas las posibilidades de nuestro Windows y la conectividad a diferentes recursos de internet como por ejemplo uno de los más conocidos, el RSS.

Para mostrar la SideBar, deberéis ir al Menú de inicio > Programas > Accesorios > Windows Sidebar.

image

Demo: creción de gadget para la Sidebar

Lo primero que deberemos hacer para crearnos nuestro propio gadget es ir a la ruta donde están instalados los gadget de la Sidebar, tanto los que vienen instalados por defecto en Windows, como los que hemos ido instalando posteriormente. Por defecto los gadget se encuentran en la ruta: C:\Program Files\Windows Sidebar\Gadgets.

Una vez hayamos ido a la ruta anterior, visualizaremos todos nuestros gadget:

image

Si sois un poco curiosos y miráis el contenido de cada gadget os daréis cuenta de que todos se basan en una estructura común:

Documento XML de manifiesto: En este archivo es donde se definen las propiedades de nuestro gadget: nombre, icono, autor, descripción de la utilidad del gadget, etc.

Documento HTML: En él se programará toda la funcionalidad de la interfaz gráfica de nuestro gadget.

Documento HTML de configuración: En caso de que nuestra aplicación sea muy compleja y tenga varios parámetros configurables, deberemos crear este documento (opcionalmente) para que el usuario pueda interactuar directamente con el gadget.

Imágenes: Necesitaremos tres imágenes diferentes para nuestro gadget cómo mínimo, aunque esta parte es opcional también, una de ellas definirá el icono del menú de la sidebar para agregar nuevos gadget, otra de las imágenes, será la que se mostrará junto con los datos del autor, y la última imagen, definirá el fondo de nuestro gadget, en caso de no poner esta última, el fondo de nuestro gadget adquirirá el color de fondo que indiquemos en el fichero HTML, si queremos que nuestro gadget destaque visualmente, os recomiendo que hagáis un fondo transparente con bordes suaves y redondeados, cómo hemos hecho nosotros con un programa de retoque fotográfico.

JavaScript: El código JavaScript de nuestra aplicación puede ir embebido en el propio HTML, o bien encontrarse en un fichero aparte y ser llamado desde el código HTML. JavaScript junto con HTML serán los encargados de proporcionar al gadget toda su funcionalidad.

Hojas de Estilo CSS: Las Hojas de estilo se utilizan para dar el comportamiento gráfico de la interfaz HTML de nuestra aplicación. Sin ella el gadget se encontraría totalmente descuadrado de la SideBar, y carecería de imagen de fondo.

Una vez explicada la estructura de un gadget vamos a comenzar a programarnos nuestra primera miniaplicación para la Sidebar. Para la demo, hemos decidido hacer un sencillo reloj digital con el logotipo de nuestra empresa.

Lo primero que debéis hacer es crearos en la ruta: C:\Program Files\Windows Sidebar\Gadgets, una carpeta con el nombre: i64clock.gadget, donde i64clock lo deberéis sustituir por el nombre que le queráis dar a vuestro gadget, es muy importante que la carpeta acabe con la extensión .gadget, en caso contrario no será reconocida por la Sidebar.

Una vez creada la carpeta, tenemos que crear dentro los siguientes elementos:

Fichero HTML: con el nombre i64clock.html, de nuevo deberéis sustituir i64clock, por el nombre de vuestro gadget.

Fichero XML: con el nombre gadget.xml, es muy importante que este fichero se llame de esta manera exactamente para ser reconocido por la sidebar, su contenido que comentaremos más tarde, es una estructura común en todos los ficheros del resto de gadget, por lo que no necesitaremos programar directamente en XML, simplemente modificarlo mínimamente.

Imágenes: agregaremos a la carpeta toda las imágenes, en caso de que queramos tener todo más ordenado, podremos crearnos una carpeta interna donde almacenarlas, pero tenemos que tener en cuenta que a la hora de enlazarlas en el fichero XML, ya no estarán en la carpeta Raíz, y por tanto deberemos definirle la ruta de la subcarpeta.

Fichero de estilo CSS: finalmente crearemos el fichero style.css, con el mismo nombre indicado, nosotros hemos decidido alojarlo en una subcarpeta a la que hemos llamado CSS.

Una vez creados todos los ficheros tendréis algo cómo lo siguiente:

image

Ahora procederemos a rellenar los ficheros HTML, XML y CSS.

En primer lugar vamos a definir las características de nuestro gadget desde el fichero XML, para ello deberéis copiar el siguiente código tal cual, y modificar las partes seleccionadas en negrita por vuestros datos y los de vuestro gadget:

<?xml version="1.0" encoding="utf-8" ?>

<gadget>

<name>i64 Clock</name>

<namespace>Namespace.Ejemplo</namespace>

<version>1.0</version>

<author name="jacalles">

<info url="http://www.informatica64.com" />

<logo src="i64.bmp"/>

</author>

<copyright>&#169; 2009</copyright>

<description>El gadget i64clock muestra un reloj digital en la Sidebar</description>

<icons>

<icon height="48" width="48" src="i64.png" />

</icons>

<hosts>

<host name="sidebar">

<base type="HTML" src="i64clock.html" />

<permissions>full</permissions>

<platform minPlatformVersion="1.0" />

<defaultImage src="i64.png" />

</host>

</hosts>

</gadget>

Cómo veis en el fichero, en primer lugar deberemos definir el nombre de nuestro gadget:

<name>i64 Clock</name>

Después agregaremos información del autor: nombre, web y logo.

<author name="jacalles">

<info url="http://www.informatica64.com" />

<logo src="i64.bmp"/>

</author>

Tras ello añadimos la frase que se mostrará en el menú de instalación de los gadget en la que contaremos la utilidad de nuestro gadget y el icono que lo representará:

<description>El gadget i64clock muestra un reloj digital en la Sidebar</description>

<icon height="48" width="48" src="i64.png" />

Finalmente le enlazamos el fichero HTML donde tenemos toda la funcionalidad de nuestro gadget y la imagen que utilizará cómo fondo:

<host name="sidebar">

<base type="HTML" src="i64clock.html" />

<permissions>full</permissions>

<platform minPlatformVersion="1.0" />

<defaultImage src="i64.png" />

</host>

El resultado cuando accedemos al menú de inserción de gadget será el siguiente:

image

Una vez definido el fichero XML, vamos a configurar la hoja de estilo CSS, para ello abrimos el fichero style.css, y añadimos el siguiente código:

Body

{

width:135px;

height:100px;

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

background-image:url('../i64.gif');

}

En este punto definiremos los tamaños, márgenes y fondo principal de nuestro gadget, es muy importante que tengáis en cuenta que el ancho de vuestro gadget debe ser cómo máximo el de la sidebar. Además le hemos dado margen 0 en todos sus lados para aprovechar al máximo el tamaño del gadget.

Finalmente nos queda programar la funcionalidad del gadget en el fichero HTML, y opcionalmente en caso de que queramos sacar las funciones JavaScript fuera del propio fichero HTML, en un fichero JavaScript.

En este punto es muy importante echarle imaginación, ya que las posibilidades de programación de gadgets son infinitas, para el caso de que queráis hacer un reloj digital como nosotros, debéis copiar el siguiente código:

<html>

<head>

<title>i64 clock</title>

<link rel="stylesheet" type="text/css" href="css/style.css">

</head>

<body text="white">

<center>

<br/>

<form name="time">

<input name="time2" style="font-size:29;background:transparent;border:none" size="5" type="text"/>

</form>

<script>

function func_reloj()

{

var d=new Date()

var hours=d.getHours()

var minutes=d.getMinutes()

var seconds=d.getSeconds()

if (hours>=12)

{

if (hours>=13)

hours-=12

}

if (minutes<10)

minutes="0"+minutes

if (seconds<10)

seconds="0"+seconds

var t

if (hours<10)

{

t="0"+hours+":"+minutes+":"+seconds

}

else

{

t=hours+":"+minutes+":"+seconds

}

document.time.time2.value=t

setTimeout("func_reloj()",1000)

}

func_reloj()

</script>

</center>

</body

Es muy importante que añadáis en vuestro fichero HTML la línea siguiente (que hemos destacado en rojo en el código), ya que será la llamada al fichero style.css donde antes le indicamos el tamaño y forma de nuestro gadget:

<link rel="stylesheet" type="text/css" href="css/style.css">

Cómo podéis ver nuestro código HTML se basa en una sencilla función JavaScript automatizada cada segundo, que llama periódicamente a las funciones getMinutes, getHours y getSeconds, para obtener la hora actual, y la muestra por pantalla en un input al que le hemos dado un fondo transparente para que se pueda ver solo la hora sobre el fondo de nuestro gadget. El resultado es el siguiente:

image

Básicamente, esto es todo lo que necesitareis saber para iniciaros en el mundo de la programación de gadget para Windows, si os interesa este mundillo, Microsoft tiene un foro y una página donde cuentan un poco sobre el desarrollo de gadget, y desde la que podréis compartir vuestros propios gadget con el resto de usuarios, la web es la siguiente:

http://gallery.live.com/devcenter.aspx

image

Ahora solo queda animaros, echarle imaginación y comenzar a programaros vuestros propios gadget, espero que os haya gustado el post y os animéis a compartir vuestras aplicaciones para la Sidebar con el resto de usuarios, para dar ejemplo aquí os dejo la captura de un segundo gadget que he programado, y que consta de una calculadora decimal cuya interfaz se complementa con la de nuestro reloj:

Que paséis buenas vacaciones! :)

El gran día ha llegado

Cuatro años esperando este momento, que parecía no llegar, cuatro años de aventuras, buenos y malos  momentos, decisiones e indecisiones, que me han llevado a conocer a mucha gente en la facultad, muchas fiestas, muchos informáticos reconocidos en mi etapa en Informática 64, muchos profesores majos y otros no tanto…  Pero todo ello pasa a ser parte del recuerdo porque… ya soy Ingeniero!, hoy he tenido el placer de realizar el último examen que me faltaba para finalizar mi carrera tras haber presentado mi proyecto, Prefetching Web Browsing, hace unos días. Quiero dar gracias desde aquí a todos mis compañeros de facultad que me han acompañado por el camino, y desearos mucha suerte, a los que aún os queda algo para finalizar, y sobretodo dar gracias a mi familia, al resto de mis amigos y a Patricia, mi novia, que se a volcado completamente en darme su apoyo.

 

Muchas gracias a todos!!, si leéis estas líneas antes de esta noche, seréis invitados a una ronda en el bar mas cercano :)

saludos!!

martes, 23 de junio de 2009

Microsoft Server 2008 R2: Core parking y SLAT

En el post de hoy voy a hablaros de una novedad de Microsoft Server 2008 R2 que ha sido diseñada con vistas al presente, pero sobretodo a un futuro no muy lejano. Como sabréis, los ordenadores y servidores que se comercializan en la actualidad ya poseen varios cores (2, 4, …) y en poco tiempo, como todos los elementos de la informática, tenderán a duplicarse y multiplicarse.

El alto número de cores en los equipos produce como es obvio un aumento en el procesamiento y por tanto en el consumo del sistema.

Para solucionar este problema, Microsoft ha diseñado una nueva funcionalidad a la que ha denominado “core parking”. Gracias a esta opción podremos “aparcar” procesadores cuando la actividad de procesamiento sea baja, disminuyendo el consumo general del equipo. Acepta hasta un total de 32 procesadores físicos, un límite como veis bastante alto.

Si abrimos el Resource Monitor y nos vamos a la pestaña CPU, podremos ver el estado de nuestros cores:

 

image

La función “Core parking” ha sido complementada con otra nueva función a la que se ha llamado SLAT, Second-Level Address Translation, que ha sido diseñada para mejorar el rendimiento en virtualización. SLAT agrega un segundo nivel de paginación debajo de las tablas de paginación. Con ello se proporciona un nivel de indexación entre la memoria de la maquina virtual y la física, aumentando el rendimiento en entornos de virtualización.

En próximos post, continuaremos comentando novedades sobre Microsoft Server 2008 R2, por ahora, os dejo saboreando la opción Core parking, que puede llegar a ser muy útil para dar pequeños descansos a los servidores en las etapas en que estos tienen un rendimiento bajo, como puede ocurrir por las noches, disminuyendo así las posibilidades de que se sufran calentones en el hardware y alargando la vida de nuestros equipos.

jueves, 18 de junio de 2009

Subiendo al Acer Aspire One II

Hace unos días escribí algunas entradas sobre mi nueva adquisición, el Acer Aspire One :), en estos días desde entonces me he dedicado ha adquirir alguna piezas para mejorarlo, y sobretodo buscando gangas, y como buen peinador de internet conseguí dos buenas ofertas para subirle la RAM y el disco duro como tenía pensado.

La primera de las ofertas era un módulo SODIMM DDR2 de 1GB 533 KINGSTON, me costó 15€, no pude coger mas RAM puesto que los AAO vienen limitados a 1,5GB y como traía 512MB de RAM integrados en placa, se suman a los añadidos mediante el nuevo módulo.

Por otro lado busqué el disco duro, en este caso anduve algo dubitativo entre varias posibilidades, no sabía si continuar con el disco SSD de 8GB y añadirle una SD de 16GB de alta velocidad y “trucarla” para convertirla en una segunda unidad de disco duro, o como segunda opción comprarme otro disco duro SSD de mas tamaño, pero esta opción resultaba demasiado cara, o finalmente la que realicé, tirarme de cabeza en busca de un disco duro magnético de ipod, que son validos para el AAO pero limando un poco la carcasa, así que busqué por Ebay, y vi una puja a la que le quedaban unas horas y había pocas pujas, así que con un poco de suerte y sabiduría conseguí ganarla por 41,50€ :), como comentario diré que este disco duro en las tiendas cuesta entre 80 y 100€. El vendedor era un chico muy majo, que se lo compró para un portatil Sony, pero no le valió así que tuvo que revenderlo, se portó muy bien, me permitió ir a buscarlo en persona para evitar que se estropease al mandarlo por carta (recuerdo que al ser de ipod es super pequeño) y quedamos al día siguiente de finalizar la puja.

Hoy me dispuse a montarlo todo, como supuse, tuve que limar varias patillas del fondo del AAO, así que cogí un taladro y le puse una broca con una piedra de granito y limé hasta dejarlo lisito, después con una cinta de doble cara lo dejé bien pegado a la base, y el resultado lo podéis ver en las siguientes fotos. En este paso tuvimos un problema y es que el conector del disco duro magnético es LIF a diferencia del conector del disco duro SSD que es ZIF, por ello tuve que limar un poco la faja que podéis ver a continuación (con borde azul), pero con un poco de paciencia, entró, y funcionó todo el invento. Para fortalecer la conexión le pusimos un trozo de goma para sujetarlo todo:

Imagen070

Imagen071

Imagen072

Al cerrar la carcasa y arrancarlo después comprobé que había dejado de funcionar, el portátil arrancaba, pero la pantalla salía en negro, !porqué? la respuesta me la dio la misma lógica, al limar quedó demasiado frágil la faja conectora, y se debió dañar, así que tocaba conseguirse otra. Me recorrí todas las tiendas de informática y electrónica habidas y por haber, y solo me sirvió para comprobar, que pocos técnicos de estas tiendas están verdaderamente cualificados, pero algunos me supieron dar la respuesta, vete al servicio técnico de Acer (sin comentarios). Así que volví a la mayor fuente de sabiduría, Internet, logré encontrar un sitio donde los vendían, como no, Ebay!, 5x1€, con 7€ de portes desde Hong Kong, problema, 15 días de transporte!, yo no podía esperar tanto, así que busqué en foros si a alguien le había ocurrido lo mismo, y efectivamente, ha sido un problema común que han solucionado pidiendo estos cables por Ebay. Hace un rato he tenido el placer de contactar con uno de estos usuarios, que bondadosamente ha accedido a darme una de las fajas que le han sobrado, desde aquí le pido mil gracias!, mañana por la mañana he quedado con el, así que por la tarde os contaré el que espero sea el fin de la historia!

saludos a todos!

martes, 16 de junio de 2009

En SIMO reinará el 7

 

clip_image002

Microsoft ha decidido realizar la presentación en sociedad del nuevo Windows 7 un mes antes de su lanzamiento en nuestro país, en la feria de la informática SIMO de Madrid, que tendrá lugar los días 22, 23 y 24 de septiembre.

En estos tres días Microsoft nos sorprenderá con numerosos actos dirigidos a desarrolladores, partners, empresas y demás clientes que se pasen por el SIMO durante esos días.

Microsoft, ha reservado el pabellón 7 del Ifema, en honor a Windows 7, al que llamará, el Pabellón de la Innovación, en el se producirán las presentaciones oficiales del nuevo sistema operativo, y se hablará sobre todas las novedades que presenta en general y especialmente de cara al negocio.

En esta nueva edición del SIMO, durante la presentación de Windows 7, los partners de Microsoft tendrán un peso importante ayudándola con las labores de información a los clientes.

Un servidor estará en el SIMO, al menos, como visitante, ¡no os lo perdáis! este SIMO promete.

lunes, 15 de junio de 2009

Windows 7 Upgrade Advisor Beta

Continuando con la línea de entradas sobre el rendimiento en Windows 7, hoy os vamos a mostrar un programa que ha implementado Microsoft para que podáis evaluar si vuestro PC estará capacitado para ejecutar Windows 7. ¿Ahora ya no hay escusas para no intentarlo no? J

El programa lo podéis descargar desde el siguiente link:

http://www.microsoft.com/downloads/thankyou.aspx?familyId=1b544e90-7659-4bd9-9e51-2497c146af15&displayLang=en

Para realizar el escaneo deberéis conectar al PC los pendrives y demás periféricos que queráis que analice si son compatibles con Windows 7.

Una vez descargado el programa y tengamos en el PC conectados todos los elementos que queremos comprobar si son compatibles, lo ejecutaremos y nos saldrá la siguiente pantalla:

clip_image002

Deberéis pulsar en Start check y comenzará a comprobar vuestro ordenador. A mí me tardó un minuto en realizar todas las comprobaciones.

clip_image004

Tras finalizar las comprobaciones, nos indica el resultado:

clip_image006

Le indicamos que nos muestre el Reporte de los Devices:

clip_image008

Y le indicamos que nos muestre también los requerimientos del sistema:

clip_image010

Cómo veis me indica que me instale algún Service Pack (cosa que ahora mismo estoy haciendo :P). Pero por lo demás el sistema ha pasado todas las pruebas, por lo que Windows 7, funcionará sin ningún problema.

Animaos a hacer la prueba y veréis como en PC’s algo antiguos que creíais que no iría Windows 7 os llevareis una grata sorpresa.

Un saludo!

domingo, 7 de junio de 2009

Programación de módulos para IIS7 (II de IV)

Programación de módulos para IIS7 (I de IV)
Programación de módulos para IIS7 (II de IV)
Programación de módulos para IIS7 (III de IV)

En el post de hoy vamos a continuar con la cadena de post en los que voy a explicaros los aspectos básicos sobre la programación de módulos para IIS7, que comenzamos el pasado día explicando que era IIS7 y comentando el lenguaje y el entorno de programación necesarios para el desarrollo:

Programación de módulos para IIS7 (I de IV)

Tras conocer un poco mas sobre el entorno, el siguiente paso será plantearnos: ¿Qué queremos hacer con un módulo en el IIS?. Para aclararos un poco mas esta pregunta os voy a describir los dos tipos de módulos que podemos programar en IIS7:

Módulos de IIS7

En IIS7 podremos instalar 2 tipos de módulos programados por nosotros, en primer lugar podremos crear módulos gráficos, que cuentan con una interfaz gráfica para realizar configuraciones en el IIS y en segundo lugar podremos programar módulos manejadores, que crean un manejador que se encuentra en todo momento escuchando todas las peticiones que llegan al servidor y cuando interceptan una nos permiten acceder a dicha petición y modificarla a nuestro antojo.

Creación e instalación de un módulo filtrador de peticiones para IIS7

Hoy os voy ha enseñar a programar el 2º de los módulos que antes comentamos, el módulo manejador, y crearemos el ejemplo mas sencillo de módulo, que simplemente interceptará una petición web, y le devolverá al cliente que la realizó la página solicitada pero con una cadena de texto al final.

Instalaciones necesarias:

Para la implementación necesitaremos las siguientes cosas:

1. Microsoft Server 2008, Microsoft Server 2008 R2, Windows Vista o Windows 7

2. Visual Studio 2005-2008

3. IIS 7

4. Asistente para creación de módulos: IIS7 Managed Module Starter Kit que ha producido el IISTeam, y que proporcionará el esqueleto del módulo para el IIS, se puede descargar desde:

http://www.iis.net/downloads/default.aspx?tabid=34&i=1302&g=6

Construcción del módulo:

Tras haber instalado el IIS7 Managed Module Starter Kit, cuando se crea un nuevo proyecto se puede ver como se ha añadido una nueva opción:

image

La seleccionamos, le damos un nombre, una ubicación y aceptamos. Inmediatamente después se nos abrirá una ventana donde nos resumen el contenido del asistente. Hacemos doble clic en el explorador de soluciones en el fichero MyModule.cs, que modificaremos dependiendo de las necesidades que tengamos en nuestro módulo. Se nos abrirá la ventana con el código del fichero, si expandimos las partes de código minimizadas, nos aparecerá lo siguiente:

using System;

using System.Collections.Generic;

using System.Text;

using System.Web;

namespace MyIIS7Modules

{

/// <summary>

/// The module class.

/// </summary>

public class MyModule : IHttpModule

{

#region IHttpModule Members

/// <summary>

/// Initializes the module, and registers for application events.

/// </summary>

/// <param name="application">

/// The System.Web.HttpApplication instance exposing application events.

/// </param>

public void Init(HttpApplication application)

{

// register for the PreRequestHandlerExecute event:

application.PreRequestHandlerExecute += new EventHandler(OnPreRequestHandlerExecute);

// TODO: add additional application event handlers here

}

/// <summary>

/// Disposes of the resources (other than memory) used by the module.

/// </summary>

public void Dispose()

{

}

#endregion

#region Module Event Handlers

public void OnPreRequestHandlerExecute(Object source, EventArgs e)

{

HttpApplication app = (HttpApplication)source;

HttpContext context = app.Context;

// TODO: implement module functionality here

}

#endregion

}

}


En este fichero debemos hacer 3 modificaciones:

1. Vaciamos todo el contenido de la función “Init”, y añadimos la siguiente línea que nos añadirá el evento manejador:

application.EndRequest += new EventHandler(application_EndRequest);

2. Eliminamos la siguiente función, que no necesitamos para nuestro módulo:

public void OnPreRequestHandlerExecute(Object source, EventArgs e)

{

HttpApplication app = (HttpApplication)source;

HttpContext context = app.Context;

// TODO: implement module functionality here

}

3. Añadimos la siguiente función. En la parte comentada que pone “AÑADIMOS NUESTRO CÓDIGO” es donde deberemos programar las acciones que realizará nuestro módulo, por ejemplo, añadir una línea nueva a todas las peticiones HTML que le llegan al servidor, filtrar su contenido, borrado de comentarios… Para este ejemplo, vamos a añadir una nueva línea de texto, que salga en todas las páginas web que devuelva nuestro servidor a los usuarios. Para ello simplemente llamamos al objeto context y le indicamos que en la respuesta añadiremos un bloque de texto:

void application_EndRequest(object sender, EventArgs e)

{

HttpApplication application = (HttpApplication)sender;

HttpContext context = application.Context;

//AÑADIMOS NUESTRO CÓDIGO

context.Response.Write(“Página modificada por el blogdecalles@blogspot.com”);

}

Una vez construido nuestro módulo debemos hacer 2 cosas:

1.) Tenemos que firmar nuestra librería .dll que hemos generado, para ello hacemos doble clic en el explorador de soluciones en la etiqueta “properties” y nos vamos a la pestaña “firma”, marcamos la casilla “firmar el ensamblado” y en seleccionar un archivo de clave de nombre seguro le damos a :

image

Le asignamos un nombre, por ejemplo, key.snk y desmarcamos la casilla de proteger con contraseña. Con esto ya tenemos nuestra .dll firmada:

image

2.) Tenemos que añadir un pequeño script, que nos enviará nuestra .dll firmada a la carpeta de ensamblados que se encuentra en la ruta C:\Windows\assembly, desde donde el IIS la recogerá para poder agregarla finalmente cómo modulo. Para ello, sin salirnos de la ventana “properties” nos vamos a la pestaña “Eventos de generación”, y en el cuadro “línea de comandos del evento posterior a la generación” incluimos el siguiente script si estáis usando Visual Studio 2005:

CALL "%VS80COMNTOOLS%\vsvars32.bat" > NULL

gacutil.exe /if "$(TargetPath)"

ó el siguiente si se está usando Visual Studio 2008:

CALL "%VS90COMNTOOLS%\vsvars32.bat" > NULL

gacutil.exe /if "$(TargetPath)"

Quedando finalmente lo siguiente:

image

Configuración del IIS:

1. Tras ejecutarse los scripts ya tendremos nuestra .dll firmada en la carpeta C:\Windows\assembly y lista para agregarla como modulo (en caso de tener la .dll aparte, bien porque la hemos generado desde otro PC o porque estamos probando una que no hemos generado nosotros, nos bastará con copiar la .dll a esta misma carpeta, seguramente tengamos que aumentar las permisos de esta carpeta antes). Tras esto nos vamos al Administrador de Internet Information Services y hacemos doble clic en el icono “módulos”:

image

Vamos a la opción “agregar modulo administrado”:

image

En tipo, en el desplegable, seleccionamos nuestro módulo, y le damos un nombre cualquiera:

image

2. Para no tener que estar reciclando el AppPool con cada petición, y que no haya problemas al actualizar nuestro módulo todas las veces que queramos, vamos a indicarle que tras cada solicitud, recicle el AppPool, para ello dentro del Administrador de Internet Information Services, nos vamos a la opción Grupos de aplicaciones, seleccionamos DefaultAppPool y pulsamos en el menú que tenemos a la derecha la opción “Reciclaje”:

image

En la ventana que se nos abre debemos marcar la casilla “Numero fijo de solicitudes” y rellenarla a 1:

image

Pulsamos siguiente y marcamos la casilla “número de solicitudes”:

image

Una vez hecho esto, si abrimos un sitio web alojado en el IIS, debería estar funcionando nuestro módulo y mostrarnos en las páginas web la línea de texto que le indicamos:

image

Espero que os haya gustado el post y que os animéis a programar vuestros propios módulos, y recordad que lo mas importante es tener una buena idea y pensar que todo es programable, solo hacen falta las fuentes de información adecuadas :), el próximo día os hablaré sobre la programación de módulos con interfaz gráfica.

jueves, 4 de junio de 2009

Programación de módulos para IIS7 (I de IV)



Entre las numerosas horas que me paso programando al cabo del dia, en el último año han tenido máxima prioridad las líneas abordadas en un proyecto sobre IIS7 que desvelaremos cuando llegue su hora, pero mientras tanto, me gustaría hablaros sobre IIS7 y hasta donde se prolongan sus límites mediante programación.

Este será el primero de cuatro post, en los que comentaré desde el principio hasta el final como implementar un nuevo módulo para IIS7 desde 0, que haga lo que vosotros queráis, desde captar una simple petición web que haga algún usuario al servidor, y modificarla a vuestro antojo, a sustituirsela por otro documento, añadirle scripts malignos, lo que vosotros queráis, la imaginación pondrá el límite en esta tarea.

En este, que será el primer post, os voy a introducir en la materia y daros un poco de información sobre el tema empezando por el principio de los tiempos.


¿Que es IIS7?


IIS7 es el servidor que llevan incorporadas las últimas versiones de los sistemas operativos Windows, en concreto IIS 7.0 en las versiones de Windows Vista y Microsoft Server 2008 e IIS 7.5 en su nueva versión para Windows 7 y Microsoft Server 2008 R2. Para los expertos en el tema sabréis que IIS7 se ha visto mejorado con respecto a IIS6 en numerosos aspectos, entre los que destaca la seguridad y sobre todo su aspecto y simplicidad, y es en este último en el que Microsoft puede estar bien orgullosa, porque navegar por el menú gráfico del IIS7 es un verdadero placer:



IIS7 también destaca por su sencillez de configuración, en gran parte conseguido por su interface.

Además, IIS7 ha sido diseñado pensando en los desarrolladores, facilitándoles Starters Kits para la implementación de extensiones para añadirles más características. Para estos últimos también posee un sistema de diagnóstico en tiempo de ejecución, muy útil a la hora de depurar, que ofrece información sobre que peticiones están ejecutándose actualmente, cuánto tiempo llevan ejecutándose, que URLs están siendo invocadas, que cliente las invoca, y cuál es su estado actual. Un verdadero gustazo.

Ahora que ya sabeis un poco mas sobre IIS7, a instalarlo!, tenéis un sencillo manual sobre su instalación en el siguiente link:

http://learn.iis.net/page.aspx/28/installing-iis-70-on-windows-vista/



¿En que programaremos los módulos para IIS7?

Una vez instalado IIS7, y nos hayamos familiarizado con el entorno, comenzaremos a programar nuestro primer módulo. Los módulos para IIS7 los programaremos en C#, en .NET por supuesto :), asi que ir preparando el Visual Studio (2005 o 2008), que el próximo día daremos caña al compilador.

En el próximo post, os comentaré como programar vuestro primer módulo, en él, os enseñaré a crear una extensión para el servidor que capture todas las peticiones web que realicen los usuarios al servidor y a modificarlas, añadiéndoles una línea de texto al final de la página antes de devolversela al usuario. Un ejemplo muy sencillo, pero con el que vereis claramente, que se puede hacer casi cualquier cosa en el servidor desde un simple módulo del IIS.



Saludos!



martes, 2 de junio de 2009

Windows 7 eficiencia demostrada (II parte)

En el post de hoy me gustaría continuar con las pruebas de rendimiento de Windows 7 sobre el Acer Aspire One que comencé el otro día:

http://www.windowstecnico.com/archive/2009/05/29/windows-7-eficiencia-demostrada.aspx

Y voy a aprovechar estas pruebas para comentaros una novedad que incorpora Windows 7 con respecto a sus antecesores.


Durante la batería de pruebas que hice al AAO con Windows 7, decidí abrir todas las aplicaciones y ficheros que el netbook me permitiese, intentando encontrar el límite en el que me mostrase la famosa ventana de “X is not responding”. Pero por más que lo intenté, no logré verla, simplemente conseguí que tras abrir 6 carpetas, algunos juegos, el paint y algún que otro fichero comenzase a ralentizarse el ordenador, pero siempre se recuperaba al poco tiempo y jamás me salió la ventana de “X is not responding”:




¿Pero qué pasaría en Windows 7 si me saliese esta ventana?

Cómo sabréis, en Windows Vista, cuando una aplicación dejaba de responder, salía una ventana para avisarnos de ello, y nos permitía cerrar el programa, esperar a que responda o simplemente reiniciarlo, en todas ellas normalmente implicaba la perdida de datos. Pues bien, en Windows 7, cada vez que nos ocurra esto, y la aplicación deje de responder, nos permitirá cancelar la última acción ejecutada, consiguiendo de esta manera que la aplicación responda de nuevo y evitando la perdida de información, ¿genial no?

En la siguiente captura podréis ver lo que os acabo de contar:


Con las dos últimas entradas sobre el Rendimiento de Windows 7 y la de Windows 7 y Wait Chain Traversal que escribió Pedro:


http://www.windowstecnico.com/archive/2009/06/02/windows-7-y-wait-chain-traversal.aspx

Queremos demostrar que Microsoft ha realizado un gran trabajo en Windows 7, mejorando el rendimiento general y en los casos graves en los la aplicación no tuviese más remedio que dejar de responder, a puesto medios para volver a restaurarlas rapidamente, manteniendo así un uso continuado por parte de los usuarios.

lunes, 1 de junio de 2009

Subiendo al Acer Aspire One

Buenas a todos!, en el post de hoy os voy a contar las mejoras que le pretendo hacer al pequeño de la casa que adquirí el otro dia junto con Juan Luis Rambla, que también se compró una de estas pequeñas joyas:



En primer lugar le voy ha hacer un aumento de RAM (que trae 512MB por defecto), aprovechando el slot que tiene libre, subiendosela hasta el límite que permite, 1,5GB.

En segundo lugar voy a aumentarle el disco duro, por uno magnetico, desechando así el SSD que trae, por el momento el sustituto será un Toshiba de 1.8'' con conexión ZIF de 60GB (los de los i-pod), al menos que me salga una oferta mejor.

El coste total será el siguiente:

Acer Aspire One: 99€

Memoria RAM de 1 GB DDR2 533 KINGSTON: 13,70€

Disco duro Toshiba de 1.8'' con conexión ZIF de 60GB : 50€ (a ojo buen cubero por ebay)

ó

Disco duro de 1.8'' con conexión ZIF de 30GB : algo menos de 30€

Total: 162,7€ (disco duro 60GB) ó 142€ (disco duro 30GB)

Para el uso que se le puede dar a este pequeño, con el disco duro de 30GB es mas que suficiente, ya que puedes instalar los programas realmente útiles, office, adobe reader, photoshop (si tira...), y demás, y para almacenar fotos, algún video y tal te sobra también, y sino tiras de pendrive, disco duro externo o de SD que se le pueden meter.

En cuanto compre los componentes, haré un post sobre los pasos a seguir para cambiarle la RAM y el disco duro, y comentaré que tal va con el nuevo dopaje :)

Por si a alguien os interesa, por internet hay varios manuales en los que cuentan como hacer estas modificaciones al AAO, os remito a uno muy bueno en el que además enseñan a añadirle un bluethot interno:

http://www.pablomoya.com/documentos/tunea_tu_netbook.pdf

Windows 7, eficiencia demostrada

El otro dia llegó a mi casa la propaganda de un conocido comercio que iba a poner al dia siguiente una tirada de Acer Aspire One a 99€, una ganga sí, pero como bien sabréis este portátil además de ser un netbook, está bastante limitado:

Procesador: Intel Atom N270 / 1.6 GHz
Memoria caché: 512 KB - L2
Memoria RAM: 512 MB
Disco duro: 8 GB Solid State Drive
Display: 8.9 TFT 1024 x 600 ( WSVGA ) - color 18 bits

Pero aún así, por ese precio, un aficionado a la informática como yo no podía resistirse a ir corriendo a adquirirlo. Por lo que madrugué y me fui a hacer cola al comercio para conseguir mi pequeño netbook. Tras un buen rato de cola entre fieras deseosas de conseguir la ganga del año, logré traerme a uno de estos pequeñines a mi casa.

Tras arrancarlo, comprobar que funcionaba todo correctamente, me dispuse a eliminar corriendo el sistema operativo que llevaba instalado de serie, creado para uso infantil primordialmente. Barajando las diferentes posibilidades por las que sustituirlo, XP, Vista ó quizás probar que tal tiraba la RC del 7… me decanté en un principio por XP que parecía la opción más realista para el equipo que tenía entre mis manos, por lo que conecté mi unidad de dvd externa al portátil, para disponerme a instalarle el XP, pero por suerte para este post, el ordenador no me reconoció a la primera la unidad, por lo que enseguida me dispuse a hacer lo que realmente quería :), montar un pendrive de arranque con Windows 7 RC, como comentó mi compañero Fernando hace algún tiempo:

http://www.windowstecnico.com/archive/2009/02/17/instalacion-de-windows-7-en-usb.aspx

Y comprobar los límites del pequeño de la casa. Así que me puse manos a la obra. Nada mas introducir el pendrive al portátil, arrancó sin problemas la instalación de Windows 7, y en poco menos de una hora, lo tenía instalado. Como nota diré que esta misma versión de Windows 7 RC en un Core 2 Duo a 2GHz por núcleo con 4GB de RAM me tardó la mitad exactamente, por lo que el tiempo de instalación no estuvo nada mal para la limitación del equipo.



Tras la instalación, al arrancarlo por primera vez recibí mi primera sorpresa, estaban todos los drivers instalados y funcionando perfectamente, incluyendo los del wifi y la web cam, que había oído que daban problemillas, por lo que me ahorré un buen rato de búsqueda de drivers.
Así que me dispuse a probar el rendimiento del sistema operativo directamente, del cual quedé enormemente satisfecho. La navegación por el ordenador era fluida, sin tirones, como en un ordenador corriente, solo se notaban las ralentizaciones cuando tenía 3 ventanas o más abiertas en paralelo. Increíble. Coloqué el gadget que monitoriza el uso de CPU y la RAM y comprobé como la RAM se situaba normalmente sobre el 75%, y sobre el 65% desactivando el tema Aero, un resultado genial teniendo en cuenta que el equipo tiene 512MB, la mitad justo del mínimo recomendado para instalar 7.

Mínimos recomendados de Windows 7

Procesador de 1GHz (32bit - 64bit)
1GB de memoria RAM
Espacio en disco de 16GB
Soporte para gráficos DX9 con 128MB de memoria (para la interfaz Aero)

Por lo que pude comprobar que Windows 7 va a ser uno de los sistemas operativos más eficientes del mercado.
Hice varias pruebas de arranque desde parado, y comprobé como Windows 7 arrancaba entre 47 y 49 segundos, no es un valor estratosférico, pero no está nada mal.
En ésta instalación solo puedo achacar un problema, y es que como el netbook solo tiene 8GB de disco duro (la mitad también del recomendado), se han quedado algo menos de 2GB libres, aunque en este portátil se pueden ampliar mediante tarjetas SD, en mi caso le he añadido una de 2GB consiguiendo así 4GB libres. Por lo que si sois algo manitas, os recomendaría añadirle un disco duro de mayor capacidad si de verdad queréis hacer de este portátil un uso diario cómo es mi idea.
Aquí os dejo una foto para los escépticos que aún no crean que Windows 7 pueda funcionar en éste equipo :)




Y poco mas, concluyo el post confirmando lo que ya sabíamos y adelantábamos desde hacía bastante tiempo, Windows 7, va a ser eficiente, muy eficiente, incluso en las peores condiciones posibles como acabáis de comprobar. Así que os recomiendo que os animéis a instalaros la RC de Windows 7 y comprobar vosotros mismos, lo bien que va, e irá, la última joya producida por Microsoft
Un saludo a todos, espero hayáis disfrutado del post

WINDOWS 7, EL HÉROE DE LAS PANTALLAS TÁCTILES

Que Windows 7 va a ser el sistema operativo del presente no es ninguna novedad, es una realidad que tendremos en breve en el mercado, con un conjunto de nuevas funcionalidades que serán un éxito, como ya está siendo demostrado en las numerosas entradas que llevamos en el blog de Windows Técnico. Pero Windows 7 no se va a quedar solo cómo el sistema operativo del presente, sino que será durante muchos años el sistema operativo del futuro.
El futuro de la informática en los próximos años va a ir encaminado hacia el terreno de las pantallas táctiles, y no sólo en la informática de empresa y de usuario sino en cualquier situación de la vida. Las pantallas táctiles invadirán nuestros frigoríficos, dándonos detalles como que alimentos estarán a punto de caducar, invadirán el resto de electrodomésticos, televisores y demás aparatos digitales, por tanto llegaba la hora de crear un sistema operativo preparado para dar el salto a los nuevos sistema digitales, así fue diseñado Windows 7.

Para adaptar Windows al uso en pantallas digitales, el equipo de ingenieros de Microsoft, se tuvo que plantear hacer modificaciones en el escritorio, para que fuese más fácil de manejar por una yema de un dedo, más grande que el puntero del ratón. Por ello, hubo que hacer cambios de tamaño en algunas herramientas como la barra inferior del escritorio de Windows 7, que se ha visto aumentada de tamaño, al igual que los iconos contenidos en la misma.
Nuevas funcionalidades como Aero Peek, Aero Snap y Aero Shake, que comenté el otro día en el blog, han sido especialmente diseñadas para mejorar la funcionalidad de Windows 7 con los dedos:

http://www.windowstecnico.com/archive/2009/05/18/el-tr-237-o-de-aeros.aspx

¿Qué podremos hacer con la yema de nuestro dedo?

Con las pantallas táctiles nos podremos olvidar prácticamente del ratón, excepto para aplicaciones que lo requieran específicamente como por ejemplo en algunos juegos.
Con la yema de nuestro dedo podremos hacer click y doble click en la pantalla, podremos arrastrar ventanas deslizando el dedo por la ventana, podremos hacer zoom, pellizcando con dos dedos, ó con dos dedos separados para acercar o alejar el zoom, podremos girar fotografías, y podremos ejecutar acciones que se realizaban con el botón derecho del ratón, pulsando con un dedo la pantalla e inmediatamente haciendo “click” con otro dedo.
Cómo veis las posibilidades del uso de las pantallas táctiles son abismales. En el siguiente video podréis ver un resumen de las novedades que os acabo de contar:

http://video.msn.com/?mkt=en-US&playlist=videoByUuids:uuids:891c68b3-a534-4159-b6b2-8e4ac56b6890&showPlaylist=true

Además de las novedades comunes a todo el sistema operativo, hay aplicaciones que se han adaptado específicamente a su uso para pantallas táctiles como Windows Media Center y XPS Viewer. En el siguiente vídeo podréis ver el funcionamiento en Windows Media Center:

http://www.microsoft.com/windows/windows-7/videos.aspx?vindex=11
Pruebas y garantía de éxito

El equipo de Microsoft ha realizado muchas pruebas de eficiencia y precisión sobre el funcionamiento de Windows 7 para pantallas táctiles, que han finalizado con un gran éxito, podéis ver más información al respecto en su blog:

http://blogs.msdn.com/e7/archive/2009/03/25/touching-windows-7.aspx

Para dar garantía de que equipos del mercado serán compatibles con Windows 7 de manera táctil, Microsoft tiene preparado un nuevo logo, que se colocará en los equipos para que el cliente que los adquiera sepa de antemano que podrá contar con el nuevo sistema operativo táctil.
Para finalizar el post os dejo la siguiente noticia y la página oficial de Microsoft Surface, la nueva plataforma multi-táctil de Microsoft y un video sobre Surface Globe:
Noticia sobre la llegada a España de Microsoft Surface:

http://www.microsoft.com/spain/prensa/content/noticias/2009/marzo/n1.aspx

Página oficial de Microsoft Surface:

http://www.microsoft.com/surface/

Surface Globe:

http://video.msn.com/?mkt=en-US&playlist=videoByUuids:uuids:8f5ee5db-24f5-45fb-a3f6-d1a9660155a6&showPlaylist=true