maruku 0.6.1 → 0.7.0.beta1

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.
Files changed (263) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/MIT-LICENSE.txt +20 -0
  5. data/bin/maruku +153 -152
  6. data/bin/marutex +2 -29
  7. data/data/entities.xml +261 -0
  8. data/docs/math.md +14 -18
  9. data/lib/maruku.rb +65 -77
  10. data/lib/maruku/attributes.rb +109 -214
  11. data/lib/maruku/defaults.rb +45 -67
  12. data/lib/maruku/document.rb +43 -0
  13. data/lib/maruku/element.rb +112 -0
  14. data/lib/maruku/errors.rb +71 -0
  15. data/lib/maruku/ext/div.rb +105 -113
  16. data/lib/maruku/ext/fenced_code.rb +97 -0
  17. data/lib/maruku/ext/math.rb +22 -26
  18. data/lib/maruku/ext/math/elements.rb +20 -26
  19. data/lib/maruku/ext/math/mathml_engines/blahtex.rb +92 -104
  20. data/lib/maruku/ext/math/mathml_engines/itex2mml.rb +33 -26
  21. data/lib/maruku/ext/math/mathml_engines/none.rb +11 -19
  22. data/lib/maruku/ext/math/mathml_engines/ritex.rb +2 -4
  23. data/lib/maruku/ext/math/parsing.rb +107 -113
  24. data/lib/maruku/ext/math/to_html.rb +184 -187
  25. data/lib/maruku/ext/math/to_latex.rb +30 -21
  26. data/lib/maruku/helpers.rb +158 -257
  27. data/lib/maruku/html.rb +254 -0
  28. data/lib/maruku/input/charsource.rb +272 -319
  29. data/lib/maruku/input/extensions.rb +62 -63
  30. data/lib/maruku/input/html_helper.rb +220 -189
  31. data/lib/maruku/input/linesource.rb +90 -110
  32. data/lib/maruku/input/mdline.rb +129 -0
  33. data/lib/maruku/input/parse_block.rb +618 -612
  34. data/lib/maruku/input/parse_doc.rb +145 -215
  35. data/lib/maruku/input/parse_span.rb +658 -0
  36. data/lib/maruku/input/rubypants.rb +200 -128
  37. data/lib/maruku/inspect_element.rb +60 -0
  38. data/lib/maruku/maruku.rb +10 -31
  39. data/lib/maruku/output/entity_table.rb +33 -0
  40. data/lib/maruku/output/s5/fancy.rb +462 -462
  41. data/lib/maruku/output/s5/to_s5.rb +115 -135
  42. data/lib/maruku/output/to_html.rb +898 -983
  43. data/lib/maruku/output/to_latex.rb +561 -560
  44. data/lib/maruku/output/to_markdown.rb +207 -162
  45. data/lib/maruku/output/to_s.rb +11 -52
  46. data/lib/maruku/string_utils.rb +129 -179
  47. data/lib/maruku/toc.rb +185 -196
  48. data/lib/maruku/version.rb +33 -38
  49. data/spec/block_docs/abbrev.md +776 -0
  50. data/{tests/unittest → spec/block_docs}/abbreviations.md +11 -20
  51. data/{tests/unittest → spec/block_docs}/alt.md +2 -14
  52. data/{tests/unittest/pending → spec/block_docs}/amps.md +1 -13
  53. data/{tests/unittest → spec/block_docs}/attributes/att2.md +0 -12
  54. data/{tests/unittest → spec/block_docs}/attributes/att3.md +2 -14
  55. data/{tests/unittest → spec/block_docs}/attributes/attributes.md +12 -16
  56. data/{tests/unittest → spec/block_docs}/attributes/circular.md +0 -12
  57. data/{tests/unittest → spec/block_docs}/attributes/default.md +1 -13
  58. data/{tests/unittest → spec/block_docs}/blank.md +0 -12
  59. data/{tests/unittest → spec/block_docs}/blanks_in_code.md +16 -15
  60. data/{tests/unittest/loss.md → spec/block_docs/bug_def.md} +6 -18
  61. data/{tests/unittest → spec/block_docs}/bug_table.md +3 -15
  62. data/{tests/unittest → spec/block_docs}/code.md +7 -14
  63. data/{tests/unittest → spec/block_docs}/code2.md +4 -14
  64. data/{tests/unittest → spec/block_docs}/code3.md +12 -16
  65. data/{tests/unittest → spec/block_docs}/data_loss.md +2 -14
  66. data/{tests/unittest → spec/block_docs}/divs/div1.md +0 -12
  67. data/{tests/unittest → spec/block_docs}/divs/div2.md +0 -12
  68. data/{tests/unittest → spec/block_docs}/divs/div3_nest.md +3 -15
  69. data/{tests/unittest → spec/block_docs}/easy.md +1 -13
  70. data/spec/block_docs/email.md +29 -0
  71. data/{tests/unittest/pending → spec/block_docs}/empty_cells.md +3 -15
  72. data/{tests/unittest → spec/block_docs}/encoding/iso-8859-1.md +1 -14
  73. data/{tests/unittest → spec/block_docs}/encoding/utf-8.md +0 -12
  74. data/{tests/unittest → spec/block_docs}/entities.md +27 -29
  75. data/{tests/unittest/notyet → spec/block_docs}/escape.md +2 -14
  76. data/{tests/unittest → spec/block_docs}/escaping.md +11 -22
  77. data/{tests/unittest → spec/block_docs}/extra_dl.md +2 -13
  78. data/{tests/unittest → spec/block_docs}/extra_header_id.md +14 -20
  79. data/{tests/unittest → spec/block_docs}/extra_table1.md +3 -15
  80. data/spec/block_docs/fenced_code_blocks.md +66 -0
  81. data/spec/block_docs/fenced_code_blocks_highlighted.md +18 -0
  82. data/{tests/unittest → spec/block_docs}/footnotes.md +12 -24
  83. data/spec/block_docs/footnotes2.md +78 -0
  84. data/spec/block_docs/hard.md +25 -0
  85. data/spec/block_docs/header_after_par.md +62 -0
  86. data/{tests/unittest → spec/block_docs}/headers.md +10 -18
  87. data/{tests/unittest → spec/block_docs}/hex_entities.md +7 -18
  88. data/{tests/unittest → spec/block_docs}/hrule.md +5 -12
  89. data/{tests/unittest → spec/block_docs}/html3.md +1 -13
  90. data/{tests/unittest → spec/block_docs}/html4.md +2 -14
  91. data/{tests/unittest → spec/block_docs}/html5.md +2 -14
  92. data/spec/block_docs/html_block_in_para.md +22 -0
  93. data/spec/block_docs/html_inline.md +25 -0
  94. data/spec/block_docs/html_trailing.md +31 -0
  95. data/spec/block_docs/ie.md +62 -0
  96. data/spec/block_docs/iframe.md +29 -0
  97. data/{tests/unittest → spec/block_docs}/images.md +22 -28
  98. data/{tests/unittest → spec/block_docs}/images2.md +7 -17
  99. data/{tests/unittest → spec/block_docs}/inline_html.md +37 -67
  100. data/{tests/unittest → spec/block_docs}/inline_html2.md +1 -13
  101. data/spec/block_docs/inline_html_beginning.md +10 -0
  102. data/spec/block_docs/issue20.md +9 -0
  103. data/spec/block_docs/issue26.md +22 -0
  104. data/spec/block_docs/issue29.md +9 -0
  105. data/spec/block_docs/issue30.md +30 -0
  106. data/spec/block_docs/issue31.md +25 -0
  107. data/spec/block_docs/issue40.md +40 -0
  108. data/spec/block_docs/issue64.md +55 -0
  109. data/spec/block_docs/issue67.md +19 -0
  110. data/spec/block_docs/issue70.md +11 -0
  111. data/spec/block_docs/issue72.md +17 -0
  112. data/spec/block_docs/issue74.md +38 -0
  113. data/spec/block_docs/issue79.md +15 -0
  114. data/spec/block_docs/issue83.md +13 -0
  115. data/spec/block_docs/issue85.md +25 -0
  116. data/spec/block_docs/issue88.md +19 -0
  117. data/spec/block_docs/issue89.md +12 -0
  118. data/spec/block_docs/issue90.md +38 -0
  119. data/{tests/unittest/pending → spec/block_docs}/link.md +21 -18
  120. data/{tests/unittest → spec/block_docs}/links.md +33 -32
  121. data/spec/block_docs/links2.md +21 -0
  122. data/{tests/unittest → spec/block_docs}/list1.md +0 -12
  123. data/{tests/unittest → spec/block_docs}/list12.md +2 -14
  124. data/{tests/unittest → spec/block_docs}/list2.md +2 -14
  125. data/spec/block_docs/list_multipara.md +42 -0
  126. data/{tests/unittest → spec/block_docs}/lists.md +28 -29
  127. data/{tests/unittest → spec/block_docs}/lists10.md +2 -14
  128. data/spec/block_docs/lists11.md +23 -0
  129. data/spec/block_docs/lists12.md +43 -0
  130. data/spec/block_docs/lists13.md +55 -0
  131. data/spec/block_docs/lists14.md +61 -0
  132. data/spec/block_docs/lists15.md +36 -0
  133. data/spec/block_docs/lists6.md +88 -0
  134. data/spec/block_docs/lists7b.md +58 -0
  135. data/spec/block_docs/lists9.md +53 -0
  136. data/{tests/unittest → spec/block_docs}/lists_after_paragraph.md +19 -25
  137. data/spec/block_docs/lists_blank.md +35 -0
  138. data/{tests/unittest/list3.md → spec/block_docs/lists_blockquote_code.md} +2 -14
  139. data/{tests/unittest/list4.md → spec/block_docs/lists_need_blank_line.md} +50 -21
  140. data/spec/block_docs/lists_nested.md +44 -0
  141. data/spec/block_docs/lists_nested_blankline.md +28 -0
  142. data/spec/block_docs/lists_nested_deep.md +43 -0
  143. data/{tests/unittest → spec/block_docs}/lists_ol.md +37 -54
  144. data/spec/block_docs/lists_paraindent.md +47 -0
  145. data/spec/block_docs/lists_tab.md +54 -0
  146. data/spec/block_docs/loss.md +17 -0
  147. data/spec/block_docs/math-blahtex/equations.md +30 -0
  148. data/spec/block_docs/math-blahtex/inline.md +48 -0
  149. data/spec/block_docs/math-blahtex/math2.md +45 -0
  150. data/spec/block_docs/math-blahtex/table.md +25 -0
  151. data/spec/block_docs/math/embedded_invalid_svg.md +79 -0
  152. data/spec/block_docs/math/embedded_svg.md +97 -0
  153. data/spec/block_docs/math/equations.md +44 -0
  154. data/{tests/unittest → spec/block_docs}/math/inline.md +7 -19
  155. data/spec/block_docs/math/math2.md +45 -0
  156. data/{tests/unittest → spec/block_docs}/math/notmath.md +0 -12
  157. data/spec/block_docs/math/raw_mathml.md +87 -0
  158. data/spec/block_docs/math/table.md +25 -0
  159. data/{tests/unittest → spec/block_docs}/math/table2.md +5 -17
  160. data/{tests/unittest → spec/block_docs}/misc_sw.md +181 -118
  161. data/{tests/unittest → spec/block_docs}/olist.md +6 -18
  162. data/{tests/unittest → spec/block_docs}/one.md +0 -12
  163. data/{tests/unittest → spec/block_docs}/paragraph.md +0 -12
  164. data/{tests/unittest → spec/block_docs}/paragraph_rules/dont_merge_ref.md +4 -12
  165. data/{tests/unittest → spec/block_docs}/paragraph_rules/tab_is_blank.md +0 -12
  166. data/{tests/unittest → spec/block_docs}/paragraphs.md +1 -13
  167. data/{tests/unittest → spec/block_docs}/recover/recover_links.md +4 -16
  168. data/{tests/unittest/pending/ref.md → spec/block_docs/ref_with_period.md} +7 -16
  169. data/spec/block_docs/ref_with_title.md +22 -0
  170. data/{tests/unittest → spec/block_docs}/references/long_example.md +16 -23
  171. data/{tests/unittest → spec/block_docs}/references/spaces_and_numbers.md +0 -12
  172. data/{tests/unittest → spec/block_docs}/smartypants.md +24 -31
  173. data/{tests/unittest → spec/block_docs}/syntax_hl.md +13 -17
  174. data/{tests/unittest → spec/block_docs}/table_attributes.md +2 -14
  175. data/spec/block_docs/tables.md +58 -0
  176. data/{tests/unittest → spec/block_docs}/test.md +1 -13
  177. data/{tests/unittest/notyet → spec/block_docs}/ticks.md +1 -13
  178. data/spec/block_docs/toc.md +87 -0
  179. data/{tests/unittest/notyet → spec/block_docs}/triggering.md +14 -25
  180. data/{tests/unittest → spec/block_docs}/underscore_in_words.md +0 -12
  181. data/{tests/unittest → spec/block_docs}/wrapping.md +4 -16
  182. data/spec/block_docs/xml.md +33 -0
  183. data/{tests/unittest → spec/block_docs}/xml2.md +0 -12
  184. data/spec/block_docs/xml3.md +24 -0
  185. data/{tests/unittest → spec/block_docs}/xml_instruction.md +9 -20
  186. data/spec/block_spec.rb +110 -0
  187. data/spec/cli_spec.rb +8 -0
  188. data/spec/span_spec.rb +256 -0
  189. data/spec/spec_helper.rb +2 -0
  190. data/spec/to_html_utf8_spec.rb +13 -0
  191. metadata +205 -243
  192. metadata.gz.sig +3 -0
  193. data/Rakefile +0 -48
  194. data/bin/marudown +0 -29
  195. data/bin/marutest +0 -345
  196. data/docs/changelog.md +0 -334
  197. data/lib/maruku/errors_management.rb +0 -92
  198. data/lib/maruku/ext/math/latex_fix.rb +0 -12
  199. data/lib/maruku/input/parse_span_better.rb +0 -746
  200. data/lib/maruku/input/type_detection.rb +0 -147
  201. data/lib/maruku/output/to_latex_entities.rb +0 -367
  202. data/lib/maruku/output/to_latex_strings.rb +0 -64
  203. data/lib/maruku/structures.rb +0 -167
  204. data/lib/maruku/structures_inspect.rb +0 -87
  205. data/lib/maruku/structures_iterators.rb +0 -61
  206. data/lib/maruku/tests/benchmark.rb +0 -82
  207. data/lib/maruku/tests/new_parser.rb +0 -373
  208. data/lib/maruku/tests/tests.rb +0 -136
  209. data/lib/maruku/usage/example1.rb +0 -33
  210. data/tests/bugs/code_in_links.md +0 -101
  211. data/tests/bugs/complex_escaping.md +0 -38
  212. data/tests/math/syntax.md +0 -46
  213. data/tests/math_usage/document.md +0 -13
  214. data/tests/others/abbreviations.md +0 -11
  215. data/tests/others/blank.md +0 -4
  216. data/tests/others/code.md +0 -5
  217. data/tests/others/code2.md +0 -8
  218. data/tests/others/code3.md +0 -16
  219. data/tests/others/email.md +0 -4
  220. data/tests/others/entities.md +0 -19
  221. data/tests/others/escaping.md +0 -16
  222. data/tests/others/extra_dl.md +0 -101
  223. data/tests/others/extra_header_id.md +0 -13
  224. data/tests/others/extra_table1.md +0 -40
  225. data/tests/others/footnotes.md +0 -17
  226. data/tests/others/headers.md +0 -10
  227. data/tests/others/hrule.md +0 -10
  228. data/tests/others/images.md +0 -20
  229. data/tests/others/inline_html.md +0 -42
  230. data/tests/others/links.md +0 -38
  231. data/tests/others/list1.md +0 -4
  232. data/tests/others/list2.md +0 -5
  233. data/tests/others/list3.md +0 -8
  234. data/tests/others/lists.md +0 -32
  235. data/tests/others/lists_after_paragraph.md +0 -44
  236. data/tests/others/lists_ol.md +0 -39
  237. data/tests/others/misc_sw.md +0 -105
  238. data/tests/others/one.md +0 -1
  239. data/tests/others/paragraphs.md +0 -13
  240. data/tests/others/sss06.md +0 -352
  241. data/tests/others/test.md +0 -4
  242. data/tests/s5/s5profiling.md +0 -48
  243. data/tests/unittest/bug_def.md +0 -28
  244. data/tests/unittest/email.md +0 -32
  245. data/tests/unittest/html2.md +0 -34
  246. data/tests/unittest/ie.md +0 -61
  247. data/tests/unittest/links2.md +0 -34
  248. data/tests/unittest/lists11.md +0 -28
  249. data/tests/unittest/lists6.md +0 -53
  250. data/tests/unittest/lists9.md +0 -76
  251. data/tests/unittest/math/equations.md +0 -86
  252. data/tests/unittest/math/math2.md +0 -57
  253. data/tests/unittest/math/table.md +0 -37
  254. data/tests/unittest/notyet/header_after_par.md +0 -70
  255. data/tests/unittest/red_tests/abbrev.md +0 -1388
  256. data/tests/unittest/red_tests/lists7.md +0 -68
  257. data/tests/unittest/red_tests/lists7b.md +0 -128
  258. data/tests/unittest/red_tests/lists8.md +0 -76
  259. data/tests/unittest/red_tests/xml.md +0 -70
  260. data/tests/unittest/xml3.md +0 -38
  261. data/tests/utf8-files/simple.md +0 -1
  262. data/unit_test_block.sh +0 -5
  263. data/unit_test_span.sh +0 -3
