July 2007 - Posts

Si soy un geek. Un geek que usa demasiado el servicio de YouSendIt (me acuerdo que Venom alguna vez me lo recomendó) y quedé maravillado y lo usamos muchísimo en el día a día...

Bueno, lo que me encontré es que ya hay un cliente para Windows para enviar tus archivos. Eso esta chido ya que tiene auto-resume y se integra al Shell del Explorador (para darle Send To->YouSendit)

Por otro lado, la PC Suite de Sony Ericsson ya funciona correctamente con Windows Vista. Así que los que usan su celular para sincronizar a su Outlook y demás pueden usarlo ya en el mejor sistema operativo de Microsoft.

Y por último, todos mis feeds de FeedDemon se me borraron... así que ya perdí completamente mi opml después de haber pasado algunas horas organizandola en folders y categorías... ¡¡que pérdida de tiempo!! Pero lo que si hice fué meterme al directorio y sacar una serie de archivos .rss que contienen la información del caché de cada una de las subscripciones que tenía... Entonces lo que voy a hacer es lo siguiente: crear una aplicacioncita de consola en VS y voy a pasarle un directorio, voy a iterar por cada uno de esos archivos y voy a tomar los elementos necesarios para construir mi opml... aunque no van a quedar las categorias, me voy a ahorrar la chamba de cargarlos todos a mano. El tema es que tengo que encontrar un tiempecito para hacer esto... les voy a dejar el código fuente por si alguien lo usa :P

Cheers! Beer

Posted 07-31-2007 5:48 PM by chris | with no comments
Filed under:

Estuve haciendo unas pruebitas el fin de semana de cómo transferir un archivo ejecutable dentro de otro archivo ejecutable y a la vez, correrlo. Esto se hace mediante resources dentro de tu programa... les daré una visita guíada de como lograrlo:

embed

  1. Creamos un nuevo proyecto, en este caso esta bien un Windows Forms.
  2. Dentro del Solution Explorer, añade un nuevo Resources File.
  3. Dale doble-clic dentro del Resources File y te abre el diseñador de recursos.
  4. Haz click en Add Resource->Add Existing File.
  5. Busca el archivo en cuestión y añadelo a la colección de recursos. El archivo puede ser de cualquier tipo, para este ejemplo utiilizaremos un .exe.
  6. Al añadir el archivo, este aparecerá fisicamente dentro de tu proyecto; seleccionalo y modifica su propiedad Build Action como Embedded Resource. Esto es importante ya que si no lo hacemos el programa no encontrará el recurso.

extract

Ya tenemos listos los pasos para nuestro ejemplo, ahora lo que vamos a hacer es poner el código necesario para poder extrarlo. Veamos el siguiente código:

Tenemos que declarar a nivel de clase una variable privada que se le conozca como _assembly, la cual tendrá el ensamblado de donde queremos extraer el recurso. Sobre nuestra clase escribe:

private Assembly _assembly = Assembly.GetExecutingAssembly();

Después tenemos que obtener el nombre completo del recurso dentro del ensamblado, para eso creamos esta simple función que obtiene el nombre completo del recurso:

private string GetResourceName(string resourceName)
{
    string _name = null;
    foreach (string str in this._assembly.GetManifestResourceNames())
    {
        if (str.EndsWith(resourceName))
        {
            _name = str;
            break;
        }
        Console.WriteLine(str);
    }
    return _name;
}

Ahora lo que necesitamos es extraer el recurso de la aplicación, para eso creamos otra función que se encarga de extraerlo:

public void ExtractToFile(string resourceFileName, string outFilename)
{
    string fullName = this.GetResourceFullName(resourceFileName);
    if (fullName == null)
        throw new Exception(String.Format("No existe {0} en la lista de recursos",resourceFileName));

    try
    {
        Stream file = this._assembly.GetManifestResourceStream(fullName);
        FileStream outFile = new FileStream(outFilename, FileMode.Create);
        int bufferLen = 1024;
        byte[] buffer = new byte[bufferLen];
        int bytesRead;
        do
        {
            bytesRead = file.Read(buffer, 0, bufferLen);
            outFile.Write(buffer, 0, bytesRead);
        } while (bytesRead != 0);
        outFile.Close();
    }
    catch (Exception ex)
    {
        string msg = "Existió un error al intentar correr la instalación de Windows Live Toolbar\n{0}";
        MessageBox.Show(String.Format(msg, ex.Message));
    }
}

