Wednesday, October 20, 2004

Google Desktop Released

Para quienes aun no han descargado el ultimo juguete de Google, os invito:

Google Desktop
http://desktop.google.com/



Esta aplicacion aun corre sobre una web browser. Y no es una aplicacion desktop natural, como todos conocemos.

Uno quisiera tal vez, una agradable experiencia con el producto por tratarse de una aplicacion pequeña. O cierta integracion con el sistema operativo o con otras aplicaciones. Algo relativamente similal al Babylon o el WinZip

Pero aun asi, sigue siendo una opcion interesante. Al ver tan lejos a WinFS.

Este nuevo juguete se pasa algunas horas indexando la informacion de tu PC, tus documentos office, correos, HTML y TXT. Por unica vez.

Para luego darte resultados inmediatos, al realizar tus busquedas sobre el mismo Destop Google o sobre http://www.google.com/

En fin, un motivo para olvidar la opcion search del nuestro querido amigo, Windows.

Claro, si usas el Index Server de tu IIS sobre tu PC. Y haz aprovechado la interfaz que brinda, para visualizar tus documentos a traves de busquedas, pues no esta mal.

Pero para el publico en general, es una opcion agradable y facil de usar.

Microsoft Virtual PC 2004 - Service Pack 1

... y hasta que salio el primer Service Pack para VPC 2K4. :)

Para todos los que trabajamos frecuentemente con este producto, resulta una muy buena noticia, de veras.

http://www.microsoft.com/downloads/details.aspx?FamilyId=B07C9EF0-265A-4237-AE3B-25BC8937D40F&displaylang=en

Denle una revisada al README, para conocer mayores detalles de las correciones y mejoras que vienen con este parche:

http://download.microsoft.com/download/6/9/d/69de9b67-6498-41fb-9add-95ceab6eb5cc/readmesp1.htm

Friday, October 01, 2004

Inquire into MONO

Continuaba en mi afanoza investigacion sobre MONO, la plataforma de desarrollo de software libre basado en el .NET Framework que permite contruir aplicaciones GNU/Linux con una productividad sin precendentes sobre plataformas como Unix, Linux y MacOS, y me encontre con este post en el blog de Chris Anderson, uno de los arquitectos de Avalon:

Miguel, lets chat...
http://www.simplegeek.com/PermaLink.aspx/eb453f85-10e3-48ee-a6f5-cc4b886ce668

En respuesta a lo que Miguel De Icaza, quien lidera actualmente el equipo del proyecto MONO para la empresa Novell, escribio en este post:

Longhorn changes
http://primates.ximian.com/~miguel/archive/2004/Sep-01.html

Miguel, es mexicano, orgullo hispano para la comunidad Linux. Fue lider y fundador de la fundacion GNome, de su empresa Ximian y desarrollador instrumental de Linux para SPARC. Fue galardonado con el Premio del Software Libre y el premio Innovador del Año, ambos en el año 1999. Y algun otro galardon, seguramente... ;)

Es uno de los impulsores del Proyecto MONO, cuya implementacion se basa en los estandares de ECMA C# y la infraestructura del lenguaje comun. MONO incluye las herramientas de desarrollo necesarias para crear aplicacion de cliente y servidor.

Aun más, Miguel replico lo expuesto por Chris Anderson, en funcion a las criticas que el habia espobazado inicialmente y que Chris habia respondido, a traves de este post:

Avalon Part 2
http://primates.ximian.com/~miguel/archive/2004/Sep-09.html

Hace un tiempo, Miguel desecho una propuesta de Microsoft para trabajar en Redmond. Y uno de los arquitectos de Indigo, lo tuvo en sus planes, lo que se puede corroborar en una entrevista que le hace Microsoft-Watch a Don Box.

http://www.microsoft-watch.com/article2/0,1995,1418558,00.asp

Si te interesa leer la historia completa de Miguel, podrias verlo en:

http://www.rebelion.org/noticia.php?id=3911

Su blog personal es: http://primates.ximian.com/%7Emiguel/activity-log.php

Vale...!

Thursday, September 09, 2004

gmail is for me, too. Thanks Google!!!

