viernes, 31 de julio de 2009

Google Docs

Que tal a todos, ahora les voy a escribir una pequeña opinión sobre las experiencias que he tenido con Google Docs. Actualmente estoy estudiando mi Maestría en Administración de TI con modalidad en linea y esta valiosa herramienta me ha sido de suma utilidad para realizar las actividades requeridas en las materias.
Google Docs the permite editar documentos en linea y exportarlos a los formatos mas populares en el mercado (pdf, doc, odt, txt y rtf). Los documentos pueden ser compartidos y editados al mismo tiempo por colaboradores permitiendo la estructuración de documentos dinámicamente. Google también permite la edición de hojas de calculo o spreadsheets, asi como un básico motor de presentaciones y bases de datos. Google Docs sigue creciendo con la adición de nuevos templates, nuevas funcionalidades y nuevas ideas. Ademas por ser una aplicación web es soportado por la mayoría de los navegadores en el mercado (Chrome, Firefox, IE, Opera, etc) y sin la necesidad de instalar nada en tu computadora.
Claro que no todo es miel sobre hojuelas, google docs tiene la limitante de no poder almacenar documentos de texto mayores a 500 kb + 2 mb de imágenes; las hojas de calculo no pueden almacenar 10,000 filas y 256 columnas, además documentos con 100,000 celdas y 40 hojas, solo teniendo 11 hojas abiertos al mismo tiempo y además las presentaciones no pueden ser mayores a 10 Mb.
Google Docs no es un reemplazo para paquetes de oficina complejos como OpenOffice o MS Office pero puede llegar a ser una buena alternativa para la realización de tareas y trabajos sencillos como los que la mayoría hacemos en su vida cotidiana. En verdad les recomiendo que lo prueben solo hay que tener una Google Accoutn que puede ser solicitada gratuitamente en: https://www.google.com/accounts/

La pagina para Google Docs es http://docs.google.com.

sábado, 25 de julio de 2009

Mejor Linux para Laptops

Que tal gente, últimamente he estado buscando cual seria la mejor distribución Linux que funcione adecuadamente en mi laptop Dell vostro 1310. Compre la computadora para realizar mis trabajos requeridos en mis cursos de maestría y por supuesto que tenia pre-instalado Windows Vista. Tengo pocos años utilizando Linux pero me encanta el sistema. He probado algunas distribuciones en mi pc de escritorio y la verdad la que mas me convenció fue Slackware (aunque tarde un poco en configurar todo mi sistema completamente), es genial poder tener control total de todo el sistema y aprender su funcionamiento indagando dentro de sus fuentes. Ahora para mi laptop he probado, Suse, Ubuntu, Fedora, Sabayon entre otros. Pero ninguno termina de convencerme tanto como Slackware; así que me gustaría saber cuales han sido sus experiencias utilizando el sistema en sus computadoras portátiles.
Saludos a todos

miércoles, 1 de julio de 2009

Postgre 8.4 Listo!!!

La nueva versión del poderoso DBMS PostgreSQL (Version 8.4), ya esta lista y liberada. Algunas de sus mejoras son, queries recursivos, permisos a nivel columna, localización a nivel BD, algunas herramientas de monitoreo y mas. La lista completa de mejoras esta en este link:
http://www.postgresql.org/about/press/features84.html

Para descargarlo vayan a:
http://www.postgresql.org/download/

No puedo esperar a probarlo. Después les posteo que tal me fue.

viernes, 19 de junio de 2009

IE 8 mejor que Firefox???

Recién vi que Microsoft publico una campaña en donde compara IE 8, Firefox y Chrome (claro que el ganador es IE 8). En la página se despliegan una serie de características como privacidad, compatibilidad, personalización entre otras.
Les dejo el link a la pagina de IE 8.
Le creeremos a Microsoft?

sábado, 13 de junio de 2009

Notificaciones con Npgsql y PostgreSQL 8.3

