Wookie Meetup
Upcoming SlideShare
Loading in...5
×
 

Wookie Meetup

on

  • 1,409 views

 

Statistics

Views

Total Views
1,409
Views on SlideShare
1,409
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 Wookie Meetup Presentation Transcript

    • Widgets Meetup, London, 13 Oct 2009 Wookies and Widgets Scott Wilson (University of Bolton) Scott. bradley [email_address] Twitter: scottbw
    • Wookie is not a clever acronym (so if you spell it WOOKIE you’re shouting!)
    • 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/
    • 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
    • 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
    • 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
    • Plugins
      • LAMS
      • Moodle
      • Wordpress (needs improving)
      • Elgg 1.0 (needs improving)
    • 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!
    • 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!
    • Proposed features
      • Inter-widget communications (IWC)
      • More bondi/DAP APIs
    • 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
    • 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 >
    • 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>
    • 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>
    • Future stuff
      • Wookie hosting? UK/EU App Store?
      • SocialSite integration
      • Better Shindig integration
      • OpenAjax stuff?
    • Get involved!
      • Send subscribe message to [email_address]
      • Submit issue reports, feature requests, patches: http://issues.apache.org/jira/browse/WOOKIE