maruku 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. data/bin/{maruku0.3 → marudown} +6 -14
  2. data/bin/maruku +1 -1
  3. data/bin/marutest +37 -9
  4. data/docs/TOFIX.html +22 -0
  5. data/docs/TOFIX.md +3 -0
  6. data/docs/changelog-0.2.13.html +30 -0
  7. data/docs/changelog-0.2.13.md +6 -0
  8. data/docs/changelog-0.3.html +19 -5
  9. data/docs/faq.html +51 -40
  10. data/docs/faq.md +3 -3
  11. data/docs/hidden_o_n_squared.md +10 -0
  12. data/docs/index.html +84 -396
  13. data/docs/markdown_syntax.html +139 -330
  14. data/docs/markdown_syntax.md +80 -93
  15. data/docs/maruku.html +84 -396
  16. data/docs/maruku.md +88 -158
  17. data/docs/proposal.html +13 -106
  18. data/docs/proposal.md +3 -3
  19. data/docs/todo.html +38 -28
  20. data/lib/maruku.rb +77 -11
  21. data/lib/maruku/attributes.rb +186 -0
  22. data/lib/maruku/defaults.rb +40 -0
  23. data/lib/maruku/errors_management.rb +55 -39
  24. data/lib/maruku/helpers.rb +156 -72
  25. data/lib/maruku/input/charsource.rb +319 -0
  26. data/lib/maruku/{html_helper.rb → input/html_helper.rb} +30 -9
  27. data/lib/maruku/input/linesource.rb +111 -0
  28. data/lib/maruku/input/parse_block.rb +562 -0
  29. data/lib/maruku/{parse_doc.rb → input/parse_doc.rb} +60 -28
  30. data/lib/maruku/{parse_span_better.rb → input/parse_span_better.rb} +226 -256
  31. data/lib/maruku/input/type_detection.rb +137 -0
  32. data/lib/maruku/maruku.rb +33 -0
  33. data/lib/maruku/{to_html.rb → output/to_html.rb} +151 -132
  34. data/lib/maruku/{to_latex.rb → output/to_latex.rb} +31 -35
  35. data/lib/maruku/{to_latex_entities.rb → output/to_latex_entities.rb} +25 -3
  36. data/lib/maruku/output/to_latex_strings.rb +64 -0
  37. data/lib/maruku/output/to_markdown.rb +164 -0
  38. data/lib/maruku/{to_s.rb → output/to_s.rb} +6 -0
  39. data/lib/maruku/string_utils.rb +12 -181
  40. data/lib/maruku/structures.rb +91 -67
  41. data/lib/maruku/structures_inspect.rb +78 -0
  42. data/lib/maruku/structures_iterators.rb +24 -2
  43. data/lib/maruku/tests/benchmark.rb +41 -9
  44. data/lib/maruku/tests/new_parser.rb +317 -286
  45. data/lib/maruku/tests/tests.rb +20 -0
  46. data/lib/maruku/toc.rb +64 -64
  47. data/lib/maruku/usage/example1.rb +33 -0
  48. data/lib/maruku/version.rb +8 -2
  49. data/tests/unittest/abbreviations.md +27 -16
  50. data/tests/unittest/attributes/attributes.md +89 -0
  51. data/tests/unittest/attributes/circular.md +51 -0
  52. data/tests/unittest/attributes/default.md +47 -0
  53. data/tests/unittest/blank.md +10 -6
  54. data/tests/unittest/blanks_in_code.md +26 -26
  55. data/tests/unittest/code.md +9 -9
  56. data/tests/unittest/code2.md +12 -13
  57. data/tests/unittest/code3.md +34 -34
  58. data/tests/unittest/easy.md +9 -7
  59. data/tests/unittest/email.md +9 -7
  60. data/tests/unittest/encoding/iso-8859-1.md +41 -4
  61. data/tests/unittest/encoding/utf-8.md +6 -5
  62. data/tests/unittest/entities.md +52 -80
  63. data/tests/unittest/escaping.md +47 -35
  64. data/tests/unittest/extra_dl.md +19 -29
  65. data/tests/unittest/extra_header_id.md +31 -24
  66. data/tests/unittest/extra_table1.md +14 -32
  67. data/tests/unittest/footnotes.md +58 -42
  68. data/tests/unittest/headers.md +11 -11
  69. data/tests/unittest/hrule.md +14 -24
  70. data/tests/unittest/images.md +41 -26
  71. data/tests/unittest/inline_html.md +104 -56
  72. data/tests/unittest/inline_html2.md +38 -0
  73. data/tests/unittest/links.md +74 -33
  74. data/tests/unittest/list1.md +18 -15
  75. data/tests/unittest/list2.md +31 -13
  76. data/tests/unittest/list3.md +29 -28
  77. data/tests/unittest/list4.md +103 -12
  78. data/tests/unittest/lists.md +86 -53
  79. data/tests/unittest/lists6.md +53 -0
  80. data/tests/unittest/lists7.md +31 -0
  81. data/tests/unittest/lists_after_paragraph.md +105 -71
  82. data/tests/unittest/lists_ol.md +149 -73
  83. data/tests/unittest/misc_sw.md +366 -326
  84. data/tests/unittest/notyet/escape.md +10 -10
  85. data/tests/unittest/notyet/header_after_par.md +20 -14
  86. data/tests/unittest/notyet/ticks.md +8 -35
  87. data/tests/unittest/notyet/triggering.md +72 -45
  88. data/tests/unittest/olist.md +78 -0
  89. data/tests/unittest/one.md +5 -3
  90. data/tests/unittest/paragraph.md +5 -3
  91. data/tests/unittest/paragraph_rules/dont_merge_ref.md +15 -9
  92. data/tests/unittest/paragraph_rules/tab_is_blank.md +9 -5
  93. data/tests/unittest/paragraphs.md +21 -26
  94. data/tests/unittest/recover/recover_links.md +6 -5
  95. data/tests/unittest/references/long_example.md +39 -30
  96. data/tests/unittest/references/spaces_and_numbers.md +2 -2
  97. data/tests/unittest/syntax_hl.md +33 -31
  98. data/tests/unittest/test.md +4 -6
  99. data/tests/unittest/wrapping.md +43 -26
  100. metadata +160 -139
  101. data/docs/markdown_extra2.html +0 -87
  102. data/docs/markdown_extra2.md +0 -83
  103. data/docs/markdown_syntax_2.html +0 -152
  104. data/lib/maruku/parse_block.rb +0 -564
  105. data/lib/maruku/parse_span.rb +0 -451
  106. data/lib/maruku/to_latex_strings.rb +0 -59
  107. data/lib/maruku/to_markdown.rb +0 -110
  108. data/lib/test.rb +0 -29
