Skip to content

Commit 6429542

Browse files
s5 english presentation
1 parent 76794c4 commit 6429542

38 files changed

+1379
-8
lines changed

sucker-punch-propaganda/README.org

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
1-
* Why Clojure ?
2-
An exercise in /sucker punch/ propaganda ☺
1+
#+TITLE: Why Clojure ?
2+
#+AUTHOR:
3+
#+OPTIONS: toc:nil
34
* Sapir Whorf hypothesis
45
(Yet) Another language ?
56
- some languages make better programs
67
- some also make better programmers !
7-
* Low barrier to productivity thx to perfect Java interop
8+
* Low barrier to productivity …
9+
thx to perfect Java interoperability !
810
- Can use/create any java object
9-
- same primitive types (incl. java.lang.String)
11+
- Same primitive types (incl. java.lang.String)
1012
Solves the chicken-egg problem (libraries, users base) that have been
1113
keeping us with C for decades despite all the good work in academia.
1214
* A Simple Language
1315
- Simple :: ≠ easy
1416
- Fighting incidental complexity :: There is no pride to have in
1517
mastering needlessly complex tools (java programmers understand
1618
this very well when talking about C++ ☺).
17-
[Richhickey-StuartHallowaySimplicityAintEasy905.mov]
19+
1820
* Object Oriented !
1921
- type
2022
- identity
@@ -39,7 +41,9 @@ Clojure has it *all*, /à la carte/.
3941
- single /atoms/
4042
- transactions on multiple /refs/
4143
* Very Simple Syntax ☺
42-
"Oh, btw, it's a LISP" (→ angry meme pic ☹)
44+
"Oh, btw, it's a LISP"
45+
[[file:~/Code/repositories/clj-pres/4clojure-oriented-prez/src/lisp-angry-meme.png]]
46+
* You are not alone
4347
Not necessarily /easy/ at first but :
4448
- syntactic grouping of pairs
4549
- code is data (list), but most data structures are not lists :
@@ -50,6 +54,10 @@ Not necessarily /easy/ at first but :
5054
- help writing (electric parenthesis)
5155
- help reading (rainbow parenthesis)
5256
- e.g. ≠ i.e. ☺
57+
* M-x emacs-ftw
58+
[[file:clojure-in-emacs.png]]
59+
* Eclipse plug-in
60+
[[file:sc-ccw.png]]
5361
* Metaprogramming done right
5462
- David Wheeler :: "All problems in computer science can be solved by
5563
another level of indirection".
@@ -72,6 +80,20 @@ learn concepts form the great minds behind it. You will also get a
7280
better understanding of concepts you already (think you) know
7381
(e.g. OOP, state, time, value, hammocks…).
7482

75-
Learn things and have fun ! (I know you will ☺)
83+
* TL;DL
84+
- Don't fear/dismiss the unknown
85+
- Learn things and have fun ! (I know you will ☺)
86+
87+
* [Web|Bib]liography
88+
89+
- Talks (slides / videos)
90+
- Are We There Yet ?
91+
- Hammock Driven Development
92+
- Simple Ain't Easy
93+
- …
94+
- Books
95+
- The Joy of Clojure
96+
- Clojure in Action
97+
- Programming Clojure $2^{nd}$ ed.
98+
- …
7699