Hola que tal buen rato ya sin escribir, últimamente estuve muy ocupado con el trabajo, ya saben que hay momentos en los que todo falla al mismo tiempo. Esta vez me toco estar trabajando en una aplicación ASP.Net en la que ya llevo algunas semanas desarrollando, pero pues como siempre, los altos mandos no quieren gastar mas dinero en el desarrollo ya que nuestro servidor de Oracle esta limitado de licencias, es por esto que se decidió buscar una alternativa de DBMS gratuita (PostgreSQL). ¿Por que no MySql? preguntaran; bueno se decido utilizar un servidor Postgre por su poder y su gran capacidad de desarrollo a travez de su lenguaje PL/PgSQL. Bueno el caso no es eso lo que vamos a discutir hoy. Durante el desarrollo me encontré con la necesidad de realizar varias funciones no muy complejas, pero llegue a una en la que era necesario comunicarse con el mundo exterior para reportar sus resultados. Existen metodos muy sencillos: ejecuta la funcion y si algo sale mal arroja una excepcion y aborta:

begin
--Haz algo
if algo_malo then
RAISE EXCEPTION 'Mensaje algo salio mal';
end if;
end;

Una excepcion es un nivel de mensajes dentro de PostgreSQL y significa que algo fuera de lo común ha ocurrido, pero existen veces en las que nada grave ha salido mal y solo necesitamos enviar un mensaje. O de algun batch de instrucciones solo algunas salieron mal y no podemos abortar la ejecusion ya que las instrucciones que si se procesaron correctamente se cancelarian. Para esto exiten varios niveles en los cuales nosotros podemos colocar un mensaje sin necesidad de abortar la ejecusion de nuestra funcion PL/pgSql el que nos interesa en este post es el nivel de notificacion o NOTICE (Lista Completa).

Bueno primero lo primero para lanzar una notificacion en el sitema de postgre solo hay que invocar RAISE NOTICE. Un ejemplo seria:

RAISE NOTICE 'Mensaje de Notificacion';

Las notificaciones quedaran registradas en el sistema dependiendo de la configuración del servidor postgre, pero como hacemos que Npgsql reciba estas notificaciones que surgen en el servidor, como primer paso tenemos que configurar PostgreSQL para que los mensajes NOTICE sean enviados a los clientes; para hacer esto tenemos que cambiar la variable de entorno "client_min_messages". Esto lo podemos hacer cambiando su valor dentro del archivo "postgresql.conf" localizado dentro del directorio de instalación de Postgre y haciendo que el servidor recargue la configuración del archivo; los valores posibles para esta variable son cualquiera de los listados en los niveles mensajes arriba direccionados. Establecemos esta variable a "notice", para que todos los mensajes generados con este nivel o niveles siguientes sean enviados al cliente y así poderlos capturar con npgsql en nuestro programa.
Las lineas de configuración quedarían mas o menos as
í: (Nota: Esto es en Postgre 8.3, no lo probé para otra versión).

client_min_messages = 'notice' # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error


Una vez que el servidor esta configurado para enviar los mensajes de notificación, solo necesitamos hacer que nuestro NpgsqlConnection maneje los mensajes que el servidor nos enviara. Así que en el código de nuestra aplicación solo tenemos que agregar una función que actuara como manejador de los mensajes.

Para hacer esto necesitamos establecer cual método sera el encargado de procesar los mensajes que lleguen al cliente. En nuestra conexión necesitamos agregar una función en la propiedad Notice que se llamara una vez que se reciban las mensajes provenientes del servidor. Quedaría mas o menos así:

NpgsqlConnection conn = new NpgsqlConnection('CADENA DE CONEXION');
conn.Notice += MetodoManejador;

public void MetodoManejador(object sender, Npgsql.NpgsqlNoticeEventArgs e)
{
//Procesar el mensaje
}

Y eso seria todo, cabe mencionar que el objeto NpgsqlNoticeEventArgs contiene el mensaje proveniente del servidor. Un punto extra, a partir de la versión 1.0 de Npgsql existe soporte para notificaciones sinctronas, esto quiere decir que Npgsql puede recibir las notificaciones del servidor sin una interacción extra que saque las notificaciones generadas. Para habilitar esta opción es necesario agregar en la cadena de conexión el parametro
"SyncNotification = true".