@@ -46,48 +46,55 @@ md_el(:document,[
46
46
  md_el(:ol,[
47
47
  md_el(:li_span,[
48
48
  "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus."
49
- ] , {:want_my_paragraph=>false}),
50
- md_el(:li_span,[
49
+ ],{:want_my_paragraph=>false},[]),
50
+ md_el(:li_span,[
51
51
  "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing."
52
- ] , {:want_my_paragraph=>false}),
53
- md_el(:li_span,[
52
+ ],{:want_my_paragraph=>false},[]),
53
+ md_el(:li_span,[
54
54
  "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing"
55
- ] , {:want_my_paragraph=>false}),
56
- md_el(:li_span,[
55
+ ],{:want_my_paragraph=>false},[]),
56
+ md_el(:li_span,[
57
57
  "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing"
58
- ] , {:want_my_paragraph=>false}),
59
- md_el(:li_span,[
58
+ ],{:want_my_paragraph=>false},[]),
59
+ md_el(:li_span,[
60
60
  "Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing."
61
- ] , {:want_my_paragraph=>false})
62
- ] ),
63
- md_par(["Ancora"]),
64
- md_el(:ol,[
61
+ ],{:want_my_paragraph=>false},[])
62
+ ],{},[]),
63
+ md_par(["Ancora"]),
64
+ md_el(:ol,[
65
65
  md_el(:li,[
66
66
  md_par([
67
67
  "This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus."
68
68
  ]),
69
- md_par(["ATTENZIONE!"]),
70
- md_el(:ul,[
71
- md_el(:li_span,["Uno"] , {:want_my_paragraph=>false}),
72
- md_el(:li_span,["Due 1. tre 1. tre 1. tre"] , {:want_my_paragraph=>false}),
73
- md_el(:li_span,["Due"] , {:want_my_paragraph=>false})
74
- ] )
75
- ] , {:want_my_paragraph=>true}),
76
- md_el(:li,[
69
+ md_par(["ATTENZIONE!"]),
70
+ md_el(:ul,[
71
+ md_el(:li,[md_par(["Uno"])],{:want_my_paragraph=>false},[]),
72
+ md_el(:li,[
73
+ md_par(["Due"]),
74
+ md_el(:ol,[
75
+ md_el(:li_span,["tre"],{:want_my_paragraph=>false},[]),
76
+ md_el(:li_span,["tre"],{:want_my_paragraph=>false},[]),
77
+ md_el(:li_span,["tre"],{:want_my_paragraph=>false},[])
78
+ ],{},[])
79
+ ],{:want_my_paragraph=>true},[]),
80
+ md_el(:li,[md_par(["Due"])],{:want_my_paragraph=>false},[])
81
+ ],{},[])
82
+ ],{:want_my_paragraph=>true},[]),
83
+ md_el(:li,[
77
84
  md_par(["Suspendisse id sem consectetuer libero luctus adipiscing."])
78
- ] , {:want_my_paragraph=>false})
79
- ] ),
80
- md_par(["Ancora"]),
81
- md_el(:ul,[
85
+ ],{:want_my_paragraph=>false},[])
86
+ ],{},[]),
87
+ md_par(["Ancora"]),
88
+ md_el(:ul,[
82
89
  md_el(:li,[
83
90
  md_par(["This is a list item with two paragraphs."]),
84
- md_par([
91
+ md_par([
85
92
  "This is the second paragraph in the list item. You're only required to indent the first line. Lorem ipsum dolo sit amet, consectetuer adipiscing elit"
86
93
  ])
87
- ] , {:want_my_paragraph=>true}),
88
- md_el(:li,[md_par(["Another item in the same list."])] , {:want_my_paragraph=>false})
89
- ] )
90
- ] )
94
+ ],{:want_my_paragraph=>true},[]),
95
+ md_el(:li,[md_par(["Another item in the same list."])],{:want_my_paragraph=>false},[])
96
+ ],{},[])
97
+ ],{},[])
91
98
  *** Output of to_html ***
92
99
 
93
100
  <ol>
