Your SlideShare is downloading. ×
0
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Learn about Java framework for pen-based computing and the Livescribe Platform at SF-JUG
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

2,660

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 …

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,660
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1.
  • 2. 2<br />SF JUG: March 9th2010: Welcome from Livescribe<br /><ul><li>Joyce Morrell: Director Livescribe Developer Program
  • 3. Maureen Keating: Program Manger Developer Program
  • 4. Michael Knopp: Lead Developer Support Engineer and Pen Applications
  • 5. Java and Livescribe: History, Current Story, Looking Forward
  • 6. The Livescribe Penlet API: Design, Maintenance, and Development
  • 7. Shawn Silverman: System and Apps Software Engineer
  • 8. API Design and Implementation: HSA, BSS
  • 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. Open Developer Challenge: Closes March 13th 2010 @ 11:59pm PST
  • 11. Details at:www.livescribe.com/developer (over 10K in prizes)
  • 12. Further questions: Livescribe developer forums
  • 13. Developer Tools are free, as is Developer Registration
  • 14. Pen Emulator for Windows coming (very) soon
  • 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. Eclipse Feature for Penlet Development (J2ME) + Pen Profile
  • 17. Eclipse Feature for Paper Development + Pattern License Server
  • 18. Active Community in Developer Forums with LS Moderation
  • 19. RTFM: Architecture and Paper Expertise documented
  • 20. Developer Support initiatives:
  • 21. Building out KB of tech papers and samples
  • 22. Support in Forums and developer@livescribe.com</li></li></ul><li> History, Current, Future<br />5<br />
  • 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. Java and Livescribe: Today<br /><ul><li>J2ME Connected, Limited Device Configuration (CLDC 1.1)
  • 25. Mobile Media API 1.2 (JSR 135)
  • 26. Livescribe Smartpen Profile v2.2
  • 27. Event management
  • 28. Stroke input
  • 29. Menu, Display, Persistent storage management
  • 30. ICR: Custom Lexicons, Custom Subsets, RegEx,HWR Events
  • 31. Multiple Penlet support and lifecycle
  • 32. All Pen Applications written in Java
  • 33. Paper Replay written against public API (95% public API)
  • 34. (5%) camera frames
  • 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. 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. Tools and System Architecture: Why Java?<br /><ul><li>JVM models fit the development boards and architecture in 2004
  • 38. Desire for a true platform-agnostic development environment
  • 39. AFP and AFD mapped well to Java technology
  • 40. Eclipse Features for cross-platform support
  • 41. Why KVM?
  • 42. Availability at the time, familiarity of development team
  • 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. Focus on Platform design moving forward
  • 45. KVM: Timing, knowledge  CLDC-HI
  • 46. API Early Access: Early access as a feedback loop  Process
  • 47. Platform development is not a given  Internal process, education
  • 48. New Platform / New Paradigms  Content, Content, Content…..
  • 49. 2010: API finalization, Platform loop closed, Content….</li></li></ul><li> API Design and Implementation<br />12<br />
  • 50. Push vs. Pull Architecture<br /><ul><li>Push vs. Pull Architecture overview
  • 51. Penlets are ‘push’
  • 52. Event filtering in context of ‘push’</li></li></ul><li>Penlet Plugins<br /><ul><li>Concept derived from HSS and BSA implementations
  • 53. KEY: As easy to code as penlets
  • 54. Consuming of events
  • 55. Event Objects as a solution
  • 56. Plugin Model</li></li></ul><li>HotSpots Anywhere (aka: HSA)<br /><ul><li>Feature name subject to change
  • 57. Tap-and-Hold access to a specific menu item
  • 58. Requires: drawing, stroke, and tap logic
  • 59. Ah, sounds like a Plugin</li></li></ul><li>Button Setup Support (aka: BSS)<br /><ul><li>Feature name subject to change
  • 60. Common functionality for dynamic button creation
  • 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. Standard UI / Text for a common feature
  • 63. ‘Displayable’ to handle the screen UI
  • 64. Support for multiple drawing methods</li></li></ul><li>Menuing System<br /><ul><li>Existing Menu framework wraps our BrowseListclass
  • 65. Supports: Creation, Display, and Management
  • 66. Utility classes and “RadioMenus”</li></li></ul><li> Open Q&A<br />19<br />

×