qcon sf 2011 dpp functional
play

QCon SF 2011 @dpp - Functional Wednesday, November 16, 2011 @dpp - PowerPoint PPT Presentation

QCon SF 2011 @dpp - Functional Wednesday, November 16, 2011 @dpp Wednesday, November 16, 2011 @dpp 20 Years ago, today, invented RT spreadsheet Wednesday, November 16, 2011 @dpp 20 Years ago, today, invented RT spreadsheet 5


  1. QCon SF 2011 @dpp - Functional Wednesday, November 16, 2011

  2. @dpp Wednesday, November 16, 2011

  3. @dpp • 20 Years ago, today, invented RT spreadsheet Wednesday, November 16, 2011

  4. @dpp • 20 Years ago, today, invented RT spreadsheet • 5 Years ago, Lift & Scala Wednesday, November 16, 2011

  5. @dpp • 20 Years ago, today, invented RT spreadsheet • 5 Years ago, Lift & Scala • Pushing boundaries Wednesday, November 16, 2011

  6. Lift Wednesday, November 16, 2011

  7. Lift • Functional Web Framework Wednesday, November 16, 2011

  8. Lift • Functional Web Framework • Abstractions: Task Oriented Wednesday, November 16, 2011

  9. Lift • Functional Web Framework • Abstractions: Task Oriented • Secure & Interactive (and Maintainable) Wednesday, November 16, 2011

  10. Chat Wednesday, November 16, 2011

  11. Chat • class Chat extends CometActor with CometListener { private var msgs: Vector[String] = Vector() def registerWith = ChatServer override def lowPriority = { case v: Vector[String] => msgs = v; reRender() } def render = ClearClearable andThen "li *" #> msgs } Wednesday, November 16, 2011

  12. Chat Server Wednesday, November 16, 2011

  13. Chat Server • object ChatServer extends LiftActor with ListenerManager { private var msgs = Vector("Welcome") override def createUpdate = msgs override def lowPriority = { case s: String => msgs :+= s updateListeners() } } Wednesday, November 16, 2011

  14. Chat Input Wednesday, November 16, 2011

  15. Chat Input • object ChatIn { def render = SHtml.onSubmit{ s => ChatServer ! s SetValById("chat_in", "") } } Wednesday, November 16, 2011

  16. What You Don’t See Wednesday, November 16, 2011

  17. What You Don’t See • Loops Wednesday, November 16, 2011

  18. What You Don’t See • Loops • Synchronized Wednesday, November 16, 2011

  19. What You Don’t See • Loops • Synchronized • HTML Encoding Wednesday, November 16, 2011

  20. But that’s not what I came here to talk about... Wednesday, November 16, 2011

  21. Used to be... Wednesday, November 16, 2011

  22. Used to be... Wednesday, November 16, 2011

  23. Used to be... • Green screens everywhere Wednesday, November 16, 2011

  24. Used to be... • Green screens everywhere • Enslaved by the mainframe Wednesday, November 16, 2011

  25. Used to be... • Green screens everywhere • Enslaved by the mainframe • Changes went through IT Wednesday, November 16, 2011

  26. And then... Wednesday, November 16, 2011

  27. And then... Wednesday, November 16, 2011

  28. And then... • VisiCalc Wednesday, November 16, 2011

  29. And then... • VisiCalc • HyperCard Wednesday, November 16, 2011

  30. And then... • VisiCalc • HyperCard • PowerBuilder Wednesday, November 16, 2011

  31. And then... • VisiCalc • HyperCard • PowerBuilder Wednesday, November 16, 2011

  32. Along came the Web Wednesday, November 16, 2011

  33. Along came the Web • IT reasserts itself Wednesday, November 16, 2011

  34. Along came the Web • IT reasserts itself • Browser = 3270 Wednesday, November 16, 2011

  35. Along came the Web • IT reasserts itself • Browser = 3270 • J/EE & Rails = COBOL Wednesday, November 16, 2011

  36. Along came the Web • IT reasserts itself • Browser = 3270 • J/EE & Rails = COBOL Wednesday, November 16, 2011

  37. Cloud & iPad Vision Wednesday, November 16, 2011

  38. Cloud & iPad Vision Wednesday, November 16, 2011

  39. Cloud & iPad Vision • Empower individuals Wednesday, November 16, 2011

  40. Cloud & iPad Vision • Empower individuals • Anywhere, Anytime Wednesday, November 16, 2011

  41. Cloud & iPad Vision • Empower individuals • Anywhere, Anytime • Rich Interaction Wednesday, November 16, 2011

  42. Cloud & iPad Vision • Empower individuals • Anywhere, Anytime • Rich Interaction Wednesday, November 16, 2011

  43. But... Wednesday, November 16, 2011

  44. But... Wednesday, November 16, 2011

  45. But... • Old tools Wednesday, November 16, 2011

  46. But... • Old tools • IT centric Wednesday, November 16, 2011

  47. But... • Old tools • IT centric • Code Constrained Wednesday, November 16, 2011

  48. Let's Fix That Wednesday, November 16, 2011

  49. Let's Fix That • Cloud Computing for The Rest of Us Wednesday, November 16, 2011

  50. Let's Fix That • Cloud Computing for The Rest of Us • Rapid • Interactive • Simple Wednesday, November 16, 2011

  51. Let's Fix That • Cloud Computing for The Rest of Us • Rapid • Interactive • Simple • Design on iPad or Mac & Deploy in the Cloud Wednesday, November 16, 2011

  52. Empower Business User Wednesday, November 16, 2011

  53. Empower Business User • Easy & Intuitive like HyperCard and Excel Wednesday, November 16, 2011

  54. Empower Business User • Easy & Intuitive like HyperCard and Excel • Emporium: Data • App • Component Wednesday, November 16, 2011

  55. Empower Business User • Easy & Intuitive like HyperCard and Excel • Emporium: Data • App • Component • Instant Success Wednesday, November 16, 2011

  56. Environment Wednesday, November 16, 2011

  57. Environment • Design on iPad or Mac Wednesday, November 16, 2011

  58. Environment • Design on iPad or Mac • Runs on iPads, iPhone & Cloud Wednesday, November 16, 2011

  59. Environment • Design on iPad or Mac • Runs on iPads, iPhone & Cloud • Real-time events & Disconnected Wednesday, November 16, 2011

  60. Emporium Wednesday, November 16, 2011

  61. Emporium • Data sources & sinks including SalesForce Wednesday, November 16, 2011

  62. Emporium • Data sources & sinks including SalesForce • Running Apps including Proj Mgt & Chat Wednesday, November 16, 2011

  63. Emporium • Data sources & sinks including SalesForce • Running Apps including Proj Mgt & Chat • Components Wednesday, November 16, 2011

  64. Age Old Problems Wednesday, November 16, 2011

  65. Age Old Problems • State management Wednesday, November 16, 2011

  66. Age Old Problems • State management • Marshaling Wednesday, November 16, 2011

  67. Age Old Problems • State management • Marshaling • Event flows Wednesday, November 16, 2011

  68. State Management Wednesday, November 16, 2011

  69. State Management • Functional Language, like Excel Wednesday, November 16, 2011

  70. State Management • Functional Language, like Excel • total = subtotal + tax Wednesday, November 16, 2011

  71. State Management • Functional Language, like Excel • total = subtotal + tax • Clear I/O and transactional bounds Wednesday, November 16, 2011

  72. Marshaling Wednesday, November 16, 2011

  73. Marshaling • All user-data can be BSON serialized Wednesday, November 16, 2011

  74. Marshaling • All user-data can be BSON serialized • Database as Collections: kids = filter (#age <= 18) users Wednesday, November 16, 2011

  75. Marshaling • All user-data can be BSON serialized • Database as Collections: kids = filter (#age <= 18) users • UI Auto-generated or IB Style Wednesday, November 16, 2011

  76. Event Flows Wednesday, November 16, 2011

  77. Event Flows • Source & Sink Computation Independent Wednesday, November 16, 2011

  78. Event Flows • Source & Sink Computation Independent • iPad actions logged as events to server Wednesday, November 16, 2011

  79. Event Flows • Source & Sink Computation Independent • iPad actions logged as events to server • Migratory Locus of Computation Wednesday, November 16, 2011

  80. Status Wednesday, November 16, 2011

  81. Status • Open Source Pieces: http://visi.io Wednesday, November 16, 2011

  82. Status • Open Source Pieces: http://visi.io • Private Alpha Program Wednesday, November 16, 2011

  83. Status • Open Source Pieces: http://visi.io • Private Alpha Program • Beta in 2012 Wednesday, November 16, 2011

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend