Monday, December 19, 2011

I want to connect emesene to msn through the new xmpp service howto

Actually, things are quite simple! [1] And no, before you continue
reading, this is NOT working as you could expect.
After reading this [2] i've seen you don't need to provide a secret
key in order to authenticate with the live xmpp server so i registered
the "emesene" app in windows live and set the "mobile" flag.

If you'd like to try playing a bit with it just grab this emesene
branch [3] and follow the instructions below:

You can now use the client_id i obtained
"client_id": "000000004C070D1E",
in order to do an oauth2-auth with your favourite browser (remember:
this is a quick and dirty howto, it's not meant for everyday msn
users!).
Just navigate to:
https://oauth.live.com/authorize?client_id=000000004C070D1E&redirect_uri=https://oauth.live.com/desktop&response_type=token&scope=wl.messenger
wl.offline_access
(yes, space included..not sure if wl.basic or whatever else is needed
too) and after being prompted for your user/pass you'll see the url
just changed to something like
https://oauth.live.com/desktop#access_token=YOUR_ACCESS_TOKEN&token_type=bearer&expires_in=3600&scope=wl.offline_access%20wl.messenger


Note down the access token thing and run the emesene branch i told you
about before

Now, providing you already have some sort of live id (note: i tried
this only with an @hotmail.com address), say YOUR_USER at whatever.com,
you select msn-xmpp from the service's dropdown menu and put
YOUR_USER at messenger.live.com as user, and the previously-noted-down
long and ugly access_token as password.
Click connect and after a few seconds you shall see some of your
contacts (and some nice exception infinite loop in console, yay)

I included the latest xmpppy available in that branch so it can be
easily tested..but i added a really tiny modification to sasl auth in
order to support msnxmpp's
elif "PLAIN" in mecs:
sasl_data='%s\x00%s\x00%s'%(self.username+'@'+self._owner.Server,self.username,self.password)
node=Node('auth',attrs={'xmlns':NS_SASL,'mechanism':'PLAIN'},payload=[base64.encodestring(sasl_data).replace('\r','').replace('\n','')])
else:
becomes
elif "PLAIN" in mecs:
sasl_data='%s\x00%s\x00%s'%(self.username+'@'+self._owner.Server,self.username,self.password)
node=Node('auth',attrs={'xmlns':NS_SASL,'mechanism':'PLAIN'},payload=[base64.encodestring(sasl_data).replace('\r','').replace('\n','')])
elif "X-MESSENGER-OAUTH2" in mecs:
sasl_data='%s'%(self.password)
node=Node('auth',attrs={'xmlns':NS_SASL,'mechanism':'X-MESSENGER-OAUTH2'},payload=sasl_data)
else:

I don't plan to work on it, i just wanted to see if there was
something that could be done with minimal effort so feel free to try,
improve and why not completely integrate (e.g. in-emesene oauth2 with
some sort of webview, fix xmpppy with msnxmppy etc.) it in upstream
emesene!

I forgot to add: if you'd like to start some xmpp hacking with python,
i asked around and people have been recommending SleekXMPP

website: https://github.com/fritzy/SleekXMPP

real world example usage: http://poezio.eu/en/index.php

if someone is interested you could write an extension just like
"emesene/e3/jabber" and maybe supersede xmpp usage


tl;dr: msn supporting xmpp is really nice, but having it 100% working
is not so easy

Have fun,
Riccardo (c10ud)

___

[1] - which doesn't mean you'll have it working 100%
[2] - http://blogs.gnome.org/xclaesse/2011/12/19/updates-on-xmpp-support-in-msn/
[3] - https://github.com/c10ud/emesene/tree/msn-xmpp

Thursday, December 08, 2011

Emesene meets social networks

Hi all,

as you can see from the last work, a new interaction with Facebook has been made. Now you can receive you Facebook messages directly from your Facebook session in Emesene and clicking on the email icon you can access them.. This opens a lot of new possibilities to extend Emesene, making a full integration between Emesene, Google+ and Facebook, using the relative APIs written in Python, for example we can write a plugin for fetching events on social networks, take further info on our contacts and showing them in the profile box, set our social avatar as Emesene's avatar etc... Well, this post is for all developers interested in helping to grow up Emesene in this direction, so if you're one of them please join us. Here it is a screenshot of the last work:


This shows the login procedure for acquiring the token to get messages. This procedure is generic for every Facebook application, let's going to see how to do it :)

An introduction for developers

In this section I will explain how I developed the Facebook part, so you can see how to create your Facebook application and integrate it in Emesene easily. I' ve never worked with Google+ APIs, but should be something similar.

To use Facebook APIs you need to get a token from Facebook, logging in with your account. Before continue reading, I advice to read some doc about Facebook auth: http://developers.facebook.com/docs/authentication/ .

1. First of all we need Facebook APIs written in Python, I choosed pyfacebook and modified it. You can find them in /emesene/e3/jabber/pyfacebook.

2. Once you've get the API KEY and SECRET KEY from Facebook, you can use pyfacebook in this way:
client = Facebook(API_KEY, SECRET_KEY, oauth2 = True, app_id = API_KEY)
connection_url = client.login(REDIRECT_URL, required_permissions="read_mailbox, offline_access")
Specifying a REDIRECT_URL where you will be redirect when process finish its work and all permission our application needs.

3. Instead of using the default web browser, I created a customized web view that is able to intercept all the urls, so parsing them we can receive our token to use APIs. You can use it in this way:
dialog = extension.get_default('dialog')
dialog.web_window(title_string, connection_url , url_receive_callback)
where url_receive_callback is your function parsing every url searching for the token. Have a look at the method _on_social_request in /emesene/gui/gtkui/MainWindow.py

4. We can finally store the token in the user's configuration. I did this
self.session.config.facebook_token = token_found
5. Now it's time to develop a method to remove the token and restart the auth process.

That's is just an introduction, some modification on this component may happen, but won't interest the whole structure. We are waiting for your help dudes :)

Regards,

=.4.S.= Andrea Stagi

Saturday, November 12, 2011

emesene 2.11.11

Hey everyone,

Almost 2 months have passed again, so it was time for a new release. The release is a bit earlier than planned, because of some problems with the msn protocol. All problems related to this should be fixed in this new release.

The source can be found at [tarball | zipball]. Just download, extract and run! The new version for Ubuntu will be available in a few hours in our ppa. Downloads for other platforms should also be available soon.

Now let's see what new features there are in this release:

