August 2007 - Posts

Al parecer, el estándar ha sufrido algunos alti-bajos... no por mencionar que en México las votaciones fueron muy complicadas y algo des-organizadas...

Lo que me intriga, es la manera en que muchos miembros del comité ... presentan su negación a la votación de OpenXML con un sustento tecnológico bastante argumentable (y lo más chistoso, es que se presentaron muchas cartas en contra del formato usando EXACTAMENTE el mismo sustento... copy-paste en diferentes machotes).

En USA, las votaciones fueron a favor de OpenXML en general. Podemos ver en el sitio de las votaciones, como quedo la tabla:

Date Organization Yes No Abstain Not Yet
TOTAL 12 3 1 0
08/16/2007 00:00:00 Apple Inc X
08/23/2007 00:00:00 Department of Homeland Security X Comments
08/16/2007 00:00:00 Electronic Industries Alliance X
08/16/2007 00:00:00 EMC X
08/23/2007 00:00:00 Farance, Incorporated X Comments
08/16/2007 00:00:00 GS1 US X
08/20/2007 00:00:00 Hewlett Packard Co X
08/24/2007 00:00:00 IBM Corp X Comments
08/23/2007 00:00:00 IEEE X Comments
08/21/2007 00:00:00 Intel X
08/16/2007 00:00:00 Lexmark International X
08/17/2007 00:00:00 Microsoft X
08/20/2007 00:00:00 NIST X
08/23/2007 00:00:00 Oracle X Comments
08/22/2007 00:00:00 Sony Electronics X Comments
08/16/2007 00:00:00 US Department of Defense X

En México, estuvo algo díficil el debate. El resultado general de las votaciones fué mas o menos basado en la siguiente tabla:

    • Votos a favor por miembros: 56
    • Votos a favor por empresas que aun no son miembros: 23
    • Votos en contra por miembros: 36
    • Votos en contra por empresas/personas que aun no son miembros: 2
    • Votos en contra recibidos por miembros físicamente: 28

Como era de esperarse y como nos encanta a los mexicanos, no nos pudimos poner de acuerdo a la primera y hasta se gritaron "voto por voto" jeje ...

Entonces... todavía queda pendiente que se recuente el padrón de miembros del comité; se re-cuenten los votos ya envíados y se envíen estos a CANIETI, el organismo gestor de todo este proceso...

Ya veremos que sucede con este tema...

Cheers! Beer

Posted 08-28-2007 3:23 PM by chris | 3 comment(s)
Filed under:

Bueno pues mi Opml de FeedDemon murió... y como no la tenía sincronizada con el Newsgator Online (por codo y no pagar) pues perdí todo...

Pero bueno como les había comentado, encontré en el directorio una serie de archivos con extension RSS, que revisando cada uno de ellos me encontré que eran los canales que tenía previamente guardados dentro del FeedDemon. Así que me dí a la tarea para recuperarlos y esto fué el resultado: Rikaba (recover en el lenguaje japonés Stick out tongue).

Una aplicación de consola que barre todos los archivos de ese directorio, los abre y mediante una expresion de XPath busca ciertos elementos y reconstruye tu Opml .... solo que sin directorios pero bueno... de lo perdido, lo encontrado.

Para la aplicación hice dos funcioncitas, una que se encarga de "encontrar" todos los archivos en un directorio mediante los objetos DirectoryInfo y FileInfo.

static void IterateDirectory(string directory)
{
    DirectoryInfo di = new DirectoryInfo(directory);
    FileInfo[] fi = di.GetFiles("*.rss");

    foreach (FileInfo file in fi)
    {
        Console.WriteLine(ParseFile(file.FullName, @"c:\pruebas\test.opml"));
        Console.WriteLine(String.Format("Procesando {0}...", file.Name));
    }
    Console.ReadKey();
}

Ahi se manda a llamar a otra funcioncita que se llama ParseFile que lo que hace, es abrir el archivo, buscar un par de tags e insertar tags dentro del archivo Opml de salida, definido por el segundo argumento.

static string ParseFile(string filename, string outfilename)
{
    FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.Load(fs);
    XPathNavigator nav = xmldoc.CreateNavigator();
    XmlNamespaceManager man = new XmlNamespaceManager(xmldoc.NameTable);
    man.AddNamespace("fd", "http://www.bradsoft.com/feeddemon/xmlns/1.0/");

    string value = nav.SelectSingleNode("rss/channel/fd:xmlUrl", man).Value;

    XmlTextWriter xmlwriter = new XmlTextWriter(outfilename, System.Text.Encoding.UTF8);
    xmlwriter.Formatting = Formatting.Indented;
    xmlwriter.WriteProcessingInstruction("opml", "version=\"1.1\"");
    xmlwriter.WriteStartElement("head");
    xmlwriter.WriteEndElement();
    xmlwriter.Close();
    fs.Close();

    return value;
}

Y eso fué todo.

Cheers! Beer

PD. Revisando el código, me dí cuenta que no es la última versión pero ya me dió flojera echarlo a andar... el chiste es que esa es la teoría sobre lo que tienen que trabajar para recuperarlo ... está muy sencillo.