mdbe 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/LICENSE.txt +21 -0
- data/README.md +53 -0
- data/app.rb +182 -0
- data/bin/mdbe +5 -0
- data/config.ru +2 -0
- data/environment.rb +8 -0
- data/lib/mdbe.rb +39 -0
- data/lib/mdbe/action_controller_debug_patch.rb +12 -0
- data/lib/mdbe/code_evaluation.rb +46 -0
- data/lib/mdbe/database_views.rb +24 -0
- data/lib/mdbe/database_views/abstract_dictionary.rb +69 -0
- data/lib/mdbe/database_views/abstract_exception.rb +25 -0
- data/lib/mdbe/database_views/array.rb +28 -0
- data/lib/mdbe/database_views/boolean.rb +12 -0
- data/lib/mdbe/database_views/class.rb +46 -0
- data/lib/mdbe/database_views/exception.rb +3 -0
- data/lib/mdbe/database_views/execblock.rb +5 -0
- data/lib/mdbe/database_views/fixnum.rb +5 -0
- data/lib/mdbe/database_views/float.rb +5 -0
- data/lib/mdbe/database_views/globals.rb +2 -0
- data/lib/mdbe/database_views/gsnmethod.rb +29 -0
- data/lib/mdbe/database_views/hash.rb +5 -0
- data/lib/mdbe/database_views/maglev_record.rb +42 -0
- data/lib/mdbe/database_views/module.rb +103 -0
- data/lib/mdbe/database_views/nilclass.rb +5 -0
- data/lib/mdbe/database_views/object.rb +80 -0
- data/lib/mdbe/database_views/proc.rb +3 -0
- data/lib/mdbe/database_views/repository.rb +3 -0
- data/lib/mdbe/database_views/ruby_workspace.rb +5 -0
- data/lib/mdbe/database_views/smalltalk_classes.rb +34 -0
- data/lib/mdbe/database_views/smalltalk_classes.st +60 -0
- data/lib/mdbe/database_views/string.rb +31 -0
- data/lib/mdbe/database_views/symbol.rb +32 -0
- data/lib/mdbe/database_views/system.rb +61 -0
- data/lib/mdbe/database_views/thread.rb +101 -0
- data/lib/mdbe/debug_server.rb +22 -0
- data/lib/mdbe/halt.rb +42 -0
- data/lib/mdbe/ruby_workspace.rb +29 -0
- data/lib/mdbe/version.rb +3 -0
- data/lib/tasks/maglev-database-explorer_tasks.rake +4 -0
- data/public/LICENSE +35 -0
- data/public/amber/CHANGELOG +65 -0
- data/public/amber/LICENSE +22 -0
- data/public/amber/Makefile +53 -0
- data/public/amber/README.md +30 -0
- data/public/amber/bin/amber +3 -0
- data/public/amber/bin/amberc +352 -0
- data/public/amber/bin/nodecompile.js +33 -0
- data/public/amber/bin/server +3 -0
- data/public/amber/bin/server.bat +3 -0
- data/public/amber/css/amber-normalize.css +468 -0
- data/public/amber/css/amber-normalize.less +501 -0
- data/public/amber/css/amber.css +539 -0
- data/public/amber/css/documentation.css +84 -0
- data/public/amber/css/profstef.css +75 -0
- data/public/amber/css/style.css +313 -0
- data/public/amber/documentation.html +37 -0
- data/public/amber/examples/Makefile +23 -0
- data/public/amber/examples/README +4 -0
- data/public/amber/examples/android/helloamber/AndroidManifest.xml +19 -0
- data/public/amber/examples/android/helloamber/HelloAmber.st +13 -0
- data/public/amber/examples/android/helloamber/Makefile +56 -0
- data/public/amber/examples/android/helloamber/README.md +80 -0
- data/public/amber/examples/android/helloamber/ant.properties +17 -0
- data/public/amber/examples/android/helloamber/assets/index.html +15 -0
- data/public/amber/examples/android/helloamber/assets/jquery-1.7.2.min.js +4 -0
- data/public/amber/examples/android/helloamber/build.xml +83 -0
- data/public/amber/examples/android/helloamber/local.properties +10 -0
- data/public/amber/examples/android/helloamber/proguard-project.txt +20 -0
- data/public/amber/examples/android/helloamber/project.properties +14 -0
- data/public/amber/examples/android/helloamber/res/layout/main.xml +6 -0
- data/public/amber/examples/android/helloamber/res/values/strings.xml +4 -0
- data/public/amber/examples/android/helloamber/src/org/amberlang/android/helloamber/HelloAmber.java +59 -0
- data/public/amber/examples/myproject/index.html +16 -0
- data/public/amber/examples/nodejs/README +9 -0
- data/public/amber/examples/nodejs/benchfib/Benchfib.st +124 -0
- data/public/amber/examples/nodejs/benchfib/Makefile +8 -0
- data/public/amber/examples/nodejs/benchfib/benchfib +1 -0
- data/public/amber/examples/nodejs/hello/Hello.st +9 -0
- data/public/amber/examples/nodejs/hello/Makefile +8 -0
- data/public/amber/examples/nodejs/hello/README +13 -0
- data/public/amber/examples/nodejs/hello/hello +1 -0
- data/public/amber/examples/nodejs/meta/Makefile +8 -0
- data/public/amber/examples/nodejs/meta/MyScript.st +27 -0
- data/public/amber/examples/nodejs/meta/meta +1 -0
- data/public/amber/examples/nodejs/pystone/Makefile +8 -0
- data/public/amber/examples/nodejs/pystone/Pystone.st +306 -0
- data/public/amber/examples/nodejs/pystone/pystone +1 -0
- data/public/amber/examples/nodejs/trivialserver/Makefile +8 -0
- data/public/amber/examples/nodejs/trivialserver/TrivialServer.st +51 -0
- data/public/amber/examples/nodejs/trivialserver/trivial +1 -0
- data/public/amber/examples/presentation/esug2011/images/asterix.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/background_box.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/background_header.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/balloon.jpg +0 -0
- data/public/amber/examples/presentation/esug2011/images/balloon_header.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/devices.jpg +0 -0
- data/public/amber/examples/presentation/esug2011/images/enyo.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/ide_star_wars.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/nodejs.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/terminal.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/webos.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/amber.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/ambrhino.jpg +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/nodejs.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/pharo.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/php.gif +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/rails.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-next.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-prev.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/closedhand.cur +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/openhand.cur +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-back.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-forward.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.css +100 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.js +1232 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.min.js +13 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.easing.1.3.js +38 -0
- data/public/amber/examples/presentation/index.html +17 -0
- data/public/amber/examples/presentation/js/Presentation.deploy.js +1922 -0
- data/public/amber/examples/presentation/js/Presentation.js +2712 -0
- data/public/amber/examples/presentation/st/Presentation.st +1996 -0
- data/public/amber/examples/trysmalltalk/index.html +18 -0
- data/public/amber/examples/trysmalltalk/js/TrySmalltalk.deploy.js +837 -0
- data/public/amber/examples/trysmalltalk/js/TrySmalltalk.js +1206 -0
- data/public/amber/examples/trysmalltalk/st/TrySmalltalk.st +964 -0
- data/public/amber/examples/twitterwall/css/twitterwall.css +19 -0
- data/public/amber/examples/twitterwall/index.html +35 -0
- data/public/amber/examples/twitterwall/js/TwitterWall.deploy.js +116 -0
- data/public/amber/examples/twitterwall/js/TwitterWall.js +146 -0
- data/public/amber/examples/twitterwall/st/TwitterWall.st +91 -0
- data/public/amber/examples/webos/README +11 -0
- data/public/amber/examples/webos/eris/DuckQwaq.wav +0 -0
- data/public/amber/examples/webos/eris/EnyoAmber.st +36 -0
- data/public/amber/examples/webos/eris/Eris.css +0 -0
- data/public/amber/examples/webos/eris/Eris.st +86 -0
- data/public/amber/examples/webos/eris/Makefile +37 -0
- data/public/amber/examples/webos/eris/README +3 -0
- data/public/amber/examples/webos/eris/appinfo.json +10 -0
- data/public/amber/examples/webos/eris/index.html +12 -0
- data/public/amber/examples/webos/helloamber/EnyoAmber.st +36 -0
- data/public/amber/examples/webos/helloamber/HelloAmber.st +86 -0
- data/public/amber/examples/webos/helloamber/Makefile +38 -0
- data/public/amber/examples/webos/helloamber/README +5 -0
- data/public/amber/examples/webos/helloamber/appinfo.json +10 -0
- data/public/amber/examples/webos/helloamber/index.html +12 -0
- data/public/amber/favicon.ico +0 -0
- data/public/amber/images/amber.png +0 -0
- data/public/amber/images/amber.svg +706 -0
- data/public/amber/images/amber_small.png +0 -0
- data/public/amber/images/off.amber.png +0 -0
- data/public/amber/images/off.png +0 -0
- data/public/amber/images/offHover.amber.png +0 -0
- data/public/amber/images/offHover.png +0 -0
- data/public/amber/images/presentation.png +0 -0
- data/public/amber/images/profstef.png +0 -0
- data/public/amber/images/sprite.amber.png +0 -0
- data/public/amber/images/sprite.png +0 -0
- data/public/amber/images/tinylogo.amber.png +0 -0
- data/public/amber/images/tinylogo.png +0 -0
- data/public/amber/images/twitterwall.png +0 -0
- data/public/amber/index.html +55 -0
- data/public/amber/js/Additional-Examples.deploy.js +15 -0
- data/public/amber/js/Additional-Examples.js +21 -0
- data/public/amber/js/Benchfib.deploy.js +132 -0
- data/public/amber/js/Benchfib.js +167 -0
- data/public/amber/js/Canvas.deploy.js +2446 -0
- data/public/amber/js/Canvas.js +3547 -0
- data/public/amber/js/Compiler-Tests.deploy.js +97 -0
- data/public/amber/js/Compiler-Tests.js +137 -0
- data/public/amber/js/Compiler.deploy.js +1877 -0
- data/public/amber/js/Compiler.js +2622 -0
- data/public/amber/js/Documentation.deploy.js +961 -0
- data/public/amber/js/Documentation.js +1376 -0
- data/public/amber/js/Examples.deploy.js +53 -0
- data/public/amber/js/Examples.js +73 -0
- data/public/amber/js/IDE.deploy.js +3557 -0
- data/public/amber/js/IDE.js +5002 -0
- data/public/amber/js/Kernel-Announcements.deploy.js +107 -0
- data/public/amber/js/Kernel-Announcements.js +152 -0
- data/public/amber/js/Kernel-Classes.deploy.js +774 -0
- data/public/amber/js/Kernel-Classes.js +1095 -0
- data/public/amber/js/Kernel-Collections.deploy.js +3121 -0
- data/public/amber/js/Kernel-Collections.js +4427 -0
- data/public/amber/js/Kernel-Exceptions.deploy.js +244 -0
- data/public/amber/js/Kernel-Exceptions.js +349 -0
- data/public/amber/js/Kernel-Methods.deploy.js +573 -0
- data/public/amber/js/Kernel-Methods.js +807 -0
- data/public/amber/js/Kernel-Objects.deploy.js +2877 -0
- data/public/amber/js/Kernel-Objects.js +4107 -0
- data/public/amber/js/Kernel-Tests.deploy.js +1513 -0
- data/public/amber/js/Kernel-Tests.js +2053 -0
- data/public/amber/js/Kernel-Transcript.deploy.js +142 -0
- data/public/amber/js/Kernel-Transcript.js +202 -0
- data/public/amber/js/Maglev-Core.deploy.js +2996 -0
- data/public/amber/js/Maglev-Core.js +4246 -0
- data/public/amber/js/Maglev-Database-Explorer.deploy.js +4476 -0
- data/public/amber/js/Maglev-Database-Explorer.js +6232 -0
- data/public/amber/js/Maglev-Vendor.deploy.js +350 -0
- data/public/amber/js/Maglev-Vendor.js +465 -0
- data/public/amber/js/README.md +5 -0
- data/public/amber/js/SUnit.deploy.js +351 -0
- data/public/amber/js/SUnit.js +501 -0
- data/public/amber/js/amber.js +273 -0
- data/public/amber/js/boot.js +602 -0
- data/public/amber/js/compat.js +22 -0
- data/public/amber/js/init.js +9 -0
- data/public/amber/js/lib/CodeMirror/LICENSE +19 -0
- data/public/amber/js/lib/CodeMirror/active-line.js +39 -0
- data/public/amber/js/lib/CodeMirror/amber.css +21 -0
- data/public/amber/js/lib/CodeMirror/codemirror.css +67 -0
- data/public/amber/js/lib/CodeMirror/codemirror.js +2144 -0
- data/public/amber/js/lib/CodeMirror/smalltalk.js +134 -0
- data/public/amber/js/lib/jQuery/jquery-1.4.4.min.js +167 -0
- data/public/amber/js/lib/jQuery/jquery-1.6.4.min.js +4 -0
- data/public/amber/js/lib/jQuery/jquery-ui-1.8.16.custom.min.js +791 -0
- data/public/amber/js/lib/jQuery/jquery.textarea.js +267 -0
- data/public/amber/js/lib/peg-0.6.2.min.js +2 -0
- data/public/amber/js/lib/showdown.js +419 -0
- data/public/amber/js/parser.js +4222 -0
- data/public/amber/js/parser.pegjs +223 -0
- data/public/amber/learn.html +40 -0
- data/public/amber/repl/Makefile +8 -0
- data/public/amber/repl/REPL.js +124 -0
- data/public/amber/repl/REPL.st +56 -0
- data/public/amber/repl/amber.js +18085 -0
- data/public/amber/server/FileServer.st +576 -0
- data/public/amber/server/Makefile +8 -0
- data/public/amber/server/server.js +13049 -0
- data/public/amber/st/Benchfib.js +297 -0
- data/public/amber/st/Benchfib.st +124 -0
- data/public/amber/st/Canvas.st +968 -0
- data/public/amber/st/Compiler-Tests.st +471 -0
- data/public/amber/st/Compiler.st +1445 -0
- data/public/amber/st/Documentation.st +758 -0
- data/public/amber/st/Examples.js +100 -0
- data/public/amber/st/Examples.st +38 -0
- data/public/amber/st/IDE.st +2404 -0
- data/public/amber/st/Kernel-Announcements.st +61 -0
- data/public/amber/st/Kernel-Classes.st +462 -0
- data/public/amber/st/Kernel-Collections.st +1611 -0
- data/public/amber/st/Kernel-Exceptions.st +124 -0
- data/public/amber/st/Kernel-Methods.st +291 -0
- data/public/amber/st/Kernel-Objects.st +1587 -0
- data/public/amber/st/Kernel-Tests.st +953 -0
- data/public/amber/st/Kernel-Transcript.st +70 -0
- data/public/amber/st/Maglev-Core.st +1694 -0
- data/public/amber/st/Maglev-Database-Explorer.st +3148 -0
- data/public/amber/st/Maglev-Vendor.st +151 -0
- data/public/amber/st/Makefile +104 -0
- data/public/amber/st/README.md +4 -0
- data/public/amber/st/SUnit.st +172 -0
- data/public/css/bootstrap-combined.no-icons.min.css +731 -0
- data/public/css/bootstrap.css +6811 -0
- data/public/css/images/animated-overlay.gif +0 -0
- data/public/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/public/css/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/public/css/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/public/css/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/public/css/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/public/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/public/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/public/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/public/css/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/images/ui-icons_228ef1_256x240.png +0 -0
- data/public/css/images/ui-icons_ef8c08_256x240.png +0 -0
- data/public/css/images/ui-icons_ffd27a_256x240.png +0 -0
- data/public/css/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/jquery-ui.min.css +5 -0
- data/public/css/smalltalk_code.css +42 -0
- data/public/css/style.css +210 -0
- data/public/images/bg_tile.png +0 -0
- data/public/images/maglev-logo.gif +0 -0
- data/public/images/mchammer.gif +0 -0
- data/public/images/rails_tiny.png +0 -0
- data/public/images/ruby.png +0 -0
- data/public/images/ruby_smalltalk_bridge.png +0 -0
- data/public/images/smalltalk.png +0 -0
- data/public/img/glyphicons-halflings.png +0 -0
- data/public/index.html +118 -0
- data/public/libs/bootstrap.min.js +7 -0
- data/public/libs/codemirror/CONTRIBUTING.md +72 -0
- data/public/libs/codemirror/LICENSE +23 -0
- data/public/libs/codemirror/README.md +11 -0
- data/public/libs/codemirror/addon/dialog/dialog.css +32 -0
- data/public/libs/codemirror/addon/dialog/dialog.js +80 -0
- data/public/libs/codemirror/addon/display/placeholder.js +54 -0
- data/public/libs/codemirror/addon/edit/closebrackets.js +54 -0
- data/public/libs/codemirror/addon/edit/closetag.js +86 -0
- data/public/libs/codemirror/addon/edit/continuecomment.js +44 -0
- data/public/libs/codemirror/addon/edit/continuelist.js +25 -0
- data/public/libs/codemirror/addon/edit/matchbrackets.js +82 -0
- data/public/libs/codemirror/addon/fold/brace-fold.js +31 -0
- data/public/libs/codemirror/addon/fold/foldcode.js +32 -0
- data/public/libs/codemirror/addon/fold/indent-fold.js +11 -0
- data/public/libs/codemirror/addon/fold/xml-fold.js +64 -0
- data/public/libs/codemirror/addon/hint/html-hint.js +582 -0
- data/public/libs/codemirror/addon/hint/javascript-hint.js +142 -0
- data/public/libs/codemirror/addon/hint/pig-hint.js +117 -0
- data/public/libs/codemirror/addon/hint/python-hint.js +93 -0
- data/public/libs/codemirror/addon/hint/show-hint.css +38 -0
- data/public/libs/codemirror/addon/hint/show-hint.js +180 -0
- data/public/libs/codemirror/addon/hint/xml-hint.js +118 -0
- data/public/libs/codemirror/addon/lint/javascript-lint.js +127 -0
- data/public/libs/codemirror/addon/lint/json-lint.js +14 -0
- data/public/libs/codemirror/addon/lint/lint.css +96 -0
- data/public/libs/codemirror/addon/lint/lint.js +197 -0
- data/public/libs/codemirror/addon/mode/loadmode.js +51 -0
- data/public/libs/codemirror/addon/mode/multiplex.js +95 -0
- data/public/libs/codemirror/addon/mode/overlay.js +59 -0
- data/public/libs/codemirror/addon/runmode/colorize.js +29 -0
- data/public/libs/codemirror/addon/runmode/runmode-standalone.js +130 -0
- data/public/libs/codemirror/addon/runmode/runmode.js +52 -0
- data/public/libs/codemirror/addon/runmode/runmode.node.js +89 -0
- data/public/libs/codemirror/addon/search/match-highlighter.js +60 -0
- data/public/libs/codemirror/addon/search/search.js +131 -0
- data/public/libs/codemirror/addon/search/searchcursor.js +133 -0
- data/public/libs/codemirror/addon/selection/active-line.js +39 -0
- data/public/libs/codemirror/addon/selection/mark-selection.js +34 -0
- data/public/libs/codemirror/bin/compress +91 -0
- data/public/libs/codemirror/bin/lint +11 -0
- data/public/libs/codemirror/demo/activeline.html +70 -0
- data/public/libs/codemirror/demo/bidi.html +61 -0
- data/public/libs/codemirror/demo/btree.html +87 -0
- data/public/libs/codemirror/demo/buffers.html +98 -0
- data/public/libs/codemirror/demo/changemode.html +50 -0
- data/public/libs/codemirror/demo/closebrackets.html +63 -0
- data/public/libs/codemirror/demo/closetag.html +37 -0
- data/public/libs/codemirror/demo/complete.html +70 -0
- data/public/libs/codemirror/demo/emacs.html +60 -0
- data/public/libs/codemirror/demo/folding.html +69 -0
- data/public/libs/codemirror/demo/fullscreen.html +147 -0
- data/public/libs/codemirror/demo/html5complete.html +92 -0
- data/public/libs/codemirror/demo/indentwrap.html +49 -0
- data/public/libs/codemirror/demo/lint.html +90 -0
- data/public/libs/codemirror/demo/loadmode.html +40 -0
- data/public/libs/codemirror/demo/marker.html +59 -0
- data/public/libs/codemirror/demo/markselection.html +36 -0
- data/public/libs/codemirror/demo/matchhighlighter.html +38 -0
- data/public/libs/codemirror/demo/multiplex.html +60 -0
- data/public/libs/codemirror/demo/mustache.html +59 -0
- data/public/libs/codemirror/demo/placeholder.html +36 -0
- data/public/libs/codemirror/demo/preview.html +76 -0
- data/public/libs/codemirror/demo/resize.html +49 -0
- data/public/libs/codemirror/demo/runmode.html +50 -0
- data/public/libs/codemirror/demo/search.html +85 -0
- data/public/libs/codemirror/demo/spanaffectswrapping_shim.html +73 -0
- data/public/libs/codemirror/demo/theme.html +89 -0
- data/public/libs/codemirror/demo/variableheight.html +52 -0
- data/public/libs/codemirror/demo/vim.html +65 -0
- data/public/libs/codemirror/demo/visibletabs.html +53 -0
- data/public/libs/codemirror/demo/widget.html +74 -0
- data/public/libs/codemirror/demo/xmlcomplete.html +81 -0
- data/public/libs/codemirror/index.html +487 -0
- data/public/libs/codemirror/keymap/emacs.js +30 -0
- data/public/libs/codemirror/keymap/vim.js +3044 -0
- data/public/libs/codemirror/lib/codemirror.css +253 -0
- data/public/libs/codemirror/lib/codemirror.js +5585 -0
- data/public/libs/codemirror/mode/apl/apl.js +160 -0
- data/public/libs/codemirror/mode/apl/index.html +61 -0
- data/public/libs/codemirror/mode/asterisk/asterisk.js +183 -0
- data/public/libs/codemirror/mode/asterisk/index.html +142 -0
- data/public/libs/codemirror/mode/clike/clike.js +302 -0
- data/public/libs/codemirror/mode/clike/index.html +103 -0
- data/public/libs/codemirror/mode/clike/scala.html +767 -0
- data/public/libs/codemirror/mode/clojure/clojure.js +222 -0
- data/public/libs/codemirror/mode/clojure/index.html +76 -0
- data/public/libs/codemirror/mode/coffeescript/LICENSE +22 -0
- data/public/libs/codemirror/mode/coffeescript/coffeescript.js +346 -0
- data/public/libs/codemirror/mode/coffeescript/index.html +728 -0
- data/public/libs/codemirror/mode/commonlisp/commonlisp.js +101 -0
- data/public/libs/codemirror/mode/commonlisp/index.html +165 -0
- data/public/libs/codemirror/mode/css/css.js +567 -0
- data/public/libs/codemirror/mode/css/index.html +58 -0
- data/public/libs/codemirror/mode/css/scss.html +145 -0
- data/public/libs/codemirror/mode/css/scss_test.js +80 -0
- data/public/libs/codemirror/mode/css/test.js +113 -0
- data/public/libs/codemirror/mode/d/d.js +205 -0
- data/public/libs/codemirror/mode/d/index.html +262 -0
- data/public/libs/codemirror/mode/diff/diff.js +32 -0
- data/public/libs/codemirror/mode/diff/index.html +105 -0
- data/public/libs/codemirror/mode/ecl/ecl.js +192 -0
- data/public/libs/codemirror/mode/ecl/index.html +39 -0
- data/public/libs/codemirror/mode/erlang/erlang.js +463 -0
- data/public/libs/codemirror/mode/erlang/index.html +64 -0
- data/public/libs/codemirror/mode/gas/gas.js +326 -0
- data/public/libs/codemirror/mode/gas/index.html +57 -0
- data/public/libs/codemirror/mode/gfm/gfm.js +96 -0
- data/public/libs/codemirror/mode/gfm/index.html +74 -0
- data/public/libs/codemirror/mode/gfm/test.js +112 -0
- data/public/libs/codemirror/mode/go/go.js +165 -0
- data/public/libs/codemirror/mode/go/index.html +74 -0
- data/public/libs/codemirror/mode/groovy/groovy.js +210 -0
- data/public/libs/codemirror/mode/groovy/index.html +73 -0
- data/public/libs/codemirror/mode/haskell/haskell.js +242 -0
- data/public/libs/codemirror/mode/haskell/index.html +62 -0
- data/public/libs/codemirror/mode/haxe/haxe.js +429 -0
- data/public/libs/codemirror/mode/haxe/index.html +90 -0
- data/public/libs/codemirror/mode/htmlembedded/htmlembedded.js +73 -0
- data/public/libs/codemirror/mode/htmlembedded/index.html +49 -0
- data/public/libs/codemirror/mode/htmlmixed/htmlmixed.js +104 -0
- data/public/libs/codemirror/mode/htmlmixed/index.html +73 -0
- data/public/libs/codemirror/mode/http/http.js +98 -0
- data/public/libs/codemirror/mode/http/index.html +32 -0
- data/public/libs/codemirror/mode/javascript/index.html +92 -0
- data/public/libs/codemirror/mode/javascript/javascript.js +467 -0
- data/public/libs/codemirror/mode/javascript/typescript.html +48 -0
- data/public/libs/codemirror/mode/jinja2/index.html +38 -0
- data/public/libs/codemirror/mode/jinja2/jinja2.js +42 -0
- data/public/libs/codemirror/mode/less/index.html +741 -0
- data/public/libs/codemirror/mode/less/less.js +266 -0
- data/public/libs/codemirror/mode/livescript/LICENSE +23 -0
- data/public/libs/codemirror/mode/livescript/index.html +446 -0
- data/public/libs/codemirror/mode/livescript/livescript.js +267 -0
- data/public/libs/codemirror/mode/livescript/livescript.ls +266 -0
- data/public/libs/codemirror/mode/lua/index.html +74 -0
- data/public/libs/codemirror/mode/lua/lua.js +140 -0
- data/public/libs/codemirror/mode/markdown/index.html +344 -0
- data/public/libs/codemirror/mode/markdown/markdown.js +526 -0
- data/public/libs/codemirror/mode/markdown/test.js +636 -0
- data/public/libs/codemirror/mode/meta.js +75 -0
- data/public/libs/codemirror/mode/mirc/index.html +149 -0
- data/public/libs/codemirror/mode/mirc/mirc.js +177 -0
- data/public/libs/codemirror/mode/ntriples/index.html +33 -0
- data/public/libs/codemirror/mode/ntriples/ntriples.js +170 -0
- data/public/libs/codemirror/mode/ocaml/index.html +131 -0
- data/public/libs/codemirror/mode/ocaml/ocaml.js +113 -0
- data/public/libs/codemirror/mode/pascal/LICENSE +7 -0
- data/public/libs/codemirror/mode/pascal/index.html +48 -0
- data/public/libs/codemirror/mode/pascal/pascal.js +94 -0
- data/public/libs/codemirror/mode/perl/LICENSE +19 -0
- data/public/libs/codemirror/mode/perl/index.html +62 -0
- data/public/libs/codemirror/mode/perl/perl.js +816 -0
- data/public/libs/codemirror/mode/php/index.html +51 -0
- data/public/libs/codemirror/mode/php/php.js +129 -0
- data/public/libs/codemirror/mode/pig/index.html +42 -0
- data/public/libs/codemirror/mode/pig/pig.js +171 -0
- data/public/libs/codemirror/mode/properties/index.html +41 -0
- data/public/libs/codemirror/mode/properties/properties.js +63 -0
- data/public/libs/codemirror/mode/python/LICENSE.txt +21 -0
- data/public/libs/codemirror/mode/python/index.html +135 -0
- data/public/libs/codemirror/mode/python/python.js +340 -0
- data/public/libs/codemirror/mode/q/index.html +131 -0
- data/public/libs/codemirror/mode/q/q.js +124 -0
- data/public/libs/codemirror/mode/r/LICENSE +24 -0
- data/public/libs/codemirror/mode/r/index.html +74 -0
- data/public/libs/codemirror/mode/r/r.js +141 -0
- data/public/libs/codemirror/mode/rpm/changes/changes.js +19 -0
- data/public/libs/codemirror/mode/rpm/changes/index.html +53 -0
- data/public/libs/codemirror/mode/rpm/spec/index.html +99 -0
- data/public/libs/codemirror/mode/rpm/spec/spec.css +5 -0
- data/public/libs/codemirror/mode/rpm/spec/spec.js +66 -0
- data/public/libs/codemirror/mode/rst/LICENSE.txt +21 -0
- data/public/libs/codemirror/mode/rst/index.html +524 -0
- data/public/libs/codemirror/mode/rst/rst.js +550 -0
- data/public/libs/codemirror/mode/ruby/LICENSE +24 -0
- data/public/libs/codemirror/mode/ruby/index.html +173 -0
- data/public/libs/codemirror/mode/ruby/ruby.js +197 -0
- data/public/libs/codemirror/mode/rust/index.html +48 -0
- data/public/libs/codemirror/mode/rust/rust.js +432 -0
- data/public/libs/codemirror/mode/sass/index.html +54 -0
- data/public/libs/codemirror/mode/sass/sass.js +349 -0
- data/public/libs/codemirror/mode/scheme/index.html +65 -0
- data/public/libs/codemirror/mode/scheme/scheme.js +230 -0
- data/public/libs/codemirror/mode/shell/index.html +51 -0
- data/public/libs/codemirror/mode/shell/shell.js +118 -0
- data/public/libs/codemirror/mode/sieve/LICENSE +19 -0
- data/public/libs/codemirror/mode/sieve/index.html +81 -0
- data/public/libs/codemirror/mode/sieve/sieve.js +183 -0
- data/public/libs/codemirror/mode/smalltalk/index.html +57 -0
- data/public/libs/codemirror/mode/smalltalk/smalltalk.js +141 -0
- data/public/libs/codemirror/mode/smarty/index.html +83 -0
- data/public/libs/codemirror/mode/smarty/smarty.js +148 -0
- data/public/libs/codemirror/mode/sparql/index.html +42 -0
- data/public/libs/codemirror/mode/sparql/sparql.js +143 -0
- data/public/libs/codemirror/mode/sql/index.html +68 -0
- data/public/libs/codemirror/mode/sql/sql.js +268 -0
- data/public/libs/codemirror/mode/stex/index.html +98 -0
- data/public/libs/codemirror/mode/stex/stex.js +246 -0
- data/public/libs/codemirror/mode/stex/test.js +117 -0
- data/public/libs/codemirror/mode/tcl/index.html +129 -0
- data/public/libs/codemirror/mode/tcl/tcl.js +131 -0
- data/public/libs/codemirror/mode/tiddlywiki/index.html +142 -0
- data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
- data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.js +353 -0
- data/public/libs/codemirror/mode/tiki/index.html +81 -0
- data/public/libs/codemirror/mode/tiki/tiki.css +26 -0
- data/public/libs/codemirror/mode/tiki/tiki.js +308 -0
- data/public/libs/codemirror/mode/turtle/index.html +39 -0
- data/public/libs/codemirror/mode/turtle/turtle.js +145 -0
- data/public/libs/codemirror/mode/vb/LICENSE.txt +21 -0
- data/public/libs/codemirror/mode/vb/index.html +88 -0
- data/public/libs/codemirror/mode/vb/vb.js +259 -0
- data/public/libs/codemirror/mode/vbscript/index.html +42 -0
- data/public/libs/codemirror/mode/vbscript/vbscript.js +26 -0
- data/public/libs/codemirror/mode/velocity/index.html +103 -0
- data/public/libs/codemirror/mode/velocity/velocity.js +144 -0
- data/public/libs/codemirror/mode/verilog/index.html +121 -0
- data/public/libs/codemirror/mode/verilog/verilog.js +182 -0
- data/public/libs/codemirror/mode/xml/index.html +45 -0
- data/public/libs/codemirror/mode/xml/xml.js +328 -0
- data/public/libs/codemirror/mode/xquery/LICENSE +20 -0
- data/public/libs/codemirror/mode/xquery/index.html +221 -0
- data/public/libs/codemirror/mode/xquery/test.js +64 -0
- data/public/libs/codemirror/mode/xquery/xquery.js +450 -0
- data/public/libs/codemirror/mode/yaml/index.html +68 -0
- data/public/libs/codemirror/mode/yaml/yaml.js +95 -0
- data/public/libs/codemirror/mode/z80/index.html +39 -0
- data/public/libs/codemirror/mode/z80/z80.js +85 -0
- data/public/libs/codemirror/package.json +21 -0
- data/public/libs/codemirror/test/doc_test.js +329 -0
- data/public/libs/codemirror/test/driver.js +138 -0
- data/public/libs/codemirror/test/index.html +182 -0
- data/public/libs/codemirror/test/lint/acorn.js +1593 -0
- data/public/libs/codemirror/test/lint/lint.js +112 -0
- data/public/libs/codemirror/test/lint/parse-js.js +1372 -0
- data/public/libs/codemirror/test/lint/walk.js +216 -0
- data/public/libs/codemirror/test/mode_test.css +10 -0
- data/public/libs/codemirror/test/mode_test.js +192 -0
- data/public/libs/codemirror/test/phantom_driver.js +31 -0
- data/public/libs/codemirror/test/run.js +33 -0
- data/public/libs/codemirror/test/test.js +1400 -0
- data/public/libs/codemirror/test/vim_test.js +1688 -0
- data/public/libs/codemirror/theme/ambiance-mobile.css +5 -0
- data/public/libs/codemirror/theme/ambiance.css +75 -0
- data/public/libs/codemirror/theme/blackboard.css +25 -0
- data/public/libs/codemirror/theme/cobalt.css +18 -0
- data/public/libs/codemirror/theme/eclipse.css +25 -0
- data/public/libs/codemirror/theme/elegant.css +10 -0
- data/public/libs/codemirror/theme/erlang-dark.css +21 -0
- data/public/libs/codemirror/theme/lesser-dark.css +44 -0
- data/public/libs/codemirror/theme/midnight.css +52 -0
- data/public/libs/codemirror/theme/monokai.css +28 -0
- data/public/libs/codemirror/theme/neat.css +9 -0
- data/public/libs/codemirror/theme/night.css +21 -0
- data/public/libs/codemirror/theme/rubyblue.css +21 -0
- data/public/libs/codemirror/theme/solarized.css +207 -0
- data/public/libs/codemirror/theme/twilight.css +26 -0
- data/public/libs/codemirror/theme/vibrant-ink.css +27 -0
- data/public/libs/codemirror/theme/xq-dark.css +46 -0
- data/public/libs/codemirror/theme/xq-light.css +43 -0
- data/public/libs/font-awesome/css/font-awesome-ie7.css +983 -0
- data/public/libs/font-awesome/css/font-awesome-ie7.min.css +24 -0
- data/public/libs/font-awesome/css/font-awesome.css +1268 -0
- data/public/libs/font-awesome/css/font-awesome.min.css +24 -0
- data/public/libs/font-awesome/font/FontAwesome.otf +0 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.eot +0 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.svg +339 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.ttf +0 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.woff +0 -0
- data/public/libs/font-awesome/less/bootstrap.less +78 -0
- data/public/libs/font-awesome/less/core.less +132 -0
- data/public/libs/font-awesome/less/extras.less +79 -0
- data/public/libs/font-awesome/less/font-awesome-ie7.less +413 -0
- data/public/libs/font-awesome/less/font-awesome.less +32 -0
- data/public/libs/font-awesome/less/icons.less +330 -0
- data/public/libs/font-awesome/less/mixins.less +34 -0
- data/public/libs/font-awesome/less/path.less +15 -0
- data/public/libs/font-awesome/less/variables.less +9 -0
- data/public/libs/jquery-1.10.0.min.js +6 -0
- data/public/libs/jquery-ui.min.js +12 -0
- data/public/libs/jquery.jsPlumb-1.4.0-all.js +9571 -0
- data/public/libs/jquery.livequery.js +226 -0
- data/public/libs/jsPlumbInitializer.js +72 -0
- data/public/libs/jstree/README.txt +10 -0
- data/public/libs/jstree/_demo/_dump.sql +20 -0
- data/public/libs/jstree/_demo/_inc/__mysql_errors.log +0 -0
- data/public/libs/jstree/_demo/_inc/class._database.php +146 -0
- data/public/libs/jstree/_demo/_inc/class._database_i.php +152 -0
- data/public/libs/jstree/_demo/_inc/class.tree.php +602 -0
- data/public/libs/jstree/_demo/_install.txt +6 -0
- data/public/libs/jstree/_demo/config.php +14 -0
- data/public/libs/jstree/_demo/file.png +0 -0
- data/public/libs/jstree/_demo/folder.png +0 -0
- data/public/libs/jstree/_demo/index.html +461 -0
- data/public/libs/jstree/_demo/root.png +0 -0
- data/public/libs/jstree/_demo/server.php +69 -0
- data/public/libs/jstree/_docs/!style.css +48 -0
- data/public/libs/jstree/_docs/_drive.png +0 -0
- data/public/libs/jstree/_docs/_html_data.html +2 -0
- data/public/libs/jstree/_docs/_json_data.json +4 -0
- data/public/libs/jstree/_docs/_search_data.json +6 -0
- data/public/libs/jstree/_docs/_search_result.json +1 -0
- data/public/libs/jstree/_docs/_xml_flat.xml +12 -0
- data/public/libs/jstree/_docs/_xml_nest.xml +18 -0
- data/public/libs/jstree/_docs/checkbox.html +171 -0
- data/public/libs/jstree/_docs/contextmenu.html +121 -0
- data/public/libs/jstree/_docs/cookies.html +97 -0
- data/public/libs/jstree/_docs/core.html +689 -0
- data/public/libs/jstree/_docs/crrm.html +316 -0
- data/public/libs/jstree/_docs/dnd.html +199 -0
- data/public/libs/jstree/_docs/hotkeys.html +82 -0
- data/public/libs/jstree/_docs/html_data.html +175 -0
- data/public/libs/jstree/_docs/index.html +86 -0
- data/public/libs/jstree/_docs/json_data.html +249 -0
- data/public/libs/jstree/_docs/languages.html +152 -0
- data/public/libs/jstree/_docs/logo.png +0 -0
- data/public/libs/jstree/_docs/search.html +153 -0
- data/public/libs/jstree/_docs/sort.html +85 -0
- data/public/libs/jstree/_docs/syntax/!script.js +2232 -0
- data/public/libs/jstree/_docs/syntax/!style.css +511 -0
- data/public/libs/jstree/_docs/syntax/clipboard.swf +0 -0
- data/public/libs/jstree/_docs/syntax/help.png +0 -0
- data/public/libs/jstree/_docs/syntax/magnifier.png +0 -0
- data/public/libs/jstree/_docs/syntax/page_white_code.png +0 -0
- data/public/libs/jstree/_docs/syntax/page_white_copy.png +0 -0
- data/public/libs/jstree/_docs/syntax/printer.png +0 -0
- data/public/libs/jstree/_docs/syntax/wrapping.png +0 -0
- data/public/libs/jstree/_docs/themeroller.html +107 -0
- data/public/libs/jstree/_docs/themes.html +127 -0
- data/public/libs/jstree/_docs/types.html +178 -0
- data/public/libs/jstree/_docs/ui.html +197 -0
- data/public/libs/jstree/_docs/unique.html +85 -0
- data/public/libs/jstree/_docs/xml_data.html +218 -0
- data/public/libs/jstree/_lib/jquery.cookie.js +96 -0
- data/public/libs/jstree/_lib/jquery.hotkeys.js +99 -0
- data/public/libs/jstree/_lib/jquery.js +5 -0
- data/public/libs/jstree/jquery.jstree.js +4564 -0
- data/public/libs/jstree/themes/apple/bg.jpg +0 -0
- data/public/libs/jstree/themes/apple/d.png +0 -0
- data/public/libs/jstree/themes/apple/dot_for_ie.gif +0 -0
- data/public/libs/jstree/themes/apple/style.css +61 -0
- data/public/libs/jstree/themes/apple/throbber.gif +0 -0
- data/public/libs/jstree/themes/classic/d.gif +0 -0
- data/public/libs/jstree/themes/classic/d.png +0 -0
- data/public/libs/jstree/themes/classic/dot_for_ie.gif +0 -0
- data/public/libs/jstree/themes/classic/style.css +77 -0
- data/public/libs/jstree/themes/classic/throbber.gif +0 -0
- data/public/libs/jstree/themes/default-rtl/d.gif +0 -0
- data/public/libs/jstree/themes/default-rtl/d.png +0 -0
- data/public/libs/jstree/themes/default-rtl/dots.gif +0 -0
- data/public/libs/jstree/themes/default-rtl/style.css +84 -0
- data/public/libs/jstree/themes/default-rtl/throbber.gif +0 -0
- data/public/libs/jstree/themes/default/d.gif +0 -0
- data/public/libs/jstree/themes/default/d.png +0 -0
- data/public/libs/jstree/themes/default/style.css +74 -0
- data/public/libs/jstree/themes/default/throbber.gif +0 -0
- data/public/themes/geo-bootstrap/README.md +25 -0
- data/public/themes/geo-bootstrap/img/flames.gif +0 -0
- data/public/themes/geo-bootstrap/img/glyphicons-halflings-white.png +0 -0
- data/public/themes/geo-bootstrap/img/glyphicons-halflings.png +0 -0
- data/public/themes/geo-bootstrap/img/microfab.gif +0 -0
- data/public/themes/geo-bootstrap/img/progress.gif +0 -0
- data/public/themes/geo-bootstrap/img/rainbow.gif +0 -0
- data/public/themes/geo-bootstrap/img/stars.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/7upspot.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/americanflag.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/community.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/computer-01.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/computer.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/construction.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/counter.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/counter2.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider1.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider2.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider3.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider4.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/drudgesiren.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/emailme.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/funky.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/geocities.jpg +0 -0
- data/public/themes/geo-bootstrap/img/test/hacker.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/heart.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/hot.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/ie_logo.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/mailkitten.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/mchammer.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/new.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/new2.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/noframes.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/notepad.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/ns_logo.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/sign-in.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/spinningearth.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/underconstruction.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/wabwalk.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/webtrips.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/yahooweek.gif +0 -0
- data/public/themes/geo-bootstrap/package.json +21 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap-responsive.css +1109 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap-responsive.min.css +9 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap.css +6462 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap.min.css +9 -0
- 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
|
+
|