- Connection issues with the msn protocol are fixed
- Better google talk and facebook support (you'll need to have python-xmpp installed to see it)
- A more stable plugin/theme download system
- Unity launcher support for Oneiric
- Settings are also saved when you log out of your desktop account
- A working Windows installer (again)
- Updated translations

The aforementioned Facebook support improvements include an experimental method for Facebook mail support. This method will be improved in the next emesene version.

Thanks to everyone who contributed, be it in the form of code, translations, packages, bug reports, or just keeping us awake in the irc channel. For everyone who wants to help with translating emesene, the translations can be found at launchpad. The template will be updated every Saturday, meaning that there could be new strings to translate every week. All translations you make will be included in the next release.

So have fun with the new release, and if you happen to find any bugs, please report them.

Regards,

Sven

Tuesday, November 08, 2011

emesene is unable to connect

There have been some changes in Live Messenger servers which broke most of unofficial Live Messenger clients.

We are currently investigating the issue and provided a temporary workaround that seems to be working for most of the people.

Just download this archive HERE, extract and run the emesene script inside.

It is a development version of emesene, it won't touch anything/no need to install it. Just download, extract, run and see if it works for you.

Once we will be 100% sure that the fix works we will release a new version of emesene.

Stay tuned.

Thursday, September 29, 2011

emesene 2.11.9 is out!

Here we come again with a brand new release after a long window of development!
First of all, download links (source) for the impatients: [tarball|zipball] download, extract, run!

Now back on topic, a small list of notable changes:

- Download plugins and themes from within emesene (directly from github)
- A new (and better) Plus! color parser
- A new and improved version of papyon (msn library) inside emesene (with lots of fixes, no more external dependency required)
- A contact management list for the msn protocol (the good ol' Privacy Lists)
- Lots of custom emoticon fixes
- Almost 200 user reported issues were fixed!


Downloads for specific platforms (e.g. Windows, OSX, Linux distros) will come as soon as someone does the dirty work required, as usual...or you can get involved and do the packaging yourself!

Have fun,
-- c10ud


Tuesday, September 13, 2011

to all emesene-git users

From now on, our own version of papyon will live inside emesene tree inside emesene/e3/papylib/papyon

If you're a git user, you won't need to update the papyon submodule anymore, core devs will take care of that if needed.


A quick reminder on how to stay in sync with emesene-git, quoting the wiki:

You’ll want to stay in sync with the upstream master branch on emesene/emesene. The easiest way to do this is by adding it as an remote branch

git remote add upstream git://github.com/emesene/emesene.git (it’s just an alias)
Now, make sure you don’t have uncommitted changes! (git status is your friend)
git pull upstream master will merge the upstream repo into yours. If there are conflicts, solve it or git reset --hard

If you want to contribute fixes/features to our own version of papyon, take a look at https://github.com/emesene/papyon
That's the repo we are using for simple fixes and other stuff, from which we'll backport with straight-copy inside the "real" emesene tree

Have fun,
-- c10ud


Tuesday, August 16, 2011

emesene screencasts to help the new devs

hey!

thanks all the people that joined to the emesene group to start helping with emesene.

as a guide I decided to record some screencasts with some information that will be useful for you.

here are the first two





please provide ideas for future screencasts so I create them and all benefit :)

PS: if the second video doesn't load it's because is still being processed

Monday, August 08, 2011

call for wannabe developers

hey! I'm talking to you, you think "I would really like to contribute to emesene, but I don't know python/programming that well".

yeah, you!




we get lot of comments like this, we know you are there and that you want to help us.

did you know that I started emesene to learn python?

do you know that the first two developers learned python while fixing bugs on emesene?

did you know that one of them was 14 years old when he started?

did you know that he became the Benevolent Dictator of emesene for more than a year before our mighty cloud replaced him?

did you know that one of those developers now works full time with python and the other is studying computer science?

did you know that almost all actual developers learned python while helping emesene?

did you know that they starting "fixing bugs here and there" and now are full time contributors?

did you know that we also learned a lot about english, open source, licences, project managment and software in general?

now you can't say that we are all python ninjas that were born knowing python, almost 100% of us learned python hacking emesene.

this should give you the idea that yes, you can learn and you can contribute.

if you know some programming/python and want to help then join!

if you always wanted to contribute to an open source project then join!

if you know someone with the above conditions you can help by making him read this!

how to start?

join the emesene users group in google groups, present yourself, from where you are, which is your level in programming and python (it doesn't matter if the answer is almost none, it's just to see how we can start helping you) and let's start hacking!



see you there

Sunday, July 31, 2011

emesene 2.11.7

Another month has passed (actually two, but who cares), so here we are with the new release: emesene 2.11.7!

A new version of course bring a new set of features, so here's a list of the most important ones:

- Plugins and themes can be loaded from ~/.config/emesene2/[plugins|themes]
- Avatars for Google talk and Facebook
- Mail access in Google talk
- A new Windows installer
- Unity launcher support
- Fully supported Adium theme set. All the themes are now Adium style
- Conversations don't close when the user is disconnected
- Updated translations
- Again, more than 100 user reported issues were closed

Thanks again to everyone who helped making this release possible, being it by contributing a huge amount of code, or by simply submitting a bug report. Every contribution helps to make emesene better.

Of course we can always use some extra people that help develop emesene. You might think it too hard for you, but if I may take myself as an example: about half a year ago I didn't even know python yet, and here I am writing you about the new emesene release. It's not that hard really, but coding still takes time, which is not something we have a lot of. That's why we need you.

Now, to download emesene 2.11.7, the source is available as a zipball or tarball. Just extract and run!

Other packages should be available soon. Just watch the download page.

Tuesday, June 21, 2011

do you use mac os x? want to help emesene? want to be the creator of a plugin? here is some help

itunes needs a "currently playing" plugin

let's do this, I give you almost the complete recipe, you build it as a plugin and everyone is happy

on the shell:

sudo pip install appscript
python

now on the python shell:

>>> import appscript
>>> itunes = appscript.app('iTunes')
>>> current_track = itunes.current_track
>>> current_track.name.get()
u'Temporary Like Achilles'
>>> current_track.artist.get()
u'Bob Dylan'
>>> current_track.album.get()
u'Blonde on Blonde'

now fetch emesene's code, see how the other "current playing" plugins are made, create the itunes version and send us a pull request!

Friday, June 10, 2011

a place for emesene users to meet

hi!

for some time users have been asking where was the forum and which was the replacemente for the forum.

since maintaining all the infrastructure by ourselves was taking a lot of times for the contributors of the project and we had several "entry points" to the project we decided to consolidate.

the result is the blog as a place to be up to date on what's happening with the project, get information, downloads, links etc.

and github for development, issue tracker, wiki etc.

all this is working really nice, except for the fact that there is no place for end users to interact with eachother.

after some discussion we decided to open the emesene users group on google groups

the idea of the group is to discuss/share things like plugins/themes and maybe small problems/fixes/workarounds.

we would also like to use that channel as a way to expose tasks that don't require lot of expertise, like translations, documentation, small bug fixes, improvement on code quality etc.

the rules are simple:

  • the channel is to talk about emesene, stay on topic
    • mark [OT] on the subject if you really think an off topic post should go to the list, to make it easy for people to filter those messages
  • english is preferred, that way we reach more people
    • if you really don't know anything about english mark your topic with the language ([es], [it], [pr]) so other people can filter those topics
  • be nice
  • help move common knowledge to the wiki or to a FAQ to point repeated questions there
  • help us promote interested people to developers

so, come over and let's talk about emesene

http://groups.google.com/group/emesene

this is all for now, I may expand this post as we go

Wednesday, June 08, 2011

Windows installer update

Hello fellow emeseners, this is syst3m. Most of you don't know me, and if you do that scares me a bit.

Anyways, if you are a Windows emesene user then you are probably familiar with some of my work. I am the guy that has been making the installers (and portable versions) of emesene since just before the release of 2.11.4.

Now for the real reason for this post.

There will be a new installer in 2.11.6!

I know it might not sound too exciting, but a lot of improvements have already been made to the installer to make it more user-friendly and Windows-friendly.





Some of the new features did make it into 2.11.5, but those were just added on to the existing boring installer.


emesene 2.11.6 features a completely re-written installer (and portable) script which include some new features as well as some improvements to existing ones.



Current Features:
  • Modern UI
  • Multi-language support
  • Added license, components, directory, welcome and finish pages
  • Clean uninstallation (registry friendly)
    • Optionally cleans up any older registry files
    • Optionally deletes config (current user only)
  • Checks if emesene is running when installer or uninstaller is opened
  • Added uninstall information to Add/Remove Programs
  • Ability to remove StartMenu Shortcuts
  • Slightly better compression (smaller installer size)

Planned Features:
  • Check installed version upon new installation

Other Windows changes that are present in 2.11.5 and newer are that shortcut icons now works in Windows Vista/7 and the config folder has been moved to APPDATA
(C:\Documents and Settings\{username}\Application Data on XP and
C:\Users\{username}\AppData\Roaming on Vista/7).

Sorry for any inconvenience in moving of the config file.

Before I go I just wanted to let you the users know that it is not hard to make contributions to emesene.
 
You don't have to be a developer or packager to help out, though they do help. 
 
It's as simple as submitting bugs, suggestions, and translating into a language you know. 
 
I started with minimal knowledge of python (still don't know much) but that didn't stop me from helping.

If you're interested in trying out windows experimental/development packages to try out new features, bug fixes, and my lovely new installer you have options. 
 
You can build your own packages using http://blog.emesene.org/2011/03/rough-guide-to-create-windows-packages.html and compiling using "emesene-installer-MUI.nsi" OR you can user pre-built packages made by yours truly at http://www.mediafire.com/emesene

Remember anything that is not a stable release should not be considered stable, and may include issues.

Bye for now. :)

- syst3m

marianoguerra: a huge round of welcome applauses for our new windows packaging overlord syst3m! 
 
(want to become our packaging overlord for other OS/distribution? join us at github and/or the mailing list and ask!)

Tuesday, June 07, 2011

Unity support


And there it is, support for the shiny new Unity Launcher available in Ubuntu 11.04+. You can now quit emesene by using the quicklist, and you'll never miss a message again, because the launcher will alert you and show the number of messages you haven't read yet.

Have fun!

Sven

Monday, May 30, 2011

emesene 2.11.5

So, developers have worked hard this month, and here we come with the new and shiny release: emesene 2.11.5!

look ma' i'm running the latest emesene version!

If you already tried/used the previous emesene-2 version (2.11.4), here's a small and readable changelog between the .4 release and this that tries to cover the tons of git commits we had this month:


- Experimental Qt4 gui (disabled by default: if you want to try it, run emesene with the -e main:qt4_main flag, and make sure to have python-qt4 around)
- Better support for Adium themes, including emoticon themes!
- Better working group chat
- Drag and drop support in chat window
- Ctrl+Tab support for switching tabs
- MSN groups chats support when using Adium themes
- Updated translations
- Lots of other bug fixes (so much we forgot about them? we fixed more than 100 user-reported issues!)

Thanks to all developers, translators, casual contributors, users, spammers, haters.
We hope our effort will be useful and appreciated, and that this new release will raise the interest in order to make the emesene ecosystem and community more powerful and capable of making the best instant messaging client you can think of!

Downloads incoming, check the dowloads page!
Source package (extract and run): zipball or tarball


p.s. unfortunately we haven't been able to have some fixes to the python-papyon library committed upstream, we recommend to stick with the 0.5.5 version and upgrade as soon as the 0.5.6 version comes out (we don't know when, unfortunately).