Ok, ya tenemos la función que nos obtiene el recurso dentro de la lista de recursos y la función que se encarga de extraer a un archivo el recurso incrustado. Ahora lo que tenemos que hacer es ejecutarlo.

run

Pon un botón dentro de la forma, en el cual escribiremos el siguiente código:

private void buttonClick(object sender, EventArgs e)
{
    string filename = "Toolbar.exe";
    string outfilename = Path.Combine(Path.GetTempPath(), filename);

    ExtractToFile(filename, outfilename);

    Process proc = new Process();
    proc.EnableRaisingEvents = false;
    proc.StartInfo.FileName = outfilename;
    proc.StartInfo.Arguments = "/Q";
    proc.Start();

}

La primera parte obtiene el nombre del archivo .exe que añadimos dentro de nuestro recurso. Después mandamos a llamar la función ExtractToFile() con el nombre del recurso de entrada y el nombre del archivo de salida envíandolo al directorio Temp() del usuario actual.

Después creamos un proceso de shell (System.Diagnostics) y le pasamos las propiedades para ejecutarlo.

Listo.

Ya tenemos un archivo incrustado dentro de otro ejecutable para su ejecución en tiempo de ejecución.

Cheers! Beer

Posted 07-22-2007 10:30 AM by chris | 9 comment(s)
Filed under:

Acá en la Roma hay un bazar bien cool de diseño gráfico, se llama proyecto Fusión.

Si andan por acá dense el rol, allá voy a andar; cosas chidas como moda, diseño, arte, espectaculos (performance, poesía, rock). De hecho voy a estar tocando en mi debut en un grupo de grunge Stick out tongue

Es solo este fin de semana, así no dejen de visitarlo y apoyar al movimiento artístico defeño.

Más info.

Cheers! Beer

Posted 07-20-2007 11:59 AM by chris | 1 comment(s)
Filed under:

Me encontré en este post estos pics de como se ven las versiones pirata del Office y Vista... ¿han visto estos en algún lado?

COUNTERFEIT COUNTERFEIT
COUNTERFEITCOUNTERFEIT

Cheers! Beer
Posted 07-15-2007 8:24 PM by chris | 1 comment(s)
Filed under:

"La lealtad es la virtud que ayuda a la persona a aceptar los vínculos implícitos en la adhesión al amigo, de tal modo que refuerza y protege, a lo largo del tiempo, el conjunto de valores que representa esta relación. La generosidad facilita al amigo actuar a favor del otro teniendo en cuenta lo que le es útil y necesario para su mejora personal. El pudor controlará la entrega de aspectos de su intimidad. La comprensión le ayudará a reconocer los distintos factores que influyen en su situación, en su estado de ánimo, etc.. La confianza y el respeto lleva al amigo a mostrar su interés en el otro y que cree en él y en sus posibilidades de mejorar continuamente."

Podemos decir que los buenos amigos luchan por superarse en sus virtudes exigiéndole también al otro comprensión y ejemplo. Hoy en día se le dedica poco tiempo a los amigos y esto no es lógico ni humano.

"La amistad es un amor recíproco que realiza la unión de dos voluntades, y por ello la de los sujetos. En el orden humano, cada uno de los amigos considera al otro como a sí mismo, quiere el bien del otro como el suyo, siente las alegrías y las penas del otro como las suyas, busca por último la presencia del otro porque es una alegría igual para ambos."

En el amor de amistad, el amante se ordena al amado como a sí mismo y se supone una cierta comunión de vida, unidad de pensamiento, de sentimiento y de voluntad (esto no quita que se puedan tener amigos con criterios distintos a los de uno). Esto es lo propio y formal del amor: la unión afectiva del amante con el amado. Me resulta interesante el modo de definir a los componentes de una amistad que utiliza Cruz Cruz, amante y amado, uno que ama y otro que es amado.

