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

Not so frequently asked questions

disclaimer: the text was written really fast, expect some weird sentences :P

emesene cam/p2p/voice/custom emoticons/display pictures/handwrite/etc support


emesene 2 will support them some day, but they will not be implemented on the next alpha/beta release.
why? because I prefer to have a stable and maintainable base from which I can add that support later and keep the application stable and clean.
That was one of the failures of emesene 1, I wanted to add all the possible features and I never refactored or designed the application in a way that will make it maintainable, now there are bugs that are really hard to find/fix because of that, and you see that right now, no one wants to fix/maintain emesene 1, and that is not good. I want a documented and well structured base so I can get help from more coders that can understand and modify emesene 2 without having to read a mess of code.
So, I will make a release that will let you chat, do contact list operations, log and some preferences, and when that is polished I will start to work on more advanced features, some of them may come fast since we implemented them on emesene 1, some of them may take some time since MSN protocol changes all the time and voice/video are really platform dependent.

the will be available, but not in the next weeks.

report bugs

nobody is maintaining emesene 1 except some cleanup made by dx, if you want to report bugs go to emesene.org/trac but don't expect a fast response.

emesene 1.0.1 on windows (empty contact list)

there is an internal build of the latest trunk for windows it has some bugs that must be fixed, j0hn is working on that, I will see if we can make a release of it the next week (I didn't knew that people used emesene on windows.. :)

mac version

there are some instructions here http://emesene.org/trac/wiki/MacOSX my idea with emesene 2 is to make a cocoa version, but I have used a mac only 10 minutes on my whole life so if i dont get access to one of them maybe someone else will have to do it.
The code on emesene 2 is structured to make easy to implement other protocol support and other toolkits so if someone is interested..

emesene and python 3.0

python 3.0 is a transition release, not every library that we use is supported on it right now, we will code it using python 2.6 with the -3 switch and when all the libraries are available and python 3 is supported on the main distributions we will make the switch.

emesene 2 multiprotocol??

no, emesene 2 will not be multiprotocol, emesene 2 will be a MSN client, but since MSN is closed I feel like I'm helping to keep people using MS products, and since I use a Gtalk a lot lately I decided to test if e3 was designed as I thought to support jabber, I made the basic gtalk support on one night so it didn't consumed too much resources :D.
If you use the revision prior to Gtalk support you will see that nothing changed, that's because emesene 2 is still an MSN client, but now we add Gtalk support, that means that emesene 2 is not intended as a jabber client, you have gajim, pidgin and others for that, but only. Emesene 2 will not support other protocols, just those two and I won't sacrifice any MSN feature for Gtalk.

  • If a feature is on MSN and not in jabber it will be implemented on MSN and deactivated on Gtalk mode.
  • Advanced features of jabber will not be implemented if there is no MSN counterpart. (use gajim for that, it's a great client)
  • No more protocols supported
  • No multiaccount support, you either use one MSN account or one Gtalk account
  • MSN by default, Gtalk support changed on settings
and if you see, it's not hard to have more features than gtalk ;)

language support on windows

no main developer has windows installed on his machine so it's hard to test and add windows features, and language support doesn't work out of the box for us, if someone wants to be the windows maintainer, they are welcome :).

if you have more questions..

Tuesday, January 06, 2009

do you see something strange?


well, that's my gtalk account... ;)

Sunday, January 04, 2009

One question.

What would you like to read on the next post of this blog?

if you have some doubt or something you would like to know about the project or about something related, please comment and ask for it, I will try to post about the ones that find useful for the readers.

I expect the comments.

Saturday, January 03, 2009

How to test development versions of emesene?

If you want to test development versions of emesene, then this is your post! :P

A development version is one that is not yet released, and can be on different stages, for instance:

  • Alpha versions: not all the features available, unstable
  • Beta versions: almost all the features there, needs testing.
  • Release candidate: will become final version if no big bugs are found during testing.
on emesene we have a stable version (1.0.x), an unstable version (1.1.x) and an alpha version (code name mesinyer, a.k.a emesene 2).

All those versions are stored on our version control system that can be found on sourceforge (http://emesene.svn.sourceforge.net/viewvc/emesene/).

to test one of this versions you need to have a subversion client installed.

on linux you can install it from your repositories, something like

sudo aptitude install subversion
su -
yum install subversion

and so on..

on windows you can download a really nice client called tortoise svn

the first thing you need to do is to download the version you want to test, the 3 versions above are located at:

  • emesene 1.0.x: http://emesene.svn.sourceforge.net/viewvc/emesene/tags/emesene-1.0/
  • emesene 1.1.x: http://emesene.svn.sourceforge.net/viewvc/emesene/trunk/emesene/
  • emesene 2: http://emesene.svn.sourceforge.net/viewvc/emesene/trunk/mesinyer
these URLs are used to view the repositories.

on linux you run the "checkout" command that downloads the sourcecode for the first time:

svn co http://emesene.svn.sourceforge.net/svnroot/emesene/tags/emesene-1.0/ emesene-1-x

svn co https://emesene.svn.sourceforge.net/svnroot/emesene/trunk/emesene emesene

svn co https://emesene.svn.sourceforge.net/svnroot/emesene/trunk/mesinyer emesene2

depending on which version you want to download.

now that you have the code, cd to the folder and run emesene
  • python Controller.py # to run emesene 1
  • python emesene.py # to run emesene 2
once in a while you may want to update the folder, that means, to download all the changes that where made to the repository. To make that, cd into the folder and then do:

svn up

that will update all the files.

Thursday, January 01, 2009

emesene 2 alpha 1 screencast