Monday, May 23, 2011

emesene gets a Qt4 gui

Gabriele "Whisky" Visconti a while ago started writing a Qt4 gui extension for emesene (yes, through our nifty extensions it is actually possible to support multiple gui toolkits) and today i'm here to say that i put his great work into emesene/master so that all our git users can try it and maybe improve it/help him fix stuff!

Actually, launching emesene with the Qt4 gui is really easy:
- install pyqt (debian/ubuntu: sudo apt-get install python-qt4)
- get a copy of emesene from git (so you'll be updated enough)
- run emesene: emesene -e main:qt4_main

Beware! This code is still a draft far behind the GTK+ one but it's a great start if you like Qt..and emesene of course (hint: almost-native look in every plaform anyone?). It is not meant for everyday use (yet?), but hacking on it should be real fun.

What are you waiting for? Just pull and updated copy of emesene-git and start hacking!

Monday, May 02, 2011

some news

the consolidation of the sites is finished:


emesene.org doesn't exist anymore, all the content of the site is moved to the tabs you see above


forum.emesene.org was disabled since it was full of spam and google was threatening me to disable my google account because of the pr0n

about emesene 2 and some complaints:

  • yes, we know emesene 2.11.4 is a little rough around the edges, but we needed to make a release to reach a wider audience, get more feedback and hopefully more developers (help us!)
  • emesene 1 won't come back, anyone who wants to keep it alive may fork it but we encourage you to make emesene 2 as good (and better) than emesene 1, after all emesene 1.6.3 was a result of years of polishing, give emesene 2 a go and help us reach that level, I'm sure it will become better than that in the following months. Don't waste energy on two projects when we can focus on the latest version.
  • we still need packagers! the main reasons of instability are package related, help us get great packages to avoid wasting energy on things that are not related to emesene's code.
  • saying that it sucks, or that you will switch to other client if we don't do what you want doesn't help a lot, please help us by recruiting more developers and that way the problems will solve quicker and you will eventually get what you want
and finally many thanks to the people that made this release posible, in order of contributions:

  • Riccardo (C10uD)
  • Mariano Guerra
  • cando
  • arielj
  • 4ndreaSt4gi
  • Davide Lo Re
  • Sven (Sbte)
  • karasu
  • dequis (dx)
  • Jose Rostagno
  • SWOriginal
  • Hung-Yen Chen
  • nenemfromhell
  • hammered
  • Richard Somlói
  • j0hn (j0hn soplete)
  • Ivan25
  • André Lopes
  • Adolfo Fitoria
  • ariel
  • xisco
  • WayneSan
  • Otacon

Thursday, April 28, 2011

emesene development continues (!)

me (c10ud) calling my friend (Homer) from my Ubuntu box
That's it, i got this (for those wondering: audio/video calls) sort of working. Of course this is not in emesene-2.11.4 for obvious reasons, but i enabled the thing in latest git HEAD (if you're using emesene from git, you know what i'm talking about).

Before you start crying and celebrating, here's some things you may need to know (quot.):


- only receiving is supported (so if you start a call, you'll only see (hear) the other party)

- tested only in local LAN with latest Windows XP's Live Messenger (so no strange network configurations or NATs or strange clients or whatever)

- will only work with papyon>=0.5.5, python-gstreamer and where X11 is available (due to the use of XIDs, not sure how to do this in other platforms)

- we (as emesene-team) are not interested in this feature, so we are not really pushing it, just showing users it's possible to do it. If you think you can complete/fix it, just do it and everyone will be happy (and we will integrate your fixes in emesene, of course!). Basic receiving seems to be working, efforts must be concentrated in the gstreamer part of sending audio/video and a nice gui around webcam/microphone configuration.

Everyone not interested, just have fun with the great 2.11.4 release! (HINT: Official stable PPA coming soon for non-natty users!)

I'll close this post with a quotation from the great book of emesene:

"..and then thee'll have audio/video calls,
  but thou shalt not annoy thy developers."
    -- c10ud, the book of emesene 2:11-5

Wednesday, April 27, 2011

emesene 2.11.4 released!

It's been a while since we last released a new version of emesene.


Frankly speaking, the good old emesene 1 was really awesome but a burden to mantain since it grew without following a precise path. It served our messaging needs since 2006 (who said girlfriends?), and it's been a long road since (Luis) Mariano first published his little project on teh internets.

Now, after two years of intense developing from scratch here comes the new version of our favourite (not-only) msn client; stabler, nicer, faster, stronger (?)

Impatient?

If you're an hardcore user, just download the emesene-2.11.4 tarball or zipball.

Windows user? The installer executable will arrive soon.
OSX Snow Leopard user can try this experimental dmg package.

As for GNU/Linux distributions, you'll find emesene-2.11.4 in Debian Testing and Ubuntu Natty Narwhal (enable natty-proposed repository), other distributions will probably come up to a solution on their own (hello Arch!). Let us know how you packaged emesene and we'll tell users!

Techy details, you won't need these in order to start chatting:

emesene2 design permits to keep the code clean and simple while allowing any sort of extension of the core functionalities.

As an example, please notice you can now also connect with Facebook Chat, GTalk or any other XMPP/Jabber network through the python-xmpppy extension. You won't have the same features you'll get connecting to the Live Messenger network, but if you can get your friends switch to a free(-er?) network, you can keep emesene (of course if you like it!)

Another example is that if you have python-webkit bindings you will get a really nice adium-like output for your chat, if not it will fall back to the default output implementation using gtk's TextView.

The nice thing about this is that you can write your replacement for any part of emesene (even the complete ui!) so if you don't like something, just override the default extension, load it, spread it, and if it's awesome enough we may include it. This allows a great degree of customization and to base discussions on working code, if some feature has more than one option then both can be available as extensions.

As for the Live Messenger network, the "papylib" extension will take care of it automagically through the great python-papyon library, the same as Empathy's (GNOME's instant messenger).

The nice bonuses of using this library over the usual self-made one are: complete p2p support, msnp18, great address book and msn profile handling. Being so widespread allows you, the user, to get the latest 0day fixes from your favourite distro (if you're using GNU/Linux of course) and new features as soon as we plug them into emesene.

The gui is done in GTK with pygtk, but ofcourse you can provide your own interface using . Just remember emesene and its protocol libraries need python 2 (>= 2.6), so no py3k or similar (for now ;).

Enough said.
Happy chatting,
the emesene team

UPDATE: added OSX links and emesene in Ubuntu 11.04 in natty-proposed repo.

Thursday, April 21, 2011

Call for translators, again.


Hello,
some of you could know me since i'm the guy that spams a lot of commits in git and closes your tickets without even giving you a chance to reply -- however, since today our friend (Luis) Mariano gave me the ability to talk to you through his good ol' emesene-msn blog (is this still true by the way? Now emesene supports Facebook and GTalk too, wow m3n!) so i can sometime post status updates or requests/messages to users.

Now, let's stop the chit-chat and get back to emesene. If everything goes as planned, it will be released in the following days. I tought a small number of RCs were a good thing to do before releasing the new version, so you have a few days to quickly test the latest stuff we fixed and, more important, translate in your own language the parts of emesene that are still missing some i18n love.

Here's the launchpad page we are currently using for managing translations:
Hurry up, time's almost up if you want emesene localized in your own language!

Greets,
Riccardo aka c10ud


Tuesday, April 12, 2011

About Sync emesene 1 -> emesene 2 (guest post from Andrea Stagi)

This is the first guest post in this blog written by Andrea, a new developer that is doing awesome contributions to the project, let's give him a round of aplausses and some recognition for his work

here is his post:

Hi everybody,

finally I can announce you that the synchronizer between emesene 1 and
2 is quite ready and safety :) At the moment this tool only import all
conversations and your personal avatars from emesene1 (one time only,
supposing that you'll use emesene 2 after its installation ;) )...
The remaining features to implement are:

1. Import all avatars of other contacts

2. Import all emoticons saved in emesene1

We're also still working to make it faster even with huge databases...

If you want to contribute, please have a look to files in e3/synch and
the SyncTool in gui/gtkui that uses an EmeseneSync object...

Wednesday, March 30, 2011

call for translators!

for those wanting to help with translations here you have:

https://translations.launchpad.net/emesene/trunk/+translations

of course some devs, packagers and testers are needed too* :)

* in that order ;)

