mercredi 23 juillet 2008

First screenshots

Hello guys!

I update my blog today, even if I would like to show you more about my work. Indeed, first I would have liked to post some screenshots about the whole file transfer (sending AND receiving functions). Currently the send file function works fine, but in order to implement the file receiving function, I have to improve the current implementation of the file transfer. Then, I have already some screenshots:














When you send a file to your buddy, this window is displayed (fileTransferManager). In this window you see all download/upload (fileTransferDialog) you have performed.

As I said previously, the file receiving function works, but we can't see the progress (only in the console):


The next step is to improve the current implementation of the fileTransfer project, then I will improve some small GUI's things and I will begin to work on a new protocol (I hope before the next week).


vendredi 11 juillet 2008

Update

In the last check in, many things were changed, added or modified.

First the OperationSetFileTransfer:
In this class, two methods were added (addFileTranserListener and removeFileTransferListener). Then, we can add or remove listener of file transfer easily from a file transfer listener vector. Furthermore, in order to triggered events, I have added a fireFileTransferEvent function. Therefore, we can fire the FileTransferEvent method when we need. The FileTransferEvent are defined in …/service/protocol/event.

We have for the moment (it could change in the future) 7 events:
o FileTransferCancelEvent -> when the user cancel the file being transfered
o FileTransferDoneEvent -> when the file has been correctly received
o FileTransferFailEvent -> when the file transfer operation has failed
o FileTransferNegotiationEvent -> when we have began talking to the other side
o FileTransferPerformingEvent -> when we start transferring files
o FileTransferProgressEvent -> notify the progress of a file being transferred
o FileTransferWaitingEvent -> notify that we are not yet connected

Furthermore, I have created a new plugin. In this plugin I have 4 classes:
o FileTransferActivator -> which activate our filetransfer plugin
o FileTransferDialog -> which is the main GUI of the fileTransfer. This class will be improved.
o FileTransferProtocolListener -> which implement ServiceListener and RegistrationStateChangeListener. Thanks to this class, we can add or remove FileTransfListener when a RegistrationStateChange occured.
o FileSendingListener -> this class implements the FileTransfListener in order to get the Events which are fired in the OperationSetFileTransfer.

Presently, we can only see the file transfer’s progress in the console. But I can't get the fileTransferDialog in the plugin (FileTransferListener.java). The problem is that when I add a new fileTransferDialog or a method on an instance of a fileTransferDialog, I can't get fileTransferEvents anymore…

lundi 7 juillet 2008

Project updates

For now, I encountered a lot of troubles in my project. At first I have implemented the filetransfer - thanks to the sc-filetransfer project - in the current version of Sip-communicator and the file transfer “is working” but not entirely. Presently, I have problems with each library:
-Joscar (Icq, AIM) -> this library is working; I can send and receive files
-Ymsg (Yahoo!) -> this library is working at half, I can only send file but I can’t receive, and the file transfer is proceeded through an intermediate Yahoo server.
-Smack (Jabber) -> this library is working at half, I can only receive files but I can't send and I don’t know why… I have read about this issue on the Internet and I have followed the how to from igniteRealtime (they created smack), but it doesn’t work for the moment.
-Jml (MSN) -> this library doesn’t works for the moment, it seems to me to more complicate than the other but it must work in the future.

At first I have wished to fix each library before trying to create a progress bar for the file transfer. I have begun with Jabber, we have work on it with my mentor, but the problem is more complicated than it looks like. Then we thought it would be easier to try with a working protocol such as ICQ… The problem with ICQ is that we haven’t the joustsim Javadoc. Indeed, joustsim is a library used in ICQ for the file transfer, but this library doesn’t provide any Javadoc… and without Javadoc the progress of the project is slow. Indeed I have to understand at first how the library works.

With all these unexpected problems, I’m a little behind time. Now I focus only on the ICQ protocol and the file transfer. I’m presently developing the transferListener of the project. This listener is used in order to know the progress of a file transfer (both the sendFile and the receiveFile). This listener will indicate what the current state of the filetransfer is. Refused, accepted by the user, and what is the progress’ percentage. I am developing the progress for the sendFile function and after, I will develop the progress for files receiving.

Eclipse and debugging tool.

Today I would like to speak about another tool that my mentor introduced me. I had never used a debugging tool, before my GSoC project, but I admit that it's very useful.

Indeed, until now I used some things less efficient such as “System.out.println” with the variable I would like to know his state… Often, with the println method, I don’t have all information I need to understand what is happening and why… Furthermore, it happens so quickly that I don’t see what exactly I would like to see. But now, thanks to Ulrich (my mentor) I have a new weapon to hunt problems… THE eclipse DEBUGGING TOOL! Ulrich explained me in live (chat messages) how use this tool and what I can do thanks to this tool.

I would like to say to all teachers who will read the text: “Teach to your student how they can use a debugging tool rather than how they can use VI…). I should have learned how to use this debugging feature earlier.

mardi 1 juillet 2008

A word about SVN

Today I would like to speak a little about SVN.
Before my GSoC project, I didn't know this tool. Indeed, I have never had the opportunity to work with a version control system. But now, the first thing I would like to say is that is an extraordinary tool.
Thanks to SVN, you can manage many versions of file easily. You can see when the last modifying of a file has been made, who has modify it and what are the changes.
Thanks to this tool, we can have history of what has been made and then it is easier for the others developers to know what you have made and why. They can also check the project’s progress.
In my opinion, another great utility of SVN is than you don‘t need any more to transfer a copy of your work on an USB key in order to work on your home computer. It's finished the time where you have multiple copies and versions of a file, finish the time where you forgot to save a file or erase another. Now, you have just to commit your work before to go back to your home, and retrieve your work later.
I think that now, I could never don’t use it (at least, for big projects).