El dia martes consegui mi cuenta de gmail a traves de un amigo de USA - Seattle. Al parecer pude calificar a este restringido servicio, aun :)

http://gmail.google.com

A pesar que aun se encuentra en version Beta. Las funcionalidades que brindan al usuario son muy comodas e intesantes.

Por ejemplo, propone el folder STARRED, que permite marcar nuestros emails con la finalidad de que estos puedan ser encontrados posteriormente, con mayor facilidad. Uno podria marcar multiples veces un email, para darle cierto status, a este.

La opcion de Archivar, brinda la posibilidad de alojar nuestros mails en un lugar logico, sin que sean eliminados aun. Pero tambien sin una acceso inmediato salvo al seleccionar la opcion 'All Mail'.

Ni que decir de la opcion de busqueda. Algo relativamente similar a lo que ya nos brindaba Yahoo, cuando hace dos meses atras hicieron el upgrade de su servicio. De pronto, un dia, mi buzon aparecio con 2GB de espacio disponible. Santo Dios!!!

Ni modo, para todos aquellos que deseen una cuenta de gmail, me envian un mensaje, a mi reciente cuenta de correo electronico:

Javier Luna AT gmail
javier.a.luna@gmail.com

Tuesday, September 07, 2004

I wanna be unplugged of my PC

Surfeando por la red, me encontre con el blog de Mauricio Sougarret.

¿Que quien es el? Uhm, bueno. El es uno de los chicos que trabaja para Microsoft Peru. Y participa constantemente de los eventos tecnologicos del gigante del software, aqui en nuestro querido pais.

Me di un tiempo para leer un post que finalmente me agrado.

Me estare poniendo viejo
http://msougablog.blogspot.com/2004/06/me-estar-poniendo-viejo.html

Nos habla un poco sobre la añoranza de las cosas que ha cambiado en nuestras vidas y de aquellas que hemos dejado detras, debido a como la tecnologia se ha hecho parte importante en nuestro dia a dia.

Os recomiendo ;)

Wednesday, August 25, 2004

Wonderful User Interface

El Microsoft Center for Information Work (MSCIW), fue uno de los ganadores en uno de los eventos de diseño mas importantes del mundo, Industrial Design Excellence Award, hace un año atras.



Este proximo entorno de trabajo, propuesto por Microsoft, estara orientado a incrementar la productividad de nosotros, es decir todo aquel que interactua con una PC para su trabajo del dia a dia.

Incluira productos de los prototipos que han sido planeados dentro de ese amplio conjunto de ideas que emergen del equipo de Microsoft Research y otras divisiones de Microsoft.

Desde otra perspectiva

Click para ver en popup

La interfaz de usuario deberia ser muy diferente a las que actualmente apreciamos en nuestra PCs.

Podria ser algo como lo que podemos ver en el siguiente link, para sacar provecho de ese precioso monitor pantalla enormemente ancha, que vemos en la primera imagen.

Click para ver en popup

Simplemente, alucinante!!!

El proximo release de Windows, codename Longhorn, que seria liberado el 2006, no participara concretamente de todas estas bondades, aun. Pero es el inicio para ello.

Longhorn - Contact User Experience
http://www.msdn.microsoft.com/longhorn/default.aspx?pull=/library/en-us/dnaero/html/wux_topic_contacts.asp

Esto ultimo no deberia verse tan distante o lejano en el tiempo. Si se tiene la curiosidad de experimentar con ello, ahora en nuestras PCs, solo es cuestion de preguntar ¿como lo consigo? ;)

MSN Web Messenger, Wow Yeah!!!

Los primeros dias de agosto fue liberada la version web de MSN Messenger.

http://webmessenger.msn.com/

A pesar que contabamos con diferentes medios para poder estar online a traves de nuestra propia cuenta, cuando no teniamos el permiso para poder instalar el cliente del MSN Messenger o el firewall bloqueaba los puertos. Algunos de esos medios no brindaban una autentificacion Passport.NET directa hacia el usuario por lo que nuestro muy codiciado password podia estar viajando por la red a su libre albedrio. Nada seguro por cierto.