@@ -111,11 +118,25 @@ md_el(:document,[
111
118
  <p>ATTENZIONE!</p>
112
119
 
113
120
  <ul>
114
- <li>Uno</li>
121
+ <li>
122
+ <p>Uno</p>
123
+ </li>
115
124
 
116
- <li>Due 1. tre 1. tre 1. tre</li>
125
+ <li>
126
+ <p>Due</p>
117
127
 
118
- <li>Due</li>
128
+ <ol>
129
+ <li>tre</li>
130
+
131
+ <li>tre</li>
132
+
133
+ <li>tre</li>
134
+ </ol>
135
+ </li>
136
+
137
+ <li>
138
+ <p>Due</p>
139
+ </li>
119
140
  </ul>
120
141
  </li>
121
142
 
@@ -156,9 +177,21 @@ ATTENZIONE!
156
177
 
157
178
  \begin{itemize}%
158
179
  \item Uno
159
- \item Due 1. tre 1. tre 1. tre
180
+
181
+
182
+ \item Due
183
+
184
+ \begin{enumerate}%
185
+ \item tre
186
+ \item tre
187
+ \item tre
188
+
189
+ \end{enumerate}
190
+
160
191
  \item Due
161
192
 
193
+
194
+
162
195
  \end{itemize}
163
196
 
164
197
  \item Suspendisse id sem consectetuer libero luctus adipiscing.
@@ -180,10 +213,56 @@ This is the second paragraph in the list item. You're only required to indent th
180
213
 
181
214
  \end{itemize}
182
215
 
216
+ *** Output of to_md ***
217
+ 1. Lorem ipsum dolor sit amet,
218
+ consectetuer adipiscing elit.
219
+ Aliquam hendrerit mi posuere
220
+ lectus. Vestibulum enim wisi,
221
+ viverra nec, fringilla in, laoreet
222
+ vitae, risus.
223
+ 2. Donec sit amet nisl. Aliquam semper
224
+ ipsum sit amet velit. Suspendisse
225
+ id sem consectetuer libero luctus
226
+ adipiscing.
227
+ 3. Donec sit amet nisl. Aliquam semper
228
+ ipsum sit amet velit. Suspendisse
229
+ id sem consectetuer libero luctus
230
+ adipiscing
231
+ 4. Donec sit amet nisl. Aliquam semper
232
+ ipsum sit amet velit. Suspendisse
233
+ id sem consectetuer libero luctus
234
+ adipiscing
235
+ 5. Donec sit amet nisl. Aliquam semper
236
+ ipsum sit amet velit. Suspendisse
237
+ id sem consectetuer libero luctus
238
+ adipiscing.
239
+
240
+ Ancora
241
+
242
+ 1.
243
+ This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
244
+ ATTENZIONE!
245
+ Uno
246
+
247
+ Due
248
+
249
+ 1. tre
250
+ 2. tre
251
+ 3. tre
252
+
253
+ Due
254
+ 2.
255
+ Suspendisse id sem consectetuer libero luctus adipiscing.
256
+
257
+ Ancora
258
+
259
+ -This is a list item with two paragraphs.
260
+ This is the second paragraph in the list item. You're only required to indent the first line. Lorem ipsum dolo sit amet, consectetuer adipiscing elit
261
+ -nother item in the same list.
262
+
263
+
183
264
  *** Output of to_s ***
184
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscingDonec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscingDonec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.AncoraThis is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.ATTENZIONE!UnoDue 1. tre 1. tre 1. treDueSuspendisse id sem consectetuer libero luctus adipiscing.AncoraThis is a list item with two paragraphs.This is the second paragraph in the list item. You're only required to indent the first line. Lorem ipsum dolo sit amet, consectetuer adipiscing elitAnother item in the same list.
185
- *** Output of to_s ***
186
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscingDonec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscingDonec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.AncoraThis is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.ATTENZIONE!UnoDue 1. tre 1. tre 1. treDueSuspendisse id sem consectetuer libero luctus adipiscing.AncoraThis is a list item with two paragraphs.This is the second paragraph in the list item. You're only required to indent the first line. Lorem ipsum dolo sit amet, consectetuer adipiscing elitAnother item in the same list.
265
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscingDonec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscingDonec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.AncoraThis is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.ATTENZIONE!UnoDuetretretreDueSuspendisse id sem consectetuer libero luctus adipiscing.AncoraThis is a list item with two paragraphs.This is the second paragraph in the list item. You're only required to indent the first line. Lorem ipsum dolo sit amet, consectetuer adipiscing elitAnother item in the same list.
187
266
  *** EOF ***
188
267
 
189
268
 
@@ -252,72 +331,69 @@ viverra nec, fringilla in, laoreet vitae, risus.
252
331
  <ol>
253
332
  <li>Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
254
333
  Suspendisse id sem consectetuer libero luctus adipiscing.</li
255
- >
334
+ >
256
335
  </ol
257
- ></li
258
- >
336
+ ></li
337
+ >
259
338
  <li>Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
260
339
  Suspendisse id sem consectetuer libero luctus adipiscing.
261
340
  <ol>
262
341
  <li>Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
263
342
  Suspendisse id sem consectetuer libero luctus adipiscing.</li
264
- >
343
+ >
265
344
  <li>Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
266
345
  Suspendisse id sem consectetuer libero luctus adipiscing.</li
267
- >
346
+ >
268
347
  </ol
269
- ></li
270
- >
348
+ ></li
349
+ >
271
350
  </ol
272
- ><p>Ancora</p
273
- ><ol>
351
+ ><p>Ancora</p
352
+ ><ol>
274
353
  <li
275
- ><p>This is a list item with two paragraphs. Lorem ipsum dolor
354
+ ><p>This is a list item with two paragraphs. Lorem ipsum dolor
276
355
  sit amet, consectetuer adipiscing elit. Aliquam hendrerit
277
356
  mi posuere lectus.</p
278
- >
279
-
357
+ >
280
358
  <p>ATTENZIONE!</p
281
- >
282
-
359
+ >
283
360
  <ul>
284
361
  <li>Uno</li
285
- >
362
+ >
286
363
  <li>Due
287
364
  <ol>
288
365
  <li>tre</li
289
- >
366
+ >
290
367
  <li>tre</li
291
- >
368
+ >
292
369
  <li>tre</li
293
- >
370
+ >
294
371
  </ol
295
- ></li
296
- >
372
+ ></li
373
+ >
297
374
  <li>Due</li
298
- >
375
+ >
299
376
  </ul
300
- ></li
301
- >
377
+ ></li
378
+ >
302
379
  <li
303
- ><p>Suspendisse id sem consectetuer libero luctus adipiscing.</p
304
- ></li
305
- >
380
+ ><p>Suspendisse id sem consectetuer libero luctus adipiscing.</p
381
+ ></li
382
+ >
306
383
  </ol
307
- ><p>Ancora</p
308
- ><ul>
384
+ ><p>Ancora</p
385
+ ><ul>
309
386
  <li
310
- ><p>This is a list item with two paragraphs.</p
311
- >
312
-
387
+ ><p>This is a list item with two paragraphs.</p
388
+ >
313
389
  <p>This is the second paragraph in the list item. You're
314
390
  only required to indent the first line. Lorem ipsum dolor
315
391
  sit amet, consectetuer adipiscing elit.</p
316
- ></li
317
- >
392
+ ></li
393
+ >
318
394
  <li
319
- ><p>Another item in the same list.</p
320
- ></li
321
- >
395
+ ><p>Another item in the same list.</p
396
+ ></li
397
+ >
322
398
  </ul
323
- >
399
+ >
@@ -1,6 +1,6 @@
1
1
  Write a comment abouth the test here.
2
2
  *** Parameters: ***
3
- {:subject=>"Software not painful to use", :archive=>false, :order=>"-9.5", :date=>"Nov 20 2006", :inmenu=>true, :subject_short=>"painless software", :topic=>"/misc/coolsw"}
3
+ {:order=>"-9.5", :subject_short=>"painless software", :date=>"Nov 20 2006", :topic=>"/misc/coolsw", :archive=>false, :subject=>"Software not painful to use", :inmenu=>true}
4
4
  *** Markdown input: ***
5
5
  Subject: Software not painful to use
6
6
  Subject_short: painless software
@@ -110,216 +110,214 @@ inMenu: true
110
110
 
111
111
  *** Output of inspect ***
112
112
  md_el(:document,[
113
- md_el(:header,["General"] , {:id=>"general", :level=>3}),
114
- md_el(:ul,[
113
+ md_el(:header,["General"],{:level=>3},[]),
114
+ md_el(:ul,[
115
115
  md_el(:li_span,[
116
116
  md_em(["Operating System"]),
117
- " : ",
118
- md_link(["Mac OS X"],"switch"),
119
- ": heaven, after the purgatory of Linux and the hell of Windows."
120
- ] , {:want_my_paragraph=>false}),
121
- md_el(:li_span,[
117
+ " : ",
118
+ md_link(["Mac OS X"],"switch"),
119
+ ": heaven, after the purgatory of Linux and the hell of Windows."
120
+ ],{:want_my_paragraph=>false},[]),
121
+ md_el(:li_span,[
122
122
  md_em(["Browser"]),
123
- ": ",
124
- md_link(["Firefox"],"firefox"),
125
- ". On a Mac, ",
126
- md_link(["Camino"],"camino"),
127
- "."
128
- ] , {:want_my_paragraph=>false}),
129
- md_el(:li_span,[
123
+ ": ",
124
+ md_link(["Firefox"],"firefox"),
125
+ ". On a Mac, ",
126
+ md_link(["Camino"],"camino"),
127
+ "."
128
+ ],{:want_my_paragraph=>false},[]),
129
+ md_el(:li_span,[
130
130
  md_em(["Email"]),
131
- ": ",
132
- md_link(["GMail"],"gmail"),
133
- ", \"search, don't sort\" really works."
134
- ] , {:want_my_paragraph=>false}),
135
- md_el(:li_span,[
131
+ ": ",
132
+ md_link(["GMail"],"gmail"),
133
+ ", \"search, don't sort\" really works."
134
+ ],{:want_my_paragraph=>false},[]),
135
+ md_el(:li_span,[
136
136
  md_em(["Text Editor"]),
137
- ": ",
138
- md_link(["TextMate"],"textmate"),
139
- ", you have to buy it, but it's worth every penny. There are rumours that it's been converting (recovering) Emacs users (addicts). Unfortunately, it's Mac only. An alternative is ",
140
- md_link(["jedit"],"jedit"),
141
- " (GPL, Java)."
142
- ] , {:want_my_paragraph=>false})
143
- ] ),
144
- md_el(:header,["Development"] , {:id=>"development", :level=>3}),
145
- md_el(:ul,[
137
+ ": ",
138
+ md_link(["TextMate"],"textmate"),
139
+ ", you have to buy it, but it's worth every penny. There are rumours that it's been converting (recovering) Emacs users (addicts). Unfortunately, it's Mac only. An alternative is ",
140
+ md_link(["jedit"],"jedit"),
141
+ " (GPL, Java)."
142
+ ],{:want_my_paragraph=>false},[])
143
+ ],{},[]),
144
+ md_el(:header,["Development"],{:level=>3},[]),
145
+ md_el(:ul,[
146
146
  md_el(:li,[
147
147
  md_par([
148
148
  md_em(["Build system"]),
149
- ": ",
150
- md_link(["cmake"],"cmake"),
151
- ", throw the ",
152
- md_link(["autotools"],"autotools"),
153
- " away."
149
+ ": ",
150
+ md_link(["cmake"],"cmake"),
151
+ ", throw the ",
152
+ md_link(["autotools"],"autotools"),
153
+ " away."
154
154
  ])
155
- ] , {:want_my_paragraph=>false}),
156
- md_el(:li,[
155
+ ],{:want_my_paragraph=>false},[]),
156
+ md_el(:li,[
157
157
  md_par([
158
158
  md_em(["Source code control system"]),
159
- ": ditch CVS for ",
160
- md_link(["subversion"],"subversion"),
161
- "."
159
+ ": ditch CVS for ",
160
+ md_link(["subversion"],"subversion"),
161
+ "."
162
162
  ])
163
- ] , {:want_my_paragraph=>false}),
164
- md_el(:li,[
163
+ ],{:want_my_paragraph=>false},[]),
164
+ md_el(:li,[
165
165
  md_par([
166
166
  md_em(["Project management"]),
167
- ": ",
168
- md_link(["Trac"],"trac"),
169
- " tracks everything."
167
+ ": ",
168
+ md_link(["Trac"],"trac"),
169
+ " tracks everything."
170
170
  ])
171
- ] , {:want_my_paragraph=>false}),
172
- md_el(:li,[
171
+ ],{:want_my_paragraph=>false},[]),
172
+ md_el(:li,[
173
173
  md_par([
174
174
  md_em(["Scripting language"]),
175
- ": ",
176
- md_link(["Ruby"],"ruby"),
177
- " is Japanese pragmatism (and has a ",
178
- md_link(["poignant"],"poignant"),
179
- " guide). Python, you say? Python is too academic and snob:"
175
+ ": ",
176
+ md_link(["Ruby"],"ruby"),
177
+ " is Japanese pragmatism (and has a ",
178
+ md_link(["poignant"],"poignant"),
179
+ " guide). Python, you say? Python is too academic and snob:"
180
180
  ]),
181
- md_el(:code,[] , {:raw_code=>"$ python \nPython 2.4.1 (\\#1, Jun 4 2005, 00:54:33) \nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> exit\n'Use Ctrl-D (i.e. EOF) to exit.'\n>>> quit\n'Use Ctrl-D (i.e. EOF) to exit.'"})
182
- ] , {:want_my_paragraph=>true}),
183
- md_el(:li,[
181
+ md_el(:code,[],{:raw_code=>"$ python \nPython 2.4.1 (\\#1, Jun 4 2005, 00:54:33) \nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> exit\n'Use Ctrl-D (i.e. EOF) to exit.'\n>>> quit\n'Use Ctrl-D (i.e. EOF) to exit.'"},[])
182
+ ],{:want_my_paragraph=>true},[]),
183
+ md_el(:li,[
184
184
  md_par([
185
185
  md_em(["Java IDE"]),
186
- ": ",
187
- md_link(["JBuilder"],"jbuilder"),
188
- " is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained ",
189
- md_link(["generics"],"java-generics"),
190
- " and got opensourced."
186
+ ": ",
187
+ md_link(["JBuilder"],"jbuilder"),
188
+ " is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained ",
189
+ md_link(["generics"],"java-generics"),
190
+ " and got opensourced."
191
191
  ])
192
- ] , {:want_my_paragraph=>false}),
193
- md_el(:li,[
192
+ ],{:want_my_paragraph=>false},[]),
193
+ md_el(:li,[
194
194
  md_par([
195
195
  md_em(["Mark-up language"]),
196
- ": HTML is so 2001, why don't you take at look at ",
197
- md_link(["Markdown"],"markdown"),
198
- "? ",
199
- md_im_link(["Look at the source of this page"], "data/misc_markdown.png" ),
200
- "."
196
+ ": HTML is so 2001, why don't you take at look at ",
197
+ md_link(["Markdown"],"markdown"),
198
+ "? ",
199
+ md_im_link(["Look at the source of this page"], "data/misc_markdown.png", nil),
200
+ "."
201
201
  ])
202
- ] , {:want_my_paragraph=>false}),
203
- md_el(:li,[
202
+ ],{:want_my_paragraph=>false},[]),
203
+ md_el(:li,[
204
204
  md_par([
205
- md_em(["C"]),
206
- "+ libraries",
207
- md_em([": "]),
208
- " ",
209
- md_link(["QT"],"qt"),
210
- " for GUIs. * ",
211
- md_link(["GSL"],"gsl"),
212
- " for math. * ",
213
- md_link(["Magick++"],"magick"),
214
- " for manipulating images. * ",
215
- md_link(["Cairo"],"cairo"),
216
- " for creating PDFs. * ",
217
- md_link(["Boost"],"boost"),
218
- " for just about everything else."
205
+ md_em(["C++ libraries"]),
206
+ ": * ",
207
+ md_link(["QT"],"qt"),
208
+ " for GUIs. * ",
209
+ md_link(["GSL"],"gsl"),
210
+ " for math. * ",
211
+ md_link(["Magick++"],"magick"),
212
+ " for manipulating images. * ",
213
+ md_link(["Cairo"],"cairo"),
214
+ " for creating PDFs. * ",
215
+ md_link(["Boost"],"boost"),
216
+ " for just about everything else."
219
217
  ])
220
- ] , {:want_my_paragraph=>false})
221
- ] ),
222
- md_el(:header,["Research"] , {:id=>"research", :level=>3}),
223
- md_el(:ul,[
224
- md_el(:li_span,[md_em(["Writing papers"]), ": ", md_link(["LaTeX"],"latex")] , {:want_my_paragraph=>false}),
225
- md_el(:li_span,[
218
+ ],{:want_my_paragraph=>false},[])
219
+ ],{},[]),
220
+ md_el(:header,["Research"],{:level=>3},[]),
221
+ md_el(:ul,[
222
+ md_el(:li_span,[md_em(["Writing papers"]), ": ", md_link(["LaTeX"],"latex")],{:want_my_paragraph=>false},[]),
223
+ md_el(:li_span,[
226
224
  md_em(["Writing papers & enjoying the process"]),
227
- ": ",
228
- md_link(["LyX"],"lyx")
229
- ] , {:want_my_paragraph=>false}),
230
- md_el(:li_span,[
225
+ ": ",
226
+ md_link(["LyX"],"lyx")
227
+ ],{:want_my_paragraph=>false},[]),
228
+ md_el(:li_span,[
231
229
  md_em(["Handsome figures in your papers"]),
232
- ": ",
233
- md_link(["xfig"],"xfig"),
234
- " or, better, ",
235
- md_link(["jfig"],"jfig"),
236
- "."
237
- ] , {:want_my_paragraph=>false}),
238
- md_el(:li_span,[
230
+ ": ",
231
+ md_link(["xfig"],"xfig"),
232
+ " or, better, ",
233
+ md_link(["jfig"],"jfig"),
234
+ "."
235
+ ],{:want_my_paragraph=>false},[]),
236
+ md_el(:li_span,[
239
237
  md_em(["The occasional presentation with many graphical content"]),
240
- ": ",
241
- md_link(["OpenOffice Impress"],"impress"),
242
- " (using the ",
243
- md_link(["OOOlatex plugin"],"ooolatex"),
244
- "); the alternative is PowerPoint with the ",
245
- md_link(["TexPoint"],"texpoint"),
246
- " plugin."
247
- ] , {:want_my_paragraph=>false}),
248
- md_el(:li_span,[
238
+ ": ",
239
+ md_link(["OpenOffice Impress"],"impress"),
240
+ " (using the ",
241
+ md_link(["OOOlatex plugin"],"ooolatex"),
242
+ "); the alternative is PowerPoint with the ",
243
+ md_link(["TexPoint"],"texpoint"),
244
+ " plugin."
245
+ ],{:want_my_paragraph=>false},[]),
246
+ md_el(:li_span,[
249
247
  md_em(["Managing BibTeX"]),
250
- ": ",
251
- md_link(["jabref"],"jabref"),
252
- ": multi-platform, for all your bibtex needs."
253
- ] , {:want_my_paragraph=>false}),
254
- md_el(:li_span,[
248
+ ": ",
249
+ md_link(["jabref"],"jabref"),
250
+ ": multi-platform, for all your bibtex needs."
251
+ ],{:want_my_paragraph=>false},[]),
252
+ md_el(:li_span,[
255
253
  md_em(["IEEExplore and BibTeX"]),
256
- ": convert citations using ",
257
- md_link(["BibConverter"],"bibconverter"),
258
- "."
259
- ] , {:want_my_paragraph=>false})
260
- ] ),
261
- md_el(:header,["Cool websites"] , {:id=>"cool_websites", :level=>3}),
262
- md_el(:ul,[
254
+ ": convert citations using ",
255
+ md_link(["BibConverter"],"bibconverter"),
256
+ "."
257
+ ],{:want_my_paragraph=>false},[])
258
+ ],{},[]),
259
+ md_el(:header,["Cool websites"],{:level=>3},[]),
260
+ md_el(:ul,[
263
261
  md_el(:li_span,[
264
262
  md_em(["Best site in the wwworld"]),
265
- ": ",
266
- md_link(["Wikipedia"],"wikipedia")
267
- ] , {:want_my_paragraph=>false}),
268
- md_el(:li_span,[
263
+ ": ",
264
+ md_link(["Wikipedia"],"wikipedia")
265
+ ],{:want_my_paragraph=>false},[]),
266
+ md_el(:li_span,[
269
267
  md_link(["Mutopia"],"mutopia"),
270
- " for sheet music; ",
271
- md_link(["the Gutenberg Project"],"gutenberg"),
272
- " for books; ",
273
- md_link(["LiberLiber"],"liberliber"),
274
- " for books in italian."
275
- ] , {:want_my_paragraph=>false}),
276
- md_el(:li_span,[md_em(["Blogs"]), ": ", md_link(["Bloglines"],"bloglines")] , {:want_my_paragraph=>false}),
277
- md_el(:li_span,[
268
+ " for sheet music; ",
269
+ md_link(["the Gutenberg Project"],"gutenberg"),
270
+ " for books; ",
271
+ md_link(["LiberLiber"],"liberliber"),
272
+ " for books in italian."
273
+ ],{:want_my_paragraph=>false},[]),
274
+ md_el(:li_span,[md_em(["Blogs"]), ": ", md_link(["Bloglines"],"bloglines")],{:want_my_paragraph=>false},[]),
275
+ md_el(:li_span,[
278
276
  md_em(["Sharing photos"]),
279
- ": ",
280
- md_link(["flickr"],"flickr"),
281
- " exposes an API you can use."
282
- ] , {:want_my_paragraph=>false})
283
- ] ),
284
- md_ref_def("firefox", "http://getfirefox.com/" ,{:title=>nil}),
285
- md_ref_def("gmail", "http://gmail.com/" ,{:title=>nil}),
286
- md_ref_def("bloglines", "http://bloglines.com/" ,{:title=>nil}),
287
- md_ref_def("wikipedia", "http://en.wikipedia.org/" ,{:title=>nil}),
288
- md_ref_def("ruby", "http://www.ruby-lang.org/" ,{:title=>nil}),
289
- md_ref_def("poignant", "http://poignantguide.net/ruby/" ,{:title=>nil}),
290
- md_ref_def("webgen", "http://webgen.rubyforge.org/" ,{:title=>nil}),
291
- md_ref_def("markdown", "http://daringfireball.net/projects/markdown/" ,{:title=>nil}),
292
- md_ref_def("latex", "http://en.wikipedia.org/wiki/LaTeX" ,{:title=>nil}),
293
- md_ref_def("lyx", "http://www.lyx.org" ,{:title=>nil}),
294
- md_ref_def("impress", "http://www.openoffice.org/product/impress.html" ,{:title=>nil}),
295
- md_ref_def("ooolatex", "http://ooolatex.sourceforge.net/" ,{:title=>nil}),
296
- md_ref_def("texpoint", "http://texpoint.necula.org/" ,{:title=>nil}),
297
- md_ref_def("jabref", "http://jabref.sourceforge.net/" ,{:title=>nil}),
298
- md_ref_def("camino", "http://www.caminobrowser.org/" ,{:title=>nil}),
299
- md_ref_def("switch", "http://www.apple.com/getamac/" ,{:title=>nil}),
300
- md_ref_def("textmate", "http://www.apple.com/getamac/" ,{:title=>nil}),
301
- md_ref_def("cmake", "http://www.cmake.org/" ,{:title=>nil}),
302
- md_ref_def("xfig", "http://www.xfig.org/" ,{:title=>nil}),
303
- md_ref_def("jfig", "http://tams-www.informatik.uni-hamburg.de/applets/jfig/" ,{:title=>nil}),
304
- md_ref_def("subversion", "http://subversion.tigris.org" ,{:title=>nil}),
305
- md_ref_def("jbuilder", "http://www.borland.com/us/products/jbuilder/index.html" ,{:title=>nil}),
306
- md_ref_def("flickr", "http://www.flickr.com/" ,{:title=>nil}),
307
- md_ref_def("myflickr", "http://www.flickr.com/photos/censi" ,{:title=>nil}),
308
- md_ref_def("bibconverter", "http://www.bibconverter.net/ieeexplore/" ,{:title=>nil}),
309
- md_ref_def("autotools", "http://sources.redhat.com/autobook/" ,{:title=>nil}),
310
- md_ref_def("jedit", "http://www.jedit.org/" ,{:title=>nil}),
311
- md_ref_def("qt", "http://www.trolltech.no/" ,{:title=>nil}),
312
- md_ref_def("gsl", "http://www.gnu.org/software/gsl/" ,{:title=>nil}),
313
- md_ref_def("magick", "http://www.imagemagick.org/Magick++/" ,{:title=>nil}),
314
- md_ref_def("cairo", "http://cairographics.org/" ,{:title=>nil}),
315
- md_ref_def("boost", "http://www.boost.org/" ,{:title=>nil}),
316
- md_ref_def("markdown", "http://en.wikipedia.org/wiki/Markdown" ,{:title=>nil}),
317
- md_ref_def("trac", "http://trac.edgewall.org/" ,{:title=>nil}),
318
- md_ref_def("mutopia", "http://www.mutopiaproject.org/" ,{:title=>nil}),
319
- md_ref_def("liberliber", "http://www.liberliber.it/" ,{:title=>nil}),
320
- md_ref_def("gutenberg", "http://www.gutenberg.org/" ,{:title=>nil}),
321
- md_ref_def("java-generics", "http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html" ,{:title=>nil})
322
- ] , {:subject=>"Software not painful to use", :archive=>false, :order=>"-9.5", :date=>"Nov 20 2006", :inmenu=>true, :subject_short=>"painless software", :topic=>"/misc/coolsw"})
277
+ ": ",
278
+ md_link(["flickr"],"flickr"),
279
+ " exposes an API you can use."
280
+ ],{:want_my_paragraph=>false},[])
281
+ ],{},[]),
282
+ md_ref_def("firefox", "http://getfirefox.com/", {:title=>nil}),
283
+ md_ref_def("gmail", "http://gmail.com/", {:title=>nil}),
284
+ md_ref_def("bloglines", "http://bloglines.com/", {:title=>nil}),
285
+ md_ref_def("wikipedia", "http://en.wikipedia.org/", {:title=>nil}),
286
+ md_ref_def("ruby", "http://www.ruby-lang.org/", {:title=>nil}),
287
+ md_ref_def("poignant", "http://poignantguide.net/ruby/", {:title=>nil}),
288
+ md_ref_def("webgen", "http://webgen.rubyforge.org/", {:title=>nil}),
289
+ md_ref_def("markdown", "http://daringfireball.net/projects/markdown/", {:title=>nil}),
290
+ md_ref_def("latex", "http://en.wikipedia.org/wiki/LaTeX", {:title=>nil}),
291
+ md_ref_def("lyx", "http://www.lyx.org", {:title=>nil}),
292
+ md_ref_def("impress", "http://www.openoffice.org/product/impress.html", {:title=>nil}),
293
+ md_ref_def("ooolatex", "http://ooolatex.sourceforge.net/", {:title=>nil}),
294
+ md_ref_def("texpoint", "http://texpoint.necula.org/", {:title=>nil}),
295
+ md_ref_def("jabref", "http://jabref.sourceforge.net/", {:title=>nil}),
296
+ md_ref_def("camino", "http://www.caminobrowser.org/", {:title=>nil}),
297
+ md_ref_def("switch", "http://www.apple.com/getamac/", {:title=>nil}),
298
+ md_ref_def("textmate", "http://www.apple.com/getamac/", {:title=>nil}),
299
+ md_ref_def("cmake", "http://www.cmake.org/", {:title=>nil}),
300
+ md_ref_def("xfig", "http://www.xfig.org/", {:title=>nil}),
301
+ md_ref_def("jfig", "http://tams-www.informatik.uni-hamburg.de/applets/jfig/", {:title=>nil}),
302
+ md_ref_def("subversion", "http://subversion.tigris.org", {:title=>nil}),
303
+ md_ref_def("jbuilder", "http://www.borland.com/us/products/jbuilder/index.html", {:title=>nil}),
304
+ md_ref_def("flickr", "http://www.flickr.com/", {:title=>nil}),
305
+ md_ref_def("myflickr", "http://www.flickr.com/photos/censi", {:title=>nil}),
306
+ md_ref_def("bibconverter", "http://www.bibconverter.net/ieeexplore/", {:title=>nil}),
307
+ md_ref_def("autotools", "http://sources.redhat.com/autobook/", {:title=>nil}),
308
+ md_ref_def("jedit", "http://www.jedit.org/", {:title=>nil}),
309
+ md_ref_def("qt", "http://www.trolltech.no/", {:title=>nil}),
310
+ md_ref_def("gsl", "http://www.gnu.org/software/gsl/", {:title=>nil}),
311
+ md_ref_def("magick", "http://www.imagemagick.org/Magick++/", {:title=>nil}),
312
+ md_ref_def("cairo", "http://cairographics.org/", {:title=>nil}),
313
+ md_ref_def("boost", "http://www.boost.org/", {:title=>nil}),
314
+ md_ref_def("markdown", "http://en.wikipedia.org/wiki/Markdown", {:title=>nil}),
315
+ md_ref_def("trac", "http://trac.edgewall.org/", {:title=>nil}),
316
+ md_ref_def("mutopia", "http://www.mutopiaproject.org/", {:title=>nil}),
317
+ md_ref_def("liberliber", "http://www.liberliber.it/", {:title=>nil}),
318
+ md_ref_def("gutenberg", "http://www.gutenberg.org/", {:title=>nil}),
319
+ md_ref_def("java-generics", "http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html", {:title=>nil})
320
+ ],{},[])
323
321
  *** Output of to_html ***