Thursday, March 17, 2011

rough guide to create windows packages

here are some notes I made while making the last packages for windows.

with this and using my repo you should have a fully working version (with some bugs, but those are from emesene and note because of the packaging)

download the following files and install them in the order they appear


download the following two and follow the instructions below



  • extract the webkit file on:
    • C:\Python26\Lib\site-packages\gtk-2.0\runtime\
    • if it asks for an override select "No"
  • extract the pywebkit file on:
    • C:\Python26\

install the following files


open the git shell and do

git clone https://github.com/emesene/emesene.git
cd emesene
git submodule init
git submodule update

cd emesene
cp ../dlls/* .

cp -r e3/papylib/papyon/papyon/ . 
cp -r e3/jabber/xmppy/xmpp/ .


set the python path (rigth click on "My Computer", click on properties, go to
the advanced tab, click the "Environment Variables" button, on the "System
variables" section select the "Path" variable and click edit, on the "Variable
value" dield go to the end and add ";C:\Python26" without the quotes and click
ok to close all the dialogs. Open a new shell and go to the directory where you
where before and do

python emesene.py

creating the installer

first you need to override the boot_common.py file from py2exe to avoid displaying an annoying dialog at exit.

to do this you have to copy the file in windows/boot_common.py on the emesene repository to the py2exe directory, in my case in the command line (using the git command line that has come cool unix tools) is:

you only need to do this once.

cp ../windows/boot_common.py /c/Python26/Lib/site-packages/py2exe/

and then

cp ../setup.py ../ez_setup.py ../emesene.ico .
python setup.py py2exe
cp *.dll ../dist/
cd ../dist/

copy "etc" "lib" and "share" from C:\Python26\Lib\site-packages\gtk-2.0\runtime
to emesene/dist

on the git shell it would be

cp -r /c/Python26/Lib/site-packages/gtk-2.0/runtime/etc/ .
cp -r /c/Python26/Lib/site-packages/gtk-2.0/runtime/lib/ .
cp -r /c/Python26/Lib/site-packages/gtk-2.0/runtime/share/ .

then remove some unused files to make the installers smaller

cd share/
rm -rf aclocal/ dtds/ doc/ icon-naming-utils/ locale/* gtk-doc icons/Tango/scalable/
cd themes/
rm -rf Default/ Emacs/ Raleigh/
cd ../..

you can still remove more files (like unused icons)

now right click on the .nsi files on emesene/ and select "Compile NSIS Script"

they will create the installer and the protable versions for you

and that's all

Wednesday, March 16, 2011

I will leave this here ;)




pygtk all in one installer for windows, someone wants to give it a try?

here is a all in one installer for pygtk, if someone wants to give it a try and try to build emesene for windows it would be cool

https://github.com/dieterv/pygtk-installer

instructions to setup git and github on windows

here I found some instructions to setup git and github on windows:

http://help.github.com/win-set-up-git/

enjoy!

Thursday, March 10, 2011

where to start to help with development

hi!

this is a small guide for people that want to start helping us in emesene 2.

the idea of this guide is to start with small tasks until you feel confident with the code base.

first read the description of the project here:

http://emesene.org/docs/

then read PEP8, the python coding style guide we follow: http://www.python.org/dev/peps/pep-0008/

then install pylint on your computer and all the tools needed to code (a text editor, git etc.)

the configure your editor to replace tabs to 4 spaces, this is important.

then you can do two things:

  • go to the issue tracker and look for an easy ticket, and try to fix it
  • start running pylint on modules and fixing the warnings and error that appears*
if you have any doubt you can subscribe to the developers mailing list here: http://lists.emesene.org/listinfo.cgi

when you start developing you should create a github account, fork emesene/emesene from here https://github.com/emesene/emesene make the changes and make a pull request.

if you want to be ordered you could create a branch for each improvement, do a pull request of that branch and when accepted, merge the branch to master.

this is not needed but if you want to improve your git skills this workflow can help you

I hope this helps, if you have any doubt post a comment, I will update this post if some questions are useful for all.

* pylint reports some errors that are not in fact errors, you will learn to recognize them after some time.

Wednesday, March 09, 2011

emesene organization

some organization news.

I created 4 new repositories in emesene organization at github, those repositories are:

  • emesene supported plugins
  • emesene community plugins
  • emesene supported themes
  • emesene community themes

you can see them here: https://github.com/emesene

the idea is to separate the repositories that contain plugins and themes from the main emesene repo so changes in that repo are only code related and related to emesene.

this also gives a place where plugin and theme developers can join and discuss things using git's wiki and issue tracker.

the idea is to have a a set of really useful and well maintained plugins and themes in the supported repos but also have a more "liberal" repository where new themes and plugins can be submitted and people can discuss around them.

I will be moving the themes and plugins from emesene to the correspondent repos in the following days.

come over and help us!

Friday, March 04, 2011

Screenshots

Login Window


Login Window Loading


Main Window


Conversation Window

status update

hi!
just a post to inform some updates:

  • emesene 2 developments continues, slower than we would like to since we are lacking developers (help us!)
  • emesene 2 was accepted in the next releases of debian (sid) and ubuntu (11.04) those are awesome news, but we need to speed up development so we have the best client when those distributions release
  • we are talking with "cloud" (our benevolent dictator for some time* TM) on consolidating all the sites and interaction around this blog and github (you can see a teaser now)
  • I started doing small changes to make emesene 2 as forward compatible with python 3 as we can to ease the migration when the time comes
just a reminder, don't report bugs on the comments, use gihub for that (look at the links at the right column)

* "some time" is defined by cloud

Wednesday, January 19, 2011

developers of the month

sadly, this month has been pretty quiet for the project

but not completely quiet thanks to some new developers that are starting to code for emesene 2 and helping us improve it.

thanks to Andrea Stagi, j0hn and sbte for their help!

this shows that people can start helping with small improvements and move to more complex ones once they get used to the code.

what are you waiting?