2<br />SF JUG: March 9th2010: Welcome from Livescribe<br /><ul><li>Joyce Morrell: Director Livescribe Developer Program
Maureen Keating: Program Manger Developer Program
Michael Knopp: Lead Developer Support Engineer and Pen Applications
Java and Livescribe: History, Current Story, Looking Forward
The Livescribe Penlet API: Design, Maintenance, and Development
Shawn Silverman: System and Apps Software Engineer
API Design and Implementation: HSA, BSS
The Event Model: Plug-in architecture to address common issues</li></li></ul><li>3<br />A few logistics…. <br /><ul><li>We...
Open Developer Challenge: Closes March 13th 2010 @ 11:59pm PST
Details at:www.livescribe.com/developer (over 10K in prizes)
Further questions: Livescribe developer forums
Developer Tools are free, as is Developer Registration
Pen Emulator for Windows coming (very) soon
Pens available at Best Buy, Target, LS online store</li></li></ul><li>4<br />Developing Penlets, Paper Products…..<br /><u...
Eclipse Feature for Penlet Development (J2ME) + Pen Profile
Eclipse Feature for Paper Development + Pattern License Server
Active Community in Developer Forums with LS Moderation
RTFM: Architecture and Paper Expertise documented
Upcoming SlideShare
Loading in...5
×

Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG

2,690

Published on

San Francisco Java User Group hosted an event on March 9th, 2010 with Michael Knopp and Shawn Silverman from Livescribe who talked about their Java framework for pen-based computing and the Livescribe Platform. Truly fascinating stuff.

http://www.sfjava.org/calendar/12296429/