77-
* TODO [Web|Bib]liography
66.2 KB
Loading
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
(defvar org-s5-theme "default")
2+
3+
(defvar org-s5-title-string-fmt "<h1>%author - %title</h1>"
4+
"Format template to specify title string. Completed using `org-fill-template'.
5+
Optional keys include %author, %title and %date.")
6+
7+
(defvar org-s5-title-page-fmt (mapconcat #'identity
8+
'("<div class=\"slide\">"
9+
"<h1>%title</h1>"
10+
"<h1>%author</h1>"
11+
"<h1>%date</h1>"
12+
"</div>")
13+
"\n")
14+
"Format template to specify title page. Completed using `org-fill-template'.
15+
Optional keys include %author, %title and %date.")
16+
17+
(defun org-export-as-s5
18+
(arg &optional hidden ext-plist to-buffer body-only pub-dir)
19+
"Wrap `org-export-as-html' in setting for S5 export."
20+
(interactive "P")
21+
(flet ((join (lst) (mapconcat #'identity lst "\n"))
22+
(sheet (href media id)
23+
(org-fill-template
24+
(concat "<link rel=\"stylesheet\" href=\"%href\""
25+
" type=\"text/css\" media=\"%media\" id=\"%id\" />")
26+
`(("href" . ,href)
27+
("media" . ,media)
28+
("id" . ,id)))))
29+
(let ((org-export-html-style-extra
30+
(join `("<!-- configuration parameters -->"
31+
"<meta name=\"defaultView\" content=\"slideshow\" />"
32+
"<meta name=\"controlVis\" content=\"hidden\" />"
33+
"<!-- style sheet links -->"
34+
,(sheet (concat "ui/" org-s5-theme "/slides.css")
35+
"projection" "slideProj")
36+
,(sheet "ui/default/outline.css" "screen" "outlineStyle")
37+
,(sheet "ui/default/print.css" "print" "slidePrint")
38+
,(sheet "ui/default/opera.css" "projection" "operaFix")
39+
"<!-- S5 JS -->"
40+
,(concat "<script src=\"ui/default/slides.js\" "
41+
"type=\"text/javascript\"></script>"))))
42+
(org-export-html-toplevel-hlevel 1)
43+
(org-export-html-postamble nil)
44+
(org-export-html-auto-postamble nil)
45+
(org-export-preprocess-hook
46+
(list
47+
(lambda ()
48+
(let ((class "slide"))
49+
(org-map-entries
50+
(lambda ()
51+
(save-excursion
52+
(org-back-to-heading t)
53+
(when (= (car (org-heading-components)) 1)
54+
(put-text-property (point-at-bol) (point-at-eol)
55+
'html-container-class class)))))))))
56+
(org-export-html-final-hook
57+
(list
58+
(lambda ()
59+
(save-excursion
60+
(replace-regexp
61+
(regexp-quote "<div id=\"content\">")
62+
(let ((info `(("author" . ,author)
63+
("title" . ,title)
64+
("date" . ,(substring date 0 10)))))
65+
(join `("<div class=\"layout\">"
66+
"<div id=\"controls\"><!-- no edit --></div>"
67+
"<div id=\"currentSlide\"><!-- no edit --></div>"
68+
"<div id=\"header\"></div>"
69+
"<div id=\"footer\">"
70+
,(org-fill-template org-s5-title-string-fmt info)
71+
"</div>"
72+
"</div>"
73+
""
74+
"<div class=\"presentation\">"
75+
,(org-fill-template org-s5-title-page-fmt info)))))))
76+
(lambda ()
77+
(save-excursion
78+
(replace-regexp
79+
(regexp-quote "<div id=\"table-of-contents\">")
80+
"<div id=\"table-of-contents\" class=\"slide\">"))))))
81+
(org-export-as-html arg hidden ext-plist to-buffer body-only pub-dir))))

sucker-punch-propaganda/pix/S501.jpg

10.2 KB
Loading

sucker-punch-propaganda/pix/S502.jpg

9.83 KB
Loading

sucker-punch-propaganda/pix/S503.jpg

9.41 KB
Loading

sucker-punch-propaganda/pix/S504.jpg

9.83 KB
Loading
27.4 KB
Loading
8.5 KB
Loading
5.1 KB
Loading
4.44 KB
Loading
3.34 KB
Loading
59.8 KB
Loading

sucker-punch-propaganda/sc-ccw.png

105 KB
Loading
594 Bytes
Loading
49 Bytes
Loading
9.88 KB
Loading
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/* The following styles size, place, and layer the slide components.
2+
Edit these if you want to change the overall slide layout.
3+
The commented lines can be uncommented (and modified, if necessary)
4+
to help you with the rearrangement process. */
5+
6+
/* target = 1024x768 */
7+
8+
div#header, div#footer, .slide {width: 100%; top: 0; left: 0;}
9+
div#header {top: 0; height: 3em; z-index: 1;}
10+
div#footer {top: auto; bottom: 0; height: 2.5em; z-index: 5;}
11+
.slide {top: 0; width: 92%; padding: 3.5em 4% 4%; z-index: 2; list-style: none;}
12+
div#controls {left: 50%; bottom: 0; width: 50%; z-index: 100;}
13+
div#controls form {text-align: right; width: 100%; margin: 0;}
14+
#currentSlide {position: absolute; width: 10%; left: 45%; bottom: 1em; z-index: 10;}
15+
html>body #currentSlide {position: fixed;}
16+
17+
/*
18+
div#header {background: #FCC;}
19+
div#footer {background: #CCF;}
20+
div#controls {background: #BBD;}
21+
div#currentSlide {background: #FFC;}
22+
*/
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<public:component>
2+
<public:attach event="onpropertychange" onevent="doFix()" />
3+
4+
<script>
5+
6+
// IE5.5+ PNG Alpha Fix v1.0 by Angus Turnbull http://www.twinhelix.com
7+
// Free usage permitted as long as this notice remains intact.
8+
9+
// This must be a path to a blank image. That's all the configuration you need here.
10+
var blankImg = 'ui/default/blank.gif';
11+
12+
var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
13+
14+
function filt(s, m) {
15+
if (filters[f]) {
16+
filters[f].enabled = s ? true : false;
17+
if (s) with (filters[f]) { src = s; sizingMethod = m }
18+
} else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
19+
}
20+
21+
function doFix() {
22+
if ((parseFloat(navigator.userAgent.match(/MSIE (\S+)/)[1]) < 5.5) ||
23+
(event && !/(background|src)/.test(event.propertyName))) return;
24+
25+
if (tagName == 'IMG') {
26+
if ((/\.png$/i).test(src)) {
27+
filt(src, 'image'); // was 'scale'
28+
src = blankImg;
29+
} else if (src.indexOf(blankImg) < 0) filt();
30+
} else if (style.backgroundImage) {
31+
if (style.backgroundImage.match(/^url[("']+(.*\.png)[)"']+$/i)) {
32+
var s = RegExp.$1;
33+
style.backgroundImage = '';
34+
filt(s, 'crop');
35+
} else filt();
36+
}
37+
}
38+
39+
doFix();
40+
41+
</script>
42+
</public:component>
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
/* Following are the note styles -- edit away! */
2+
3+
body {
4+
margin: 0;
5+
padding: 1.0em;
6+
background: #333;
7+
color: #FFF;
8+
font: 2em/1.4em 'Lucida Grande', Verdana, sans-serif;
9+
}
10+
11+
div.timers {
12+
background: #FFF;
13+
color: #333;
14+
border: 0.08em solid #222;
15+
border-top-width: 1px;
16+
border-left-width: 1px;
17+
float: left;
18+
padding: 0.2em;
19+
margin: 0 0 0.5em;
20+
position: relative;
21+
}
22+
23+
div.timers h1 {
24+
text-align: left;
25+
font-size: 0.6em;
26+
line-height: 1.4em;
27+
background-color: #FF9;
28+
padding: 0 0.75em;
29+
margin: 0.25em 0 0;
30+
border: 1px solid #EE8;
31+
}
32+
33+
div.timers div.controls {
34+
position: absolute;
35+
right: 0.25em;
36+
top: 0.1em;
37+
line-height: 1em;
38+
}
39+
40+
div.timers h1 a {
41+
text-decoration: none;
42+
color: #000;
43+
}
44+
45+
div.timers div.controls a {
46+
font-size: 0.5em;
47+
padding: 0;
48+
color: #330;
49+
}
50+
51+
div.timers a.control {
52+
position: absolute;
53+
text-decoration: none;
54+
padding: 0 0.25em;
55+
color: #AAA;
56+
outline: 0;
57+
}
58+
59+
#minus {
60+
left: 0.25em;
61+
}
62+
63+
#plus {
64+
right: 0.25em;
65+
}
66+
67+
.overtime {
68+
background: yellow;
69+
color: red;
70+
border: 3px solid;
71+
padding: 0.1em 0.25em;
72+
font-weight: bold;
73+
}
74+
75+
div.timers h2 {
76+
font-size: 0.6em;
77+
line-height: 1.0em;
78+
font-weight: normal;
79+
margin: 0 0 -0.25em;
80+
padding-top: 0.5em;
81+
color: #666;
82+
}
83+
84+
div.timers p {margin: 0; padding: 0 0.5em;}
85+
div.timers form {margin: 0;}
86+
87+
div.timers span.clock {
88+
font-family: monospace;
89+
}
90+
91+
div.timers ul {margin: 0; padding: 0; list-style: none;}
92+
div.timers li {float: left; width: 5em; margin: 0; padding: 0 0.5em;
93+
text-align: center;}
94+
95+
div#elapsed {width: 12.1em;}
96+
div#remaining {clear: left; width: 12.1em;}
97+
div#remaining p {text-align: center;}
98+
99+
#slide,
100+
#next,
101+
#notes,
102+
#nextnotes {
103+
font-size: 0.75em;
104+
line-height: 1.4em;
105+
clear: left;
106+
/* max-width: 30.0em; */
107+
text-shadow: 0.1em 0.1em 0.1em #111;
108+
}
109+
110+
#next {margin-top: 2.5em;}
111+
#next, #nextnotes {
112+
color: #999;
113+
font-size: 0.66em;
114+
}
115+
116+
em.disclaimer {
117+
color: #666;
118+
}
119+
120+
div.collapsed h1 {display: block; font-size: 0.33em;}
121+
div.collapsed h1 a {display: inline;}
122+
div.collapsed * {display: none;}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/* DO NOT CHANGE THESE unless you really want to break Opera Show */
2+
.slide {
3+
visibility: visible !important;
4+
position: static !important;
5+
page-break-before: always;
6+
}
7+
#slide0 {page-break-before: avoid;}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/* don't change this unless you want the layout stuff to show up in the outline view! */
2+
3+
.layout div, #footer *, #controlForm * {display: none;}
4+
#footer, #controls, #controlForm, #navLinks, #toggle {
5+
display: block; visibility: visible; margin: 0; padding: 0;}
6+
#toggle {float: right; padding: 0.5em;}
7+
html>body #toggle {position: fixed; top: 0; right: 0;}
8+
9+
/* making the outline look pretty-ish */
10+
11+
#slide0 h1, #slide0 h2, #slide0 h3, #slide0 h4 {border: none; margin: 0;}
12+
#slide0 h1 {padding-top: 1.5em;}
13+
.slide h1 {margin: 1.5em 0 0; padding-top: 0.25em;
14+
border-top: 1px solid #888; border-bottom: 1px solid #AAA;}
15+
#toggle {border: 1px solid; border-width: 0 0 1px 1px; background: #FFF;}

0 commit comments

Comments
 (0)