A Vala e o desktop estão prontos?

3

Eu comecei a escrever o rss reader em Vala, mas não sei, qual sistema de banco de dados devo usar, não consigo me conectar ao couchdb e o sqlite funciona bem, mas eu gostaria de usar o couchdb por causa do ubuntu one. Eu tenho natty com as últimas atualizações

public CouchDB.Session session;
    public CouchDB.Database db;
    public string feed_table = "feed";
    public string item_table = "item";
    public struct field {
        string name;
        string val;
    }

    // constructor
    public Database() {
    try {
    this.session = new CouchDB.Session();
     } catch (Error e) {
           stderr.printf ("%s a\n", e.message);
        }

    try {

         this.db = new CouchDB.Database (this.session, "test");
         } catch (Error e) {
           stderr.printf ("%s a\n", e.message);
        }

        try {
        this.session.get_database_info("test");
        } catch (Error e) {
           stderr.printf ("%s aa\n", e.message);
        }

         try {
          var newdoc = new CouchDB.Document ();
        newdoc.set_boolean_field ("awesome", true);
        newdoc.set_string_field ("phone", "555-VALA");
        newdoc.set_double_field ("pi", 3.14159);
        newdoc.set_int_field ("meaning_of_life", 42);
        this.db.put_document (newdoc);    // store document
        } catch (Error e) {
        stderr.printf ("%s aaa\n", e.message);
        } 

relatórios

$ ./xml_parser rss.xmlCannot connect to destination (127.0.0.1) aa
Cannot connect to destination (127.0.0.1) aaa
    
por Oli 17.01.2011 / 10:30

1 resposta

1

Do ponto de vista do desempenho, gostaria apenas de dizer que o CouchDB talvez não seja a solução mais rápida quando comparada a algo mais maduro como o SQLite. Uma comparação do gwibber coloca o SQLite como apenas 10 vezes mais rápido .

Dado que um leitor de RSS faz muito mais SELECT do que INSERT , isso é algo de que você precisa estar consciente, pois afetará a capacidade de resposta da sua aplicação.

Em termos do seu código, comparando-o ao o exemplo "oficial" do Vala + Couch , você não está passando Nos detalhes da conexão, estou pensando se há algum problema com o mecanismo de detecção automática. O Couch é iniciado em uma porta diferente cada vez que é executado, mas você pode obter sua porta atual através do dbus :

dbus-send --session --print-reply --dest=org.desktopcouch.CouchDB / org.desktopcouch.CouchDB.getPortmethod return sender=:1.231 -> dest=:1.230 reply_serial=2

Eu não sei o Vala para isso, mas descobrir manualmente pode ajudá-lo a fazer a conexão inicial.

    
por Oli 17.01.2011 / 11:18

Tags