Algunos hemos usado Hopster desde hace algun tiempo atras cuando nos encontrabamos enclaustrados en algun ambiente si salida al MSN Messenger. Con algunas limitaciones como no poder usar la Web Cam o el Audio, pero a no tener nada ;)

Ahora no tendremos que hacer tantos artificios para poder estar online con nuestro contactos.

A pesar que solo brinda un numero limitado de conecciones, pues aun es un trial. Sigue siendo una opcion interesante.

Asi que si ves un iconito con el mundo verde-azul dentro de tu lista de contactos, te percataras que ese contacto esta logeado sobre el nuevo MSN Web Messenger.

Por cierto, uno de los requerimientos para usarlo es:

Sobre Microsoft Windows
- Microsoft Internet Explorer 5.0 +,
- Netscape 7.0 +,
- Mozilla 1.6 +

Desde estos browser con soporte JavaScript:
Podria trabajar sobre OS-X (con Camino) y Linux (con FireFox).

Al parecer tambien trabaja sobre MAC OS 8/9 con IE 5.1 :)

Tuesday, August 24, 2004

Handling Events and Delegates

Una de las cosas mas interesantes que trajo consigo la llegada de ASP.NET, aya por el año 2002, fue la posibilidad de encapsular logica e interfaz de usuario a traves de los ahora muy conocidos Web User Controls.

Esto nos ha permitido reutilizar dichas funcionalidades a lo largo de nuestro projecto web, permitiendo reducir algunas lineas de codigo, haciendo mas sencillo y flexible los posteriores mantenimientos.

Sin embargo, la manera profesional de trabajar con los Web User Controls consiste en definir eventos, a partir de los cuales se envian mensajes hacia la entidad que los contenga, que generalmente son Pages u otros Web User Controls.

La intencion esta en que las paginas ASP.NET, asuman el rol de gestores de los eventos de los diferentes Web User Controls que contengan dentro de el.

Les alcanzo un pequeño ejemplo que podria mostrar lo sencillo que es definir un evento para un Web User Control, haciendo uso de un Delegate que define cierta firma a la que se ha de ajustar el evento que deseamos publicar.


Archivo .ASCX


<%@ Control Language="c#" AutoEventWireup="false" Codebehind="SearchEngine.ascx.cs" Inherits="DemoWebAppCSharp.Event.SearchEngine"%>
<asp:TextBox id="_text" runat="server"></asp:TextBox>
<asp:Button id="_go" runat="server" Text="Go"></asp:Button>

--- End File ---

Este archivo define como se ha de estructurar la interfaz del usuario para este Web User Control en particular.

Algo tan simple como un TextBox y un Button para un sencillo buscador.


Archivo .ASCX.CS



namespace DemoWebAppCSharp.Event
{
using System;
using UserInterface;

/// <summary>
/// Definimos el delegate que define la firma con la que publicaremos el evento
/// </summary>
public delegate void ClickedEventHandler( Object sender, ClickedEventArgs e );

/// <summary>
/// Este Web User Control hereda de un clase que permite encapsular
/// cierta funcionalidad similar para todos los controles de
/// nuestro projecto web
/// </summary>
public class SearchEngine : CustomControl
{
protected System.Web.UI.WebControls.TextBox _text;
protected System.Web.UI.WebControls.Button _go;

/// <summary>
/// Publicamos el evento Clicked del tipo ClickedEventHandler
/// el delegate que habiamos definido lineas arriba
/// </summary>
public event ClickedEventHandler Clicked;

/// <summary>
/// Es requisito sobre-escribir este metodo para todo Web User Control
/// que diga decente :)
/// </summary>
/// <param name="e">Uhmmm... obvio!!!</param>
protected override void OnInit( EventArgs e )
{
base.OnInit( e );

// Enganchamos el metodo SearchEngine_Load al evento Load del control
this.Load += new EventHandler(SearchEngine_Load);

// Enganchamos el metodo Go_Click al evento Click del Button
this._go.Click += new EventHandler( this.Go_Click );
}

private void SearchEngine_Load(object sender, System.EventArgs e)
{
}

/// <summary>
/// Este metodo estara enganchado al evento Click del Button
/// que se muestra en la interfaz del usuario del Web User Control
/// y soltara el evento propio de este control para dicha accion Clicked.
/// </summary>
/// <param name="sender">Una instancia de quien ocasiona el evento</param>
/// <param name="e">Informacion del evento</param>
private void Go_Click(
Object sender,
EventArgs e )
{
// Lanzamos el evento Clicked. Alguien lo gestionara y sino no hay problema
if( this.Clicked != null )
this.Clicked( this, new ClickedEventArgs( this._text.Text ) );
}
}

/// <summary>
/// Esta clase encapsula cierta informacion particular para el evento Clicked
/// del Web User Control que estamos implementando SearchEngine.
/// Lo unico que enviara es el texto que fue ingresado en el TextBox del
/// control para que se realize la accion esperada del usuario.
/// </summary>
public class ClickedEventArgs : EventArgs
{
private String _text;

public ClickedEventArgs( String Text )
{
this._text = Text;
}

public String Text
{
get { return this._text; }
set { this._text = value; }
}
}
}

--- End File ---

Aqui implementamos la manera en como nuestro Web User Control ha de interactuar con el usuario. En funcion a las opciones que permitamos, realizaremos ciertas acciones a traves de Eventos. En este caso particular, al hacer 'click' sobre el Button lanzaremos el evento Clicked propio de este Web User Control.

Para ello tenemos que engancharnos al evento Click del Button y dentro de su implementacion disparar nuestro propio evento, Clicked.

Debido a que tenemos la intencion de enviar cierta informacion a traves del evento. La manera de llevarlo a cabo es usando el definiendo una clases que herede de EventArgs. En nuestro caso particular ClickedEventArgs. El cual solo cuenta con una propiedad llamada Text, donde colocaremos el dato que haya ingresado el usuario sobre el TextBox del Web User Control.

El evento que publicaremos debe ajustarse al Delegate que hemos definido, ClickedEventHandler. Este delegate se ajusta a cierta firma, propia para este evento.

No hubiera sido necesario definir este Delegate si no hubieramos visto conveniente una firma particular para el evento o enviar informacion a traves de el.

En ese caso, hubiera sido suficiente definir el evento Clicked del tipo EventHandler, el delegate por default. De ese modo, ya no seria necesario enviar informacion adicional como parte del evento. Entonces tendrias que usar EventArgs.Empty en el momento de lanzar el evento Clicked.



Archivo .ASPX



<%@ Register TagPrefix="Custom" TagName="SearchEngine" Src="SearchEngine.ascx" %>
<%@ Page language="c#" Codebehind="Holder.aspx.cs" AutoEventWireup="false" Inherits="DemoWebAppCSharp.Event.Holder" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Holder</title>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<table>
<tr>
<td>
<Custom:SearchEngine id="_engine" runat="server"></Custom:SearchEngine></td>
</tr>
<tr>
<td>
<asp:TextBox id="_show" runat="server"></asp:TextBox>
</td>
</tr>
</table>
</form>
</body>
</HTML>

--- End File ---

Este archivo contiene el Web User Control y un TextBox.

La intencion con propositos de testeo, es la de pintar el texto ingresado por el TextBox del Web User Control sobre el TextBox de la Page.


Archivo .ASPX.CS



namespace DemoWebAppCSharp.Event
{
using System;
using UserInterface;

/// <summary>
/// Esta es la pagina que contendra el Web User Control que hemos implementado
/// Por cierto, hereda de una pagina que define cierta funcionalidad similar
/// para todas las paginas de nuestro proyecto web.
/// </summary>
public class Holder : CustomPage
{
protected System.Web.UI.WebControls.TextBox _show;
protected SearchEngine _engine;

/// <summary>
/// Del mismo modo, que para el Web User Control es requisito para
/// toda Page que se diga decente.
/// </summary>
/// <param name="e"></param>
protected override void OnInit( EventArgs e )
{
base.OnInit( e );

// Enganchamos el metodo Holder_Load al evento Load de la page
this.Load += new EventHandler(Holder_Load);

// Enganchamos el metodo Engine_Clicked al evento Clicked de Web User Control
this._engine.Clicked += new ClickedEventHandler( this.Engine_Clicked );
}

private void Holder_Load(object sender, System.EventArgs e)
{
}

/// <summary>
/// Este es el metodo que se enganchara al evento Clicked del Web User Control
/// y que dentro de su implementacion realizara la tarea que creemos
/// conveniente. Pero dicha accion estara dentro de la jurisdiccion de la Page.
/// </summary>
/// <param name="sender">La instancia de quien genera el evento</param>
/// <param name="e">Informacion propia de este evento</param>
private void Engine_Clicked(
Object sender,
ClickedEventArgs e )
{
// Algo tan sencillo como pintar el texto ingresado por el control sobre otro TextBox
this._show.Text = e.Text;
}
}
}

