More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Gustavo BonanseaProfileFriendsBlogMore Tools Explore the Spaces community

Gustavo Bonansea

Mis Opiniones
June 09

Windows Live Skydrive

Les paso la URL de un servicio muy interesante de Windows Live que se denomina "SkyDrive" y nos da 5GB de almacenamiento Online, tiene además un plugin para Windows Live Writer:

http://skydrive.live.com

image

AddIn para Windows Live Writer: http://gallery.live.com/liveItemDetail.aspx?li=89a07e1b-0606-47f0-ba66-c53400777daa&bt=9&pl=8

GB

June 06

Seminario sobre Desarrollo de Juegos

El desarrollo de software tradicional no es el único mercado posible y disponible. Existe un mundo diferente en el cual incursionar generalmente considerado exclusivamente para expertos y fuera de nuestro alcance. Desmitifique estos conceptos y descubra esta alternativa de desarrollo.

La Secretaría de Extensión Universitaria en conjunto con la Asociación de Graduados Universitarios Tecnológicos Independientes (A.G.U.T.I.) tienen el agrado de invitarlo al Seminario Gratuito

CONTENIDOS TEMÁTICOS:

· Historia de los juegos

· Desarrollo de juegos en Argentina y el mercado

· Tipos de juegos y plataformas objetivas (celulares, Web, PC, Consolas)

· Motores gráficos

· Juegos de acción (Ideas hechas realidad)

Auspicia:

Asociación Vocacional de Estudiantes e Ingenieros Tecnológicos

DESTINATARIOS: Graduados y estudiantes de Ingeniería en Sistema, Público en general interesado en la temática.

Fecha: Miércoles 11 de Junio de 2008 - De 18:30 hs. a 21:30 hs.

Lugar: U.T.N. – Facultad Regional Córdoba – Anfiteatro de AVEIT - Maestro López Esq. Cruz Roja Argentina, Ciudad Universitaria.

 

GB

June 02

Charla de Microsoft Robotics Developer Studio 2008

Lunes 9 de Junio de 2008 - 19:30hs - SUM Buenos Aires 563 - IES - Córdoba

afiche Robotics MAIL

GB

May 13

¿Vendemos EDS?

Aportando un granito de arena más a esto de las fusiones y adquisiciones de las tecnológicas, sumándose a la bulla creada por la oferta de Microsoft a Yahoo, ahora HP hizo una oferta de compra a EDS por 12.6 mil millones de dólares, aunque las noticias no lo confirman todavía, algunos "internos" dicen que ya está confirmado.

GB

May 09

¡¡ Este blog llegó a las 100.000 visitas !!

Este post es para festejar que alcanzamos las 100.000 visitas en mi blog, sé que no es la mínima parte de los pagesview que tiene La Voz online... pero es suficiente para mí :D

100k

GB

May 06

Biztalk Naming Conventions

Me ha pasado en varias ocasiones el tener conflictos internos (o sea discutir conmigo mismo) sobre el nombre que se le debería poner a cierto assembly, clase, objeto, etc. Para solucionar ese tema nada mejor que atenerse a una convención de nombres estándar como base. Les paso una para artefactos de Biztalk:

http://www.traceofthought.net/misc/BizTalk%20Naming%20Conventions.htm

GB

May 02

Ranking de los Search Engine

Estos son los buscadores que se reparten la torta de las 10.200.000.000 búsquedas mensuales en la web:

* Google y sus sitios afiliados: 59,8%

* Yahoo y sus sitios afiliados: 21,3%

* Microsoft y sus sitios afiliados: 9,4%

* AOL y sus sitios afiliados: 4,8%

* Ask Network y sus sitios afiliados: 4,7%

 

Fuente:http://ar.news.yahoo.com/s/01052008/32/ranking-buscadores-m-s-usados-ltimos-tiempos.html

GB

April 29

Content-disposition

Cuando renderizamos documentos dinámicamente en un sitio web, es decir que utilizamos Response.Write desde una página Aspx y seteamos su ContentType (por ej. "Application/pdf") y queremos forzar que en vez de mostrar el documento en una ventana en el Browser el explorer muestre el diálogo de download lo que debemos agregar es lo siguiente:

Response.AppendHeader( "content-disposition", "attachment; filename=" + name );

Esto es algo que siempre me olvido y me paso un buen rato buscando en Internet, ahora lo posteo acá.... supongo que lo encontraré más rápido la próxima vez que lo busque.

GB

April 25