@@ -1,352 +0,0 @@
1
- Category: sss06
2
- Date: Sep 10 2006
3
- From: "Andrea Censi" <andrea.censi@dis.uniroma1.it>
4
- Subject: A report about Oxford and the 2006 SLAM Summer School
5
- Encoding: BlueCloth FlickrHTML
6
- format: bluecloth>
7
- inMenu: true
8
-
9
- Let me quote the words of a renowned Oxford scholar:
10
-
11
- > "Life is too important to be taken seriously."
12
-
13
- If you do not wholeheartedly agree with this statement,
14
- please stop reading this.
15
-
16
- ----------------------
17
-
18
- I stayed three weeks in Oxford: one week for the SLAM school and,
19
- before that, two weeks for an English course. You might ask: why?
20
- A very good question indeed - "Why I am not on a sunny beach?" -
21
- I kept asking myself as I walked down the misty alleys of the old town,
22
- wearing a scarf on August, 16th, and realizing that - maybe - I would not
23
- need the three pairs of shorts and the swimsuit I had brought.
24
-
25
-
26
- Summary:
27
-
28
- 1. The Queen's English
29
- 2. The Harry Potter experience
30
- 3. Parsnip, Marmite and the tea conspiracy
31
- 4. The Summer School
32
- 5. Minor open issues in SLAM
33
-
34
- > Appendix: How to offend seven nationalities at once
35
-
36
- `I`. The Queen's English
37
- ----------------------
38
-
39
- It turns out that a course of English at an advanced level is mostly
40
- about vocabulary and idioms: by the end of the first week I knew seven
41
- different ways to address a "promiscuous" woman, and I can tell which ones
42
- are applicable to American and which to British English. It remains to be
43
- seen how this will benefit my academic writing.
44
-
45
- It was a lot of fun to learn the differences (or, as the teacher put it,
46
- "to purify my English after years of prolonged unhealthy exposure to American
47
- media"), which are not only linguistic, but above all in attitude and
48
- social norms.
49
- For example, in the US the first question that people ask you is
50
- "What do you do?" (meaning: "How much do you earn?"), while in England such
51
- a question would be felt as unnecessary direct and impolite.
52
- As a rule,
53
- it is compulsory to exchange comments about the weather, and there is a lot
54
- of specialized vocabulary for this; the following table might prove handy
55
- to understand your acquaintance:
56
-
57
- - "It's a lovely day!" = "It doesn't rain"
58
- - "It's a nice day!" = "It doesn't rain heavily"
59
- - "What a wonderful day!"="This morning, at 10:13, I caught a glimpse of the sun"
60
-
61
- (the correct answer to any of these is "isn't it?")
62
-
63
- `II`. The Harry Potter experience
64
- -------------------------
65
-
66
- flickr: http://www.flickr.com/photos/censi/232006603/
67
-
68
- During my three-week stay I tried my best to immerse myself in the English
69
- atmosphere.
70
-
71
- I went to a place called Oxford Story [3], where we paid &pound;7 to go through a
72
- painfully slow indoor ride, sat on a mobile school-desk in the dark for 25
73
- minutes. It is the claustrophobic equivalent of the American Epcot center in
74
- Disney World.
75
-
76
- At Epcot, I learned that the final goal of all the scientific progress in the
77
- last three millennia was to let Walt Disney broadcast Snow White using
78
- Siemens equipment (Siemens sponsored the ride).
79
- In Oxford, I learned that the glorious University is the repository of all
80
- human knowledge, and that the English understatement is a legend. At the end of
81
- the ride, I was amazed that in Italy I had managed to learn to read and write.
82
-
83
- flickr: http://www.flickr.com/photos/censi/232023681/
84
-
85
- Still, one thing the ride did not explain is how the well-educated,
86
- smart elite students of Oxford can possibly find rowing fun --
87
- (probably it IS fun, compared to cricket).
88
-
89
- flickr: http://www.flickr.com/photos/censi/232529032/
90
-
91
- I went to a candle-light baroque concert in the Exeter college chapel.
92
- The ensemble was 75% Asian, all Oxford researchers, and we were given
93
- a twenty minute speech about the effort they put in the historical
94
- research of this obscure composer, that they had a microfilm of the original
95
- manuscript delivered from a German library, that the viola would be played
96
- in the original style, blah blah blah. Only in Oxford!
97
-
98
- flickr: http://www.flickr.com/photos/censi/232031895/
99
-
100
- I read "The Hobbit" (Tolkien was a fellow of Exeter college) - I discovered
101
- that the only two peoples in the known and invented universes to have
102
- the concept of a "second breakfast" are Hobbits and Italians.
103
-
104
-
105
- I watched a performance of MacBeth at an open-air theatre.
106
- I couldn't understand but one sentence, which is worth mentioning:
107
- "Alcohol provokes the desire, but it takes away the performance"
108
-
109
- Regarding alcohol, England is one of the places where you can't drink if you
110
- are under 21 (in Italy, at 18 you have decided to quit).
111
- Young people have their ID checked at the entrance of pubs and in liquor
112
- stores: that's only a minor annoyance, as they just need to wait outside
113
- the store for the first Spanish guy passing by that will buy the wine for them
114
- (and be compensated with just the change - did you keep the penny, Felix?).
115
-
116
- Anyway the guys at the door use the ID checking mostly as a form of flattery:
117
- "You are 32? I thought you were 20!" is probably the best pick-up line that
118
- the English can come up with.
119
-
120
- The other characteristic thing is that in English pubs there is no table
121
- service: you have to walk to the bar and ask by yourself. The first time can
122
- be confusing: and you can spend quite some time waiting at the table whining
123
- about the "poor service".
124
-
125
- `III`. Parsnip, Marmite & the tea conspiracy
126
- ---------------------------------------------
127
-
128
- During the first week I was a guest of a lovely 79-year-old lady.
129
- Working at the University, she made a point of speaking very posh English.
130
- And she made a point of cooking traditional English food.
131
- The typical English dish is some meat with two vegetables aside.
132
- For the vegetables, pick any two in {parsnip, carrot, potato}.
133
-
134
- Don't look in your dictionary for a translation of "parsnip" as probably
135
- there isn't one. The lady would tell me that in the next-to-last century,
136
- this famous professor spent years raising the finest crossbreed of Parsnip as
137
- to finally obtain what is best described as a big white carrot
138
- with no taste whatsoever [4].
139
-
140
- Nevertheless, the many regional variants give spectacular variety to the
141
- English cuisine: the two vegetables can be boiled, fried, baked, microwaved,
142
- or roasted. There exist also exotic twists, in which the vegetables are put
143
- on top of the meat, or underneath, or even inside.
144
- In important occasions, the recipes stay the same but gain a French name.
145
-
146
-
147
- flickr: http://www.flickr.com/photos/censi/232526897/
148
-
149
-
150
- I tried a thing called Marmite, which the teacher sold to me as "the British
151
- answer to Nutella". It has the aspect and consistency of engine grease, and,
152
- as far as I know, also the taste is similar (I've never tasted the grease,
153
- but next time, presented with choice, I'd give it a go).
154
-
155
- The austerity of English food can be explained by the pitiless weather; but
156
- how can you explain Marmite, if not with alimentary masochism?
157
-
158
- But... there's one thing that is much better in England: tea. Wherever I tried
159
- it (at the old lady's, at tearooms, at coffee breaks) it was sooo delicious.
160
- In Italy we don't get the real thing. Why is that? Is this some sort of
161
- conspiracy orchestrated by the Italian coffee producers? And is it the
162
- tea cartello which does not allow good coffee to be imported in England?
163
-
164
- `IV`. The Summer School
165
- ---------------------
166
-
167
- If you go for a career in research, in general you don't get much money,
168
- or fame, and you don't get to rescue the princess either.
169
- The two benefits that you do get are: playing with very expensive toys
170
- and the occasional trip in which you meet all sort of people.
171
-
172
- And when you talk with them, it's sort of strange to realize that your
173
- interlocutor is one of the 5 people - worldwide - that actually care about your
174
- research theme, and yet the things you have in common end there, as he has
175
- different culture, race, religion, and while you two happen to agree that Lie
176
- brackets are an indispensable tool to characterize the propagation of errors
177
- on the Euclidean group, you have very different answers to the important
178
- questions about life, the universe and everything. (In these cases I have
179
- anecdotal proof that it is much better to stick to research talk, and to
180
- avoid at all costs the kind of jokes that you can find in the Appendix).
181
-
182
- Instead, at this particular school, I would say that the European character was
183
- clearly perceived, and I enjoyed it -- but whether England is in Europe is a
184
- delicate matter.
185
-
186
-
187
- Here are some impressions of the people.
188
-
189
- * Juan Domingo Tardos (aka Mingo) is the funniest of the bunch, the man you
190
- want to go partying with.
191
-
192
- He taught us two deep truths about SLAM and life:
193
- 1. The size of your banana matters.
194
- 2. Never under-estimate the size of your lemons.
195
-
196
- I thought: wow, I want to write a paper with "banana" in the title - finally
197
- some inspiration from the school! I already had big projects for Fig. 1,2
198
- and a full-page Fig. 3, but after a little googling I found:
199
- "Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire"[5]
200
- "Dealing with large bananas" [6].
201
- I gave up: I cannot beat this last one. And the existence of [6] proves
202
- once again that SLAM is a solved problem.
203
-
204
- * Paul Newman, the organizer, told us, more than once, that the future of SLAM
205
- is in long term operation if we want the systems to be reliable.
206
- (Personally, I disagree: I think that it is possible to build anything at
207
- the desired level of reliability, given reasonable funding, time, and
208
- an appropriate number of German engineers)
209
-
210
- * One of the lessons learned in the school is that almost everything has
211
- already been done by someone else.
212
- More specifically, most of the things have already been done by
213
- Durrant-Whyte some twenty years ago, when men were men, CS was electrical
214
- engineering, master students knew calculus, and Kalman filters ran
215
- free in the wild lands of Australia.
216
-
217
- * Frank Dellaert is a jolly chap as well, and he does interesting things with
218
- graphs. As he introduced three different formalisms in the first
219
- three slides, I regretted not to have put more CS in my curriculum, then
220
- shut my eyes. Interestingly, at summer schools and conferences, if you close
221
- your eyes people assume that you are very smart and that you are thinking
222
- about some new impressive algorithm -- I was just dreaming of a sunny beach.
223
-
224
- * Henrik Christensen has implemented SLAM on the cleaning robot for $45
225
- in sensors and electronics. It puts things in perspective, especially
226
- if you consider that I paid &pound;16 for a one-hour coach trip from Heathrow
227
- to Oxford.
228
-
229
- * Andy Davison is a wonderful person, he tutored the practicals with
230
- infinite patience. Never did I meet such a knowledgeable, affable,
231
- and humble person. (Probably he is the kind of person that some day will
232
- show up at work with automatic guns)
233
-
234
- * Wolfram Burgard - he wins my "best robot" award for the photo of our
235
- beloved Albert [7].
236
-
237
- * Dieter Fox wins "most nostalgic slide from the 90s": and every time we feel
238
- the same emotion as the first time.
239
-
240
- * Kurt Konolige reminded me why I bought a Mac.
241
-
242
- * Simon Lacroix - Once we sat at the same table during lunch. While he
243
- talked with Dellaert, he would send me alarmed glances, the kind of glances
244
- that you would reserve to a relative returning from death. I wanted
245
- to ask him why, but then I decided I'd better not to (was I so wasted
246
- from the night before?).
247
-
248
- * Simon Julier -- he seems very smart, but he lost me between slide #3 and #4.
249
- I started to be seasick from all those covariance matrices -
250
- so I muttered to my neighbours: "I wonder whether it still holds in
251
- higher-dimensional spaces...", then I closed my eyes and was back again on
252
- the sunny beach.
253
-
254
- * But all in all, the most interesting presentation was the magical show
255
- that Davide Scaramuzza (who at daytime pretends to work at ETHZ) gave to a
256
- selected audience after the banquet ([8]).
257
- It was another confirmation that all the time spent in front of a monitor is,
258
- in fact, wasted, and all of us should have studied card tricks instead:
259
- you have NO IDEA of how a girl's face brightens up and her eyes expand when
260
- she watches a magician.
261
-
262
- `V`. Other minor issues in SLAM
263
- --------------------------------
264
-
265
- We all know that the most important open problem in SLAM is that there are
266
- not enough women doing research in the area and coming at summer schools.
267
- As for the other minor issues, this is the result of asking
268
- "What is the future of SLAM?" to a random sampling of the participants.
269
- (the list does not include answers given after 10:00 PM)
270
-
271
- - For 30% of the respondents, SLAM is a solved problem, and we just need some
272
- German engineers to work out the details of the implementations.
273
- - Long term operation: make filters that reconsider their decisions at a
274
- a later time (so not delaying decisions, but explicitly reconsider).
275
- - Make it robust for real applications: or, your method should work in more
276
- than one experiment and possibly also outside of your lab.
277
- - Put more knowledge in SLAM about the environment. Teach your
278
- filter what is a tree, a road, a mirror so that it can make smarter
279
- decisions.
280
- - Active SLAM and SLAM-guided exploration (once we figure out good acronyms).
281
- - Some boring work is to be done for taking into account linearization errors
282
- in the already existing results about consistency, sparsity, etc.
283
- - "Where can I get some real coffee?" (2 people)
284
- - Methods and representations for real sensor fusion (laser, camera, etc).
285
- - Do robust stuff with a single camera. Omnidirectional cameras are cool.
286
- Mix different techniques at different time-scales: visual odometry between
287
- frames, then stable features, then databases of places to close the loop
288
- (or don't close the loop at all).
289
-
290
- Appendix. How to offend seven nationalities at once
291
- --------------------------------------------------
292
-
293
- In Oxford I learned the ultimate rude stereotypical joke -- I think it's
294
- worth sharing.
295
-
296
- > **Heaven & Hell**
297
- >
298
- > *In Heaven*: the policemen are British, mechanics are German, chefs are French,
299
- > wives are Japanese, neighbours are Dutch, lovers are Italian,
300
- > and the Swiss organize it all.
301
- >
302
- > *In Hell*: the policemen are German, mechanics are French, chefs are British,
303
- > neighbours are Japanese, wives are Dutch, lovers are Swiss,
304
- > and the Italians organize it all.
305
-
306
- For related work, see for example [9], [10].
307
-
308
-
309
- And here's the research version:
310
-
311
- > **The BEST international research project**
312
- >
313
- > - The French do the overall math analysis,
314
- > - a Chinese refines a ten-line proof of the main Theorem,
315
- > - the Germans design the implementation,
316
- > - Japanese undergrads do the actual work,
317
- > - the British write the paper,
318
- > - an American gives the presentation,
319
- > - the Spanish organize the social events,
320
- > - and the Italians organize the banquet.
321
- >
322
- > **The WORST international research project**
323
- >
324
- > - The Germans do the overall math analysis,
325
- > - an American PhD student spends 10 CPU year on his department's 48-node
326
- > cluster and proves with a Monte Carlo simulation in Matlab that
327
- > Theorem 1 indeed holds for some values of the parameters,
328
- > - the French design the implementation,
329
- > - one Spanish undergrad does the actual work,
330
- > - the Italians write the papers,
331
- > - a Chinese gives the presentation,
332
- > - the Japanese organize the social events,
333
- > - and the British organize the banquet.
334
-
335
- `:-)`
336
-
337
- Flickr: <http://www.flickr.com/photos/censi/232003838>
338
-
339
- References
340
- ----------
341
-
342
- \[1\] [http://www.spellingsociety.org/news/media/poems.php](http://www.spellingsociety.org/news/media/poems.php)
343
- \[2\] dde [http://www.flickr.com/photos/censi/236722418/](http://www.flickr.com/photos/censi/236722418/)
344
- \[3\] [http://www.oxfordstory.co.uk](http://www.oxfordstory.co.uk)
345
- \[4\] [http://www.botanical.com/botanical/mgmh/p/parsni12.html](http://www.botanical.com/botanical/mgmh/p/parsni12.html )
346
- \[5\] E. Meijer, M. Fokkinga, R. Paterson. "Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire" (1991)
347
- [http://citeseer.ist.psu.edu/meijer91functional.html](http://citeseer.ist.psu.edu/meijer91functional.html)
348
- \[6\] R. Lammel, J. Visser, J. Kort. "Dealing with large bananas" (2000) <http://citeseer.ist.psu.edu/lammel00dealing.html>
349
- \[7\] [http://www.informatik.uni-freiburg.de/~burgard/](http://citeseer.ist.psu.edu/lammel00dealing.html)
350
- \[8\] [http://asl.epfl.ch/~scaramuz/cabaret/cabaret.wmv](http://asl.epfl.ch/~scaramuz/cabaret/cabaret.wmv)
351
- \[9\] [http://www.anth.uconn.edu/faculty/boster/cultvar/euweb/](http://www.anth.uconn.edu/faculty/boster/cultvar/euweb/)
352
- \[10\] [http://www.infonegocio.com/xeron/bruno/italy.html](http://www.infonegocio.com/xeron/bruno/italy.html)
@@ -1,4 +0,0 @@
1
-
2
- $ python
3
-
4
-
@@ -1,48 +0,0 @@
1
- subtitle: news
2
- author: Andrea Censi
3
- company: Università La Sapienza
4
- css: math.css
5
-
6
- RDK news
7
- ========
8
-
9
- Profiling
10
- ---------------------------------------------------------
11
-
12
- 1. `ragent2` writes profiling information on a pipe.
13
- 2. `rdk-profiler` reads the pipe and creates graphs in HTML+Javascript.
14
- 3. The user reads the data on a browser.
15
-
16
- Things logged
17
- -----------------------------------------------------------
18
-
19
- 17288397 1730000 0 16384 END pantiltClient
20
- 17288439 1730000 0 16384 START pantiltClient
21
- 17288564 1730000 0 16384 LOCK pantiltClient:tilt
22
- 17288622 1730000 0 16384 UNLOCK pantiltClient:tilt
23
-
24
- * `START/END`: how much does it take to ...?
25
-
26
- Footnotes 1/2
27
- ---------------------------------------------------
28
-
29
- You can use footnotes [^1]
30
-
31
- [^1]: And they work.
32
-
33
- Footnotes 2/2
34
- ---------------------------------------------------
35
-
36
- Each footnote on its page [^2]
37
-
38
- [^2]: alone.
39
-
40
- And now: math!
41
- ---------------------------------------------------
42
-
43
- Consider, for example the group $\int_{a}^{b} x^{a} db$ of
44
-
45
- \[ \alpha_{\beta}^{\gamma} \]
46
-
47
- Unfortunately S5 and MathML are mutually exclusive.
48
- See <http://meyerweb.com/eric/thoughts/category/tech/s5/> for explanations.
@@ -1,28 +0,0 @@
1
- Write a comment here
2
- *** Parameters: ***
3
- {} # params
4
- *** Markdown input: ***
5
- [test][]:
6
-
7
- *** Output of inspect ***
8
- md_el(:document,[md_par([md_link(["test"],"test"), ":"])],{},[])
9
- *** Output of to_html ***
10
- <p><span>test</span>:</p>
11
- *** Output of to_latex ***
12
- test:
13
- *** Output of to_md ***
14
- test:
15
- *** Output of to_s ***
16
- test:
17
- *** EOF ***
18
-
19
-
20
-
21
- OK!
22
-
23
-
24
-
25
- *** Output of Markdown.pl ***
26
- (not used anymore)
27
- *** Output of Markdown.pl (parsed) ***
28
- (not used anymore)
@@ -1,32 +0,0 @@
1
- Write a comment abouth the test here.
2
- *** Parameters: ***
3
- {}
4
- *** Markdown input: ***
5
-
6
-
7
- This is an email address: <andrea@invalid.it>
8
-
9
- *** Output of inspect ***
10
- md_el(:document,[
11
- md_par(["This is an email address: ", md_email("andrea@invalid.it")])
12
- ],{},[])
13
- *** Output of to_html ***
14
- <p>This is an email address: <a href='mailto:andrea@invalid.it'>&#097;&#110;&#100;&#114;&#101;&#097;&#064;&#105;&#110;&#118;&#097;&#108;&#105;&#100;&#046;&#105;&#116;</a></p>
15
- *** Output of to_latex ***
16
- This is an email address: \href{mailto:andrea@invalid.it}{andrea\char64invalid\char46it}
17
- *** Output of to_md ***
18
- This is an email address:
19
- *** Output of to_s ***
20
- This is an email address:
21
- *** EOF ***
22
-
23
-
24
-
25
- OK!
26
-
27
-
28
-
29
- *** Output of Markdown.pl ***
30
- (not used anymore)
31
- *** Output of Markdown.pl (parsed) ***
32
- (not used anymore)