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!









Tamil # Monday, November 16, 2009 2:34:13 PM
Krishnankrishnan # Monday, November 16, 2009 2:45:15 PM
Andrew Fatmanfatman # Monday, November 16, 2009 2:49:47 PM
Cristiancristianer # Monday, November 16, 2009 2:50:05 PM
Ide StoutjesdijkCrimi # Monday, November 16, 2009 4:39:48 PM
Charles SchlossChas4 # Monday, November 16, 2009 4:44:46 PM
lucideer # Monday, November 16, 2009 7:39:36 PM
Originally posted by Gautam Chandna:
Markuper was originally HTML based - has it being updated to be XML compatible?
See my previous attempts at using Markuper below:
Daniel HendrycksDanielHendrycks # Tuesday, November 17, 2009 1:44:37 AM
HadiSyamsulHadi # Tuesday, November 17, 2009 5:33:15 AM
Jeroen HoekxJeroenH # Tuesday, November 17, 2009 8:42:00 AM
Originally posted by lucideer:
DOM based is what it should say :-)
I pointed you to a modified version of Markuper with XML support. I can happily generate Atom and XHTML with it. If there are any problems, you can add them to that thread.
One thing I found really nice about Markuper and haven't seen documented anywhere is that you can send a DOM element as data and it will be inserted into the template where the variable was.
Originally posted by DanielHendrycks:
Confirmed.lucideer # Tuesday, November 17, 2009 3:42:44 PM
Originally posted by JeroenH:
Thanks for that JeroenH, I have been playing with your modified version (although the link is currently dead). I was merely asking Gautam Chandna/Opera (you don't work for Opera do you?) if their "official" version had changed, as the line above seemed to indicate it had.
walterbugscout # Tuesday, November 17, 2009 8:07:47 PM
Gautam Chandnagautamchandna # Wednesday, November 18, 2009 11:35:53 AM
Originally posted by JeroenH:
@JeroenH: Nice work! I'll forward it antonioafonso, he's the author of markuper. You two should stay in touch :-)
Originally posted by DanielHendrycks:
Confirmed, and being worked on.