¿Cuánto puede ganar mi sitio con AdSense?

Una pregunta que me hago recientemente es cuánto dinero se puede obtener a través del AdSense de Google. Acá les paso una página que intenta ser una base con datos clasificados sobre distintos tipos de sitios (teniendo en cuenta cosas como la categoría, el idioma, visitantes, page loads, etc):

http://www.admoolah.com/category-view.php

Ejemplo de Sitios Regionales

Date Earnings Category Lang PR Visitors Page Views
4/05 $11982.00 Regional: Canada EN 9 1000000 100000000
2/05 $500.00 Regional: General EN   350 5000
7/05 $50.00 Regional: General EN   230 5000
8/05 $30.00 Regional: Europe DE   2000 3000
9/05 $605.00 Regional: US EN 1 75493 1191677
11/06 $500.00 Regional: Europe DE 4 130000 3000000
12/06 $91.00 Regional: US EN   14934 25945
9/03 $0.00 Regional: US CS 6    
8/07 $11.66 Regional: Europe DE      
11/05 $0.00 Regional: Canada TR 4    
12/06 $0.00 Regional: General DE      
3/07 $281.00 Regional: UK EN 3 6000 18000

Summary

Total records found: 12
Average Earnings: $1170.89
Average Visitors: 153625
Average Pageviews: 13031077
Average Earnings per 1000 Pageviews: $0.13

Resumen de ingresos de los Blogs

Summary

Total records found: 123
Average Earnings: $114.15
Average Visitors: 29402
Average Pageviews: 63829
Average Earnings per 1000 Pageviews: $1.70

GB

April 17

¿Cómo averiguar la versión, service pack y edición de SQL Server?

Para poder averiguar ésto solo tenemos que ejecutar la siguiente consulta sobre el server de SQL (contra cualquier base de datos):

SELECT  SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

y el resultado es como éste:

9.00.3042.00    SP2    Enterprise Edition

GB

March 18

"JVM Error 102" Hermoso error de la Blackberry

El fin de semana pasado me he encontrado (luego de desinstalar una aplicación de una Blackberry 8700g) con que mi teléfono al encender me proporcionaba una pantalla blanca con un pequeño mensaje de error: "JVM Error 102" y un link que decía "Reset". Esto me hace acordar a la famosa fatídica pantalla azul de Windows. Luego de realizar la acción sugerida (y la única por cierto) que era resetear me eoncontré con que mi hermoso aparato recurría a la misma pantalla cada vez que se encendía.

Buscando un poco en Google me encontré con una descripción del error que copio textualmente y resalto la parte más divertida:

102
Invalid code in filesystem

The system checked the COD files in the device for modification and determined that a problem exists with one or more COD files.

If all loads fail, a build process error might occur (a problem exists with signing the COD files).

If a user action on the device resulted in this problem, the reset cycle is continuous because the code in the filesystem has been corrupted. The only recovery method is to wipe the device and restore a new system.

Básicamente, el único método es WIPE (es decir hacer mierd... todos los datos del dispositivo, incluyendo el sistema operativo del mismo) y volver a instalar TODO (incluyendo el sistema operativo que borramos antes) !!!!!

Llamé a la gente de CTI, los cuales muy amablemente (y cómo única solucion) me mandaron un "Paso a Paso" para hacer esto: reventar el aparato y resucitarlo después.

Indico paso a paso la solución, propuesta:

  1. Conseguir la aplicación javaloader, viene con el Blackberry JDE
  2. Darle wipe
  3. Reinstalar el Sistema Operativo con el Desktop Manager
  4. Que DIOS te ayude.

Mi Solución:

image

  • Analizando el EventLog se puede ver cuál módulo está produciendo el error:

guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:57:56 2008  severity:0 type:2 app:System data:System Startup
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:57:56 2008  severity:0 type:2 app:System data:VM:INITo=238592,s=4096,h=15293972,i=0
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:57:56 2008  severity:0 type:2 app:System data:VM:FSTHs=2088960,d=1044480,f=393216
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:57:56 2008  severity:0 type:2 app:System data:VM:FSNHv=1
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:57:59 2008  severity:0 type:2 app:System data:VM:LINK sxo_pf4_2
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:57:59 2008  severity:0 type:2 app:System data:Class 'javax.microedition.io.file.FileConnection' not found.
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:57:59 2008  severity:0 type:2 app:System data:Linker error: 'VerifyError' for sxo_pf4_2
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:58:03 2008  severity:0 type:2 app:System data:VM:PSRBv=0
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:58:04 2008  severity:0 type:2 app:System data:VM:-GC RX=12.6M,RF=12.6M,FF=37.7M,HF=4502,OS=5.3M,ON=29.5K,OR=0,FR=0,HR=0,IS=0 RA=1.8M,RS=0,RN=0 TA=0,TS=0,TN=0 PA=5.3M,PS=5.3M,PN=29.5K R0=580.3K,1=29.6K,10=104,12=118.8K,15=16K,16=1.1M
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:58:04 2008  severity:0 type:2 app:System data:-GCt=52,b=0,r=0,g=2,u=0,c=0
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:58:04 2008  severity:0 type:2 app:System data:VM:PSIDv=701279
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:58:14 2008  severity:0 type:2 app:System data:CMM: verifyHash failed for YahooGo(3943)
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:58:14 2008  severity:0 type:2 app:System data:JVM Error 102
guid:0x97C9F5F641D25E5F time: Mon Mar 17 09:58:14 2008  severity:0 type:2 app:System data:Invalid code in filesystem

 

  • Cómo se puede ver aquí el módulo que está produciendo el problema es la aplicación YahooGo
  • Borramos el módulo YahooGo con el javaloader: javaloader -usb erase -f YahooGo

image

  • Y EL APARATO VOLVIÓ A LA VIDA !!!

 

Espero que nunca tengan el mismo problema y si lo tienen que este post les sirva. De más está decirles que esto es la solución a MI problema y de NINGÚN MODO GARANTIZO que le vaya a funcionar a otra persona.

GB

March 13

Error al hacer Deploy de un modelo BAM en BizTalk

 

ERROR: Failed to open BAM Excel workbook file - 'c:\Archivos de programa\Microsoft BizTalk Server 2006\Tracking\BAM Cube 003.xls'.
Formato antiguo o tipo de biblioteca no válida. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

Cuando queremos realizar el Deploy de un modelo de BAM en un Excel y se nos presenta el error detallado arriba lo único que tenemos que hacer es cambiar la configuración regional, en mi caso seleccioné "Inglés (Estados Unidos)" (como no podía ser de otra manera) y todo funcionó a la perfección.

Error:

image

Cambiamos la configuración regional:

image

Resultado: OK !

image

Fuente: http://www.topxml.com/BizTalk-Server/re-55169_Failed-to-open-BAM-Excel-workbook-file--Old-format-or-invalid-type-library.aspx

GB.

January 14

LINQ y otras yerbas de C# 3.0

En este post expongo con un ejemplo simple, la impresión de números pares del 1 al 20, algunas características nuevas de C# 3.0 como LINQ, Lamba expressions, Extensions methods, comparadas con algunas características que ya estaban incluidas en C# 2.0 como Anonymous Method en contraste con nuestro viejo y querido foreach. Es un ejemplo muy simplista, pero sirve para ilustrar las nuevas características incorporadas en la nueva versión de C#.

