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

Recommend


More recommend