| 
					
				 | 
			
			
				@@ -67,255 +67,6 @@ on: aPresentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		yourself 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Slide subclass: #FOSDEMSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMSlide methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-codeSnippet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self subclassResponsibility 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMSlide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderSnippet: aString on: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(SourceArea new  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			renderOn: html; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			editor)  setValue: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderCodeSnippetOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(SourceArea new  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			renderOn: html; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			editor)  setValue: self codeSnippet. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-FOSDEMSlide subclass: #FOSDEMREPLSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMREPLSlide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html h1: 'REPL'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self renderCodeSnippetOn: html. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-codeSnippet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'./bin/amber 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fs := require value: ''fs''. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fs readdir: ''/tmp'' do: [:err :file| console log: file]'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-FOSDEMSlide subclass: #FOSDEMJSToSmalltalk 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMJSToSmalltalk methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-cssClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ 'slide blue3d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-codeSnippet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-'var counter = window.smalltalk.Counter._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-counter._appendToJQuery_($(''#jsToSmalltalk''));'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMJSToSmalltalk methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html h1: 'Call Smalltalk from Javascript'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		id: 'jsToSmalltalk'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		style: 'float: left'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self renderCodeSnippetOn: html. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-FOSDEMSlide subclass: #FOSDEMCanvasSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	instanceVariableNames: 'c2d canvas' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMCanvasSlide methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-cssClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ 'slide red3d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMCanvasSlide methodsFor: 'drawing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-drawOnCanvas 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	|c2d| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	c2d := canvas element getContext: '2d'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	c2d  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		clearRect: 0  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		y: 0  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		width: canvas element width  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		height: canvas element height. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	40 atRandom timesRepeat: [ |rgba| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			rgba := ',' join: {255 atRandom. 255 atRandom. 255 atRandom. 10 atRandom / 10}. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			c2d	at: 'fillStyle' put: 'rgba(', rgba, ')'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			c2d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				fillRect: 600 atRandom  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				y: 300 atRandom  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				width: 200 atRandom  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				height: 200 atRandom ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMCanvasSlide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html h1: 'Playing with canvas'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	canvas := html  canvas  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				width: 700; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				height: 400. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self updateCanvas. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMCanvasSlide methodsFor: 'updating'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-updateCanvas 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self drawOnCanvas. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	window setTimeout: [self updateCanvas] delay: 500. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-FOSDEMSlide subclass: #FOSDEMJSPlayGroundSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMJSPlayGroundSlide methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-codeSnippet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-^'|logo| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-logo:=''img#amberlogo'' asJQuery. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-logo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  css:''-webkit-transition'' put:''all 10s ease-in-out''. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-<logo.css(''-webkit-transform'', ''rotateY(360deg)'');>. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-logo click: [window alert: ''This is cool !!'']. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-logo inspect'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMJSPlayGroundSlide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		class: 'section center';  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		with: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			self renderCodeSnippetOn: html. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			html img 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				id: 'amberlogo';  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				src: 'fosdem2012/images/amber.png'	] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-FOSDEMSlide subclass: #FOSDEMAmberBackend 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMAmberBackend methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-cssClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ 'slide green3d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMAmberBackend methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		class: 'section center'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		with: [	html h1: 'Need a backend ?'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				{'nodejs.png'. 'php.gif'. 'rails.png'.   'pharo.png'. 'ambrhino.jpg'} do: [:aString | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						html img: 'fosdem2012/images/', aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-FOSDEMSlide subclass: #FOSDEMBookletSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMBookletSlide methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-cssClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ 'slide blue3d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMBookletSlide methodsFor: 'css'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-style 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ ' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#book { font-size: 1.4em; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#book .b-load .b-wrap-right { background-color: #DEC3A9;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#book .b-load .b-wrap-left { background-color: #DDD;}  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMBookletSlide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self renderBookOn: html. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html link  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		rel:'stylesheet'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		href: 'fosdem2012/lib/booklet/jquery.booklet.1.2.0.css'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html style: self style. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	jQuery  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		getScript: 'fosdem2012/lib/booklet/jquery.booklet.1.2.0.min.js' 	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		do: ['#book' asJQuery booklet: self bookletOptions]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderBookOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html div  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		id: 'book'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		with: [	html div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					class: 'b-load'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					with: [	html  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								div: 'Amber makes it easy to plug existing javascript libraires'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								div: 'Here is an example with the jQuery Booklet plugin'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								div: 'Want to see how ?'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								div: [ html button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										onClick: [Browser openOn: FOSDEMBookletSlide ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										with: 'Just browse the code :)'.						] 	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-																							 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					]	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-bookletOptions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ #{  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		'arrows' -> true. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		'keyboard' -> false. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		'pageNumbers' -> false. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		'closed' -> true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-FOSDEMSlide subclass: #FOSDEMIntroSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!FOSDEMIntroSlide methodsFor: 'not yet classified'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html div class: 'section center animate'; with: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		html img src: 'fosdem2012/images/amber.png'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		html p: self presentation author. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          	html p: self presentation description. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		html p: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			html with: self presentation email]]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Widget subclass: #PresentationNavigator 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	instanceVariableNames: 'presentationBrush currentPresentation slideSelect' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	category: 'Presentation'! 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -519,7 +270,6 @@ open 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	^ self new open 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Widget subclass: #Presentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	instanceVariableNames: 'currentSlide slides' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	category: 'Presentation'! 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -608,130 +358,309 @@ moveAt: anInteger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	next ifNotNil: [currentSlide := next. next show] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-currentSlideIndex 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ self slides indexOf: self currentSlide ifAbsent: [1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+currentSlideIndex 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ self slides indexOf: self currentSlide ifAbsent: [1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!Presentation methodsFor: 'enumerating'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+slidesDo: aBlockWithArg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self slides do: [:aSlide| aBlockWithArg value: aSlide]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!Presentation methodsFor: 'initialization'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+initSlides 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	slides := self slideClasses collect: [:each | each on: self] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!Presentation methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html style 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		type: 'text/css'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		with: self style. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html div  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		id: 'slides'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		with: [self renderSlidesOn: html] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderSlidesOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self slides do: [:each |  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		each renderOn: html]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	currentSlide ifNil: [currentSlide := self slides first]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self showCurrentSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Presentation class instanceVariableNames: 'current'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!Presentation class methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+concretePresentations 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ self allSubclasses select: [:aPresentationClass| aPresentationClass isConcrete] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+title 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ 'Slides' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!Presentation class methodsFor: 'enumerating'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+concretePresentationsDo: aBlockWithArg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self concretePresentations do: aBlockWithArg. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!Presentation class methodsFor: 'testing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+isConcrete 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Slide subclass: #FOSDEMSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMSlide methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+codeSnippet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self subclassResponsibility 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMSlide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderSnippet: aString on: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(SourceArea new  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			renderOn: html; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			editor)  setValue: aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderCodeSnippetOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(SourceArea new  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			renderOn: html; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			editor)  setValue: self codeSnippet. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FOSDEMSlide subclass: #FOSDEMREPLSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMREPLSlide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html h1: 'REPL'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self renderCodeSnippetOn: html. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+codeSnippet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+'./bin/amber 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fs := require value: ''fs''. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fs readdir: ''/tmp'' do: [:err :file| console log: file]'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FOSDEMSlide subclass: #FOSDEMJSToSmalltalk 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMJSToSmalltalk methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+cssClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ 'slide blue3d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+codeSnippet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+'var counter = window.smalltalk.Counter._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+counter._appendToJQuery_($(''#jsToSmalltalk''));'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMJSToSmalltalk methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html h1: 'Call Smalltalk from Javascript'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		id: 'jsToSmalltalk'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		style: 'float: left'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self renderCodeSnippetOn: html. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Presentation methodsFor: 'enumerating'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FOSDEMSlide subclass: #FOSDEMCanvasSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	instanceVariableNames: 'c2d canvas' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-slidesDo: aBlockWithArg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self slides do: [:aSlide| aBlockWithArg value: aSlide]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMCanvasSlide methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+cssClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ 'slide red3d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Presentation methodsFor: 'initialization'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMCanvasSlide methodsFor: 'drawing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-initSlides 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	slides := self slideClasses collect: [:each | each on: self] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+drawOnCanvas 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	|c2d| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c2d := canvas element getContext: '2d'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c2d  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		clearRect: 0  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		y: 0  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		width: canvas element width  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		height: canvas element height. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	40 atRandom timesRepeat: [ |rgba| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			rgba := ',' join: {255 atRandom. 255 atRandom. 255 atRandom. 10 atRandom / 10}. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			c2d	at: 'fillStyle' put: 'rgba(', rgba, ')'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			c2d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fillRect: 600 atRandom  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				y: 300 atRandom  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				width: 200 atRandom  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				height: 200 atRandom ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Presentation methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMCanvasSlide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html style 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		type: 'text/css'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		with: self style. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html div  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		id: 'slides'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		with: [self renderSlidesOn: html] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html h1: 'Playing with canvas'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	canvas := html  canvas  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				width: 700; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				height: 400. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderSlidesOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self slides do: [:each |  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		each renderOn: html]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	currentSlide ifNil: [currentSlide := self slides first]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self showCurrentSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self updateCanvas. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Presentation class instanceVariableNames: 'current'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMCanvasSlide methodsFor: 'updating'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Presentation class methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+updateCanvas 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self drawOnCanvas. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	window setTimeout: [self updateCanvas] delay: 500. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-concretePresentations 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ self allSubclasses select: [:aPresentationClass| aPresentationClass isConcrete] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FOSDEMSlide subclass: #FOSDEMJSPlayGroundSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-title 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ 'Slides' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMJSPlayGroundSlide methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Presentation class methodsFor: 'enumerating'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+codeSnippet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+^'|logo| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+logo:=''img#amberlogo'' asJQuery. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-concretePresentationsDo: aBlockWithArg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self concretePresentations do: aBlockWithArg. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+logo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  css:''-webkit-transition'' put:''all 10s ease-in-out''. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<logo.css(''-webkit-transform'', ''rotateY(360deg)'');>. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+logo click: [window alert: ''This is cool !!'']. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+logo inspect'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Presentation class methodsFor: 'testing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMJSPlayGroundSlide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-isConcrete 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		class: 'section center';  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		with: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			self renderCodeSnippetOn: html. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			html img 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				id: 'amberlogo';  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				src: 'fosdem2012/images/amber.png'	] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Widget subclass: #Slide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	instanceVariableNames: 'presentation' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FOSDEMSlide subclass: #FOSDEMAmberBackend 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Slide methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMAmberBackend methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-presentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^presentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+cssClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ 'slide green3d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-presentation: aPresentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	presentation := aPresentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMAmberBackend methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ self class name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		class: 'section center'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		with: [	html h1: 'Need a backend ?'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				{'nodejs.png'. 'php.gif'. 'rails.png'.   'pharo.png'. 'ambrhino.jpg'} do: [:aString | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						html img: 'fosdem2012/images/', aString. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-cssClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^'slide' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FOSDEMSlide subclass: #FOSDEMBookletSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-backgroundColor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^'#555' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMBookletSlide methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-title 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^ self id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+cssClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ 'slide blue3d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Slide methodsFor: 'actions'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMBookletSlide methodsFor: 'css'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-show 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	self backgroundColor ifNotNil: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(window jQuery: '#slides') css: 'background' color: self backgroundColor]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(window jQuery: '.slide') hide: self presentation slideTransition options: #() duration: 300. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(window jQuery: '#', self id) show: self presentation slideTransition options: #() duration: 300. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+style 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ ' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#book { font-size: 1.4em; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#book .b-load .b-wrap-right { background-color: #DEC3A9;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#book .b-load .b-wrap-left { background-color: #DDD;}  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Slide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	html div class: self cssClass; id: self id; with: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		self renderSlideOn: html. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		self renderMetaOn: html] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMBookletSlide methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	self renderBookOn: html. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html link  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		rel:'stylesheet'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		href: 'fosdem2012/lib/booklet/jquery.booklet.1.2.0.css'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html style: self style. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	jQuery  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		getScript: 'fosdem2012/lib/booklet/jquery.booklet.1.2.0.min.js' 	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		do: ['#book' asJQuery booklet: self bookletOptions]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-renderMetaOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderBookOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	html div  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		id: 'meta'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		with: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			html p class: 'title'; with: self presentation title. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			html p class: 'description'; with: self presentation description. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			html a class: 'author'; with: self presentation author; href: 'mailto:', self presentation email. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			html a class: 'url'; with: self presentation url; href: self presentation url] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		id: 'book'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		with: [	html div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					class: 'b-load'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					with: [	html  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								div: 'Amber makes it easy to plug existing javascript libraires'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								div: 'Here is an example with the jQuery Booklet plugin'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								div: 'Want to see how ?'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								div: [ html button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										onClick: [Browser openOn: FOSDEMBookletSlide ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										with: 'Just browse the code :)'.						] 	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+																							 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					]	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+bookletOptions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ #{  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		'arrows' -> true. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		'keyboard' -> false. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		'pageNumbers' -> false. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		'closed' -> true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!Slide class methodsFor: 'instance creation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FOSDEMSlide subclass: #FOSDEMIntroSlide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-on: aPresentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	^self new 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		presentation: aPresentation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		yourself 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMIntroSlide methodsFor: 'not yet classified'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html div class: 'section center animate'; with: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		html img src: 'fosdem2012/images/amber.png'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		html p: self presentation author. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          	html p: self presentation description. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		html p: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			html with: self presentation email]]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Presentation subclass: #ESUG2011Presentation 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1898,6 +1827,25 @@ body { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .slide#ide { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     background: black url("esug2011/images/ide_star_wars.png") center center no-repeat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.tweet { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	background-color: #aaa; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	color: black; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	padding: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	border-radius: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	border: 5px solid #eee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	margin: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.tweet img { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	vertical-align: top; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	margin-right: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.tweet span:first-child { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	float: right; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1910,6 +1858,7 @@ slideClasses 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	FOSDEMJSPlayGroundSlide. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	FOSDEMJSToSmalltalk. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	FOSDEMBookletSlide. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	FOSDEMTwitter. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	FOSDEMCanvasSlide. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	FOSDEMAmberBackend. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	FOSDEMREPLSlide 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1926,3 +1875,52 @@ title 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	^'Amber' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FOSDEMSlide subclass: #FOSDEMTwitter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	instanceVariableNames: 'twitterDiv' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	category: 'Presentation'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMTwitter methodsFor: 'accessing'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+cssClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	^ 'slide black' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMTwitter methodsFor: 'callback'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+loadTweets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	jQuery  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ajax: 'http://search.twitter.com/search.json?rpp=3&q=%40AmberSmalltalk' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		options: #{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				'type' -> 'GET'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				'success' -> [ :json | self renderTweets: (json results)]. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				'dataType' -> 'jsonp' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!FOSDEMTwitter methodsFor: 'rendering'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderSlideOn: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		onClick: [self loadTweets]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		with: 'What about @AmberSmalltalk on Twitter ?'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	twitterDiv := html div. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderTweets: tweets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	twitterDiv contents: [	:html| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						tweets do: [	:tweet|   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									self renderTweet: tweet on: html] ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+renderTweet: tweet on: html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	html div  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		class: 'tweet'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		with: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			html  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				span: (tweet at: 'created_at'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				img: (tweet at: 'profile_image_url'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				span: (tweet at: 'from_user'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				div: (tweet at: 'text').  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+! ! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 |