324
322
 
325
323
  <h3 id='general'>General</h3>
@@ -351,15 +349,13 @@ md_el(:document,[
351
349
 
352
350
  <li>
353
351
  <p><em>Scripting language</em>: <a href='http://www.ruby-lang.org/'>Ruby</a> is Japanese pragmatism (and has a <a href='http://poignantguide.net/ruby/'>poignant</a> guide). Python, you say? Python is too academic and snob:</p>
354
-
355
352
  <pre><code>$ python
356
353
  Python 2.4.1 (\#1, Jun 4 2005, 00:54:33)
357
354
  Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
358
355
  &gt;&gt;&gt; exit
359
356
  &apos;Use Ctrl-D (i.e. EOF) to exit.&apos;
360
357
  &gt;&gt;&gt; quit
361
- &apos;Use Ctrl-D (i.e. EOF) to exit.&apos;</code></pre>
362
- </li>
358
+ &apos;Use Ctrl-D (i.e. EOF) to exit.&apos;</code></pre></li>
363
359
 
364
360
  <li>
365
361
  <p><em>Java IDE</em>: <a href='http://www.borland.com/us/products/jbuilder/index.html'>JBuilder</a> is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained <a href='http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html'>generics</a> and got opensourced.</p>
@@ -370,7 +366,7 @@ Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;licen
370
366
  </li>
371
367
 
372
368
  <li>
373
- <p><em>C</em>+ libraries<em>: </em> <a href='http://www.trolltech.no/'>QT</a> for GUIs. * <a href='http://www.gnu.org/software/gsl/'>GSL</a> for math. * <a href='http://www.imagemagick.org/Magick++/'>Magick++</a> for manipulating images. * <a href='http://cairographics.org/'>Cairo</a> for creating PDFs. * <a href='http://www.boost.org/'>Boost</a> for just about everything else.</p>
369
+ <p><em>C++ libraries</em>: * <a href='http://www.trolltech.no/'>QT</a> for GUIs. * <a href='http://www.gnu.org/software/gsl/'>GSL</a> for math. * <a href='http://www.imagemagick.org/Magick++/'>Magick++</a> for manipulating images. * <a href='http://cairographics.org/'>Cairo</a> for creating PDFs. * <a href='http://www.boost.org/'>Boost</a> for just about everything else.</p>
374
370
  </li>
375
371
  </ul>
376
372
 
@@ -437,10 +433,10 @@ Type "help", "copyright", "credits" or "license" for more information.
437
433
  \item {\em Java IDE}: \href{http://www.borland.com/us/products/jbuilder/index.html}{JBuilder} is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained \href{http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html}{generics} and got opensourced.
438
434
 
439
435
 
440
- \item {\em Mark-up language}: HTML is so 2001, why don't you take at look at \href{http://en.wikipedia.org/wiki/Markdown}{Markdown}? \href{data/misc_markdown.png}{Look at the source of this page}.
436
+ \item {\em Mark-up language}: HTML is so 2001, why don't you take at look at \href{http://en.wikipedia.org/wiki/Markdown}{Markdown}? .
441
437
 
442
438
 
443
- \item {\em C}+ libraries{\em : } \href{http://www.trolltech.no/}{QT} for GUIs. * \href{http://www.gnu.org/software/gsl/}{GSL} for math. * \href{http://www.imagemagick.org/Magick++/}{Magick++} for manipulating images. * \href{http://cairographics.org/}{Cairo} for creating PDFs. * \href{http://www.boost.org/}{Boost} for just about everything else.
439
+ \item {\em C++ libraries}: * \href{http://www.trolltech.no/}{QT} for GUIs. * \href{http://www.gnu.org/software/gsl/}{GSL} for math. * \href{http://www.imagemagick.org/Magick++/}{Magick++} for manipulating images. * \href{http://cairographics.org/}{Cairo} for creating PDFs. * \href{http://www.boost.org/}{Boost} for just about everything else.
444
440
 
445
441
 
446
442
 
@@ -466,10 +462,56 @@ Type "help", "copyright", "credits" or "license" for more information.
466
462
 
467
463
  \end{itemize}
468
464
 
465
+ *** Output of to_md ***
466
+ General-perating System: Mac OS X: heaven,
467
+ after the purgatory of Linux and
468
+ the hell of Windows.
469
+ -rowser: Firefox. On a Mac, Camino.
470
+ -mail: GMail, "search, don't sort"
471
+ really works.
472
+ -ext Editor: TextMate, you have to
473
+ buy it, but it's worth every penny.
474
+ There are rumours that it's been
475
+ converting (recovering) Emacs users
476
+ (addicts). Unfortunately, it's Mac
477
+ only. An alternative is jedit(GPL,
478
+ Java).
479
+
480
+ Development-Build system: cmake, throw the autotools away.
481
+ -Source code control system: ditch CVS for subversion.
482
+ -Project management: Trac tracks everything.
483
+ -Scripting language: Ruby is Japanese pragmatism (and has a poignant guide). Python, you say? Python is too academic and snob:
484
+ -Java IDE: JBuilder is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained generics and got opensourced.
485
+ -Mark-up language: HTML is so 2001, why don't you take at look at Markdown? Look at the source of this page.
486
+ -C++ libraries: * QT for GUIs. * GSL for math. * Magick++ for manipulating images. * Cairo for creating PDFs. * Boost for just about everything else.
487
+
488
+ Research-riting papers: LaTeX
489
+ -Writing papers & enjoying the process
490
+ : LyX
491
+ -andsome figures in your papers:
492
+ xfigor, better, jfig.
493
+ -The occasional presentation with many graphical content
494
+ : OpenOffice Impress(using the
495
+ OOOlatex plugin); the alternative
496
+ is PowerPoint with the TexPoint
497
+ plugin.
498
+ -anaging BibTeX: jabref:
499
+ multi-platform, for all your bibtex
500
+ needs.
501
+ -EEExplore and BibTeX: convert
502
+ citations using BibConverter.
503
+
504
+ Cool websites-est site in the wwworld: Wikipedia
505
+ -utopiafor sheet music;
506
+ the Gutenberg Projectfor books;
507
+ LiberLiberfor books in italian.
508
+ -logs: Bloglines
509
+ -haring photos: flickrexposes an
510
+ API you can use.
511
+
512
+
469
513
  *** Output of to_s ***
470
- GeneralOperating System : Mac OS X: heaven, after the purgatory of Linux and the hell of Windows.Browser: Firefox. On a Mac, Camino.Email: GMail, "search, don't sort" really works.Text Editor: TextMate, you have to buy it, but it's worth every penny. There are rumours that it's been converting (recovering) Emacs users (addicts). Unfortunately, it's Mac only. An alternative is jedit (GPL, Java).DevelopmentBuild system: cmake, throw the autotools away.Source code control system: ditch CVS for subversion.Project management: Trac tracks everything.Scripting language: Ruby is Japanese pragmatism (and has a poignant guide). Python, you say? Python is too academic and snob:Java IDE: JBuilder is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained generics and got opensourced.Mark-up language: HTML is so 2001, why don't you take at look at Markdown? Look at the source of this page.C+ libraries: QT for GUIs. * GSL for math. * Magick++ for manipulating images. * Cairo for creating PDFs. * Boost for just about everything else.ResearchWriting papers: LaTeXWriting papers & enjoying the process: LyXHandsome figures in your papers: xfig or, better, jfig.The occasional presentation with many graphical content: OpenOffice Impress (using the OOOlatex plugin); the alternative is PowerPoint with the TexPoint plugin.Managing BibTeX: jabref: multi-platform, for all your bibtex needs.IEEExplore and BibTeX: convert citations using BibConverter.Cool websitesBest site in the wwworld: WikipediaMutopia for sheet music; the Gutenberg Project for books; LiberLiber for books in italian.Blogs: BloglinesSharing photos: flickr exposes an API you can use.
471
- *** Output of to_s ***
472
- GeneralOperating System : Mac OS X: heaven, after the purgatory of Linux and the hell of Windows.Browser: Firefox. On a Mac, Camino.Email: GMail, "search, don't sort" really works.Text Editor: TextMate, you have to buy it, but it's worth every penny. There are rumours that it's been converting (recovering) Emacs users (addicts). Unfortunately, it's Mac only. An alternative is jedit (GPL, Java).DevelopmentBuild system: cmake, throw the autotools away.Source code control system: ditch CVS for subversion.Project management: Trac tracks everything.Scripting language: Ruby is Japanese pragmatism (and has a poignant guide). Python, you say? Python is too academic and snob:Java IDE: JBuilder is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained generics and got opensourced.Mark-up language: HTML is so 2001, why don't you take at look at Markdown? Look at the source of this page.C+ libraries: QT for GUIs. * GSL for math. * Magick++ for manipulating images. * Cairo for creating PDFs. * Boost for just about everything else.ResearchWriting papers: LaTeXWriting papers & enjoying the process: LyXHandsome figures in your papers: xfig or, better, jfig.The occasional presentation with many graphical content: OpenOffice Impress (using the OOOlatex plugin); the alternative is PowerPoint with the TexPoint plugin.Managing BibTeX: jabref: multi-platform, for all your bibtex needs.IEEExplore and BibTeX: convert citations using BibConverter.Cool websitesBest site in the wwworld: WikipediaMutopia for sheet music; the Gutenberg Project for books; LiberLiber for books in italian.Blogs: BloglinesSharing photos: flickr exposes an API you can use.
514
+ GeneralOperating System : Mac OS X: heaven, after the purgatory of Linux and the hell of Windows.Browser: Firefox. On a Mac, Camino.Email: GMail, "search, don't sort" really works.Text Editor: TextMate, you have to buy it, but it's worth every penny. There are rumours that it's been converting (recovering) Emacs users (addicts). Unfortunately, it's Mac only. An alternative is jedit (GPL, Java).DevelopmentBuild system: cmake, throw the autotools away.Source code control system: ditch CVS for subversion.Project management: Trac tracks everything.Scripting language: Ruby is Japanese pragmatism (and has a poignant guide). Python, you say? Python is too academic and snob:Java IDE: JBuilder is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained generics and got opensourced.Mark-up language: HTML is so 2001, why don't you take at look at Markdown? Look at the source of this page.C++ libraries: * QT for GUIs. * GSL for math. * Magick++ for manipulating images. * Cairo for creating PDFs. * Boost for just about everything else.ResearchWriting papers: LaTeXWriting papers & enjoying the process: LyXHandsome figures in your papers: xfig or, better, jfig.The occasional presentation with many graphical content: OpenOffice Impress (using the OOOlatex plugin); the alternative is PowerPoint with the TexPoint plugin.Managing BibTeX: jabref: multi-platform, for all your bibtex needs.IEEExplore and BibTeX: convert citations using BibConverter.Cool websitesBest site in the wwworld: WikipediaMutopia for sheet music; the Gutenberg Project for books; LiberLiber for books in italian.Blogs: BloglinesSharing photos: flickr exposes an API you can use.
473
515
  *** EOF ***
474
516
 
475
517
 
@@ -566,186 +608,184 @@ Archive: no
566
608
  Date: Nov 20 2006
567
609
  Order: -9.5
568
610
  inMenu: true</p
569
- ><h3>General</h3
570
- ><ul>
611
+ ><h3>General</h3
612
+ ><ul>
571
613
  <li
572
- ><em>Operating System</em
573
- > : <a href='http://www.apple.com/getamac/'>Mac OS X</a
574
- >: heaven, after the purgatory of Linux
614
+ ><em>Operating System</em
615
+ > : <a href='http://www.apple.com/getamac/'>Mac OS X</a
616
+ >: heaven, after the purgatory of Linux
575
617
  and the hell of Windows.</li
576
- >
618
+ >
577
619
  <li
578
- ><em>Browser</em
579
- >: <a href='http://getfirefox.com/'>Firefox</a
580
- >. On a Mac, <a href='http://www.caminobrowser.org/'>Camino</a
581
- >.</li
582
- >
620
+ ><em>Browser</em
621
+ >: <a href='http://getfirefox.com/'>Firefox</a
622
+ >. On a Mac, <a href='http://www.caminobrowser.org/'>Camino</a
623
+ >.</li
624
+ >
583
625
  <li
584
- ><em>Email</em
585
- >: <a href='http://gmail.com/'>GMail</a
586
- >, "search, don't sort" really works.</li
587
- >
626
+ ><em>Email</em
627
+ >: <a href='http://gmail.com/'>GMail</a
628
+ >, "search, don't sort" really works.</li
629
+ >
588
630
  <li
589
- ><em>Text Editor</em
590
- >: <a href='http://www.apple.com/getamac/'>TextMate</a
591
- >, you have to buy it, but it's worth every
631
+ ><em>Text Editor</em
632
+ >: <a href='http://www.apple.com/getamac/'>TextMate</a
633
+ >, you have to buy it, but it's worth every
592
634
  penny. There are rumours that it's been converting (recovering) Emacs
593
635
  users (addicts). Unfortunately, it's Mac only. An alternative is
594
636
  <a href='http://www.jedit.org/'>jedit</a
595
- > (GPL, Java).</li
596
- >
637
+ > (GPL, Java).</li
638
+ >
597
639
  </ul
598
- ><h3>Development</h3
599
- ><ul>
640
+ ><h3>Development</h3
641
+ ><ul>
600
642
  <li
601
- ><em>Build system</em
602
- >: <a href='http://www.cmake.org/'>cmake</a
603
- >, throw the <a href='http://sources.redhat.com/autobook/'>autotools</a
604
- > away.</li
605
- >
643
+ ><em>Build system</em
644
+ >: <a href='http://www.cmake.org/'>cmake</a
645
+ >, throw the <a href='http://sources.redhat.com/autobook/'>autotools</a
646
+ > away.</li
647
+ >
606
648
  <li
607
- ><em>Source code control system</em
608
- >: ditch CVS for <a href='http://subversion.tigris.org'>subversion</a
609
- >.</li
610
- >
649
+ ><em>Source code control system</em
650
+ >: ditch CVS for <a href='http://subversion.tigris.org'>subversion</a
651
+ >.</li
652
+ >
611
653
  <li
612
- ><em>Project management</em
613
- >: <a href='http://trac.edgewall.org/'>Trac</a
614
- > tracks everything.</li
615
- >
654
+ ><em>Project management</em
655
+ >: <a href='http://trac.edgewall.org/'>Trac</a
656
+ > tracks everything.</li
657
+ >
616
658
  <li
617
- ><p
618
- ><em>Scripting language</em
619
- >: <a href='http://www.ruby-lang.org/'>Ruby</a
620
- > is Japanese pragmatism (and has a <a href='http://poignantguide.net/ruby/'>poignant</a
621
- > guide).
659
+ ><p
660
+ ><em>Scripting language</em
661
+ >: <a href='http://www.ruby-lang.org/'>Ruby</a
662
+ > is Japanese pragmatism (and has a <a href='http://poignantguide.net/ruby/'>poignant</a
663
+ > guide).
622
664
  Python, you say? Python is too academic and snob:</p
623
- >
624
-
625
- <p>$ python <br/
626
- >
627
- Python 2.4.1 (#1, Jun 4 2005, 00:54:33)
628
- Type "help", "copyright", "credits" or "license" for more information.</p
629
- >
630
-
665
+ >
666
+ <p>$ python <br
667
+ />
668
+ Python 2.4.1 (#1, Jun 4 2005, 00:54:33)
669
+ Type "help", "copyright", "credits" or "license" for more information.</p
670
+ >
631
671
  <blockquote>
632
- <blockquote>
633
- <blockquote>
634
- <p>exit
635
- 'Use Ctrl-D (i.e. EOF) to exit.'
636
- quit
637
- 'Use Ctrl-D (i.e. EOF) to exit.'</p
638
- >
639
- </blockquote
640
- >
641
- </blockquote
642
- >
672
+ <blockquote>
673
+ <blockquote>
674
+ <p>exit
675
+ 'Use Ctrl-D (i.e. EOF) to exit.'
676
+ quit
677
+ 'Use Ctrl-D (i.e. EOF) to exit.'</p
678
+ >
679
+ </blockquote
680
+ >
681
+ </blockquote
682
+ >
643
683
  </blockquote
644
- ></li
645
- >
684
+ ></li
685
+ >
646
686
  <li
647
- ><p
648
- ><em>Java IDE</em
649
- >: <a href='http://www.borland.com/us/products/jbuilder/index.html'>JBuilder</a
650
- > is great software and has a free version (IMHO better than Eclipse). Java
687
+ ><p
688
+ ><em>Java IDE</em
689
+ >: <a href='http://www.borland.com/us/products/jbuilder/index.html'>JBuilder</a
690
+ > is great software and has a free version (IMHO better than Eclipse). Java
651
691
  is not a pain anymore since it gained <a href='http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html'>generics</a
652
- > and got opensourced.</p
653
- ></li
654
- >
692
+ > and got opensourced.</p
693
+ ></li
694
+ >
655
695
  <li
656
- ><em>Mark-up language</em
657
- >: HTML is so 2001, why don't you take at look at <a href='http://en.wikipedia.org/wiki/Markdown'>Markdown</a
658
- >? <a href='data/misc_markdown.png'>Look at the source of this page</a
659
- >.</li
660
- >
696
+ ><em>Mark-up language</em
697
+ >: HTML is so 2001, why don't you take at look at <a href='http://en.wikipedia.org/wiki/Markdown'>Markdown</a
698
+ >? <a href='data/misc_markdown.png'>Look at the source of this page</a
699
+ >.</li
700
+ >
661
701
  <li
662
- ><em>C++ libraries</em
663
- >:
702
+ ><em>C++ libraries</em
703
+ >:
664
704
  <ul>
665
705
  <li
666
- ><a href='http://www.trolltech.no/'>QT</a
667
- > for GUIs.</li
668
- >
706
+ ><a href='http://www.trolltech.no/'>QT</a
707
+ > for GUIs.</li
708
+ >
669
709
  <li
670
- ><a href='http://www.gnu.org/software/gsl/'>GSL</a
671
- > for math.</li
672
- >
710
+ ><a href='http://www.gnu.org/software/gsl/'>GSL</a
711
+ > for math.</li
712
+ >
673
713
  <li
674
- ><a href='http://www.imagemagick.org/Magick++/'>Magick++</a
675
- > for manipulating images.</li
676
- >
714
+ ><a href='http://www.imagemagick.org/Magick++/'>Magick++</a
715
+ > for manipulating images.</li
716
+ >
677
717
  <li
678
- ><a href='http://cairographics.org/'>Cairo</a
679
- > for creating PDFs.</li
680
- >
718
+ ><a href='http://cairographics.org/'>Cairo</a
719
+ > for creating PDFs.</li
720
+ >
681
721
  <li
682
- ><a href='http://www.boost.org/'>Boost</a
683
- > for just about everything else.</li
684
- >
722
+ ><a href='http://www.boost.org/'>Boost</a
723
+ > for just about everything else.</li
724
+ >
685
725
  </ul
686
- ></li
687
- >
726
+ ></li
727
+ >
688
728
  </ul
689
- ><h3>Research</h3
690
- ><ul>
729
+ ><h3>Research</h3
730
+ ><ul>
691
731
  <li
692
- ><em>Writing papers</em
693
- >: <a href='http://en.wikipedia.org/wiki/LaTeX'>LaTeX</a
694
- ></li
695
- >
732
+ ><em>Writing papers</em
733
+ >: <a href='http://en.wikipedia.org/wiki/LaTeX'>LaTeX</a
734
+ ></li
735
+ >
696
736
  <li
697
- ><em>Writing papers &amp; enjoying the process</em
698
- >: <a href='http://www.lyx.org'>LyX</a
699
- ></li
700
- >
737
+ ><em>Writing papers &amp; enjoying the process</em
738
+ >: <a href='http://www.lyx.org'>LyX</a
739
+ ></li
740
+ >
701
741
  <li
702
- ><em>Handsome figures in your papers</em
703
- >: <a href='http://www.xfig.org/'>xfig</a
704
- > or, better, <a href='http://tams-www.informatik.uni-hamburg.de/applets/jfig/'>jfig</a
705
- >.</li
706
- >
742
+ ><em>Handsome figures in your papers</em
743
+ >: <a href='http://www.xfig.org/'>xfig</a
744
+ > or, better, <a href='http://tams-www.informatik.uni-hamburg.de/applets/jfig/'>jfig</a
745
+ >.</li
746
+ >
707
747
  <li
708
- ><em>The occasional presentation with many graphical content</em
709
- >:
748
+ ><em>The occasional presentation with many graphical content</em
749
+ >:
710
750
  <a href='http://www.openoffice.org/product/impress.html'>OpenOffice Impress</a
711
- > (using the <a href='http://ooolatex.sourceforge.net/'>OOOlatex plugin</a
712
- >);
751
+ > (using the <a href='http://ooolatex.sourceforge.net/'>OOOlatex plugin</a
752
+ >);
713
753
  the alternative is PowerPoint with the <a href='http://texpoint.necula.org/'>TexPoint</a
714
- > plugin.</li
715
- >
754
+ > plugin.</li
755
+ >
716
756
  <li
717
- ><em>Managing BibTeX</em
718
- >: <a href='http://jabref.sourceforge.net/'>jabref</a
719
- >: multi-platform, for all your bibtex needs.</li
720
- >
757
+ ><em>Managing BibTeX</em
758
+ >: <a href='http://jabref.sourceforge.net/'>jabref</a
759
+ >: multi-platform, for all your bibtex needs.</li
760
+ >
721
761
  <li
722
- ><em>IEEExplore and BibTeX</em
723
- >: convert citations using <a href='http://www.bibconverter.net/ieeexplore/'>BibConverter</a
724
- >.</li
725
- >
762
+ ><em>IEEExplore and BibTeX</em
763
+ >: convert citations using <a href='http://www.bibconverter.net/ieeexplore/'>BibConverter</a
764
+ >.</li
765
+ >
726
766
  </ul
727
- ><h3>Cool websites</h3
728
- ><ul>
767
+ ><h3>Cool websites</h3
768
+ ><ul>
729
769
  <li
730
- ><em>Best site in the wwworld</em
731
- >: <a href='http://en.wikipedia.org/'>Wikipedia</a
732
- ></li
733
- >
770
+ ><em>Best site in the wwworld</em
771
+ >: <a href='http://en.wikipedia.org/'>Wikipedia</a
772
+ ></li
773
+ >
734
774
  <li
735
- ><a href='http://www.mutopiaproject.org/'>Mutopia</a
736
- > for sheet music; <a href='http://www.gutenberg.org/'>the Gutenberg Project</a
737
- > for books; <a href='http://www.liberliber.it/'>LiberLiber</a
738
- > for books in italian.</li
739
- >
775
+ ><a href='http://www.mutopiaproject.org/'>Mutopia</a
776
+ > for sheet music; <a href='http://www.gutenberg.org/'>the Gutenberg Project</a
777
+ > for books; <a href='http://www.liberliber.it/'>LiberLiber</a
778
+ > for books in italian.</li
779
+ >
740
780
  <li
741
- ><em>Blogs</em
742
- >: <a href='http://bloglines.com/'>Bloglines</a
743
- ></li
744
- >
781
+ ><em>Blogs</em
782
+ >: <a href='http://bloglines.com/'>Bloglines</a
783
+ ></li
784
+ >
745
785
  <li
746
- ><em>Sharing photos</em
747
- >: <a href='http://www.flickr.com/'>flickr</a
748
- > exposes an API you can use.</li
749
- >
786
+ ><em>Sharing photos</em
787
+ >: <a href='http://www.flickr.com/'>flickr</a
788
+ > exposes an API you can use.</li
789
+ >
750
790
  </ul
751
- >
791
+ >