Monday, April 27, 2009

small (really small) weekend update

Tomorrow I have a final exam so this weekend I was pretty busy, I made some small changes on emesene.

  • I added back the "View information" entry to the contact menu, that allows to see log information about the contact that was selected like status, nick, message and chat history. Still needs some work but it's a start
  • now the output of the Contact Information window is obtained from the extension module, so you can change the widget to show the chat history
  • moved the status button at the side of the password field to make it easy to move from the user to the password field pressing only one tab
  • now the emotes are added as text to the input on the conversation when they are selected from the emote window on the toolbar, also the input widget gains the focus back after the emote is added
just some small fixes that were needed, I hope next week I can resume my work on mesinyer.

some small quirk that you would like to report? leave a comment.

Friday, April 24, 2009

Everybody love screenshots (?)

this post is to show some things with screenshots.

the first thing is that thanks to j0hn we know that emesene 2 works on windows, I've never tested it but thanks to him and a small patch emesene 2 is working there.

on the other side, yesterday I installed ubuntu jaunty and I can tell you that the notifications work fine on jaunty :)

so here are some screenshots









Sunday, April 19, 2009

preference dialog implemented

Well, this weekend I've worked on notifications, sounds and preference dialog, I almost finished the implementation of all of them, still some polishing to do but the 3 work only with some glitches. I also wrote some code to handle blocked and removed contacts on the contact list, but I've not tested it too much.

NOTE: on ubuntu 8.10 I have a gui lock when the account has too many contacts, but not on debian lenny, if you test emesene 2 (after doing svn up :D) please comment saying OS version, gtk version and if the gui locks or not (I think it's a gtk bug but I'm not shure)

this time I made a screencast to show quickly the state of emesene 2:

Monday, April 13, 2009

Choosing distributed version control system

I'm thinking on choosing a Distributed version control system for emesene 2. To see what you think I've made a poll. Please try to answer all the questions if you want to be taken into account.

http://spreadsheets.google.com/embeddedform?key=ppqFrnGHLxeD_GAhNuzAEKg

Sunday, April 12, 2009

Weekend update

I've been a little lazzy this weekend but I've added some code/features to emesene.

the high level stuff: trayicon! :D

the low level stuff:

* now the signals are independent of gobject, they use the gui.Signal implementation (simple but enough for now). That means that some implementation that doens't use gobject won't need to use it
* added imports for dgb on all the modules that use it so I can profile the application
* removed gstreamer on the sound extension because it ate all the cpu
* fixed a bug when someone sent messages using \r\n insted of \n
* removed the sound when you opened a conversation

the low level stuff needed a lot of refactoring, that is why you don't see a lot of changes, but a lot of code was moved/removed/written.

as all the stuff on emesene 2 the tray icon implementation is an extension so you can change it with your own. I will write a post about how to do it when I have some time.

PS: I know notifications, blinking trayicon and so on :)

Saturday, April 04, 2009

New stuff

I implemented sound notifications for emesene, also moved all the notification code to a method that will allow to change debug settings on the fly and not to restart emesene, also you will be able to see the debug on a window or dump it to a file. Also proxy, http method and proxy authentication implemented on e3 and yabber and integrated with the config dialog, so now you can use emesene 2 with those settings.

If you have a proxy/proxy with authentication, please test it and report bugs.

Sunday, March 22, 2009

First real life example of extensions

Since the commit I just made you can select the protocol to use on preferences! :) this is the first example of extensions that where added to the code this week.
Basically each protocol (and almost all on emesene) is an extension that can be replaced, on the 'session' extension category we have two extensions, gtalk and msn, you can switch between them or even add another extensions for other protocols. you could in fact download an extension to support a new protocol*

also all the parts of the gui are extensions, so if you don't like a part of the gui you will be able to code/download an extension and replace it.

In a future post I will show how to replace parts of the application with custom extensions**

also as you can see the preference dialog on the login window has another options, this options are stored and loaded from the config file but are not yet used by the protocols. My next work is to add support for those.

* we are focused on being a MSN client but if someone wants to; he can make his own extension to support another protocol, that won't hurt anybody since it's not part of emesene.

** the extension framework is being developed so it's not yet stable.

Thursday, March 19, 2009

Funny thing about refactoring