A continuación les dejo un pequeño ejemplo que realice.

string conString = "CADENA DE CONEXION";
Npgsql.NpgsqlConnection con = Utilities.GetNpsqlConnection(conString);
Npgsql.NpgsqlCommand com = new Npgsql.NpgsqlCommand("sp_raise_notice", con);
com.CommandType = CommandType.StoredProcedure;
com.Connection.Notice += new Npgsql.NoticeEventHandler(Connection_Notice);
com.Connection.Open();
try
{
com.ExecuteNonQuery();
}
catch (Exception e)
{
writeMessage(e.Message);
}
finally
{
com.Connection.Close();
}

//Metodo Manejador
void Connection_Notice(object sender, Npgsql.NpgsqlNoticeEventArgs e)
{
writeMessage(e.Notice.Message);
}


Nota por razones de seguridad no pongo mi cadena de conexión pero en ella esta habilitada la opción SyncNotification. Si tienen alguna duda de como formar su cadena de conexión para postgre pueden visitar la pagina:
http://www.connectionstrings.com/postgre-sql
O si quieren pueden visitar el manual completo de NpgSQL (muy completo) en:
http://npgsql.projects.postgresql.org/docs/manual/UserManual.html

Saludos a Todos!!!.

domingo, 26 de abril de 2009

JavaScript Facil con JQuery



Que tal, ahora les voy a mostrar lo fácil que es hacer grandes funcionalidades en las aplicaciones web con javascript. Javascript son piezas de código que se ejecutan en la máquina del cliente web en su explorador web. La mayoría de los exploradores web modernos soportan la ejecución de javascript. Ejemplos:

  • Firefox

  • IExplorer

  • Safari

  • Opera

  • Etc, etc.


Con la aparición del objeto XMLHttpRequest, desarrollador por Microsoft, la web se convirtió en un lugar mas dinámico a travez de su manipulación con javascript. Yo creo todos han escuchado hablar de AJAX (javascript asincrono y XML por sus siglas en ingles), chequen el blog de Carlos, puso un post muy bueno sobre ajax. Antes javascript se usaba para hacer paginas web dinámicas o (DHTML) dando efectos y cosas así, pero ahora es una herramienta indispensable para todo desarrollador web, ya que además de efectos se puede utilizar para reducir el trafico de red en la carga parcial de paginas web, validaciones en tiempo real y mucho mas.
Bueno al grano JQuery es una librería js que nos hace la vida mas sencilla para desarrollar funcionalidades muy poderosas con pocas lineas de código.
A continuación les dejo un ejemplo sencillo pero les prometo que mas delante publicare mas cosas.
Lo único que tenemos que hacer primeramente es añadir JQuery a nuestras paginas web, esto se hace mediante una etiqueta "script", se puede descargar la librería e incluirla en tu directorio web o incluirla directamente desde su link de descarga en la pagina de JQuery.

<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"> </script>

Ademas la funcionalidad de JQuery puede ser extendida por medio de muchos plugins gratuitos que se desarrollan dentro de la comunidad open source, esto hace de esta libreria una de las preferidas por los desarrolladores web. Para ver los plugins existentes visiten: http://plugins.jquery.com

jueves, 23 de abril de 2009

Pingüinos Robot

Navegando por el Internet en un rato libre me encontré con esta noticia. Unos ingenieros de una compañía llamada Fisto revelaron sus avances en tecnología al crear robots que se asemejan en tamaño y forma a un pingüino verdadero. Estos robots son capaces de nadar y reconocer el ambiente con un sonar integrado, supuestamente estos pingüinos estan en exibicion en Alemania. Ademas presentan mas avances tecnológicos chidos que se han estado desarrollando.
Les dejo un link al vídeo donde se presentan estos productos.

http://www.youtube.com/watch?v=L5JHMpLIqO4

o velo aqui: