Wookie Meetup
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Wookie Meetup

on

  • 1,447 views

 

Statistics

Views

Total Views
1,447
Views on SlideShare
1,447
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Wookie Meetup Presentation Transcript

  • 1. Widgets Meetup, London, 13 Oct 2009 Wookies and Widgets Scott Wilson (University of Bolton) Scott. bradley [email_address] Twitter: scottbw
  • 2. Wookie is not a clever acronym (so if you spell it WOOKIE you’re shouting!)
  • 3. Apache Wookie (incubating)
    • Entered incubator July ‘09
    • originally developed in Framework 6 IP
      • Funded projects tend to build prototypes, not communities
    • http://incubator.apache.org/wookie/
  • 4. How Wookie Works
    • Servlet, runs in Tomcat or Jetty
    • Provides REST API for applications to access widgets using a plug-in
    • Provides JavaScript API objects for widgets at runtime
    • Admin UI for installing and managing W3C Widgets
    • Server-side storage, and push events
  • 5. Wookie REST API
    • GET /widgets gets the list of widgets installed
    • POST /widgetinstances instantiates a widget
    • POST /participants adds a participant to a widget instance
    • Lots more at http://incubator.apache.org/wookie/wookie-rest-api.html
  • 6. Typical lifecycle
    • GET /widgets -> render as a gallery for the user to pick which one to add
    • POST /widgetinstances -> create an instance of the widget for the user, returns the URI and widget height/width
    • POST /participants -> add user as a participant in the instance
    • Create iframe with src, height and width set
  • 7. Plugins
    • LAMS
    • Moodle
    • Wordpress (needs improving)
    • Elgg 1.0 (needs improving)
  • 8. Widget APIs
    • < feature name= &quot;http://wave.google.com&quot; required= &quot;true&quot; />
    • W3C Widget Object (default)
    • Google Wave Gadget API
    • Bondi camera API
    • SCORM CMI API
    • … anything else!
  • 9. Shindig integration
    • Basic integration, adds Shindig servlet in install
    • Wookie generates tokens for shindig opensocial applications
    • Wookie handles getPref/setPref using W3C Widget object
    • Doesn’t handle Shindig data interface
    • Needs more work!
  • 10. Proposed features
    • Inter-widget communications (IWC)
    • More bondi/DAP APIs
  • 11. Anatomy of a Widget
    • Config.xml <- W3C Widgets P&C Spec
    • Icon
    • HTML start file
    • JavaScript code
    • Zip it up, change ext to .wgt, and you’re done
  • 12. A Silly Example: config.xml
    • <?xml version = &quot;1.0&quot; encoding = &quot;utf-8&quot; ? >
    • < widget xmlns= &quot;http://www.w3.org/ns/widgets&quot; id= &quot;http://www.getwookie.org/widgets/tea&quot; version = &quot;1.0” height= &quot;150” width= &quot;125&quot; >
    • < name > Tea </ name >
    • < description > A silly Tea widget </ description >
    • < icon src= &quot;tea.jpg&quot; />
    • < content src= &quot;index.htm&quot; />
    • < feature name= &quot;http://wave.google.com&quot; required= &quot;true&quot; />
    • < author > Scott Wilson </ author >
    • </ widget >
  • 13. A Silly Example: HTML & JS
    • <html>
    • <body onload = &quot;document.getElementById(‘name’).innerText=wave.getViewer().getDisplayName()&quot; >
    • <img src = &quot;tea.jpg&quot; />
    • <p style = &quot;font-size:9pt&quot; > Time for a break, <span id = &quot;name&quot; > mate </span></p>
    • </body>
    • </html>
  • 14. Cooler example: webcam
    • <html >
    • <head>
    • <script>
    • function takePicture(){
    • var camera = bondi.camera.getCameras()[ 0 ]; camera.takePicture(function(x){document.getElementById(&quot;picture&quot;).src=x;},function(){alert( &quot;nope&quot; );}); }
    • </script>
    • </head>
    • <body>
    • <button onclick = &quot;takePicture()&quot; > Take Picture </button>
    • <img id = &quot;picture&quot; src = &quot;&quot; width = &quot;64&quot; height = &quot;64&quot; />
    • </body>
    • </html>
  • 15. Future stuff
    • Wookie hosting? UK/EU App Store?
    • SocialSite integration
    • Better Shindig integration
    • OpenAjax stuff?
  • 16. Get involved!
    • Send subscribe message to [email_address]
    • Submit issue reports, feature requests, patches: http://issues.apache.org/jira/browse/WOOKIE