I have been refactoring the code of mesinyer since the start of the week, I've moved a lot of code, I've rewritten all the code for menues and toolbars to support the new extension framework.
The code now is more modular, separated and allows to replace any part of the gui with a custom part (an example of that when all the work is done).

what is the visible difference between the code from last week?
If you use it you will note no difference (I hope :D), since refactoring is about enhancing the code without modifying functionality.

This post is just to let you know that a lot of work is being made on the project, and if you don't see it on the gui/functionality it's because we are setting up everything to make mesinyer the most extensible/cusomizable IM client around :D.

some news:

* roger is working on Offline messages for mesinyer
* dx is working on p2p for mesinyer
* C10ud is evaluating some patches to be added to emesene 1.x

Wednesday, March 04, 2009

we love closed protocols (?)

it seems that MS has changed another thing on the protocol that made some of you to have problems authenticating on emesene 1, I applied a patch made by Giuseppe Bagnato and changed the hosts to authenticate to the same as emesene 2. That should fix the problems, please do svn up on trunk and tell me if you sill have problems.

Giuseppe Bagnato also added support for proxy authentication, thanks to him!

Saturday, February 21, 2009

We are alive

It may seem that the development of emesene 2 is a little staled, that may be because february is a busy month for me, but under the hood there is some movement. :D

we have mailing lists now!

http://lists.emesene.org/ there are 3 mailing lists, I recommend almost all of you to suscribe to emesene if you want, dev is for developers or people who want to contribute code, that means that you already know python, if you want to start to learn, then ask on the emesene mailing list.

We have been discussing the extension/plugin architecture for emesene 2, we want to make almost all stuff on emesene 2 to be an extension that can be replaced by others. That would mean that if you don't like the current menu, the user panel, the contact list, the conversation window or any item inside it you can create an extension, register it and your component will replace the default component (selecting it on the preference dialog).
We want to have this well defined so we don't change the api and the extensions/components don't need to be patched .
It also means that you wont need to send patches to us in order to make a change, you just copy a component, make your changes and register it/distribute it under a different name.

that is our idea, now we must make it right :)

Tuesday, February 03, 2009

Emesene 1 plugins

many people ends into this site searching for emesene plugins and finds an old post about emesene 1 plugins, so I will update it to be useful.

first of all, emesene 1 comes with a set of supported plugins, the updated versions are located here:

http://emesene.svn.sourceforge.net/viewvc/emesene/trunk/emesene/plugins_base/

there are also unsupported plugins that you can also use, they are located here:

http://emesene.svn.sourceforge.net/viewvc/emesene/trunk/unsupported-plugins/

you can find a page on the wiki with a list of plugins here:

http://emesene.org/trac/wiki/Plugins

if you know of more plugins post a comment with the url, author and a description.

PS: I said plugins a lot so google index this page higher than the last one ;)

bye

EDIT:

Orfeo C reminded me about this repository of user contributed plugins, thanks!

http://code.google.com/p/emesene-plugins/

emesene forum is back!

thanks to roger and dx for fixing the forum
it's located here:

http://forum.emesene.org/

PS: the blog will still be used to keep track of the development and to make anounces.

Sunday, February 01, 2009

Information update

About empty contact list:

we have a problem with passport authentication, it happens for some people, we will look into it, thanks to Panagiotis Koutsias for the hint.

Edit: thanks to roger duran who fixed the problem!

About the jabber support:


the suport is still enabled by code (on emesene.py uncomment the line 46 and comment the line 47, that was easy! :D), in the future it will be enabled on login preferences.

about a roadmap for emesene 2:

not there is no roadmap :D

about bugs on emesene 1:

yes there are lots of bugs, but right now only I and dx are coding, and we are focused on emesene 2. If someone want to take on emesene 1 maintainance I will help them to start with the code.

about pydns and related:

you don't need that package and no bug will be fixed by installing it, it's just an optional package for jabber support

about needed packages:

you only need python and pygtk to use emesene, no extra package needed

about the location of emesene cache:

it's located on ~/.config/emesene2/ inside that there is the global config file and a folder for each account.

Wednesday, January 28, 2009

Formatting and toolbars added to emesene 2


During this weekend I rewrote the Menu implementation from scratch, that means that all the menus, popups and toolbars are new, I also implemented the conversation toolbar and select font, select color and clear buttons functionality, to make them useful I also implemented format message sending and display on the input and the output.

Thursday, January 22, 2009

some eyecandy

well, this is just the foundation for something that I have in mind

here is just what I hacked today, now I have to implement the conversation theme loader, manager and that stuff, and all that maintaining compatibility with the ones that don't have python-webkit.


I know, the theme is ugly, is what I did in 10 minutes to make the screenshot :D

Update, I made this theme and now the emoticons are shown ;)


Tuesday, January 20, 2009

A request implemented

an user asked to allow custom group sorting, another asked to sort the users by log size, so i implemented a new feature on the contact list that allows to provide "weights" to the users and groups to override the default order, if an user has more "weight" than another group, then it will be above the other, the same works for contacts, so you can change the weights by hand or use a plugin to calculate the weights for you.

a screenshot showing the feature is here:

as you can see, the group Otros is over the top and then comes emesene, the common order should be Amigos, (other groups..), Otros, (other groups..), emesene. also Roger is on the top of the group, and then comes dx, is easy to see there since they should be ordered first by status and then by display name.

This feature can be used to "sink" users you don't want to see assigning negative values ;)

take into account that I only implemented the feature on the contact list and the store/load from the config, no gui available (yet) to modify the weights.
I will implement it in some days I guess, right now I'm advancing on a personal project (I hope you hear about it in the next months ;)

Friday, January 16, 2009

Responses to requests and questions

Windows version

A lot of people asked for a new windows version, so I published a new one, check the post below :D

Clear button on the seach bar

The text is removed when you hide the search bar, it may be added later, but I need to add a dependency (libsexy)

Try icon

of course I will add it :D

Contact list sorting

emesene 2 sorts the contact getting the display name in this order:
  1. alias if exists
  2. nick if exists
  3. finally mail
so the contacts are ordered by those fields in that order, that means that if the contact has an alias, that will be used to sort, if not the nick will be used and if not (should not happen) the mail will be used.

Offline grouping

on emesene 2 the show by status option has no groups, it's a list of contacts sorted by status (and inside each status by the rules explained above). In this way the offline people are at the bottom, you can hide them unchecking "show offline", and there you go, "collapsed" offline group :D.

Open downloaded files with double click

seems reasonable :D

Qt front end

I don't know Qt, I would like to learn it, and trying to make a Qt front end seems like a nice excuse to me ;), but for now I will focus on the base and the gtk front end.

"Donate now" on Help

Nice idea, I got a donation only once, $10 from C10uD (thanks!, I will get that money and buy a beer sometime :D)

Get themes/plugins from a repository

I will add that.

Modify global configuration and inherit for new accounts

already done on emesene 2 :)

Save conversation on invisible mode

I will remember that :D

Hide blocked contacts (that is what I understood)

nice feature!

Resize large emoticons

I will try to remember it when p2p is implemented

Lower cpu usage with to many custom emoticons

animating a gif uses a lot of CPU I will see what can I do.

ugly maximized login window

on version 1 or 2?

what could be done to make it less ugly?

import/export logs

yep

search logs by client

ok..

Custom group sort

will see if I can implement it.

Better support for self on contact list

yep

Drag and drop for display picture

I need to implement p2p before but yes ;)


Disclaimer: Some of those requests are for features that are not implemented yet and will take a long time to be implemented, so please you will have to make me remember if I don't implement them

Emesene for windows release!

Thanks to j0hn who made a new release of emesene for windows, both portable and installer are provided, you can find both on emesene's sourceforge page

take it while it's hot!

Tuesday, January 13, 2009

small yet useful features requests

in a comment juancarlospaco requested a small but useful feature, that is to not display emoticons on the conversations, but just the shortcuts, I added it as a feature with 4 lines of code, so I thought that there may be some small but useful features that you would want to see on emesene 2.

no huge features allowed, post comments, I will see which of those I can add easily, the hard ones will be in my todo list, the ones that I can't implement will be explained here.

comment!

MSN protocol resources

if you want to learn how the msn protocol works, here I give you some links to read :)

The tools I use to debug and find new features are wireshark and ospy, both great tools, ospy is easier to use, but you need windows and WLM

Orfeo C recommended SocketSniff, I did't tested it, but it may be useful for someone