La tendencia del amante hacia el amado se orienta hacia lo que le es semejante. El amor es entre semejantes. Uno ama aquello que le es semejante. Un modo de semejanza es cuando los semejantes poseen lo mismo en acto. Este modo de semejanza produce un amor perfecto. "...Puesto que por lo mismo que dos seres son semejantes, al tener en cierto modo una sola forma, son como uno solo en aquella forma, a la manera que dos hombres son uno en la especie de la humanidad, (...) y por esto el afecto del amante se dirige hacia el amado como a sí mismo, pues cada uno - por su identidad ontológica o semejanza sustancial consigo mismo - se ama a sí mismo con amor natural perfecto, que es amor íntimo.

Un buen ejemplo de esto lo da San Agustín al hablar de la muerte de su amigo íntimo al decir que era "la mitad de su alma"; "porque yo sentí que mi alma y la suya no eran más que una en dos cuerpos, y por eso me causaba horror la vida, porque no quería vivir a medias, y al mismo tiempo temía mucho morir, porque no muriese del todo aquél a quien había amado tanto."

Todos debemos tener (y si no, deberíamos tener) experiencia de amistad, así que creo que todo esto sólo define de una manera más fina el concepto de amistad.

-- Jorge Antonini

Cheers! Beer

Posted 07-13-2007 8:02 PM by chris | with no comments
Filed under:

Asch.

Ya liberaron el primer Community Technical Preview para el API administrado de OpenXML para el NET 3.0

¿Por qué asch?

Por que lo hicieron hasta ahorita... tanto código que tiramos alrededor de esto y ya con unas cuantas líneas de código puedes remover, modificar o agregar partes... mire uste':

using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(docName, true))

{

MainDocumentPart mainPart = wordDoc.MainDocumentPart;

mainPart.DeletePart(mainPart.CommentsPart);

}

Cuando para hacer esto era... un chorro de código... fiuuuuu!

Los que lo usan, descarguenlo, esta bueno... y no olviden poner sus comments en los foros!

Cheers! Beer

Para los que andan usando Silverlight 1.1 o les interesa desarrollar en esta tecnología tienen que echarle un ojo a Astoria. Este producto te permite habilitar y exponer datos como un servicio de datos que puede ser utilizado por clientes web mediante el internet, basado en una tecnología REST.

Típicamente esta tecnología expone los datos vía HTTP request y mediante verbos normales, como el GET, POST, PUT y DELETE. Sin tener tanto dato en los mensajes, puedes usar formatos abiertos como XML y JSON (WCF 3.5 anyone?).

Puedes descargar el Astoria directamente desde este sitio.

También descargate el add-on para Orcas que incluye los client-script libraries.

Cheers! Beer

Posted 07-13-2007 3:24 PM by chris | with no comments
Filed under:

Microsoft también ha saltado al "bandwagon" de la telefonía celular... les presento el nuevo... OPhone... compitirá directamente con el iPhone de Apple y tendrá muchas características nuevas... chequen el video de presentación esta increíble.

¿A poco no quieren uno?

Cheers! Beer

Posted 07-12-2007 9:09 AM by chris | with no comments
Filed under:

Krees: el search provider de Internet Explorer 7.0 no esta cambiando con el Wizards...

Respuesta:

Ver video

Cheers! Beer


Posted 07-10-2007 11:26 AM by chris | with no comments
Filed under:

Si les interesa, Prodigy MSN esta regalando 30 emoticons para Live Messenger (más 3 adicionales rockeros de Live Earth).

Si te interesa descargalos entra a esta página o descarga directamente el programa.

Es un ejecutable que auto-instala todos los emoticons... les prometo que no tiene ningún virus ni nada parecido (yo compile la última versión) Smile

Cheers! Beer

Posted 07-05-2007 8:52 AM by chris | 3 comment(s)
Filed under: