mdbe 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (688) hide show
  1. checksums.yaml +15 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +53 -0
  4. data/app.rb +182 -0
  5. data/bin/mdbe +5 -0
  6. data/config.ru +2 -0
  7. data/environment.rb +8 -0
  8. data/lib/mdbe.rb +39 -0
  9. data/lib/mdbe/action_controller_debug_patch.rb +12 -0
  10. data/lib/mdbe/code_evaluation.rb +46 -0
  11. data/lib/mdbe/database_views.rb +24 -0
  12. data/lib/mdbe/database_views/abstract_dictionary.rb +69 -0
  13. data/lib/mdbe/database_views/abstract_exception.rb +25 -0
  14. data/lib/mdbe/database_views/array.rb +28 -0
  15. data/lib/mdbe/database_views/boolean.rb +12 -0
  16. data/lib/mdbe/database_views/class.rb +46 -0
  17. data/lib/mdbe/database_views/exception.rb +3 -0
  18. data/lib/mdbe/database_views/execblock.rb +5 -0
  19. data/lib/mdbe/database_views/fixnum.rb +5 -0
  20. data/lib/mdbe/database_views/float.rb +5 -0
  21. data/lib/mdbe/database_views/globals.rb +2 -0
  22. data/lib/mdbe/database_views/gsnmethod.rb +29 -0
  23. data/lib/mdbe/database_views/hash.rb +5 -0
  24. data/lib/mdbe/database_views/maglev_record.rb +42 -0
  25. data/lib/mdbe/database_views/module.rb +103 -0
  26. data/lib/mdbe/database_views/nilclass.rb +5 -0
  27. data/lib/mdbe/database_views/object.rb +80 -0
  28. data/lib/mdbe/database_views/proc.rb +3 -0
  29. data/lib/mdbe/database_views/repository.rb +3 -0
  30. data/lib/mdbe/database_views/ruby_workspace.rb +5 -0
  31. data/lib/mdbe/database_views/smalltalk_classes.rb +34 -0
  32. data/lib/mdbe/database_views/smalltalk_classes.st +60 -0
  33. data/lib/mdbe/database_views/string.rb +31 -0
  34. data/lib/mdbe/database_views/symbol.rb +32 -0
  35. data/lib/mdbe/database_views/system.rb +61 -0
  36. data/lib/mdbe/database_views/thread.rb +101 -0
  37. data/lib/mdbe/debug_server.rb +22 -0
  38. data/lib/mdbe/halt.rb +42 -0
  39. data/lib/mdbe/ruby_workspace.rb +29 -0
  40. data/lib/mdbe/version.rb +3 -0
  41. data/lib/tasks/maglev-database-explorer_tasks.rake +4 -0
  42. data/public/LICENSE +35 -0
  43. data/public/amber/CHANGELOG +65 -0
  44. data/public/amber/LICENSE +22 -0
  45. data/public/amber/Makefile +53 -0
  46. data/public/amber/README.md +30 -0
  47. data/public/amber/bin/amber +3 -0
  48. data/public/amber/bin/amberc +352 -0
  49. data/public/amber/bin/nodecompile.js +33 -0
  50. data/public/amber/bin/server +3 -0
  51. data/public/amber/bin/server.bat +3 -0
  52. data/public/amber/css/amber-normalize.css +468 -0
  53. data/public/amber/css/amber-normalize.less +501 -0
  54. data/public/amber/css/amber.css +539 -0
  55. data/public/amber/css/documentation.css +84 -0
  56. data/public/amber/css/profstef.css +75 -0
  57. data/public/amber/css/style.css +313 -0
  58. data/public/amber/documentation.html +37 -0
  59. data/public/amber/examples/Makefile +23 -0
  60. data/public/amber/examples/README +4 -0
  61. data/public/amber/examples/android/helloamber/AndroidManifest.xml +19 -0
  62. data/public/amber/examples/android/helloamber/HelloAmber.st +13 -0
  63. data/public/amber/examples/android/helloamber/Makefile +56 -0
  64. data/public/amber/examples/android/helloamber/README.md +80 -0
  65. data/public/amber/examples/android/helloamber/ant.properties +17 -0
  66. data/public/amber/examples/android/helloamber/assets/index.html +15 -0
  67. data/public/amber/examples/android/helloamber/assets/jquery-1.7.2.min.js +4 -0
  68. data/public/amber/examples/android/helloamber/build.xml +83 -0
  69. data/public/amber/examples/android/helloamber/local.properties +10 -0
  70. data/public/amber/examples/android/helloamber/proguard-project.txt +20 -0
  71. data/public/amber/examples/android/helloamber/project.properties +14 -0
  72. data/public/amber/examples/android/helloamber/res/layout/main.xml +6 -0
  73. data/public/amber/examples/android/helloamber/res/values/strings.xml +4 -0
  74. data/public/amber/examples/android/helloamber/src/org/amberlang/android/helloamber/HelloAmber.java +59 -0
  75. data/public/amber/examples/myproject/index.html +16 -0
  76. data/public/amber/examples/nodejs/README +9 -0
  77. data/public/amber/examples/nodejs/benchfib/Benchfib.st +124 -0
  78. data/public/amber/examples/nodejs/benchfib/Makefile +8 -0
  79. data/public/amber/examples/nodejs/benchfib/benchfib +1 -0
  80. data/public/amber/examples/nodejs/hello/Hello.st +9 -0
  81. data/public/amber/examples/nodejs/hello/Makefile +8 -0
  82. data/public/amber/examples/nodejs/hello/README +13 -0
  83. data/public/amber/examples/nodejs/hello/hello +1 -0
  84. data/public/amber/examples/nodejs/meta/Makefile +8 -0
  85. data/public/amber/examples/nodejs/meta/MyScript.st +27 -0
  86. data/public/amber/examples/nodejs/meta/meta +1 -0
  87. data/public/amber/examples/nodejs/pystone/Makefile +8 -0
  88. data/public/amber/examples/nodejs/pystone/Pystone.st +306 -0
  89. data/public/amber/examples/nodejs/pystone/pystone +1 -0
  90. data/public/amber/examples/nodejs/trivialserver/Makefile +8 -0
  91. data/public/amber/examples/nodejs/trivialserver/TrivialServer.st +51 -0
  92. data/public/amber/examples/nodejs/trivialserver/trivial +1 -0
  93. data/public/amber/examples/presentation/esug2011/images/asterix.png +0 -0
  94. data/public/amber/examples/presentation/esug2011/images/background_box.png +0 -0
  95. data/public/amber/examples/presentation/esug2011/images/background_header.png +0 -0
  96. data/public/amber/examples/presentation/esug2011/images/balloon.jpg +0 -0
  97. data/public/amber/examples/presentation/esug2011/images/balloon_header.png +0 -0
  98. data/public/amber/examples/presentation/esug2011/images/devices.jpg +0 -0
  99. data/public/amber/examples/presentation/esug2011/images/enyo.png +0 -0
  100. data/public/amber/examples/presentation/esug2011/images/ide_star_wars.png +0 -0
  101. data/public/amber/examples/presentation/esug2011/images/nodejs.png +0 -0
  102. data/public/amber/examples/presentation/esug2011/images/terminal.png +0 -0
  103. data/public/amber/examples/presentation/esug2011/images/webos.png +0 -0
  104. data/public/amber/examples/presentation/fosdem2012/images/amber.png +0 -0
  105. data/public/amber/examples/presentation/fosdem2012/images/ambrhino.jpg +0 -0
  106. data/public/amber/examples/presentation/fosdem2012/images/nodejs.png +0 -0
  107. data/public/amber/examples/presentation/fosdem2012/images/pharo.png +0 -0
  108. data/public/amber/examples/presentation/fosdem2012/images/php.gif +0 -0
  109. data/public/amber/examples/presentation/fosdem2012/images/rails.png +0 -0
  110. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-next.png +0 -0
  111. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-prev.png +0 -0
  112. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/closedhand.cur +0 -0
  113. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/openhand.cur +0 -0
  114. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-back.png +0 -0
  115. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-forward.png +0 -0
  116. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow.png +0 -0
  117. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.css +100 -0
  118. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.js +1232 -0
  119. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.min.js +13 -0
  120. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.easing.1.3.js +38 -0
  121. data/public/amber/examples/presentation/index.html +17 -0
  122. data/public/amber/examples/presentation/js/Presentation.deploy.js +1922 -0
  123. data/public/amber/examples/presentation/js/Presentation.js +2712 -0
  124. data/public/amber/examples/presentation/st/Presentation.st +1996 -0
  125. data/public/amber/examples/trysmalltalk/index.html +18 -0
  126. data/public/amber/examples/trysmalltalk/js/TrySmalltalk.deploy.js +837 -0
  127. data/public/amber/examples/trysmalltalk/js/TrySmalltalk.js +1206 -0
  128. data/public/amber/examples/trysmalltalk/st/TrySmalltalk.st +964 -0
  129. data/public/amber/examples/twitterwall/css/twitterwall.css +19 -0
  130. data/public/amber/examples/twitterwall/index.html +35 -0
  131. data/public/amber/examples/twitterwall/js/TwitterWall.deploy.js +116 -0
  132. data/public/amber/examples/twitterwall/js/TwitterWall.js +146 -0
  133. data/public/amber/examples/twitterwall/st/TwitterWall.st +91 -0
  134. data/public/amber/examples/webos/README +11 -0
  135. data/public/amber/examples/webos/eris/DuckQwaq.wav +0 -0
  136. data/public/amber/examples/webos/eris/EnyoAmber.st +36 -0
  137. data/public/amber/examples/webos/eris/Eris.css +0 -0
  138. data/public/amber/examples/webos/eris/Eris.st +86 -0
  139. data/public/amber/examples/webos/eris/Makefile +37 -0
  140. data/public/amber/examples/webos/eris/README +3 -0
  141. data/public/amber/examples/webos/eris/appinfo.json +10 -0
  142. data/public/amber/examples/webos/eris/index.html +12 -0
  143. data/public/amber/examples/webos/helloamber/EnyoAmber.st +36 -0
  144. data/public/amber/examples/webos/helloamber/HelloAmber.st +86 -0
  145. data/public/amber/examples/webos/helloamber/Makefile +38 -0
  146. data/public/amber/examples/webos/helloamber/README +5 -0
  147. data/public/amber/examples/webos/helloamber/appinfo.json +10 -0
  148. data/public/amber/examples/webos/helloamber/index.html +12 -0
  149. data/public/amber/favicon.ico +0 -0
  150. data/public/amber/images/amber.png +0 -0
  151. data/public/amber/images/amber.svg +706 -0
  152. data/public/amber/images/amber_small.png +0 -0
  153. data/public/amber/images/off.amber.png +0 -0
  154. data/public/amber/images/off.png +0 -0
  155. data/public/amber/images/offHover.amber.png +0 -0
  156. data/public/amber/images/offHover.png +0 -0
  157. data/public/amber/images/presentation.png +0 -0
  158. data/public/amber/images/profstef.png +0 -0
  159. data/public/amber/images/sprite.amber.png +0 -0
  160. data/public/amber/images/sprite.png +0 -0
  161. data/public/amber/images/tinylogo.amber.png +0 -0
  162. data/public/amber/images/tinylogo.png +0 -0
  163. data/public/amber/images/twitterwall.png +0 -0
  164. data/public/amber/index.html +55 -0
  165. data/public/amber/js/Additional-Examples.deploy.js +15 -0
  166. data/public/amber/js/Additional-Examples.js +21 -0
  167. data/public/amber/js/Benchfib.deploy.js +132 -0
  168. data/public/amber/js/Benchfib.js +167 -0
  169. data/public/amber/js/Canvas.deploy.js +2446 -0
  170. data/public/amber/js/Canvas.js +3547 -0
  171. data/public/amber/js/Compiler-Tests.deploy.js +97 -0
  172. data/public/amber/js/Compiler-Tests.js +137 -0
  173. data/public/amber/js/Compiler.deploy.js +1877 -0
  174. data/public/amber/js/Compiler.js +2622 -0
  175. data/public/amber/js/Documentation.deploy.js +961 -0
  176. data/public/amber/js/Documentation.js +1376 -0
  177. data/public/amber/js/Examples.deploy.js +53 -0
  178. data/public/amber/js/Examples.js +73 -0
  179. data/public/amber/js/IDE.deploy.js +3557 -0
  180. data/public/amber/js/IDE.js +5002 -0
  181. data/public/amber/js/Kernel-Announcements.deploy.js +107 -0
  182. data/public/amber/js/Kernel-Announcements.js +152 -0
  183. data/public/amber/js/Kernel-Classes.deploy.js +774 -0
  184. data/public/amber/js/Kernel-Classes.js +1095 -0
  185. data/public/amber/js/Kernel-Collections.deploy.js +3121 -0
  186. data/public/amber/js/Kernel-Collections.js +4427 -0
  187. data/public/amber/js/Kernel-Exceptions.deploy.js +244 -0
  188. data/public/amber/js/Kernel-Exceptions.js +349 -0
  189. data/public/amber/js/Kernel-Methods.deploy.js +573 -0
  190. data/public/amber/js/Kernel-Methods.js +807 -0
  191. data/public/amber/js/Kernel-Objects.deploy.js +2877 -0
  192. data/public/amber/js/Kernel-Objects.js +4107 -0
  193. data/public/amber/js/Kernel-Tests.deploy.js +1513 -0
  194. data/public/amber/js/Kernel-Tests.js +2053 -0
  195. data/public/amber/js/Kernel-Transcript.deploy.js +142 -0
  196. data/public/amber/js/Kernel-Transcript.js +202 -0
  197. data/public/amber/js/Maglev-Core.deploy.js +2996 -0
  198. data/public/amber/js/Maglev-Core.js +4246 -0
  199. data/public/amber/js/Maglev-Database-Explorer.deploy.js +4476 -0
  200. data/public/amber/js/Maglev-Database-Explorer.js +6232 -0
  201. data/public/amber/js/Maglev-Vendor.deploy.js +350 -0
  202. data/public/amber/js/Maglev-Vendor.js +465 -0
  203. data/public/amber/js/README.md +5 -0
  204. data/public/amber/js/SUnit.deploy.js +351 -0
  205. data/public/amber/js/SUnit.js +501 -0
  206. data/public/amber/js/amber.js +273 -0
  207. data/public/amber/js/boot.js +602 -0
  208. data/public/amber/js/compat.js +22 -0
  209. data/public/amber/js/init.js +9 -0
  210. data/public/amber/js/lib/CodeMirror/LICENSE +19 -0
  211. data/public/amber/js/lib/CodeMirror/active-line.js +39 -0
  212. data/public/amber/js/lib/CodeMirror/amber.css +21 -0
  213. data/public/amber/js/lib/CodeMirror/codemirror.css +67 -0
  214. data/public/amber/js/lib/CodeMirror/codemirror.js +2144 -0
  215. data/public/amber/js/lib/CodeMirror/smalltalk.js +134 -0
  216. data/public/amber/js/lib/jQuery/jquery-1.4.4.min.js +167 -0
  217. data/public/amber/js/lib/jQuery/jquery-1.6.4.min.js +4 -0
  218. data/public/amber/js/lib/jQuery/jquery-ui-1.8.16.custom.min.js +791 -0
  219. data/public/amber/js/lib/jQuery/jquery.textarea.js +267 -0
  220. data/public/amber/js/lib/peg-0.6.2.min.js +2 -0
  221. data/public/amber/js/lib/showdown.js +419 -0
  222. data/public/amber/js/parser.js +4222 -0
  223. data/public/amber/js/parser.pegjs +223 -0
  224. data/public/amber/learn.html +40 -0
  225. data/public/amber/repl/Makefile +8 -0
  226. data/public/amber/repl/REPL.js +124 -0
  227. data/public/amber/repl/REPL.st +56 -0
  228. data/public/amber/repl/amber.js +18085 -0
  229. data/public/amber/server/FileServer.st +576 -0
  230. data/public/amber/server/Makefile +8 -0
  231. data/public/amber/server/server.js +13049 -0
  232. data/public/amber/st/Benchfib.js +297 -0
  233. data/public/amber/st/Benchfib.st +124 -0
  234. data/public/amber/st/Canvas.st +968 -0
  235. data/public/amber/st/Compiler-Tests.st +471 -0
  236. data/public/amber/st/Compiler.st +1445 -0
  237. data/public/amber/st/Documentation.st +758 -0
  238. data/public/amber/st/Examples.js +100 -0
  239. data/public/amber/st/Examples.st +38 -0
  240. data/public/amber/st/IDE.st +2404 -0
  241. data/public/amber/st/Kernel-Announcements.st +61 -0
  242. data/public/amber/st/Kernel-Classes.st +462 -0
  243. data/public/amber/st/Kernel-Collections.st +1611 -0
  244. data/public/amber/st/Kernel-Exceptions.st +124 -0
  245. data/public/amber/st/Kernel-Methods.st +291 -0
  246. data/public/amber/st/Kernel-Objects.st +1587 -0
  247. data/public/amber/st/Kernel-Tests.st +953 -0
  248. data/public/amber/st/Kernel-Transcript.st +70 -0
  249. data/public/amber/st/Maglev-Core.st +1694 -0
  250. data/public/amber/st/Maglev-Database-Explorer.st +3148 -0
  251. data/public/amber/st/Maglev-Vendor.st +151 -0
  252. data/public/amber/st/Makefile +104 -0
  253. data/public/amber/st/README.md +4 -0
  254. data/public/amber/st/SUnit.st +172 -0
  255. data/public/css/bootstrap-combined.no-icons.min.css +731 -0
  256. data/public/css/bootstrap.css +6811 -0
  257. data/public/css/images/animated-overlay.gif +0 -0
  258. data/public/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  259. data/public/css/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  260. data/public/css/images/ui-bg_flat_10_000000_40x100.png +0 -0
  261. data/public/css/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  262. data/public/css/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  263. data/public/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  264. data/public/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  265. data/public/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  266. data/public/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  267. data/public/css/images/ui-icons_222222_256x240.png +0 -0
  268. data/public/css/images/ui-icons_228ef1_256x240.png +0 -0
  269. data/public/css/images/ui-icons_ef8c08_256x240.png +0 -0
  270. data/public/css/images/ui-icons_ffd27a_256x240.png +0 -0
  271. data/public/css/images/ui-icons_ffffff_256x240.png +0 -0
  272. data/public/css/jquery-ui.min.css +5 -0
  273. data/public/css/smalltalk_code.css +42 -0
  274. data/public/css/style.css +210 -0
  275. data/public/images/bg_tile.png +0 -0
  276. data/public/images/maglev-logo.gif +0 -0
  277. data/public/images/mchammer.gif +0 -0
  278. data/public/images/rails_tiny.png +0 -0
  279. data/public/images/ruby.png +0 -0
  280. data/public/images/ruby_smalltalk_bridge.png +0 -0
  281. data/public/images/smalltalk.png +0 -0
  282. data/public/img/glyphicons-halflings.png +0 -0
  283. data/public/index.html +118 -0
  284. data/public/libs/bootstrap.min.js +7 -0
  285. data/public/libs/codemirror/CONTRIBUTING.md +72 -0
  286. data/public/libs/codemirror/LICENSE +23 -0
  287. data/public/libs/codemirror/README.md +11 -0
  288. data/public/libs/codemirror/addon/dialog/dialog.css +32 -0
  289. data/public/libs/codemirror/addon/dialog/dialog.js +80 -0
  290. data/public/libs/codemirror/addon/display/placeholder.js +54 -0
  291. data/public/libs/codemirror/addon/edit/closebrackets.js +54 -0
  292. data/public/libs/codemirror/addon/edit/closetag.js +86 -0
  293. data/public/libs/codemirror/addon/edit/continuecomment.js +44 -0
  294. data/public/libs/codemirror/addon/edit/continuelist.js +25 -0
  295. data/public/libs/codemirror/addon/edit/matchbrackets.js +82 -0
  296. data/public/libs/codemirror/addon/fold/brace-fold.js +31 -0
  297. data/public/libs/codemirror/addon/fold/foldcode.js +32 -0
  298. data/public/libs/codemirror/addon/fold/indent-fold.js +11 -0
  299. data/public/libs/codemirror/addon/fold/xml-fold.js +64 -0
  300. data/public/libs/codemirror/addon/hint/html-hint.js +582 -0
  301. data/public/libs/codemirror/addon/hint/javascript-hint.js +142 -0
  302. data/public/libs/codemirror/addon/hint/pig-hint.js +117 -0
  303. data/public/libs/codemirror/addon/hint/python-hint.js +93 -0
  304. data/public/libs/codemirror/addon/hint/show-hint.css +38 -0
  305. data/public/libs/codemirror/addon/hint/show-hint.js +180 -0
  306. data/public/libs/codemirror/addon/hint/xml-hint.js +118 -0
  307. data/public/libs/codemirror/addon/lint/javascript-lint.js +127 -0
  308. data/public/libs/codemirror/addon/lint/json-lint.js +14 -0
  309. data/public/libs/codemirror/addon/lint/lint.css +96 -0
  310. data/public/libs/codemirror/addon/lint/lint.js +197 -0
  311. data/public/libs/codemirror/addon/mode/loadmode.js +51 -0
  312. data/public/libs/codemirror/addon/mode/multiplex.js +95 -0
  313. data/public/libs/codemirror/addon/mode/overlay.js +59 -0
  314. data/public/libs/codemirror/addon/runmode/colorize.js +29 -0
  315. data/public/libs/codemirror/addon/runmode/runmode-standalone.js +130 -0
  316. data/public/libs/codemirror/addon/runmode/runmode.js +52 -0
  317. data/public/libs/codemirror/addon/runmode/runmode.node.js +89 -0
  318. data/public/libs/codemirror/addon/search/match-highlighter.js +60 -0
  319. data/public/libs/codemirror/addon/search/search.js +131 -0
  320. data/public/libs/codemirror/addon/search/searchcursor.js +133 -0
  321. data/public/libs/codemirror/addon/selection/active-line.js +39 -0
  322. data/public/libs/codemirror/addon/selection/mark-selection.js +34 -0
  323. data/public/libs/codemirror/bin/compress +91 -0
  324. data/public/libs/codemirror/bin/lint +11 -0
  325. data/public/libs/codemirror/demo/activeline.html +70 -0
  326. data/public/libs/codemirror/demo/bidi.html +61 -0
  327. data/public/libs/codemirror/demo/btree.html +87 -0
  328. data/public/libs/codemirror/demo/buffers.html +98 -0
  329. data/public/libs/codemirror/demo/changemode.html +50 -0
  330. data/public/libs/codemirror/demo/closebrackets.html +63 -0
  331. data/public/libs/codemirror/demo/closetag.html +37 -0
  332. data/public/libs/codemirror/demo/complete.html +70 -0
  333. data/public/libs/codemirror/demo/emacs.html +60 -0
  334. data/public/libs/codemirror/demo/folding.html +69 -0
  335. data/public/libs/codemirror/demo/fullscreen.html +147 -0
  336. data/public/libs/codemirror/demo/html5complete.html +92 -0
  337. data/public/libs/codemirror/demo/indentwrap.html +49 -0
  338. data/public/libs/codemirror/demo/lint.html +90 -0
  339. data/public/libs/codemirror/demo/loadmode.html +40 -0
  340. data/public/libs/codemirror/demo/marker.html +59 -0
  341. data/public/libs/codemirror/demo/markselection.html +36 -0
  342. data/public/libs/codemirror/demo/matchhighlighter.html +38 -0
  343. data/public/libs/codemirror/demo/multiplex.html +60 -0
  344. data/public/libs/codemirror/demo/mustache.html +59 -0
  345. data/public/libs/codemirror/demo/placeholder.html +36 -0
  346. data/public/libs/codemirror/demo/preview.html +76 -0
  347. data/public/libs/codemirror/demo/resize.html +49 -0
  348. data/public/libs/codemirror/demo/runmode.html +50 -0
  349. data/public/libs/codemirror/demo/search.html +85 -0
  350. data/public/libs/codemirror/demo/spanaffectswrapping_shim.html +73 -0
  351. data/public/libs/codemirror/demo/theme.html +89 -0
  352. data/public/libs/codemirror/demo/variableheight.html +52 -0
  353. data/public/libs/codemirror/demo/vim.html +65 -0
  354. data/public/libs/codemirror/demo/visibletabs.html +53 -0
  355. data/public/libs/codemirror/demo/widget.html +74 -0
  356. data/public/libs/codemirror/demo/xmlcomplete.html +81 -0
  357. data/public/libs/codemirror/index.html +487 -0
  358. data/public/libs/codemirror/keymap/emacs.js +30 -0
  359. data/public/libs/codemirror/keymap/vim.js +3044 -0
  360. data/public/libs/codemirror/lib/codemirror.css +253 -0
  361. data/public/libs/codemirror/lib/codemirror.js +5585 -0
  362. data/public/libs/codemirror/mode/apl/apl.js +160 -0
  363. data/public/libs/codemirror/mode/apl/index.html +61 -0
  364. data/public/libs/codemirror/mode/asterisk/asterisk.js +183 -0
  365. data/public/libs/codemirror/mode/asterisk/index.html +142 -0
  366. data/public/libs/codemirror/mode/clike/clike.js +302 -0
  367. data/public/libs/codemirror/mode/clike/index.html +103 -0
  368. data/public/libs/codemirror/mode/clike/scala.html +767 -0
  369. data/public/libs/codemirror/mode/clojure/clojure.js +222 -0
  370. data/public/libs/codemirror/mode/clojure/index.html +76 -0
  371. data/public/libs/codemirror/mode/coffeescript/LICENSE +22 -0
  372. data/public/libs/codemirror/mode/coffeescript/coffeescript.js +346 -0
  373. data/public/libs/codemirror/mode/coffeescript/index.html +728 -0
  374. data/public/libs/codemirror/mode/commonlisp/commonlisp.js +101 -0
  375. data/public/libs/codemirror/mode/commonlisp/index.html +165 -0
  376. data/public/libs/codemirror/mode/css/css.js +567 -0
  377. data/public/libs/codemirror/mode/css/index.html +58 -0
  378. data/public/libs/codemirror/mode/css/scss.html +145 -0
  379. data/public/libs/codemirror/mode/css/scss_test.js +80 -0
  380. data/public/libs/codemirror/mode/css/test.js +113 -0
  381. data/public/libs/codemirror/mode/d/d.js +205 -0
  382. data/public/libs/codemirror/mode/d/index.html +262 -0
  383. data/public/libs/codemirror/mode/diff/diff.js +32 -0
  384. data/public/libs/codemirror/mode/diff/index.html +105 -0
  385. data/public/libs/codemirror/mode/ecl/ecl.js +192 -0
  386. data/public/libs/codemirror/mode/ecl/index.html +39 -0
  387. data/public/libs/codemirror/mode/erlang/erlang.js +463 -0
  388. data/public/libs/codemirror/mode/erlang/index.html +64 -0
  389. data/public/libs/codemirror/mode/gas/gas.js +326 -0
  390. data/public/libs/codemirror/mode/gas/index.html +57 -0
  391. data/public/libs/codemirror/mode/gfm/gfm.js +96 -0
  392. data/public/libs/codemirror/mode/gfm/index.html +74 -0
  393. data/public/libs/codemirror/mode/gfm/test.js +112 -0
  394. data/public/libs/codemirror/mode/go/go.js +165 -0
  395. data/public/libs/codemirror/mode/go/index.html +74 -0
  396. data/public/libs/codemirror/mode/groovy/groovy.js +210 -0
  397. data/public/libs/codemirror/mode/groovy/index.html +73 -0
  398. data/public/libs/codemirror/mode/haskell/haskell.js +242 -0
  399. data/public/libs/codemirror/mode/haskell/index.html +62 -0
  400. data/public/libs/codemirror/mode/haxe/haxe.js +429 -0
  401. data/public/libs/codemirror/mode/haxe/index.html +90 -0
  402. data/public/libs/codemirror/mode/htmlembedded/htmlembedded.js +73 -0
  403. data/public/libs/codemirror/mode/htmlembedded/index.html +49 -0
  404. data/public/libs/codemirror/mode/htmlmixed/htmlmixed.js +104 -0
  405. data/public/libs/codemirror/mode/htmlmixed/index.html +73 -0
  406. data/public/libs/codemirror/mode/http/http.js +98 -0
  407. data/public/libs/codemirror/mode/http/index.html +32 -0
  408. data/public/libs/codemirror/mode/javascript/index.html +92 -0
  409. data/public/libs/codemirror/mode/javascript/javascript.js +467 -0
  410. data/public/libs/codemirror/mode/javascript/typescript.html +48 -0
  411. data/public/libs/codemirror/mode/jinja2/index.html +38 -0
  412. data/public/libs/codemirror/mode/jinja2/jinja2.js +42 -0
  413. data/public/libs/codemirror/mode/less/index.html +741 -0
  414. data/public/libs/codemirror/mode/less/less.js +266 -0
  415. data/public/libs/codemirror/mode/livescript/LICENSE +23 -0
  416. data/public/libs/codemirror/mode/livescript/index.html +446 -0
  417. data/public/libs/codemirror/mode/livescript/livescript.js +267 -0
  418. data/public/libs/codemirror/mode/livescript/livescript.ls +266 -0
  419. data/public/libs/codemirror/mode/lua/index.html +74 -0
  420. data/public/libs/codemirror/mode/lua/lua.js +140 -0
  421. data/public/libs/codemirror/mode/markdown/index.html +344 -0
  422. data/public/libs/codemirror/mode/markdown/markdown.js +526 -0
  423. data/public/libs/codemirror/mode/markdown/test.js +636 -0
  424. data/public/libs/codemirror/mode/meta.js +75 -0
  425. data/public/libs/codemirror/mode/mirc/index.html +149 -0
  426. data/public/libs/codemirror/mode/mirc/mirc.js +177 -0
  427. data/public/libs/codemirror/mode/ntriples/index.html +33 -0
  428. data/public/libs/codemirror/mode/ntriples/ntriples.js +170 -0
  429. data/public/libs/codemirror/mode/ocaml/index.html +131 -0
  430. data/public/libs/codemirror/mode/ocaml/ocaml.js +113 -0
  431. data/public/libs/codemirror/mode/pascal/LICENSE +7 -0
  432. data/public/libs/codemirror/mode/pascal/index.html +48 -0
  433. data/public/libs/codemirror/mode/pascal/pascal.js +94 -0
  434. data/public/libs/codemirror/mode/perl/LICENSE +19 -0
  435. data/public/libs/codemirror/mode/perl/index.html +62 -0
  436. data/public/libs/codemirror/mode/perl/perl.js +816 -0
  437. data/public/libs/codemirror/mode/php/index.html +51 -0
  438. data/public/libs/codemirror/mode/php/php.js +129 -0
  439. data/public/libs/codemirror/mode/pig/index.html +42 -0
  440. data/public/libs/codemirror/mode/pig/pig.js +171 -0
  441. data/public/libs/codemirror/mode/properties/index.html +41 -0
  442. data/public/libs/codemirror/mode/properties/properties.js +63 -0
  443. data/public/libs/codemirror/mode/python/LICENSE.txt +21 -0
  444. data/public/libs/codemirror/mode/python/index.html +135 -0
  445. data/public/libs/codemirror/mode/python/python.js +340 -0
  446. data/public/libs/codemirror/mode/q/index.html +131 -0
  447. data/public/libs/codemirror/mode/q/q.js +124 -0
  448. data/public/libs/codemirror/mode/r/LICENSE +24 -0
  449. data/public/libs/codemirror/mode/r/index.html +74 -0
  450. data/public/libs/codemirror/mode/r/r.js +141 -0
  451. data/public/libs/codemirror/mode/rpm/changes/changes.js +19 -0
  452. data/public/libs/codemirror/mode/rpm/changes/index.html +53 -0
  453. data/public/libs/codemirror/mode/rpm/spec/index.html +99 -0
  454. data/public/libs/codemirror/mode/rpm/spec/spec.css +5 -0
  455. data/public/libs/codemirror/mode/rpm/spec/spec.js +66 -0
  456. data/public/libs/codemirror/mode/rst/LICENSE.txt +21 -0
  457. data/public/libs/codemirror/mode/rst/index.html +524 -0
  458. data/public/libs/codemirror/mode/rst/rst.js +550 -0
  459. data/public/libs/codemirror/mode/ruby/LICENSE +24 -0
  460. data/public/libs/codemirror/mode/ruby/index.html +173 -0
  461. data/public/libs/codemirror/mode/ruby/ruby.js +197 -0
  462. data/public/libs/codemirror/mode/rust/index.html +48 -0
  463. data/public/libs/codemirror/mode/rust/rust.js +432 -0
  464. data/public/libs/codemirror/mode/sass/index.html +54 -0
  465. data/public/libs/codemirror/mode/sass/sass.js +349 -0
  466. data/public/libs/codemirror/mode/scheme/index.html +65 -0
  467. data/public/libs/codemirror/mode/scheme/scheme.js +230 -0
  468. data/public/libs/codemirror/mode/shell/index.html +51 -0
  469. data/public/libs/codemirror/mode/shell/shell.js +118 -0
  470. data/public/libs/codemirror/mode/sieve/LICENSE +19 -0
  471. data/public/libs/codemirror/mode/sieve/index.html +81 -0
  472. data/public/libs/codemirror/mode/sieve/sieve.js +183 -0
  473. data/public/libs/codemirror/mode/smalltalk/index.html +57 -0
  474. data/public/libs/codemirror/mode/smalltalk/smalltalk.js +141 -0
  475. data/public/libs/codemirror/mode/smarty/index.html +83 -0
  476. data/public/libs/codemirror/mode/smarty/smarty.js +148 -0
  477. data/public/libs/codemirror/mode/sparql/index.html +42 -0
  478. data/public/libs/codemirror/mode/sparql/sparql.js +143 -0
  479. data/public/libs/codemirror/mode/sql/index.html +68 -0
  480. data/public/libs/codemirror/mode/sql/sql.js +268 -0
  481. data/public/libs/codemirror/mode/stex/index.html +98 -0
  482. data/public/libs/codemirror/mode/stex/stex.js +246 -0
  483. data/public/libs/codemirror/mode/stex/test.js +117 -0
  484. data/public/libs/codemirror/mode/tcl/index.html +129 -0
  485. data/public/libs/codemirror/mode/tcl/tcl.js +131 -0
  486. data/public/libs/codemirror/mode/tiddlywiki/index.html +142 -0
  487. data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  488. data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.js +353 -0
  489. data/public/libs/codemirror/mode/tiki/index.html +81 -0
  490. data/public/libs/codemirror/mode/tiki/tiki.css +26 -0
  491. data/public/libs/codemirror/mode/tiki/tiki.js +308 -0
  492. data/public/libs/codemirror/mode/turtle/index.html +39 -0
  493. data/public/libs/codemirror/mode/turtle/turtle.js +145 -0
  494. data/public/libs/codemirror/mode/vb/LICENSE.txt +21 -0
  495. data/public/libs/codemirror/mode/vb/index.html +88 -0
  496. data/public/libs/codemirror/mode/vb/vb.js +259 -0
  497. data/public/libs/codemirror/mode/vbscript/index.html +42 -0
  498. data/public/libs/codemirror/mode/vbscript/vbscript.js +26 -0
  499. data/public/libs/codemirror/mode/velocity/index.html +103 -0
  500. data/public/libs/codemirror/mode/velocity/velocity.js +144 -0
  501. data/public/libs/codemirror/mode/verilog/index.html +121 -0
  502. data/public/libs/codemirror/mode/verilog/verilog.js +182 -0
  503. data/public/libs/codemirror/mode/xml/index.html +45 -0
  504. data/public/libs/codemirror/mode/xml/xml.js +328 -0
  505. data/public/libs/codemirror/mode/xquery/LICENSE +20 -0
  506. data/public/libs/codemirror/mode/xquery/index.html +221 -0
  507. data/public/libs/codemirror/mode/xquery/test.js +64 -0
  508. data/public/libs/codemirror/mode/xquery/xquery.js +450 -0
  509. data/public/libs/codemirror/mode/yaml/index.html +68 -0
  510. data/public/libs/codemirror/mode/yaml/yaml.js +95 -0
  511. data/public/libs/codemirror/mode/z80/index.html +39 -0
  512. data/public/libs/codemirror/mode/z80/z80.js +85 -0
  513. data/public/libs/codemirror/package.json +21 -0
  514. data/public/libs/codemirror/test/doc_test.js +329 -0
  515. data/public/libs/codemirror/test/driver.js +138 -0
  516. data/public/libs/codemirror/test/index.html +182 -0
  517. data/public/libs/codemirror/test/lint/acorn.js +1593 -0
  518. data/public/libs/codemirror/test/lint/lint.js +112 -0
  519. data/public/libs/codemirror/test/lint/parse-js.js +1372 -0
  520. data/public/libs/codemirror/test/lint/walk.js +216 -0
  521. data/public/libs/codemirror/test/mode_test.css +10 -0
  522. data/public/libs/codemirror/test/mode_test.js +192 -0
  523. data/public/libs/codemirror/test/phantom_driver.js +31 -0
  524. data/public/libs/codemirror/test/run.js +33 -0
  525. data/public/libs/codemirror/test/test.js +1400 -0
  526. data/public/libs/codemirror/test/vim_test.js +1688 -0
  527. data/public/libs/codemirror/theme/ambiance-mobile.css +5 -0
  528. data/public/libs/codemirror/theme/ambiance.css +75 -0
  529. data/public/libs/codemirror/theme/blackboard.css +25 -0
  530. data/public/libs/codemirror/theme/cobalt.css +18 -0
  531. data/public/libs/codemirror/theme/eclipse.css +25 -0
  532. data/public/libs/codemirror/theme/elegant.css +10 -0
  533. data/public/libs/codemirror/theme/erlang-dark.css +21 -0
  534. data/public/libs/codemirror/theme/lesser-dark.css +44 -0
  535. data/public/libs/codemirror/theme/midnight.css +52 -0
  536. data/public/libs/codemirror/theme/monokai.css +28 -0
  537. data/public/libs/codemirror/theme/neat.css +9 -0
  538. data/public/libs/codemirror/theme/night.css +21 -0
  539. data/public/libs/codemirror/theme/rubyblue.css +21 -0
  540. data/public/libs/codemirror/theme/solarized.css +207 -0
  541. data/public/libs/codemirror/theme/twilight.css +26 -0
  542. data/public/libs/codemirror/theme/vibrant-ink.css +27 -0
  543. data/public/libs/codemirror/theme/xq-dark.css +46 -0
  544. data/public/libs/codemirror/theme/xq-light.css +43 -0
  545. data/public/libs/font-awesome/css/font-awesome-ie7.css +983 -0
  546. data/public/libs/font-awesome/css/font-awesome-ie7.min.css +24 -0
  547. data/public/libs/font-awesome/css/font-awesome.css +1268 -0
  548. data/public/libs/font-awesome/css/font-awesome.min.css +24 -0
  549. data/public/libs/font-awesome/font/FontAwesome.otf +0 -0
  550. data/public/libs/font-awesome/font/fontawesome-webfont.eot +0 -0
  551. data/public/libs/font-awesome/font/fontawesome-webfont.svg +339 -0
  552. data/public/libs/font-awesome/font/fontawesome-webfont.ttf +0 -0
  553. data/public/libs/font-awesome/font/fontawesome-webfont.woff +0 -0
  554. data/public/libs/font-awesome/less/bootstrap.less +78 -0
  555. data/public/libs/font-awesome/less/core.less +132 -0
  556. data/public/libs/font-awesome/less/extras.less +79 -0
  557. data/public/libs/font-awesome/less/font-awesome-ie7.less +413 -0
  558. data/public/libs/font-awesome/less/font-awesome.less +32 -0
  559. data/public/libs/font-awesome/less/icons.less +330 -0
  560. data/public/libs/font-awesome/less/mixins.less +34 -0
  561. data/public/libs/font-awesome/less/path.less +15 -0
  562. data/public/libs/font-awesome/less/variables.less +9 -0
  563. data/public/libs/jquery-1.10.0.min.js +6 -0
  564. data/public/libs/jquery-ui.min.js +12 -0
  565. data/public/libs/jquery.jsPlumb-1.4.0-all.js +9571 -0
  566. data/public/libs/jquery.livequery.js +226 -0
  567. data/public/libs/jsPlumbInitializer.js +72 -0
  568. data/public/libs/jstree/README.txt +10 -0
  569. data/public/libs/jstree/_demo/_dump.sql +20 -0
  570. data/public/libs/jstree/_demo/_inc/__mysql_errors.log +0 -0
  571. data/public/libs/jstree/_demo/_inc/class._database.php +146 -0
  572. data/public/libs/jstree/_demo/_inc/class._database_i.php +152 -0
  573. data/public/libs/jstree/_demo/_inc/class.tree.php +602 -0
  574. data/public/libs/jstree/_demo/_install.txt +6 -0
  575. data/public/libs/jstree/_demo/config.php +14 -0
  576. data/public/libs/jstree/_demo/file.png +0 -0
  577. data/public/libs/jstree/_demo/folder.png +0 -0
  578. data/public/libs/jstree/_demo/index.html +461 -0
  579. data/public/libs/jstree/_demo/root.png +0 -0
  580. data/public/libs/jstree/_demo/server.php +69 -0
  581. data/public/libs/jstree/_docs/!style.css +48 -0
  582. data/public/libs/jstree/_docs/_drive.png +0 -0
  583. data/public/libs/jstree/_docs/_html_data.html +2 -0
  584. data/public/libs/jstree/_docs/_json_data.json +4 -0
  585. data/public/libs/jstree/_docs/_search_data.json +6 -0
  586. data/public/libs/jstree/_docs/_search_result.json +1 -0
  587. data/public/libs/jstree/_docs/_xml_flat.xml +12 -0
  588. data/public/libs/jstree/_docs/_xml_nest.xml +18 -0
  589. data/public/libs/jstree/_docs/checkbox.html +171 -0
  590. data/public/libs/jstree/_docs/contextmenu.html +121 -0
  591. data/public/libs/jstree/_docs/cookies.html +97 -0
  592. data/public/libs/jstree/_docs/core.html +689 -0
  593. data/public/libs/jstree/_docs/crrm.html +316 -0
  594. data/public/libs/jstree/_docs/dnd.html +199 -0
  595. data/public/libs/jstree/_docs/hotkeys.html +82 -0
  596. data/public/libs/jstree/_docs/html_data.html +175 -0
  597. data/public/libs/jstree/_docs/index.html +86 -0
  598. data/public/libs/jstree/_docs/json_data.html +249 -0
  599. data/public/libs/jstree/_docs/languages.html +152 -0
  600. data/public/libs/jstree/_docs/logo.png +0 -0
  601. data/public/libs/jstree/_docs/search.html +153 -0
  602. data/public/libs/jstree/_docs/sort.html +85 -0
  603. data/public/libs/jstree/_docs/syntax/!script.js +2232 -0
  604. data/public/libs/jstree/_docs/syntax/!style.css +511 -0
  605. data/public/libs/jstree/_docs/syntax/clipboard.swf +0 -0
  606. data/public/libs/jstree/_docs/syntax/help.png +0 -0
  607. data/public/libs/jstree/_docs/syntax/magnifier.png +0 -0
  608. data/public/libs/jstree/_docs/syntax/page_white_code.png +0 -0
  609. data/public/libs/jstree/_docs/syntax/page_white_copy.png +0 -0
  610. data/public/libs/jstree/_docs/syntax/printer.png +0 -0
  611. data/public/libs/jstree/_docs/syntax/wrapping.png +0 -0
  612. data/public/libs/jstree/_docs/themeroller.html +107 -0
  613. data/public/libs/jstree/_docs/themes.html +127 -0
  614. data/public/libs/jstree/_docs/types.html +178 -0
  615. data/public/libs/jstree/_docs/ui.html +197 -0
  616. data/public/libs/jstree/_docs/unique.html +85 -0
  617. data/public/libs/jstree/_docs/xml_data.html +218 -0
  618. data/public/libs/jstree/_lib/jquery.cookie.js +96 -0
  619. data/public/libs/jstree/_lib/jquery.hotkeys.js +99 -0
  620. data/public/libs/jstree/_lib/jquery.js +5 -0
  621. data/public/libs/jstree/jquery.jstree.js +4564 -0
  622. data/public/libs/jstree/themes/apple/bg.jpg +0 -0
  623. data/public/libs/jstree/themes/apple/d.png +0 -0
  624. data/public/libs/jstree/themes/apple/dot_for_ie.gif +0 -0
  625. data/public/libs/jstree/themes/apple/style.css +61 -0
  626. data/public/libs/jstree/themes/apple/throbber.gif +0 -0
  627. data/public/libs/jstree/themes/classic/d.gif +0 -0
  628. data/public/libs/jstree/themes/classic/d.png +0 -0
  629. data/public/libs/jstree/themes/classic/dot_for_ie.gif +0 -0
  630. data/public/libs/jstree/themes/classic/style.css +77 -0
  631. data/public/libs/jstree/themes/classic/throbber.gif +0 -0
  632. data/public/libs/jstree/themes/default-rtl/d.gif +0 -0
  633. data/public/libs/jstree/themes/default-rtl/d.png +0 -0
  634. data/public/libs/jstree/themes/default-rtl/dots.gif +0 -0
  635. data/public/libs/jstree/themes/default-rtl/style.css +84 -0
  636. data/public/libs/jstree/themes/default-rtl/throbber.gif +0 -0
  637. data/public/libs/jstree/themes/default/d.gif +0 -0
  638. data/public/libs/jstree/themes/default/d.png +0 -0
  639. data/public/libs/jstree/themes/default/style.css +74 -0
  640. data/public/libs/jstree/themes/default/throbber.gif +0 -0
  641. data/public/themes/geo-bootstrap/README.md +25 -0
  642. data/public/themes/geo-bootstrap/img/flames.gif +0 -0
  643. data/public/themes/geo-bootstrap/img/glyphicons-halflings-white.png +0 -0
  644. data/public/themes/geo-bootstrap/img/glyphicons-halflings.png +0 -0
  645. data/public/themes/geo-bootstrap/img/microfab.gif +0 -0
  646. data/public/themes/geo-bootstrap/img/progress.gif +0 -0
  647. data/public/themes/geo-bootstrap/img/rainbow.gif +0 -0
  648. data/public/themes/geo-bootstrap/img/stars.gif +0 -0
  649. data/public/themes/geo-bootstrap/img/test/7upspot.gif +0 -0
  650. data/public/themes/geo-bootstrap/img/test/americanflag.gif +0 -0
  651. data/public/themes/geo-bootstrap/img/test/community.gif +0 -0
  652. data/public/themes/geo-bootstrap/img/test/computer-01.gif +0 -0
  653. data/public/themes/geo-bootstrap/img/test/computer.gif +0 -0
  654. data/public/themes/geo-bootstrap/img/test/construction.gif +0 -0
  655. data/public/themes/geo-bootstrap/img/test/counter.gif +0 -0
  656. data/public/themes/geo-bootstrap/img/test/counter2.gif +0 -0
  657. data/public/themes/geo-bootstrap/img/test/divider.gif +0 -0
  658. data/public/themes/geo-bootstrap/img/test/divider1.gif +0 -0
  659. data/public/themes/geo-bootstrap/img/test/divider2.gif +0 -0
  660. data/public/themes/geo-bootstrap/img/test/divider3.gif +0 -0
  661. data/public/themes/geo-bootstrap/img/test/divider4.gif +0 -0
  662. data/public/themes/geo-bootstrap/img/test/drudgesiren.gif +0 -0
  663. data/public/themes/geo-bootstrap/img/test/emailme.gif +0 -0
  664. data/public/themes/geo-bootstrap/img/test/funky.gif +0 -0
  665. data/public/themes/geo-bootstrap/img/test/geocities.jpg +0 -0
  666. data/public/themes/geo-bootstrap/img/test/hacker.gif +0 -0
  667. data/public/themes/geo-bootstrap/img/test/heart.gif +0 -0
  668. data/public/themes/geo-bootstrap/img/test/hot.gif +0 -0
  669. data/public/themes/geo-bootstrap/img/test/ie_logo.gif +0 -0
  670. data/public/themes/geo-bootstrap/img/test/mailkitten.gif +0 -0
  671. data/public/themes/geo-bootstrap/img/test/mchammer.gif +0 -0
  672. data/public/themes/geo-bootstrap/img/test/new.gif +0 -0
  673. data/public/themes/geo-bootstrap/img/test/new2.gif +0 -0
  674. data/public/themes/geo-bootstrap/img/test/noframes.gif +0 -0
  675. data/public/themes/geo-bootstrap/img/test/notepad.gif +0 -0
  676. data/public/themes/geo-bootstrap/img/test/ns_logo.gif +0 -0
  677. data/public/themes/geo-bootstrap/img/test/sign-in.gif +0 -0
  678. data/public/themes/geo-bootstrap/img/test/spinningearth.gif +0 -0
  679. data/public/themes/geo-bootstrap/img/test/underconstruction.gif +0 -0
  680. data/public/themes/geo-bootstrap/img/test/wabwalk.gif +0 -0
  681. data/public/themes/geo-bootstrap/img/test/webtrips.gif +0 -0
  682. data/public/themes/geo-bootstrap/img/test/yahooweek.gif +0 -0
  683. data/public/themes/geo-bootstrap/package.json +21 -0
  684. data/public/themes/geo-bootstrap/swatch/bootstrap-responsive.css +1109 -0
  685. data/public/themes/geo-bootstrap/swatch/bootstrap-responsive.min.css +9 -0
  686. data/public/themes/geo-bootstrap/swatch/bootstrap.css +6462 -0
  687. data/public/themes/geo-bootstrap/swatch/bootstrap.min.css +9 -0
  688. metadata +791 -0
@@ -0,0 +1,1996 @@
1
+ Smalltalk current createPackage: 'Presentation' properties: #{}!
2
+ Widget subclass: #Slide
3
+ instanceVariableNames: 'presentation'
4
+ category: 'Presentation'!
5
+
6
+ !Slide methodsFor: 'accessing'!
7
+
8
+ presentation
9
+ ^presentation
10
+ !
11
+
12
+ presentation: aPresentation
13
+ presentation := aPresentation
14
+ !
15
+
16
+ id
17
+ ^ self class name
18
+ !
19
+
20
+ cssClass
21
+ ^'slide'
22
+ !
23
+
24
+ backgroundColor
25
+ ^'#555'
26
+ !
27
+
28
+ title
29
+ ^ self id
30
+ ! !
31
+
32
+ !Slide methodsFor: 'actions'!
33
+
34
+ show
35
+ self backgroundColor ifNotNil: [
36
+ (window jQuery: '#slides') css: 'background' color: self backgroundColor].
37
+ (window jQuery: '.slide') hide: self presentation slideTransition options: #() duration: 300.
38
+ (window jQuery: '#', self id) show: self presentation slideTransition options: #() duration: 300.
39
+ ! !
40
+
41
+ !Slide methodsFor: 'rendering'!
42
+
43
+ renderOn: html
44
+ html div class: self cssClass; id: self id; with: [
45
+ self renderSlideOn: html.
46
+ self renderMetaOn: html]
47
+ !
48
+
49
+ renderSlideOn: html
50
+ !
51
+
52
+ renderMetaOn: html
53
+ html div
54
+ id: 'meta';
55
+ with: [
56
+ html p class: 'title'; with: self presentation title.
57
+ html p class: 'description'; with: self presentation description.
58
+ html a class: 'author'; with: self presentation author; href: 'mailto:', self presentation email.
59
+ html a class: 'url'; with: self presentation url; href: self presentation url]
60
+ ! !
61
+
62
+ !Slide class methodsFor: 'instance creation'!
63
+
64
+ on: aPresentation
65
+ ^self new
66
+ presentation: aPresentation;
67
+ yourself
68
+ ! !
69
+
70
+ Widget subclass: #PresentationNavigator
71
+ instanceVariableNames: 'presentationBrush currentPresentation slideSelect'
72
+ category: 'Presentation'!
73
+
74
+ !PresentationNavigator methodsFor: 'accessing'!
75
+
76
+ currentPresentation: aPresentation
77
+ currentPresentation := aPresentation.
78
+ !
79
+
80
+ currentPresentation
81
+ ^ currentPresentation ifNil: [currentPresentation := Presentation concretePresentations first new].
82
+ !
83
+
84
+ style
85
+ ^ '
86
+ #navigator {
87
+ z-index: 1;
88
+ position: fixed;
89
+ top: 0;
90
+ left: 50%;
91
+ margin-left: -150px;
92
+ padding: 5px;
93
+ border-radius: 5px;
94
+ -moz-border-radius: 5px;
95
+ -webkit-border-radius: 5px;
96
+ background: #333;
97
+ opacity: 0.3;
98
+ color: #eee;
99
+ }
100
+
101
+ #navigator a {
102
+ font-weight: bold;
103
+ color: #eee;
104
+ text-decoration: none;
105
+ cursor: pointer;
106
+ padding: 0 2px;
107
+ font-size: 14px;
108
+ }
109
+
110
+ #navigator:hover {
111
+ opacity: 0.8;
112
+ }
113
+ '
114
+ ! !
115
+
116
+ !PresentationNavigator methodsFor: 'callbacks'!
117
+
118
+ selectPresentation: aPresentationClass
119
+ self currentPresentation: aPresentationClass new.
120
+ self renderCurrentPresentation.
121
+ !
122
+
123
+ selectPresentationNamed: aString
124
+ |presentationClass|
125
+ presentationClass := (Smalltalk current at: aString).
126
+ presentationClass ifNotNil: [ self selectPresentation: presentationClass ].
127
+ !
128
+
129
+ previousSlide
130
+ self currentPresentation previousSlide.
131
+ self updateHash.
132
+ !
133
+
134
+ nextSlide
135
+ self currentPresentation nextSlide.
136
+ self updateHash.
137
+ !
138
+
139
+ reload
140
+ |slideIndex|
141
+ slideIndex := self currentPresentation currentSlideIndex.
142
+ self currentPresentation: self currentPresentation class new.
143
+ self renderCurrentPresentation.
144
+ self selectSlideAt: slideIndex.
145
+ !
146
+
147
+ selectSlideAt: anInteger
148
+ self currentPresentation moveAt: anInteger.
149
+ self updateHash.
150
+ !
151
+
152
+ updateHash
153
+ document location hash: self currentPresentation class name, '-', self currentPresentation currentSlideIndex.
154
+ ! !
155
+
156
+ !PresentationNavigator methodsFor: 'hash'!
157
+
158
+ checkHash
159
+ | hash presentation |
160
+ hash := (document location hash replace: '^#' with: '') tokenize: '-'.
161
+ presentation := Presentation concretePresentations
162
+ detect: [:aPresentationClass | aPresentationClass name == hash first]
163
+ ifNone: [^ self].
164
+ presentation == self currentPresentation class ifFalse: [
165
+ self selectPresentationNamed: presentation.
166
+ self selectSlideAt: hash last
167
+ ].
168
+ !
169
+
170
+ checkHashChange
171
+ (window jQuery: window) bind: 'hashchange' do: [self checkHash]
172
+ ! !
173
+
174
+ !PresentationNavigator methodsFor: 'keybindings'!
175
+
176
+ setKeybindings
177
+ (window jQuery: document) keyup: [:e || node |
178
+ node := e target nodeName asLowercase.
179
+ (node = 'textarea' or: [node = 'input']) ifFalse: [
180
+ e keyCode = 39 ifTrue: [self nextSlide].
181
+ e keyCode = 37 ifTrue: [self previousSlide]]]
182
+ ! !
183
+
184
+ !PresentationNavigator methodsFor: 'rendering'!
185
+
186
+ renderToolsOn: html
187
+ html a
188
+ with: 'IDE';
189
+ onClick: [TabManager current open].
190
+ html a
191
+ with: 'Reload';
192
+ onClick: [self reload].
193
+ html a
194
+ with: '←';
195
+ onClick: [self previousSlide].
196
+ html a
197
+ with: '→';
198
+ onClick: [self nextSlide].
199
+ !
200
+
201
+ renderPresentationSelectOn: html
202
+ |presentationSelect|
203
+ presentationSelect := html select.
204
+ presentationSelect
205
+ onChange: [self selectPresentationNamed: presentationSelect asJQuery val];
206
+ with: [ Presentation concretePresentationsDo: [:aPresentationClass |
207
+ html option
208
+ value: aPresentationClass name;
209
+ with: aPresentationClass title ] ].
210
+ !
211
+
212
+ open
213
+ (window jQuery: document) ready: [
214
+ self
215
+ appendToJQuery: 'body' asJQuery;
216
+ setKeybindings;
217
+ checkHashChange.
218
+ ].
219
+ !
220
+
221
+ renderOn: html
222
+ html style
223
+ type: 'text/css';
224
+ with: self style.
225
+ html div
226
+ id: 'navigator';
227
+ with: [ self
228
+ renderToolsOn: html;
229
+ renderPresentationSelectOn: html;
230
+ renderSlideSelectOn: html].
231
+
232
+ presentationBrush := html div
233
+ id: 'presentation';
234
+ yourself.
235
+
236
+ self checkHash.
237
+ self renderCurrentPresentation.
238
+ !
239
+
240
+ renderCurrentPresentation
241
+ presentationBrush contents: [:html |
242
+ self currentPresentation renderOn: html.
243
+ ].
244
+ self updateSlideSelect.
245
+ !
246
+
247
+ renderSlideSelectOn: html
248
+ slideSelect := html select.
249
+ slideSelect onChange: [ self selectSlideAt: slideSelect asJQuery val ].
250
+ self updateSlideSelect.
251
+ !
252
+
253
+ updateSlideSelect
254
+ slideSelect contents: [:html| |index|
255
+ index := 0.
256
+ self currentPresentation slidesDo: [ :aSlide|
257
+ index := index + 1.
258
+ html option
259
+ value: index;
260
+ with: aSlide title ] ].
261
+ ! !
262
+
263
+ !PresentationNavigator class methodsFor: 'initialize'!
264
+
265
+ initialize
266
+ ^ self open
267
+ !
268
+
269
+ open
270
+ ^ self new open
271
+ ! !
272
+
273
+ Widget subclass: #Presentation
274
+ instanceVariableNames: 'currentSlide slides'
275
+ category: 'Presentation'!
276
+
277
+ !Presentation methodsFor: 'accessing'!
278
+
279
+ title
280
+ ^ self class title.
281
+ !
282
+
283
+ author
284
+ ^'John Smith'
285
+ !
286
+
287
+ url
288
+ ^'http://jtalk-project.org'
289
+ !
290
+
291
+ description
292
+ ^'A presentation written in Jtalk'
293
+ !
294
+
295
+ email
296
+ ^'john@smith.com'
297
+ !
298
+
299
+ slides
300
+ slides ifNil: [self initSlides].
301
+ ^slides
302
+ !
303
+
304
+ slideClasses
305
+ ^self subclassResponsibility
306
+ !
307
+
308
+ currentSlide
309
+ ^currentSlide
310
+ !
311
+
312
+ currentSlide: aSlide
313
+ currentSlide := aSlide
314
+ !
315
+
316
+ slideTransition
317
+ ^'fade'
318
+ !
319
+
320
+ style
321
+ "Should return a CSS style"
322
+ ^ ''
323
+ ! !
324
+
325
+ !Presentation methodsFor: 'actions'!
326
+
327
+ nextSlide
328
+ | next |
329
+ self currentSlide ifNotNil: [
330
+ next := self slides
331
+ at: (self currentSlideIndex) + 1
332
+ ifAbsent: [nil].
333
+ next ifNotNil: [currentSlide := next. next show]]
334
+ !
335
+
336
+ showCurrentSlide
337
+ self currentSlide ifNotNil: [
338
+ '.slide' asJQuery hide.
339
+ ('#', self currentSlide id) asJQuery show.
340
+ 'title' asJQuery text: self title, ' - ', self currentSlide id.
341
+ ]
342
+ !
343
+
344
+ previousSlide
345
+ | next |
346
+ self currentSlide ifNotNil: [
347
+ next := self slides
348
+ at: (self currentSlideIndex) - 1
349
+ ifAbsent: [nil].
350
+ next ifNotNil: [currentSlide := next. next show]]
351
+ !
352
+
353
+ moveAt: anInteger
354
+ | next |
355
+ next := self slides
356
+ at: anInteger
357
+ ifAbsent: [nil].
358
+ next ifNotNil: [currentSlide := next. next show]
359
+ !
360
+
361
+ currentSlideIndex
362
+ ^ self slides indexOf: self currentSlide ifAbsent: [1]
363
+ ! !
364
+
365
+ !Presentation methodsFor: 'enumerating'!
366
+
367
+ slidesDo: aBlockWithArg
368
+ self slides do: [:aSlide| aBlockWithArg value: aSlide].
369
+ ! !
370
+
371
+ !Presentation methodsFor: 'initialization'!
372
+
373
+ initSlides
374
+ slides := self slideClasses collect: [:each | each on: self]
375
+ ! !
376
+
377
+ !Presentation methodsFor: 'rendering'!
378
+
379
+ renderOn: html
380
+ html style
381
+ type: 'text/css';
382
+ with: self style.
383
+ html div
384
+ id: 'slides';
385
+ with: [self renderSlidesOn: html]
386
+ !
387
+
388
+ renderSlidesOn: html
389
+ self slides do: [:each |
390
+ each renderOn: html].
391
+ currentSlide ifNil: [currentSlide := self slides first].
392
+ self showCurrentSlide
393
+ ! !
394
+
395
+ Presentation class instanceVariableNames: 'current'!
396
+
397
+ !Presentation class methodsFor: 'accessing'!
398
+
399
+ concretePresentations
400
+ ^ self allSubclasses select: [:aPresentationClass| aPresentationClass isConcrete]
401
+ !
402
+
403
+ title
404
+ ^ 'Slides'
405
+ ! !
406
+
407
+ !Presentation class methodsFor: 'enumerating'!
408
+
409
+ concretePresentationsDo: aBlockWithArg
410
+ self concretePresentations do: aBlockWithArg.
411
+ ! !
412
+
413
+ !Presentation class methodsFor: 'testing'!
414
+
415
+ isConcrete
416
+ ^false
417
+ ! !
418
+
419
+ Slide subclass: #FOSDEMSlide
420
+ instanceVariableNames: ''
421
+ category: 'Presentation'!
422
+
423
+ !FOSDEMSlide methodsFor: 'accessing'!
424
+
425
+ codeSnippet
426
+ self subclassResponsibility
427
+ ! !
428
+
429
+ !FOSDEMSlide methodsFor: 'rendering'!
430
+
431
+ renderSnippet: aString on: html
432
+ (SourceArea new
433
+ renderOn: html;
434
+ editor) setValue: aString.
435
+ !
436
+
437
+ renderCodeSnippetOn: html
438
+ (SourceArea new
439
+ renderOn: html;
440
+ editor) setValue: self codeSnippet.
441
+ ! !
442
+
443
+ FOSDEMSlide subclass: #FOSDEMREPLSlide
444
+ instanceVariableNames: ''
445
+ category: 'Presentation'!
446
+
447
+ !FOSDEMREPLSlide methodsFor: 'rendering'!
448
+
449
+ renderSlideOn: html
450
+ html h1: 'REPL'.
451
+ self renderCodeSnippetOn: html.
452
+ !
453
+
454
+ codeSnippet
455
+ ^
456
+ './bin/amber
457
+ fs := require value: ''fs''.
458
+ fs readdir: ''/tmp'' do: [:err :file| console log: file]'.
459
+ ! !
460
+
461
+ FOSDEMSlide subclass: #FOSDEMJSToSmalltalk
462
+ instanceVariableNames: ''
463
+ category: 'Presentation'!
464
+
465
+ !FOSDEMJSToSmalltalk methodsFor: 'accessing'!
466
+
467
+ cssClass
468
+ ^ 'slide blue3d'
469
+ !
470
+
471
+ codeSnippet
472
+ ^
473
+ 'var counter = window.smalltalk.Counter._new();
474
+ counter._appendToJQuery_($(''#jsToSmalltalk''));'.
475
+ ! !
476
+
477
+ !FOSDEMJSToSmalltalk methodsFor: 'rendering'!
478
+
479
+ renderSlideOn: html
480
+ html h1: 'Call Smalltalk from Javascript'.
481
+ html div
482
+ id: 'jsToSmalltalk';
483
+ style: 'float: left'.
484
+ self renderCodeSnippetOn: html.
485
+ ! !
486
+
487
+ FOSDEMSlide subclass: #FOSDEMCanvasSlide
488
+ instanceVariableNames: 'c2d canvas'
489
+ category: 'Presentation'!
490
+
491
+ !FOSDEMCanvasSlide methodsFor: 'accessing'!
492
+
493
+ cssClass
494
+ ^ 'slide red3d'
495
+ ! !
496
+
497
+ !FOSDEMCanvasSlide methodsFor: 'drawing'!
498
+
499
+ drawOnCanvas
500
+ |c2d|
501
+ c2d := canvas element getContext: '2d'.
502
+ c2d
503
+ clearRect: 0
504
+ y: 0
505
+ width: canvas element width
506
+ height: canvas element height.
507
+
508
+ 40 atRandom timesRepeat: [ |rgba|
509
+ rgba := ',' join: {255 atRandom. 255 atRandom. 255 atRandom. 10 atRandom / 10}.
510
+ c2d at: 'fillStyle' put: 'rgba(', rgba, ')'.
511
+ c2d
512
+ fillRect: 600 atRandom
513
+ y: 300 atRandom
514
+ width: 200 atRandom
515
+ height: 200 atRandom ]
516
+ ! !
517
+
518
+ !FOSDEMCanvasSlide methodsFor: 'rendering'!
519
+
520
+ renderSlideOn: html
521
+ html h1: 'Playing with canvas'.
522
+ canvas := html canvas
523
+ width: 700;
524
+ height: 400.
525
+
526
+ self updateCanvas.
527
+ ! !
528
+
529
+ !FOSDEMCanvasSlide methodsFor: 'updating'!
530
+
531
+ updateCanvas
532
+ self drawOnCanvas.
533
+ window setTimeout: [self updateCanvas] delay: 500.
534
+ ! !
535
+
536
+ FOSDEMSlide subclass: #FOSDEMJSPlayGroundSlide
537
+ instanceVariableNames: ''
538
+ category: 'Presentation'!
539
+
540
+ !FOSDEMJSPlayGroundSlide methodsFor: 'accessing'!
541
+
542
+ codeSnippet
543
+ ^'|logo|
544
+ logo:=''img#amberlogo'' asJQuery.
545
+
546
+ logo
547
+ css:''-webkit-transition'' put:''all 10s ease-in-out''.
548
+
549
+ <logo.css(''-webkit-transform'', ''rotateY(360deg)'');>.
550
+
551
+ logo click: [window alert: ''This is cool !!''].
552
+
553
+ logo inspect'.
554
+ ! !
555
+
556
+ !FOSDEMJSPlayGroundSlide methodsFor: 'rendering'!
557
+
558
+ renderSlideOn: html
559
+ html div
560
+ class: 'section center';
561
+ with: [
562
+ self renderCodeSnippetOn: html.
563
+ html img
564
+ id: 'amberlogo';
565
+ src: 'fosdem2012/images/amber.png' ]
566
+ ! !
567
+
568
+ FOSDEMSlide subclass: #FOSDEMAmberBackend
569
+ instanceVariableNames: ''
570
+ category: 'Presentation'!
571
+
572
+ !FOSDEMAmberBackend methodsFor: 'accessing'!
573
+
574
+ cssClass
575
+ ^ 'slide green3d'
576
+ ! !
577
+
578
+ !FOSDEMAmberBackend methodsFor: 'rendering'!
579
+
580
+ renderSlideOn: html
581
+ html div
582
+ class: 'section center';
583
+ with: [ html h1: 'Need a backend ?'.
584
+ {'nodejs.png'. 'php.gif'. 'rails.png'. 'pharo.png'. 'ambrhino.jpg'} do: [:aString |
585
+ html img: 'fosdem2012/images/', aString.
586
+ ]
587
+ ]
588
+ ! !
589
+
590
+ FOSDEMSlide subclass: #FOSDEMBookletSlide
591
+ instanceVariableNames: ''
592
+ category: 'Presentation'!
593
+
594
+ !FOSDEMBookletSlide methodsFor: 'accessing'!
595
+
596
+ cssClass
597
+ ^ 'slide blue3d'
598
+ ! !
599
+
600
+ !FOSDEMBookletSlide methodsFor: 'css'!
601
+
602
+ style
603
+ ^ '
604
+ #book { font-size: 1.4em; }
605
+ #book .b-load .b-wrap-right { background-color: #DEC3A9;}
606
+ #book .b-load .b-wrap-left { background-color: #DDD;}
607
+ '
608
+ ! !
609
+
610
+ !FOSDEMBookletSlide methodsFor: 'rendering'!
611
+
612
+ renderSlideOn: html
613
+ self renderBookOn: html.
614
+ html link
615
+ rel:'stylesheet';
616
+ href: 'fosdem2012/lib/booklet/jquery.booklet.1.2.0.css'.
617
+
618
+ html style: self style.
619
+
620
+ jQuery
621
+ getScript: 'fosdem2012/lib/booklet/jquery.booklet.1.2.0.min.js'
622
+ do: ['#book' asJQuery booklet: self bookletOptions].
623
+ !
624
+
625
+ renderBookOn: html
626
+ html div
627
+ id: 'book';
628
+ with: [ html div
629
+ class: 'b-load';
630
+ with: [ html
631
+ div: 'Amber makes it easy to plug existing javascript libraires';
632
+ div: 'Here is an example with the jQuery Booklet plugin';
633
+ div: 'Want to see how ?';
634
+ div: [ html button
635
+ onClick: [Browser openOn: FOSDEMBookletSlide ];
636
+ with: 'Just browse the code :)'. ]
637
+
638
+ ]
639
+ ].
640
+ !
641
+
642
+ bookletOptions
643
+ ^ #{
644
+ 'arrows' -> true.
645
+ 'keyboard' -> false.
646
+ 'pageNumbers' -> false.
647
+ 'closed' -> true
648
+ }
649
+ ! !
650
+
651
+ FOSDEMSlide subclass: #FOSDEMIntroSlide
652
+ instanceVariableNames: ''
653
+ category: 'Presentation'!
654
+
655
+ !FOSDEMIntroSlide methodsFor: 'not yet classified'!
656
+
657
+ renderSlideOn: html
658
+ html div class: 'section center animate'; with: [
659
+ html img src: 'fosdem2012/images/amber.png'.
660
+ html p: self presentation author.
661
+ html p: self presentation description.
662
+ html p: [
663
+ html with: self presentation email]].
664
+ ! !
665
+
666
+ Presentation subclass: #ESUG2011Presentation
667
+ instanceVariableNames: ''
668
+ category: 'Presentation'!
669
+
670
+ !ESUG2011Presentation methodsFor: 'accessing'!
671
+
672
+ description
673
+ ^'ESUG 2011, Edinburgh'
674
+ !
675
+
676
+ author
677
+ ^'Nicolas Petton'
678
+ !
679
+
680
+ email
681
+ ^'nico@objectfusion.fr'
682
+ !
683
+
684
+ url
685
+ ^'http://jtalk-project.org'
686
+ !
687
+
688
+ slideClasses
689
+ ^Array new
690
+ add: IntroSlide;
691
+ add: AboutSlide;
692
+ add: WhatIsJtalkSlide;
693
+ add: JtalkFeaturesSlide;
694
+ add: WorkspaceSlide;
695
+ add: IDESlide;
696
+ add: CountersSlide;
697
+ add: JtalkAndJavascriptSlide;
698
+ add: JtalkAndJavascriptSlide2;
699
+ add: JtalkAndJavascriptSlide3;
700
+ add: JtalkAndJavascriptSlide4;
701
+ add: JtalkAndCLI;
702
+ add: JtalkAndNode;
703
+ add: JtalkAndNode2;
704
+ add: JtalkAndNode3;
705
+ add: JtalkAndWebOS;
706
+ add: JtalkAndEnyo;
707
+ add: ContributionsSlide;
708
+ yourself
709
+ !
710
+
711
+ style
712
+ ^'
713
+ body {
714
+ font-family: Helvetica,Arial,sans;
715
+ }
716
+
717
+ #slides {
718
+ width: 100%;
719
+ height: 100%;
720
+ overflow: hidden;
721
+ position: absolute;
722
+ top: 0;
723
+ bottom: 0;
724
+ left: 0;
725
+ right: 0;
726
+ background: #555;
727
+ }
728
+
729
+ .slide {
730
+ background: #fff;
731
+ color: #444;
732
+ text-align: left;
733
+ font-size: 20px;
734
+ line-height: 1.8em;
735
+ height: 500px;
736
+ width: 700px;
737
+ padding: 60px;
738
+ position: absolute;
739
+ left: 50%;
740
+ top: 50%;
741
+ margin-left: -420px;
742
+ margin-top: -320px;
743
+ box-shadow: 0 0 20px #111;
744
+ -moz-box-shadow: 0 0 20px #111;
745
+ -webkit-box-shadow: 0 0 20px #111;
746
+ }
747
+
748
+ .slide.transparent {
749
+ background: transparent;
750
+ box-shadow: 0 0 0 none;
751
+ -moz-box-shadow: 0 0 0 transparent;
752
+ -webkit-box-shadow: 0 0 0 transparent;
753
+ color: #fff !!important;
754
+ }
755
+
756
+ .slide.black {
757
+ background: black;
758
+ background-image: -webkit-gradient(
759
+ linear,
760
+ left bottom,
761
+ left top,
762
+ color-stop(0.38, rgb(79,79,79)),
763
+ color-stop(0.69, rgb(33,33,33)),
764
+ color-stop(0.86, rgb(4,4,4))
765
+ );
766
+ background-image: -moz-linear-gradient(
767
+ center bottom,
768
+ rgb(79,79,79) 38%,
769
+ rgb(33,33,33) 69%,
770
+ rgb(4,4,4) 86%
771
+ );
772
+ color: #fff !!important;
773
+ }
774
+
775
+ .slide.black h1, .slide.black h2, .slide.black h3,
776
+ .slide.transparent h1, .slide.transparent h2, .slide.transparent h3 {
777
+ color: #fff;
778
+ text-shadow: 0 1px 4px #aaa;
779
+ }
780
+
781
+ .slide.black a, .slide.transparent a {
782
+ color: #ccc;
783
+ }
784
+
785
+ .slide.white {
786
+ color: #333 !!important;
787
+ }
788
+
789
+ .slide.white h1, .slide.white h2, .slide.white h3 {
790
+ color: #333;
791
+ }
792
+
793
+ .slide.white a {
794
+ color: #333;
795
+ }
796
+
797
+
798
+ .slide h1, .slide h2, .slide h3 {
799
+ color: #333;
800
+ /* text-align: center; */
801
+ }
802
+
803
+ .slide h1 {
804
+ font-family: "Droid Sans";
805
+ font-size: 36px;
806
+ text-shadow: 0 1px 4px #aaa;
807
+ margin-top: 30px;
808
+ margin-bottom: 50px;
809
+ }
810
+
811
+ /* .slide ul, .slide li { */
812
+ /* padding: 0; */
813
+ /* margin: 0; */
814
+ /* } */
815
+
816
+ .slide button {
817
+ font-size: 18px;
818
+ }
819
+
820
+ .slide a {
821
+ color: #555;
822
+ text-decoration: none;
823
+ cursor: pointer;
824
+ }
825
+
826
+ .slide a:hover {
827
+ color: #fff;
828
+ background: #555;
829
+ }
830
+
831
+ .slide .right {
832
+ text-align: right;
833
+ }
834
+
835
+ .slide .section.center {
836
+ text-align: center;
837
+ display: table-cell;
838
+ vertical-align: middle;
839
+ width: 700px;
840
+ height: 500px;
841
+ }
842
+
843
+ .slide code {
844
+ font-family: "Droid Sans Mono";
845
+ color: #444;
846
+ border: 1px solid #ddd;
847
+ background: #eee;
848
+ border-radius: 4px;
849
+ padding: 2px;
850
+ font-size: 16px;
851
+ }
852
+
853
+ .slide .code2 {
854
+ font-family: "Droid Sans Mono";
855
+ line-height: 1.2em;
856
+ color: #444;
857
+ padding: 2px;
858
+ font-size: 16px;
859
+ }
860
+
861
+
862
+ .slide .CodeMirror {
863
+ width: 500px;
864
+ height: 300px;
865
+ text-align: left;
866
+ }
867
+
868
+ .slide .CodeMirror-scroll {
869
+ text-align: left;
870
+ }
871
+
872
+ .slide .fancy {
873
+ margin-top: 30px;
874
+ -webkit-transform: rotate(-10deg);
875
+ -moz-transform: rotate(-10deg);
876
+ transform: rotate(-10deg);
877
+ color: red;
878
+ }
879
+
880
+ .slide .comment {
881
+ opacity: 0.6;
882
+ font-weight: normal;
883
+ }
884
+
885
+ .slide .red {
886
+ color: red;
887
+ }
888
+
889
+ .slide .blue {
890
+ color: blue;
891
+ }
892
+
893
+ .slide#WhatIsJtalk {
894
+ background: white url("esug2011/images/balloon.jpg") 650px 50px no-repeat;
895
+ }
896
+
897
+ .slide#ide {
898
+ background: black url("esug2011/images/ide_star_wars.png") center center no-repeat;
899
+ }
900
+
901
+ .slide#JtalkAndCLI {
902
+ background: white url("esug2011/images/terminal.png") 620px 20px no-repeat;
903
+ }
904
+
905
+ .slide#JtalkAndNode {
906
+ background: white url("esug2011/images/nodejs.png") 580px 40px no-repeat;
907
+ }
908
+ .slide#JtalkAndNode2 {
909
+ background: white url("esug2011/images/nodejs.png") 580px 40px no-repeat;
910
+ }
911
+
912
+ .slide#JtalkAndNode3 {
913
+ background: white url("esug2011/images/nodejs.png") 580px 40px no-repeat;
914
+ }
915
+
916
+ .slide#JtalkAndWebOS {
917
+ background: white url("esug2011/images/devices.jpg") 380px 280px no-repeat;
918
+ }
919
+
920
+ .slide#JtalkAndEnyo {
921
+ background: white url("esug2011/images/enyo.png") 130px 150px no-repeat;
922
+ }
923
+
924
+ .slide#links {
925
+ background: white url("esug2011/images/asterix.png") 30px 130px no-repeat;
926
+ }
927
+
928
+ .slide#links .section {
929
+ margin-left: 250px;
930
+ margin-top: 200px;
931
+ font-family: "Droid Sans";
932
+ font-size: 26px;
933
+ font-weight: bold;
934
+ }
935
+
936
+
937
+ #meta {
938
+ position: absolute;
939
+ font-size: 12px;
940
+ opacity: 0.6;
941
+ bottom: 0;
942
+ right: 0;
943
+ z-index: 2;
944
+ background: #333;
945
+ text-align: right;
946
+ padding: 0 10px;
947
+ line-height: 1.8em;
948
+ color: #eee;
949
+ border-top-left-radius: 5px;
950
+ }
951
+
952
+ #meta:hover {
953
+ opacity: 0.8;
954
+ }
955
+
956
+ #meta p {
957
+ display: inline;
958
+ padding: 0 5px;
959
+ }
960
+
961
+ #meta a {
962
+ //background: #ccc;
963
+ color: #ccc;
964
+ text-decoration: none;
965
+ padding: 0 5px;
966
+ }
967
+
968
+ .slide {
969
+
970
+ }
971
+ '
972
+ ! !
973
+
974
+ ESUG2011Presentation class instanceVariableNames: 'current'!
975
+
976
+ !ESUG2011Presentation class methodsFor: 'accessing'!
977
+
978
+ title
979
+ ^'Jtalk'
980
+ ! !
981
+
982
+ !ESUG2011Presentation class methodsFor: 'testing'!
983
+
984
+ isConcrete
985
+ ^true
986
+ ! !
987
+
988
+ Slide subclass: #IntroSlide
989
+ instanceVariableNames: ''
990
+ category: 'Presentation'!
991
+
992
+ !IntroSlide methodsFor: 'accessing'!
993
+
994
+ id
995
+ ^'intro'
996
+ !
997
+
998
+ cssClass
999
+ ^'slide black'
1000
+ ! !
1001
+
1002
+ !IntroSlide methodsFor: 'rendering'!
1003
+
1004
+ renderSlideOn: html
1005
+ html div class: 'section center'; with: [
1006
+ html h1 with: 'Jtalk, the Smalltalk for Web developers'.
1007
+ html p with: self presentation author, ' & Göran Krampe - ', self presentation description.
1008
+ html p with: [
1009
+ html a
1010
+ with: self presentation email;
1011
+ href: 'mailto:', self presentation email].
1012
+ html p with: [
1013
+ html a
1014
+ with: 'goran@krampe.se';
1015
+ href: 'mailto:goran@krampe.se'].
1016
+
1017
+ html p with: [
1018
+ html a
1019
+ with: 'objectfusion.fr';
1020
+ href: 'http://www.objectfusion.fr']]
1021
+ ! !
1022
+
1023
+ Slide subclass: #WhatIsJtalkSlide
1024
+ instanceVariableNames: ''
1025
+ category: 'Presentation'!
1026
+
1027
+ !WhatIsJtalkSlide methodsFor: 'accessing'!
1028
+
1029
+ id
1030
+ ^'WhatIsJtalk'
1031
+ ! !
1032
+
1033
+ !WhatIsJtalkSlide methodsFor: 'rendering'!
1034
+
1035
+ renderSlideOn: html
1036
+ html div class: 'section center'; with: [
1037
+ html h1 with: 'Jtalk in a nutshell'.
1038
+ html h2 with: 'Jtalk is an implementation of Smalltalk'.
1039
+ html h2 with: 'Jtalk runs on top of the JavaScript runtime'.
1040
+ html h2 with: 'Jtalk is an opensource project (MIT)'.
1041
+ html h2 class: 'fancy'; with: 'Jtalk is cool!!']
1042
+ ! !
1043
+
1044
+ Slide subclass: #JtalkFeaturesSlide
1045
+ instanceVariableNames: ''
1046
+ category: 'Presentation'!
1047
+
1048
+ !JtalkFeaturesSlide methodsFor: 'accessing'!
1049
+
1050
+ id
1051
+ ^'features'
1052
+ ! !
1053
+
1054
+ !JtalkFeaturesSlide methodsFor: 'rendering'!
1055
+
1056
+ renderSlideOn: html
1057
+ html h1 with: 'Jtalk features'.
1058
+ html ul with: [
1059
+ html li with: 'Jtalk is (mostly) written in itself, including the parser & compiler'.
1060
+ html li with: 'Full Smalltalk object system, including classes & metaclasses, etc'.
1061
+ html li with: 'Core libraries (streams, collections, RegExp, etc)'.
1062
+ html li with: 'Web related libraries: HTML Canvas, DOM manipulation'.
1063
+ html li with: 'Full featured IDE'.
1064
+ html li with: [
1065
+ html with:'Advanced Smalltalk features, including '.
1066
+ html code with: '#doesNotUnderstand:'.
1067
+ html with: ' support and '.
1068
+ html code with: 'thisContext']]
1069
+ ! !
1070
+
1071
+ Slide subclass: #AboutSlide
1072
+ instanceVariableNames: ''
1073
+ category: 'Presentation'!
1074
+
1075
+ !AboutSlide methodsFor: 'accessing'!
1076
+
1077
+ id
1078
+ ^'about'
1079
+ !
1080
+
1081
+ cssClass
1082
+ ^'slide transparent white'
1083
+ !
1084
+
1085
+ backgroundColor
1086
+ ^'white'
1087
+ ! !
1088
+
1089
+ !AboutSlide methodsFor: 'rendering'!
1090
+
1091
+ renderSlideOn: html
1092
+ html div class: 'section center'; with: [
1093
+ html h1 with: 'About this presentation'.
1094
+ html p with: 'This presentation is entirely written in Jtalk and is licensed under CC BY-SA.'.
1095
+ html p with: [
1096
+ html with: 'Press '.
1097
+ html code with: '←'.
1098
+ html with: ' to move backward and '.
1099
+ html code with: ' →'.
1100
+ html with: ' to move forward.'].
1101
+ html p with: [
1102
+ html with: 'Open a '.
1103
+ html button
1104
+ with: 'browser';
1105
+ onClick: [Browser openOn: Presentation].
1106
+ html with: ' to edit the source code.']]
1107
+ ! !
1108
+
1109
+ Slide subclass: #JtalkAndJavascriptSlide3
1110
+ instanceVariableNames: ''
1111
+ category: 'Presentation'!
1112
+
1113
+ !JtalkAndJavascriptSlide3 methodsFor: 'accessing'!
1114
+
1115
+ id
1116
+ ^'jtalkAndJs3'
1117
+ !
1118
+
1119
+ backgroundColor
1120
+ ^'#08C'
1121
+ ! !
1122
+
1123
+ !JtalkAndJavascriptSlide3 methodsFor: 'rendering'!
1124
+
1125
+ renderSlideOn: html
1126
+ html h1 with: [
1127
+ html with: 'Smalltalk '.
1128
+ html span class: 'red'; with: '♥'.
1129
+ html with: ' JavaScript'].
1130
+ html h2 with: 'Smalltalk ⇒ JavaScript'.
1131
+ html ol with: [
1132
+ html li
1133
+ with: 'Unary messages begin with an underscore: ';
1134
+ with: [html code with: 'yourself'];
1135
+ with: ' becomes ';
1136
+ with: [html code with: '_yourself()'].
1137
+ html li
1138
+ with: 'Binary messages are prefixed with 2 underscores: ';
1139
+ with: [html code with: '3@4'];
1140
+ with: ' becomes ';
1141
+ with: [html code with: '(3).__at(4)'].
1142
+ html li
1143
+ with: 'Keyword message follow the same rules as unary messages, with a final underscore: ';
1144
+ with: [html code with: 'aDictionary at: 3 put: 4'];
1145
+ with: ' becomes ';
1146
+ with: [html code with: 'aDictionary._at_put_(3, 4)']]
1147
+ ! !
1148
+
1149
+ Slide subclass: #JtalkAndJavascriptSlide2
1150
+ instanceVariableNames: ''
1151
+ category: 'Presentation'!
1152
+
1153
+ !JtalkAndJavascriptSlide2 methodsFor: 'accessing'!
1154
+
1155
+ id
1156
+ ^'jtalkAndJs2'
1157
+ !
1158
+
1159
+ backgroundColor
1160
+ ^'#08C'
1161
+ ! !
1162
+
1163
+ !JtalkAndJavascriptSlide2 methodsFor: 'rendering'!
1164
+
1165
+ renderSlideOn: html
1166
+ html h1 with: [
1167
+ html with: 'Smalltalk '.
1168
+ html span class: 'red'; with: '♥'.
1169
+ html with: ' JavaScript'].
1170
+ html h2 with: 'Jtalk maps one to one with the JavaScript equivalent:'.
1171
+ html ul with: [
1172
+ html li with: 'String ⇔ String'.
1173
+ html li with: 'Number ⇔ Number'.
1174
+ html li with: 'BlockClosure ⇔ function'.
1175
+ html li with: 'Dictionary ⇔ Object'.
1176
+ html li with: 'Error ⇔ Error'.
1177
+ html li with: 'etc.']
1178
+ ! !
1179
+
1180
+ Slide subclass: #JtalkAndJavascriptSlide
1181
+ instanceVariableNames: ''
1182
+ category: 'Presentation'!
1183
+
1184
+ !JtalkAndJavascriptSlide methodsFor: 'accessing'!
1185
+
1186
+ id
1187
+ ^'jtalkAndJs'
1188
+ !
1189
+
1190
+ cssClass
1191
+ ^'slide transparent'
1192
+ !
1193
+
1194
+ backgroundColor
1195
+ ^'#08C'
1196
+ ! !
1197
+
1198
+ !JtalkAndJavascriptSlide methodsFor: 'rendering'!
1199
+
1200
+ renderSlideOn: html
1201
+ html div class: 'section center'; with: [
1202
+ html h1 with: [
1203
+ html with: 'Smalltalk '.
1204
+ html span class: 'red'; with: '♥'.
1205
+ html with: ' JavaScript']]
1206
+ ! !
1207
+
1208
+ Slide subclass: #WorkspaceSlide
1209
+ instanceVariableNames: ''
1210
+ category: 'Presentation'!
1211
+
1212
+ !WorkspaceSlide methodsFor: 'accessing'!
1213
+
1214
+ id
1215
+ ^'workspace'
1216
+ !
1217
+
1218
+ backgroundColor
1219
+ ^'#18bd7d'
1220
+ !
1221
+
1222
+ renderSlideOn: html
1223
+ | workspace |
1224
+ workspace := SourceArea new.
1225
+ html div class: 'section center'; with: [
1226
+ html h1 with: 'Give Jtalk a try!!'.
1227
+ workspace renderOn: html.
1228
+ html div with: [
1229
+ html button
1230
+ with: 'DoIt';
1231
+ onClick: [workspace doIt].
1232
+ html button
1233
+ with: 'PrintIt';
1234
+ onClick: [workspace printIt].
1235
+ html button
1236
+ with: 'InspectIt';
1237
+ onClick: [workspace inspectIt]]]
1238
+ ! !
1239
+
1240
+ Slide subclass: #CountersSlide
1241
+ instanceVariableNames: ''
1242
+ category: 'Presentation'!
1243
+
1244
+ !CountersSlide methodsFor: 'accessing'!
1245
+
1246
+ id
1247
+ ^'counters'
1248
+ !
1249
+
1250
+ backgroundColor
1251
+ ^'#18bd7d'
1252
+ ! !
1253
+
1254
+ !CountersSlide methodsFor: 'rendering'!
1255
+
1256
+ renderSlideOn: html
1257
+ html div class: 'section center'; with: [
1258
+ html h1 with: 'The counter example'.
1259
+ html div with: [
1260
+ 2 timesRepeat: [Counter new renderOn: html]]]
1261
+ ! !
1262
+
1263
+ Slide subclass: #JtalkAndJavascriptSlide4
1264
+ instanceVariableNames: ''
1265
+ category: 'Presentation'!
1266
+
1267
+ !JtalkAndJavascriptSlide4 methodsFor: 'accessing'!
1268
+
1269
+ id
1270
+ ^'jtalkAndJs4'
1271
+ !
1272
+
1273
+ backgroundColor
1274
+ ^'#08C'
1275
+ ! !
1276
+
1277
+ !JtalkAndJavascriptSlide4 methodsFor: 'rendering'!
1278
+
1279
+ renderSlideOn: html
1280
+ html h1 with: [
1281
+ html with: 'JavaScript '.
1282
+ html span class: 'red'; with: '♥'.
1283
+ html with: ' Smalltalk too!! ';
1284
+ with: [html span class: 'comment'; with: '(how cute)']].
1285
+ html h2 with: 'JavaScript ⇒ Smalltalk'.
1286
+ html ol with: [
1287
+ html li
1288
+ with: [html code with: 'someUser.name'];
1289
+ with: ' becomes ';
1290
+ with: [html code with: 'someUser name'].
1291
+ html li
1292
+ with: [html code with: 'someUser name = "John"'];
1293
+ with: ' becomes ';
1294
+ with: [html code with: 'someUser name: ''John'''].
1295
+ html li
1296
+ with: [html code with: 'console.log(''hello world'')'];
1297
+ with: ' becomes ';
1298
+ with: [html code with: 'console log: ''hello world'''].
1299
+ html li
1300
+ with: [html code with: 'window.jQuery(''foo'').css(''background'', ''red'')'];
1301
+ with: ' becomes ';
1302
+ with: [html br];
1303
+ with: [html code with: '(window jQuery: ''foo'') css: ''background'' color: ''red''']]
1304
+ ! !
1305
+
1306
+ Slide subclass: #IDESlide
1307
+ instanceVariableNames: ''
1308
+ category: 'Presentation'!
1309
+
1310
+ !IDESlide methodsFor: 'accessing'!
1311
+
1312
+ id
1313
+ ^'ide'
1314
+ !
1315
+
1316
+ backgroundColor
1317
+ ^'black'
1318
+ !
1319
+
1320
+ cssClass
1321
+ ^'slide transparent'
1322
+ ! !
1323
+
1324
+ !IDESlide methodsFor: 'rendering'!
1325
+
1326
+ renderSlideOn: html
1327
+ " html div class: 'section center'; with: [
1328
+ html h1
1329
+ with: 'The wonderful Jtalk ';
1330
+ with: [
1331
+ html a
1332
+ with: 'development tools';
1333
+ onClick: [TabManager current open]];
1334
+ with: '.']
1335
+ "
1336
+ ! !
1337
+
1338
+ Slide subclass: #ContributionsSlide
1339
+ instanceVariableNames: ''
1340
+ category: 'Presentation'!
1341
+
1342
+ !ContributionsSlide methodsFor: 'accessing'!
1343
+
1344
+ id
1345
+ ^'links'
1346
+ ! !
1347
+
1348
+ !ContributionsSlide methodsFor: 'rendering'!
1349
+
1350
+ renderSlideOn: html
1351
+ html div class: 'section'; with: [
1352
+ html p with: [
1353
+ html a href: 'http://jtalk-project.org'; with: 'jtalk-project.org'].
1354
+ html p with: [
1355
+ html a href: 'https://github.com/NicolasPetton/jtalk'; with: 'github.com/NicolasPetton/jtalk'].
1356
+ html p with: [
1357
+ html a href: 'http://http://groups.google.com/group/jtalk-project'; with: 'groups.google.com/group/jtalk-project']]
1358
+ ! !
1359
+
1360
+ Slide subclass: #JtalkAndCLI
1361
+ instanceVariableNames: ''
1362
+ category: 'Presentation'!
1363
+
1364
+ !JtalkAndCLI methodsFor: 'not yet classified'!
1365
+
1366
+ backgroundColor
1367
+ ^'#0A1'
1368
+ !
1369
+
1370
+ id
1371
+ ^'JtalkAndCLI'
1372
+ !
1373
+
1374
+ renderSlideOn: html
1375
+ html h1 with: [
1376
+ html with: 'Jtalk and '.
1377
+ html span class: 'blue'; with: 'the command line'].
1378
+
1379
+ html h2 with: 'jtalkc - a fairly elaborate bash script that:'.
1380
+
1381
+ html ul with: [
1382
+ html li with: 'Uses Node.js to run the Jtalk Compiler'.
1383
+ html li with: 'Compiles .st files to .js'.
1384
+ html li with: 'Links .js files into a single one'.
1385
+ html li with: 'Adds class initilization and/or call to main'.
1386
+ html li with: 'Optionally runs Google Closure compiler']
1387
+ ! !
1388
+
1389
+ Slide subclass: #JtalkAndNode
1390
+ instanceVariableNames: ''
1391
+ category: 'Presentation'!
1392
+
1393
+ !JtalkAndNode methodsFor: 'not yet classified'!
1394
+
1395
+ backgroundColor
1396
+ ^'#0A1'
1397
+ !
1398
+
1399
+ id
1400
+ ^'JtalkAndNode'
1401
+ !
1402
+
1403
+ renderSlideOn: html
1404
+ html h1 with: [
1405
+ html with: 'Jtalk and '.
1406
+ html span class: 'blue'; with: 'Node.js'].
1407
+
1408
+ html h2 with: 'Hello.st:'.
1409
+ html pre with: [
1410
+ html div class: 'code2'; with: 'Object subclass: #Hello
1411
+ instanceVariableNames: ''''
1412
+ category: ''Hello''!!
1413
+
1414
+ !!Hello class methodsFor: ''main''!!
1415
+ main
1416
+ console log: ''Hello world from JTalk in Node.js''
1417
+ !! !!']
1418
+ ! !
1419
+
1420
+ Slide subclass: #JtalkAndNode2
1421
+ instanceVariableNames: ''
1422
+ category: 'Presentation'!
1423
+
1424
+ !JtalkAndNode2 methodsFor: 'not yet classified'!
1425
+
1426
+ backgroundColor
1427
+ ^'#0A1'
1428
+ !
1429
+
1430
+ id
1431
+ ^'JtalkAndNode2'
1432
+ !
1433
+
1434
+ renderSlideOn: html
1435
+ html h1 with: [
1436
+ html with: 'Jtalk and '.
1437
+ html span class: 'blue'; with: 'Node.js'].
1438
+
1439
+ html h2 with: 'Makefile:'.
1440
+ html pre with: [
1441
+ html div class: 'code2'; with: 'Program.js: Hello.st
1442
+ ../../bin/jtalkc -N -m Hello Hello.st Program
1443
+
1444
+ run: Program.js
1445
+ ./hello
1446
+
1447
+ clean:
1448
+ rm -f Program.js Hello.js
1449
+ '].
1450
+ html h2 with: 'hello:'.
1451
+ html pre with: [
1452
+ html div class: 'code2'; with: 'node Program.js $@']
1453
+ ! !
1454
+
1455
+ Slide subclass: #JtalkAndNode3
1456
+ instanceVariableNames: ''
1457
+ category: 'Presentation'!
1458
+
1459
+ !JtalkAndNode3 methodsFor: 'not yet classified'!
1460
+
1461
+ backgroundColor
1462
+ ^'#0A1'
1463
+ !
1464
+
1465
+ id
1466
+ ^'JtalkAndNode3'
1467
+ !
1468
+
1469
+ renderSlideOn: html
1470
+ html h1 with: [
1471
+ html with: 'Jtalk and '.
1472
+ html span class: 'blue'; with: 'Node.js'].
1473
+
1474
+ html h2 with: 'make clean && make run:'.
1475
+
1476
+ html pre with: [
1477
+ html div class: 'code2'; with: 'rm -f Program.js Hello.js
1478
+ ../../bin/jtalkc -N -m Hello Hello.st Program
1479
+ Loading libraries /home/gokr/jtalk/js/boot.js /home/gokr/jtalk/js/Kernel.js
1480
+ /home/gokr/jtalk/js/Parser.js /home/gokr/jtalk/js/Compiler.js
1481
+ /home/gokr/jtalk/js/init.js /home/gokr/jtalk/nodejs/nodecompile.js
1482
+ and compiling ...
1483
+ Compiling in debugMode: false
1484
+ Reading file Hello.st
1485
+ Exporting category Hello as Hello.js
1486
+ Adding libraries /home/gokr/jtalk/js/boot.js /home/gokr/jtalk/js/Kernel.js ...
1487
+ Adding Jtalk code Hello.js ...
1488
+ Adding initializer /home/gokr/jtalk/js/init.js ...
1489
+ Adding call to Hello class >> main ...
1490
+ Writing Program.js ...
1491
+ Done.
1492
+ ./hello'.
1493
+ html span class: 'blue'; with:'Hello world from JTalk in Node.js']
1494
+ ! !
1495
+
1496
+ Slide subclass: #JtalkAndWebOS
1497
+ instanceVariableNames: ''
1498
+ category: 'Presentation'!
1499
+
1500
+ !JtalkAndWebOS methodsFor: 'not yet classified'!
1501
+
1502
+ backgroundColor
1503
+ ^'#0A1'
1504
+ !
1505
+
1506
+ id
1507
+ ^'JtalkAndWebOS'
1508
+ !
1509
+
1510
+ renderSlideOn: html
1511
+ html h1 with: [
1512
+ html with: 'Jtalk and '.
1513
+ html span class: 'blue'; with: 'webOS'].
1514
+
1515
+ html h2 with: 'A really cool mobile OS based on Linux:'.
1516
+
1517
+ html ul with: [
1518
+ html li with: 'The primary language in webOS is Javascript'.
1519
+ html li with: 'The new UI framework for webOS 3.0 is called Enyo'.
1520
+ html li with: 'Regular apps run in V8 + Webkit'.
1521
+ html li with: 'Background services run in Node.js']
1522
+ ! !
1523
+
1524
+ Slide subclass: #JtalkAndEnyo
1525
+ instanceVariableNames: ''
1526
+ category: 'Presentation'!
1527
+
1528
+ !JtalkAndEnyo methodsFor: 'not yet classified'!
1529
+
1530
+ id
1531
+ ^'JtalkAndEnyo'
1532
+ !
1533
+
1534
+ backgroundColor
1535
+ ^'#0A1'
1536
+ !
1537
+
1538
+ renderSlideOn: html
1539
+ html h1 with: [
1540
+ html with: 'Jtalk and '.
1541
+ html span class: 'blue'; with: 'Enyo'].
1542
+ ! !
1543
+
1544
+ Presentation subclass: #FOSDEM2012Presentation
1545
+ instanceVariableNames: ''
1546
+ category: 'Presentation'!
1547
+
1548
+ !FOSDEM2012Presentation methodsFor: 'accessing'!
1549
+
1550
+ description
1551
+ ^'FOSDEM 2012, Brussels'
1552
+ !
1553
+
1554
+ author
1555
+ ^'Laurent Laffont, Johnny Thornton'
1556
+ !
1557
+
1558
+ email
1559
+ ^'laurent.laffont@gmail.com, johnnyt@xan.do'
1560
+ !
1561
+
1562
+ url
1563
+ ^'http://amber-lang.net'
1564
+ !
1565
+
1566
+ style
1567
+ ^'
1568
+ body {
1569
+ font-family: Helvetica,Arial,sans;
1570
+ }
1571
+
1572
+ #slides {
1573
+ width: 100%;
1574
+ height: 100%;
1575
+ overflow: hidden;
1576
+ position: absolute;
1577
+ top: 0;
1578
+ bottom: 0;
1579
+ left: 0;
1580
+ right: 0;
1581
+ background: #555;
1582
+ }
1583
+
1584
+ .slide {
1585
+ background: #fff;
1586
+ color: #444;
1587
+ text-align: left;
1588
+ font-size: 20px;
1589
+ line-height: 1.8em;
1590
+ height: 500px;
1591
+ width: 700px;
1592
+ padding: 60px;
1593
+ position: absolute;
1594
+ left: 50%;
1595
+ top: 50%;
1596
+ margin-left: -420px;
1597
+ margin-top: -320px;
1598
+ box-shadow: 0 0 20px #111;
1599
+ -moz-box-shadow: 0 0 20px #111;
1600
+ -webkit-box-shadow: 0 0 20px #111;
1601
+ }
1602
+
1603
+ .slide.transparent {
1604
+ background: transparent;
1605
+ box-shadow: 0 0 0 none;
1606
+ -moz-box-shadow: 0 0 0 transparent;
1607
+ -webkit-box-shadow: 0 0 0 transparent;
1608
+ color: #fff !!important;
1609
+ }
1610
+
1611
+ .slide.black {
1612
+ background: black;
1613
+ background-image: -webkit-gradient(
1614
+ linear,
1615
+ left bottom,
1616
+ left top,
1617
+ color-stop(0.38, rgb(79,79,79)),
1618
+ color-stop(0.69, rgb(33,33,33)),
1619
+ color-stop(0.86, rgb(4,4,4))
1620
+ );
1621
+ background-image: -moz-linear-gradient(
1622
+ center bottom,
1623
+ rgb(79,79,79) 38%,
1624
+ rgb(33,33,33) 69%,
1625
+ rgb(4,4,4) 86%
1626
+ );
1627
+ color: #fff !!important;
1628
+ }
1629
+
1630
+ .slide.black h1, .slide.black h2, .slide.black h3,
1631
+ .slide.transparent h1, .slide.transparent h2, .slide.transparent h3 {
1632
+ color: #fff;
1633
+ text-shadow: 0 1px 4px #aaa;
1634
+ }
1635
+
1636
+ .slide.black a, .slide.transparent a {
1637
+ color: #ccc;
1638
+ }
1639
+
1640
+ .slide.white {
1641
+ color: #333 !!important;
1642
+ }
1643
+
1644
+ .slide.white h1, .slide.white h2, .slide.white h3 {
1645
+ color: #333;
1646
+ }
1647
+
1648
+ .slide.white a {
1649
+ color: #333;
1650
+ }
1651
+
1652
+
1653
+ .slide h1, .slide h2, .slide h3 {
1654
+ color: #333;
1655
+ /* text-align: center; */
1656
+ }
1657
+
1658
+ .slide h1 {
1659
+ font-family: "Droid Sans";
1660
+ font-size: 36px;
1661
+ text-shadow: 0 1px 4px #aaa;
1662
+ margin-top: 30px;
1663
+ margin-bottom: 50px;
1664
+ }
1665
+
1666
+ .slide button {
1667
+ font-size: 18px;
1668
+ }
1669
+
1670
+ .slide a {
1671
+ color: #555;
1672
+ text-decoration: none;
1673
+ cursor: pointer;
1674
+ }
1675
+
1676
+ .slide a:hover {
1677
+ color: #fff;
1678
+ background: #555;
1679
+ }
1680
+
1681
+ .slide .right {
1682
+ text-align: right;
1683
+ }
1684
+
1685
+ .slide .section.center {
1686
+ text-align: center;
1687
+ display: table-cell;
1688
+ vertical-align: middle;
1689
+ width: 700px;
1690
+ height: 500px;
1691
+ }
1692
+
1693
+ .slide code {
1694
+ font-family: "Droid Sans Mono";
1695
+ color: #444;
1696
+ border: 1px solid #ddd;
1697
+ background: #eee;
1698
+ border-radius: 4px;
1699
+ padding: 2px;
1700
+ font-size: 16px;
1701
+ }
1702
+
1703
+ .slide .code2 {
1704
+ font-family: "Droid Sans Mono";
1705
+ line-height: 1.2em;
1706
+ color: #444;
1707
+ padding: 2px;
1708
+ font-size: 16px;
1709
+ }
1710
+
1711
+
1712
+ .slide .CodeMirror {
1713
+ width: 700px;
1714
+ height: 300px;
1715
+ text-align: left;
1716
+ }
1717
+
1718
+ .slide .CodeMirror-scroll {
1719
+ text-align: left;
1720
+ }
1721
+
1722
+ .slide .fancy {
1723
+ margin-top: 30px;
1724
+ -webkit-transform: rotate(-10deg);
1725
+ -moz-transform: rotate(-10deg);
1726
+ transform: rotate(-10deg);
1727
+ color: red;
1728
+ }
1729
+
1730
+ .slide .comment {
1731
+ opacity: 0.6;
1732
+ font-weight: normal;
1733
+ }
1734
+
1735
+ .slide .red {
1736
+ color: red;
1737
+ }
1738
+
1739
+ .slide .blue {
1740
+ color: blue;
1741
+ }
1742
+
1743
+ #meta {
1744
+ position: absolute;
1745
+ font-size: 12px;
1746
+ opacity: 0.6;
1747
+ bottom: 0;
1748
+ right: 0;
1749
+ z-index: 2;
1750
+ background: #333;
1751
+ text-align: right;
1752
+ padding: 0 10px;
1753
+ line-height: 1.8em;
1754
+ color: #eee;
1755
+ border-top-left-radius: 5px;
1756
+ }
1757
+
1758
+ #meta:hover {
1759
+ opacity: 0.8;
1760
+ }
1761
+
1762
+ #meta p {
1763
+ display: inline;
1764
+ padding: 0 5px;
1765
+ }
1766
+
1767
+ #meta a {
1768
+ //background: #ccc;
1769
+ color: #ccc;
1770
+ text-decoration: none;
1771
+ padding: 0 5px;
1772
+ }
1773
+
1774
+ .slide {
1775
+
1776
+ }
1777
+
1778
+ .slide.blue3d {
1779
+ background: #feffff;
1780
+ background: -moz-linear-gradient(top, #feffff 0%, #d2ebf9 100%);
1781
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#feffff), color-stop(100%,#d2ebf9));
1782
+ background: -webkit-linear-gradient(top, #feffff 0%,#d2ebf9 100%);
1783
+ background: -o-linear-gradient(top, #feffff 0%,#d2ebf9 100%);
1784
+ background: -ms-linear-gradient(top, #feffff 0%,#d2ebf9 100%);
1785
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#feffff", endColorstr="#d2ebf9",GradientType=0 );
1786
+ background: linear-gradient(top, #feffff 0%,#d2ebf9 100%);
1787
+ }
1788
+
1789
+
1790
+ .slide.red3d {
1791
+ background: #febbbb;
1792
+ background: -moz-linear-gradient(top, #febbbb 0%, #fe9090 71%, #ff5c5c 95%);
1793
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#febbbb), color-stop(71%,#fe9090), color-stop(95%,#ff5c5c));
1794
+ background: -webkit-linear-gradient(top, #febbbb 0%,#fe9090 71%,#ff5c5c 95%);
1795
+ background: -o-linear-gradient(top, #febbbb 0%,#fe9090 71%,#ff5c5c 95%);
1796
+ background: -ms-linear-gradient(top, #febbbb 0%,#fe9090 71%,#ff5c5c 95%);
1797
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#febbbb", endColorstr="#ff5c5c",GradientType=0 );
1798
+ background: linear-gradient(top, #febbbb 0%,#fe9090 71%,#ff5c5c 95%);
1799
+ }
1800
+
1801
+
1802
+ .slide.green3d {
1803
+ background: #cdeb8e;
1804
+ background: -moz-linear-gradient(top, #cdeb8e 0%, #a5c956 100%);
1805
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#cdeb8e), color-stop(100%,#a5c956));
1806
+ background: -webkit-linear-gradient(top, #cdeb8e 0%,#a5c956 100%);
1807
+ background: -o-linear-gradient(top, #cdeb8e 0%,#a5c956 100%);
1808
+ background: -ms-linear-gradient(top, #cdeb8e 0%,#a5c956 100%);
1809
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#cdeb8e", endColorstr="#a5c956",GradientType=0 );
1810
+ background: linear-gradient(top, #cdeb8e 0%,#a5c956 100%);
1811
+ }
1812
+
1813
+ @-webkit-keyframes rotate-horizontal {
1814
+ 0% { -webkit-transform: perspective(1000px) rotateY(-10deg);}
1815
+ 100% { -webkit-transform: perspective(1000px) rotateY(10deg);}
1816
+ }
1817
+
1818
+ .animate p{
1819
+ -webkit-animation: rotate-horizontal 2s infinite alternate ease-in-out;
1820
+ }
1821
+
1822
+ #FOSDEMAmberBackend img {
1823
+ margin: 5px;
1824
+ -webkit-animation: rotate-horizontal 2s infinite alternate ease-in-out;
1825
+ }
1826
+
1827
+ .slide#FOSDEMContributionsSlide {
1828
+ background: white url("esug2011/images/asterix.png") 30px 130px no-repeat;
1829
+ }
1830
+
1831
+ .slide#FOSDEMContributionsSlide .section {
1832
+ margin-left: 250px;
1833
+ margin-top: 200px;
1834
+ font-family: "Droid Sans";
1835
+ font-size: 26px;
1836
+ font-weight: bold;
1837
+ }
1838
+
1839
+
1840
+ .slide#ide {
1841
+ background: black url("esug2011/images/ide_star_wars.png") center center no-repeat;
1842
+ }
1843
+
1844
+
1845
+ .tweet {
1846
+ background-color: #aaa;
1847
+ color: black;
1848
+ padding: 10px;
1849
+ border-radius: 10px;
1850
+ border: 5px solid #eee;
1851
+ margin: 10px;
1852
+ }
1853
+
1854
+ .tweet img {
1855
+ vertical-align: top;
1856
+ margin-right: 10px;
1857
+ }
1858
+
1859
+ .tweet span:first-child {
1860
+ float: right;
1861
+ }
1862
+ '
1863
+ !
1864
+
1865
+ slideClasses
1866
+ ^ {
1867
+ FOSDEMIntroSlide.
1868
+ FOSDEMAmberZeroNine.
1869
+ CountersSlide.
1870
+ IDESlide.
1871
+ JtalkAndJavascriptSlide.
1872
+ FOSDEMJSPlayGroundSlide.
1873
+ FOSDEMJSToSmalltalk.
1874
+ FOSDEMBookletSlide.
1875
+ FOSDEMTwitter.
1876
+ FOSDEMCanvasSlide.
1877
+ FOSDEMAmberBackend.
1878
+ FOSDEMREPLSlide.
1879
+ FOSDEMCLISlide.
1880
+ FOSDEMContributionsSlide
1881
+ }
1882
+ ! !
1883
+
1884
+ !FOSDEM2012Presentation class methodsFor: 'testing'!
1885
+
1886
+ isConcrete
1887
+ ^true
1888
+ !
1889
+
1890
+ title
1891
+ ^'Amber'
1892
+ ! !
1893
+
1894
+ FOSDEMSlide subclass: #FOSDEMTwitter
1895
+ instanceVariableNames: 'twitterDiv'
1896
+ category: 'Presentation'!
1897
+
1898
+ !FOSDEMTwitter methodsFor: 'accessing'!
1899
+
1900
+ cssClass
1901
+ ^ 'slide black'
1902
+ ! !
1903
+
1904
+ !FOSDEMTwitter methodsFor: 'callback'!
1905
+
1906
+ loadTweets
1907
+ jQuery
1908
+ ajax: 'http://search.twitter.com/search.json?rpp=3&q=%40AmberSmalltalk'
1909
+ options: #{
1910
+ 'type' -> 'GET'.
1911
+ 'success' -> [ :json | self renderTweets: (json results)].
1912
+ 'dataType' -> 'jsonp'
1913
+ }.
1914
+ ! !
1915
+
1916
+ !FOSDEMTwitter methodsFor: 'rendering'!
1917
+
1918
+ renderSlideOn: html
1919
+ html button
1920
+ onClick: [self loadTweets];
1921
+ with: 'What about @AmberSmalltalk on Twitter ?'.
1922
+ twitterDiv := html div.
1923
+ !
1924
+
1925
+ renderTweets: tweets
1926
+ twitterDiv contents: [ :html|
1927
+ tweets do: [ :tweet|
1928
+ self renderTweet: tweet on: html] ]
1929
+ !
1930
+
1931
+ renderTweet: tweet on: html
1932
+ html div
1933
+ class: 'tweet';
1934
+ with: [
1935
+ html
1936
+ span: (tweet at: 'created_at');
1937
+ img: (tweet at: 'profile_image_url');
1938
+ span: (tweet at: 'from_user');
1939
+ div: (tweet at: 'text').
1940
+ ]
1941
+ ! !
1942
+
1943
+ FOSDEMSlide subclass: #FOSDEMCLISlide
1944
+ instanceVariableNames: ''
1945
+ category: 'Presentation'!
1946
+
1947
+ !FOSDEMCLISlide methodsFor: 'rendering'!
1948
+
1949
+ renderSlideOn: html
1950
+ html h1: 'CLI'.
1951
+ html with: 'amberc compiles .st files into node programs !!'.
1952
+ self renderCodeSnippetOn: html.
1953
+ !
1954
+
1955
+ codeSnippet
1956
+ ^
1957
+ 'cd examples/nodejs/hello
1958
+ ../../../bin/amberc -m Hello Hello.st Program
1959
+ node Program.js
1960
+
1961
+ Hello world from Amber in Node.js'
1962
+ ! !
1963
+
1964
+ FOSDEMSlide subclass: #FOSDEMContributionsSlide
1965
+ instanceVariableNames: ''
1966
+ category: 'Presentation'!
1967
+
1968
+ !FOSDEMContributionsSlide methodsFor: 'rendering'!
1969
+
1970
+ renderSlideOn: html
1971
+ html div class: 'section'; with: [
1972
+ html p with: [
1973
+ html a href: '/documentation.html'; with: 'Documentation'].
1974
+ html p with: [
1975
+ html a href: 'http://amber-lang.net'; with: 'amber-lang.net'].
1976
+ html p with: [
1977
+ html a href: 'https://github.com/NicolasPetton/amber'; with: 'github.com/NicolasPetton/amber'].
1978
+ html p with: [
1979
+ html a href: 'http://groups.google.com/group/amber-lang'; with: 'groups.google.com/group/amber-lang']]
1980
+ ! !
1981
+
1982
+ FOSDEMSlide subclass: #FOSDEMAmberZeroNine
1983
+ instanceVariableNames: ''
1984
+ category: 'Presentation'!
1985
+
1986
+ !FOSDEMAmberZeroNine methodsFor: 'not yet classified'!
1987
+
1988
+ renderSlideOn: html
1989
+ html div
1990
+ class: 'section center';
1991
+ with: [ html
1992
+ h1: 'Amber 0.9.1 is out !!';
1993
+ div: [html cite with: 'Now with over 43 forks on github and more than 230 followers the project: http://www.amber-lang.net ...is live and kicking!!'];
1994
+ div: [html cite with: '-- Nicolas & Göran'] ]
1995
+ ! !
1996
+