--- End File ---

Para llevar a cabo dicho testeo, tenemos que subscribirmos al evento Clicked del Web User Control. De esa manera, coger la informacion que trae consigo el evento para poder realizar una accion. En este caso, ClickedEventArgs nos brinda el dato que el usuario hubiera ingresado sobre el TextBox del Web User Control. El cual nosotros cogeremos para poder colocarlo sobre el TextBox de la Page.

Monday, August 23, 2004

Searching .NET PetShop 4.0...???

Leyendo el blog de Chris Strevel, uno de los fundadores de Intellekt.NET una joven empresa mejicana dedicada a las Tecnologias de Informacion, me encontre con este post:

Microsoft .NET PetShop
http://intellekt.ws/dottextweb/chris/archive/2004/08/07/361.aspx

Curiosamente, Chris nos cuenta sobre la nueva version liberada del .NET PetShop. A lo que le preste atencion inmediatamente, pensando que seria algun nuevo release.

Me dispuse a ingresar al GotDotNet, pero solo encontre la version con la que ya venia trabajando desde hace un tiempo :(

¿Que paso Chris? ¿Por que nos haces esto?

Wednesday, August 18, 2004

Windows XP Service Pack 2

Microsoft, a liberado el nuevo service pack para Windows XP, esta ultima semana que paso.

Este parche, esta orientado muy verticalmente al tema de seguridad. Que por cierto, es una de las preocupaciones de mayor prioridad dentro de las instalaciones de Redmond.

Sin embargo, existen algunos escenarios en los que estas nuevas prestaciones para Windows XP a traves de este nuevo Service Pack, impactan sobre nuestras aplicaciones de hoy. Es tarea de la gente de soporte, plataforma y desarrollo conocer mas fondo lo nuevo que trae esta segunda version para poder tomar los correctivos necesarios.

Claro si en tu centro de labores siguen con W98. No te preocupes de nada :)

Les alcanzo algunos links que podrian serles de utilidad para este nuevo dolor de cabeza.

Vídeos, instrucciones paso a paso y mucho más
http://support.microsoft.com/default.aspx?scid=fh;[ln];xpsp2cnfghowto

Interesantes videos que nos permitiran apreciar como configurar nuestras PCs con Windows XP + SP2

Microsoft Windows XP SP2 Screenshots
http://www.microsoft.com/presspass/press/2004/aug04/0806WinXPSP2Images.asp

Darle un ojito a estos screen-shots para darse una idea de lo que nos toca vivir.

Windows XP Service Pack 2 - Overview Developers
http://www.tonygoodhew.com/downloads/DEV270WindowsXPSP2DeveloperOverview-tgoodhew.zip

Esta es una presentacion que nos muestra el punto de vista de los developers para con el SP2 del WXP

Source Code for Demo
http://www.tonygoodhew.com/downloads/democode.zip

Los codigos fuentes de las demos que se realizaron en esta presentacion.

Microsoft Windows XP Service Pack 2 Platform SDK RC2
http://www.microsoft.com/downloads/details.aspx?FamilyID=9be921b3-585e-47d9-bcc1-980879b69b34&displaylang=en

Para poder hacerle un build a los Projectos de C++.NET que vienen con el source code deben bajarse el Platform SDK para el Service Pack 2.

Y obviamente haberse descargado el Service PAck 2, pe.
http://www.microsoft.com/downloads/details.aspx?FamilyId=049C9DBE-3B8E-4F30-8245-9E368D3CDB5A&displaylang=en