Hello Yusef, example Opera Unite application
By Gautam Chandnagautamchandna. Monday, November 16, 2009 2:28:22 PM
First class citizens
Opera Unite establishes your personal computer as a webserver. You are given a URL similar to http://devicename.username.operaunite.com/ You can have as many computers as you like, and each is linked to your username. This way people can find the real you. The unique you, physically on your own computer. Possibly at home, work, or at the coffee shop.
How it works
Once you have installed Opera and set up Opera Unite, you are online. People can visit your computer from any Web browser on any device. You can install any of the applications provided on http://unite.opera.com/ and share files, photos, serve music, host chats, receive files and more.
The applications we provide do a basic set of tasks, but the technology opens up distributed development opportunities for everyone. Instead of having one large and powerful server handling a million users, millions of users have their computers running and Opera Unite applications can harness that power.
How do I make one for myself?
We have created a Hello World example. This example uses the Yusef Library (short for Unite Server Framework). The package contains several important bits and pieces that we believe applications need as a base for themselves to stand on.
This includes:
- Library Loader: A script that loads all .js files in the libraries folder, respecting dependencies and loading order.
-
Markuper:
XMLDOM based templating engine - Yusef: The framework handling all requests made to the application
- Activity Stream generator: Atom Activity Extensions
- Date Library: Human readable timestamps
- Localization: Translating the application based on the visitors accept-language header
- Resource fetcher: A wrapper for XMLHttpRequest for repeating requests.
- etc...
In this Hello Yusef example, Yusef has been extended with the following plugins:
- ACL Plugin: Access control, for the Visitor and Owner
- UI Plugin: Attaching a common User Interface to all requests made to this application
- Profile Sync plugin: To fetch the user status from the Home application, and display it in the current application
- directConnection: To use a direct connection for file transfer, if possible. This is not used in the Hello Yusef example, but good to have.
- etc...
This is the base we use for our applications, and we continually update each individual piece. The Hello Yusef example will be kept up-to-date, especially when it comes to security fixes.
Feel free to use this as a base for your own applications, and if you find any bugs or fixes - please feel free to report them! All your input are important to us!








