The project main web page address is http://kmi.open.ac.uk/projects/buddyspace/ or http://www.buddyspace.org/. There's a subsection of it dedicated to developers on http://kmi.open.ac.uk/projects/buddyspace/developers/; containing javaDoc of source codes, etc.
Discussion forum about BuddySpace runs on http://buddyspace.org/BB-forum/.
BuddySpace is an open source, Java-based Jabber client. It supports following features:
and many more...
They are on http://kmi.open.ac.uk/projects/buddyspace/ under downloads.
There are many factors at play here, and you need to double-check the following carefully, and study the error message you get:
The method currently used in BuddySpace works in 2 steps:
It means you need an intermediate/proxy webserver that supports PUT command. More about file transfers in How does the file transfer in jabber work?
There're actually three possible proxies you could mean:
The current version of BuddySpace (2.5.2) doesn't use a socks server. However it will appear in the next version...
Yes! Generally you'll need at least Mac OS X. There's a special version for Mac (the BS*-mac.sitx) which bandles all necessary files into a Mac application and should be recognized by the OS. Alternatively you can download the zipped cross-platform version including the .bat and .sh files and then run BuddySpace running the .sh file or copying its contents into the unix console/shell window.
Yes, you can! Download the zipped cross-platform version including the .bat and .sh files. Change the batch to be executable (using chmod u+x buddySpace.sh) and run it (alternatively you can copy its contents into a console/shell window). It expects the java runtime installed and being in your path.
Previous versions of BuddySpace used conferencing namespace jabber:iq:conf. That became incompatible with the new JEP-0045 MUC so we moved to pure groupchat standard which is compatible with it although not providing all its functionality. In future we plan to implement MUC.
Versions of BuddySpace 2.5.1 and sooner used conferencing namespace jabber:iq:conf which is incompatible with the new JEP-0045 MUC. This was solved be removing the incompatible bits (moving to pure groupchat) from version 2.5.2.
The protocol extensions / features of BuddySpace client can in principle run on any server though they require at least the pub/sub component running (used for published maps, plans, geo-locations,...).
Follow the menu sequence: Jabber... Preferences... Alerts tab. You'll see that selecting 'Auto-popup new messages' brings new messages and chat windows directly to the front when this is checked (and 'grabs control of your mouse', which you may not want), whereas leaving it unchecked yields a more subtle alert (the tab is highlighted in red but remains in the background). Unchecking it should solve your problem.
SSL support is available since version 2.5.1
As far as having a public server for trying BuddySpace, the best thing is to download it, and in the login box opt for the following parameters:
username: [your choice]
password: [your choice]
host: jabber.org or jabber.org.uk
(both public: see also www.jabber.org/user/publicservers.php for a full list of friendly servers you can use)
BE SURE TO CHECK THE
the first time, since that will set you up with a brand new account...
The following advice addresses a particularly common occurrence that we have observed, but may not apply to your situation:
During installation, if the machine has BuddySpace already installed, you can install a newer one over the existing BuddySpace program: you'll get a question prompt asking if this is ok.
However you may see a message that the following files cannot be written over as they are in use:
along with the error: "delete file failed code 32"
The real problem here is that there are actual unstopped/unfinished instances of either BuddySpace or the underlying Java Virtual Machine still running. A common reason for this is that you have merely 'closed' BuddySpace earlier without actually 'exiting'. You may see the BuddySpace 'radar screen' icon in the system tray (lower right corner usually), in which case you can right-click on it and choose 'Exit'.
If the above procedure hasn't worked, an alternative way to deal with this, in Windows, is (i) press CTRL-ALT-DEL, (ii) select the Task Manager, (iii) look at the Processes tab, and (iv) order them alphabetically by name, by clicking on 'Image name'. (v) If you see one or two cases of 'javaw.exe' listed, and you are sure you don't require any other Java application to be running, then it is ok to (vi) click on them and (vii) select 'End process'. When you have completed ending all 'rogue' javaw.exe processes in this way, you can then resume (or repeat) your installation.
There are several changes we've done on buddyspace.org server to help in the start up of the group collaboration like automatic group generation, map generation, pushed map updates and so on. It provides a web interface to group administration. The pub/sub component running there allows publishing of maps, plans (intentions), geo-locations,...
The buddyspace.org server is dedicated to groups, not individuals (see Why do you allow only groups and not individuals on buddyspace.org?) and as such it is closed to public registrations; i.e. you have to have your login on this server prior to your first attempt -- even if you select "New Account" in the client. BUT we're happy to register you as a leader of your own group and then you can add the other members of the group using the webAdmin site on http://www.buddyspace.org/webAdmin/ - see How can I create our group on buddyspace.org? If you don't need any special group support you still can use BuddySpace client with one of dozens of public servers listed on http://www.jabber.org/user/publicservers.php
You can change your details and password on the webAdmin site on http://www.buddyspace.org/webAdmin/
Go to the webAdmin site on http://www.buddyspace.org/webAdmin/, use your user name and choose "Forgot password (or need first)". A new password will be generated and sent to you by email. You can then change it to something easier to remember in the webAdmin.
buddyspace.org server focuses on support for groups. Thus, login accounts are ONLY really sensible if you join with a small workgroup or social group of your own -- otherwise it's really like being the first person in a country to own a telephone, and there is nothing whatsoever you can do with it. Even having an existing roster (buddy list) is not really sufficient, because it is far better to join with a whole group using the same functionality ... automatic map updates, automatic roster construction, etc.
If you don't need any special group support you still can use BuddySpace client with one of dozens of public servers listed on http://www.jabber.org/user/publicservers.php.
Go to webAdmin site on http://www.buddyspace.org/webAdmin/. Then follow the apply to become a group admin link and fill in a simple form.
In principle, the sequence of steps is as follows:
You can register members of your group all at once, update the database, publish new user-maps which will appear automatically on their BuddySpace clients, etc.
buddyspace.org runs jabberd1.4.2 with some custom extensions we made to provide automatic group rosters etc.
It currently runs an older conferencing component which uses jabber:iq:conf.
The server we use is a third party software and we noticed that time to time it has problems with seeing other servers. Since several public servers seem to experience the same problem, we guess it could be a bug in the server. We were not able to deduce any rules on when or why this is happening (just some servers are unreachable etc.).
All maps in BuddySpace contain positions in pixels and are generated either by a separate application using a location database or by hand in BuddySpace. In the live maps, which are extension of the 'normal' ones, the projection is added that allows definition of position dependent on some parameters. The pixel location then serves as a default position when other parameters are not available. More info is on JEP-0110 Generic Maps and http://kmi.open.ac.uk/projects/buddyspace/ -> user guide -> maps -> how to
The exchange of location information is/will be implemented from BuddySpace version 2.5.3 using the JEP-0080: User Geolocation. It is used in live maps (see more in How do maps work in BuddySpace?)
Right now, we use a mixture of methods for location mapping:
The map tag xmlns attribute has to point to http://jabber.open.ac.uk/tags/map
It is actually just a specification of the namespace used. More about the XML structure of maps can be found at http://kmi.open.ac.uk/projects/buddyspace/userguide/how-to/structure.html
The string is used by jabber communication stream xml parser to determine type of tag. Jabberbeans xml parser handlers are defined in Properties/Handlers.properties in the jabberbeans library jar file. The file modified for our purposes can be downloaded together with executables from http://sourceforge.net/projects/buddyspace/.
Yes, BuddySpace is definitely being integrated in wider solutions. We're now at the stage where we've got the platform in place to embark on the next phase, which is our real goal: to embed semantic web services, smart filtering/matchmaking capabilities, and live geolocation services directly into BuddySpace. A glimpse at how we're interacting with other tools and services can be seen in these projects:
1) ClimatePrediction.net (with Oxford University and Rutherford Appleton Laboratory) - a massively-distributed personal computing project to analyse complex climate changes; the project will deploy (in addition to a distributed model based on the Hadley Centre climate model) a semantic portal based on our own 'Magpie', and will use BuddySpace to foster peer collaboration... see www.climateprediction.net
2) ELeGI (see http://www.elegi.org) is large pan-European project which will be integrating our work on BuddySpace with a larger space of user logins, user profiles, shared databases, and e-learning systems; some elements of this exist today, but the 'full integrated system' is itself a matter of future research and development, which are doing right now (and therefore would be interested in maintaining contact).
3) CoAKTinG: Collaboritive Advanced Knowledge Technologies in the Grid (with The University of Edinburgh and The University of Southampton, Open University) - as part of a wider collection of tools (with 'Compendium', 'I-X', and 'HyStream') to enhance next-generation meetings and goal-directed teamwork, BuddySpace supports peripheral presence awareness, synchronous collaborationmanagement, and opportunistic real-time information exchanges... see www.aktors.org/coakting for some relevant overviews and publications.
Our colleague Simon Buckingham Shum, partner on the above CoAKTinG project, is working on a handful of relevant projects, notably:
Compendium (meeting facilitation & group memory capture): http://compendium.open.ac.uk
ScholOnto (ontology-based digital library server for scholarly discourse & argumentation): http://kmi.open.ac.uk/projects/scholonto/
D3E: Digital Document Discourse Environment ... a tool for document-centric discussion (embeds a discussion forum, but in a much more interesting/motivating way): http://d3e.sourceforge.net
The idea of BuddySpace project is very much in taking advantage of existing corporate databases and authentication methods to populate contact lists and authenticate connections...
BuddySpace is based on Jabber (http://www.jabber.org) with some extra functionalities. The BuddySpace client itself manages contact lists, and provides groupchat. File transfers were implemented using an intermediate web server.
As for the voice and video, we use link to an independent flash application (running in any browser and through any firewall; i.e. no installation needed) developed also KMi called FlashMeeting (http://flashmeeting.com/). Also Hexagon is a nice application based on similar engine: http://cnm.open.ac.uk/projects/hexagon/. Another project similar project could be Lyceum http://kmi.open.ac.uk/projects/lyceum/.
There've been some discussions about standardization and implementation of video and telephony also into Jabber.
The Jabber main page is on http://www.jabber.org/ (there are also lists of servers, clients, server components and other utils). There's quite a lot of functionality already standardized or in progress of standardization (http://www.jabber.org/jeps/). Running projects can be found on http://www.jabberstudio.org/. There're several mailing lists about Jabber http://www.jabber.org/about/lists.php.
Generally, there always are problems with file transfer - proxies, firewalls. The original way uses an intermediate/proxy webserver that supports PUT command; the whole process of transmission is a 2-stage process: sender puts a file on the server and sends an URL (in form of jabber:iq:oob) to an addressee who, in turn, downloads the file from the proxy webserver. More about the file transfer in jabber can be found on http://www.jabber.org/protocol/filetransfer.html (currently saying: "Informational documentation of the old jabber:iq:oob namespace (used for primitive file transfer) is now contained in JEP-0066. A more modern protocol is defined in the combination of JEP-0095 and JEP-0096.").
Apache 2 + some parts JOSL, see the licenses.txt file.
BuddySpace source codes can be downloaded from the developers section of the website on http://kmi.open.ac.uk/projects/buddyspace/developers/
The documentation on http://kmi.open.ac.uk/projects/buddyspace/developers/ includes javaDoc (describing BuddySpace classes), architecture and plug-in system.
For compilation of BuddySpace you need following:
The compilation itself is done simply by compiling all the source *.java files (I'm using the Sun Forte for Java IDE. The main class is BSMainFrame.) There are no special configuration files needed to build the jar - just make sure you have skinlf and jabberbeans jar files in the classpath (mount their jar files) and the directory with BuddySpace source codes; the buddyspace.jar includes everything from the buddyspace directory except *.java (as one of the options when creating the "JAR Recipe").
In principle, browser-based applets could be developed for a more lightweight version, though this is not immediately on our research trajectory... We would nevertheless be interested in advising anyone who wanted to develop this from our open source code! BuddySpace was not developed with this in mind, so there can appear some problems while developing the applet version; e.g. the maps which need to be stored in a file.
Go ahead! Most of BuddySpace is under Apache 2 license, parts JOSL and GPL… We are interested in hearing about your projects and happy to provide help.
Sure! Any help is welcome! You can send us your changes and we'll make our best to include them in the next release. If you wanted to work on BuddySpace more extensively we can create a branch for you directly in the BuddySpace CVS on sourceforge.net.
The skins in BuddySpace are done using the skinlf library (http://www.L2FProd.com/ and http://dev.l2fprod.com/). It appears as one of the java Look and Feel's and is able to read GTK (The Gimp ToolKit) and KDE (The K Desktop Environment) Skins to enhance your application GUI controls such as Buttons, Checks, Radios, Scrollbars, Progress Bar, Lists, Tables, Internal Frames, Colors, Background Textures, Regular Windows.
The jabberbeans project has been dead for some time now - there's a successor of it, but it has completely new structure. There are simply two reasons for the changes I made (i) handlers of custom xml tags have to be "registered" in the jabberbeans.jar and (ii) I needed to change some access rights to xml handler class methods to make their subclasses.
You can find the changed jabberbeans files in the sources of BuddySpace. There are two things which I've changed in the jabberbeans sources:
Probably the best way is to write your own plug-in (more information is / will be on http://kmi.open.ac.uk/projects/buddyspace/developers/). All plug-ins use common interface BSPlugin and are maintained by the BSPluginLoader. When implementing a new plug-in you may want to handle also some custom xml extensions. These are typically done by triple Tag, TagBuilder and TagHandler, which need to be registered in the Handler.properties file inside jabberbeans.jar. Best way to learn more is to look at the existing plug-ins.