Sunday, August 12, 2007

Database logger in progress

I've payed attention to libdbi, because I'm really like it's database independency and I think this is really what we need :)

On Ubuntu everything is really simple, but for Windows I had some problems.

For building Window's Pidgin we use Cygwin and gcc from MinGW.
Pre-compiled libdbi and libdbi-drivers binaries from the official site are built by Cygwin gcc, so
this libraries are not what we want for Pidgin. Thus we need rebuild them
using MinGW gcc.

After severl days work I got libdbi and mysql driver which needn't cygwin DLLs. So my test example passed successfully.

Now I'm currently working on Windows implementation of Database Logger, but really it doesn't matter, because it'll take a little time to make *nix version.

For simulation of asynchronous work with DB, I've used new thread and mutex for thread synchronization.

For Windows implementation I've choosen glib's threads API. We can do so, because on Windows GTK+ is necessary library

Sunday, July 22, 2007

GSoC midterm passed

I'm think that I'm on track with Remote Logging, so everything will be all right :)

Several days ago I installed Ubuntu Feisty Fawn, configured and built Pidgin. So now I test my work on several platfroms: Windows XP and Ubuntu.

Having Ubutu is really important, because now I can test Pidgin as well as Finch. 

Thursday, July 12, 2007

Hundredth commit

Today I've made my hundreth commit working on Remote Logging implementation for the best IM client Pidgin.

You know that Pidgin uses Monotone version system control, to tell you truth I haven't experience in working with DVSC (Distributed Version System Control), but I have with SVN and CVS and the difference is really big definitly.

So now Monotone seems for me really good VSC and I like it. 

Saturday, July 7, 2007

Rewriting Pidgin code that uses blocking log functions

Pidgin doesn't use threads, so Pidgin's UI maybe frozen by long time operation (like viewing all logs or database operations)

So we definitly need nonblocking log API.

I've just implemented almost all nonblocking log functions, and now I'm rewting Pidgin code that uses old log functions.

It's not simple find and replace, because nonblocking log functions widely use callbacks, so we should change current logic in such way.

Friday, July 6, 2007

Database logger will be implemented!

At present moment I have made a decision. I am goint to implement database logger instead of Gmail based or Google Talk based loggers.

Database logger will be usual logger as HTML or plain text loggers, but it need nonblocking log API. And now I am working on rewriting this API.

As for as other loggers, I am sure that when we'll have database logger it is not hard to implement file-based remote logging.

Tuesday, June 26, 2007

Which remote logging will be more useful?

I have difficult choice. What kind of remote logging should be implemented first.

At present moment we have:
  • File-based remote logging (ftp, sftp, dav, ...)
  • Database remote logging (MySQL, SQLite, PostgreSQL, ...)
  • XMPP remote logging or Google Talk based remote logging.
The last choice was preferable for me early, but after discussion with my mentor Richard Laager, this variant is not seems so good as before because:
  • We don't know how exactly GTalk implements XEP-0136.
  • It may be incompatible with other XMPP servers later.
  • I don't know other XMPP servers which implement XEP-0136.
So, as Richard said that "database logging is still a really common request" I think this way is really good decision.

Sunday, June 24, 2007

QIP logger new features

New features were added to previously presented QIP logger. So now they are:

  • Purple compatible logs.
  • Diving logs into collection of messages corresponding to one chat session.
  • Perfect work with russian symbols.

I hope QIP logger will be merged with main Piding branch in few days.