Código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LINQ_Lab_1
{
    class Program
    {
        static int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };

        static void Main(string[] args)
        {
            PrintHeadLine("For each sample - C# 1.0");
            PrintEvenNumbersForEach();

            PrintHeadLine("Anonymus Method - C# 2.0");
            PrintEvenNumbersAnonymusMethod();

            PrintHeadLine("Anonymus Method 2 - C# 2.0");
            PrintEvenNumbersAnonymousMethod2();

            PrintHeadLine("LINQ - C# 3.0");
            PrintEvenNumbersLinq();

            PrintHeadLine("Lambda Expressions - C# 3.0");
            PrintEvenNumbersLamba();

            PrintHeadLine("Extension Methods - C# 3.0");
            PrintEvenNumbersExtensionMethods();

            PrintHeadLine("Anonymous Type - C# 3.0");
            PrintEvenNumbersAnonymousType();

            Console.ReadLine();
        }

        static void PrintSeparator()
        {
            Console.WriteLine("---------------------------");
        }

        static void PrintHeadLine(string text)
        {
            PrintSeparator();
            Console.WriteLine(text);
            PrintSeparator();
        }

        /// <summary>
        /// Utilizando la clasica version con Foreach
        /// C# 1.0
        /// </summary>
        static void PrintEvenNumbersForEach()
        {
            /* Viejo y querido foreach
             * */
            foreach (int n in numbers)
                if (n % 2 == 0)
                    Console.WriteLine(n.ToString());
        }

        /// <summary>
        /// Utilizando delegados y metodos anonimos
        /// C# 2.0
        /// </summary>
        static void PrintEvenNumbersAnonymusMethod()
        {
            /* Aqui se esta utilizando un delegado que representa un metodo anonimo
             * con el codigo: "return n % 2 == 0"
             * */
            int[] evens = Array.FindAll(numbers, delegate(int n) { return n % 2 == 0; });
            foreach (int n in evens)
                Console.WriteLine(n.ToString());
        }

        /// <summary>
        /// Utilizando Anonymous Method 2
        /// C# 2.0
        /// </summary>
        static void PrintEvenNumbersAnonymousMethod2()
        {
            /* La version mas compacta: 1 sola linea

             * */
            Array.ForEach(numbers, delegate(int n) { if (n % 2 == 0) Console.WriteLine(n.ToString()); });
        }

        /// <summary>
        /// Utilizando LINQ
        /// C# 3.0
        /// </summary>
        static void PrintEvenNumbersLinq()
        {
            //Expresion LINQ al mejor estilo SQL
            var evens = from n in numbers
                        where n % 2 == 0
                        select n.ToString();

            foreach (string n in evens)
                Console.WriteLine(n);
        }

        /// <summary>
        /// Utilizando Lambda Expressions
        /// C# 3.0
        /// </summary>
        static void PrintEvenNumbersLamba()
        {
            /* Aqui se esta utilizando un expresion lambda
             * que se puede interpretar como "para todo n que cumpla con la regla n % 2 == 0"
             * podemos ver el codigo representa una expresion más natural:
             * "Buscar todos los n en numbers que cumplan con la condicion n % 2 == 0"
             * */

            var evens = Array.FindAll(numbers, n => n % 2 == 0);
            foreach (int n in evens)
                Console.WriteLine(n.ToString());

        }

        /// <summary>
        /// Utilizando Extension Methods
        /// C# 3.0
        /// </summary>
        static void PrintEvenNumbersExtensionMethods()
        {
            /* Aqui utilizamos Extension Methods y una expresion lambda para
             * el predicado
             * */

            var evens = numbers.Where(n => n % 2 == 0);
            foreach (int n in evens)
                Console.WriteLine(n.ToString());
        }

        /// <summary>
        /// Utilizando LINQ y Anonymous Types
        /// C# 3.0
        /// </summary>
        static void PrintEvenNumbersAnonymousType()
        {
            /* En la clausula "select" de la expresion LINQ creamos un tipo anonimo
             * conformado por el miebro "n" con el valor del entero y otro miembro
             * "name" que representa a n.ToString().
             * Luego utilizamos "n.name"
             * */
            var evens = from n in numbers
                        where n % 2 == 0
                        select new { n, name = n.ToString() };

            foreach (var n in evens)
                Console.WriteLine(n.name);
        }

    }
}

Resultado:

image

Performance:

Aquí podemos observar que en cuestiones de performance el método más veloz es el foreach, mientras que el que peor rendimiento posee es del de creación de un tipo anónimo.

image

 

GB.

January 11

FILESTREAM uno de los nuevos tipos de datos en SQL Server 2008

Hace poco tiempo estuve involucrado en algunas iniciativas para sistemas de gestión de documentos (una solución que incluía MOSS 2007 + BizTalk Server 2006 + SQL Server 2005) y me di dejó rondando en la cabeza el poco soporte para bases de datos documentales que tenía SQL Server hasta ese entonces, dado que la única solución para almacenar documentos es el clásico tipo de datos binario (BLOB). Esto no es conveniente ya que es un tipo de datos muy genérico para almacenar objetos binarios y no tiene ningún soporte específico para gestionar tal columna como un documento.

Ahora SQL Server 2008 incorpora un nuevo tipo de datos denominado FILESTREAM (en realidad es un atributo que se coloca a un tipo de datos varbinary) y que permite que el contenido de esta columna se almacene directamente en el File System (utilizando NTFS) lo que mejora notablemente la performance y llevando cualquier restricción de tamaño a los límites del File System. Esta columna se comparta como cualquier BLOB, solo cambia el almacenamiento físico utilizado.

Esta característica sumada  a la posibilidad de crear columnas BLOB remotas (que pueden almacenarse en dispositivos específicos para este fin) mejorará las capacidades intrínsecas de SQL Server para dar soporte a mejores soluciones documentales.

Tabla comparativa de las opciones para manejar BLOBs

image

 

GB.

View more entries