These are their slides.

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,690
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG

  1. 1.
  2. 2. 2<br />SF JUG: March 9th2010: Welcome from Livescribe<br /><ul><li>Joyce Morrell: Director Livescribe Developer Program
  3. 3. Maureen Keating: Program Manger Developer Program
  4. 4. Michael Knopp: Lead Developer Support Engineer and Pen Applications
  5. 5. Java and Livescribe: History, Current Story, Looking Forward
  6. 6. The Livescribe Penlet API: Design, Maintenance, and Development
  7. 7. Shawn Silverman: System and Apps Software Engineer
  8. 8. API Design and Implementation: HSA, BSS
  9. 9. The Event Model: Plug-in architecture to address common issues</li></li></ul><li>3<br />A few logistics…. <br /><ul><li>We enjoy an open conversation, please speak up at any point
  10. 10. Open Developer Challenge: Closes March 13th 2010 @ 11:59pm PST
  11. 11. Details at:www.livescribe.com/developer (over 10K in prizes)
  12. 12. Further questions: Livescribe developer forums
  13. 13. Developer Tools are free, as is Developer Registration
  14. 14. Pen Emulator for Windows coming (very) soon
  15. 15. Pens available at Best Buy, Target, LS online store</li></li></ul><li>4<br />Developing Penlets, Paper Products…..<br /><ul><li>Developer Registration at www.livescribe.com/developer
  16. 16. Eclipse Feature for Penlet Development (J2ME) + Pen Profile
  17. 17. Eclipse Feature for Paper Development + Pattern License Server
  18. 18. Active Community in Developer Forums with LS Moderation
  19. 19. RTFM: Architecture and Paper Expertise documented
  20. 20. Developer Support initiatives:
  21. 21. Building out KB of tech papers and samples
  22. 22. Support in Forums and developer@livescribe.com</li></li></ul><li> History, Current, Future<br />5<br />
  23. 23. Java and Livescribe: A Brief History<br />2006: Demo<br />2008: Launch<br />2008: SDK #1<br />2008: SDK #2<br />2009: Paper Tool<br />2009: Pattern Server<br />2009: App Store<br />2010: Desktop SDK<br />KVM + custom API: Demonstrating extensible content on a smart pen<br />Penlet Profile v0.9: Internal only, limited productization<br />JavaOne 2008: Ant scripts, command line tools, limited productization<br />Eclipse Feature built above internal Penlet SDK, Penlet Profile v.0.999<br />Eclipse Feature for Paper Product design and code integration<br />LPS with public JAX-RPC API. Unique pattern for all!<br />Application Distribution model. System re-architecture + CLDC-HI<br />Java wrapper of exiting PenComm Framework (data from pen)<br />
  24. 24. Java and Livescribe: Today<br /><ul><li>J2ME Connected, Limited Device Configuration (CLDC 1.1)
  25. 25. Mobile Media API 1.2 (JSR 135)
  26. 26. Livescribe Smartpen Profile v2.2
  27. 27. Event management
  28. 28. Stroke input
  29. 29. Menu, Display, Persistent storage management
  30. 30. ICR: Custom Lexicons, Custom Subsets, RegEx,HWR Events
  31. 31. Multiple Penlet support and lifecycle
  32. 32. All Pen Applications written in Java
  33. 33. Paper Replay written against public API (95% public API)
  34. 34. (5%) camera frames
  35. 35. (5%) grid architecture</li></li></ul><li>Java and Livescribe: Hello There!<br />// * This Penlet displays "Hello World!" as text when activated by menu.<br />public class HelloThere extends Penlet implements StrokeListener, HWRListener {<br />……<br /> public void activateApp(int reason, Object[] args) {<br /> if (reason == Penlet.ACTIVATED_BY_MENU) {<br />this.label.draw("Hello world!", true);<br />this.display.setCurrent(this.label);<br />this.player.play("/audio/helloworld.wav");<br /> }<br />this.context.addStrokeListener(this);<br /> // Prompt the user for text entry<br />this.label.draw("Enter text", true);<br />this.display.setCurrent(this.label);<br /> // Configure the ICR context<br /> try {<br />this.icrContext = this.context.getICRContext(1000, this);<br /> Resource[] resources = {<br />this.icrContext.getDefaultAlphabetKnowledgeResource(),<br />this.icrContext.createAppResource("/icr/LEX_HelloThere.res"),<br />this.icrContext.createSKSystemResource(ICRContext.SYSRES_SK_ALNUM) <br /> };<br />this.icrContext.addResourceSet(resources); <br /> } catch (Exception e) { }<br />context.addStrokeListener(this);<br /> }<br /> public void strokeCreated(long time, Region regionId, PageInstance page) {<br />this.icrContext.addStroke(page, time); }<br /> public void hwrUserPause(long time, String result) {<br />this.icrContext.clearStrokes(); }<br /> public void hwrResult(long time, String result) {<br />this.label.draw("Recognized: " + result); }<br /> public booleancanProcessOpenPaperEvents () {<br /> return true; }<br /> ……..<br />
  36. 36. 2010 Developer Tools Roadmap<br />Platform SDK Version 1.3<br />-- Mac Support for Penlet Development<br />-- Paper Tool for Mac<br />-- Improved java documentation<br />-- Improved Eclipse template sample code<br />-- Bug fixes<br />-- Support for Eclipse 3.5<br />-- Additional functionality TBD<br />Desktop SDK Version 0.7<br />-- Desktop framework for querying pen applications for data packages and responses<br />-- Sample Projects for supported languages (Desktop and Penlet)<br />-- Support for querying pen properties<br />-- Full API and architecture documentation<br />-- C API with C# wrapper for SmartpenCommuncation<br />-- C# API for processing stroke files<br />-- C# API for reading and writing AFD files<br />Desktop SDK Release Version 1.0<br />-- Support for remote LS License Server queries<br />-- Additional functionality TBD<br />Smartpen Emulator for Windows Version 1.0<br />-- 1:1 pen emulation in a Windows environment<br />-- Draw, Write, and Use the emulator in the same manner as a physical pen<br />-- View paper products on your computer screen and get response in real time<br />-- Live debug messages in color with filtering options<br />-- OLED emulation on screen<br />-- Visual dynamic and static regions UI<br />Desktop SDK Version 0.8<br />-- Updated release of the 0.7 SDK including bug fixes and maintenance<br />-- Updated documentation and samples<br />Developer Content<br />- Knowledge Base articles for common developer questions<br />- Sample Code for multiple Livescribe Java API features<br />- Advanced Sample Code introducing new Platform Features<br />Platform SDK Version 1.4<br />-- Java API Improvements and Bug Fixes<br />-- Additional functionality TBD<br /> Q1’10 Q2’10 Q3’10<br />
  37. 37. Tools and System Architecture: Why Java?<br /><ul><li>JVM models fit the development boards and architecture in 2004
  38. 38. Desire for a true platform-agnostic development environment
  39. 39. AFP and AFD mapped well to Java technology
  40. 40. Eclipse Features for cross-platform support
  41. 41. Why KVM?
  42. 42. Availability at the time, familiarity of development team
  43. 43. Port to CLDC-HI required for class unloading in AppStore model</li></li></ul><li>Early Access and Temporary is, well, forever …..<br /><ul><li>On the express train to obvious town ?
  44. 44. Focus on Platform design moving forward
  45. 45. KVM: Timing, knowledge  CLDC-HI
  46. 46. API Early Access: Early access as a feedback loop  Process
  47. 47. Platform development is not a given  Internal process, education
  48. 48. New Platform / New Paradigms  Content, Content, Content…..
  49. 49. 2010: API finalization, Platform loop closed, Content….</li></li></ul><li> API Design and Implementation<br />12<br />
  50. 50. Push vs. Pull Architecture<br /><ul><li>Push vs. Pull Architecture overview
  51. 51. Penlets are ‘push’
  52. 52. Event filtering in context of ‘push’</li></li></ul><li>Penlet Plugins<br /><ul><li>Concept derived from HSS and BSA implementations
  53. 53. KEY: As easy to code as penlets
  54. 54. Consuming of events
  55. 55. Event Objects as a solution
  56. 56. Plugin Model</li></li></ul><li>HotSpots Anywhere (aka: HSA)<br /><ul><li>Feature name subject to change
  57. 57. Tap-and-Hold access to a specific menu item
  58. 58. Requires: drawing, stroke, and tap logic
  59. 59. Ah, sounds like a Plugin</li></li></ul><li>Button Setup Support (aka: BSS)<br /><ul><li>Feature name subject to change
  60. 60. Common functionality for dynamic button creation
  61. 61. Manage storage and mapping of region ID’s</li></li></ul><li>Prompt and Believe<br /><ul><li>As an input model for users
  62. 62. Standard UI / Text for a common feature
  63. 63. ‘Displayable’ to handle the screen UI
  64. 64. Support for multiple drawing methods</li></li></ul><li>Menuing System<br /><ul><li>Existing Menu framework wraps our BrowseListclass
  65. 65. Supports: Creation, Display, and Management
  66. 66. Utility classes and “RadioMenus”</li></li></ul><li> Open Q&A<br />19<br />

×