Introducing Online Education to Hypermedia

  • 66 views
Uploaded on

Video and slides synchronized, mp3 and slide download available at http://bit.ly/XCw0Ka. …

Video and slides synchronized, mp3 and slide download available at http://bit.ly/XCw0Ka.

Guilherme Silveira discusses the difficulties faced by an online educational platform and corresponding solutions implemented at Caelum, their curriculum - systems, languages and databases – and how everything works. Filmed at qconsf.com.

Guilherme Silveira is Head Instructor at Caelum, a training and consulting company. He is the creator of Restfulie, Editorial Chief of InfoQ Brazil, technical editor for a Brazilian magazine, co-founder of the largest online Portuguese speaking Java user group. Currently writing and recording a Rest from Scratch series showing how to create REST systems using hypermedia. @guilhermecaelum

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
66
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

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. Introducing Online Education to Hypermedia Guilherme Silveira guilherme.silveira@caelum.com.br
  • 2. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /Online-Education-Hypermedia InfoQ.com: News & Community Site• 750,000 unique visitors/month• Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese)• Post content from our QCon conferences• News 15-20 / week• Articles 3-4 / week• Presentations (videos) 12-15 / week• Interviews 2-3 / week• Books 1 / month
  • 3. Presented at QCon San Francisco www.qconsf.comPurpose of QCon- to empower software development by facilitating the spread ofknowledge and innovationStrategy - practitioner-driven conference designed for YOU: influencers ofchange and innovation in your teams- speakers and topics driving the evolution and innovation- connecting and catalyzing the influencers and innovatorsHighlights- attended by more than 12,000 delegates since 2007- held in 9 cities worldwide
  • 4. who am I?
  • 5. who am I?• caelum.com.br founder
  • 6. who am I?• caelum.com.br founder • training, content creation, development
  • 7. who am I?• caelum.com.br founder • training, content creation, development• since -50 years old working with education
  • 8. who am I?• caelum.com.br founder • training, content creation, development• since -50 years old working with education• “arquitetura e design de software”
  • 9. who am I?• caelum.com.br founder • training, content creation, development• since -50 years old working with education• “arquitetura e design de software”• some work on rest
  • 10. who am I?• caelum.com.br founder • training, content creation, development• since -50 years old working with education• “arquitetura e design de software”• some work on rest• brazil
  • 11. what is Caelum?
  • 12. what is Caelum?• 3 cities, 100 employees
  • 13. what is Caelum?• 3 cities, 100 employees• brick and mortar education
  • 14. what is Caelum?• 3 cities, 100 employees• brick and mortar education• java, ruby, agile development
  • 15. what is Caelum?• 3 cities, 100 employees• brick and mortar education• java, ruby, agile development• user groups
  • 16. what is Caelum?• 3 cities, 100 employees• brick and mortar education• java, ruby, agile development• user groups• qcon brazil, conexao java, other events
  • 17. what is Brazil?
  • 18. who is this guy?
  • 19. what is Brazil?
  • 20. what is Brazil?• brazil: 5565 cities
  • 21. what is Brazil?• brazil: 5565 cities• largest são paulo: 11 million
  • 22. what is Brazil?• brazil: 5565 cities• largest são paulo: 11 million• 20th: 800 thousand
  • 23. what is Brazil?• brazil: 5565 cities• largest são paulo: 11 million• 20th: 800 thousand• largest in a specific state: 296 thousand
  • 24. what is Brazil?• brazil: 5565 cities• largest são paulo: 11 million• 20th: 800 thousand• largest in a specific state: 296 thousand • fills 4 stadiums?
  • 25. what is Brazil?• brazil: 5565 cities• largest são paulo: 11 million• 20th: 800 thousand• largest in a specific state: 296 thousand • fills 4 stadiums?• non well distributed developers
  • 26. what is Caelum Online?
  • 27. what is Caelum Online?• brazil: 5565 cities
  • 28. what is Caelum Online?• brazil: 5565 cities • thousands of coffee shops
  • 29. what is Caelum Online?• brazil: 5565 cities • thousands of coffee shops• outside brazil: 10 cities
  • 30. what is Caelum Online?
  • 31. what is Caelum Online?• online learning
  • 32. what is Caelum Online?• online learning• online teaching
  • 33. what is Caelum Online?• online learning• online teaching• online practicing
  • 34. agenda
  • 35. agenda• problems that an online educational platform faces
  • 36. agenda• problems that an online educational platform faces• examples
  • 37. agenda• problems that an online educational platform faces• examples• existing systems, languages, databases
  • 38. agenda• problems that an online educational platform faces• examples• existing systems, languages, databases• how to connect everything
  • 39. agenda• problems that an online educational platform faces• examples• existing systems, languages, databases• how to connect everything• really small services
  • 40. traditional online learning
  • 41. traditional online learning
  • 42. traditional online learning
  • 43. traditional online learning
  • 44. traditional online learning
  • 45. machine learning• + data• + learning• better results
  • 46. collaborative filtering• + data• + learning• better results
  • 47. recommend movies• amazon• netflix• ...
  • 48. recommend daily news• facebook• twitter• ...
  • 49. recommend a friend?• facebook• twitter• ...
  • 50. recommend songs• all those websites you know...
  • 51. collaborative filtering
  • 52. collaborative filtering• recommend technologies that you should study
  • 53. collaborative filtering• recommend technologies that you should study• recommend courses to attend
  • 54. collaborative filtering• recommend technologies that you should study• recommend courses to attend• recommend jobs to take
  • 55. collaborative filtering• recommend technologies that you should study• recommend courses to attend• recommend jobs to take• recommend exercises to do
  • 56. exercise difficulty
  • 57. exercise difficulty• MIT studies on CF and IRT
  • 58. exercise difficulty• MIT studies on CF and IRT• CF is as good as IRT
  • 59. exercise difficulty• MIT studies on CF and IRT• CF is as good as IRT• our findings: we are not big data :(
  • 60. exercise difficulty• MIT studies on CF and IRT• CF is as good as IRT• our findings: we are not big data :(• we can’t infer difficulty on multiple choice so far
  • 61. drop out rate• can we detect them before they drop out?
  • 62. how long for an exercise?
  • 63. how long for an exercise?students = []students << [12, 150, 3, 15]students << [4, 170, 32, 25]students << [1, 10, 3, 25]students << [12, 20, 31, 15]
  • 64. finishes under 3 months?
  • 65. finishes under 3 months?labels = [1, 1, 0, 0]
  • 66. finishes under 3 months?students = []students << [12, 150, 3, 15]students << [4, 170, 32, 25]students << [1, 10, 3, 25]students << [12, 20, 31, 15] labels = [1, 1, 0, 0]
  • 67. trains
  • 68. trains
  • 69. trains
  • 70. trains
  • 71. what about guilherme?
  • 72. what about guilherme?guilherme = [6, 140, 25, 10]
  • 73. what about guilherme?guilherme = [6, 140, 25, 10]model.predict(Node.features(guilherme))
  • 74. guess!
  • 75. SVM
  • 76. SVM
  • 77. fake data
  • 78. fake datalabels = [1, 1, 0, 0]
  • 79. fake datastudents = []students << [12, 150, 3, 15]students << [4, 170, 32, 25]students << [1, 10, 3, 25]students << [12, 20, 31, 15] labels = [1, 1, 0, 0]
  • 80. real data
  • 81. real data
  • 82. real dataC TRAIN ACCURACY% ACCURACY%0.08! 93.18%! 85.71%
  • 83. SVM to classify (0,1, ...)
  • 84. teacher and tutor• multiple choice answers• open answers• code answer
  • 85. multiple choice• sucks?• is the best/easiest to test ability
  • 86. open answers• great• is the hardest to test ability• any natural language processing experts?
  • 87. code answers• great• is hard to test ability• AST, auto correction, error margins
  • 88. k-cluster• another machine learning algorithm• clustering
  • 89. compare them...• exercises• students• courses
  • 90. and find...
  • 91. and find...• great exercises, not-so-great exercises
  • 92. and find...• great exercises, not-so-great exercises• great students, not-so-great students
  • 93. and find...• great exercises, not-so-great exercises• great students, not-so-great students• great courses, not-so-great courses
  • 94. common characteristics
  • 95. common characteristics height???
  • 96. common characteristicsnumber of wrong answers height???
  • 97. common characteristicsnumber of wrong answers height??? time spent
  • 98. common characteristicsnumber of wrong answers height??? time spentnumber of exercises done
  • 99. common characteristicsnumber of wrong answers height??? time spentnumber of exercises done feedback given
  • 100. common characteristicsnumber of wrong answers height??? time spentnumber of exercises done feedback given feedback rating
  • 101. common characteristicsnumber of wrong answers height??? time spentnumber of exercises done feedback given feedback rating likes
  • 102. common characteristicsnumber of wrong answers height??? time spentnumber of exercises done feedback given feedback rating likes courses
  • 103. common characteristicsnumber of wrong answers height??? time spentnumber of exercises done feedback given feedback rating likes courses quantidade de caracteres
  • 104. the 5D chart
  • 105. they are here!
  • 106. those are the groups
  • 107. expected:muitas perguntas, poucos erros, muitos erros poucas perguntas poucos erros, poucas perguntas, ajuda bastante
  • 108. expected:Xmuitas perguntas, poucos erros, muitos erros poucas perguntas poucos erros, poucas perguntas, ajuda bastante
  • 109. expected:X Xmuitas perguntas, poucos erros, muitos erros poucas perguntas poucos erros, poucas perguntas, ajuda bastante
  • 110. expected:X Xmuitas perguntas, poucos erros, muitos erros poucas perguntas X poucos erros, poucas perguntas, ajuda bastante
  • 111. found:
  • 112. found:lots of questions, less errors
  • 113. found:lots of questions, more errors, less errors less questions
  • 114. found:lots of questions, more errors, less errors less questions more errors less questions, helped a lot
  • 115. we have 5000responsibilities
  • 116. we have 5000 responsibilities• data problems
  • 117. we have 5000 responsibilities• data problems• user problems
  • 118. we have 5000 responsibilities• data problems• user problems• teacher problems
  • 119. we have 5000 responsibilities• data problems• user problems• teacher problems• company problems
  • 120. we have 5000responsibilities
  • 121. we have 5000 responsibilities• we started with a small platform (mar2011)
  • 122. we have 5000 responsibilities• we started with a small platform (mar2011)• we ended up with a huge payment, chat up to certificate playform (oct2012)
  • 123. single responsibility principle
  • 124. single responsibility principle• why not apply it to the system itself?
  • 125. single responsibility principle• why not apply it to the system itself?• + dependency injection
  • 126. refactor, extract ===> exercise
  • 127. refactor, extract• constant ===> exercise
  • 128. refactor, extract• constant• variable ===> exercise
  • 129. refactor, extract• constant• variable• method ===> exercise
  • 130. refactor, extract• constant• variable• method• class ===> exercise
  • 131. refactor, extract• constant• variable• method• class• library ===> exercise
  • 132. refactor, extract• constant• variable• method• class• library• project ===> exercise
  • 133. mysql caelum systems alumni.caelum.com.br mysql métricas RoR alunos java + octave redis java + vraptorsolr mysql gnarus sugestondetrabalhar.com scala + vraptor java ruby postgresql mysql promomysqlcasa do código pagamentos RoR java redis java + RoR postgresql interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios postgresql RoR analisador 2 postgresql+ 1 projeto postgresql java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js postgresql RoR RoR postgresql
  • 134. data analysis• http• octave/ruby/java (mahout)• octave/mysql/postgre/redis
  • 135. answer analysis• http• ruby/java• mysql/postgre/redis
  • 136. badges/gamification• http• ruby• postgre
  • 137. payment• http• java• mysql/postgre
  • 138. exercises• how to deal with new types of exercises?• group• simulations• auto-correction
  • 139. introducing hypermedia: simply return an URI
  • 140. training platform external exercise
  • 141. new external exercise attempttraining platform external exercise
  • 142. new external exercise attempt training platform external exercisepersonal note: do not draw splines again
  • 143. new external exercise attempt training platform your URI external exercisepersonal note: do not draw splines again
  • 144. RPG activity• http• javascript• 200 lines of code• anyone can trash and rewrite in any language (except perl?)
  • 145. several autocorrectors• ruby• javascript• sql
  • 146. cloud partnership
  • 147. cloud partnership• do our training
  • 148. cloud partnership• do our training• U$ 20 coupon
  • 149. cloud partnership• do our training• U$ 20 coupon• where do you write that code?
  • 150. training platform external exercise
  • 151. new external exercise attempttraining platform external exercise
  • 152. new external exercise attempttraining platform your URI external exercise
  • 153. coupon activity• http• ruby• <100 lines of code
  • 154. and then...
  • 155. and then... alunos java + vraptor
  • 156. and then...alumni.caelum.com.br RoR alunos java + vraptor
  • 157. and then... alumni.caelum.com.br RoR alunos java + vraptorondetrabalhar.com ruby
  • 158. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor ruby
  • 159. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor ruby exercícios RoR
  • 160. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor ruby exercícios RoR+ 1 projeto scala + play
  • 161. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor ruby exercícios RoR+ 1 projeto scala + play mountable engine RoR
  • 162. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor ruby exercícios RoR+ 1 projeto scala + play mountable engine + 1 ‘página’ RoR js
  • 163. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor ruby analisador 1 sinatra exercícios RoR+ 1 projeto scala + play mountable engine + 1 ‘página’ RoR js
  • 164. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor ruby pagamentos java analisador 1 sinatra exercícios RoR+ 1 projeto scala + play mountable engine + 1 ‘página’ RoR js
  • 165. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor ruby pagamentos java analisador 1 sinatra exercícios RoR+ 1 projeto scala + play mountable engine + 1 ‘página’ RoR + 6 projetos js RoR
  • 166. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor ruby pagamentos java analisador 1 sinatra exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ RoR + 6 projetos js RoR
  • 167. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor ruby pagamentos java analisador 1 sinatra exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ RoR + 6 projetos js RoR
  • 168. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor rubycasa do código pagamentos java java + RoR analisador 1 sinatra exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ RoR + 6 projetos js RoR
  • 169. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor rubycasa do código pagamentos java java + RoR analisador 1 sinatra exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 170. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor rubycasa do código pagamentos java java + RoR interestie analisador 1 sinatra sinatra + sequel exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 171. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor rubycasa do código pagamentos java java + RoR interestie analisador 1 sinatra sinatra + sequel exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 172. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarusondetrabalhar.com scala + vraptor rubycasa do código pagamentos java java + RoR interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 173. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarus sugestondetrabalhar.com scala + vraptor java rubycasa do código pagamentos java java + RoR interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 174. and then... alumni.caelum.com.br RoR alunos java + vraptor gnarus sugestondetrabalhar.com scala + vraptor java ruby promocasa do código pagamentos RoR java java + RoR interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 175. and then... alumni.caelum.com.br métricas RoR alunos java + octave java + vraptor gnarus sugestondetrabalhar.com scala + vraptor java ruby promocasa do código pagamentos RoR java java + RoR interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 176. and then... alumni.caelum.com.br métricas RoR alunos java + octave java + vraptor gnarus sugestondetrabalhar.com scala + vraptor java ruby promocasa do código pagamentos RoR java java + RoR interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 177. mysql and then... alumni.caelum.com.br mysql métricas RoR alunos java + octave java + vraptor mysql gnarus sugestondetrabalhar.com scala + vraptor java ruby mysql promomysqlcasa do código pagamentos RoR java java + RoR interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 178. mysql and then... alumni.caelum.com.br mysql métricas RoR alunos java + octave redis java + vraptor mysql gnarus sugestondetrabalhar.com scala + vraptor java ruby mysql promomysqlcasa do código pagamentos RoR java redis java + RoR interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 179. mysql and then... alumni.caelum.com.br mysql métricas RoR alunos java + octave redis java + vraptorsolr mysql gnarus sugestondetrabalhar.com scala + vraptor java ruby mysql promomysqlcasa do código pagamentos RoR java redis java + RoR interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios RoR analisador 2+ 1 projeto java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js RoR RoR
  • 180. mysql and then... alumni.caelum.com.br mysql métricas RoR alunos java + octave redis java + vraptorsolr mysql gnarus sugestondetrabalhar.com scala + vraptor java ruby postgresql mysql promomysqlcasa do código pagamentos RoR java redis java + RoR postgresql interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios postgresql RoR analisador 2 postgresql+ 1 projeto postgresql java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js postgresql RoR RoR postgresql
  • 181. mysql and then... alumni.caelum.com.br mysql métricas RoR alunos java + octave redis java + vraptorsolr mysql gnarus sugestondetrabalhar.com java + vraptor java ruby postgresql mysql promomysqlcasa do código pagamentos RoR java redis java + RoR postgresql interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios postgresql RoR analisador 2 postgresql+ 1 projeto postgresql java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js postgresql RoR RoR postgresql
  • 182. mysql did you see it? alumni.caelum.com.br mysql métricas RoR alunos java + octave redis java + vraptorsolr mysql gnarus sugestondetrabalhar.com java + vraptor java ruby postgresql mysql promomysqlcasa do código pagamentos RoR java redis java + RoR postgresql interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios postgresql RoR analisador 2 postgresql+ 1 projeto postgresql java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js postgresql RoR RoR postgresql
  • 183. mysql did you see it? alumni.caelum.com.br mysql métricas RoR alunos java + octave redis java + vraptorsolr mysql gnarus sugestondetrabalhar.com java + vraptor java ruby postgresql mysql promomysqlcasa do código pagamentos RoR java redis java + RoR postgresql interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios postgresql RoR analisador 2 postgresql+ 1 projeto postgresql java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js postgresql RoR RoR postgresql
  • 184. mysql october 2012 alumni.caelum.com.br mysql métricas RoR alunos java + octave redis java + vraptorsolr mysql gnarus sugestondetrabalhar.com scala + vraptor java ruby postgresql mysql promomysqlcasa do código pagamentos RoR java redis java + RoR postgresql interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios postgresql RoR analisador 2 postgresql+ 1 projeto postgresql java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js postgresql RoR RoR postgresql
  • 185. mysql october 2012 alumni.caelum.com.br mysql métricas RoR alunos java + octave redissolr roteiro vraptor java + mysql sugest RoR gnarusondetrabalhar.com scala + vraptor java ruby postgresql mysql promomysqlcasa do código pagamentos RoR java redis java + RoR postgresql interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios postgresql RoR analisador 2 postgresql+ 1 projeto postgresql java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js postgresql RoR RoR postgresql
  • 186. mysql october 2012 alumni.caelum.com.br mysql métricas RoR alunos java + octave roteiro vraptor java + chat redissolr RoR mysql gnarus sugest ???ondetrabalhar.com scala + vraptor java ruby postgresql mysql promomysqlcasa do código pagamentos RoR java redis java + RoR postgresql interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios postgresql RoR analisador 2 postgresql+ 1 projeto postgresql java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js postgresql RoR RoR postgresql
  • 187. mysql october 2012 alumni.caelum.com.br mysql métricas RoR alunos java + octave roteiro vraptor java + chat redissolr RoR mysql gnarus sugest ???ondetrabalhar.com scala + vraptor java ruby postgresql mysql badges promomysqlcasa do código pagamentos ??? RoR java redis java + RoR postgresql interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios postgresql RoR analisador 2 postgresql+ 1 projeto postgresql java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js postgresql RoR RoR postgresql
  • 188. mysql october 2012 alumni.caelum.com.br mysql métricas RoR alunos java + octave roteiro vraptor java + chat redissolr RoR mysql gnarus sugest ???ondetrabalhar.com scala + vraptor java ruby postgresql gráfica mysql badges promomysqlcasa do código pagamentos ??? ??? RoR java redis java + RoR postgresql interestie analisador 1 + projetos sinatra + sequel sinatra sinatra + sequel exercícios postgresql RoR analisador 2 postgresql+ 1 projeto postgresql java scala + play mountable engine + 1 ‘página’ aws tickets RoR + 6 projetos js postgresql RoR RoR postgresql
  • 189. what we did
  • 190. what we did• refactor, extract project
  • 191. what we did• refactor, extract project• single responsibility micro projects
  • 192. what we did• refactor, extract project• single responsibility micro projects• dependency injection (dumb entry point configuration)
  • 193. 10s of projects
  • 194. 10s of projects• small teams (1-4 devs)
  • 195. 10s of projects• small teams (1-4 devs)• lots of micro projects (1-20 classes)
  • 196. 10s of projects• small teams (1-4 devs)• lots of micro projects (1-20 classes)• 2 medium projects (20-200 classes)
  • 197. 10s of projects• small teams (1-4 devs)• lots of micro projects (1-20 classes)• 2 medium projects (20-200 classes)• 1 big legacy project (500 classes) - bigger team
  • 198. 10s of projects• small teams (1-4 devs)• lots of micro projects (1-20 classes)• 2 medium projects (20-200 classes)• 1 big legacy project (500 classes) - bigger team• micro services
  • 199. really small services
  • 200. really small services• small service, medium project
  • 201. really small services• small service, medium project• micro teams
  • 202. really small services• small service, medium project• micro teams• if someone dies, the cost allows you to drop the code, start again
  • 203. really small services• small service, medium project• micro teams• if someone dies, the cost allows you to drop the code, start again• protocol and communication is simple and stable
  • 204. really small services• small service, medium project• micro teams• if someone dies, the cost allows you to drop the code, start again• protocol and communication is simple and stable• protocol and communication is simple and stable
  • 205. really small services• small service, medium project• micro teams• if someone dies, the cost allows you to drop the code, start again• protocol and communication is simple and stable• protocol and communication is simple and stable• protocol and communication is simple and stable
  • 206. limitations but are we not in the replicated era?
  • 207. limitations• protocol change ==> hell but are we not in the replicated era?
  • 208. limitations• protocol change ==> hell• client project needs user data ==> replicated data but are we not in the replicated era?
  • 209. limitations• protocol change ==> hell• client project needs user data ==> replicated data• other problems that we have no idea but are we not in the replicated era?
  • 210. avoid• multiple projects, same representation
  • 211. enforcing• small projects, specialized representations
  • 212. communicationchanges/evolution
  • 213. communication changes/evolution• avoid
  • 214. communication changes/evolution• avoid• avoid
  • 215. communication changes/evolution• avoid• avoid• avoid
  • 216. communication changes/evolution• avoid• avoid• avoid• avoid
  • 217. communication changes/evolution• avoid• avoid• avoid• avoid• backward compatible
  • 218. communication changes/evolution• avoid• avoid• avoid• avoid• backward compatible• feel the pain
  • 219. “How can I evolve my service since it’s going tobreak compatibility?” - unknown SOA’er
  • 220. “How can I evolve my service since it’s going tobreak compatibility?” - unknown SOA’er If it *breaks* compatibility you can not “not break compatibility” - basic reasoning
  • 221. “How can I evolve my service since it’s going tobreak compatibility?” - unknown SOA’er If it *breaks* compatibility you can not “not break compatibility” - basic reasoningHow can I prepare myself for the future, where Iam 100% sure I will want to change something? -the wise SOA’er
  • 222. “How can I evolve my service since it’s going tobreak compatibility?” - unknown SOA’er If it *breaks* compatibility you can not “not break compatibility” - basic reasoningHow can I prepare myself for the future, where Iam 100% sure I will want to change something? -the wise SOA’er “buy our product” - wise vendor
  • 223. training platform payments 3rd party provider
  • 224. create paymenttraining platform payments 3rd party provider
  • 225. create paymenttraining platform payments 3rd party provider
  • 226. create paymenttraining platform payments 3rd party provider check status
  • 227. create paymenttraining platform payments 3rd party provider check status cancel order
  • 228. create paymenttraining platform payments 3rd party provider cancel item check status cancel order
  • 229. create paymenttraining platform payments 3rd party provider cancel item check status do A, B, C cancel order
  • 230. every new feature between the 2nd and 3rdsystem means a protocol change between the 1stand the 2nd
  • 231. introducing hypermedia: simply return an URI
  • 232. training platform payments 3rd party provider
  • 233. create paymenttraining platform payments 3rd party provider
  • 234. create paymenttraining platform payments 3rd party provider
  • 235. create paymenttraining platform payments 3rd party provider your URI
  • 236. create paymenttraining platform payments 3rd party provider your URI
  • 237. changes to the 2nd system are not reflected onthe 1st anymore
  • 238. what we are trying to do
  • 239. what we are trying to do• change the online learning experience, but how?• KIS: keep it stupid, not simple• micro teams, throw away if necessary• protocol and communication are stupid and stable
  • 240. what it allows
  • 241. what it allows• simple• small stable communication• unstable projects• teams that come and go• knowledge transfer• freedom to try and trash
  • 242. the end
  • 243. Introducing Online Education to Hypermedia Guilherme Silveira guilherme.silveira@caelum.com.br