roebe 0.5.191

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2889) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +5868 -0
  3. data/bin/blinking_cursor +7 -0
  4. data/bin/browser +7 -0
  5. data/bin/colourized_tokenitor1 +7 -0
  6. data/bin/colourized_tokenitor2 +7 -0
  7. data/bin/colourized_tokenitor3 +7 -0
  8. data/bin/colourized_tokenitor4 +7 -0
  9. data/bin/colourized_tokenitor5 +7 -0
  10. data/bin/compare_these_two_directories +7 -0
  11. data/bin/create_file_skeleton +7 -0
  12. data/bin/create_my_directories +7 -0
  13. data/bin/create_wpa_supplicant_build_file +7 -0
  14. data/bin/create_zip +7 -0
  15. data/bin/custom_invoke +28 -0
  16. data/bin/delete_empty_files +7 -0
  17. data/bin/display_gcc_version +7 -0
  18. data/bin/do_a_google_search +7 -0
  19. data/bin/extract_gem_file +7 -0
  20. data/bin/fragment_maker +7 -0
  21. data/bin/generate_fstab_file +7 -0
  22. data/bin/handle_xorg_related_boot_phase +7 -0
  23. data/bin/hello_world +7 -0
  24. data/bin/in +7 -0
  25. data/bin/increment_application_version +7 -0
  26. data/bin/increment_application_version_then_push_the_gem +13 -0
  27. data/bin/install_all_registered_fonts +7 -0
  28. data/bin/install_jruby_addons +7 -0
  29. data/bin/install_my_addons +97 -0
  30. data/bin/install_my_addons.rb +97 -0
  31. data/bin/interactive_file_creator +7 -0
  32. data/bin/java_compile_statically +11 -0
  33. data/bin/kill_firefox +7 -0
  34. data/bin/kill_palemoon +7 -0
  35. data/bin/konsole_title +7 -0
  36. data/bin/larrow +7 -0
  37. data/bin/log10 +7 -0
  38. data/bin/menugenerator +7 -0
  39. data/bin/modify_shebang_header +7 -0
  40. data/bin/openpdf1 +7 -0
  41. data/bin/openpdf2 +7 -0
  42. data/bin/openpdf3 +7 -0
  43. data/bin/openpdf4 +7 -0
  44. data/bin/openpdf5 +7 -0
  45. data/bin/openpdf6 +7 -0
  46. data/bin/openpdf7 +7 -0
  47. data/bin/openpdf8 +7 -0
  48. data/bin/openpdf9 +7 -0
  49. data/bin/passwords +7 -0
  50. data/bin/path_generator +7 -0
  51. data/bin/print_this_unicode_symbol +7 -0
  52. data/bin/quick_colour_test +13 -0
  53. data/bin/rarrow +7 -0
  54. data/bin/rdate +7 -0
  55. data/bin/remove_this_substring_from_all_files +7 -0
  56. data/bin/replace_space_with_underscore +7 -0
  57. data/bin/rfirefox +7 -0
  58. data/bin/rinstall2 +7 -0
  59. data/bin/roebe +7 -0
  60. data/bin/roebe_documentation +7 -0
  61. data/bin/roebeshell +11 -0
  62. data/bin/ruby_cat +7 -0
  63. data/bin/ruby_dhcpcd +7 -0
  64. data/bin/run +7 -0
  65. data/bin/rxinitrc +7 -0
  66. data/bin/set_alias_1 +7 -0
  67. data/bin/set_alias_10 +7 -0
  68. data/bin/set_alias_11 +7 -0
  69. data/bin/set_alias_12 +7 -0
  70. data/bin/set_alias_13 +7 -0
  71. data/bin/set_alias_14 +7 -0
  72. data/bin/set_alias_15 +7 -0
  73. data/bin/set_alias_2 +7 -0
  74. data/bin/set_alias_3 +7 -0
  75. data/bin/set_alias_4 +7 -0
  76. data/bin/set_alias_5 +7 -0
  77. data/bin/set_alias_6 +7 -0
  78. data/bin/set_alias_7 +7 -0
  79. data/bin/set_alias_8 +7 -0
  80. data/bin/set_alias_9 +7 -0
  81. data/bin/set_browser +7 -0
  82. data/bin/setpdf1 +7 -0
  83. data/bin/setpdf2 +7 -0
  84. data/bin/setpdf3 +7 -0
  85. data/bin/setpdf4 +7 -0
  86. data/bin/setpdf5 +7 -0
  87. data/bin/setpdf6 +7 -0
  88. data/bin/setpdf7 +7 -0
  89. data/bin/setpdf8 +7 -0
  90. data/bin/setpdf9 +7 -0
  91. data/bin/show_available_users +7 -0
  92. data/bin/show_ten_aliases +7 -0
  93. data/bin/simple_extractor +9 -0
  94. data/bin/start_lighty +7 -0
  95. data/bin/symlink_directories_from_that_directory_to_the_current_directory +7 -0
  96. data/bin/symlink_everything_from_that_directory_to_this_directory +7 -0
  97. data/bin/symlink_files_from_that_directory_to_the_current_directory +7 -0
  98. data/bin/take_screenshot +7 -0
  99. data/bin/to_binary +7 -0
  100. data/bin/tokenitor +7 -0
  101. data/bin/vim_paradise +7 -0
  102. data/bin/wlan +7 -0
  103. data/bin/word_count +7 -0
  104. data/bin/write_what_into +7 -0
  105. data/bin/yaml_check +7 -0
  106. data/doc/README.gen +5806 -0
  107. data/doc/add_ons_for_ruby/README.md +3 -0
  108. data/doc/add_ons_for_ruby/activerecord.md +99 -0
  109. data/doc/add_ons_for_ruby/ansicolor.md +62 -0
  110. data/doc/add_ons_for_ruby/axlsx.md +60 -0
  111. data/doc/add_ons_for_ruby/bundler.md +20 -0
  112. data/doc/add_ons_for_ruby/byebug.md +14 -0
  113. data/doc/add_ons_for_ruby/camping.md +9 -0
  114. data/doc/add_ons_for_ruby/caxlsx.md +72 -0
  115. data/doc/add_ons_for_ruby/cgi.md +129 -0
  116. data/doc/add_ons_for_ruby/chunkypng.md +19 -0
  117. data/doc/add_ons_for_ruby/classifier.md +7 -0
  118. data/doc/add_ons_for_ruby/coderay.md +82 -0
  119. data/doc/add_ons_for_ruby/daemons.md +92 -0
  120. data/doc/add_ons_for_ruby/dl.md +114 -0
  121. data/doc/add_ons_for_ruby/erb.md +25 -0
  122. data/doc/add_ons_for_ruby/erubis.md +124 -0
  123. data/doc/add_ons_for_ruby/ferret.md +16 -0
  124. data/doc/add_ons_for_ruby/ffi.md +28 -0
  125. data/doc/add_ons_for_ruby/fox_and_fxruby.md +492 -0
  126. data/doc/add_ons_for_ruby/fpdf.md +389 -0
  127. data/doc/add_ons_for_ruby/fpm.md +46 -0
  128. data/doc/add_ons_for_ruby/ftp.md +70 -0
  129. data/doc/add_ons_for_ruby/fxruby.md +14 -0
  130. data/doc/add_ons_for_ruby/gist.md +30 -0
  131. data/doc/add_ons_for_ruby/glimmer-libui.md +43 -0
  132. data/doc/add_ons_for_ruby/gmail.md +22 -0
  133. data/doc/add_ons_for_ruby/gosu.md +12 -0
  134. data/doc/add_ons_for_ruby/graphviz.md +246 -0
  135. data/doc/add_ons_for_ruby/gruff.md +95 -0
  136. data/doc/add_ons_for_ruby/hexapdf.md +66 -0
  137. data/doc/add_ons_for_ruby/highline.md +16 -0
  138. data/doc/add_ons_for_ruby/iconv.md +20 -0
  139. data/doc/add_ons_for_ruby/id3lib.md +173 -0
  140. data/doc/add_ons_for_ruby/inline.md +30 -0
  141. data/doc/add_ons_for_ruby/inotify.md +130 -0
  142. data/doc/add_ons_for_ruby/instiki.md +38 -0
  143. data/doc/add_ons_for_ruby/jruby.md +253 -0
  144. data/doc/add_ons_for_ruby/json.md +64 -0
  145. data/doc/add_ons_for_ruby/kramdown.md +34 -0
  146. data/doc/add_ons_for_ruby/lexer.md +19 -0
  147. data/doc/add_ons_for_ruby/libarchive.md +91 -0
  148. data/doc/add_ons_for_ruby/libburn.md +29 -0
  149. data/doc/add_ons_for_ruby/mail.md +51 -0
  150. data/doc/add_ons_for_ruby/md5reverse.md +10 -0
  151. data/doc/add_ons_for_ruby/mechanize.md +195 -0
  152. data/doc/add_ons_for_ruby/memcache.md +22 -0
  153. data/doc/add_ons_for_ruby/midilib.md +35 -0
  154. data/doc/add_ons_for_ruby/mime.md +15 -0
  155. data/doc/add_ons_for_ruby/minitest.md +39 -0
  156. data/doc/add_ons_for_ruby/misc.md +3 -0
  157. data/doc/add_ons_for_ruby/mongrel.md +68 -0
  158. data/doc/add_ons_for_ruby/mp3info.md +121 -0
  159. data/doc/add_ons_for_ruby/mpd.md +16 -0
  160. data/doc/add_ons_for_ruby/mruby.md +13 -0
  161. data/doc/add_ons_for_ruby/nokogiri.md +32 -0
  162. data/doc/add_ons_for_ruby/opal.md +53 -0
  163. data/doc/add_ons_for_ruby/openid.md +10 -0
  164. data/doc/add_ons_for_ruby/padrino.md +4 -0
  165. data/doc/add_ons_for_ruby/passenger.md +4 -0
  166. data/doc/add_ons_for_ruby/prawn.md +269 -0
  167. data/doc/add_ons_for_ruby/pry.md +85 -0
  168. data/doc/add_ons_for_ruby/puma.md +29 -0
  169. data/doc/add_ons_for_ruby/qt_and_kde.md +793 -0
  170. data/doc/add_ons_for_ruby/rack.md +212 -0
  171. data/doc/add_ons_for_ruby/ragel.md +19 -0
  172. data/doc/add_ons_for_ruby/rails.md +97 -0
  173. data/doc/add_ons_for_ruby/ramaze.md +72 -0
  174. data/doc/add_ons_for_ruby/rbenv.md +13 -0
  175. data/doc/add_ons_for_ruby/redcarpet.md +6 -0
  176. data/doc/add_ons_for_ruby/redcloth.md +11 -0
  177. data/doc/add_ons_for_ruby/redmine.md +8 -0
  178. data/doc/add_ons_for_ruby/rmagick.md +555 -0
  179. data/doc/add_ons_for_ruby/roda.md +6 -0
  180. data/doc/add_ons_for_ruby/rspec.md +12 -0
  181. data/doc/add_ons_for_ruby/rtf.md +74 -0
  182. data/doc/add_ons_for_ruby/rubocop.md +84 -0
  183. data/doc/add_ons_for_ruby/ruby_users.md +23 -0
  184. data/doc/add_ons_for_ruby/rubygame.md +403 -0
  185. data/doc/add_ons_for_ruby/ruport.md +23 -0
  186. data/doc/add_ons_for_ruby/rvm.md +17 -0
  187. data/doc/add_ons_for_ruby/sdl.md +200 -0
  188. data/doc/add_ons_for_ruby/sequel.md +55 -0
  189. data/doc/add_ons_for_ruby/setup.md +92 -0
  190. data/doc/add_ons_for_ruby/shoes.md +7 -0
  191. data/doc/add_ons_for_ruby/sinatra_tutorial/sinatra_tutorial.cgi +7 -0
  192. data/doc/add_ons_for_ruby/sinatra_tutorial/sinatra_tutorial.rb +964 -0
  193. data/doc/add_ons_for_ruby/sinatra_tutorial/sinatra_tutorial.sinatra +56 -0
  194. data/doc/add_ons_for_ruby/slop.md +27 -0
  195. data/doc/add_ons_for_ruby/spreadsheet.md +153 -0
  196. data/doc/add_ons_for_ruby/sqlite.md +115 -0
  197. data/doc/add_ons_for_ruby/systemu.md +21 -0
  198. data/doc/add_ons_for_ruby/thor.md +16 -0
  199. data/doc/add_ons_for_ruby/tk.md +468 -0
  200. data/doc/add_ons_for_ruby/tty.md +9 -0
  201. data/doc/add_ons_for_ruby/tty_box.md +28 -0
  202. data/doc/add_ons_for_ruby/tty_prompt.md +25 -0
  203. data/doc/add_ons_for_ruby/vorbistagger.md +33 -0
  204. data/doc/add_ons_for_ruby/watir.md +30 -0
  205. data/doc/add_ons_for_ruby/webrick.md +399 -0
  206. data/doc/add_ons_for_ruby/whois.md +52 -0
  207. data/doc/add_ons_for_ruby/windows.md +346 -0
  208. data/doc/add_ons_for_ruby/writeexcel.md +67 -0
  209. data/doc/add_ons_for_ruby/wxwidgets.md +3 -0
  210. data/doc/add_ons_for_ruby/xml.md +198 -0
  211. data/doc/add_ons_for_ruby/xosd.md +21 -0
  212. data/doc/add_ons_for_ruby/yard.md +39 -0
  213. data/doc/add_ons_for_ruby/zip.md +67 -0
  214. data/doc/core/abbrev.md +31 -0
  215. data/doc/core/argf.md +26 -0
  216. data/doc/core/argv.md +102 -0
  217. data/doc/core/array.md +1142 -0
  218. data/doc/core/base64.md +7 -0
  219. data/doc/core/basic_object.md +24 -0
  220. data/doc/core/benchmarks_and_profiling.md +87 -0
  221. data/doc/core/bigdecimal.md +13 -0
  222. data/doc/core/binding.md +33 -0
  223. data/doc/core/blocks.md +45 -0
  224. data/doc/core/class.md +43 -0
  225. data/doc/core/closure.md +207 -0
  226. data/doc/core/commandline.md +9 -0
  227. data/doc/core/comparable.md +9 -0
  228. data/doc/core/compiling_ruby_c_code.md +1969 -0
  229. data/doc/core/conditional_requires.md +13 -0
  230. data/doc/core/constants.md +87 -0
  231. data/doc/core/csv.md +55 -0
  232. data/doc/core/dir.md +102 -0
  233. data/doc/core/drb.md +121 -0
  234. data/doc/core/encoding.md +158 -0
  235. data/doc/core/enumerable.md +160 -0
  236. data/doc/core/enumerator.md +38 -0
  237. data/doc/core/env.md +12 -0
  238. data/doc/core/errno.md +24 -0
  239. data/doc/core/error_codes_in_ruby.md +19 -0
  240. data/doc/core/etc.md +95 -0
  241. data/doc/core/eval.md +20 -0
  242. data/doc/core/exceptions_and_errors.md +247 -0
  243. data/doc/core/fiber.md +23 -0
  244. data/doc/core/fiddle.md +20 -0
  245. data/doc/core/file.md +389 -0
  246. data/doc/core/fileutils.md +74 -0
  247. data/doc/core/float.md +33 -0
  248. data/doc/core/garbage_collection_in_ruby.md +75 -0
  249. data/doc/core/gem_and_gemspec.md +447 -0
  250. data/doc/core/getoptlang.md +19 -0
  251. data/doc/core/handling_networks.md +63 -0
  252. data/doc/core/hash.md +485 -0
  253. data/doc/core/hooks.md +47 -0
  254. data/doc/core/imap.md +7 -0
  255. data/doc/core/integer.md +106 -0
  256. data/doc/core/io.md +126 -0
  257. data/doc/core/io_console.md +31 -0
  258. data/doc/core/irb.md +180 -0
  259. data/doc/core/iterators.md +194 -0
  260. data/doc/core/kernel.md +227 -0
  261. data/doc/core/keyword_arguments.md +10 -0
  262. data/doc/core/loops.md +24 -0
  263. data/doc/core/marshal.md +123 -0
  264. data/doc/core/math.md +452 -0
  265. data/doc/core/matrix.md +16 -0
  266. data/doc/core/mechanize.md +3 -0
  267. data/doc/core/methods.md +221 -0
  268. data/doc/core/misc.md +1779 -0
  269. data/doc/core/mkmf.md +164 -0
  270. data/doc/core/module.md +76 -0
  271. data/doc/core/mutex.md +63 -0
  272. data/doc/core/nil.md +14 -0
  273. data/doc/core/object.md +238 -0
  274. data/doc/core/objectspace.md +28 -0
  275. data/doc/core/open3.md +24 -0
  276. data/doc/core/open_uri.md +29 -0
  277. data/doc/core/openssl.md +45 -0
  278. data/doc/core/openstruct.md +67 -0
  279. data/doc/core/optparser.md +234 -0
  280. data/doc/core/pathname.md +49 -0
  281. data/doc/core/performance_considerations_in_ruby.md +31 -0
  282. data/doc/core/pp.md +39 -0
  283. data/doc/core/precedence.md +27 -0
  284. data/doc/core/prime.md +13 -0
  285. data/doc/core/proc.md +131 -0
  286. data/doc/core/process.md +303 -0
  287. data/doc/core/pstore.md +23 -0
  288. data/doc/core/psych.md +7 -0
  289. data/doc/core/pty.md +11 -0
  290. data/doc/core/ractor.md +12 -0
  291. data/doc/core/rake.md +130 -0
  292. data/doc/core/random.md +17 -0
  293. data/doc/core/range.md +25 -0
  294. data/doc/core/rational.md +7 -0
  295. data/doc/core/rbconfig.md +39 -0
  296. data/doc/core/rdoc.md +67 -0
  297. data/doc/core/readline.md +306 -0
  298. data/doc/core/refinements.md +23 -0
  299. data/doc/core/regex.md +667 -0
  300. data/doc/core/reline.md +76 -0
  301. data/doc/core/ripper.md +57 -0
  302. data/doc/core/ruby_and_c.md +8 -0
  303. data/doc/core/rubyvm.md +28 -0
  304. data/doc/core/set.md +26 -0
  305. data/doc/core/shellwords.md +34 -0
  306. data/doc/core/signals.md +32 -0
  307. data/doc/core/singleton.md +47 -0
  308. data/doc/core/sockets.md +137 -0
  309. data/doc/core/splat.md +10 -0
  310. data/doc/core/stderr.md +3 -0
  311. data/doc/core/stdin.md +27 -0
  312. data/doc/core/stdout.md +14 -0
  313. data/doc/core/string.md +854 -0
  314. data/doc/core/stringio.md +54 -0
  315. data/doc/core/stringscanner.md +43 -0
  316. data/doc/core/struct.md +52 -0
  317. data/doc/core/subclassing.md +41 -0
  318. data/doc/core/symbols.md +47 -0
  319. data/doc/core/system.md +3 -0
  320. data/doc/core/tcpsocket.md +14 -0
  321. data/doc/core/telnet.md +35 -0
  322. data/doc/core/tempfile.md +34 -0
  323. data/doc/core/threads.md +127 -0
  324. data/doc/core/time.md +335 -0
  325. data/doc/core/tracepoint.md +7 -0
  326. data/doc/core/unicode.md +5 -0
  327. data/doc/core/unittest.md +8 -0
  328. data/doc/core/unprintable_characters.md +17 -0
  329. data/doc/core/uri.md +14 -0
  330. data/doc/core/xml.md +13 -0
  331. data/doc/core/yaml.md +376 -0
  332. data/doc/core/zlib.md +111 -0
  333. data/doc/deprecations/deprecations.md +60 -0
  334. data/doc/documentation_viewer.cgi +87 -0
  335. data/doc/linux_may_have_issues/linux_may_have_issues.md +92 -0
  336. data/doc/misc/how_to_publish.md +49 -0
  337. data/doc/misc/links.md +19 -0
  338. data/doc/misc/the_initialize_method.md +2 -0
  339. data/doc/misc/the_perfect_book.md +14 -0
  340. data/doc/roebeshell/CONFIGURATION_FOR_THE_ROEBE_SHELL.md +381 -0
  341. data/doc/roebeshell/MANIFESTO_FOR_THE_ROEBE_SHELL_COMPONENT.md +391 -0
  342. data/doc/roebeshell/PHILOSOPHY_OF_THE_ROEBE_SHELL.md +64 -0
  343. data/doc/ruby_on_rails_tutorial/data_types_for_rails_migrations.md +11 -0
  344. data/doc/ruby_on_rails_tutorial/ruby_on_rails_tutorial.cgi +404 -0
  345. data/doc/statistics/statistics.md +98 -0
  346. data/doc/the_ruby_philosophy/the_ruby_philosophy.md +209 -0
  347. data/doc/todo/todo_for_the_roebe_project_on_windows.md +4 -0
  348. data/doc/todo/todo_for_the_roebe_shell.md +741 -0
  349. data/examples/README.md +4 -0
  350. data/examples/date_and_time/is_this_day_part_of_that_range.rb +45 -0
  351. data/examples/gui/fxruby/hello_world.rb +11 -0
  352. data/examples/gui/fxruby/text_editor.rb +51 -0
  353. data/examples/misc/argv_encoding_test.rb +38 -0
  354. data/examples/misc/arrays/center_two_arrays.rb +24 -0
  355. data/examples/misc/forking_example/forking_example.rb +28 -0
  356. data/examples/misc/loops/display_coloured_vertical_bars.rb +10 -0
  357. data/examples/rack/README.md +2 -0
  358. data/examples/rack/all_in_one_rack_example.rb +241 -0
  359. data/examples/rack/hello_world_in_rack.rb +44 -0
  360. data/examples/recursion/README.md +2 -0
  361. data/examples/recursion/quadratic_sum_of_a_number.rb +23 -0
  362. data/examples/recursion/reverse_the_string.rb +31 -0
  363. data/examples/recursion/shift_highest_value.rb +30 -0
  364. data/examples/recursion/shuffle_sort_string.rb +35 -0
  365. data/examples/reline/multiline_editing.rb +21 -0
  366. data/examples/reline/simple_example.rb +39 -0
  367. data/examples/rmagick/001_axes.rb +68 -0
  368. data/examples/rmagick/002_basic_2D_canvas.rb +29 -0
  369. data/examples/rmagick/003_a_walking_duck.rb +42 -0
  370. data/examples/rmagick/004_black_rectangle_with_red_border.rb +37 -0
  371. data/examples/rmagick/A_WALKING_DUCK.gif +0 -0
  372. data/examples/rmagick/foobar.png +0 -0
  373. data/examples/tty_box/all_in_one.rb +33 -0
  374. data/lib/roebe/autoinclude.rb +4 -0
  375. data/lib/roebe/autoinclude_encoding.rb +11 -0
  376. data/lib/roebe/autoinclude_open.rb +3 -0
  377. data/lib/roebe/base/base.rb +29 -0
  378. data/lib/roebe/base/chdir.rb +48 -0
  379. data/lib/roebe/base/colours.rb +671 -0
  380. data/lib/roebe/base/commandline_arguments.rb +120 -0
  381. data/lib/roebe/base/constants.rb +25 -0
  382. data/lib/roebe/base/copy.rb +72 -0
  383. data/lib/roebe/base/editor.rb +18 -0
  384. data/lib/roebe/base/encoding.rb +54 -0
  385. data/lib/roebe/base/env.rb +22 -0
  386. data/lib/roebe/base/esystem.rb +141 -0
  387. data/lib/roebe/base/home_directory_of_user_x.rb +27 -0
  388. data/lib/roebe/base/is_on_roebe.rb +22 -0
  389. data/lib/roebe/base/misc.rb +502 -0
  390. data/lib/roebe/base/next.rb +29 -0
  391. data/lib/roebe/base/opnn.rb +65 -0
  392. data/lib/roebe/base/prototype.rb +528 -0
  393. data/lib/roebe/base/reset.rb +53 -0
  394. data/lib/roebe/base/run.rb +17 -0
  395. data/lib/roebe/base/simp.rb +25 -0
  396. data/lib/roebe/base/support_for_beautiful_url.rb +35 -0
  397. data/lib/roebe/base/symlink.rb +52 -0
  398. data/lib/roebe/base/time.rb +175 -0
  399. data/lib/roebe/base/verbose_truth.rb +22 -0
  400. data/lib/roebe/base/write_what_into.rb +33 -0
  401. data/lib/roebe/browser/README.md +5 -0
  402. data/lib/roebe/browser/browser.rb +26 -0
  403. data/lib/roebe/browser/constants.rb +43 -0
  404. data/lib/roebe/browser/firefox.rb +47 -0
  405. data/lib/roebe/browser/menu.rb +103 -0
  406. data/lib/roebe/browser/misc.rb +367 -0
  407. data/lib/roebe/browser/output_url_then_open_in_browser.rb +175 -0
  408. data/lib/roebe/browser/palemoon.rb +59 -0
  409. data/lib/roebe/browser/reset.rb +47 -0
  410. data/lib/roebe/cat/class.rb +226 -0
  411. data/lib/roebe/cat/method.rb +14 -0
  412. data/lib/roebe/classes/add_irc_quote.rb +132 -0
  413. data/lib/roebe/classes/add_newline_after.rb +124 -0
  414. data/lib/roebe/classes/add_newline_after_n_characters.rb +65 -0
  415. data/lib/roebe/classes/add_this_user_to_the_sudoers_file.rb +67 -0
  416. data/lib/roebe/classes/add_two_binary_numbers.rb +58 -0
  417. data/lib/roebe/classes/add_user_lighty.rb +107 -0
  418. data/lib/roebe/classes/aggregate_all_files_together_from_this_directory.rb +86 -0
  419. data/lib/roebe/classes/aliases.rb +683 -0
  420. data/lib/roebe/classes/all_games.rb +61 -0
  421. data/lib/roebe/classes/all_my_gems.rb +100 -0
  422. data/lib/roebe/classes/alltagsgeschichte.rb +106 -0
  423. data/lib/roebe/classes/alphabetical_sorter.rb +213 -0
  424. data/lib/roebe/classes/apache_configuration_maker.rb +234 -0
  425. data/lib/roebe/classes/append_this.rb +158 -0
  426. data/lib/roebe/classes/append_to_line.rb +141 -0
  427. data/lib/roebe/classes/ascii/README.md +2 -0
  428. data/lib/roebe/classes/ascii/fix_missing_numbers_for_ascii_paradise.rb +96 -0
  429. data/lib/roebe/classes/at.rb +343 -0
  430. data/lib/roebe/classes/audio_information/audio_information.rb +116 -0
  431. data/lib/roebe/classes/auto_rename_file_based_on_its_creation_date.rb +82 -0
  432. data/lib/roebe/classes/auto_rename_file_based_on_time_today.rb +76 -0
  433. data/lib/roebe/classes/autodater.rb +136 -0
  434. data/lib/roebe/classes/automounter.rb +181 -0
  435. data/lib/roebe/classes/available_classes.rb +219 -0
  436. data/lib/roebe/classes/backup_core_system.rb +223 -0
  437. data/lib/roebe/classes/basic_configure.rb +110 -0
  438. data/lib/roebe/classes/batch_generate_all_my_gems.rb +132 -0
  439. data/lib/roebe/classes/become_another_user.rb +86 -0
  440. data/lib/roebe/classes/bezirk.rb +91 -0
  441. data/lib/roebe/classes/birthday_notifications.rb +291 -0
  442. data/lib/roebe/classes/books/books.rb +785 -0
  443. data/lib/roebe/classes/books/finished_books/finished_books.rb +136 -0
  444. data/lib/roebe/classes/books/menu.rb +270 -0
  445. data/lib/roebe/classes/books/sanitize_this_book_path/sanitize_this_book_path.rb +118 -0
  446. data/lib/roebe/classes/burn_iso/burn_iso.rb +262 -0
  447. data/lib/roebe/classes/burn_iso/constants.rb +43 -0
  448. data/lib/roebe/classes/burn_iso/initialize.rb +33 -0
  449. data/lib/roebe/classes/caesar_cipher.rb +88 -0
  450. data/lib/roebe/classes/calendar.rb +369 -0
  451. data/lib/roebe/classes/calendar_maker.rb +61 -0
  452. data/lib/roebe/classes/celsius_to_fahrenheit.rb +195 -0
  453. data/lib/roebe/classes/check_for_bad_blocks.rb +67 -0
  454. data/lib/roebe/classes/check_yaml.rb +71 -0
  455. data/lib/roebe/classes/chmod_current_time.rb +71 -0
  456. data/lib/roebe/classes/clipboard.rb +221 -0
  457. data/lib/roebe/classes/clock.rb +118 -0
  458. data/lib/roebe/classes/colourize_numbers.rb +70 -0
  459. data/lib/roebe/classes/compare_these_two_directories.rb +101 -0
  460. data/lib/roebe/classes/compare_these_two_files.rb +167 -0
  461. data/lib/roebe/classes/compile_kernel.rb +114 -0
  462. data/lib/roebe/classes/config_generator.rb +204 -0
  463. data/lib/roebe/classes/conky.rb +114 -0
  464. data/lib/roebe/classes/conky_rcfile_generator.rb +61 -0
  465. data/lib/roebe/classes/convert_encoding_of_this_file.rb +216 -0
  466. data/lib/roebe/classes/convert_file_into_utf_encoding.rb +89 -0
  467. data/lib/roebe/classes/convert_this_cgi_file_into_a_sinatrafied_application.rb +145 -0
  468. data/lib/roebe/classes/copy_from_glibc.rb +134 -0
  469. data/lib/roebe/classes/copy_here.rb +76 -0
  470. data/lib/roebe/classes/copy_kernel_config.rb +59 -0
  471. data/lib/roebe/classes/copy_these_directories_to.rb +121 -0
  472. data/lib/roebe/classes/correct_gibberish.rb +89 -0
  473. data/lib/roebe/classes/count_characters.rb +66 -0
  474. data/lib/roebe/classes/covid_lethality.rb +243 -0
  475. data/lib/roebe/classes/create_asoundrc_file.rb +66 -0
  476. data/lib/roebe/classes/create_benchmark_file.rb +77 -0
  477. data/lib/roebe/classes/create_desktop_file.rb +236 -0
  478. data/lib/roebe/classes/create_docbook_sgml_dtd_catalog.rb +113 -0
  479. data/lib/roebe/classes/create_file_skeleton/constants.rb +70 -0
  480. data/lib/roebe/classes/create_file_skeleton/create_file_skeleton.rb +470 -0
  481. data/lib/roebe/classes/create_file_skeleton/generate_c_string.rb +31 -0
  482. data/lib/roebe/classes/create_file_skeleton/generate_cpp_string.rb +33 -0
  483. data/lib/roebe/classes/create_file_skeleton/generate_ruby_string.rb +124 -0
  484. data/lib/roebe/classes/create_file_skeleton/reset.rb +56 -0
  485. data/lib/roebe/classes/create_file_skeleton/run.rb +23 -0
  486. data/lib/roebe/classes/create_firefox_extension.rb +178 -0
  487. data/lib/roebe/classes/create_iso.rb +203 -0
  488. data/lib/roebe/classes/create_iso_for_games.rb +307 -0
  489. data/lib/roebe/classes/create_jar_archive.rb +58 -0
  490. data/lib/roebe/classes/create_local_images_yaml_file.rb +84 -0
  491. data/lib/roebe/classes/create_my_directories.rb +208 -0
  492. data/lib/roebe/classes/create_ruby_directory_layout.rb +117 -0
  493. data/lib/roebe/classes/create_zip.rb +118 -0
  494. data/lib/roebe/classes/css_analyzer.rb +125 -0
  495. data/lib/roebe/classes/current_monitor_resolution.rb +107 -0
  496. data/lib/roebe/classes/custom_table/custom_table.rb +198 -0
  497. data/lib/roebe/classes/cut_after_colon.rb +79 -0
  498. data/lib/roebe/classes/cute_emoji.rb +142 -0
  499. data/lib/roebe/classes/daemonize.rb +131 -0
  500. data/lib/roebe/classes/date_sort.rb +149 -0
  501. data/lib/roebe/classes/day_calendar.rb +153 -0
  502. data/lib/roebe/classes/dbus.rb +127 -0
  503. data/lib/roebe/classes/delete_all_directories.rb +100 -0
  504. data/lib/roebe/classes/delete_empty_directories.rb +96 -0
  505. data/lib/roebe/classes/delete_empty_files.rb +158 -0
  506. data/lib/roebe/classes/dhcpcd/README.md +3 -0
  507. data/lib/roebe/classes/dhcpcd/dhcpcd.rb +232 -0
  508. data/lib/roebe/classes/dhcpcd/kill_dhcpcd.rb +75 -0
  509. data/lib/roebe/classes/differences_between_two_directories.rb +140 -0
  510. data/lib/roebe/classes/disable.rb +172 -0
  511. data/lib/roebe/classes/display_gcc_version.rb +135 -0
  512. data/lib/roebe/classes/do_a_google_search.rb +67 -0
  513. data/lib/roebe/classes/do_install.rb +337 -0
  514. data/lib/roebe/classes/done.rb +161 -0
  515. data/lib/roebe/classes/done_and_open.rb +185 -0
  516. data/lib/roebe/classes/doskey_generator.rb +229 -0
  517. data/lib/roebe/classes/downcase_directories.rb +83 -0
  518. data/lib/roebe/classes/downcase_extension.rb +131 -0
  519. data/lib/roebe/classes/download_from_this_url.rb +266 -0
  520. data/lib/roebe/classes/duplicate_files.rb +115 -0
  521. data/lib/roebe/classes/email.rb +886 -0
  522. data/lib/roebe/classes/empty.rb +81 -0
  523. data/lib/roebe/classes/enable.rb +60 -0
  524. data/lib/roebe/classes/enable_autologin.rb +371 -0
  525. data/lib/roebe/classes/english_to_german.rb +128 -0
  526. data/lib/roebe/classes/ethernet.rb +171 -0
  527. data/lib/roebe/classes/euclidian_distance.rb +148 -0
  528. data/lib/roebe/classes/extract_documentation.rb +191 -0
  529. data/lib/roebe/classes/extract_gem_file.rb +208 -0
  530. data/lib/roebe/classes/feet_to_centimetres.rb +106 -0
  531. data/lib/roebe/classes/fetch_url.rb +77 -0
  532. data/lib/roebe/classes/file_filter.rb +143 -0
  533. data/lib/roebe/classes/file_filters/jpg.rb +61 -0
  534. data/lib/roebe/classes/file_parser.rb +126 -0
  535. data/lib/roebe/classes/file_renamer.rb +229 -0
  536. data/lib/roebe/classes/files_that_could_become_apps.rb +91 -0
  537. data/lib/roebe/classes/filter_apache_log.rb +90 -0
  538. data/lib/roebe/classes/find_all_files_encoded_in_iso.rb +95 -0
  539. data/lib/roebe/classes/find_all_files_with_a_question_mark.rb +148 -0
  540. data/lib/roebe/classes/find_duplicate_entries_in_alias_file.rb +191 -0
  541. data/lib/roebe/classes/find_empty_files.rb +90 -0
  542. data/lib/roebe/classes/find_expanded_alias.rb +262 -0
  543. data/lib/roebe/classes/find_out_version_of.rb +186 -0
  544. data/lib/roebe/classes/find_static_libraries.rb +213 -0
  545. data/lib/roebe/classes/fix_mcookie.rb +76 -0
  546. data/lib/roebe/classes/fix_timezone.rb +95 -0
  547. data/lib/roebe/classes/fluxbox/README.md +3 -0
  548. data/lib/roebe/classes/fluxbox/autogenerate_fluxbox_files.rb +20 -0
  549. data/lib/roebe/classes/fluxbox/generate_fluxbox_apps_file.rb +155 -0
  550. data/lib/roebe/classes/fluxbox/generate_fluxbox_keys_file.rb +110 -0
  551. data/lib/roebe/classes/fluxbox/install_fluxbox_style.rb +85 -0
  552. data/lib/roebe/classes/font_installer.rb +139 -0
  553. data/lib/roebe/classes/foto_searcher.rb +353 -0
  554. data/lib/roebe/classes/fotos_f/303/274r_ingrid.rb +53 -0
  555. data/lib/roebe/classes/fragment_maker.rb +141 -0
  556. data/lib/roebe/classes/general_overviewer.rb +269 -0
  557. data/lib/roebe/classes/generate_alsa_conf.rb +133 -0
  558. data/lib/roebe/classes/generate_etc_resolv_conf_file.rb +106 -0
  559. data/lib/roebe/classes/generate_fstab_file/generate_fstab_file.rb +255 -0
  560. data/lib/roebe/classes/generate_gemspec/constants.rb +58 -0
  561. data/lib/roebe/classes/generate_gemspec/generate_gemspec.rb +195 -0
  562. data/lib/roebe/classes/generate_grub_config.rb +186 -0
  563. data/lib/roebe/classes/generate_locales.rb +92 -0
  564. data/lib/roebe/classes/generate_ls_colors.rb +87 -0
  565. data/lib/roebe/classes/generate_master_shell_script.rb +254 -0
  566. data/lib/roebe/classes/generate_nsswitch_conf.rb +95 -0
  567. data/lib/roebe/classes/generate_overview_of_the_locally_available_books.rb +273 -0
  568. data/lib/roebe/classes/generate_protocols.rb +253 -0
  569. data/lib/roebe/classes/generate_rewrite_rules.rb +266 -0
  570. data/lib/roebe/classes/generate_robots_txt_file.rb +97 -0
  571. data/lib/roebe/classes/generate_rtf_file.rb +123 -0
  572. data/lib/roebe/classes/generate_system_values.rb +164 -0
  573. data/lib/roebe/classes/generate_unit_files/README.md +9 -0
  574. data/lib/roebe/classes/generate_unit_files/generate_unit_files.rb +192 -0
  575. data/lib/roebe/classes/generate_xauthority_file.rb +119 -0
  576. data/lib/roebe/classes/generate_xorg_conf/constants.rb +145 -0
  577. data/lib/roebe/classes/generate_xorg_conf/generate_xorg_conf.rb +767 -0
  578. data/lib/roebe/classes/get_dependencies.rb +175 -0
  579. data/lib/roebe/classes/github.rb +60 -0
  580. data/lib/roebe/classes/good_night.rb +72 -0
  581. data/lib/roebe/classes/google_url_cleaner.rb +147 -0
  582. data/lib/roebe/classes/grant_superuser_rights.rb +146 -0
  583. data/lib/roebe/classes/grub/grub_config_generator.rb +176 -0
  584. data/lib/roebe/classes/grub_appender.rb +246 -0
  585. data/lib/roebe/classes/gzip_this_file.rb +86 -0
  586. data/lib/roebe/classes/handle_lighttpd.rb +210 -0
  587. data/lib/roebe/classes/hello_world.rb +60 -0
  588. data/lib/roebe/classes/hex_to_rgb.rb +89 -0
  589. data/lib/roebe/classes/holiday.rb +99 -0
  590. data/lib/roebe/classes/hosts_appender.rb +171 -0
  591. data/lib/roebe/classes/html_form_fetcher.rb +101 -0
  592. data/lib/roebe/classes/icewm/README.md +3 -0
  593. data/lib/roebe/classes/icewm/icewm_keys_generator.rb +162 -0
  594. data/lib/roebe/classes/identical.rb +174 -0
  595. data/lib/roebe/classes/imdb.rb +86 -0
  596. data/lib/roebe/classes/in.rb +156 -0
  597. data/lib/roebe/classes/increment_application_version.rb +306 -0
  598. data/lib/roebe/classes/inhalt.rb +166 -0
  599. data/lib/roebe/classes/inputrc/constants.rb +37 -0
  600. data/lib/roebe/classes/inputrc/inputrc.rb +567 -0
  601. data/lib/roebe/classes/inputrc/misc.rb +11 -0
  602. data/lib/roebe/classes/install_debian_file.rb +167 -0
  603. data/lib/roebe/classes/install_flash/install_flash.rb +179 -0
  604. data/lib/roebe/classes/install_libreoffice/constants.rb +43 -0
  605. data/lib/roebe/classes/install_libreoffice/install_libreoffice.rb +277 -0
  606. data/lib/roebe/classes/install_my_gems.rb +100 -0
  607. data/lib/roebe/classes/install_openssl_certificates.rb +238 -0
  608. data/lib/roebe/classes/install_ruby_project.rb +180 -0
  609. data/lib/roebe/classes/install_wrapper.rb +134 -0
  610. data/lib/roebe/classes/interactive_file_creator.rb +231 -0
  611. data/lib/roebe/classes/into.rb +102 -0
  612. data/lib/roebe/classes/ipaste.rb +88 -0
  613. data/lib/roebe/classes/iso_to_usb.rb +240 -0
  614. data/lib/roebe/classes/java_header.rb +112 -0
  615. data/lib/roebe/classes/java_runner.rb +85 -0
  616. data/lib/roebe/classes/kde/install_this_konsole_theme.rb +87 -0
  617. data/lib/roebe/classes/kde/kde_konsole/constants.rb +54 -0
  618. data/lib/roebe/classes/kde/kde_konsole/help.rb +33 -0
  619. data/lib/roebe/classes/kde/kde_konsole/initialize.rb +40 -0
  620. data/lib/roebe/classes/kde/kde_konsole/kde_konsole.rb +37 -0
  621. data/lib/roebe/classes/kde/kde_konsole/menu.rb +200 -0
  622. data/lib/roebe/classes/kde/kde_konsole/misc.rb +333 -0
  623. data/lib/roebe/classes/kde/kde_konsole/reset.rb +42 -0
  624. data/lib/roebe/classes/kde/kde_konsole/run.rb +22 -0
  625. data/lib/roebe/classes/kde/kde_konsole_send_command.rb +95 -0
  626. data/lib/roebe/classes/kde/kde_servicemenus.rb +83 -0
  627. data/lib/roebe/classes/kde/konsole_new_tab.rb +124 -0
  628. data/lib/roebe/classes/kde/restore_kde.rb +103 -0
  629. data/lib/roebe/classes/kde/return_pid_of_kde_konsole.rb +30 -0
  630. data/lib/roebe/classes/kde/split_kde_konsole_tab_vertically.rb +28 -0
  631. data/lib/roebe/classes/key_value_parser.rb +145 -0
  632. data/lib/roebe/classes/keys_generator/constants.rb +72 -0
  633. data/lib/roebe/classes/keys_generator/keys_generator.rb +328 -0
  634. data/lib/roebe/classes/kill_firefox.rb +126 -0
  635. data/lib/roebe/classes/kill_palemoon.rb +132 -0
  636. data/lib/roebe/classes/last_called_logger/last_called_logger.rb +67 -0
  637. data/lib/roebe/classes/last_line.rb +69 -0
  638. data/lib/roebe/classes/left_hyphen_in_this_file.rb +74 -0
  639. data/lib/roebe/classes/level_subdirectories.rb +126 -0
  640. data/lib/roebe/classes/lighttpd_config_generator.rb +106 -0
  641. data/lib/roebe/classes/lilo_config_generator.rb +403 -0
  642. data/lib/roebe/classes/line_padder.rb +97 -0
  643. data/lib/roebe/classes/lotto/handle_quicktipps.rb +96 -0
  644. data/lib/roebe/classes/lotto/lotto_quicktip.rb +214 -0
  645. data/lib/roebe/classes/make_cookbooks_gem.rb +109 -0
  646. data/lib/roebe/classes/make_gem.rb +280 -0
  647. data/lib/roebe/classes/manipulate_quotes.rb +109 -0
  648. data/lib/roebe/classes/mark_this_directory.rb +76 -0
  649. data/lib/roebe/classes/married_with_children.rb +117 -0
  650. data/lib/roebe/classes/mate_terminal/rename_mate_terminal.rb +56 -0
  651. data/lib/roebe/classes/mbl.rb +318 -0
  652. data/lib/roebe/classes/meal_maker.rb +88 -0
  653. data/lib/roebe/classes/menu_generator/append_to.rb +35 -0
  654. data/lib/roebe/classes/menu_generator/constants.rb +80 -0
  655. data/lib/roebe/classes/menu_generator/menu_generator.rb +623 -0
  656. data/lib/roebe/classes/merge.rb +121 -0
  657. data/lib/roebe/classes/misc/README.md +2 -0
  658. data/lib/roebe/classes/misc/anteile.rb +91 -0
  659. data/lib/roebe/classes/modify_shebang_header/modify_shebang_header.rb +435 -0
  660. data/lib/roebe/classes/modright.rb +110 -0
  661. data/lib/roebe/classes/monthly_activity_on_rubygems.rb +219 -0
  662. data/lib/roebe/classes/mount_dvd.rb +92 -0
  663. data/lib/roebe/classes/mount_iso_file.rb +108 -0
  664. data/lib/roebe/classes/move_content_of_this_directory_to_that_directory_unless_target_already_exists.rb +119 -0
  665. data/lib/roebe/classes/move_file.rb +234 -0
  666. data/lib/roebe/classes/move_mouse.rb +75 -0
  667. data/lib/roebe/classes/mrxvt.rb +140 -0
  668. data/lib/roebe/classes/mrxvt_options.rb +295 -0
  669. data/lib/roebe/classes/my_default_webrick_server.rb +125 -0
  670. data/lib/roebe/classes/my_ip.rb +69 -0
  671. data/lib/roebe/classes/n_directories.rb +98 -0
  672. data/lib/roebe/classes/n_downloads_on_rubygems_org.rb +246 -0
  673. data/lib/roebe/classes/n_files.rb +103 -0
  674. data/lib/roebe/classes/n_fotos.rb +48 -0
  675. data/lib/roebe/classes/n_gems_exist_in_total.rb +136 -0
  676. data/lib/roebe/classes/n_symlinks.rb +125 -0
  677. data/lib/roebe/classes/nano_config.rb +186 -0
  678. data/lib/roebe/classes/nibble_converter.rb +172 -0
  679. data/lib/roebe/classes/non_symlinks.rb +115 -0
  680. data/lib/roebe/classes/number_files.rb +89 -0
  681. data/lib/roebe/classes/number_to_english.rb +167 -0
  682. data/lib/roebe/classes/nutrition.rb +69 -0
  683. data/lib/roebe/classes/nvidia.rb +83 -0
  684. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/constants.rb +38 -0
  685. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/help.rb +27 -0
  686. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/obtain_audio_recordings_from_voice_recorder.rb +610 -0
  687. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/run.rb +22 -0
  688. data/lib/roebe/classes/on_screen_display.rb +320 -0
  689. data/lib/roebe/classes/one_line_passwords.rb +201 -0
  690. data/lib/roebe/classes/open_pdf.rb +293 -0
  691. data/lib/roebe/classes/open_random_book.rb +129 -0
  692. data/lib/roebe/classes/output_random_line.rb +110 -0
  693. data/lib/roebe/classes/output_text_then_assign_to_the_xorg_buffer.rb +114 -0
  694. data/lib/roebe/classes/package_java_compiler.rb +92 -0
  695. data/lib/roebe/classes/pad_via_quotes.rb +63 -0
  696. data/lib/roebe/classes/paragraph_onto_one_line.rb +73 -0
  697. data/lib/roebe/classes/parse_apache_log/constants.rb +55 -0
  698. data/lib/roebe/classes/parse_apache_log/parse_apache_log.rb +331 -0
  699. data/lib/roebe/classes/pascalsches_dreieck.rb +108 -0
  700. data/lib/roebe/classes/passwords.rb +759 -0
  701. data/lib/roebe/classes/path_generator/constants.rb +68 -0
  702. data/lib/roebe/classes/path_generator/misc.rb +332 -0
  703. data/lib/roebe/classes/path_generator/path_generator.rb +31 -0
  704. data/lib/roebe/classes/path_generator/reset.rb +33 -0
  705. data/lib/roebe/classes/percentage_counter.rb +84 -0
  706. data/lib/roebe/classes/permission_ascii_format.rb +228 -0
  707. data/lib/roebe/classes/php_to_ruby.rb +177 -0
  708. data/lib/roebe/classes/pound_to_kg_converter.rb +86 -0
  709. data/lib/roebe/classes/prepend_this.rb +280 -0
  710. data/lib/roebe/classes/prepend_this_line_to_that_file.rb +259 -0
  711. data/lib/roebe/classes/prepend_this_string_to_every_line_of_this_file.rb +197 -0
  712. data/lib/roebe/classes/prepend_todays_date.rb +67 -0
  713. data/lib/roebe/classes/pristine_gems.rb +71 -0
  714. data/lib/roebe/classes/proper_english.rb +115 -0
  715. data/lib/roebe/classes/publish_gem.rb +249 -0
  716. data/lib/roebe/classes/pull_together.rb +126 -0
  717. data/lib/roebe/classes/purge_files_or_directories.rb +67 -0
  718. data/lib/roebe/classes/purge_gmon_out_files.rb +102 -0
  719. data/lib/roebe/classes/purge_ordoc_directories.rb +66 -0
  720. data/lib/roebe/classes/put_all_gems_into_this_project.rb +326 -0
  721. data/lib/roebe/classes/qemu/README.md +2 -0
  722. data/lib/roebe/classes/qemu/qemu.rb +72 -0
  723. data/lib/roebe/classes/quiz.rb +300 -0
  724. data/lib/roebe/classes/ram.rb +160 -0
  725. data/lib/roebe/classes/random_background.rb +208 -0
  726. data/lib/roebe/classes/random_open.rb +110 -0
  727. data/lib/roebe/classes/rbashrc.rb +160 -0
  728. data/lib/roebe/classes/rdate.rb +259 -0
  729. data/lib/roebe/classes/readme_generator/constants.rb +21 -0
  730. data/lib/roebe/classes/readme_generator/initialize.rb +38 -0
  731. data/lib/roebe/classes/readme_generator/misc.rb +548 -0
  732. data/lib/roebe/classes/readme_generator/readme_generator.rb +11 -0
  733. data/lib/roebe/classes/readme_generator/reset.rb +28 -0
  734. data/lib/roebe/classes/readme_generator/run.rb +20 -0
  735. data/lib/roebe/classes/remote_gems.rb +154 -0
  736. data/lib/roebe/classes/remove_bad_fluxbox_styles.rb +108 -0
  737. data/lib/roebe/classes/remove_comments/autoinclude.rb +3 -0
  738. data/lib/roebe/classes/remove_comments/constants.rb +22 -0
  739. data/lib/roebe/classes/remove_comments/remove_comments.rb +214 -0
  740. data/lib/roebe/classes/remove_directory.rb +212 -0
  741. data/lib/roebe/classes/remove_duplicate_lines.rb +101 -0
  742. data/lib/roebe/classes/remove_extension.rb +95 -0
  743. data/lib/roebe/classes/remove_file_extension.rb +106 -0
  744. data/lib/roebe/classes/remove_gems.rb +182 -0
  745. data/lib/roebe/classes/remove_lighty_logs.rb +66 -0
  746. data/lib/roebe/classes/remove_line.rb +172 -0
  747. data/lib/roebe/classes/remove_localhost.rb +355 -0
  748. data/lib/roebe/classes/remove_missing.rb +109 -0
  749. data/lib/roebe/classes/remove_newlines.rb +116 -0
  750. data/lib/roebe/classes/remove_solo_numbers.rb +85 -0
  751. data/lib/roebe/classes/remove_this_substring_from_all_files.rb +70 -0
  752. data/lib/roebe/classes/replace_global_variables_in_this_file.rb +181 -0
  753. data/lib/roebe/classes/replace_space_with_underscore/replace_space_with_underscore.rb +866 -0
  754. data/lib/roebe/classes/replace_what_with.rb +111 -0
  755. data/lib/roebe/classes/report_how_many_classes_exist_for_this_directory.rb +128 -0
  756. data/lib/roebe/classes/report_same_named_files.rb +88 -0
  757. data/lib/roebe/classes/require_everything.rb +155 -0
  758. data/lib/roebe/classes/return_aliases/return_n_aliases.rb +178 -0
  759. data/lib/roebe/classes/return_aliases/return_ten_aliases.rb +78 -0
  760. data/lib/roebe/classes/return_aliases/return_twenty_aliases.rb +79 -0
  761. data/lib/roebe/classes/return_random_image.rb +83 -0
  762. data/lib/roebe/classes/roman_number_converter.rb +92 -0
  763. data/lib/roebe/classes/ruby_cat.rb +139 -0
  764. data/lib/roebe/classes/ruby_header.rb +122 -0
  765. data/lib/roebe/classes/ruby_main.rb +133 -0
  766. data/lib/roebe/classes/ruby_seq.rb +67 -0
  767. data/lib/roebe/classes/ruby_use_config_file.rb +104 -0
  768. data/lib/roebe/classes/ruby_version_switcher.rb +99 -0
  769. data/lib/roebe/classes/run/menu.rb +87 -0
  770. data/lib/roebe/classes/run/run.rb +746 -0
  771. data/lib/roebe/classes/run_each_line_as_esystem.rb +54 -0
  772. data/lib/roebe/classes/rxinitrc/constants.rb +101 -0
  773. data/lib/roebe/classes/rxinitrc/help.rb +40 -0
  774. data/lib/roebe/classes/rxinitrc/run.rb +25 -0
  775. data/lib/roebe/classes/rxinitrc/rxinitrc.rb +531 -0
  776. data/lib/roebe/classes/scan_for_http_links.rb +114 -0
  777. data/lib/roebe/classes/schlafe.rb +101 -0
  778. data/lib/roebe/classes/send_email.rb +170 -0
  779. data/lib/roebe/classes/serve_local_page.rb +280 -0
  780. data/lib/roebe/classes/set_aliases.rb +361 -0
  781. data/lib/roebe/classes/set_background.rb +113 -0
  782. data/lib/roebe/classes/set_chained.rb +79 -0
  783. data/lib/roebe/classes/set_current_iso.rb +76 -0
  784. data/lib/roebe/classes/set_hwclock.rb +67 -0
  785. data/lib/roebe/classes/set_normal_alias_to.rb +584 -0
  786. data/lib/roebe/classes/setup_chrooted_environment.rb +402 -0
  787. data/lib/roebe/classes/shells/generate_etc_shell_file.rb +107 -0
  788. data/lib/roebe/classes/show_appointments.rb +216 -0
  789. data/lib/roebe/classes/show_available_fonts.rb +146 -0
  790. data/lib/roebe/classes/show_available_users.rb +319 -0
  791. data/lib/roebe/classes/show_kernel_modules.rb +88 -0
  792. data/lib/roebe/classes/show_non_symlinks.rb +98 -0
  793. data/lib/roebe/classes/show_only_files.rb +90 -0
  794. data/lib/roebe/classes/show_prime_numbers.rb +122 -0
  795. data/lib/roebe/classes/show_sigint.rb +50 -0
  796. data/lib/roebe/classes/show_ten_aliases.rb +395 -0
  797. data/lib/roebe/classes/show_twenty_aliases.rb +243 -0
  798. data/lib/roebe/classes/simple_boot_script.rb +358 -0
  799. data/lib/roebe/classes/simple_extractor.rb +104 -0
  800. data/lib/roebe/classes/simple_markdown_parser.rb +274 -0
  801. data/lib/roebe/classes/size_of.rb +234 -0
  802. data/lib/roebe/classes/size_of_states.rb +157 -0
  803. data/lib/roebe/classes/skel_maker/constants.rb +65 -0
  804. data/lib/roebe/classes/skel_maker/skel_maker.rb +230 -0
  805. data/lib/roebe/classes/slogans.rb +283 -0
  806. data/lib/roebe/classes/slow_load.rb +62 -0
  807. data/lib/roebe/classes/sorted_output.rb +86 -0
  808. data/lib/roebe/classes/sourcerank.rb +76 -0
  809. data/lib/roebe/classes/special_symlink.rb +97 -0
  810. data/lib/roebe/classes/start_program.rb +74 -0
  811. data/lib/roebe/classes/std_renamer.rb +285 -0
  812. data/lib/roebe/classes/stories.rb +107 -0
  813. data/lib/roebe/classes/story.rb +177 -0
  814. data/lib/roebe/classes/string_colour_parser.rb +165 -0
  815. data/lib/roebe/classes/sum_of_all_numbers.rb +153 -0
  816. data/lib/roebe/classes/supermerger.rb +121 -0
  817. data/lib/roebe/classes/symlink_all_directories_in_this_directory.rb +101 -0
  818. data/lib/roebe/classes/symlink_directories_from_that_directory_to_the_current_directory.rb +178 -0
  819. data/lib/roebe/classes/symlink_directory.rb +104 -0
  820. data/lib/roebe/classes/symlink_everything_from_that_directory_to_this_directory.rb +196 -0
  821. data/lib/roebe/classes/symlink_files_from_that_directory_to_the_current_directory/symlink_files_from_that_directory_to_the_current_directory.rb +271 -0
  822. data/lib/roebe/classes/syntax_checker.rb +200 -0
  823. data/lib/roebe/classes/system_checker.rb +646 -0
  824. data/lib/roebe/classes/take_screenshot.rb +390 -0
  825. data/lib/roebe/classes/tales_from_the_crypt.rb +552 -0
  826. data/lib/roebe/classes/telnet_wrapper.rb +72 -0
  827. data/lib/roebe/classes/terminal.rb +62 -0
  828. data/lib/roebe/classes/terminal_ps1.rb +128 -0
  829. data/lib/roebe/classes/test_for_psych.rb +77 -0
  830. data/lib/roebe/classes/test_openssl.rb +200 -0
  831. data/lib/roebe/classes/test_yaml.rb +70 -0
  832. data/lib/roebe/classes/threshold_splitter.rb +96 -0
  833. data/lib/roebe/classes/tic_tac_toe.rb +326 -0
  834. data/lib/roebe/classes/time/current_time_in_singapore.rb +121 -0
  835. data/lib/roebe/classes/time/display_weekdays.rb +78 -0
  836. data/lib/roebe/classes/time/query_world_time.rb +149 -0
  837. data/lib/roebe/classes/time/set_hardware_clock.rb +158 -0
  838. data/lib/roebe/classes/time/trivial_time_parser.rb +162 -0
  839. data/lib/roebe/classes/to_binary.rb +127 -0
  840. data/lib/roebe/classes/to_buy.rb +216 -0
  841. data/lib/roebe/classes/to_next.rb +139 -0
  842. data/lib/roebe/classes/to_squashfs.rb +83 -0
  843. data/lib/roebe/classes/to_tar_bz2.rb +62 -0
  844. data/lib/roebe/classes/to_tar_gz.rb +61 -0
  845. data/lib/roebe/classes/to_utf.rb +87 -0
  846. data/lib/roebe/classes/today.rb +67 -0
  847. data/lib/roebe/classes/todo_overview.rb +87 -0
  848. data/lib/roebe/classes/todo_sanitizer.rb +168 -0
  849. data/lib/roebe/classes/top_ten_aliases.rb +104 -0
  850. data/lib/roebe/classes/total_pages_in_finished_books.rb +76 -0
  851. data/lib/roebe/classes/translate.rb +295 -0
  852. data/lib/roebe/classes/traurige_oder_fr/303/266hliche_zahl.rb +117 -0
  853. data/lib/roebe/classes/traverse_install.rb +268 -0
  854. data/lib/roebe/classes/treeview.rb +186 -0
  855. data/lib/roebe/classes/turn_ruby_file_into_gem.rb +195 -0
  856. data/lib/roebe/classes/twentyfour_hours_notation.rb +174 -0
  857. data/lib/roebe/classes/umlaut_converter.rb +137 -0
  858. data/lib/roebe/classes/undone.rb +126 -0
  859. data/lib/roebe/classes/unicode_snowman.rb +120 -0
  860. data/lib/roebe/classes/unified_padding.rb +144 -0
  861. data/lib/roebe/classes/unrar.rb +95 -0
  862. data/lib/roebe/classes/upcaser.rb +145 -0
  863. data/lib/roebe/classes/update.rb +376 -0
  864. data/lib/roebe/classes/update_static_html_pages_in_the_directory_containing_my_fotos.rb +73 -0
  865. data/lib/roebe/classes/upload_to_imgur.rb +177 -0
  866. data/lib/roebe/classes/upwards_counter.rb +59 -0
  867. data/lib/roebe/classes/usage.rb +158 -0
  868. data/lib/roebe/classes/usb/automount_usb.rb +82 -0
  869. data/lib/roebe/classes/usb/create_bootable_usb.rb +118 -0
  870. data/lib/roebe/classes/usb/usb_devices.rb +188 -0
  871. data/lib/roebe/classes/use_jruby.rb +68 -0
  872. data/lib/roebe/classes/vte.rb +110 -0
  873. data/lib/roebe/classes/wallpaper.rb +177 -0
  874. data/lib/roebe/classes/wayland_or_xorgserver.rb +69 -0
  875. data/lib/roebe/classes/webfancy_controller.rb +230 -0
  876. data/lib/roebe/classes/wikipedia.rb +99 -0
  877. data/lib/roebe/classes/wlan/eduroam/eduroam.rb +133 -0
  878. data/lib/roebe/classes/wlan/wlan.rb +1304 -0
  879. data/lib/roebe/classes/wochentag_anzeiger.rb +217 -0
  880. data/lib/roebe/classes/word_wrap.rb +67 -0
  881. data/lib/roebe/classes/write_what_into.rb +91 -0
  882. data/lib/roebe/classes/xfce/README.md +2 -0
  883. data/lib/roebe/classes/xfce/set_xfce_wallpaper.rb +93 -0
  884. data/lib/roebe/classes/yaml_check.rb +63 -0
  885. data/lib/roebe/classes/youtube_downloader.rb +157 -0
  886. data/lib/roebe/classes/zenity.rb +319 -0
  887. data/lib/roebe/classes/zoll.rb +88 -0
  888. data/lib/roebe/colours/colours.rb +440 -0
  889. data/lib/roebe/commandline/help.rb +125 -0
  890. data/lib/roebe/commandline/menu.rb +753 -0
  891. data/lib/roebe/commandline/misc.rb +278 -0
  892. data/lib/roebe/commandline/parse_commandline.rb +55 -0
  893. data/lib/roebe/configuration/autoinclude.rb +7 -0
  894. data/lib/roebe/configuration/class/configuration.rb +1010 -0
  895. data/lib/roebe/configuration/module.rb +35 -0
  896. data/lib/roebe/constants/archive_types.rb +26 -0
  897. data/lib/roebe/constants/array_install_these_gem_projects.rb +116 -0
  898. data/lib/roebe/constants/constants.rb +96 -0
  899. data/lib/roebe/constants/emojis.rb +19 -0
  900. data/lib/roebe/constants/file_and_directory_constants.rb +159 -0
  901. data/lib/roebe/constants/home_of_the_user_called_x.rb +14 -0
  902. data/lib/roebe/constants/misc.rb +143 -0
  903. data/lib/roebe/constants/newline.rb +16 -0
  904. data/lib/roebe/constants/roebe.rb +74 -0
  905. data/lib/roebe/constants/www.rb +43 -0
  906. data/lib/roebe/core/README.md +6 -0
  907. data/lib/roebe/core/array.rb +347 -0
  908. data/lib/roebe/core/dir.rb +126 -0
  909. data/lib/roebe/core/enumerable.rb +25 -0
  910. data/lib/roebe/core/file.rb +140 -0
  911. data/lib/roebe/core/fixnum.rb +155 -0
  912. data/lib/roebe/core/float.rb +86 -0
  913. data/lib/roebe/core/hash.rb +48 -0
  914. data/lib/roebe/core/integer.rb +41 -0
  915. data/lib/roebe/core/kernel.rb +82 -0
  916. data/lib/roebe/core/math.rb +61 -0
  917. data/lib/roebe/core/module.rb +91 -0
  918. data/lib/roebe/core/numeric.rb +64 -0
  919. data/lib/roebe/core/object.rb +53 -0
  920. data/lib/roebe/core/proc.rb +10 -0
  921. data/lib/roebe/core/process.rb +27 -0
  922. data/lib/roebe/core/range.rb +18 -0
  923. data/lib/roebe/core/string.rb +651 -0
  924. data/lib/roebe/core/struct.rb +22 -0
  925. data/lib/roebe/core/windows.rb +758 -0
  926. data/lib/roebe/css/project.css +38 -0
  927. data/lib/roebe/custom_methods/README.md +8 -0
  928. data/lib/roebe/custom_methods/constants.rb +53 -0
  929. data/lib/roebe/custom_methods/module.rb +5674 -0
  930. data/lib/roebe/dosbox/README.md +5 -0
  931. data/lib/roebe/dosbox/autoexec.conf +114 -0
  932. data/lib/roebe/dosbox/bios.conf +20 -0
  933. data/lib/roebe/dosbox/cpu.conf +42 -0
  934. data/lib/roebe/dosbox/cycles.conf +41 -0
  935. data/lib/roebe/dosbox/dos.conf +55 -0
  936. data/lib/roebe/dosbox/dosbox.conf +34 -0
  937. data/lib/roebe/dosbox/games.conf +37 -0
  938. data/lib/roebe/dosbox/generate_dosbox_config.rb +150 -0
  939. data/lib/roebe/dosbox/gus.conf +26 -0
  940. data/lib/roebe/dosbox/ipx.conf +14 -0
  941. data/lib/roebe/dosbox/keyboard.conf +17 -0
  942. data/lib/roebe/dosbox/midi.conf +18 -0
  943. data/lib/roebe/dosbox/mixer.conf +26 -0
  944. data/lib/roebe/dosbox/render.conf +31 -0
  945. data/lib/roebe/dosbox/sblaster.conf +38 -0
  946. data/lib/roebe/dosbox/sdl.conf +115 -0
  947. data/lib/roebe/dosbox/serial.conf +22 -0
  948. data/lib/roebe/dosbox/speaker.conf +20 -0
  949. data/lib/roebe/editors/README.md +2 -0
  950. data/lib/roebe/editors/ruby_nano.rb +80 -0
  951. data/lib/roebe/editors/vim_paradise/colours.rb +30 -0
  952. data/lib/roebe/editors/vim_paradise/constants.rb +113 -0
  953. data/lib/roebe/editors/vim_paradise/help.rb +37 -0
  954. data/lib/roebe/editors/vim_paradise/menu.rb +62 -0
  955. data/lib/roebe/editors/vim_paradise/run.rb +22 -0
  956. data/lib/roebe/editors/vim_paradise/vim_paradise.rb +630 -0
  957. data/lib/roebe/emoji/README.md +2 -0
  958. data/lib/roebe/emoji/emoji_table.rb +44 -0
  959. data/lib/roebe/encoding/encoding.rb +113 -0
  960. data/lib/roebe/extensions.rb +23 -0
  961. data/lib/roebe/gemrc/gemrc +19 -0
  962. data/lib/roebe/gui/cgi/interactive_caesar_cipher/interactive_caesar_cipher.cgi +56 -0
  963. data/lib/roebe/gui/cgi/md5_comparer/md5_comparer.cgi +83 -0
  964. data/lib/roebe/gui/glimmer/examples/001_hello_world.rb +8 -0
  965. data/lib/roebe/gui/glimmer/examples/002_basic_table_progress_bar.rb +29 -0
  966. data/lib/roebe/gui/glimmer/examples/003_form_table_example.rb +118 -0
  967. data/lib/roebe/gui/glimmer/microsoft_controller/microsoft_controller.rb +58 -0
  968. data/lib/roebe/gui/gtk3/guess_the_world_capitals/capital.rb +232 -0
  969. data/lib/roebe/gui/gtk3/guess_the_world_capitals/guess_the_world_capitals.rb +178 -0
  970. data/lib/roebe/gui/gtk3/os_installer/os_installer.rb +140 -0
  971. data/lib/roebe/gui/gtk4/interactive_caesar_cipher/interactive_caesar_cipher.rb +119 -0
  972. data/lib/roebe/gui/gtk4/shell/shell.rb +93 -0
  973. data/lib/roebe/gui/libui/foto_searcher/foto_searcher.rb +108 -0
  974. data/lib/roebe/gui/libui/interactive_caesar_cipher/interactive_caesar_cipher.rb +147 -0
  975. data/lib/roebe/gui/libui/md5_comparer/md5_comparer.rb +89 -0
  976. data/lib/roebe/gui/libui/rundll32/rundll32.rb +89 -0
  977. data/lib/roebe/gui/libui/show_aliases/show_aliases.rb +81 -0
  978. data/lib/roebe/gui/libui/show_ten_aliases/show_ten_aliases.rb +99 -0
  979. data/lib/roebe/gui/libui/todo_viewer/todo_viewer.rb +117 -0
  980. data/lib/roebe/gui/libui/wlan_interface/wlan_interface.rb +140 -0
  981. data/lib/roebe/gui/shared_code/calculator/calculator_module.rb +705 -0
  982. data/lib/roebe/gui/shared_code/email/email_module.rb +178 -0
  983. data/lib/roebe/gui/shared_code/interactive_caesar_cipher/interactive_caesar_cipher_module.rb +178 -0
  984. data/lib/roebe/gui/shared_code/simple_clock/simple_clock_module.rb +209 -0
  985. data/lib/roebe/gui/sinatra/md5_comparer/md5_comparer.rb +108 -0
  986. data/lib/roebe/gui/swing/README.md +6 -0
  987. data/lib/roebe/gui/swing/interactive_caesar_cipher/InteractiveCaesarCipher.class +0 -0
  988. data/lib/roebe/gui/swing/interactive_caesar_cipher/InteractiveCaesarCipher.java +87 -0
  989. data/lib/roebe/gui/swing/text_editor/TextEditor.class +0 -0
  990. data/lib/roebe/gui/swing/text_editor/TextEditor.java +248 -0
  991. data/lib/roebe/gui/universal_widgets/README.md +5 -0
  992. data/lib/roebe/gui/universal_widgets/calculator/calculator.rb +177 -0
  993. data/lib/roebe/gui/universal_widgets/code_generator/code_generator.rb +357 -0
  994. data/lib/roebe/gui/universal_widgets/generate_xorg_configuration/generate_xorg_configuration.rb +298 -0
  995. data/lib/roebe/gui/universal_widgets/ifconfig/ifconfig.rb +1265 -0
  996. data/lib/roebe/gui/universal_widgets/install_operating_system/install_operating_system.rb +254 -0
  997. data/lib/roebe/gui/universal_widgets/interactive_caesar_cipher/interactive_caesar_cipher.rb +377 -0
  998. data/lib/roebe/gui/universal_widgets/md5_comparer/md5_comparer.rb +385 -0
  999. data/lib/roebe/gui/universal_widgets/microsoft_controller/README.md +3 -0
  1000. data/lib/roebe/gui/universal_widgets/microsoft_controller/microsoft_controller.rb +552 -0
  1001. data/lib/roebe/gui/universal_widgets/ping_widget/ping_widget.rb +558 -0
  1002. data/lib/roebe/gui/universal_widgets/ping_widget/ping_widget.yml +7 -0
  1003. data/lib/roebe/gui/universal_widgets/send_email/send_email.rb +388 -0
  1004. data/lib/roebe/gui/universal_widgets/shell/shell.rb +894 -0
  1005. data/lib/roebe/gui/universal_widgets/show_aliases/show_aliases.rb +330 -0
  1006. data/lib/roebe/gui/universal_widgets/show_ten_aliases/show_ten_aliases.rb +396 -0
  1007. data/lib/roebe/gui/universal_widgets/simple_clock/simple_clock.rb +106 -0
  1008. data/lib/roebe/gui/universal_widgets/system_widget/system_widget.rb +245 -0
  1009. data/lib/roebe/gui/universal_widgets/task_viewer/task_viewer.rb +286 -0
  1010. data/lib/roebe/gui/universal_widgets/todo_viewer/todo_viewer.rb +342 -0
  1011. data/lib/roebe/gui/universal_widgets/view_image/view_image.rb +226 -0
  1012. data/lib/roebe/gui/universal_widgets/wecker/wecker.rb +524 -0
  1013. data/lib/roebe/gui/universal_widgets/wlan_information_center/README.md +9 -0
  1014. data/lib/roebe/gui/universal_widgets/wlan_information_center/wlan_information_center.css +13 -0
  1015. data/lib/roebe/gui/universal_widgets/wlan_information_center/wlan_information_center.rb +755 -0
  1016. data/lib/roebe/gui/universal_widgets/world_capitals/world_capitals.rb +369 -0
  1017. data/lib/roebe/hello_world/hello_world.rb +1 -0
  1018. data/lib/roebe/images/ROEBE_LOGO.png +0 -0
  1019. data/lib/roebe/irb/README.md +3 -0
  1020. data/lib/roebe/irb/clean_irbrc +213 -0
  1021. data/lib/roebe/java_roebe/Ant.java +26 -0
  1022. data/lib/roebe/java_roebe/EnglishToGerman.class +0 -0
  1023. data/lib/roebe/java_roebe/EnglishToGerman.java +52 -0
  1024. data/lib/roebe/java_roebe/MoveFile.class +0 -0
  1025. data/lib/roebe/java_roebe/MoveFile.java +50 -0
  1026. data/lib/roebe/java_roebe/MyIp.java +42 -0
  1027. data/lib/roebe/java_roebe/RemoveDirectory.class +0 -0
  1028. data/lib/roebe/java_roebe/RemoveDirectory.java +92 -0
  1029. data/lib/roebe/java_roebe/RemoveLine.class +0 -0
  1030. data/lib/roebe/java_roebe/RemoveLine.java +168 -0
  1031. data/lib/roebe/java_roebe/ReturnRandomImage.class +0 -0
  1032. data/lib/roebe/java_roebe/ReturnRandomImage.java +54 -0
  1033. data/lib/roebe/java_roebe/Schlafe.class +0 -0
  1034. data/lib/roebe/java_roebe/Schlafe.java +65 -0
  1035. data/lib/roebe/java_roebe/SetBackground.class +0 -0
  1036. data/lib/roebe/java_roebe/SetBackground.java +104 -0
  1037. data/lib/roebe/java_roebe/ShowOnlyFiles.class +0 -0
  1038. data/lib/roebe/java_roebe/ShowOnlyFiles.java +86 -0
  1039. data/lib/roebe/java_roebe/ShowPrimeNumbers.class +0 -0
  1040. data/lib/roebe/java_roebe/ShowPrimeNumbers.java +75 -0
  1041. data/lib/roebe/java_roebe/TakeScreenshot.class +0 -0
  1042. data/lib/roebe/java_roebe/TakeScreenshot.java +126 -0
  1043. data/lib/roebe/java_roebe/TalesFromTheCrypt.class +0 -0
  1044. data/lib/roebe/java_roebe/TalesFromTheCrypt.java +128 -0
  1045. data/lib/roebe/java_roebe/ToBinary.class +0 -0
  1046. data/lib/roebe/java_roebe/ToBinary.java +21 -0
  1047. data/lib/roebe/java_roebe/ToBuy.java +94 -0
  1048. data/lib/roebe/java_roebe/ToSquashfs.class +0 -0
  1049. data/lib/roebe/java_roebe/ToSquashfs.java +84 -0
  1050. data/lib/roebe/java_roebe/ToTarBz2.class +0 -0
  1051. data/lib/roebe/java_roebe/ToTarBz2.java +57 -0
  1052. data/lib/roebe/java_roebe/Today.java +71 -0
  1053. data/lib/roebe/java_roebe/TodoOverview.class +0 -0
  1054. data/lib/roebe/java_roebe/TodoOverview.java +78 -0
  1055. data/lib/roebe/java_roebe/Translate.class +0 -0
  1056. data/lib/roebe/java_roebe/Translate.java +93 -0
  1057. data/lib/roebe/java_roebe/TwentyfourHoursNotation.class +0 -0
  1058. data/lib/roebe/java_roebe/TwentyfourHoursNotation.java +60 -0
  1059. data/lib/roebe/java_roebe/Undone.class +0 -0
  1060. data/lib/roebe/java_roebe/Undone.java +143 -0
  1061. data/lib/roebe/java_roebe/UnicodeSnowman.class +0 -0
  1062. data/lib/roebe/java_roebe/UnicodeSnowman.java +48 -0
  1063. data/lib/roebe/java_roebe/Upcaser.class +0 -0
  1064. data/lib/roebe/java_roebe/Upcaser.java +69 -0
  1065. data/lib/roebe/java_roebe/UploadToImgur.class +0 -0
  1066. data/lib/roebe/java_roebe/UploadToImgur.java +97 -0
  1067. data/lib/roebe/java_roebe/UpwardsCounter.class +0 -0
  1068. data/lib/roebe/java_roebe/UpwardsCounter.java +77 -0
  1069. data/lib/roebe/java_roebe/Wikipedia.class +0 -0
  1070. data/lib/roebe/java_roebe/Wikipedia.java +43 -0
  1071. data/lib/roebe/java_roebe/WriteWhatInto.class +0 -0
  1072. data/lib/roebe/java_roebe/WriteWhatInto.java +56 -0
  1073. data/lib/roebe/java_roebe/Zoll.class +0 -0
  1074. data/lib/roebe/java_roebe/Zoll.java +42 -0
  1075. data/lib/roebe/java_roebe/controller/ControllerWithCSSSupport$1.class +0 -0
  1076. data/lib/roebe/java_roebe/controller/ControllerWithCSSSupport.class +0 -0
  1077. data/lib/roebe/java_roebe/controller/ControllerWithCSSSupport.java +277 -0
  1078. data/lib/roebe/java_roebe/gui/Calculator.class +0 -0
  1079. data/lib/roebe/java_roebe/gui/Calculator.java +287 -0
  1080. data/lib/roebe/java_roebe/java_roebe/ShowPrimeNumbers.class +0 -0
  1081. data/lib/roebe/java_roebe/java_roebe/ShowPrimeNumbers.java +75 -0
  1082. data/lib/roebe/java_roebe/java_roebe/TakeScreenshot.class +0 -0
  1083. data/lib/roebe/java_roebe/java_roebe/TakeScreenshot.java +126 -0
  1084. data/lib/roebe/java_roebe/java_roebe/TalesFromTheCrypt.class +0 -0
  1085. data/lib/roebe/java_roebe/java_roebe/TalesFromTheCrypt.java +128 -0
  1086. data/lib/roebe/java_roebe/java_roebe/Zoll.class +0 -0
  1087. data/lib/roebe/java_roebe/java_roebe/Zoll.java +42 -0
  1088. data/lib/roebe/java_roebe/show_the_content_of_this_directory/ShowTheContentOfThisDirectory.class +0 -0
  1089. data/lib/roebe/java_roebe/show_the_content_of_this_directory/ShowTheContentOfThisDirectory.java +50 -0
  1090. data/lib/roebe/jruby/jruby_enhancements.rb +18 -0
  1091. data/lib/roebe/jruby/swing/absolute_positioning_example.rb +75 -0
  1092. data/lib/roebe/jruby/swing/complete_windows_example.rb +90 -0
  1093. data/lib/roebe/jruby/swing/paint_demo.rb +37 -0
  1094. data/lib/roebe/jruby/swing/quit_button_example.rb +54 -0
  1095. data/lib/roebe/jruby/swing/simple_swing_example.rb +33 -0
  1096. data/lib/roebe/jruby/swing/tooltip_example.rb +90 -0
  1097. data/lib/roebe/jruby/swing/two_buttons_example.rb +62 -0
  1098. data/lib/roebe/knowledge_base/knowledge_base.rb +103 -0
  1099. data/lib/roebe/linux/README.md +3 -0
  1100. data/lib/roebe/linux/linux.rb +106 -0
  1101. data/lib/roebe/linux/slackware/remove_pulseaudio.rb +34 -0
  1102. data/lib/roebe/linux/slackware/slackware.rb +122 -0
  1103. data/lib/roebe/math/README.md +4 -0
  1104. data/lib/roebe/math/anagram.rb +42 -0
  1105. data/lib/roebe/math/average_of_differences.rb +41 -0
  1106. data/lib/roebe/math/binning.rb +56 -0
  1107. data/lib/roebe/math/calculate_the_distance_between_two_points.rb +38 -0
  1108. data/lib/roebe/math/calculate_the_variance.rb +45 -0
  1109. data/lib/roebe/math/circle.rb +101 -0
  1110. data/lib/roebe/math/draw_line.rb +25 -0
  1111. data/lib/roebe/math/draw_triangle.rb +26 -0
  1112. data/lib/roebe/math/fact.rb +44 -0
  1113. data/lib/roebe/math/levensthein.rb +69 -0
  1114. data/lib/roebe/math/log10.rb +54 -0
  1115. data/lib/roebe/math/math.rb +314 -0
  1116. data/lib/roebe/math/pi.rb +29 -0
  1117. data/lib/roebe/math/primfaktorzerlegung.rb +105 -0
  1118. data/lib/roebe/math/regel_von_sarrus.rb +70 -0
  1119. data/lib/roebe/math/sphere.rb +126 -0
  1120. data/lib/roebe/math/steigung.rb +59 -0
  1121. data/lib/roebe/math/traurige_oder_fr/303/266hliche_zahl.rb +47 -0
  1122. data/lib/roebe/math/traurige_oder_gl/303/274ckliche_zahl.rb +55 -0
  1123. data/lib/roebe/math/zylinder.rb +59 -0
  1124. data/lib/roebe/mime_types/mime_types.rb +389 -0
  1125. data/lib/roebe/misc/README.md +2 -0
  1126. data/lib/roebe/misc/chrome_extensions/roebe/background.js +1 -0
  1127. data/lib/roebe/misc/chrome_extensions/roebe/commands_to_run.rb +1 -0
  1128. data/lib/roebe/misc/chrome_extensions/roebe/content.js +1 -0
  1129. data/lib/roebe/misc/chrome_extensions/roebe/images/64.png +0 -0
  1130. data/lib/roebe/misc/chrome_extensions/roebe/index.html +130 -0
  1131. data/lib/roebe/misc/chrome_extensions/roebe/manifest.json +22 -0
  1132. data/lib/roebe/misc/chrome_extensions/roebe/popup.html +46 -0
  1133. data/lib/roebe/misc/chrome_extensions/roebe/popup.js +0 -0
  1134. data/lib/roebe/misc/chrome_extensions/roebe/simulate_a_dice.js +28 -0
  1135. data/lib/roebe/misc/fluxbox_keys_file +117 -0
  1136. data/lib/roebe/misc/icewm_keys_file +88 -0
  1137. data/lib/roebe/misc/master_boot_record/master_boot_record +0 -0
  1138. data/lib/roebe/misc/ublock_origin/ublock_origin.md +4 -0
  1139. data/lib/roebe/modules/as_uid.rb +61 -0
  1140. data/lib/roebe/modules/extensions/README.md +2 -0
  1141. data/lib/roebe/modules/extensions/hexapdf.rb +14 -0
  1142. data/lib/roebe/modules/http_status_codes/constants.rb +105 -0
  1143. data/lib/roebe/modules/http_status_codes/http_status_codes.rb +59 -0
  1144. data/lib/roebe/modules/remove_html.rb +61 -0
  1145. data/lib/roebe/mouse/README.md +2 -0
  1146. data/lib/roebe/mouse/libffi_is_not_available.rb +70 -0
  1147. data/lib/roebe/mouse/mouse.rb +205 -0
  1148. data/lib/roebe/nano/README.md +42 -0
  1149. data/lib/roebe/nano/c.md +77 -0
  1150. data/lib/roebe/nano/cpp.md +68 -0
  1151. data/lib/roebe/nano/css.md +16 -0
  1152. data/lib/roebe/nano/fasta.md +10 -0
  1153. data/lib/roebe/nano/general_settings.md +199 -0
  1154. data/lib/roebe/nano/generic.md +52 -0
  1155. data/lib/roebe/nano/html.md +7 -0
  1156. data/lib/roebe/nano/include.md +26 -0
  1157. data/lib/roebe/nano/java.md +31 -0
  1158. data/lib/roebe/nano/mail.md +36 -0
  1159. data/lib/roebe/nano/ml.md +21 -0
  1160. data/lib/roebe/nano/nano.cgi +23 -0
  1161. data/lib/roebe/nano/nanorc.md +16 -0
  1162. data/lib/roebe/nano/nexus.md +12 -0
  1163. data/lib/roebe/nano/opal.md +66 -0
  1164. data/lib/roebe/nano/patch_files.md +12 -0
  1165. data/lib/roebe/nano/perl.md +12 -0
  1166. data/lib/roebe/nano/php.md +26 -0
  1167. data/lib/roebe/nano/python.md +12 -0
  1168. data/lib/roebe/nano/ruby.md +122 -0
  1169. data/lib/roebe/nano/shell_scripts.md +15 -0
  1170. data/lib/roebe/nano/top.md +14 -0
  1171. data/lib/roebe/nano/yaml.md +70 -0
  1172. data/lib/roebe/nano/zzz_misc.md +13 -0
  1173. data/lib/roebe/no_colours.rb +7 -0
  1174. data/lib/roebe/pdf/README.md +1 -0
  1175. data/lib/roebe/pdf/prawn/all_in_one_showcasing_prawn.rb +164 -0
  1176. data/lib/roebe/project/project.rb +77 -0
  1177. data/lib/roebe/python/base/__pycache__/base.cpython-39.pyc +0 -0
  1178. data/lib/roebe/python/base/base.py +40 -0
  1179. data/lib/roebe/python/zoll.py +16 -0
  1180. data/lib/roebe/requires/basic_common_requires.rb +18 -0
  1181. data/lib/roebe/requires/colours.rb +7 -0
  1182. data/lib/roebe/requires/failsafe_require_of_beautiful_url.rb +12 -0
  1183. data/lib/roebe/requires/failsafe_require_of_opn.rb +12 -0
  1184. data/lib/roebe/requires/require_all_standalone_classes.rb +65 -0
  1185. data/lib/roebe/requires/require_all_standalone_modules.rb +61 -0
  1186. data/lib/roebe/requires/require_burn_iso.rb +5 -0
  1187. data/lib/roebe/requires/require_kde_konsole.rb +7 -0
  1188. data/lib/roebe/requires/require_menu_generator.rb +7 -0
  1189. data/lib/roebe/requires/require_remove_directory.rb +7 -0
  1190. data/lib/roebe/requires/require_ruby_header.rb +7 -0
  1191. data/lib/roebe/requires/require_the_browser_files.rb +11 -0
  1192. data/lib/roebe/requires/require_the_roebe_documentation.rb +11 -0
  1193. data/lib/roebe/requires/require_the_roebe_shell.rb +22 -0
  1194. data/lib/roebe/requires/require_the_run_class.rb +7 -0
  1195. data/lib/roebe/requires/require_the_toplevel_methods.rb +11 -0
  1196. data/lib/roebe/requires/require_the_whole_roebe_project.rb +77 -0
  1197. data/lib/roebe/requires/require_traverse_install.rb +7 -0
  1198. data/lib/roebe/requires/require_unicode.rb +31 -0
  1199. data/lib/roebe/requires/require_yaml.rb +1 -0
  1200. data/lib/roebe/setup/README.md +1 -0
  1201. data/lib/roebe/setup/setup.rb +1665 -0
  1202. data/lib/roebe/shell/README.md +6 -0
  1203. data/lib/roebe/shell/colours/colour_codes.rb +178 -0
  1204. data/lib/roebe/shell/colours/colours.rb +331 -0
  1205. data/lib/roebe/shell/commandline/commandline.rb +404 -0
  1206. data/lib/roebe/shell/configuration/configuration.rb +165 -0
  1207. data/lib/roebe/shell/gui/gtk3/vte_terminal_frame.rb +77 -0
  1208. data/lib/roebe/shell/help/colourized_help_line.rb +183 -0
  1209. data/lib/roebe/shell/help/documented_help_options.rb +254 -0
  1210. data/lib/roebe/shell/help/help.rb +105 -0
  1211. data/lib/roebe/shell/module_methods/anmeldung.rb +75 -0
  1212. data/lib/roebe/shell/module_methods/available_components.rb +78 -0
  1213. data/lib/roebe/shell/module_methods/benchmarks.rb +70 -0
  1214. data/lib/roebe/shell/module_methods/commandline_arguments.rb +35 -0
  1215. data/lib/roebe/shell/module_methods/encoding.rb +95 -0
  1216. data/lib/roebe/shell/module_methods/ftp.rb +65 -0
  1217. data/lib/roebe/shell/module_methods/generate_tab_completion.rb +96 -0
  1218. data/lib/roebe/shell/module_methods/home_directory.rb +108 -0
  1219. data/lib/roebe/shell/module_methods/main_file.rb +41 -0
  1220. data/lib/roebe/shell/module_methods/misc.rb +181 -0
  1221. data/lib/roebe/shell/module_methods/report_where_the_home_directory_can_be_found.rb +35 -0
  1222. data/lib/roebe/shell/module_methods/startup_time.rb +34 -0
  1223. data/lib/roebe/shell/project/project.rb +47 -0
  1224. data/lib/roebe/shell/session/session.rb +205 -0
  1225. data/lib/roebe/shell/shell/constants.rb +272 -0
  1226. data/lib/roebe/shell/shell/menu_for_the_main_loop.rb +8380 -0
  1227. data/lib/roebe/shell/shell/shell.rb +24642 -0
  1228. data/lib/roebe/shell/shellrc_parser/shellrc_parser.rb +276 -0
  1229. data/lib/roebe/shell/standalone_classes/time_converter.rb +86 -0
  1230. data/lib/roebe/shell/standalone_classes/todo.rb +100 -0
  1231. data/lib/roebe/shell/yaml/configuration/autoconvert_numbers.yml +1 -0
  1232. data/lib/roebe/shell/yaml/configuration/be_verbose.yml +1 -0
  1233. data/lib/roebe/shell/yaml/configuration/cd_burn_program.yml +1 -0
  1234. data/lib/roebe/shell/yaml/configuration/check_for_isos.yml +1 -0
  1235. data/lib/roebe/shell/yaml/configuration/check_upcoming_exams.yml +1 -0
  1236. data/lib/roebe/shell/yaml/configuration/collapse.yml +1 -0
  1237. data/lib/roebe/shell/yaml/configuration/colours.yml +10 -0
  1238. data/lib/roebe/shell/yaml/configuration/debug.yml +1 -0
  1239. data/lib/roebe/shell/yaml/configuration/default_browser_location.yml +1 -0
  1240. data/lib/roebe/shell/yaml/configuration/default_delay.yml +1 -0
  1241. data/lib/roebe/shell/yaml/configuration/default_file_action.yml +1 -0
  1242. data/lib/roebe/shell/yaml/configuration/dictionaries.yml +2 -0
  1243. data/lib/roebe/shell/yaml/configuration/display_index.yml +1 -0
  1244. data/lib/roebe/shell/yaml/configuration/do_show_modification_time.yml +1 -0
  1245. data/lib/roebe/shell/yaml/configuration/dvd_burn_program.yml +1 -0
  1246. data/lib/roebe/shell/yaml/configuration/editor.yml +1 -0
  1247. data/lib/roebe/shell/yaml/configuration/enter_extracted_directory.yml +1 -0
  1248. data/lib/roebe/shell/yaml/configuration/events.yml +2 -0
  1249. data/lib/roebe/shell/yaml/configuration/guess_directory_name.yml +1 -0
  1250. data/lib/roebe/shell/yaml/configuration/jumper_directories.yml +9 -0
  1251. data/lib/roebe/shell/yaml/configuration/last_directory.yml +1 -0
  1252. data/lib/roebe/shell/yaml/configuration/logfile_for_history.yml +1 -0
  1253. data/lib/roebe/shell/yaml/configuration/may_we_generate_file_skeleton.yml +1 -0
  1254. data/lib/roebe/shell/yaml/configuration/may_we_use_ftp.yml +1 -0
  1255. data/lib/roebe/shell/yaml/configuration/mplayer_favourite_files.yml +1 -0
  1256. data/lib/roebe/shell/yaml/configuration/official_release.yml +1 -0
  1257. data/lib/roebe/shell/yaml/configuration/open_downloaded_pdf_files_at_once.yml +1 -0
  1258. data/lib/roebe/shell/yaml/configuration/operating_system.yml +1 -0
  1259. data/lib/roebe/shell/yaml/configuration/padding.yml +1 -0
  1260. data/lib/roebe/shell/yaml/configuration/pdf_viewer.yml +1 -0
  1261. data/lib/roebe/shell/yaml/configuration/preferred_encoding.yml +1 -0
  1262. data/lib/roebe/shell/yaml/configuration/protected_directories.yml +8 -0
  1263. data/lib/roebe/shell/yaml/configuration/remove_globbed_files.yml +1 -0
  1264. data/lib/roebe/shell/yaml/configuration/run_simulation.yml +1 -0
  1265. data/lib/roebe/shell/yaml/configuration/shall_we_log_the_user_input_history.yml +1 -0
  1266. data/lib/roebe/shell/yaml/configuration/shell_name.yml +1 -0
  1267. data/lib/roebe/shell/yaml/configuration/shell_prompt.yml +1 -0
  1268. data/lib/roebe/shell/yaml/configuration/shorten_directory_names.yml +1 -0
  1269. data/lib/roebe/shell/yaml/configuration/show_absolute_path.yml +1 -0
  1270. data/lib/roebe/shell/yaml/configuration/show_condensed_permissions.yml +1 -0
  1271. data/lib/roebe/shell/yaml/configuration/show_hidden_files.yml +1 -0
  1272. data/lib/roebe/shell/yaml/configuration/show_n_lines.yml +1 -0
  1273. data/lib/roebe/shell/yaml/configuration/simplified.yml +1 -0
  1274. data/lib/roebe/shell/yaml/configuration/stop_on_missing_symlink.yml +1 -0
  1275. data/lib/roebe/shell/yaml/configuration/title_renamer.yml +1 -0
  1276. data/lib/roebe/shell/yaml/configuration/translate_unknown_words.yml +1 -0
  1277. data/lib/roebe/shell/yaml/configuration/truncate_long_file_names.yml +1 -0
  1278. data/lib/roebe/shell/yaml/configuration/upload_screenshots.yml +1 -0
  1279. data/lib/roebe/shell/yaml/configuration/use_aliases.yml +1 -0
  1280. data/lib/roebe/shell/yaml/configuration/use_colours.yml +1 -0
  1281. data/lib/roebe/shell/yaml/configuration/use_dictionary.yml +1 -0
  1282. data/lib/roebe/shell/yaml/configuration/use_irb_drop.yml +1 -0
  1283. data/lib/roebe/shell/yaml/configuration/use_irc.yml +1 -0
  1284. data/lib/roebe/shell/yaml/configuration/use_konsole_colours.yml +1 -0
  1285. data/lib/roebe/shell/yaml/configuration/use_readline.yml +1 -0
  1286. data/lib/roebe/shell/yaml/configuration/video_collection.yml +1 -0
  1287. data/lib/roebe/shell/yaml/configuration/video_player.yml +1 -0
  1288. data/lib/roebe/shell/yaml/configuration/which_bin_shell_to_use.yml +1 -0
  1289. data/lib/roebe/shell/yaml/configuration/which_shell.yml +1 -0
  1290. data/lib/roebe/shell/yaml/default_apps.yml +7 -0
  1291. data/lib/roebe/shell/yaml/ignore_these_last_commands.yml +12 -0
  1292. data/lib/roebe/shell/yaml/lazy_load_these_components.yml +51 -0
  1293. data/lib/roebe/shell_scripts/README.md +13 -0
  1294. data/lib/roebe/shell_scripts/bashrc +39 -0
  1295. data/lib/roebe/shell_scripts/check_bootloader.sh +30 -0
  1296. data/lib/roebe/shell_scripts/cliner.sh +98 -0
  1297. data/lib/roebe/shell_scripts/colour_grey_matrix.sh +7 -0
  1298. data/lib/roebe/shell_scripts/coloured_calendar.sh +25 -0
  1299. data/lib/roebe/shell_scripts/compile_ruby.sh +58 -0
  1300. data/lib/roebe/shell_scripts/completion_for_rf.sh +1065 -0
  1301. data/lib/roebe/shell_scripts/count_down.sh +13 -0
  1302. data/lib/roebe/shell_scripts/create_new_file.sh +25 -0
  1303. data/lib/roebe/shell_scripts/custom_prompts.sh +39 -0
  1304. data/lib/roebe/shell_scripts/do_install.sh +24 -0
  1305. data/lib/roebe/shell_scripts/do_stripped_install.sh +22 -0
  1306. data/lib/roebe/shell_scripts/echo_loop_example.sh +4 -0
  1307. data/lib/roebe/shell_scripts/extname.sh +21 -0
  1308. data/lib/roebe/shell_scripts/extract.sh +42 -0
  1309. data/lib/roebe/shell_scripts/extract_archive.sh +59 -0
  1310. data/lib/roebe/shell_scripts/first_character.sh +31 -0
  1311. data/lib/roebe/shell_scripts/how_to_obtain_user_input.sh +17 -0
  1312. data/lib/roebe/shell_scripts/install_base_roebe.sh +41 -0
  1313. data/lib/roebe/shell_scripts/lfs/001_binutils_1.sh +19 -0
  1314. data/lib/roebe/shell_scripts/lfs/002_gcc_1.sh +36 -0
  1315. data/lib/roebe/shell_scripts/lfs/003_linux_1.sh +23 -0
  1316. data/lib/roebe/shell_scripts/lfs/004_glibc_1.sh +46 -0
  1317. data/lib/roebe/shell_scripts/lfs/005_libstdc++_1.sh +31 -0
  1318. data/lib/roebe/shell_scripts/lfs/006_m4_2.sh +22 -0
  1319. data/lib/roebe/shell_scripts/lfs/007_ncurses_2.sh +39 -0
  1320. data/lib/roebe/shell_scripts/lfs/008_bash_2.sh +21 -0
  1321. data/lib/roebe/shell_scripts/lfs/009_coreutils_2.sh +25 -0
  1322. data/lib/roebe/shell_scripts/lfs/010_diffutils_2.sh +20 -0
  1323. data/lib/roebe/shell_scripts/lfs/011_file_2.sh +31 -0
  1324. data/lib/roebe/shell_scripts/lfs/012_findutils_2.sh +20 -0
  1325. data/lib/roebe/shell_scripts/lfs/013_gawk_2.sh +21 -0
  1326. data/lib/roebe/shell_scripts/lfs/014_grep_2.sh +20 -0
  1327. data/lib/roebe/shell_scripts/lfs/015_gzip_2.sh +20 -0
  1328. data/lib/roebe/shell_scripts/lfs/016_make_2.sh +20 -0
  1329. data/lib/roebe/shell_scripts/lfs/017_patch_2.sh +17 -0
  1330. data/lib/roebe/shell_scripts/lfs/018_sed_2.sh +18 -0
  1331. data/lib/roebe/shell_scripts/lfs/019_tar_2.sh +18 -0
  1332. data/lib/roebe/shell_scripts/lfs/020_xz_2.sh +23 -0
  1333. data/lib/roebe/shell_scripts/lfs/021_binutils_2.sh +39 -0
  1334. data/lib/roebe/shell_scripts/lfs/022_gcc_2.sh +50 -0
  1335. data/lib/roebe/shell_scripts/lfs/023_gettext_2.sh +13 -0
  1336. data/lib/roebe/shell_scripts/lfs/024_bison_2.sh +13 -0
  1337. data/lib/roebe/shell_scripts/lfs/README.md +28 -0
  1338. data/lib/roebe/shell_scripts/lfs/lfs_build_variables.sh +254 -0
  1339. data/lib/roebe/shell_scripts/lfs/lfs_variables.sh +31 -0
  1340. data/lib/roebe/shell_scripts/lfs/libstdc++_2.sh +20 -0
  1341. data/lib/roebe/shell_scripts/lfs/ruby_2.sh +11 -0
  1342. data/lib/roebe/shell_scripts/list_colours.sh +25 -0
  1343. data/lib/roebe/shell_scripts/locales.sh +15 -0
  1344. data/lib/roebe/shell_scripts/loop_example.sh +5 -0
  1345. data/lib/roebe/shell_scripts/lower.sh +21 -0
  1346. data/lib/roebe/shell_scripts/misc.sh +327 -0
  1347. data/lib/roebe/shell_scripts/musl_cross_compiler.sh +178 -0
  1348. data/lib/roebe/shell_scripts/no_caps.sh +16 -0
  1349. data/lib/roebe/shell_scripts/number_guessing_game.sh +37 -0
  1350. data/lib/roebe/shell_scripts/parameters_example.sh +58 -0
  1351. data/lib/roebe/shell_scripts/query_parameters.sh +58 -0
  1352. data/lib/roebe/shell_scripts/remove_broken_symlinks_in_the_current_working_directory.sh +1 -0
  1353. data/lib/roebe/shell_scripts/reset_path.sh +15 -0
  1354. data/lib/roebe/shell_scripts/return_random_file.sh +20 -0
  1355. data/lib/roebe/shell_scripts/run_gobo_fixes.sh +17 -0
  1356. data/lib/roebe/shell_scripts/shell_file_containing_the_html_colours.sh +148 -0
  1357. data/lib/roebe/shell_scripts/show_semigraphic_characters.sh +14 -0
  1358. data/lib/roebe/shell_scripts/show_site_ruby.sh +15 -0
  1359. data/lib/roebe/shell_scripts/source_in_all_completions.sh +9 -0
  1360. data/lib/roebe/shell_scripts/true_ata.sh +34 -0
  1361. data/lib/roebe/shell_scripts/truecolour_line.sh +13 -0
  1362. data/lib/roebe/shell_scripts/zenity_count_to_100.sh +5 -0
  1363. data/lib/roebe/sinatra/README.md +6 -0
  1364. data/lib/roebe/sinatra/erb_example/erb_example.erb +10 -0
  1365. data/lib/roebe/sinatra/erb_example/erb_example.rb +13 -0
  1366. data/lib/roebe/sinatra/inline_template_example/inline_template_example.rb +27 -0
  1367. data/lib/roebe/sinatra/modify_http_response_headers_example/modify_http_response_headers_example.rb +13 -0
  1368. data/lib/roebe/sinatra/multi_urls/multi_urls.rb +29 -0
  1369. data/lib/roebe/sinatra/optional_route.rb +19 -0
  1370. data/lib/roebe/sinatra/query_the_name/query_the_name.rb +7 -0
  1371. data/lib/roebe/sinatra/rock_paper_and_scissors_example/rock_paper_and_scissors_example.rb +51 -0
  1372. data/lib/roebe/sinatra/route_definition_examples/route_definition_examples.rb +25 -0
  1373. data/lib/roebe/sinatra/send_file_example/send_file_example.rb +54 -0
  1374. data/lib/roebe/sinatra/session_counter/session_counter.rb +51 -0
  1375. data/lib/roebe/sinatra/show_the_environment_variables/show_the_environment_variables.rb +9 -0
  1376. data/lib/roebe/sinatra/simple_authentication/simple_authentication.rb +25 -0
  1377. data/lib/roebe/sinatra/simple_hello_world/simple_hello_world.rb +5 -0
  1378. data/lib/roebe/sinatra/sinatra_authentication_example/sinatra_authentication_example.rb +117 -0
  1379. data/lib/roebe/sinatra/sinatra_example_with_rack_component/sinatra_example_with_rack_component.rb +15 -0
  1380. data/lib/roebe/sinatra/subclassing_sinatra_example/subclassing_sinatra_example.rb +19 -0
  1381. data/lib/roebe/snippets/README.md +1 -0
  1382. data/lib/roebe/snippets/first_argument.rb +5 -0
  1383. data/lib/roebe/snippets/obtain_all_descendants.rb +31 -0
  1384. data/lib/roebe/sql_paradise/commands.rb +604 -0
  1385. data/lib/roebe/sql_paradise/create_database.rb +43 -0
  1386. data/lib/roebe/sql_paradise/create_table.rb +47 -0
  1387. data/lib/roebe/sql_paradise/insert_into.rb +77 -0
  1388. data/lib/roebe/sql_paradise/sql_command.rb +22 -0
  1389. data/lib/roebe/sql_paradise/sql_paradise.rb +180 -0
  1390. data/lib/roebe/time/README.md +6 -0
  1391. data/lib/roebe/time/seconds.rb +79 -0
  1392. data/lib/roebe/time/time.rb +196 -0
  1393. data/lib/roebe/toplevel_methods/arrow_keys.rb +37 -0
  1394. data/lib/roebe/toplevel_methods/ascii_paradise.rb +23 -0
  1395. data/lib/roebe/toplevel_methods/autoprune.rb +40 -0
  1396. data/lib/roebe/toplevel_methods/background.rb +89 -0
  1397. data/lib/roebe/toplevel_methods/base64.rb +37 -0
  1398. data/lib/roebe/toplevel_methods/beautify_system.rb +25 -0
  1399. data/lib/roebe/toplevel_methods/blinking_cursor.rb +88 -0
  1400. data/lib/roebe/toplevel_methods/boku_opening_times.rb +30 -0
  1401. data/lib/roebe/toplevel_methods/build_all_my_local_gems.rb +39 -0
  1402. data/lib/roebe/toplevel_methods/bundle_exam_results.rb +48 -0
  1403. data/lib/roebe/toplevel_methods/c_debug.rb +22 -0
  1404. data/lib/roebe/toplevel_methods/calculate_bmi.rb +41 -0
  1405. data/lib/roebe/toplevel_methods/calculate_hypotenuse.rb +26 -0
  1406. data/lib/roebe/toplevel_methods/chained.rb +19 -0
  1407. data/lib/roebe/toplevel_methods/chdir.rb +44 -0
  1408. data/lib/roebe/toplevel_methods/check_whether_an_internet_connection_is_available.rb +38 -0
  1409. data/lib/roebe/toplevel_methods/chroot.rb +170 -0
  1410. data/lib/roebe/toplevel_methods/cliner.rb +72 -0
  1411. data/lib/roebe/toplevel_methods/colourize_files_and_directories.rb +69 -0
  1412. data/lib/roebe/toplevel_methods/colourized_tokenitor.rb +56 -0
  1413. data/lib/roebe/toplevel_methods/convert_global_env.rb +34 -0
  1414. data/lib/roebe/toplevel_methods/copy_setup_rb_file.rb +27 -0
  1415. data/lib/roebe/toplevel_methods/copy_the_linux_kernel.rb +38 -0
  1416. data/lib/roebe/toplevel_methods/cp_to_here.rb +34 -0
  1417. data/lib/roebe/toplevel_methods/crazy_make_mode.rb +70 -0
  1418. data/lib/roebe/toplevel_methods/create_directory.rb +35 -0
  1419. data/lib/roebe/toplevel_methods/create_directory_layout.rb +58 -0
  1420. data/lib/roebe/toplevel_methods/create_this_c_file.rb +36 -0
  1421. data/lib/roebe/toplevel_methods/disable.rb +27 -0
  1422. data/lib/roebe/toplevel_methods/display_array.rb +97 -0
  1423. data/lib/roebe/toplevel_methods/display_mbr.rb +33 -0
  1424. data/lib/roebe/toplevel_methods/does_this_program_exist.rb +57 -0
  1425. data/lib/roebe/toplevel_methods/does_this_terminal_support_unicode.rb +27 -0
  1426. data/lib/roebe/toplevel_methods/downcase_all_entries_in_the_current_directory.rb +43 -0
  1427. data/lib/roebe/toplevel_methods/download_certdata.rb +29 -0
  1428. data/lib/roebe/toplevel_methods/download_emojis.rb +48 -0
  1429. data/lib/roebe/toplevel_methods/e.rb +33 -0
  1430. data/lib/roebe/toplevel_methods/editor.rb +47 -0
  1431. data/lib/roebe/toplevel_methods/email.rb +32 -0
  1432. data/lib/roebe/toplevel_methods/enable.rb +27 -0
  1433. data/lib/roebe/toplevel_methods/env.rb +40 -0
  1434. data/lib/roebe/toplevel_methods/esystem.rb +22 -0
  1435. data/lib/roebe/toplevel_methods/extract.rb +53 -0
  1436. data/lib/roebe/toplevel_methods/fibonacci.rb +108 -0
  1437. data/lib/roebe/toplevel_methods/files.rb +362 -0
  1438. data/lib/roebe/toplevel_methods/generate_konsole_css_file.rb +82 -0
  1439. data/lib/roebe/toplevel_methods/grab_colour.rb +31 -0
  1440. data/lib/roebe/toplevel_methods/halloween.rb +105 -0
  1441. data/lib/roebe/toplevel_methods/hello_world.rb +28 -0
  1442. data/lib/roebe/toplevel_methods/heredocs.rb +32 -0
  1443. data/lib/roebe/toplevel_methods/hostname.rb +38 -0
  1444. data/lib/roebe/toplevel_methods/human_readable.rb +41 -0
  1445. data/lib/roebe/toplevel_methods/images.rb +28 -0
  1446. data/lib/roebe/toplevel_methods/important_pdf_files.rb +131 -0
  1447. data/lib/roebe/toplevel_methods/increase_volume.rb +19 -0
  1448. data/lib/roebe/toplevel_methods/install_and_update_rcfiles.rb +26 -0
  1449. data/lib/roebe/toplevel_methods/install_linux_kernel_api_headers.rb +50 -0
  1450. data/lib/roebe/toplevel_methods/install_nss.rb +52 -0
  1451. data/lib/roebe/toplevel_methods/install_roebe_addons.rb +68 -0
  1452. data/lib/roebe/toplevel_methods/install_rust.rb +26 -0
  1453. data/lib/roebe/toplevel_methods/install_the_cascadia_font.rb +59 -0
  1454. data/lib/roebe/toplevel_methods/install_the_hack_font.rb +69 -0
  1455. data/lib/roebe/toplevel_methods/install_the_jet_brains_mono_font.rb +55 -0
  1456. data/lib/roebe/toplevel_methods/install_this_font.rb +80 -0
  1457. data/lib/roebe/toplevel_methods/install_this_locale.rb +30 -0
  1458. data/lib/roebe/toplevel_methods/install_vivaldi.rb +33 -0
  1459. data/lib/roebe/toplevel_methods/instance_variable_get.rb +22 -0
  1460. data/lib/roebe/toplevel_methods/irb.rb +34 -0
  1461. data/lib/roebe/toplevel_methods/is_on_roebe.rb +64 -0
  1462. data/lib/roebe/toplevel_methods/jp2a.rb +49 -0
  1463. data/lib/roebe/toplevel_methods/keywords.rb +43 -0
  1464. data/lib/roebe/toplevel_methods/lighttpd.rb +12 -0
  1465. data/lib/roebe/toplevel_methods/load_custom_ruby_files.rb +41 -0
  1466. data/lib/roebe/toplevel_methods/load_yaml.rb +28 -0
  1467. data/lib/roebe/toplevel_methods/mama.rb +30 -0
  1468. data/lib/roebe/toplevel_methods/master_boot_record.rb +84 -0
  1469. data/lib/roebe/toplevel_methods/math.rb +29 -0
  1470. data/lib/roebe/toplevel_methods/misc.rb +837 -0
  1471. data/lib/roebe/toplevel_methods/module_methods.rb +425 -0
  1472. data/lib/roebe/toplevel_methods/mount_procs.rb +25 -0
  1473. data/lib/roebe/toplevel_methods/move_file.rb +38 -0
  1474. data/lib/roebe/toplevel_methods/move_to_torrent_directory.rb +48 -0
  1475. data/lib/roebe/toplevel_methods/multimedia.rb +117 -0
  1476. data/lib/roebe/toplevel_methods/n_characters_in_this_file.rb +45 -0
  1477. data/lib/roebe/toplevel_methods/nano_addons.rb +36 -0
  1478. data/lib/roebe/toplevel_methods/new_konsole_tab.rb +21 -0
  1479. data/lib/roebe/toplevel_methods/newstud/newstud1.rb +24 -0
  1480. data/lib/roebe/toplevel_methods/newstud/newstud10.rb +24 -0
  1481. data/lib/roebe/toplevel_methods/newstud/newstud11.rb +24 -0
  1482. data/lib/roebe/toplevel_methods/newstud/newstud12.rb +24 -0
  1483. data/lib/roebe/toplevel_methods/newstud/newstud13.rb +24 -0
  1484. data/lib/roebe/toplevel_methods/newstud/newstud14.rb +24 -0
  1485. data/lib/roebe/toplevel_methods/newstud/newstud15.rb +24 -0
  1486. data/lib/roebe/toplevel_methods/newstud/newstud16.rb +24 -0
  1487. data/lib/roebe/toplevel_methods/newstud/newstud17.rb +24 -0
  1488. data/lib/roebe/toplevel_methods/newstud/newstud18.rb +24 -0
  1489. data/lib/roebe/toplevel_methods/newstud/newstud19.rb +24 -0
  1490. data/lib/roebe/toplevel_methods/newstud/newstud2.rb +24 -0
  1491. data/lib/roebe/toplevel_methods/newstud/newstud20.rb +24 -0
  1492. data/lib/roebe/toplevel_methods/newstud/newstud21.rb +24 -0
  1493. data/lib/roebe/toplevel_methods/newstud/newstud22.rb +24 -0
  1494. data/lib/roebe/toplevel_methods/newstud/newstud23.rb +24 -0
  1495. data/lib/roebe/toplevel_methods/newstud/newstud24.rb +24 -0
  1496. data/lib/roebe/toplevel_methods/newstud/newstud25.rb +24 -0
  1497. data/lib/roebe/toplevel_methods/newstud/newstud3.rb +24 -0
  1498. data/lib/roebe/toplevel_methods/newstud/newstud4.rb +24 -0
  1499. data/lib/roebe/toplevel_methods/newstud/newstud5.rb +24 -0
  1500. data/lib/roebe/toplevel_methods/newstud/newstud6.rb +24 -0
  1501. data/lib/roebe/toplevel_methods/newstud/newstud7.rb +24 -0
  1502. data/lib/roebe/toplevel_methods/newstud/newstud8.rb +24 -0
  1503. data/lib/roebe/toplevel_methods/newstud/newstud9.rb +24 -0
  1504. data/lib/roebe/toplevel_methods/newstud.rb +23 -0
  1505. data/lib/roebe/toplevel_methods/no_caps.rb +29 -0
  1506. data/lib/roebe/toplevel_methods/ntrad.rb +36 -0
  1507. data/lib/roebe/toplevel_methods/open_in_browser.rb +30 -0
  1508. data/lib/roebe/toplevel_methods/open_in_editor.rb +29 -0
  1509. data/lib/roebe/toplevel_methods/open_in_editor_and_browser.rb +38 -0
  1510. data/lib/roebe/toplevel_methods/open_ports.rb +67 -0
  1511. data/lib/roebe/toplevel_methods/opnn.rb +31 -0
  1512. data/lib/roebe/toplevel_methods/permanently_set_project_base_directory_to.rb +40 -0
  1513. data/lib/roebe/toplevel_methods/platform.rb +46 -0
  1514. data/lib/roebe/toplevel_methods/pp_output.rb +31 -0
  1515. data/lib/roebe/toplevel_methods/prime_numbers.rb +22 -0
  1516. data/lib/roebe/toplevel_methods/programs_directory.rb +29 -0
  1517. data/lib/roebe/toplevel_methods/purgeboth.rb +51 -0
  1518. data/lib/roebe/toplevel_methods/puts_this.rb +29 -0
  1519. data/lib/roebe/toplevel_methods/rds.rb +33 -0
  1520. data/lib/roebe/toplevel_methods/regex.rb +87 -0
  1521. data/lib/roebe/toplevel_methods/register_sigint.rb +67 -0
  1522. data/lib/roebe/toplevel_methods/remove_user.rb +29 -0
  1523. data/lib/roebe/toplevel_methods/repetition_pattern.rb +38 -0
  1524. data/lib/roebe/toplevel_methods/replace_leading_file_name.rb +35 -0
  1525. data/lib/roebe/toplevel_methods/replace_localhost_with_data.rb +39 -0
  1526. data/lib/roebe/toplevel_methods/report_classes.rb +51 -0
  1527. data/lib/roebe/toplevel_methods/report_the_gtk_versions_available.rb +40 -0
  1528. data/lib/roebe/toplevel_methods/report_the_location_of_the_default_browser.rb +40 -0
  1529. data/lib/roebe/toplevel_methods/require_this_roebe_class.rb +23 -0
  1530. data/lib/roebe/toplevel_methods/return_all_remote_entries_from_this_url.rb +38 -0
  1531. data/lib/roebe/toplevel_methods/return_date.rb +23 -0
  1532. data/lib/roebe/toplevel_methods/return_even_numbered_lines_from_this_file.rb +37 -0
  1533. data/lib/roebe/toplevel_methods/return_pwd.rb +25 -0
  1534. data/lib/roebe/toplevel_methods/rinstall2.rb +115 -0
  1535. data/lib/roebe/toplevel_methods/rubyzip.rb +85 -0
  1536. data/lib/roebe/toplevel_methods/run_this_file_in_the_background.rb +26 -0
  1537. data/lib/roebe/toplevel_methods/sanitize_url.rb +74 -0
  1538. data/lib/roebe/toplevel_methods/set_ten_aliases.rb +25 -0
  1539. data/lib/roebe/toplevel_methods/setup.rb +37 -0
  1540. data/lib/roebe/toplevel_methods/show_beauty_string.rb +27 -0
  1541. data/lib/roebe/toplevel_methods/show_processes.rb +31 -0
  1542. data/lib/roebe/toplevel_methods/silent_redirection.rb +17 -0
  1543. data/lib/roebe/toplevel_methods/sitelibdir.rb +24 -0
  1544. data/lib/roebe/toplevel_methods/studium1.rb +30 -0
  1545. data/lib/roebe/toplevel_methods/time.rb +152 -0
  1546. data/lib/roebe/toplevel_methods/to_bool.rb +31 -0
  1547. data/lib/roebe/toplevel_methods/to_camelcase.rb +19 -0
  1548. data/lib/roebe/toplevel_methods/to_mp3.rb +40 -0
  1549. data/lib/roebe/toplevel_methods/to_underscore.rb +36 -0
  1550. data/lib/roebe/toplevel_methods/tokenitor.rb +29 -0
  1551. data/lib/roebe/toplevel_methods/trad.rb +37 -0
  1552. data/lib/roebe/toplevel_methods/try_to_enable_the_expanded_cd_aliases.rb +64 -0
  1553. data/lib/roebe/toplevel_methods/unicode/README.md +1 -0
  1554. data/lib/roebe/toplevel_methods/unicode/colourful_unicode_snowmen.rb +154 -0
  1555. data/lib/roebe/toplevel_methods/unicode/completed.rb +59 -0
  1556. data/lib/roebe/toplevel_methods/unicode/decompose_this_unicode_symbol.rb +26 -0
  1557. data/lib/roebe/toplevel_methods/unicode/display_unicode_snowman.rb +31 -0
  1558. data/lib/roebe/toplevel_methods/unicode/download_unicode_dataset.rb +32 -0
  1559. data/lib/roebe/toplevel_methods/unicode/map_input_to_unicode_symbol.rb +260 -0
  1560. data/lib/roebe/toplevel_methods/unicode/popular_unicode_symbols.rb +1105 -0
  1561. data/lib/roebe/toplevel_methods/unicode/return_all_unicode_symbols.rb +26 -0
  1562. data/lib/roebe/toplevel_methods/unicode/unicode_block_elements.rb +262 -0
  1563. data/lib/roebe/toplevel_methods/unicode/unicode_chess_symbols.rb +172 -0
  1564. data/lib/roebe/toplevel_methods/update_pciids.rb +71 -0
  1565. data/lib/roebe/toplevel_methods/update_the_main_pdf_viewer_file_with_this_program.rb +58 -0
  1566. data/lib/roebe/toplevel_methods/variables.rb +26 -0
  1567. data/lib/roebe/toplevel_methods/verbose_truth.rb +23 -0
  1568. data/lib/roebe/toplevel_methods/video.rb +39 -0
  1569. data/lib/roebe/toplevel_methods/warning.rb +184 -0
  1570. data/lib/roebe/toplevel_methods/webrick.rb +80 -0
  1571. data/lib/roebe/toplevel_methods/wget.rb +17 -0
  1572. data/lib/roebe/toplevel_methods/whois.rb +36 -0
  1573. data/lib/roebe/toplevel_methods/windows.rb +22 -0
  1574. data/lib/roebe/toplevel_methods/wlan/bring_up_this_wlan_device.rb +51 -0
  1575. data/lib/roebe/toplevel_methods/wlan/scan_for_wlan_spots.rb +39 -0
  1576. data/lib/roebe/toplevel_methods/word_frequencies.rb +65 -0
  1577. data/lib/roebe/toplevel_methods/write_what_into.rb +86 -0
  1578. data/lib/roebe/toplevel_methods/xorg_buffer.rb +30 -0
  1579. data/lib/roebe/toplevel_methods/zlib.rb +57 -0
  1580. data/lib/roebe/urxvt/config +7 -0
  1581. data/lib/roebe/validation/README.md +3 -0
  1582. data/lib/roebe/validation/validate_roeberia_environment_variables.rb +120 -0
  1583. data/lib/roebe/version/version.rb +54 -0
  1584. data/lib/roebe/windows/bat/README.md +1 -0
  1585. data/lib/roebe/windows/bat/compile_gtk_application_hello_world_example.bat +1 -0
  1586. data/lib/roebe/windows/bat/screenCapture.bat +282 -0
  1587. data/lib/roebe/windows/doskey.md +50452 -0
  1588. data/lib/roebe/windows/misc.rb +40 -0
  1589. data/lib/roebe/windows/popup_windows_message_box.rb +21 -0
  1590. data/lib/roebe/windows/powershell.rb +341 -0
  1591. data/lib/roebe/windows/usb_devices.rb +38 -0
  1592. data/lib/roebe/www/1984/1984.cgi +98 -0
  1593. data/lib/roebe/www/BIOS/BIOS.cgi +79 -0
  1594. data/lib/roebe/www/GIS/GIS.cgi +201 -0
  1595. data/lib/roebe/www/GhostBSD/GhostBSD.cgi +7 -0
  1596. data/lib/roebe/www/GhostBSD/GhostBSD.rb +39 -0
  1597. data/lib/roebe/www/GhostBSD/GhostBSD.sinatra +56 -0
  1598. data/lib/roebe/www/HDMI/HDMI.cgi +34 -0
  1599. data/lib/roebe/www/IntelliJ_IDEA/tutorial.cgi +82 -0
  1600. data/lib/roebe/www/LATEX/LATEX.md +29 -0
  1601. data/lib/roebe/www/LEDS/LEDS.cgi +7 -0
  1602. data/lib/roebe/www/LEDS/LEDS.rb +201 -0
  1603. data/lib/roebe/www/LEDS/LEDS.sinatra +58 -0
  1604. data/lib/roebe/www/OLEDS/OLEDS.md +44 -0
  1605. data/lib/roebe/www/PCR/PCR.cgi +106 -0
  1606. data/lib/roebe/www/R/R.cgi +9 -0
  1607. data/lib/roebe/www/R/R.rb +1492 -0
  1608. data/lib/roebe/www/R/R.sinatra +58 -0
  1609. data/lib/roebe/www/R/examples/boxplot_example.R +42 -0
  1610. data/lib/roebe/www/R/functions/functions.R +104 -0
  1611. data/lib/roebe/www/RAM/RAM.cgi +7 -0
  1612. data/lib/roebe/www/RAM/RAM.rb +254 -0
  1613. data/lib/roebe/www/RAM/RAM.sinatra +56 -0
  1614. data/lib/roebe/www/REST/REST.md +12 -0
  1615. data/lib/roebe/www/RNA/RNA.cgi +245 -0
  1616. data/lib/roebe/www/SDL/SDL.cgi +7 -0
  1617. data/lib/roebe/www/SDL/SDL.rb +710 -0
  1618. data/lib/roebe/www/SDL/SDL.sinatra +56 -0
  1619. data/lib/roebe/www/SQL/SQL.cgi +34 -0
  1620. data/lib/roebe/www/T-mobile/vienna.md +2 -0
  1621. data/lib/roebe/www/UNIX/UNIX.cgi +68 -0
  1622. data/lib/roebe/www/X3D/X3D.cgi +7 -0
  1623. data/lib/roebe/www/X3D/X3D.rb +46 -0
  1624. data/lib/roebe/www/X3D/X3D.sinatra +56 -0
  1625. data/lib/roebe/www/abwasch/abwasch.cgi +7 -0
  1626. data/lib/roebe/www/abwasch/abwasch.rb +116 -0
  1627. data/lib/roebe/www/abwasch/abwasch.sinatra +52 -0
  1628. data/lib/roebe/www/adobe_acrobat_reader/content.md +7 -0
  1629. data/lib/roebe/www/aging/aging.cgi +7 -0
  1630. data/lib/roebe/www/aging/aging.rb +1322 -0
  1631. data/lib/roebe/www/aging/aging.sinatra +56 -0
  1632. data/lib/roebe/www/agrarm/303/244rkte/agrarm/303/244rkte.cgi +209 -0
  1633. data/lib/roebe/www/aids/aids.cgi +7 -0
  1634. data/lib/roebe/www/aids/aids.rb +240 -0
  1635. data/lib/roebe/www/aids/aids.sinatra +56 -0
  1636. data/lib/roebe/www/ajax/ajax.cgi +7 -0
  1637. data/lib/roebe/www/ajax/ajax.rb +88 -0
  1638. data/lib/roebe/www/ajax/ajax.sinatra +56 -0
  1639. data/lib/roebe/www/algorithms/algorithms.cgi +7 -0
  1640. data/lib/roebe/www/algorithms/algorithms.rb +262 -0
  1641. data/lib/roebe/www/algorithms/algorithms.sinatra +56 -0
  1642. data/lib/roebe/www/alkohole/alkohole.cgi +61 -0
  1643. data/lib/roebe/www/allegro/allegro.cgi +7 -0
  1644. data/lib/roebe/www/allegro/allegro.rb +396 -0
  1645. data/lib/roebe/www/allegro/allegro.sinatra +56 -0
  1646. data/lib/roebe/www/alsa/alsa.cgi +7 -0
  1647. data/lib/roebe/www/alsa/alsa.rb +313 -0
  1648. data/lib/roebe/www/alsa/alsa.sinatra +56 -0
  1649. data/lib/roebe/www/amino_acids/amino_acids.cgi +7 -0
  1650. data/lib/roebe/www/amino_acids/amino_acids.rb +34 -0
  1651. data/lib/roebe/www/amino_acids/amino_acids.sinatra +56 -0
  1652. data/lib/roebe/www/amusing_bits/fussball_zitate.cgi +7 -0
  1653. data/lib/roebe/www/amusing_bits/fussball_zitate.rb +182 -0
  1654. data/lib/roebe/www/amusing_bits/fussball_zitate.sinatra +56 -0
  1655. data/lib/roebe/www/amusing_bits/george_bush/george_bush.cgi +7 -0
  1656. data/lib/roebe/www/amusing_bits/george_bush/george_bush.rb +189 -0
  1657. data/lib/roebe/www/amusing_bits/george_bush/george_bush.sinatra +56 -0
  1658. data/lib/roebe/www/amusing_bits/lustige_menschen/lustige_menschen.cgi +7 -0
  1659. data/lib/roebe/www/amusing_bits/lustige_menschen/lustige_menschen.rb +142 -0
  1660. data/lib/roebe/www/amusing_bits/lustige_menschen/lustige_menschen.sinatra +56 -0
  1661. data/lib/roebe/www/amusing_bits/lustige_tiere/lustige_tiere.cgi +9 -0
  1662. data/lib/roebe/www/amusing_bits/lustige_tiere/lustige_tiere.rb +211 -0
  1663. data/lib/roebe/www/amusing_bits/lustige_tiere/lustige_tiere.sinatra +56 -0
  1664. data/lib/roebe/www/amusing_bits/the_iraq_war_and_other_wars/the_iraq_war_and_other_wars.cgi +7 -0
  1665. data/lib/roebe/www/amusing_bits/the_iraq_war_and_other_wars/the_iraq_war_and_other_wars.rb +74 -0
  1666. data/lib/roebe/www/amusing_bits/the_iraq_war_and_other_wars/the_iraq_war_and_other_wars.sinatra +56 -0
  1667. data/lib/roebe/www/analytical_chemistry/content.md +2 -0
  1668. data/lib/roebe/www/animals/animals.cgi +31 -0
  1669. data/lib/roebe/www/anthropology/anthropology.cgi +7 -0
  1670. data/lib/roebe/www/anthropology/anthropology.rb +26 -0
  1671. data/lib/roebe/www/anthropology/anthropology.sinatra +56 -0
  1672. data/lib/roebe/www/antibiotics/antibiotics.cgi +68 -0
  1673. data/lib/roebe/www/antibodies/antibodies.cgi +7 -0
  1674. data/lib/roebe/www/antibodies/antibodies.rb +311 -0
  1675. data/lib/roebe/www/antibodies/antibodies.sinatra +56 -0
  1676. data/lib/roebe/www/ants/ants.cgi +7 -0
  1677. data/lib/roebe/www/ants/ants.rb +150 -0
  1678. data/lib/roebe/www/ants/ants.sinatra +56 -0
  1679. data/lib/roebe/www/ants/news.md +90 -0
  1680. data/lib/roebe/www/apache/apache.cgi +7 -0
  1681. data/lib/roebe/www/apache/apache.rb +1164 -0
  1682. data/lib/roebe/www/apache/apache.sinatra +56 -0
  1683. data/lib/roebe/www/apache/configuration/add_handler.conf +26 -0
  1684. data/lib/roebe/www/apache/configuration/add_type.conf +29 -0
  1685. data/lib/roebe/www/apache/configuration/autogenerated_rewrite_rules.conf +66 -0
  1686. data/lib/roebe/www/apache/configuration/document_root.conf +32 -0
  1687. data/lib/roebe/www/apache/configuration/email.conf +8 -0
  1688. data/lib/roebe/www/apache/configuration/error_log.conf +36 -0
  1689. data/lib/roebe/www/apache/configuration/load_modules.conf +48 -0
  1690. data/lib/roebe/www/apache/configuration/mime_module.conf +11 -0
  1691. data/lib/roebe/www/apache/configuration/php.conf +22 -0
  1692. data/lib/roebe/www/apache/configuration/proxy_html_module.conf +6 -0
  1693. data/lib/roebe/www/apache/configuration/rewrite_rules.conf +137 -0
  1694. data/lib/roebe/www/apache/configuration/ruby.conf +13 -0
  1695. data/lib/roebe/www/apache/configuration/server_name.conf +10 -0
  1696. data/lib/roebe/www/apache/configuration/server_root.conf +6 -0
  1697. data/lib/roebe/www/apache/configuration/unixd_module.conf +22 -0
  1698. data/lib/roebe/www/apoptose/apoptose.cgi +31 -0
  1699. data/lib/roebe/www/apple/apple.cgi +7 -0
  1700. data/lib/roebe/www/apple/apple.rb +237 -0
  1701. data/lib/roebe/www/apple/apple.sinatra +56 -0
  1702. data/lib/roebe/www/archaea/archaea.cgi +7 -0
  1703. data/lib/roebe/www/archaea/archaea.rb +540 -0
  1704. data/lib/roebe/www/archaea/archaea.sinatra +56 -0
  1705. data/lib/roebe/www/arduino/arduino.cgi +7 -0
  1706. data/lib/roebe/www/arduino/arduino.rb +275 -0
  1707. data/lib/roebe/www/arduino/arduino.sinatra +56 -0
  1708. data/lib/roebe/www/arduino/sketches/0001_blink.sketch +30 -0
  1709. data/lib/roebe/www/ariolante_and_the_kitten/AriolanteAndTheKitten.rb +92 -0
  1710. data/lib/roebe/www/ariolante_and_the_kitten/ariolante_and_the_kitten.cgi +7 -0
  1711. data/lib/roebe/www/ariolante_and_the_kitten/ariolante_and_the_kitten.html +45455 -0
  1712. data/lib/roebe/www/ariolante_and_the_kitten/ariolante_and_the_kitten.md +104 -0
  1713. data/lib/roebe/www/ariolante_and_the_kitten/ariolante_and_the_kitten.rb +113 -0
  1714. data/lib/roebe/www/ariolante_and_the_kitten/ariolante_and_the_kitten.sinatra +61 -0
  1715. data/lib/roebe/www/armaturen/armaturen.cgi +7 -0
  1716. data/lib/roebe/www/armaturen/armaturen.rb +93 -0
  1717. data/lib/roebe/www/armaturen/armaturen.sinatra +56 -0
  1718. data/lib/roebe/www/art/art.cgi +7 -0
  1719. data/lib/roebe/www/art/art.rb +288 -0
  1720. data/lib/roebe/www/art/art.sinatra +52 -0
  1721. data/lib/roebe/www/artificial_intelligence/artificial_intelligence.cgi +7 -0
  1722. data/lib/roebe/www/artificial_intelligence/artificial_intelligence.rb +589 -0
  1723. data/lib/roebe/www/artificial_intelligence/artificial_intelligence.sinatra +56 -0
  1724. data/lib/roebe/www/atomkraftwerke/atomkraftwerke.cgi +7 -0
  1725. data/lib/roebe/www/atomkraftwerke/atomkraftwerke.rb +320 -0
  1726. data/lib/roebe/www/atomkraftwerke/atomkraftwerke.sinatra +56 -0
  1727. data/lib/roebe/www/audacity/audacity.cgi +29 -0
  1728. data/lib/roebe/www/audio/audio.cgi +9 -0
  1729. data/lib/roebe/www/audio/audio.rb +2747 -0
  1730. data/lib/roebe/www/audio/audio.sinatra +56 -0
  1731. data/lib/roebe/www/avisynth/avisynth.cgi +173 -0
  1732. data/lib/roebe/www/bacteria/bacteria.cgi +7 -0
  1733. data/lib/roebe/www/bacteria/bacteria.rb +54 -0
  1734. data/lib/roebe/www/bacteria/bacteria.sinatra +56 -0
  1735. data/lib/roebe/www/batterien/batterien.cgi +9 -0
  1736. data/lib/roebe/www/batterien/batterien.rb +162 -0
  1737. data/lib/roebe/www/batterien/batterien.sinatra +56 -0
  1738. data/lib/roebe/www/beamte/beamte.cgi +7 -0
  1739. data/lib/roebe/www/beamte/beamte.rb +19 -0
  1740. data/lib/roebe/www/beamte/beamte.sinatra +56 -0
  1741. data/lib/roebe/www/beauty/beauty.cgi +9 -0
  1742. data/lib/roebe/www/beauty/beauty.rb +132 -0
  1743. data/lib/roebe/www/beauty/beauty.sinatra +56 -0
  1744. data/lib/roebe/www/best_voices/best_voices.cgi +7 -0
  1745. data/lib/roebe/www/best_voices/best_voices.rb +71 -0
  1746. data/lib/roebe/www/best_voices/best_voices.sinatra +56 -0
  1747. data/lib/roebe/www/biobricks/biobricks.cgi +7 -0
  1748. data/lib/roebe/www/biobricks/biobricks.rb +19 -0
  1749. data/lib/roebe/www/biobricks/biobricks.sinatra +56 -0
  1750. data/lib/roebe/www/biochemistry/biochemistry.cgi +7 -0
  1751. data/lib/roebe/www/biochemistry/biochemistry.rb +403 -0
  1752. data/lib/roebe/www/biochemistry/biochemistry.sinatra +56 -0
  1753. data/lib/roebe/www/biochips/biochips.cgi +26 -0
  1754. data/lib/roebe/www/bioinformatics/bioinformatics.cgi +11 -0
  1755. data/lib/roebe/www/bioinformatics/bioinformatics.rb +416 -0
  1756. data/lib/roebe/www/bioinformatics/bioinformatics.sinatra +56 -0
  1757. data/lib/roebe/www/biology/biology.cgi +137 -0
  1758. data/lib/roebe/www/biology/biology.md +19 -0
  1759. data/lib/roebe/www/biomarkers/biomarkers.cgi +138 -0
  1760. data/lib/roebe/www/biomaterials/biomaterials.cgi +7 -0
  1761. data/lib/roebe/www/biomaterials/biomaterials.rb +349 -0
  1762. data/lib/roebe/www/biomaterials/biomaterials.sinatra +56 -0
  1763. data/lib/roebe/www/biotechnology/biotechnology.cgi +7 -0
  1764. data/lib/roebe/www/biotechnology/biotechnology.rb +525 -0
  1765. data/lib/roebe/www/biotechnology/biotechnology.sinatra +56 -0
  1766. data/lib/roebe/www/blender3d/blender3d.cgi +7 -0
  1767. data/lib/roebe/www/blender3d/blender3d.rb +265 -0
  1768. data/lib/roebe/www/blender3d/blender3d.sinatra +56 -0
  1769. data/lib/roebe/www/blog/blog.cgi +9 -0
  1770. data/lib/roebe/www/blog/blog.rb +258 -0
  1771. data/lib/roebe/www/blog/blog.sinatra +56 -0
  1772. data/lib/roebe/www/bluefish/README.md +5 -0
  1773. data/lib/roebe/www/bluefish/STD.bfproject +62 -0
  1774. data/lib/roebe/www/bluefish/STD.bfproject~ +62 -0
  1775. data/lib/roebe/www/bluefish/TODO.md +6 -0
  1776. data/lib/roebe/www/bodenkunde/bodenkunde.cgi +128 -0
  1777. data/lib/roebe/www/bsd/bsd.cgi +7 -0
  1778. data/lib/roebe/www/bsd/bsd.rb +90 -0
  1779. data/lib/roebe/www/bsd/bsd.sinatra +56 -0
  1780. data/lib/roebe/www/calculator/calculator.cgi +7 -0
  1781. data/lib/roebe/www/calculator/calculator.rb +17 -0
  1782. data/lib/roebe/www/calculator/calculator.sinatra +56 -0
  1783. data/lib/roebe/www/cameras/cameras.cgi +9 -0
  1784. data/lib/roebe/www/cameras/cameras.rb +358 -0
  1785. data/lib/roebe/www/cameras/cameras.sinatra +56 -0
  1786. data/lib/roebe/www/cancer/cancer.cgi +7 -0
  1787. data/lib/roebe/www/cancer/cancer.rb +270 -0
  1788. data/lib/roebe/www/cancer/cancer.sinatra +56 -0
  1789. data/lib/roebe/www/cassette/cassette.cgi +719 -0
  1790. data/lib/roebe/www/cats/cats.cgi +7 -0
  1791. data/lib/roebe/www/cats/cats.rb +310 -0
  1792. data/lib/roebe/www/cats/cats.sinatra +56 -0
  1793. data/lib/roebe/www/cell_cultures/cell_cultures.cgi +378 -0
  1794. data/lib/roebe/www/cellbiology/cellbiology.cgi +7 -0
  1795. data/lib/roebe/www/cellbiology/cellbiology.rb +1114 -0
  1796. data/lib/roebe/www/cellbiology/cellbiology.sinatra +56 -0
  1797. data/lib/roebe/www/cellulose/cellulose.cgi +7 -0
  1798. data/lib/roebe/www/cellulose/cellulose.rb +28 -0
  1799. data/lib/roebe/www/cellulose/cellulose.sinatra +56 -0
  1800. data/lib/roebe/www/chemistry/chemistry.cgi +7 -0
  1801. data/lib/roebe/www/chemistry/chemistry.rb +1961 -0
  1802. data/lib/roebe/www/chemistry/chemistry.sinatra +58 -0
  1803. data/lib/roebe/www/chromatography/content.md +2 -0
  1804. data/lib/roebe/www/chrome_and_chromium/chrome_and_chromium.cgi +7 -0
  1805. data/lib/roebe/www/chrome_and_chromium/chrome_and_chromium.rb +295 -0
  1806. data/lib/roebe/www/chrome_and_chromium/chrome_and_chromium.sinatra +56 -0
  1807. data/lib/roebe/www/cmake/CMakeTemplate.txt +48 -0
  1808. data/lib/roebe/www/cmake/cmake.cgi +7 -0
  1809. data/lib/roebe/www/cmake/cmake.rb +142 -0
  1810. data/lib/roebe/www/cmake/cmake.sinatra +52 -0
  1811. data/lib/roebe/www/codecs/codecs.cgi +94 -0
  1812. data/lib/roebe/www/codepages/codepages.cgi +9 -0
  1813. data/lib/roebe/www/codepages/codepages.rb +17 -0
  1814. data/lib/roebe/www/codepages/codepages.sinatra +56 -0
  1815. data/lib/roebe/www/cognitive_biology/cognitive_biology.cgi +805 -0
  1816. data/lib/roebe/www/cognitive_biology/cognitive_biology.html +40634 -0
  1817. data/lib/roebe/www/compact_disc/compact_disc.cgi +7 -0
  1818. data/lib/roebe/www/compact_disc/compact_disc.rb +124 -0
  1819. data/lib/roebe/www/compact_disc/compact_disc.sinatra +56 -0
  1820. data/lib/roebe/www/compiling/compiling.cgi +9 -0
  1821. data/lib/roebe/www/compiling/compiling.rb +2580 -0
  1822. data/lib/roebe/www/compiling/compiling.sinatra +52 -0
  1823. data/lib/roebe/www/componists/vivaldi.cgi +224 -0
  1824. data/lib/roebe/www/computers/computers.cgi +108 -0
  1825. data/lib/roebe/www/conference_talks/conference_talks.md +11 -0
  1826. data/lib/roebe/www/conky/conky.cgi +7 -0
  1827. data/lib/roebe/www/conky/conky.rb +132 -0
  1828. data/lib/roebe/www/conky/conky.sinatra +56 -0
  1829. data/lib/roebe/www/conky/my_conkyrc_04.02.2020 +83 -0
  1830. data/lib/roebe/www/connectbox/connectbox.cgi +123 -0
  1831. data/lib/roebe/www/consumers/consumers.cgi +7 -0
  1832. data/lib/roebe/www/consumers/consumers.rb +23 -0
  1833. data/lib/roebe/www/consumers/consumers.sinatra +56 -0
  1834. data/lib/roebe/www/covid19/covid19.cgi +10 -0
  1835. data/lib/roebe/www/covid19/covid19.rb +2160 -0
  1836. data/lib/roebe/www/covid19/covid19.sinatra +56 -0
  1837. data/lib/roebe/www/creativity/creativity.cgi +9 -0
  1838. data/lib/roebe/www/creativity/creativity.rb +40 -0
  1839. data/lib/roebe/www/creativity/creativity.sinatra +56 -0
  1840. data/lib/roebe/www/crispr/crispr.cgi +7 -0
  1841. data/lib/roebe/www/crispr/crispr.rb +317 -0
  1842. data/lib/roebe/www/crispr/crispr.sinatra +56 -0
  1843. data/lib/roebe/www/cron/cron.cgi +7 -0
  1844. data/lib/roebe/www/cron/cron.rb +99 -0
  1845. data/lib/roebe/www/cron/cron.sinatra +56 -0
  1846. data/lib/roebe/www/cyanobacteria/cyanobacteria.cgi +7 -0
  1847. data/lib/roebe/www/cyanobacteria/cyanobacteria.rb +127 -0
  1848. data/lib/roebe/www/cyanobacteria/cyanobacteria.sinatra +56 -0
  1849. data/lib/roebe/www/cytogenetics/cytogenetics.cgi +7 -0
  1850. data/lib/roebe/www/cytogenetics/cytogenetics.rb +41 -0
  1851. data/lib/roebe/www/cytogenetics/cytogenetics.sinatra +56 -0
  1852. data/lib/roebe/www/databases/databases.cgi +78 -0
  1853. data/lib/roebe/www/databases/postgresql/postgresql.cgi +7 -0
  1854. data/lib/roebe/www/databases/postgresql/postgresql.rb +323 -0
  1855. data/lib/roebe/www/databases/postgresql/postgresql.sinatra +56 -0
  1856. data/lib/roebe/www/databases/postgresql/psqlrc +22 -0
  1857. data/lib/roebe/www/databases/sqlite/sqlite.cgi +7 -0
  1858. data/lib/roebe/www/databases/sqlite/sqlite.rb +625 -0
  1859. data/lib/roebe/www/databases/sqlite/sqlite.sinatra +56 -0
  1860. data/lib/roebe/www/decibel/decibel.cgi +96 -0
  1861. data/lib/roebe/www/designing/SLOGANS.md +3 -0
  1862. data/lib/roebe/www/designing_and_art/designing_and_art.cgi +9 -0
  1863. data/lib/roebe/www/designing_and_art/designing_and_art.rb +755 -0
  1864. data/lib/roebe/www/designing_and_art/designing_and_art.sinatra +56 -0
  1865. data/lib/roebe/www/designing_on_linux/designing_on_linux.cgi +7 -0
  1866. data/lib/roebe/www/designing_on_linux/designing_on_linux.rb +66 -0
  1867. data/lib/roebe/www/designing_on_linux/designing_on_linux.sinatra +56 -0
  1868. data/lib/roebe/www/developmental_biology/developmental_biology.cgi +7 -0
  1869. data/lib/roebe/www/developmental_biology/developmental_biology.rb +503 -0
  1870. data/lib/roebe/www/developmental_biology/developmental_biology.sinatra +56 -0
  1871. data/lib/roebe/www/die_erde/die_erde.cgi +7 -0
  1872. data/lib/roebe/www/die_erde/die_erde.rb +45 -0
  1873. data/lib/roebe/www/die_erde/die_erde.sinatra +56 -0
  1874. data/lib/roebe/www/die_herrenlose_katze/die_herrenlose_katze.cgi +7 -0
  1875. data/lib/roebe/www/die_herrenlose_katze/die_herrenlose_katze.html +41583 -0
  1876. data/lib/roebe/www/die_herrenlose_katze/die_herrenlose_katze.rb +476 -0
  1877. data/lib/roebe/www/die_herrenlose_katze/die_herrenlose_katze.sinatra +61 -0
  1878. data/lib/roebe/www/die_katze_im_schnee/DieKatzeImSchnee.rb +80 -0
  1879. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.cgi +7 -0
  1880. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.html +41461 -0
  1881. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.md +185 -0
  1882. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.rb +111 -0
  1883. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.sinatra +61 -0
  1884. data/lib/roebe/www/direct_democracy/direct_democracy.cgi +7 -0
  1885. data/lib/roebe/www/direct_democracy/direct_democracy.rb +45 -0
  1886. data/lib/roebe/www/direct_democracy/direct_democracy.sinatra +56 -0
  1887. data/lib/roebe/www/distcc/distcc.cgi +7 -0
  1888. data/lib/roebe/www/distcc/distcc.rb +78 -0
  1889. data/lib/roebe/www/distcc/distcc.sinatra +56 -0
  1890. data/lib/roebe/www/dna_repair_and_mutations/dna_repair_and_mutations.cgi +448 -0
  1891. data/lib/roebe/www/dna_replication/DNA_replication.cgi +32 -0
  1892. data/lib/roebe/www/do_androids_dream_of_electric_sheep/README.md +2 -0
  1893. data/lib/roebe/www/do_androids_dream_of_electric_sheep/summary.md +4 -0
  1894. data/lib/roebe/www/documentation/README.md +3 -0
  1895. data/lib/roebe/www/documentation/documentation.rb +98 -0
  1896. data/lib/roebe/www/dolphin/add_to_vlc_playlist.desktop +12 -0
  1897. data/lib/roebe/www/dosbox/autogenerated_dosbox.conf +776 -0
  1898. data/lib/roebe/www/dosbox/dosbox.cgi +7 -0
  1899. data/lib/roebe/www/dosbox/dosbox.rb +241 -0
  1900. data/lib/roebe/www/dosbox/dosbox.sinatra +52 -0
  1901. data/lib/roebe/www/dosboxx/dosboxx.cgi +74 -0
  1902. data/lib/roebe/www/drucker/drucker.cgi +7 -0
  1903. data/lib/roebe/www/drucker/drucker.rb +256 -0
  1904. data/lib/roebe/www/drucker/drucker.sinatra +56 -0
  1905. data/lib/roebe/www/economy/economy.cgi +7 -0
  1906. data/lib/roebe/www/economy/economy.rb +16 -0
  1907. data/lib/roebe/www/economy/economy.sinatra +56 -0
  1908. data/lib/roebe/www/economy/mieten_und_wohnen.cgi +7 -0
  1909. data/lib/roebe/www/economy/mieten_und_wohnen.rb +39 -0
  1910. data/lib/roebe/www/economy/mieten_und_wohnen.sinatra +56 -0
  1911. data/lib/roebe/www/elektrophorese/elektrophorese.cgi +277 -0
  1912. data/lib/roebe/www/emacs/emacs.cgi +7 -0
  1913. data/lib/roebe/www/emacs/emacs.rb +71 -0
  1914. data/lib/roebe/www/emacs/emacs.sinatra +56 -0
  1915. data/lib/roebe/www/embeddable_interface.rb +54 -0
  1916. data/lib/roebe/www/encodings/encodings.cgi +7 -0
  1917. data/lib/roebe/www/encodings/encodings.rb +80 -0
  1918. data/lib/roebe/www/encodings/encodings.sinatra +56 -0
  1919. data/lib/roebe/www/english/english.cgi +7 -0
  1920. data/lib/roebe/www/english/english.rb +62 -0
  1921. data/lib/roebe/www/english/english.sinatra +52 -0
  1922. data/lib/roebe/www/enzymes/enzymes.cgi +53 -0
  1923. data/lib/roebe/www/epigenetics/epigenetics.cgi +75 -0
  1924. data/lib/roebe/www/erben/erben.cgi +7 -0
  1925. data/lib/roebe/www/erben/erben.rb +45 -0
  1926. data/lib/roebe/www/erben/erben.sinatra +56 -0
  1927. data/lib/roebe/www/ern/303/244hrung/ern/303/244hrung.cgi +7 -0
  1928. data/lib/roebe/www/ern/303/244hrung/ern/303/244hrung.rb +263 -0
  1929. data/lib/roebe/www/ern/303/244hrung/ern/303/244hrung.sinatra +56 -0
  1930. data/lib/roebe/www/erste_hilfe/erste_hilfe.cgi +416 -0
  1931. data/lib/roebe/www/ethernet/ethernet.cgi +27 -0
  1932. data/lib/roebe/www/ethik/ethik.md +4 -0
  1933. data/lib/roebe/www/euphemismen_und_werturteile/euphemismen_und_werturteile.cgi +9 -0
  1934. data/lib/roebe/www/euphemismen_und_werturteile/euphemismen_und_werturteile.rb +301 -0
  1935. data/lib/roebe/www/euphemismen_und_werturteile/euphemismen_und_werturteile.sinatra +56 -0
  1936. data/lib/roebe/www/evolution/evolution.cgi +7 -0
  1937. data/lib/roebe/www/evolution/evolution.rb +457 -0
  1938. data/lib/roebe/www/evolution/evolution.sinatra +52 -0
  1939. data/lib/roebe/www/excel/excel.cgi +7 -0
  1940. data/lib/roebe/www/excel/excel.rb +23 -0
  1941. data/lib/roebe/www/excel/excel.sinatra +56 -0
  1942. data/lib/roebe/www/festplatten/festplatten.cgi +7 -0
  1943. data/lib/roebe/www/festplatten/festplatten.rb +839 -0
  1944. data/lib/roebe/www/festplatten/festplatten.sinatra +56 -0
  1945. data/lib/roebe/www/ffmpeg/ffmpeg.cgi +454 -0
  1946. data/lib/roebe/www/fire/fire.cgi +9 -0
  1947. data/lib/roebe/www/fire/fire.rb +803 -0
  1948. data/lib/roebe/www/fire/fire.sinatra +56 -0
  1949. data/lib/roebe/www/firefox/firefox.cgi +11 -0
  1950. data/lib/roebe/www/firefox/firefox.rb +1317 -0
  1951. data/lib/roebe/www/firefox/firefox.sinatra +56 -0
  1952. data/lib/roebe/www/firefox/mozconfig +93 -0
  1953. data/lib/roebe/www/flexible_foto_gallery/README.md +3 -0
  1954. data/lib/roebe/www/flexible_foto_gallery/flexible_foto_gallery.cgi +64 -0
  1955. data/lib/roebe/www/food/food.cgi +7 -0
  1956. data/lib/roebe/www/food/food.rb +369 -0
  1957. data/lib/roebe/www/food/food.sinatra +56 -0
  1958. data/lib/roebe/www/fox/fox.cgi +7 -0
  1959. data/lib/roebe/www/fox/fox.rb +890 -0
  1960. data/lib/roebe/www/fox/fox.sinatra +56 -0
  1961. data/lib/roebe/www/ftp/ftp.cgi +7 -0
  1962. data/lib/roebe/www/ftp/ftp.rb +134 -0
  1963. data/lib/roebe/www/ftp/ftp.sinatra +56 -0
  1964. data/lib/roebe/www/funerary_archaeology/funerary_archaeology.cgi +754 -0
  1965. data/lib/roebe/www/funk/funk.cgi +7 -0
  1966. data/lib/roebe/www/funk/funk.rb +385 -0
  1967. data/lib/roebe/www/funk/funk.sinatra +56 -0
  1968. data/lib/roebe/www/gedichte/gedichte.cgi +7 -0
  1969. data/lib/roebe/www/gedichte/gedichte.rb +13 -0
  1970. data/lib/roebe/www/gedichte/gedichte.sinatra +56 -0
  1971. data/lib/roebe/www/gene_expression/SLOGANS.md +28 -0
  1972. data/lib/roebe/www/gene_expression/gene_expression.cgi +7 -0
  1973. data/lib/roebe/www/gene_expression/gene_expression.rb +209 -0
  1974. data/lib/roebe/www/gene_therapy/06.08.2008_Human_gene_therapy_for_RPE65_isomerase_deficiency.md +29 -0
  1975. data/lib/roebe/www/gene_therapy/28.11.2008_Gentherapie_am_Auge_erfolgreich.md +41 -0
  1976. data/lib/roebe/www/gene_therapy/31.01.2000_Earlier_Gene_Test_Deaths_Not_Reported.md +62 -0
  1977. data/lib/roebe/www/gene_therapy/SLOGANS.md +25 -0
  1978. data/lib/roebe/www/genetic_diseases/genetic_diseases.cgi +142 -0
  1979. data/lib/roebe/www/genetics/genetics.cgi +7 -0
  1980. data/lib/roebe/www/genetics/genetics.rb +1447 -0
  1981. data/lib/roebe/www/genetics/genetics.sinatra +52 -0
  1982. data/lib/roebe/www/genomics/genomics.cgi +7 -0
  1983. data/lib/roebe/www/genomics/genomics.rb +225 -0
  1984. data/lib/roebe/www/genomics/genomics.sinatra +56 -0
  1985. data/lib/roebe/www/geologie/geologie.cgi +156 -0
  1986. data/lib/roebe/www/geometrie/geometrie.cgi +7 -0
  1987. data/lib/roebe/www/geometrie/geometrie.rb +387 -0
  1988. data/lib/roebe/www/geometrie/geometrie.sinatra +56 -0
  1989. data/lib/roebe/www/gesundheit/diabetes/diabetes.cgi +7 -0
  1990. data/lib/roebe/www/gesundheit/diabetes/diabetes.rb +71 -0
  1991. data/lib/roebe/www/gesundheit/diabetes/diabetes.sinatra +56 -0
  1992. data/lib/roebe/www/gesundheit/metabolic_syndrome/metabolic_syndrome.cgi +7 -0
  1993. data/lib/roebe/www/gesundheit/metabolic_syndrome/metabolic_syndrome.rb +47 -0
  1994. data/lib/roebe/www/gesundheit/metabolic_syndrome/metabolic_syndrome.sinatra +56 -0
  1995. data/lib/roebe/www/gesundheit/myokarditis/myokarditis.cgi +7 -0
  1996. data/lib/roebe/www/gesundheit/myokarditis/myokarditis.rb +113 -0
  1997. data/lib/roebe/www/gesundheit/myokarditis/myokarditis.sinatra +56 -0
  1998. data/lib/roebe/www/gimp/gimp.cgi +7 -0
  1999. data/lib/roebe/www/gimp/gimp.rb +1519 -0
  2000. data/lib/roebe/www/gimp/gimp.sinatra +56 -0
  2001. data/lib/roebe/www/ginger_der_bandit/GingerDerBandit.rb +92 -0
  2002. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.cgi +7 -0
  2003. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.html +40757 -0
  2004. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.md +518 -0
  2005. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.rb +119 -0
  2006. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.sinatra +61 -0
  2007. data/lib/roebe/www/git/git.cgi +7 -0
  2008. data/lib/roebe/www/git/git.rb +264 -0
  2009. data/lib/roebe/www/git/git.sinatra +52 -0
  2010. data/lib/roebe/www/git/gitconfig +7 -0
  2011. data/lib/roebe/www/gnuplot/force.dat +16 -0
  2012. data/lib/roebe/www/gnuplot/gnuplot.cgi +7 -0
  2013. data/lib/roebe/www/gnuplot/gnuplot.rb +431 -0
  2014. data/lib/roebe/www/gnuplot/gnuplot.sinatra +56 -0
  2015. data/lib/roebe/www/gnuplot/number_of_eukaryotic_genes.dat +25 -0
  2016. data/lib/roebe/www/google/google.cgi +7 -0
  2017. data/lib/roebe/www/google/google.rb +49 -0
  2018. data/lib/roebe/www/google/google.sinatra +56 -0
  2019. data/lib/roebe/www/graphviz/graphviz.cgi +7 -0
  2020. data/lib/roebe/www/graphviz/graphviz.rb +196 -0
  2021. data/lib/roebe/www/graphviz/graphviz.sinatra +56 -0
  2022. data/lib/roebe/www/grub/README.md +1 -0
  2023. data/lib/roebe/www/grub/grub.cgi +7 -0
  2024. data/lib/roebe/www/grub/grub.rb +615 -0
  2025. data/lib/roebe/www/grub/grub.sinatra +56 -0
  2026. data/lib/roebe/www/grub/std_menu.lst +87 -0
  2027. data/lib/roebe/www/haiku/haiku.cgi +9 -0
  2028. data/lib/roebe/www/haiku/haiku.rb +73 -0
  2029. data/lib/roebe/www/haiku/haiku.sinatra +56 -0
  2030. data/lib/roebe/www/hardware/computersysteme/computersysteme.cgi +7 -0
  2031. data/lib/roebe/www/hardware/computersysteme/computersysteme.rb +517 -0
  2032. data/lib/roebe/www/hardware/computersysteme/computersysteme.sinatra +56 -0
  2033. data/lib/roebe/www/hardware/heizk/303/266rper/heizk/303/266rper.cgi +7 -0
  2034. data/lib/roebe/www/hardware/heizk/303/266rper/heizk/303/266rper.rb +62 -0
  2035. data/lib/roebe/www/hardware/heizk/303/266rper/heizk/303/266rper.sinatra +56 -0
  2036. data/lib/roebe/www/hardware/kabel_und_adaptoren/kabel_und_adaptoren.cgi +7 -0
  2037. data/lib/roebe/www/hardware/kabel_und_adaptoren/kabel_und_adaptoren.rb +394 -0
  2038. data/lib/roebe/www/hardware/kabel_und_adaptoren/kabel_und_adaptoren.sinatra +56 -0
  2039. data/lib/roebe/www/hardware/schrauben_muttern_und_n/303/244gel/schrauben_muttern_und_n/303/244gel.cgi +7 -0
  2040. data/lib/roebe/www/hardware/schrauben_muttern_und_n/303/244gel/schrauben_muttern_und_n/303/244gel.rb +100 -0
  2041. data/lib/roebe/www/hardware/schrauben_muttern_und_n/303/244gel/schrauben_muttern_und_n/303/244gel.sinatra +56 -0
  2042. data/lib/roebe/www/hardware_assembly/hardware_assembly.cgi +10 -0
  2043. data/lib/roebe/www/hardware_assembly/hardware_assembly.rb +265 -0
  2044. data/lib/roebe/www/hardware_assembly/hardware_assembly.sinatra +56 -0
  2045. data/lib/roebe/www/heart/heart.cgi +7 -0
  2046. data/lib/roebe/www/heart/heart.rb +53 -0
  2047. data/lib/roebe/www/heart/heart.sinatra +56 -0
  2048. data/lib/roebe/www/history/KNOWLEDGE_BITS.md +2 -0
  2049. data/lib/roebe/www/history/yaml/scientific_history.yml +1 -0
  2050. data/lib/roebe/www/hiveos/hiveos.cgi +9 -0
  2051. data/lib/roebe/www/hiveos/hiveos.rb +836 -0
  2052. data/lib/roebe/www/hiveos/hiveos.sinatra +56 -0
  2053. data/lib/roebe/www/hormone/hormone.cgi +76 -0
  2054. data/lib/roebe/www/htop/htop.md +1 -0
  2055. data/lib/roebe/www/humans_are_funny/humans_are_funny.cgi +7 -0
  2056. data/lib/roebe/www/humans_are_funny/humans_are_funny.rb +23 -0
  2057. data/lib/roebe/www/humans_are_funny/humans_are_funny.sinatra +52 -0
  2058. data/lib/roebe/www/h/303/244user/h/303/244user.cgi +7 -0
  2059. data/lib/roebe/www/h/303/244user/h/303/244user.rb +115 -0
  2060. data/lib/roebe/www/h/303/244user/h/303/244user.sinatra +56 -0
  2061. data/lib/roebe/www/icewm/icewm.cgi +7 -0
  2062. data/lib/roebe/www/icewm/icewm.rb +34 -0
  2063. data/lib/roebe/www/icewm/icewm.sinatra +56 -0
  2064. data/lib/roebe/www/icewm/keys +88 -0
  2065. data/lib/roebe/www/icewm/menu_file +171 -0
  2066. data/lib/roebe/www/icewm/preferences +1043 -0
  2067. data/lib/roebe/www/icewm/programs +322 -0
  2068. data/lib/roebe/www/icewm/theme +11 -0
  2069. data/lib/roebe/www/icewm/toolbar +7 -0
  2070. data/lib/roebe/www/icewm/winoptions +61 -0
  2071. data/lib/roebe/www/ifpi_austria/ifpi_austria.cgi +7 -0
  2072. data/lib/roebe/www/ifpi_austria/ifpi_austria.rb +351 -0
  2073. data/lib/roebe/www/ifpi_austria/ifpi_austria.sinatra +56 -0
  2074. data/lib/roebe/www/image_formats/image_formats.cgi +50 -0
  2075. data/lib/roebe/www/imagemagick/README.md +45 -0
  2076. data/lib/roebe/www/imagemagick/imagemagick.cgi +31 -0
  2077. data/lib/roebe/www/images/images.cgi +26 -0
  2078. data/lib/roebe/www/immunology/immunology.cgi +7 -0
  2079. data/lib/roebe/www/immunology/immunology.rb +1601 -0
  2080. data/lib/roebe/www/immunology/immunology.sinatra +56 -0
  2081. data/lib/roebe/www/individual_page_viewer/individual_page_viewer.cgi +7 -0
  2082. data/lib/roebe/www/individual_page_viewer/individual_page_viewer.rb +41 -0
  2083. data/lib/roebe/www/individual_page_viewer/individual_page_viewer.sinatra +52 -0
  2084. data/lib/roebe/www/industrial_chemistry/industrial_chemistry.cgi +50 -0
  2085. data/lib/roebe/www/informatik/SLOGANS.md +13 -0
  2086. data/lib/roebe/www/inhaltsverzeichnis/inhaltsverzeichnis.yml +65 -0
  2087. data/lib/roebe/www/inkscape/inkscape.cgi +9 -0
  2088. data/lib/roebe/www/inkscape/inkscape.rb +84 -0
  2089. data/lib/roebe/www/inkscape/inkscape.sinatra +56 -0
  2090. data/lib/roebe/www/inotify/inotify.cgi +39 -0
  2091. data/lib/roebe/www/inspirational_people/inspirational_people.cgi +11 -0
  2092. data/lib/roebe/www/inspirational_people/inspirational_people.rb +645 -0
  2093. data/lib/roebe/www/inspirational_people/inspirational_people.sinatra +56 -0
  2094. data/lib/roebe/www/interesting_linux_distributions/interesting_linux_distributions.md +71 -0
  2095. data/lib/roebe/www/interviews/interviews.cgi +7 -0
  2096. data/lib/roebe/www/interviews/interviews.rb +14 -0
  2097. data/lib/roebe/www/interviews/interviews.sinatra +56 -0
  2098. data/lib/roebe/www/irc/irc.cgi +7 -0
  2099. data/lib/roebe/www/irc/irc.rb +41 -0
  2100. data/lib/roebe/www/irc/irc.sinatra +56 -0
  2101. data/lib/roebe/www/irc_quotes/irc_quotes.md +835 -0
  2102. data/lib/roebe/www/jobs/jobs.cgi +9 -0
  2103. data/lib/roebe/www/jobs/jobs.rb +100 -0
  2104. data/lib/roebe/www/jobs/jobs.sinatra +56 -0
  2105. data/lib/roebe/www/json/example1.json +18 -0
  2106. data/lib/roebe/www/json/json.cgi +7 -0
  2107. data/lib/roebe/www/json/json.rb +32 -0
  2108. data/lib/roebe/www/json/json.sinatra +56 -0
  2109. data/lib/roebe/www/jupyter/content.md +34 -0
  2110. data/lib/roebe/www/kaizen/kaizen.cgi +7 -0
  2111. data/lib/roebe/www/kaizen/kaizen.rb +15 -0
  2112. data/lib/roebe/www/kaizen/kaizen.sinatra +56 -0
  2113. data/lib/roebe/www/kde/DEPRECATED_kde.cgi +1266 -0
  2114. data/lib/roebe/www/kde/kde.cgi +7 -0
  2115. data/lib/roebe/www/kde/kde.rb +60 -0
  2116. data/lib/roebe/www/kde/kde.sinatra +56 -0
  2117. data/lib/roebe/www/kde/konsole_multiple_tabs +10 -0
  2118. data/lib/roebe/www/kde/konsolerc +40 -0
  2119. data/lib/roebe/www/kde/konsoleui.rc +65 -0
  2120. data/lib/roebe/www/kde/yakuakerc +8 -0
  2121. data/lib/roebe/www/klimabonus/klimabonus.md +11 -0
  2122. data/lib/roebe/www/klimawandel/klimawandel.cgi +7 -0
  2123. data/lib/roebe/www/klimawandel/klimawandel.rb +100 -0
  2124. data/lib/roebe/www/klimawandel/klimawandel.sinatra +56 -0
  2125. data/lib/roebe/www/kramdown_viewer/kramdown_viewer.cgi +51 -0
  2126. data/lib/roebe/www/kriminelle_firmen/kriminelle_firmen.cgi +7 -0
  2127. data/lib/roebe/www/kriminelle_firmen/kriminelle_firmen.rb +26 -0
  2128. data/lib/roebe/www/kriminelle_firmen/kriminelle_firmen.sinatra +52 -0
  2129. data/lib/roebe/www/krita/krita.cgi +7 -0
  2130. data/lib/roebe/www/krita/krita.rb +53 -0
  2131. data/lib/roebe/www/krita/krita.sinatra +56 -0
  2132. data/lib/roebe/www/kryptografie/kryptografie.cgi +48 -0
  2133. data/lib/roebe/www/k/303/244se/k/303/244se.cgi +9 -0
  2134. data/lib/roebe/www/k/303/244se/k/303/244se.rb +137 -0
  2135. data/lib/roebe/www/k/303/244se/k/303/244se.sinatra +56 -0
  2136. data/lib/roebe/www/lame/lame.cgi +7 -0
  2137. data/lib/roebe/www/lame/lame.rb +105 -0
  2138. data/lib/roebe/www/lame/lame.sinatra +56 -0
  2139. data/lib/roebe/www/languages/languages.cgi +7 -0
  2140. data/lib/roebe/www/languages/languages.rb +66 -0
  2141. data/lib/roebe/www/languages/languages.sinatra +52 -0
  2142. data/lib/roebe/www/laser/laser.cgi +7 -0
  2143. data/lib/roebe/www/laser/laser.rb +301 -0
  2144. data/lib/roebe/www/laser/laser.sinatra +56 -0
  2145. data/lib/roebe/www/latex/HelloWorld.tex +9 -0
  2146. data/lib/roebe/www/latex/examples/misc/misc.tex +31 -0
  2147. data/lib/roebe/www/latex/examples/numbered_list/numbered_list.tex +31 -0
  2148. data/lib/roebe/www/latex/examples/page_numbering_example/page_numbering_example.tex +36 -0
  2149. data/lib/roebe/www/latex/examples/simple_paragraph/simple_paragraph.tex +4 -0
  2150. data/lib/roebe/www/latex/latex.cgi +7 -0
  2151. data/lib/roebe/www/latex/latex.rb +203 -0
  2152. data/lib/roebe/www/latex/latex.sinatra +56 -0
  2153. data/lib/roebe/www/law/law.cgi +7 -0
  2154. data/lib/roebe/www/law/law.rb +983 -0
  2155. data/lib/roebe/www/law/law.sinatra +56 -0
  2156. data/lib/roebe/www/lego/lego.cgi +7 -0
  2157. data/lib/roebe/www/lego/lego.rb +53 -0
  2158. data/lib/roebe/www/lego/lego.sinatra +52 -0
  2159. data/lib/roebe/www/libreoffice/libreoffice.cgi +9 -0
  2160. data/lib/roebe/www/libreoffice/libreoffice.rb +96 -0
  2161. data/lib/roebe/www/libreoffice/libreoffice.sinatra +56 -0
  2162. data/lib/roebe/www/libreoffice/macros/README.md +4 -0
  2163. data/lib/roebe/www/libreoffice/macros/hello_world.macro +24 -0
  2164. data/lib/roebe/www/libreoffice/macros/hello_world_in_python.py_macro +7 -0
  2165. data/lib/roebe/www/libreoffice/misc/empty_libreoffice_document.docx +0 -0
  2166. data/lib/roebe/www/libreoffice/misc/empty_libreoffice_document.odt +0 -0
  2167. data/lib/roebe/www/libreoffice/misc/empty_libreoffice_presentation.odp +0 -0
  2168. data/lib/roebe/www/libreoffice/misc/empty_libreoffice_spreadsheet.xls +1 -0
  2169. data/lib/roebe/www/licht/licht.cgi +25 -0
  2170. data/lib/roebe/www/light/light.cgi +27 -0
  2171. data/lib/roebe/www/lighttpd/autogenerated_lighttpd.conf +428 -0
  2172. data/lib/roebe/www/lighttpd/configuration/cgi.conf +21 -0
  2173. data/lib/roebe/www/lighttpd/configuration/dir_listing.conf +15 -0
  2174. data/lib/roebe/www/lighttpd/configuration/document_root.conf +11 -0
  2175. data/lib/roebe/www/lighttpd/configuration/groupname.conf +9 -0
  2176. data/lib/roebe/www/lighttpd/configuration/index.conf +29 -0
  2177. data/lib/roebe/www/lighttpd/configuration/logfiles.conf +18 -0
  2178. data/lib/roebe/www/lighttpd/configuration/mimetypes.conf +88 -0
  2179. data/lib/roebe/www/lighttpd/configuration/modules.conf +75 -0
  2180. data/lib/roebe/www/lighttpd/configuration/php.conf +11 -0
  2181. data/lib/roebe/www/lighttpd/configuration/pid_file.conf +1 -0
  2182. data/lib/roebe/www/lighttpd/configuration/port.conf +13 -0
  2183. data/lib/roebe/www/lighttpd/configuration/redirects.conf +67 -0
  2184. data/lib/roebe/www/lighttpd/configuration/status.conf +29 -0
  2185. data/lib/roebe/www/lighttpd/configuration/upload.conf +5 -0
  2186. data/lib/roebe/www/lighttpd/configuration/username.conf +4 -0
  2187. data/lib/roebe/www/lighttpd/lighttpd.cgi +7 -0
  2188. data/lib/roebe/www/lighttpd/lighttpd.rb +140 -0
  2189. data/lib/roebe/www/lighttpd/lighttpd.sinatra +52 -0
  2190. data/lib/roebe/www/lilo/lilo.cgi +9 -0
  2191. data/lib/roebe/www/lilo/lilo.conf +71 -0
  2192. data/lib/roebe/www/lilo/lilo.rb +114 -0
  2193. data/lib/roebe/www/lilo/lilo.sinatra +56 -0
  2194. data/lib/roebe/www/lilypond/lilypond.cgi +95 -0
  2195. data/lib/roebe/www/linguistics/linguistics.cgi +25 -0
  2196. data/lib/roebe/www/links/links.cgi +9 -0
  2197. data/lib/roebe/www/links/links.rb +310 -0
  2198. data/lib/roebe/www/links/links.sinatra +56 -0
  2199. data/lib/roebe/www/linux/ICEWM/preferences +1476 -0
  2200. data/lib/roebe/www/linux/KaOS/KaOS.cgi +37 -0
  2201. data/lib/roebe/www/linux/MX-Linux/mxlinux.cgi +7 -0
  2202. data/lib/roebe/www/linux/MX-Linux/mxlinux.rb +28 -0
  2203. data/lib/roebe/www/linux/MX-Linux/mxlinux.sinatra +56 -0
  2204. data/lib/roebe/www/linux/antiX/antiX.cgi +7 -0
  2205. data/lib/roebe/www/linux/antiX/antiX.rb +42 -0
  2206. data/lib/roebe/www/linux/antiX/antiX.sinatra +56 -0
  2207. data/lib/roebe/www/linux/deepin/deepin.cgi +30 -0
  2208. data/lib/roebe/www/linux/doc/how_to_shrink_the_home_partition.md +13 -0
  2209. data/lib/roebe/www/linux/fedora/fedora.cgi +7 -0
  2210. data/lib/roebe/www/linux/fedora/fedora.rb +44 -0
  2211. data/lib/roebe/www/linux/fedora/fedora.sinatra +56 -0
  2212. data/lib/roebe/www/linux/gobolinux/gobolinux.cgi +7 -0
  2213. data/lib/roebe/www/linux/gobolinux/gobolinux.rb +1424 -0
  2214. data/lib/roebe/www/linux/gobolinux/gobolinux.sinatra +56 -0
  2215. data/lib/roebe/www/linux/linux.cgi +12 -0
  2216. data/lib/roebe/www/linux/linux.rb +6268 -0
  2217. data/lib/roebe/www/linux/linux.sinatra +56 -0
  2218. data/lib/roebe/www/linux/manjaro/content.md +7 -0
  2219. data/lib/roebe/www/linux/mxlinux +1 -0
  2220. data/lib/roebe/www/linux/neptune/neptune.cgi +54 -0
  2221. data/lib/roebe/www/linux/resources/Xdefaults +180 -0
  2222. data/lib/roebe/www/linux/slackware/slackware.cgi +7 -0
  2223. data/lib/roebe/www/linux/slackware/slackware.rb +150 -0
  2224. data/lib/roebe/www/linux/slackware/slackware.sinatra +56 -0
  2225. data/lib/roebe/www/linux/sparky_linux/specification.md +19 -0
  2226. data/lib/roebe/www/linux/ubuntu/ubuntu.cgi +7 -0
  2227. data/lib/roebe/www/linux/ubuntu/ubuntu.rb +144 -0
  2228. data/lib/roebe/www/linux/ubuntu/ubuntu.sinatra +56 -0
  2229. data/lib/roebe/www/linux/void/void.cgi +7 -0
  2230. data/lib/roebe/www/linux/void/void.rb +56 -0
  2231. data/lib/roebe/www/linux/void/void.sinatra +56 -0
  2232. data/lib/roebe/www/linux_certifications/linux_certifications.cgi +7 -0
  2233. data/lib/roebe/www/linux_certifications/linux_certifications.rb +15 -0
  2234. data/lib/roebe/www/linux_certifications/linux_certifications.sinatra +56 -0
  2235. data/lib/roebe/www/linux_commands/linux_commands.cgi +7 -0
  2236. data/lib/roebe/www/linux_commands/linux_commands.rb +5224 -0
  2237. data/lib/roebe/www/linux_commands/linux_commands.sinatra +56 -0
  2238. data/lib/roebe/www/linux_distributions/README.md +3 -0
  2239. data/lib/roebe/www/linux_distributions/linux_distributions.cgi +9 -0
  2240. data/lib/roebe/www/linux_distributions/linux_distributions.rb +2215 -0
  2241. data/lib/roebe/www/linux_distributions/linux_distributions.sinatra +56 -0
  2242. data/lib/roebe/www/linuxmint/linuxmint.cgi +7 -0
  2243. data/lib/roebe/www/linuxmint/linuxmint.rb +58 -0
  2244. data/lib/roebe/www/linuxmint/linuxmint.sinatra +56 -0
  2245. data/lib/roebe/www/llvm/llvm.cgi +7 -0
  2246. data/lib/roebe/www/llvm/llvm.rb +38 -0
  2247. data/lib/roebe/www/llvm/llvm.sinatra +56 -0
  2248. data/lib/roebe/www/luft/luft.cgi +7 -0
  2249. data/lib/roebe/www/luft/luft.rb +15 -0
  2250. data/lib/roebe/www/luft/luft.sinatra +52 -0
  2251. data/lib/roebe/www/luft/luft_english.md +96 -0
  2252. data/lib/roebe/www/luft/luft_german.md +117 -0
  2253. data/lib/roebe/www/lyrics/lyrics.cgi +7 -0
  2254. data/lib/roebe/www/lyrics/lyrics.rb +48 -0
  2255. data/lib/roebe/www/lyrics/lyrics.sinatra +56 -0
  2256. data/lib/roebe/www/m4/m4.cgi +7 -0
  2257. data/lib/roebe/www/m4/m4.rb +24 -0
  2258. data/lib/roebe/www/m4/m4.sinatra +56 -0
  2259. data/lib/roebe/www/mageia/mageia.cgi +7 -0
  2260. data/lib/roebe/www/mageia/mageia.rb +104 -0
  2261. data/lib/roebe/www/mageia/mageia.sinatra +56 -0
  2262. data/lib/roebe/www/make/make.cgi +7 -0
  2263. data/lib/roebe/www/make/make.rb +216 -0
  2264. data/lib/roebe/www/make/make.sinatra +56 -0
  2265. data/lib/roebe/www/markdown/cheat_sheet.md +17 -0
  2266. data/lib/roebe/www/markdown/example.md +232 -0
  2267. data/lib/roebe/www/marketing/marketing.cgi +7 -0
  2268. data/lib/roebe/www/marketing/marketing.rb +127 -0
  2269. data/lib/roebe/www/marketing/marketing.sinatra +56 -0
  2270. data/lib/roebe/www/mars/mars.cgi +7 -0
  2271. data/lib/roebe/www/mars/mars.rb +51 -0
  2272. data/lib/roebe/www/mars/mars.sinatra +52 -0
  2273. data/lib/roebe/www/mate_desktop/mate_desktop.cgi +40 -0
  2274. data/lib/roebe/www/mathematics/bin/303/244rsystem/bin/303/244rsystem.cgi +158 -0
  2275. data/lib/roebe/www/mathematics/common.rb +16 -0
  2276. data/lib/roebe/www/mathematics/funktionen/funktion.cgi +81 -0
  2277. data/lib/roebe/www/mathematics/logarithmus/logarithmus.cgi +76 -0
  2278. data/lib/roebe/www/mathematics/mathematics.cgi +7 -0
  2279. data/lib/roebe/www/mathematics/mathematics.rb +1276 -0
  2280. data/lib/roebe/www/mathematics/mathematics.sinatra +52 -0
  2281. data/lib/roebe/www/matlab/matlab.cgi +31 -0
  2282. data/lib/roebe/www/md5sum/md5sum.cgi +33 -0
  2283. data/lib/roebe/www/meson/meson.cgi +7 -0
  2284. data/lib/roebe/www/meson/meson.rb +57 -0
  2285. data/lib/roebe/www/meson/meson.sinatra +56 -0
  2286. data/lib/roebe/www/metabolic_pathways/metabolic_pathways.cgi +9 -0
  2287. data/lib/roebe/www/metabolic_pathways/metabolic_pathways.rb +243 -0
  2288. data/lib/roebe/www/metabolic_pathways/metabolic_pathways.sinatra +56 -0
  2289. data/lib/roebe/www/meteorologie/meteorologie.cgi +547 -0
  2290. data/lib/roebe/www/microbial_ecology/microbial_ecology.cgi +33 -0
  2291. data/lib/roebe/www/microbial_interactions/microbial_interactions.cgi +163 -0
  2292. data/lib/roebe/www/microbiology/microbiology.cgi +7 -0
  2293. data/lib/roebe/www/microbiology/microbiology.rb +1139 -0
  2294. data/lib/roebe/www/microbiology/microbiology.sinatra +56 -0
  2295. data/lib/roebe/www/microphones/microphones.cgi +7 -0
  2296. data/lib/roebe/www/microphones/microphones.rb +53 -0
  2297. data/lib/roebe/www/microphones/microphones.sinatra +56 -0
  2298. data/lib/roebe/www/microscopy/microscopy.cgi +7 -0
  2299. data/lib/roebe/www/microscopy/microscopy.rb +289 -0
  2300. data/lib/roebe/www/microscopy/microscopy.sinatra +56 -0
  2301. data/lib/roebe/www/microsoft/how_to_compile_from_source_on_windows/how_to_compile_from_source_on_windows.cgi +7 -0
  2302. data/lib/roebe/www/microsoft/how_to_compile_from_source_on_windows/how_to_compile_from_source_on_windows.rb +85 -0
  2303. data/lib/roebe/www/microsoft/how_to_compile_from_source_on_windows/how_to_compile_from_source_on_windows.sinatra +56 -0
  2304. data/lib/roebe/www/microsoft/microsoft.cgi +11 -0
  2305. data/lib/roebe/www/microsoft/microsoft.rb +2354 -0
  2306. data/lib/roebe/www/microsoft/microsoft.sinatra +56 -0
  2307. data/lib/roebe/www/midi/al_adagi.mid +0 -0
  2308. data/lib/roebe/www/mikrobielle_physiologie/mikrobielle_physiologie.cgi +7 -0
  2309. data/lib/roebe/www/mikrobielle_physiologie/mikrobielle_physiologie.rb +1055 -0
  2310. data/lib/roebe/www/mikrobielle_physiologie/mikrobielle_physiologie.sinatra +56 -0
  2311. data/lib/roebe/www/military/military.cgi +7 -0
  2312. data/lib/roebe/www/military/military.rb +23 -0
  2313. data/lib/roebe/www/military/military.sinatra +56 -0
  2314. data/lib/roebe/www/misc/blutgruppen.md +26 -0
  2315. data/lib/roebe/www/mitochondria/mitochondria.cgi +56 -0
  2316. data/lib/roebe/www/module_www.rb +184 -0
  2317. data/lib/roebe/www/molecular_simulations/molecular_simulations.cgi +30 -0
  2318. data/lib/roebe/www/molecular_therapies/molecular_therapies.cgi +7 -0
  2319. data/lib/roebe/www/molecular_therapies/molecular_therapies.rb +169 -0
  2320. data/lib/roebe/www/molecular_therapies/molecular_therapies.sinatra +56 -0
  2321. data/lib/roebe/www/mpv/hints.md +4 -0
  2322. data/lib/roebe/www/mrxvt/mrxvtrc +424 -0
  2323. data/lib/roebe/www/multimedia_and_law/multimedia_and_law.cgi +7 -0
  2324. data/lib/roebe/www/multimedia_and_law/multimedia_and_law.rb +118 -0
  2325. data/lib/roebe/www/multimedia_and_law/multimedia_and_law.sinatra +56 -0
  2326. data/lib/roebe/www/mysql/mysql.cgi +7 -0
  2327. data/lib/roebe/www/mysql/mysql.rb +544 -0
  2328. data/lib/roebe/www/mysql/mysql.sinatra +52 -0
  2329. data/lib/roebe/www/m/303/274ll/m/303/274ll.cgi +28 -0
  2330. data/lib/roebe/www/nano/nano.cgi +100 -0
  2331. data/lib/roebe/www/nanotechnology/nanotechnology.cgi +7 -0
  2332. data/lib/roebe/www/nanotechnology/nanotechnology.rb +173 -0
  2333. data/lib/roebe/www/nanotechnology/nanotechnology.sinatra +56 -0
  2334. data/lib/roebe/www/nato/nato.cgi +7 -0
  2335. data/lib/roebe/www/nato/nato.rb +35 -0
  2336. data/lib/roebe/www/nato/nato.sinatra +52 -0
  2337. data/lib/roebe/www/naturschutz/naturschutz.cgi +1463 -0
  2338. data/lib/roebe/www/netbsd/netbsd.cgi +7 -0
  2339. data/lib/roebe/www/netbsd/netbsd.rb +27 -0
  2340. data/lib/roebe/www/netbsd/netbsd.sinatra +52 -0
  2341. data/lib/roebe/www/networking_on_linux/networking_on_linux.cgi +7 -0
  2342. data/lib/roebe/www/networking_on_linux/networking_on_linux.rb +1652 -0
  2343. data/lib/roebe/www/networking_on_linux/networking_on_linux.sinatra +56 -0
  2344. data/lib/roebe/www/neuroanatomie/neuroanatomie.cgi +98 -0
  2345. data/lib/roebe/www/neurobiology/neurobiology.cgi +7 -0
  2346. data/lib/roebe/www/neurobiology/neurobiology.rb +368 -0
  2347. data/lib/roebe/www/neurobiology/neurobiology.sinatra +56 -0
  2348. data/lib/roebe/www/news/news.cgi +7 -0
  2349. data/lib/roebe/www/news/news.rb +20 -0
  2350. data/lib/roebe/www/news/news.sinatra +56 -0
  2351. data/lib/roebe/www/news/news_content.md +2798 -0
  2352. data/lib/roebe/www/next_generation_sequencing/next_generation_sequencing.cgi +100 -0
  2353. data/lib/roebe/www/nginx/nginx.cgi +7 -0
  2354. data/lib/roebe/www/nginx/nginx.rb +18 -0
  2355. data/lib/roebe/www/nginx/nginx.sinatra +56 -0
  2356. data/lib/roebe/www/nim/nim.cgi +7 -0
  2357. data/lib/roebe/www/nim/nim.rb +77 -0
  2358. data/lib/roebe/www/nim/nim.sinatra +56 -0
  2359. data/lib/roebe/www/nocturnal_hunt/nocturnal_hunt.cgi +7 -0
  2360. data/lib/roebe/www/nocturnal_hunt/nocturnal_hunt.rb +458 -0
  2361. data/lib/roebe/www/nocturnal_hunt/nocturnal_hunt.sinatra +61 -0
  2362. data/lib/roebe/www/node/snippets.md +15 -0
  2363. data/lib/roebe/www/nosql/nosql.cgi +7 -0
  2364. data/lib/roebe/www/nosql/nosql.rb +23 -0
  2365. data/lib/roebe/www/nosql/nosql.sinatra +52 -0
  2366. data/lib/roebe/www/ntfs/ntfs.cgi +7 -0
  2367. data/lib/roebe/www/ntfs/ntfs.rb +41 -0
  2368. data/lib/roebe/www/ntfs/ntfs.sinatra +56 -0
  2369. data/lib/roebe/www/obst/obst.cgi +45 -0
  2370. data/lib/roebe/www/ogre3d/ogre3d.cgi +7 -0
  2371. data/lib/roebe/www/ogre3d/ogre3d.rb +247 -0
  2372. data/lib/roebe/www/ogre3d/ogre3d.sinatra +56 -0
  2373. data/lib/roebe/www/openbsd/openbsd.cgi +7 -0
  2374. data/lib/roebe/www/openbsd/openbsd.rb +28 -0
  2375. data/lib/roebe/www/openbsd/openbsd.sinatra +56 -0
  2376. data/lib/roebe/www/opengl/opengl.cgi +9 -0
  2377. data/lib/roebe/www/opengl/opengl.rb +193 -0
  2378. data/lib/roebe/www/opengl/opengl.sinatra +56 -0
  2379. data/lib/roebe/www/openssl/openssl.cgi +7 -0
  2380. data/lib/roebe/www/openssl/openssl.rb +142 -0
  2381. data/lib/roebe/www/openssl/openssl.sinatra +56 -0
  2382. data/lib/roebe/www/opensuse/opensuse.cgi +24 -0
  2383. data/lib/roebe/www/opera/opera.cgi +7 -0
  2384. data/lib/roebe/www/opera/opera.rb +38 -0
  2385. data/lib/roebe/www/opera/opera.sinatra +56 -0
  2386. data/lib/roebe/www/operating_systems/operating_systems.cgi +43 -0
  2387. data/lib/roebe/www/optical_character_recognition/optical_character_recognition.cgi +7 -0
  2388. data/lib/roebe/www/optical_character_recognition/optical_character_recognition.rb +85 -0
  2389. data/lib/roebe/www/optical_character_recognition/optical_character_recognition.sinatra +56 -0
  2390. data/lib/roebe/www/organic_chemistry/organic_chemistry.cgi +33 -0
  2391. data/lib/roebe/www/organic_chemistry/organic_chemistry.md +16 -0
  2392. data/lib/roebe/www/our_solar_system/our_solar_system.cgi +7 -0
  2393. data/lib/roebe/www/our_solar_system/our_solar_system.rb +448 -0
  2394. data/lib/roebe/www/our_solar_system/our_solar_system.sinatra +56 -0
  2395. data/lib/roebe/www/packaging_on_linux/packaging_on_linux.cgi +7 -0
  2396. data/lib/roebe/www/packaging_on_linux/packaging_on_linux.rb +394 -0
  2397. data/lib/roebe/www/packaging_on_linux/packaging_on_linux.sinatra +56 -0
  2398. data/lib/roebe/www/palemoon/palemoon.cgi +7 -0
  2399. data/lib/roebe/www/palemoon/palemoon.rb +111 -0
  2400. data/lib/roebe/www/palemoon/palemoon.sinatra +56 -0
  2401. data/lib/roebe/www/paradise_island/paradise_island.cgi +9 -0
  2402. data/lib/roebe/www/paradise_island/paradise_island.rb +449 -0
  2403. data/lib/roebe/www/paradise_island/paradise_island.sinatra +56 -0
  2404. data/lib/roebe/www/patente/patente.cgi +7 -0
  2405. data/lib/roebe/www/patente/patente.rb +58 -0
  2406. data/lib/roebe/www/patente/patente.sinatra +56 -0
  2407. data/lib/roebe/www/pathologie/content.md +1 -0
  2408. data/lib/roebe/www/pathologie/pathologie.cgi +52 -0
  2409. data/lib/roebe/www/pathologie/vokabelliste.yml +1284 -0
  2410. data/lib/roebe/www/pdf/pdf.cgi +7 -0
  2411. data/lib/roebe/www/pdf/pdf.rb +129 -0
  2412. data/lib/roebe/www/pdf/pdf.sinatra +56 -0
  2413. data/lib/roebe/www/pekwm/autoproperties +219 -0
  2414. data/lib/roebe/www/pekwm/config +72 -0
  2415. data/lib/roebe/www/pekwm/keys +301 -0
  2416. data/lib/roebe/www/pekwm/menu +97 -0
  2417. data/lib/roebe/www/pekwm/mouse +141 -0
  2418. data/lib/roebe/www/pekwm/start +18 -0
  2419. data/lib/roebe/www/pekwm/vars +2 -0
  2420. data/lib/roebe/www/phages/phages.cgi +117 -0
  2421. data/lib/roebe/www/pharmacy/content.md +5 -0
  2422. data/lib/roebe/www/phones_and_mobile_phones/phones_and_mobile_phones.cgi +7 -0
  2423. data/lib/roebe/www/phones_and_mobile_phones/phones_and_mobile_phones.rb +66 -0
  2424. data/lib/roebe/www/phones_and_mobile_phones/phones_and_mobile_phones.sinatra +56 -0
  2425. data/lib/roebe/www/photosynthesis/photosynthesis.cgi +7 -0
  2426. data/lib/roebe/www/photosynthesis/photosynthesis.rb +55 -0
  2427. data/lib/roebe/www/photosynthesis/photosynthesis.sinatra +56 -0
  2428. data/lib/roebe/www/physics/physics.cgi +7 -0
  2429. data/lib/roebe/www/physics/physics.rb +348 -0
  2430. data/lib/roebe/www/physics/physics.sinatra +56 -0
  2431. data/lib/roebe/www/physiology/physiology.cgi +7 -0
  2432. data/lib/roebe/www/physiology/physiology.rb +373 -0
  2433. data/lib/roebe/www/physiology/physiology.sinatra +56 -0
  2434. data/lib/roebe/www/pidgin/pidgin.cgi +7 -0
  2435. data/lib/roebe/www/pidgin/pidgin.rb +28 -0
  2436. data/lib/roebe/www/pidgin/pidgin.sinatra +56 -0
  2437. data/lib/roebe/www/pilze/pilze.cgi +276 -0
  2438. data/lib/roebe/www/plants/plants.cgi +7 -0
  2439. data/lib/roebe/www/plants/plants.rb +78 -0
  2440. data/lib/roebe/www/plants/plants.sinatra +56 -0
  2441. data/lib/roebe/www/play_songs/play_songs.cgi +100 -0
  2442. data/lib/roebe/www/play_this_video_file/play_this_video_file.cgi +103 -0
  2443. data/lib/roebe/www/politics/politics.cgi +7 -0
  2444. data/lib/roebe/www/politics/politics.rb +24 -0
  2445. data/lib/roebe/www/politics/politics.sinatra +56 -0
  2446. data/lib/roebe/www/politics/yaml/wahlbeteiligung_wien.yml +6 -0
  2447. data/lib/roebe/www/porg/main.m +26 -0
  2448. data/lib/roebe/www/porg/porg.cgi +7 -0
  2449. data/lib/roebe/www/porg/porg.rb +14 -0
  2450. data/lib/roebe/www/porg/porg.sinatra +56 -0
  2451. data/lib/roebe/www/porg/rpaco_base.h +19 -0
  2452. data/lib/roebe/www/porg/rpaco_base.m +20 -0
  2453. data/lib/roebe/www/povray/povray.cgi +7 -0
  2454. data/lib/roebe/www/povray/povray.rb +289 -0
  2455. data/lib/roebe/www/povray/povray.sinatra +56 -0
  2456. data/lib/roebe/www/povray/povray_files/sphere_and_lights.pov +14 -0
  2457. data/lib/roebe/www/povray/povray_files/sphere_and_lights_test.pov +28 -0
  2458. data/lib/roebe/www/powershell/powershell.cgi +7 -0
  2459. data/lib/roebe/www/powershell/powershell.rb +31 -0
  2460. data/lib/roebe/www/powershell/powershell.sinatra +56 -0
  2461. data/lib/roebe/www/preise/preise.cgi +47 -0
  2462. data/lib/roebe/www/preisvergleiche/preisvergleiche.cgi +7 -0
  2463. data/lib/roebe/www/preisvergleiche/preisvergleiche.rb +53 -0
  2464. data/lib/roebe/www/preisvergleiche/preisvergleiche.sinatra +56 -0
  2465. data/lib/roebe/www/presentations/fuzzy_words_versus_action_words.md +9 -0
  2466. data/lib/roebe/www/presentations/presentations.cgi +7 -0
  2467. data/lib/roebe/www/presentations/presentations.rb +103 -0
  2468. data/lib/roebe/www/presentations/presentations.sinatra +52 -0
  2469. data/lib/roebe/www/presentations/useful_words.md +16 -0
  2470. data/lib/roebe/www/problems_of_the_european_union/problems_of_the_european_union.cgi +7 -0
  2471. data/lib/roebe/www/problems_of_the_european_union/problems_of_the_european_union.rb +457 -0
  2472. data/lib/roebe/www/problems_of_the_european_union/problems_of_the_european_union.sinatra +52 -0
  2473. data/lib/roebe/www/programming_advice/programming_advice.yml +31 -0
  2474. data/lib/roebe/www/programming_bible/programming_bible.cgi +7 -0
  2475. data/lib/roebe/www/programming_bible/programming_bible.rb +32 -0
  2476. data/lib/roebe/www/programming_bible/programming_bible.sinatra +56 -0
  2477. data/lib/roebe/www/programming_languages/javascript/javascript.cgi +10 -0
  2478. data/lib/roebe/www/programming_languages/javascript/javascript.rb +312 -0
  2479. data/lib/roebe/www/programming_languages/javascript/javascript.sinatra +56 -0
  2480. data/lib/roebe/www/project_management/project_management.cgi +7 -0
  2481. data/lib/roebe/www/project_management/project_management.rb +343 -0
  2482. data/lib/roebe/www/project_management/project_management.sinatra +56 -0
  2483. data/lib/roebe/www/prokaryotic_evolution/prokaryotic_evolution.cgi +267 -0
  2484. data/lib/roebe/www/propaganda/propaganda.cgi +7 -0
  2485. data/lib/roebe/www/propaganda/propaganda.rb +30 -0
  2486. data/lib/roebe/www/propaganda/propaganda.sinatra +56 -0
  2487. data/lib/roebe/www/protein_engineering/protein_engineering.cgi +5 -0
  2488. data/lib/roebe/www/protein_engineering/protein_engineering.rb +725 -0
  2489. data/lib/roebe/www/protein_engineering/protein_engineering.sinatra +56 -0
  2490. data/lib/roebe/www/proteins/proteins.cgi +7 -0
  2491. data/lib/roebe/www/proteins/proteins.rb +37 -0
  2492. data/lib/roebe/www/proteins/proteins.sinatra +56 -0
  2493. data/lib/roebe/www/protisten/protisten.cgi +72 -0
  2494. data/lib/roebe/www/psychologie/psychologie.cgi +7 -0
  2495. data/lib/roebe/www/psychologie/psychologie.rb +233 -0
  2496. data/lib/roebe/www/psychologie/psychologie.sinatra +56 -0
  2497. data/lib/roebe/www/publishing_scientific_papers/useful_phrases_and_tips_for_publishing_scientific_papers.md +259 -0
  2498. data/lib/roebe/www/pulseaudio/pulseaudio.cgi +7 -0
  2499. data/lib/roebe/www/pulseaudio/pulseaudio.rb +166 -0
  2500. data/lib/roebe/www/pulseaudio/pulseaudio.sinatra +56 -0
  2501. data/lib/roebe/www/qemu/content.md +5 -0
  2502. data/lib/roebe/www/qualit/303/244tsmanagement/qualit/303/244tsmanagement.cgi +7 -0
  2503. data/lib/roebe/www/qualit/303/244tsmanagement/qualit/303/244tsmanagement.rb +423 -0
  2504. data/lib/roebe/www/qualit/303/244tsmanagement/qualit/303/244tsmanagement.sinatra +56 -0
  2505. data/lib/roebe/www/quotes/quotes.cgi +7 -0
  2506. data/lib/roebe/www/quotes/quotes.rb +609 -0
  2507. data/lib/roebe/www/quotes/quotes.sinatra +52 -0
  2508. data/lib/roebe/www/radiation/content.md +3 -0
  2509. data/lib/roebe/www/radio/radio.cgi +54 -0
  2510. data/lib/roebe/www/radioactivity/radioactivity.cgi +36 -0
  2511. data/lib/roebe/www/ratpoison/ratpoisonrc +62 -0
  2512. data/lib/roebe/www/reactos/reactos.cgi +9 -0
  2513. data/lib/roebe/www/reactos/reactos.rb +95 -0
  2514. data/lib/roebe/www/reactos/reactos.sinatra +56 -0
  2515. data/lib/roebe/www/recursion/recursion.md +41 -0
  2516. data/lib/roebe/www/restriktionsenzyme/restriktionsenzyme.cgi +7 -0
  2517. data/lib/roebe/www/restriktionsenzyme/restriktionsenzyme.rb +96 -0
  2518. data/lib/roebe/www/restriktionsenzyme/restriktionsenzyme.sinatra +56 -0
  2519. data/lib/roebe/www/rfid/rfid.cgi +7 -0
  2520. data/lib/roebe/www/rfid/rfid.rb +956 -0
  2521. data/lib/roebe/www/rfid/rfid.sinatra +56 -0
  2522. data/lib/roebe/www/rhetorics/rhetorics.md +15 -0
  2523. data/lib/roebe/www/rhythmbox/rhythmbox.cgi +122 -0
  2524. data/lib/roebe/www/rna +1 -0
  2525. data/lib/roebe/www/robots/robots.cgi +9 -0
  2526. data/lib/roebe/www/robots/robots.rb +24 -0
  2527. data/lib/roebe/www/robots/robots.sinatra +56 -0
  2528. data/lib/roebe/www/routers/routers.cgi +7 -0
  2529. data/lib/roebe/www/routers/routers.rb +46 -0
  2530. data/lib/roebe/www/routers/routers.sinatra +56 -0
  2531. data/lib/roebe/www/ruby_viewer/ruby_viewer.cgi +7 -0
  2532. data/lib/roebe/www/ruby_viewer/ruby_viewer.rb +51 -0
  2533. data/lib/roebe/www/ruby_viewer/ruby_viewer.sinatra +56 -0
  2534. data/lib/roebe/www/scanner/scanner.cgi +9 -0
  2535. data/lib/roebe/www/scanner/scanner.rb +194 -0
  2536. data/lib/roebe/www/scanner/scanner.sinatra +56 -0
  2537. data/lib/roebe/www/science/URL_to_different_scientific_articles.md +12 -0
  2538. data/lib/roebe/www/science/science.cgi +7 -0
  2539. data/lib/roebe/www/science/science.rb +1806 -0
  2540. data/lib/roebe/www/science/science.sinatra +56 -0
  2541. data/lib/roebe/www/security/security.cgi +7 -0
  2542. data/lib/roebe/www/security/security.rb +381 -0
  2543. data/lib/roebe/www/security/security.sinatra +56 -0
  2544. data/lib/roebe/www/sed/sed_script_remove_colours.sed +1 -0
  2545. data/lib/roebe/www/sex_and_reproduction/sex_and_reproduction.cgi +102 -0
  2546. data/lib/roebe/www/shells/shells.cgi +7 -0
  2547. data/lib/roebe/www/shells/shells.rb +258 -0
  2548. data/lib/roebe/www/shells/shells.sinatra +56 -0
  2549. data/lib/roebe/www/shops/shops.cgi +7 -0
  2550. data/lib/roebe/www/shops/shops.rb +26 -0
  2551. data/lib/roebe/www/shops/shops.sinatra +56 -0
  2552. data/lib/roebe/www/signal_transduction/signal_transduction.cgi +93 -0
  2553. data/lib/roebe/www/simpsons/simpsons.cgi +7 -0
  2554. data/lib/roebe/www/simpsons/simpsons.rb +24 -0
  2555. data/lib/roebe/www/simpsons/simpsons.sinatra +56 -0
  2556. data/lib/roebe/www/smoking/smoking.cgi +26 -0
  2557. data/lib/roebe/www/sociology/content.md +26 -0
  2558. data/lib/roebe/www/socken/socken.cgi +7 -0
  2559. data/lib/roebe/www/socken/socken.rb +25 -0
  2560. data/lib/roebe/www/socken/socken.sinatra +56 -0
  2561. data/lib/roebe/www/solarzellen/solarzellen.cgi +7 -0
  2562. data/lib/roebe/www/solarzellen/solarzellen.rb +13 -0
  2563. data/lib/roebe/www/solarzellen/solarzellen.sinatra +56 -0
  2564. data/lib/roebe/www/sound_theory/sound_theory.cgi +163 -0
  2565. data/lib/roebe/www/space_exploration/space_exploration.cgi +7 -0
  2566. data/lib/roebe/www/space_exploration/space_exploration.rb +31 -0
  2567. data/lib/roebe/www/space_exploration/space_exploration.sinatra +56 -0
  2568. data/lib/roebe/www/sprechanlagen/sprechanlagen.cgi +34 -0
  2569. data/lib/roebe/www/statistik/statistik.cgi +7 -0
  2570. data/lib/roebe/www/statistik/statistik.rb +939 -0
  2571. data/lib/roebe/www/statistik/statistik.sinatra +56 -0
  2572. data/lib/roebe/www/std_linux.rb +95 -0
  2573. data/lib/roebe/www/stem_cells/stem_cells.cgi +219 -0
  2574. data/lib/roebe/www/strom/strom.cgi +7 -0
  2575. data/lib/roebe/www/strom/strom.rb +152 -0
  2576. data/lib/roebe/www/strom/strom.sinatra +56 -0
  2577. data/lib/roebe/www/structural_biology/structural_biology.cgi +68 -0
  2578. data/lib/roebe/www/sudoers/sudoers +43 -0
  2579. data/lib/roebe/www/svg/svg.cgi +7 -0
  2580. data/lib/roebe/www/svg/svg.rb +47 -0
  2581. data/lib/roebe/www/svg/svg.sinatra +56 -0
  2582. data/lib/roebe/www/synthetic_biology/synthetic_biology.cgi +7 -0
  2583. data/lib/roebe/www/synthetic_biology/synthetic_biology.rb +234 -0
  2584. data/lib/roebe/www/synthetic_biology/synthetic_biology.sinatra +56 -0
  2585. data/lib/roebe/www/systemd/systemd.cgi +9 -0
  2586. data/lib/roebe/www/systemd/systemd.rb +61 -0
  2587. data/lib/roebe/www/systemd/systemd.sinatra +56 -0
  2588. data/lib/roebe/www/tales_from_the_crypt/tales_from_the_crypt.html +71 -0
  2589. data/lib/roebe/www/techniques_and_methods_in_molecular_biology/techniques_and_methods_in_molecular_biology.cgi +7 -0
  2590. data/lib/roebe/www/techniques_and_methods_in_molecular_biology/techniques_and_methods_in_molecular_biology.rb +290 -0
  2591. data/lib/roebe/www/techniques_and_methods_in_molecular_biology/techniques_and_methods_in_molecular_biology.sinatra +56 -0
  2592. data/lib/roebe/www/telnet/telnet.cgi +64 -0
  2593. data/lib/roebe/www/terminals/lilyterm.md +8 -0
  2594. data/lib/roebe/www/terminals/terminals.cgi +7 -0
  2595. data/lib/roebe/www/terminals/terminals.rb +125 -0
  2596. data/lib/roebe/www/terminals/terminals.sinatra +56 -0
  2597. data/lib/roebe/www/test/README.md +1 -0
  2598. data/lib/roebe/www/test/database.sql +0 -0
  2599. data/lib/roebe/www/test/test.cgi +38 -0
  2600. data/lib/roebe/www/the_linux_kernel/the_linux_kernel.cgi +11 -0
  2601. data/lib/roebe/www/the_linux_kernel/the_linux_kernel.rb +1660 -0
  2602. data/lib/roebe/www/the_linux_kernel/the_linux_kernel.sinatra +56 -0
  2603. data/lib/roebe/www/the_universe/the_universe.cgi +34 -0
  2604. data/lib/roebe/www/theoretische_informatik/theoretische_informatik.cgi +35 -0
  2605. data/lib/roebe/www/thermodynamik/thermodynamik.cgi +32 -0
  2606. data/lib/roebe/www/thinking_methods/thinking_methods.cgi +7 -0
  2607. data/lib/roebe/www/thinking_methods/thinking_methods.rb +144 -0
  2608. data/lib/roebe/www/thinking_methods/thinking_methods.sinatra +56 -0
  2609. data/lib/roebe/www/thunderbird/thunderbird.cgi +7 -0
  2610. data/lib/roebe/www/thunderbird/thunderbird.rb +70 -0
  2611. data/lib/roebe/www/thunderbird/thunderbird.sinatra +56 -0
  2612. data/lib/roebe/www/tierzucht/tierzucht.cgi +723 -0
  2613. data/lib/roebe/www/time/time.cgi +7 -0
  2614. data/lib/roebe/www/time/time.rb +82 -0
  2615. data/lib/roebe/www/time/time.sinatra +56 -0
  2616. data/lib/roebe/www/tmux/tmux.cgi +7 -0
  2617. data/lib/roebe/www/tmux/tmux.rb +74 -0
  2618. data/lib/roebe/www/tmux/tmux.sinatra +56 -0
  2619. data/lib/roebe/www/toxikologie/toxikologie.cgi +7 -0
  2620. data/lib/roebe/www/toxikologie/toxikologie.rb +617 -0
  2621. data/lib/roebe/www/toxikologie/toxikologie.sinatra +56 -0
  2622. data/lib/roebe/www/trac/trac.cgi +7 -0
  2623. data/lib/roebe/www/trac/trac.rb +46 -0
  2624. data/lib/roebe/www/trac/trac.sinatra +56 -0
  2625. data/lib/roebe/www/training/training.cgi +7 -0
  2626. data/lib/roebe/www/training/training.rb +281 -0
  2627. data/lib/roebe/www/training/training.sinatra +52 -0
  2628. data/lib/roebe/www/transcription/transcription.cgi +7 -0
  2629. data/lib/roebe/www/transcription/transcription.rb +163 -0
  2630. data/lib/roebe/www/transcription/transcription.sinatra +56 -0
  2631. data/lib/roebe/www/tv/tv.cgi +182 -0
  2632. data/lib/roebe/www/udev/udev.cgi +7 -0
  2633. data/lib/roebe/www/udev/udev.rb +128 -0
  2634. data/lib/roebe/www/udev/udev.sinatra +56 -0
  2635. data/lib/roebe/www/unicode/unicode.cgi +28 -0
  2636. data/lib/roebe/www/unionfs/unionfs.cgi +8 -0
  2637. data/lib/roebe/www/unionfs/unionfs.rb +325 -0
  2638. data/lib/roebe/www/unionfs/unionfs.sinatra +56 -0
  2639. data/lib/roebe/www/usb/usb.cgi +7 -0
  2640. data/lib/roebe/www/usb/usb.rb +807 -0
  2641. data/lib/roebe/www/usb/usb.sinatra +52 -0
  2642. data/lib/roebe/www/vaccines/vaccines.cgi +70 -0
  2643. data/lib/roebe/www/vectors/vectors.cgi +7 -0
  2644. data/lib/roebe/www/vectors/vectors.rb +90 -0
  2645. data/lib/roebe/www/vectors/vectors.sinatra +56 -0
  2646. data/lib/roebe/www/verfahrenstechnik/verfahrenstechnik.cgi +62 -0
  2647. data/lib/roebe/www/video/video.cgi +7 -0
  2648. data/lib/roebe/www/video/video.rb +7723 -0
  2649. data/lib/roebe/www/video/video.sinatra +52 -0
  2650. data/lib/roebe/www/view_via_pre_tag/README.md +2 -0
  2651. data/lib/roebe/www/view_via_pre_tag/view_via_pre_tag.cgi +26 -0
  2652. data/lib/roebe/www/vim/aliases/vim_aliases.yml +487 -0
  2653. data/lib/roebe/www/vim/autocmds/vim_autocmds +50 -0
  2654. data/lib/roebe/www/vim/colours/desert.vim +105 -0
  2655. data/lib/roebe/www/vim/colours/golden.vim +72 -0
  2656. data/lib/roebe/www/vim/colours/sienna.vim +47 -0
  2657. data/lib/roebe/www/vim/colours/softblue.vim +45 -0
  2658. data/lib/roebe/www/vim/colours/zenburn.vim +135 -0
  2659. data/lib/roebe/www/vim/functions/functions +185 -0
  2660. data/lib/roebe/www/vim/mappings/mappings.md +372 -0
  2661. data/lib/roebe/www/vim/matrix/matrix.vim +316 -0
  2662. data/lib/roebe/www/vim/tetris/tetris.vim +331 -0
  2663. data/lib/roebe/www/vim/vim.cgi +7 -0
  2664. data/lib/roebe/www/vim/vim.rb +856 -0
  2665. data/lib/roebe/www/vim/vim.sinatra +52 -0
  2666. data/lib/roebe/www/vim/vimrc/vimrc +332 -0
  2667. data/lib/roebe/www/virology/virology.cgi +7 -0
  2668. data/lib/roebe/www/virology/virology.rb +603 -0
  2669. data/lib/roebe/www/virology/virology.sinatra +56 -0
  2670. data/lib/roebe/www/virtual_reality/virtual_reality.cgi +7 -0
  2671. data/lib/roebe/www/virtual_reality/virtual_reality.rb +184 -0
  2672. data/lib/roebe/www/virtual_reality/virtual_reality.sinatra +52 -0
  2673. data/lib/roebe/www/visual_studio/visual_studio.cgi +7 -0
  2674. data/lib/roebe/www/visual_studio/visual_studio.rb +38 -0
  2675. data/lib/roebe/www/visual_studio/visual_studio.sinatra +56 -0
  2676. data/lib/roebe/www/visualization/content.md +2 -0
  2677. data/lib/roebe/www/vitamines/vitamines.cgi +11 -0
  2678. data/lib/roebe/www/vitamines/vitamines.rb +138 -0
  2679. data/lib/roebe/www/vitamines/vitamines.sinatra +56 -0
  2680. data/lib/roebe/www/vivaldi/vivaldi.cgi +27 -0
  2681. data/lib/roebe/www/vlc/vlc.cgi +32 -0
  2682. data/lib/roebe/www/vnc/vnc.cgi +7 -0
  2683. data/lib/roebe/www/vnc/vnc.rb +28 -0
  2684. data/lib/roebe/www/vnc/vnc.sinatra +56 -0
  2685. data/lib/roebe/www/voice_recorders/voice_recorders.cgi +7 -0
  2686. data/lib/roebe/www/voice_recorders/voice_recorders.rb +48 -0
  2687. data/lib/roebe/www/voice_recorders/voice_recorders.sinatra +52 -0
  2688. data/lib/roebe/www/waagen/waagen.cgi +36 -0
  2689. data/lib/roebe/www/wahrscheinlichkeit/wahrscheinlichkeit.cgi +7 -0
  2690. data/lib/roebe/www/wahrscheinlichkeit/wahrscheinlichkeit.rb +270 -0
  2691. data/lib/roebe/www/wahrscheinlichkeit/wahrscheinlichkeit.sinatra +56 -0
  2692. data/lib/roebe/www/war_in_Ukraine_2022/war_in_Ukraine_2022.cgi +7 -0
  2693. data/lib/roebe/www/war_in_Ukraine_2022/war_in_Ukraine_2022.rb +251 -0
  2694. data/lib/roebe/www/war_in_Ukraine_2022/war_in_Ukraine_2022.sinatra +56 -0
  2695. data/lib/roebe/www/waschmaschinen/waschmaschinen.cgi +7 -0
  2696. data/lib/roebe/www/waschmaschinen/waschmaschinen.rb +259 -0
  2697. data/lib/roebe/www/waschmaschinen/waschmaschinen.sinatra +52 -0
  2698. data/lib/roebe/www/water/content.md +1 -0
  2699. data/lib/roebe/www/wayland/wayland.cgi +25 -0
  2700. data/lib/roebe/www/webserving/webserving.cgi +7 -0
  2701. data/lib/roebe/www/webserving/webserving.rb +905 -0
  2702. data/lib/roebe/www/webserving/webserving.sinatra +52 -0
  2703. data/lib/roebe/www/weechat/weechat.cgi +7 -0
  2704. data/lib/roebe/www/weechat/weechat.rb +166 -0
  2705. data/lib/roebe/www/weechat/weechat.sinatra +52 -0
  2706. data/lib/roebe/www/wein/wein.cgi +7 -0
  2707. data/lib/roebe/www/wein/wein.rb +41 -0
  2708. data/lib/roebe/www/wein/wein.sinatra +56 -0
  2709. data/lib/roebe/www/wget/wgetrc +124 -0
  2710. data/lib/roebe/www/why_linux/why_linux.cgi +7 -0
  2711. data/lib/roebe/www/why_linux/why_linux.rb +317 -0
  2712. data/lib/roebe/www/why_linux/why_linux.sinatra +56 -0
  2713. data/lib/roebe/www/wikis/wikis.cgi +7 -0
  2714. data/lib/roebe/www/wikis/wikis.rb +18 -0
  2715. data/lib/roebe/www/wikis/wikis.sinatra +56 -0
  2716. data/lib/roebe/www/wine/wine.cgi +7 -0
  2717. data/lib/roebe/www/wine/wine.rb +323 -0
  2718. data/lib/roebe/www/wine/wine.sinatra +52 -0
  2719. data/lib/roebe/www/wine/wine_config +69 -0
  2720. data/lib/roebe/www/wings3d/data/House_Villa.wings +0 -0
  2721. data/lib/roebe/www/wings3d/wings3d.cgi +7 -0
  2722. data/lib/roebe/www/wings3d/wings3d.rb +64 -0
  2723. data/lib/roebe/www/wings3d/wings3d.sinatra +56 -0
  2724. data/lib/roebe/www/witze/witze.cgi +9 -0
  2725. data/lib/roebe/www/witze/witze.rb +1055 -0
  2726. data/lib/roebe/www/witze/witze.sinatra +56 -0
  2727. data/lib/roebe/www/wlan/wlan.cgi +9 -0
  2728. data/lib/roebe/www/wlan/wlan.rb +708 -0
  2729. data/lib/roebe/www/wlan/wlan.sinatra +56 -0
  2730. data/lib/roebe/www/wlan/wpa_supplicant.conf +57 -0
  2731. data/lib/roebe/www/working_from_home/working_from_home.md +60 -0
  2732. data/lib/roebe/www/world_health_organization/world_health_organization.cgi +7 -0
  2733. data/lib/roebe/www/world_health_organization/world_health_organization.rb +68 -0
  2734. data/lib/roebe/www/world_health_organization/world_health_organization.sinatra +56 -0
  2735. data/lib/roebe/www/xampp/xampp.cgi +7 -0
  2736. data/lib/roebe/www/xampp/xampp.rb +126 -0
  2737. data/lib/roebe/www/xampp/xampp.sinatra +56 -0
  2738. data/lib/roebe/www/xchat/xchat.cgi +7 -0
  2739. data/lib/roebe/www/xchat/xchat.rb +146 -0
  2740. data/lib/roebe/www/xchat/xchat.sinatra +56 -0
  2741. data/lib/roebe/www/xfce/xfce.cgi +31 -0
  2742. data/lib/roebe/www/xmas/xmas.cgi +7 -0
  2743. data/lib/roebe/www/xmas/xmas.rb +521 -0
  2744. data/lib/roebe/www/xmas/xmas.sinatra +56 -0
  2745. data/lib/roebe/www/xorg/xorg.cgi +9 -0
  2746. data/lib/roebe/www/xorg/xorg.rb +2912 -0
  2747. data/lib/roebe/www/xorg/xorg.sinatra +56 -0
  2748. data/lib/roebe/www/xournalpp/content.md +12 -0
  2749. data/lib/roebe/www/yeast/yeast.cgi +7 -0
  2750. data/lib/roebe/www/yeast/yeast.rb +147 -0
  2751. data/lib/roebe/www/yeast/yeast.sinatra +56 -0
  2752. data/lib/roebe/www/zenity/zenity.cgi +7 -0
  2753. data/lib/roebe/www/zenity/zenity.rb +208 -0
  2754. data/lib/roebe/www/zenity/zenity.sinatra +56 -0
  2755. data/lib/roebe/www/zitieren/example.md +10 -0
  2756. data/lib/roebe/www/zitieren/wie_zitiert_man_in_der_Wissenschaft_richtig.md +261 -0
  2757. data/lib/roebe/www/zoologie/zoologie.cgi +7 -0
  2758. data/lib/roebe/www/zoologie/zoologie.gtk +150 -0
  2759. data/lib/roebe/www/zoologie/zoologie.rb +280 -0
  2760. data/lib/roebe/www/zoologie/zoologie.sinatra +56 -0
  2761. data/lib/roebe/www/zoom/zoom.cgi +7 -0
  2762. data/lib/roebe/www/zoom/zoom.rb +55 -0
  2763. data/lib/roebe/www/zoom/zoom.sinatra +56 -0
  2764. data/lib/roebe/www/zsh/zshrc +360 -0
  2765. data/lib/roebe/www//303/244thiopien//303/244thiopien.cgi +49 -0
  2766. data/lib/roebe/xml/catalog +29 -0
  2767. data/lib/roebe/yaml/advertisement_servers/advertisement_servers.yml +18 -0
  2768. data/lib/roebe/yaml/autogenerate_these_rewrite_rules/autogenerate_these_rewrite_rules.yml +131 -0
  2769. data/lib/roebe/yaml/autostart_these_programs.yml +22 -0
  2770. data/lib/roebe/yaml/bezirke_in_wien/bezirke_in_wien.yml +29 -0
  2771. data/lib/roebe/yaml/binary_to_hexadecimal/binary_to_hexadecimal.csv +17 -0
  2772. data/lib/roebe/yaml/bin/303/244re_einheiten/bin/303/244re_einheiten.yml +9 -0
  2773. data/lib/roebe/yaml/books/favourite_books.yml +11 -0
  2774. data/lib/roebe/yaml/boot_settings/boot_settings.yml +53 -0
  2775. data/lib/roebe/yaml/browser.yml +1 -0
  2776. data/lib/roebe/yaml/compile/compile.yml +262 -0
  2777. data/lib/roebe/yaml/current_ruby_versions.yml +12 -0
  2778. data/lib/roebe/yaml/directory_structure.yml +121 -0
  2779. data/lib/roebe/yaml/display_settings/display_settings.yml +184 -0
  2780. data/lib/roebe/yaml/e_kennzeichnungen/e_kennzeichnungen.yml +101 -0
  2781. data/lib/roebe/yaml/english_letter_frequency/english_letter_frequency.yml +30 -0
  2782. data/lib/roebe/yaml/error_codes/error_codes.yml +342 -0
  2783. data/lib/roebe/yaml/escape_codes/escape_codes.yml +12 -0
  2784. data/lib/roebe/yaml/examples/README.md +4 -0
  2785. data/lib/roebe/yaml/examples/c_headers_creator.yml +10 -0
  2786. data/lib/roebe/yaml/examples/constant.yml +4 -0
  2787. data/lib/roebe/yaml/examples/fixnum.yml +1 -0
  2788. data/lib/roebe/yaml/examples/hash_example.yml +42 -0
  2789. data/lib/roebe/yaml/examples/ruby_keywords.yml +43 -0
  2790. data/lib/roebe/yaml/examples/symbols.yml +3 -0
  2791. data/lib/roebe/yaml/examples/test.yml +9 -0
  2792. data/lib/roebe/yaml/examples/tree.yml +8 -0
  2793. data/lib/roebe/yaml/famous_bboys/famous_bboys.yml +14 -0
  2794. data/lib/roebe/yaml/file_information.yml +34 -0
  2795. data/lib/roebe/yaml/fonts/fonts.yml +33 -0
  2796. data/lib/roebe/yaml/forbidden_IPs/forbidden_IPs.yml +2 -0
  2797. data/lib/roebe/yaml/fstab/fstab.yml +122 -0
  2798. data/lib/roebe/yaml/funstuff/am/303/274sante_deutsche_w/303/266rter.yml +2 -0
  2799. data/lib/roebe/yaml/gnome/gnome.yml +8 -0
  2800. data/lib/roebe/yaml/holidays/holidays.yml +24 -0
  2801. data/lib/roebe/yaml/http_status_codes/http_status_codes.yml +52 -0
  2802. data/lib/roebe/yaml/individual_environment_variables/cflags.yml +59 -0
  2803. data/lib/roebe/yaml/individual_environment_variables/lang.yml +75 -0
  2804. data/lib/roebe/yaml/individual_environment_variables/ldflags.yml +2 -0
  2805. data/lib/roebe/yaml/individual_environment_variables/term.yml +14 -0
  2806. data/lib/roebe/yaml/ip_suffix/ip_suffix.yml +22 -0
  2807. data/lib/roebe/yaml/irc/irc.yml +11 -0
  2808. data/lib/roebe/yaml/kde/kde.yml +54 -0
  2809. data/lib/roebe/yaml/kernel/kernel.yml +11 -0
  2810. data/lib/roebe/yaml/kernel_config/kernel_config.yml +79 -0
  2811. data/lib/roebe/yaml/linux_kernel_settings.yml +11 -0
  2812. data/lib/roebe/yaml/ls_colors.yml +17 -0
  2813. data/lib/roebe/yaml/main_avi.yml +1 -0
  2814. data/lib/roebe/yaml/main_editor.yml +1 -0
  2815. data/lib/roebe/yaml/main_jpg.yml +1 -0
  2816. data/lib/roebe/yaml/main_pdf.yml +1 -0
  2817. data/lib/roebe/yaml/main_png.yml +1 -0
  2818. data/lib/roebe/yaml/mark_this_directory.yml +1 -0
  2819. data/lib/roebe/yaml/mime/mime.yml +615 -0
  2820. data/lib/roebe/yaml/mime_types.yml +37 -0
  2821. data/lib/roebe/yaml/monitors/monitors.yml +127 -0
  2822. data/lib/roebe/yaml/n_people_in_these_countries.yml +31 -0
  2823. data/lib/roebe/yaml/name_for_the_wireless_interface.yml +1 -0
  2824. data/lib/roebe/yaml/pdf/pdf1.yml +1 -0
  2825. data/lib/roebe/yaml/pdf/pdf2.yml +1 -0
  2826. data/lib/roebe/yaml/pdf/pdf3.yml +1 -0
  2827. data/lib/roebe/yaml/pdf/pdf4.yml +1 -0
  2828. data/lib/roebe/yaml/pdf/pdf5.yml +1 -0
  2829. data/lib/roebe/yaml/pdf/pdf6.yml +1 -0
  2830. data/lib/roebe/yaml/pdf/pdf7.yml +1 -0
  2831. data/lib/roebe/yaml/pdf/pdf8.yml +1 -0
  2832. data/lib/roebe/yaml/pdf/pdf9.yml +1 -0
  2833. data/lib/roebe/yaml/peoples_age.yml +6 -0
  2834. data/lib/roebe/yaml/ports/ports.yml +50 -0
  2835. data/lib/roebe/yaml/posix_character_classes.yml +13 -0
  2836. data/lib/roebe/yaml/project_base_directory.yml +0 -0
  2837. data/lib/roebe/yaml/rufnummern_in_/303/266sterreich/rufnummern_in_/303/266sterreich.yml +5 -0
  2838. data/lib/roebe/yaml/size_of_countries.yml +197 -0
  2839. data/lib/roebe/yaml/statistics/statistics.yml +17 -0
  2840. data/lib/roebe/yaml/sternzeichen/sternzeichen.yml +16 -0
  2841. data/lib/roebe/yaml/system/system.yml +80 -0
  2842. data/lib/roebe/yaml/temperature_of_the_planets_in_our_solar_system/temperature_of_the_planets_in_our_solar_system.yml +22 -0
  2843. data/lib/roebe/yaml/test/README.md +4 -0
  2844. data/lib/roebe/yaml/test/umlaute.yml +2 -0
  2845. data/lib/roebe/yaml/the_beginning_of_linux/the_beginning_of_linux.yml +29 -0
  2846. data/lib/roebe/yaml/use_colours.yml +1 -0
  2847. data/lib/roebe/yaml/world_capitals/world_capitals.yml +205 -0
  2848. data/lib/roebe/yaml/world_geography_and_people/world_geography_and_people.yml +25 -0
  2849. data/lib/roebe.rb +7 -0
  2850. data/roebe.gemspec +104 -0
  2851. data/test/active_record/testing +0 -0
  2852. data/test/active_record/testing_active_record.rb +25 -0
  2853. data/test/comparison_example/comparison_example.rb +34 -0
  2854. data/test/hello_world/hello_world.rb +1 -0
  2855. data/test/misc/README.md +2 -0
  2856. data/test/misc/arity_example.rb +44 -0
  2857. data/test/misc/display_the_shell_colours.rb +48 -0
  2858. data/test/misc/fetch_a_specific_key_from_a_hash.rb +26 -0
  2859. data/test/misc/fork_example.rb +15 -0
  2860. data/test/misc/hello_world.rb +1 -0
  2861. data/test/misc/heredoc_example.rb +9 -0
  2862. data/test/misc/hooks/README.md +3 -0
  2863. data/test/misc/hooks/test_inherited_hook.rb +13 -0
  2864. data/test/misc/minimal_irc_bot/minimal_irc_bot.rb +33 -0
  2865. data/test/misc/name_of_this_script.rb +12 -0
  2866. data/test/misc/read_keypresses.rb +79 -0
  2867. data/test/misc/readline/README.md +1 -0
  2868. data/test/misc/readline/completion_for_a_static_list.rb +33 -0
  2869. data/test/misc/readline/simple_readline_example.rb +14 -0
  2870. data/test/misc/simple_sigint_example.rb +51 -0
  2871. data/test/misc/simple_user_input_via_stdin_or_Readline_example.rb +14 -0
  2872. data/test/misc/tcp_socket_example.rb +28 -0
  2873. data/test/misc/tracer.rb +39 -0
  2874. data/test/misc/with_border.rb +22 -0
  2875. data/test/testing_cat.rb +3 -0
  2876. data/test/testing_class_configuration/testing_class_configuration.rb +81 -0
  2877. data/test/testing_core_functionality_of_ruby/README.md +6 -0
  2878. data/test/testing_core_functionality_of_ruby/file_test.rb +1 -0
  2879. data/test/testing_core_functionality_of_ruby/verbose_file_copy.rb +5 -0
  2880. data/test/testing_google_url_cleaner.rb +25 -0
  2881. data/test/testing_http_status_codes.rb +13 -0
  2882. data/test/testing_identical.rb +17 -0
  2883. data/test/testing_move_file.rb +14 -0
  2884. data/test/testing_permission_ascii_format.rb +23 -0
  2885. data/test/testing_sql_paradise.rb +17 -0
  2886. data/test/testing_the_roebe_shell.rb +31 -0
  2887. data/test/testing_twentyfour_hours_notation.rb +37 -0
  2888. data/test/testing_zenity.rb +26 -0
  2889. metadata +3019 -0
@@ -0,0 +1,2580 @@
1
+ # =========================================================================== #
2
+ # === MAIN_BACKGROUND_COLOR
3
+ # =========================================================================== #
4
+ MAIN_BACKGROUND_COLOR = 'background-color: #e7e5e2'
5
+
6
+ german('Compiling') {
7
+ autoextend
8
+ css_style TEMPLATE2.to_s+'
9
+ td { padding-left:3px;padding-right:3px;}
10
+ img {border:0px solid black;}
11
+ span {font-weight:400;}
12
+ pre {font-size:1.15em;}
13
+ div {line-height:inherit;}
14
+
15
+ div.default {
16
+ border:1px solid slateblue;
17
+ padding: 0.75em;
18
+ padding-top: 0.3em;
19
+ margin-top: 0.4em;
20
+ color: black;
21
+ '+MAIN_BACKGROUND_COLOR+'
22
+ }
23
+
24
+ p.default {
25
+ margin-left:0.5em;
26
+ text-indent:5px;
27
+ padding: 12px;
28
+ font-weight:normal;
29
+ color: black;
30
+ '+MAIN_BACKGROUND_COLOR+'
31
+ }
32
+
33
+ p {
34
+ margin-left:0.5em;
35
+ text-indent:5px;
36
+ font-weight:normal;
37
+ color: black;
38
+ '+MAIN_BACKGROUND_COLOR+'
39
+ }
40
+
41
+ body {
42
+ line-height:110%;
43
+ padding-right: 1.5em;
44
+ }
45
+ tt {font-weight:600}
46
+
47
+
48
+ a { text-decoration: none; }
49
+
50
+ '
51
+ favicon 'PC/OS/LINUX/COMPILING_FAVICON.png'
52
+ body_css_class 'FW5 mar0px pad0px BG_Black'
53
+ body_css_style MAIN_BACKGROUND_COLOR
54
+ default_font_size
55
+
56
+ # =========================================================================== #
57
+ # === GLIBC_REPLY
58
+ # =========================================================================== #
59
+ GLIBC_REPLY = 'marl2em'
60
+
61
+ # =========================================================================== #
62
+ # === command
63
+ # =========================================================================== #
64
+ def command(i); e i, CMD; end
65
+ alias cmd command
66
+
67
+ # =========================================================================== #
68
+ # === command2
69
+ # =========================================================================== #
70
+ def command2(i)
71
+ e i, CMD2
72
+ end; alias cmd2 command2
73
+
74
+ # =========================================================================== #
75
+ # === frage
76
+ # =========================================================================== #
77
+ def frage(i, optional_id = '')
78
+ br
79
+ e sg(:yel,'bblack2 marr4px')+i,
80
+ 'FS1_4em BO BLOCK s0_5em',
81
+ optional_id,
82
+ 'color: darkblue'
83
+ end
84
+
85
+ # =========================================================================== #
86
+ # Dots
87
+ # =========================================================================== #
88
+ DOT109 = dot 109, 'marr8px'
89
+ DOT108 = dot 108, 'marr8px'
90
+ DOT107 = dot 107, 'marr8px'
91
+ DOT106 = dot 106, 'marr8px'
92
+ DOT105 = dot 105, 'marr8px'
93
+ DOT104 = dot 104, 'marr8px'
94
+
95
+ # =========================================================================== #
96
+ # === COMPILE_HEADER2
97
+ # =========================================================================== #
98
+ COMPILE_HEADER2 = 'mars0_1em pad2px BO darkblue FW4'
99
+ # =========================================================================== #
100
+ # === COMPILE_HEADER3
101
+ # =========================================================================== #
102
+ COMPILE_HEADER3 = 'mars0_5em slateblue pad4px FI martb3px BO BG_White Black'
103
+
104
+ # =========================================================================== #
105
+ # === compile_header4
106
+ # =========================================================================== #
107
+ def compile_header4(i, extra_css = '')
108
+ h4 i,'mars2_5em darkgreen pad2px martb3px FW4 ind0px '+extra_css
109
+ end
110
+ compile_header5='mars3em pad2px FW4 martb3px'
111
+ # =========================================================================== #
112
+ # === PKG_CSS_ANSWER_CLASS
113
+ # =========================================================================== #
114
+ PKG_CSS_ANSWER_CLASS='s1em martb1px'
115
+ CMD = 'marl1em BO'
116
+ CMD2 = 'marl2em BO'
117
+ CMD3 = 'marl3em BO'
118
+
119
+ # =========================================================================== #
120
+ # === head
121
+ # =========================================================================== #
122
+ def head(i)
123
+ h3 dot(103,'marr8px')+i,'FI'
124
+ end
125
+
126
+ # =========================================================================== #
127
+ # === display_internal_sitemap
128
+ # =========================================================================== #
129
+ def display_internal_sitemap
130
+ div('posab mar5px pad0_5em','','top:3.5em;right:30px;
131
+ background-color:#c9c2b7; border:3px solid slateblue') {
132
+ h2 'Sitemap','padl0_5em FI mart1px marb1em'
133
+ # ===================================================================== #
134
+ # SITEMAP TAG
135
+ # ===================================================================== #
136
+ abr '#gcc_compile',
137
+ content: 'GCC'
138
+ abr '#autoconf',
139
+ content: 'Autoconfigure'
140
+ abr '#distributed_compiling',
141
+ content: 'Distributed Compiling'
142
+ abr '#configure_ac', content: 'configure.ac'
143
+ abr '#CFLAGS', content: 'CFLAGS'
144
+ abr '#distcc', content: 'DISTCC'
145
+ abr '#make', content: 'Make'
146
+ abr '#kobject', content: 'KObject'
147
+ abr '#kd', content: 'Der LD Linker'
148
+ abr '#pkg', content: 'PKG'
149
+ abr '#pkgconfig', content: 'Pkgconfig'
150
+ abr '#bootstrapping', content: 'Bootstrapping'
151
+ abr '#crosscompiling', content: 'Crosscompiling'
152
+ abr '#glibc', content: 'Glibc'
153
+ abr '#uclibc', content: 'Uclibc'
154
+ abr '#elf', content: 'ELF'
155
+ abr '#libtool', content: 'Libtool'
156
+ abr '#shared_libs', content: 'Shared Libraries'
157
+ abr '#appendix_compiling', content: 'Anhang zu Compiling'
158
+ abr '#chroot', content: 'Chroot'
159
+ abr '#libiconv',
160
+ content: 'Libiconv'
161
+ }
162
+ end
163
+
164
+ doc_preferred_width('pad5px s0_5em mar1px FW5 BG_Black padtb0_5em',
165
+ 'compiling') {
166
+ h2 'Compiling',
167
+ 'martb2px'
168
+ display_internal_sitemap
169
+ h1 sg(:angry_smiley,'padr1em', :drag)+'Compiling','yel mart4px'
170
+ div('mar0_2em pad10px s1em FW4 VERD mart1px','compilation',
171
+ 'border-top: 10px solid slateblue;
172
+ border-left:6px solid slateblue;
173
+ border-right:4px solid slateblue;
174
+ border-bottom:4px solid slateblue;'+
175
+ MAIN_BACKGROUND_COLOR){
176
+ # ======================================================================= #
177
+ # ALLGEMEINES ZUM KONFIGURIEREN VON SOURCE DATEIEN
178
+ # ======================================================================= #
179
+ p('mart1px') {
180
+ h2 dot(106, 'marr8px')+'Allgemein lassen sich zu der Ambition,
181
+ Programme aus den Quellen heraus zu kompilieren,
182
+ einige Punkte feststellen:','bigger BO black'
183
+ }
184
+ div('ind1em marl1em') {
185
+ e 'Beginnen wir mit <b>GNU autoconfigure</b>.'
186
+ br
187
+ e '<b>configure</b> ist ein script, welches durch
188
+ <b>GNU autoconfigure</b> bereitgestellt wird.'
189
+ br
190
+ e 'Es überprüft das System, und erstellt ein <b>Makefile</b>,
191
+ das ans System angepasst ist.
192
+ Es ist somit ein script in einem aktuellen Verzeichnis
193
+ und sollte mit <b>./configure</b> aufgerufen
194
+ werden (sofern man sich in diesem Verzeichnis befindet.)'; br
195
+ e '<b>Make</b> wiederum ist ein Programm, das zb typischerweise
196
+ in <b>/usr/bin/make</b> residiert - bei mir hingegen auf
197
+ <b>/Programs/Make/Current/bin/make</b>.'
198
+ br
199
+ e 'Das <b>eigentliche Kompilieren</b> eines Programmes kann
200
+ nun bis zu <b>vier Phasen</b> umfassen, die immer in
201
+ dieser Reihenfolge abgearbeitet werden:'
202
+ br
203
+ css_class = 'marl3em slateblue BOLD'
204
+ counter_li ' preprocessing',css_class
205
+ counter_li ' compilation',css_class
206
+ counter_li ' assembly',css_class
207
+ counter_li ' linking',css_class
208
+ p_default_le {
209
+ e 'Der <b>Vorteil von GNU autoconfigure</b> liegt darin,
210
+ das der selbe Source Code auf <i>verschiedenen</i>
211
+ Plattformen kompiliert werden kann.'
212
+ br
213
+ anm 'Man erkennt Autoconf Dateien an der Endung <b>.ac</b>'
214
+ }
215
+ p_default_le {
216
+ e 'Die Gesamtaufgabe der portablen Konfiguration, Übersetzung
217
+ und Installation von Programmen und Bibliotheken wird von
218
+ insgesamt <b>drei</b> Programmen erledigt:'
219
+ br
220
+ e 'Autoconf erzeugt aus einem Beschreibungsfile
221
+ (<b>configure.in</b>) ein <b>Shell-Skript</b> - das
222
+ vielleicht bereits bekannte <b>./configure</b> Skript,
223
+ welches wiederum durch kurze Test-Programme und -Skripten
224
+ die Eigenschaften des Ziel-Betriebssystems feststellt,
225
+ unter anderen werden auch einige headerfiles kontrolliert.'
226
+ br
227
+ anm 'Übrigens, fehlt einmal die <b>configure Datei</b>,
228
+ kann man sie unter Umständen mittels:
229
+ <b>aclocal; autoconf; ./autogen.sh</b>'
230
+ br
231
+ e '<b>aclocal</b> erzeugt dabei aus dem Inhalt von configure.in
232
+ Dateien die entsprechenden aclocal.m4-Dateien.','','configure_in'
233
+ e 'Aus den nun generierten Makefile-Fragmenten
234
+ (Makefile.in) wird endgültige Makefile erzeugt.'
235
+ e 'Automake erlaubt es, aus einer knappen Spezifikation
236
+ der zu erzeugenden Programme und der Quellfiles,'
237
+ e 'aus denen sie gebaut werden sollen (Makefile.am),
238
+ Makefile.ins zu erzeugen, die den GNU Coding Standards
239
+ entsprechen.'
240
+ br
241
+ e 'Mit anderen Worten, aus Makefile.am wird ein
242
+ Makefile.in. (Makefile.am -> Makefile.in)'
243
+ }
244
+ p_default_le {
245
+ s2 '<b>Libtool</b> erlaubt schließlich die portable
246
+ Erzeugung von Shared Libraries. Mehr zu Libtool '
247
+ abr 'hier',
248
+ content: 'hier',
249
+ css_class: 'BO slateblue'
250
+ }
251
+ p_default_le {
252
+ e 'Der <b>Runtine Linker</b> muss auch imstande sein, diese
253
+ Shared Libraries zu finden.'
254
+ e 'Shared Libraries werden von dem <b>Loader /lib/ld-linux.so.X</b>
255
+ gefunden.'
256
+ br
257
+ e 'ld-linux.so sucht ALLE verwendeten Libraries von dem
258
+ aufgerufenen Programm.'
259
+ }
260
+ p_default_le {
261
+ e 'Folgendes Bild mag einem helfen, Autoconfigure
262
+ besser zu verstehen:'
263
+ br
264
+ dimg 'PC/OS/LINUX/AUTOCONFIGURE_IMAGE.png',
265
+ 'bblack3 mart5px marl5em'
266
+ }
267
+ p_default_le {
268
+ e 'Zu <b>configure.in</b> ist zu sagen, das es von dem m4
269
+ Macro Processor bearbeitet wird.'
270
+ br
271
+ e 'Abgesehen von diesen Macros ist es einfach nur ein shell
272
+ script.'
273
+ e 'Die Macros sind M4 Macros und ein Entwickler der mit GNU
274
+ Autoconfigure arbeitet muss diese Macros verwenden.'
275
+ e '(Es wird empfohlen mit einer bestehenden configure.in
276
+ Datei anzufangen und diese den Bedürfnissen
277
+ entsprechend anzupassen.)','marl1em','m4' # rfcompile m4
278
+ e 'M4 Macros sehen hässlich aus und sind es auch.
279
+ Kommentare geschehen nach dem Schlüsselwort dnl.'
280
+ e 'Per Konvention beginnen alle Macros von Autoconf
281
+ mit <b>AC_</b>'
282
+ br
283
+ e 'Die (spezifischen) Macros von <b>automake</b>
284
+ beginnen allesamt mit <b>AM_</b>'
285
+ e 'Man sollte auch bedenken das AC_CHECK_HEADER
286
+ und die andere AC_* Macros immer in [] Quotes gesetzt
287
+ werden sollten.'
288
+ }
289
+ p_default_le {
290
+ e 'Beispiel für <b>configure.in</b> Strukturen:'
291
+ cmd 'AC_INIT(libfoo.h)'
292
+ e 'libfoo.h sollte hier mit einer Header Datei ersetzt
293
+ werden, die in der Library mitgeliefert wird. Der Zweck
294
+ von AC_INIT ist es, Autoconf zu initialisieren.'
295
+ anm ' AC_INIT muss immer als erstes in
296
+ configure.in stehen!'
297
+ cmd 'AM_CONFIG_HEADER(config.h)'
298
+ e 'Dies hier erzeugt eine .config.h Datei'
299
+ br
300
+ e 'Mittels'
301
+ cmd 'AM_INIT_AUTOMAKE(libfoo,0.0.0)'
302
+ e 'gibt man den <darkblue>Namen des Projekt</> zu
303
+ automake an (inklusive Version Numbering).'
304
+ br
305
+ e 'Das was dahinter kommt sind die Versionen -
306
+ in Reihenfolge die "major", "minor", "micro" Versionen.'
307
+ br
308
+ e 'Die folgenden 3 Macros initialisieren
309
+ den C compiler und libtool:'
310
+ br
311
+ cmd 'AC_PROG_CC'
312
+ cmd2 'Erlaubt auch optional die Angabe anderer
313
+ Compile: <b>AC_PROG_CC(cl egcs gcc cc)</b>'
314
+ cmd 'AC_PROG_CPP'
315
+ cmd 'AM_PROG_LIBTOOL'
316
+ br
317
+ e 'Die CPP Line setzt den C Präprozessor
318
+ fest, der für einige Library Tests notwendig ist.'
319
+ br
320
+ e 'AM_MAINTAINER_MODE schaltet den Maintainer Mode ein:'
321
+ br
322
+ cmd 'AC_CHECK_LIB(appname, test_function)'
323
+ br
324
+ e '# Find out about the host we are building on:'
325
+ br
326
+ cmd 'AC_CANONICAL_HOST'
327
+ br
328
+ cmd 'AC_ARG_ENABLE(opi,[ --enable-opi include support for OPI comments]'
329
+ }
330
+ div('pad1em BG_Black','','color:#B0E0E6') {
331
+ e 'Um ./configure mit einem bestimmten Ziel zu
332
+ kompilieren ist die --prefix=/target Option wichtig.'
333
+ br
334
+ e 'Hat man noch Libraries, muss man eventuell
335
+ <a href="#LDCONFIG" class="slateblue">ldconfig</a> verwenden, damit
336
+ diese auch gefunden werden (post-make install method)'
337
+ }
338
+ div {
339
+ e '<b>Autoconf</b> setzt ausserdem selbst einige Variablen, wie
340
+ zB die Variable <b>prefix</b>, die im Makefile.in als
341
+ <b>@prefix@</b> gekennzeichnet ist.'
342
+ br
343
+ e 'Ein Makefile wiederum ist eine Datei, die das Programm
344
+ <b>make</b> benutzt, um Programme zu kompilieren.
345
+ Ändert man eine Datei, die Bestandteil des Programm ist,
346
+ kann man wiederum make aufrufen, um nur jene Teile zu
347
+ ändern, die auch <b>geändert werden müssen</b>.'
348
+ e 'Das war der Hauptgrund für die Entwicklung von make.
349
+ Mit anderen Worten kann man den Make Prozess getrost
350
+ unterbrechen und ihn <b>später</b> wieder neu starten.'
351
+ e 'Im <a href="#makefile">Anhang</a> findet man eine Liste
352
+ von Makros und ein Beispiel für ein gutes Makefile.'
353
+ br
354
+ e 'C Programme die in mehrere Dateien aufgeteilt
355
+ sind, lassen sich mittels gcc auch kompilieren.'
356
+ e 'header Files muss man dabei nicht angeben, da sie in
357
+ der .c Quelldatei beschrieben werden, allerdings muss man
358
+ die .c Dateien alle angeben, zb:'
359
+ cmd ' gcc -Wall main.c hello_fn.c -o newhello'
360
+ cmd ' gcc -Wall foobar1.c foobar2.c foobar_n.c -o newhello'
361
+ br
362
+ lem 'Dies ist bei grossen Programmen nicht mehr wirklich
363
+ praktisch, da man bei jeder Änderungen in der .c Datei alles
364
+ neu kompilieren müsste.'
365
+ br
366
+ }
367
+ }
368
+ }
369
+ div('default') {
370
+ dimg 'PC/OS/LINUX/COMPILING_SOFTWARE.png','bblack3 FLR'
371
+ h2 DOT108+'Compilation / Kompilierung | Configuration / Konfiguration',
372
+ COMPILE_HEADER3+' mars0_5em','', 'border-bottom:1px dotted darkgreen'
373
+ h3 'Was bedeuten die verschiedenen Compile / Configure
374
+ options?',COMPILE_HEADER3,'autoconfigure' #autoconfigure tag
375
+ table2 's3em FS1em FW5','autoconf','',
376
+ '--prefix=/usr,--prefix=$HOME,
377
+ <b class="firebrick">--prefix=$PROGRAMS/NAME_DES_PROGRAMMES</b>',
378
+ 'Wo installieren wir Binaries, Libraries und weitere Dateien hin?
379
+ Eben genau dorthin, oder in dein $HOME dir.',
380
+ '--with-','Gibt an, welche zusätzlichen Libraries mit
381
+ installiert werden sollen.
382
+ Manchmal gibt man mittels --with auch an, wo
383
+ verschiedene Bibliotheken zu finden sind, zB:
384
+ --with-qt=/opt/qt3',
385
+ '--enable-confdir=LOCATION','setzt wohin Konfigurationsdateien gehen sollen.',
386
+ '--cache-file=FILE','cache test results in FILE. Configure
387
+ unterstützt caching, und hier teilt man mit wo der Cache liegt.'
388
+ e 'Allgemeiner kann man dies hier nutzen um die Installation eines
389
+ Programmes zu adaptieren:'
390
+ p('ind0px marl1em'){
391
+ cmd3 '<b>--bindir=DIR</b> user executables [EPREFIX/bin]'
392
+ cmd3 '<b>--datadir=DIR</b> read-only architecture-independent data [PREFIX/share]'
393
+ cmd3 '<b>--infodir=DIR </b> info documentation [PREFIX/info]'
394
+ cmd3 '<b>--libdir=DIR </b> object code libraries [EPREFIX/lib]'
395
+ cmd3 '<b>--libexecdir=DIR </b> program executables [EPREFIX/libexec]'
396
+ cmd3 '<b>--localstatedir=DIR </b> modifiable single-machine data [PREFIX/var]'
397
+ cmd3 '<b>--sbindir=DIR </b> system admin executables [EPREFIX/sbin]'
398
+ cmd3 '<b>--sysconfdir=DIR </b>read-only single-machine data [PREFIX/etc]'
399
+ cmd3 '<b>--sharedstatedir=DIR</b> modifiable architecture-independent data [PREFIX/com]'
400
+ cmd3 '<b>--includedir=DIR </b> C header files [PREFIX/include]'
401
+ cmd3 '<b>--oldincludedir=DIR </b> C header files for non-gcc [/usr/include]'
402
+ cmd3 '<b>--mandir=DIR </b> man documentation [PREFIX/man]'
403
+ }
404
+ e 'Will man in einem <b>configure.ac Script</b> eine Variable
405
+ setzen geht dies so:'
406
+ br
407
+ cmd 'DEINE_VARIABLE="-L/irgendein/Wert"'
408
+ br
409
+ h3 'Beispiele:',COMPILE_HEADER3,'','configure'
410
+ compile_header4 'configure --prefix=$PROGRAMS/SDL-1.2.8'
411
+ }
412
+ # ========================================================================= #
413
+ # GCC TAG gcc tag
414
+ # ========================================================================= #
415
+ # GCC ist das A und O.
416
+ # ========================================================================= #
417
+ div('default mart5px'){
418
+ e sg(:pfeil10,'marr1em')+'Kommen wir nun zu GCC - der compiler Suite ...'
419
+ h1 sg('PC/OS/LINUX/GCC_FAVICON.png','',:drag)+
420
+ 'About GCC / Über GCC',COMPILE_HEADER3+' mars0_5em mart1em wid60',
421
+ 'gcc_compile','border-bottom:2px solid slateblue'
422
+ br
423
+ e 'Man kann Programme in .o Objekt Dateien kompilieren, und diese
424
+ .o Dateien später verknüpfen (<b>linking</b>).'
425
+ br
426
+ e 'Dieses Erstellen von <b>.o Dateien</b> geht mit
427
+ der <b>-c Option</b> so:'
428
+ br
429
+ cmd ' gcc -Wall -c test1.c'
430
+ br
431
+ e 'Die entstehenden .o Dateien kann man nun wie folgt verknüpfen:'
432
+ br
433
+ cmd ' gcc main.o hello_fn.o -o hello'
434
+ br
435
+ e '(Beim Verlinken macht die -Wall Option keinen Sinn, da ja bereits
436
+ vorher die Quelldateien überprüft wurden - hoffentlich. Objekt Dateien
437
+ enhalten bereits den Maschinencode.)'
438
+ br
439
+ e 'Mittels -l können Libraries verlinkt werden. Alternativ
440
+ kann der reelle Pfad angeben werden, dies ist aber nicht
441
+ besonders praktisch.'
442
+ br
443
+ e 'Um zum Beispiel gegen die Math Library zu linken würde das hier
444
+ funktionieren:'
445
+ cmd 'gcc -Wall calc.c -lm -o calc'
446
+ br
447
+ e 'Übrigens linkt -l default mässig nur gegen .a Libraries, nicht
448
+ gegen .so Libraries.'
449
+ e '-Wall findet auch keine Problem während des Erstellen
450
+ des Programmcodes, zb bei einem NULL Pointer.'
451
+ br
452
+ e 'Auch hier kommt es auf die Reihenfolge an - Bibliotheken
453
+ die zuerst erscheinen (von links nach rechts) werden zuerst
454
+ eingebunden.'
455
+ br
456
+ e 'Wie findet gcc die Libraries und Include Dateien?'
457
+ e 'Defaultmässig sucht gcc für header Dateien
458
+ (Include Path) in:'
459
+ cmd ' /usr/local/include/'
460
+ cmd ' /usr/include/'
461
+ e 'Für Libraries (Link Path) nutzt gcc:'
462
+ cmd ' /usr/local/lib/'
463
+ cmd ' /usr/lib/'
464
+ e 'Die /local Varianten werden zuerst '+sg(:rufzeichen)+'
465
+ durchsucht.'
466
+ br
467
+ e 'Gibt es Bibliotheken, die in anderen Verzeichnissen residieren,
468
+ muss man die <b>Suchpfade erweitern</b>. Dazu nutzt man -I und -L,
469
+ wobei der ld Linker manchmal nicht die Dateien finden kann, und
470
+ zb so einen Fehler ausgibt:'
471
+ cmd ' /usr/bin/ld: cannot find -lgdbm'
472
+ br
473
+ e 'Den absoluten Pfad von header Files in
474
+ <b>#include</b> anzugeben ist nicht so gut, da dies
475
+ auf anderen Systemen meistens nicht mehr funktioniert.'
476
+ br
477
+ e 'Mittels <b>"-nostdinc"</b> kann man normale
478
+ Suchpfade ignorieren, das mag wichtig sein wenn man
479
+ alternative Include Verzeichnisse verwenden will.'
480
+ br
481
+ e 'Den <b>C Include Path</b> kann man auch weiters so setzen:'
482
+ cmd ' C_INCLUDE_PATH=/opt/gdbm-1.8.3/include'
483
+ br
484
+ e 'Ähnliches geht auch mit <b>CPLUS_INCLUDE_PATH</b> für CPP Dateien.
485
+ Diese beiden Variablen werden erst nach /usr/local/include und
486
+ /usr/include durchsucht.'
487
+ e 'Um mehrere Verzeichnisse anzugeben können
488
+ die Einträge mit <b>:</b> getrennt werden.'
489
+ br
490
+ e 'Statische Libraries haben einige Nachteile, der
491
+ prominenteste Nachteil ist, das Programme viel grösser werden.'
492
+ e 'Gcc versucht daher immer, shared Libraries zu
493
+ nutzen (by default). Wann immer ein libNAME.a vorhanden
494
+ ist, versucht gcc herauszufinden ob es nicht eine
495
+ libNAME.so Version davon gibt. Gibt es diese, so
496
+ wird sie anstatt von libNAME.a benutzt.'
497
+ e 'Dieses Verhalten kann aber ausgeschalten werden,
498
+ indem man gcc mitteilt, dies nicht zu tun (-static):'
499
+ cmd 'gcc -Wall -static -L/opt/gdbm-1.8.3/lib/
500
+ dbmain.c -lgdbm'
501
+ e 'Will man 64 Bit Binaries mit GCC erzeugen, verwendet
502
+ man die <b>-m64</b> flag.'
503
+ cmd 'gcc -m64 foobar.c -o foobar'
504
+ e 'GNU GCC hat einige Dialekte drauf, die mit -ansi und -pedantic
505
+ kontrolliert werden können. -ansi zb schaltet bestimmte Keywörter
506
+ im GNU GCC aus, wie asm, und erlaubt somit die Verwendung einer
507
+ Variablen die asm genannt wird.'
508
+ e 'Weitere GNU GCC Variablen, die nicht in Ansi vorkommen,
509
+ sind <b>inline, typeof, unix und vax</b>.'
510
+ e 'Die Verwendung von -pedantic und -ansi sorgt
511
+ dafür das alle GNU C Extensions zurückgewiesen werden.'
512
+ e 'Dies hilft, wirklich portablen C Code zu schreiben.'
513
+ e '-Wall kombiniert man oft mit -W, die zwei sind
514
+ leider nicht das selbe.'
515
+ br
516
+ e 'Ansonsten kann man testweise probieren, sein C Programm
517
+ mit <b>jenen folgenden Optionen</b> zu kompilieren (aliased
518
+ auf <b>gccbig</b>):'
519
+ cmd ' gcc -ansi -pedantic -Wall -W -Wconversion
520
+ -Wshadow -Wcast-qual -Wwrite-strings'
521
+ e 'Debug Information kann man nutzen,
522
+ und zwar mittels -g. Dies bläht aber das Executable auf.'
523
+ e 'Crashed ein Program, dann kann das
524
+ OS ein core file (.core) schreiben. '
525
+ br
526
+ e 'Wird kein core dump file erstellt, liegt dies wohl
527
+ an einem Bash setting, welches man hiermit beseitigen kann:'
528
+ cmd ' ulimit -c unlimited'
529
+ e 'Nun kann man <i>gdb</i> nutzen:'
530
+ cmd ' gdb EXECUTABLE-FILE CORE-FILE'
531
+ cmd ' gdb a.out core.32214'
532
+ e 'Ein breakpoint stoppt das Exekutieren eines Programmes, und
533
+ gibt die Kontrolle zurück zu dem Debugger. Das Kommando dazu
534
+ ist <b>break</b>'
535
+ e 'Seit GCC 4 gibt es die Compile Option
536
+ <b>-fvisibility=hidden</b>. Erstellt man eine shared
537
+ library mit dieser Flag, dann versteckt GCC alle
538
+ Symbole die nicht explizit als visible markiert sind.'
539
+ e '-fvisibility=hidden verkürzt oft die Ladezeiten,
540
+ insofern ist es eine nützliche Compiler Option.'
541
+ e '-Wc++-compat ist auch recht nützlich, denn es gibt einem
542
+ Warnungen über Constructs die einen C++ Compiler stören könnten.'
543
+ e 'Der GCC ld-wrapper ist collect2.'
544
+ # 32 Bit Applikationen kompilieren, mittels -m32.
545
+ frage 'Wie kompiliere ich eine 32-Bit Applikation mittels GCC
546
+ auf einem 64-bit System?','m32'
547
+ e 'Dies erfolgt mittels der <b>-m32</b> bzw. der <b>-m64</b> Option.'
548
+ br
549
+ e 'Diese Optionen generieren Code für eine 32-bit oder eben
550
+ für eine 64-bit Umgebung.'
551
+ br
552
+ lem 'Die 32-bit Umgebung setzt int, long und pointer zu 32 bits
553
+ and erstellt Code der auf jedem i386 System läuft.'
554
+ lem 'Die 64-bit Umgebung sets int to 32 bits and long
555
+ and pointer to 64 bits and generates code for AMDs x86-64
556
+ architecture.'
557
+ br
558
+ e 'Hier Beispiele.'
559
+ br
560
+ e 'Kompilieren für eine <b>32 bit Version</b>:'
561
+ cmd ' gcc -m32 -o output32 hello.c'
562
+ e 'Kompilieren für eine <b>64 bit Version</b>:'
563
+ cmd ' gcc -m64 -o output64 hello.c'
564
+ br
565
+ e 'Und das Resultat ruft man wie folgt auf:'
566
+ cmd ' ./output32'
567
+ # ======================================================================= #
568
+ # CODING STANDARDS zu GCC
569
+ # ======================================================================= #
570
+ h2 sg(:scale,'marr8px')+'Coding Standards für GCC',COMPILE_HEADER3,'coding_standards'
571
+ compile_header4 '<a href="http://www.gnu.org/prep/standards/standards.html#Preface">
572
+ http://www.gnu.org/prep/standards/</a>'
573
+ # ======================================================================= #
574
+ # GCC FLAGS.
575
+ # ======================================================================= #
576
+ h4 'Was gibt es zu gcc und den gcc Flags zu sagen?',
577
+ COMPILE_HEADER3,'gcc'
578
+ compile_header4 'GCC ist das *nix Tool schlecht hin zum Erstellen von
579
+ ausführbaren Dateien aus .c oder .gcc Dateien.
580
+ Als solches ist gcc lediglich ein <b>Front End</b>.
581
+ Es handelt sich bei GCC (<b>GNU Compiler Collection</b>) um einen
582
+ ANSI C compiler mit Unterstützung für K&R C, C++, Objective C,
583
+ Java, Fortran, Ada, treelang.
584
+ GCC analysiert welche Sources man hat und bestimmt dann den
585
+ passenden Compiler dazu.
586
+ Beispiel - der Ada compiler heisst gnat1 und der
587
+ C compiler heisst cc1.<br/>
588
+ GCC ist auch gut beim Erstellen von Debugging Information, und
589
+ unterstützt auch Intel IA-64 Prozessoren.
590
+ Die erste Version erschien am <b>22. März 1987</b>.
591
+ Mittlerweile umfasst GCC über 25.000 Dateien mit mehr als
592
+ 2,1 Millionen Zeilen Code. <br/>
593
+ Mit dem <b>Tree-SSA-Projekt</b>, das ab GCC 4.0 verwendet wird,
594
+ wurden zwei neue Formen von sprachunabhängigen Bäumen
595
+ eingeführt (<b>GENERIC und GIMPLE</b>) <br/>
596
+ Parsing wird nun durchgeführt, indem ein temporärer sprachabhängiger
597
+ Baum nach <b>GENERIC</b> konvertiert wird. Der so genannte <b>Gimplifier</b>
598
+ überführt diese komplexe Form in die SSA-basierte GIMPLE-Form,
599
+ von der ausgehend eine Reihe neuer sprach- und architekturunabhängiger
600
+ Optimierungen durchgeführt werden können.
601
+ Übrigens - Optimierungen an diesen "Bäumen" passt normalerweise
602
+ nicht in das Schema von <b>Frontend</b> und <b>Backend</b> -
603
+ Die GCC-Entwickler haben diesem Teil des Compilers daher den
604
+ Namen <b>Middleend</b> gegeben.
605
+ Zu den gegenwärtig am SSA-Baum durchgeführten Optimierungen
606
+ gehören Dead Code Elimination, Partial Redundancy Elimination,
607
+ Global Value Numbering, Sparse Conditional Constant
608
+ Propagation, und Scalar replacement of Aggregates.
609
+ Array-basierende Optimierungen wie zum Beispiel automatische
610
+ Vektorisierung, wie sie der Intel-Compiler anbietet, werden
611
+ gegenwärtig entwickelt. <br/>
612
+ Binaries die unter GCC kompiliert werden, sollten
613
+ auch auf anderen Computern funktionieren - Rechner A
614
+ kann daher auch für Rechner B, C und D die Binaries
615
+ erstellen, die diese Rechner nutzen. Das mag in
616
+ einem Netzwerk hilfreich sein.<br>
617
+ Folgendes Command zeigt einem welche Symbole
618
+ gcc versteht:<br>
619
+ echo \'main(){printf("hello world\n"}\' | gcc -E -v -'
620
+ compile_header4 'GCC Braucht zum Funzen einige Dateien und Libraries,
621
+ unter anderem auch die cc<b>1 Library</b>. Zb hier:<br/>
622
+ /usr/libexec/gcc/i386-unknown-linux/3.4.4/cc1
623
+ /usr/libexec/gcc/i386-unknown-linux/3.4.4/cc1obj
624
+ /usr/libexec/gcc/i386-unknown-linux/3.4.4/cc1plus'
625
+ # ======================================================================= #
626
+ # CREATE OBJECT FILE WITH GCC
627
+ # ======================================================================= #
628
+ h3 'Wie erstelle ich ein Objekt File mit gcc?',COMPILE_HEADER3
629
+ compile_header4 'gcc -g -O -c main.c','BO '
630
+ # ======================================================================= #
631
+ # WOZU OBJECT FILE
632
+ # ======================================================================= #
633
+ h3 'Wozu brauche ich ein Objekt File?',COMPILE_HEADER3
634
+ compile_header4 'Es speicht den Quellcode einer Datei. Hat man sehr
635
+ viele Dateien, so','BO '
636
+ # ======================================================================= #
637
+ # CREATE OBJECT FILE WITH GCC WITHOUT DOING ALL STEPS
638
+ # ======================================================================= #
639
+ h3 'Wie erstelle ich ein Objekt File mit gcc ohne alle Schritte
640
+ auszuführen?',COMPILE_HEADER3
641
+ compile_header4 '<i class="darkblue">gcc -c DEINE_C_DATEI</i> <br/>
642
+ Hiermit wird nur eine Objektdatei erzeugt. Die
643
+ Option -c dient zum Überspringen des Linker Teil.'
644
+ # ======================================================================= #
645
+ # GCC'S SEARCH DIRS AUSGEBEN
646
+ # ======================================================================= #
647
+ h3 'Wie find ich heraus, für welchen Ort gcc configured war?',COMPILE_HEADER3
648
+ compile_header4 'gcc --print-search-dirs'
649
+ # ======================================================================= #
650
+ # GCC ABBRUCH NACH PRÄPROZESSOR
651
+ # ======================================================================= #
652
+ h3 'Wie veranlasse ich gcc dazu abzubrechen nach dem Präprozessor?',
653
+ COMPILE_HEADER3
654
+ compile_header4 'gcc -E'
655
+ # ======================================================================= #
656
+ # GCC FLAGS GCC OPTIONEN
657
+ # OPTIONEN -I und -D
658
+ # rf comp gcc_optionen
659
+ # ======================================================================= #
660
+ h3 'Was bedeuten die gcc Optionen mit -I, -L und -D? (Include Flags)',
661
+ COMPILE_HEADER3+' mart2em','gcc_optionen'
662
+ compile_header4 '-I wird für INCLUDE Zeugs genutzt, -D dient als Hilfe
663
+ für den C-Compiler.'
664
+ br
665
+ e 'Mittels -I werden library headers gefunden.'
666
+ e 'Die Option -L wird für den Linker genutzt, damit werden
667
+ shared objects miteinander gelinkt. Mittels der
668
+ Option --nodefaultinc kann man gcc veranlassen nichts
669
+ zu inkludieren. Mittels -E kann man anschauen,
670
+ was das Präprozessor macht.'
671
+ div('marl2em') {
672
+ e 'Hier eine Übersicht über einige wichtigere GCC Optionen:'
673
+ table2 'marl1em','','',
674
+ '-g','Die -g flag wird zum Erzeugen der
675
+ debug Symbols und line number Information genutzt: gcc test.c -g',
676
+ '-O0','schaltet alle Optimierungen aus'
677
+ }
678
+ frage 'Was bedeutet --disable-multilib?'
679
+ e 'multiple target libraries to support different target variants
680
+ will not be built. The default is to build predefined set of them.'
681
+ br
682
+ e 'Auf 64 Bit Systemen wird durch diese Option nur der 64 bits
683
+ native compiler gebastelt, ohne 32 bits legacy.'
684
+ h4 'GCC Links und Ressourcen','s2em'
685
+ div('mars1em pad0_1em') {
686
+ abr 'http://gcc.gnu.org/',
687
+ content: 'GCC Homepage'
688
+ }
689
+ # ======================================================================= #
690
+ # configure.ac tag. autoconf tag
691
+ # ======================================================================= #
692
+ h4 'configure.ac','','configure_ac'
693
+ e 'Um bestimmte Packages abzufragen via pkgconfig, kann man dies
694
+ hier nutzen in configure.ac:'
695
+ br
696
+ cmd 'PKG_CHECK_MODULES([GNOME], [gtk > 1.2.8 gnomeui >= 1.2.0])'
697
+ br
698
+ e 'Aus den configure.ac scripts wird das portable configure
699
+ script erstellt.'
700
+ br
701
+ h4 'Optimierungen mit GCC'
702
+ }
703
+ # ======================================================================= #
704
+ # aclocal.m4 tag.
705
+ # ======================================================================= #
706
+ div('default'){
707
+ h3 'Was gibt es zu aclocal.m4 zu sagen?',COMPILE_HEADER3,'aclocal.m4'
708
+ compile_header4 'M4 ist eine ziemlich komplexe Makro-Expansionssprache,
709
+ deren Syntax kompliziert ist.
710
+ Solche Makros werden üblicherweise in aclocal.m4
711
+ untergebracht, wenn sie nur für das Paket verwendet
712
+ werden, oder in acsite.m4, wenn sie auch in anderen
713
+ Paketen benutzt werden können.'
714
+ h3 'Was gibts zu GNU autoconfigure zu sagen?',
715
+ COMPILE_HEADER3
716
+ compile_header4 'Zu finden auf <a href="http://www.gnu.org/software/autoconf/">Autoconf</a>.
717
+ Autoconfigure besteht aus m4 macros, die shell scripts erstellen.
718
+ Dabei muss man GNU m4 installiert haben.
719
+ (Auto)configure führt einige SystemTests durch, speichert
720
+ diese Information meistens in einer Datei namens <b>config.cache</b>
721
+ und produziert letzten Endes Konfigurations Skripte, die
722
+ unabhängig von Autoconf laufen können - ein Enduser
723
+ muss daher nicht autoconf haben, um in den Genuss seiner
724
+ Vorteile zu kommen.
725
+ Zudem werden beim Kompilieren sogenannte Flags zu Rate gezogen, die zB
726
+ LDFLAGS genannt werden, und auf die korrekten Verzeichnisse hinzeigen.
727
+ Das configure script gibt Fehlermeldung aus, sofern eine configure option
728
+ nit gefunden wurde, zB Unknown Option n. Auch werden während
729
+ der configure Phase niemals aktiv Änderungen vorgenommen, zb
730
+ durch Erstellen von Verzeichnissen - dies wird durch <b>make</b>
731
+ bzw <b>install</b> dann vorgenommen.'
732
+ h3 'Wie finde ich raus, welches --prefix= configure genutzt hat?',
733
+ COMPILE_HEADER3
734
+ compile_header4 'In der Datei <b>config.log</b>, greppen a la<br/>
735
+ grep "prefix=\'*\'" config.log |non } <br/>
736
+ Übrigens bestimmt ./configure automatisch das /usr/local
737
+ das prefix ist.'
738
+ }
739
+ # ========================================================== #
740
+ # AM MACROS
741
+ # ========================================================== #
742
+ div('default s1em White'){
743
+ h3 'Wie nutze ich GNU autoconfigure für ein Programm, wenn es
744
+ noch nicht GNU autoconfigure nutzt?',
745
+ COMPILE_HEADER3
746
+ compile_header4 'Zur Theorie dazu, siehen den Absatz weiter
747
+ oben. Ansonsten startet man mit der Erstellung der Datei
748
+ configure.in. Sie sollten diese Macros haben:'
749
+ e 'AM_ICONV','BO'
750
+ br
751
+ e 'The AM_ICONV macro tests for the presence of the
752
+ POSIX/XSI iconv def family in either
753
+ the C library or a separate libiconv library.'
754
+ e 'AC_INIT, AC_PREREQ(VERSION), AM_INIT_AUTOMAKE, AM_CONFIG_headER,
755
+ AM_MAINTAINER_MODE, AC_EXEEXT, AC_PROG_CC, AC_PROG_CXX,
756
+ AM_PROG_LIBTOOL, AC_DEFINe _GNU_SOURCE), AC_OUTPUT,'
757
+ anm 'Note: AC_INIT is always the first Macro in a
758
+ configure.in script'
759
+ }
760
+ p_default_le {
761
+ e 'Nun schreibt man <b>Makefile.am</b>.'
762
+ }
763
+ # ========================================================================= #
764
+ # glibc tag glib-config --cflags glib tag. rf compile glibc
765
+ # ========================================================================= #
766
+ div('default pad1em') {
767
+ h2 'Glibc, Glib und ld.so'
768
+ div('FS1_1em ind1em','glibc') {
769
+ e '<b>glibc</b>, die <b>GNU C-Bibliothek</b>, ist eine freie
770
+ Implementation der Standard C Library - die
771
+ <b>Standard C Bibliothek unter Linux</b>.'
772
+ br
773
+ e 'GLib hingegen wiederum ist eine <b>Low-level core Bibliothek</b>,
774
+ die die <b>Basis zu GTK+ und Gnome</b> bildet. Dies sollte man im
775
+ Kopf behalten damit man diese zwei Bibliotheken nicht verwechselt.'
776
+ br
777
+ e 'Ein grosses Design Ziel der glibc Bibliothek ist die
778
+ <b>Portabilität</b>, dies bedeutet aber auch, das Applikationen
779
+ grösser werden, da portabler Code mitgeschleppt bzw kompiliert
780
+ werden muss.'
781
+ e 'Dies ist zB der Fall bei statischen Programmverknüpfungen,
782
+ wenn die Bibliothekfunktionen in die Exec kopiert werden - also
783
+ bei allen lib Dateien, die <b>.a</b> Dateien sind, ansonsten
784
+ sind sie shared objects mit <b>.so</b> Endung.'
785
+ e 'Glibc steht unter <b>LGPL</b>, damit sie als Bibliothek
786
+ auch unter nicht freier Software verwendet werden kann und darf.'
787
+ e 'Sie erfüllt zudem die C-Standards.'
788
+ br
789
+ e 'Warum brauchen wir die Glibc überhaupt auf Linux?'
790
+ e 'Glibc ist die <b>wichtigste</b> C Bibliothek.'
791
+ e 'Sie definiert die system calls und andere
792
+ Grundoperationen wie open, malloc, printf, exit','marl1em'
793
+ e 'Ohne sie kann man keine C Programme kompilieren
794
+ - oder betreiben.'
795
+ # ======================================================================= #
796
+ # neueste glibc version
797
+ # ======================================================================= #
798
+ e 'Die neueste Version der glibc trägt
799
+ Versionsnummer 2.7 (Stand: 24 NOV 2007)'
800
+ br
801
+ e 'Es gibt übrigens schlankere Versionen von libc, zB
802
+ <b>uClibc</b> und <b>dietlibc</b>. Zu dietlibc ein paar
803
+ Beispiele im gleich folgenden Anhang.'
804
+ e '<b>glibc</b> wird von allen Programm verwendet.
805
+ Wenn man also glibc upgraded, werden die aktuell
806
+ laufenden Programme noch immer auf die alte (nun
807
+ eventuell gelöschte glibc Bibliothek zugreifen.
808
+ Neue Programme, die nun gestartet werden, nutzen die
809
+ neuere glibc Bibliothek - sofern vorhanden.'
810
+ br
811
+ e 'Eng verwandt mit glibc ist die Datei <b>ld.so</b>, die
812
+ normalerweise unter <b>/lib/ld.so</b> zu finden ist.'
813
+ e 'ld.so ist der <b>dynamic library loader</b>.'
814
+ e 'Jedes Binary das shared library verwendet, hatte früher 3K
815
+ start-up code. Der war notwendig um die shared libraries zu
816
+ finden und laden.'
817
+ e sg(:ausrufungszeichen,'marr4px')+
818
+ 'Aber was ist wenn Glibc gebrochen, also
819
+ nicht verwendbar, ist?','s2em'
820
+ e 'Gute Frage - einige gebräuchliche Fehler
821
+ sind folgende:'
822
+ e 'Um die Glib Version herauszufinden:'
823
+ e ' glib-config --version',GLIBC_REPLY
824
+ e 'bzw'
825
+ e ' pkg-config glib --cflags',GLIBC_REPLY
826
+ e 'und um die GTK Version herauszufinden'
827
+ e ' gtk-config --version',GLIBC_REPLY
828
+ br
829
+ e 'Um glibc auch in zb /usr/local zu installieren
830
+ kann man diese Option nutzen:'
831
+ br
832
+ e ' --disable-sanity-checks ',GLIBC_REPLY
833
+ br
834
+ e 'Um nun sein System auf eine neue Libc zu portieren,
835
+ sollte man in etwa so vorgehen:'
836
+ br
837
+ e '1 Wichtige Dateien in /libc backupen:'
838
+ br
839
+ cmd 'cd /libcp libc.so* libm.* /libc_backup'
840
+ br
841
+ abr 'http://www.gnu.org/software/libc/',
842
+ content: 'Offizielle Homepage der Libc'
843
+ abr 'http://www.linuxfromscratch.org/lfs/view/development/chapter05/glibc.html',
844
+ content: 'LFS Build Instructions der GLibc'
845
+ div('default') {
846
+ # ============================================================ #
847
+ # upgrade glibc tag. upgrade tag
848
+ # rf compiling glibc_upgrade
849
+ # ============================================================ #
850
+ h2 sg('PC/OS/LINUX/UPGRADE.png','bblack1 marr4px')+
851
+ 'Upgraden der Glibc','','glibc_upgrade'
852
+ p('','upgrade'){
853
+ e 'Da ich immer wieder Probleme mit dem Glibc Upgrade
854
+ hatte, hier eine Liste an Dingen, die ich für einen
855
+ <b>Glibc Upgrade</b> empfehle:'
856
+ }
857
+ p('marl3em ind0px') {
858
+ e '(1) Einige Programme sollten statisch kompiliert werden,
859
+ zumindest aber <b>make</b> und nach Möglichkeit auch
860
+ <b>tar</b> sowie <b>m4</b>'
861
+ br
862
+ e '(2) Für den Fall der Fälle braucht man wohl auch
863
+ statische Versionen von <b>binutils</b>, <b>coreutils</b>
864
+ und auch <b>busybox</b>'
865
+ br
866
+ e '(3) Auch <b>ncurses</b> sollte statisch kompiliert
867
+ werden, sowie <b>bash</b>, <b>bzip</b>, <b>gawk</b>,
868
+ <b>grub</b>, <b>nano</b> und - ganz
869
+ wichtig - auch <b>sed</b>.'
870
+ br
871
+ anm ' Hier die <b>Liste</b>:'
872
+ br
873
+ e 'make, tar, m4, binutils, busybox, coreutils, bash, bzip2,
874
+ gawk, grub, nano, sed, findutils','marl3em'
875
+ e '(4) Nun sollte man rebooten und
876
+ <b>init=/bin/bash</b> durchführen.'
877
+ e 'Nachdem man Glibc upgegraded hat, sollte man
878
+ <b>init -u</b> laufen lassen.'
879
+ e 'Nun ist es wichtig die GCC Specs anzupassen.'
880
+ br
881
+ e 'Also mal folgendes Command durchführen:'
882
+ br
883
+ cmd ' gcc -v'
884
+ br
885
+ e 'reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs'
886
+ e 'gcc version 2.7.2.2'
887
+ br
888
+ e 'Auch wird empfohlen, binutils, Gcc und coreutils
889
+ erneut zu kompilieren ("rebuild" nachdem das Upgrade
890
+ der Glibc geklappt hat. (Danach muss eventuell auch
891
+ der Kernel neu gebastelt werden.)'
892
+ }
893
+ div {
894
+ h2 dot(102)+'Glibc Komponenten (Components of the GNU C Library:'
895
+ e '<table border="1" cellpadding="3" bordercolor="# 333333">
896
+ <tr>
897
+ <td>Component</td>
898
+ <td>Description</td>
899
+ </tr>
900
+ <tr>
901
+ <td><tt>ld.so</tt></td>
902
+ <td>Dynamic linker/loader</td>
903
+ </tr>
904
+ <tr>
905
+ <td><tt>libc</tt></td>
906
+ <td>Provides the majority of the C library routines
907
+ (The file libc.so is a simple text file)</td>
908
+ </tr>
909
+ <tr>
910
+ <td><tt>libcrypt</tt></td>
911
+ <td>Implements cryptography routines</td>
912
+ </tr>
913
+ <tr>
914
+ <td><tt>libdl</tt></td>
915
+ <td>Enables dynamic loading of shared objects</td>
916
+ </tr>
917
+ <tr>
918
+ <td><tt>libm</tt></td>
919
+ <td>Provides the math routines for the C library</td>
920
+ </tr>
921
+ <tr>
922
+ <td><tt>libnss_compat</tt></td>
923
+ <td>Implements Name Service Switch (<em>NSS</em> compatibility routines)</td>
924
+ </tr>
925
+ <tr>
926
+ <td><tt>libnss_dns</tt></td>
927
+ <td>Enables NSS routines for Domain Name Service (<em>DNS</em> lookups)</td>
928
+ </tr>
929
+ <tr>
930
+ <td><tt>libnss_files</tt></td>
931
+ <td>Provides file-based NSS services</td>
932
+ </tr>
933
+ <tr>
934
+ <td><tt>libnss_hesiod</tt></td>
935
+ <td>Implements NSS services for Hesiod name resolution</td>
936
+ </tr>
937
+ <tr>
938
+ <td><tt>libnss_nis</tt></td>
939
+ <td>Enables NIS database lookups for NSS</td>
940
+ </tr>
941
+ <tr>
942
+ <td><tt>libnss_nisplus</tt></td>
943
+ <td>Enables NIS+ database lookups for NSS</td>
944
+ </tr>
945
+ <tr>
946
+ <td><tt>libpthread</tt></td>
947
+ <td>Provides POSIX threads support routines for programming with pthreads</td>
948
+ </tr>
949
+ <tr>
950
+ <td><tt>libresolv</tt></td>
951
+ <td>Implements standard name resolution services</td>
952
+ </tr>
953
+ <tr>
954
+ <td><tt>libthread_db</tt></td>
955
+ <td>Provides debugging routines for pthreads-based programs</td>
956
+ </tr>
957
+ <tr>
958
+ <td><tt>libutil</tt>'
959
+ ctd
960
+ td 'Implements login and user accounting routines'
961
+ ctdctr
962
+ ctable
963
+ }
964
+ }
965
+ }
966
+ }
967
+ # ========================================================================= #
968
+ # OPTIMIEREN
969
+ # ========================================================================= #
970
+ h3 'Wie optimiere ich?',COMPILE_HEADER3
971
+ compile_header4 'zB mit --enable-CXXOPT= --enable-COPT='
972
+ # ========================================================================= #
973
+ # CLEANING
974
+ # ========================================================================= #
975
+ h3 'Wie räume ich mittels <b>make</b> auf?',COMPILE_HEADER3
976
+ compile_header4 ' make -C ld clean # dies würde alle erstellten
977
+ Dateien löschen.'
978
+ # ========================================================================= #
979
+ # LIB_PATH target
980
+ # ========================================================================= #
981
+ h3 'Wie spezifiziere ich ein anderes LIB_PATH target via make?',COMPILE_HEADER3
982
+ compile_header4 ' make -C ld LIB_PATH=/tools/lib'
983
+ # ========================================================================= #
984
+ # BOOTSTRAPPING
985
+ # ========================================================================= #
986
+ h3 'Was macht <b>make bootstrap</b>?',COMPILE_HEADER3
987
+ compile_header4 'Kompiliert das ganze mehrere Male. Alternativ dazu kann
988
+ man auch <b>make bootstrap-lean</b> nutzen.'
989
+ # ========================================================================= #
990
+ # GUESS HOST SYSTEM VALUES
991
+ # ========================================================================= #
992
+ h3 'Gibt es einen Weg, die Werte des Host System zu überprüfen?',
993
+ COMPILE_HEADER3
994
+ compile_header4 './config.guess'
995
+ # ========================================================================= #
996
+ # ALLGEMEIN - KOMPILIEREN VON SOFTWARE AUF LINUX
997
+ # ========================================================================= #
998
+ h2 'Allgemeines Chit-Chat über Kompilieren von Software
999
+ auf Linux','BO '+compile_header5
1000
+ e 'Tools die mit Autoconf verwandt sind, bzw. eine ähnliche
1001
+ Funktionalität erfüllen sind <b>Metaconfig</b> und <b>imake</b>.
1002
+ Mittels disable-static verbietet man das Erstellen von statischen
1003
+ Bibliotheken, es werden nur dynamische Bibliotheken verwendet.','s2em'
1004
+ # ========================================================================= #
1005
+ # BESTIMME PRÄPROZESSOR VARIABLEN BEIM KOMPILIEREN
1006
+ # ========================================================================= #
1007
+ h3 'Wie kann ich Präprozessor Variablen bestimmen beim Kompilieren?',
1008
+ COMPILE_HEADER3
1009
+ compile_header4 'Mittels <b>-D</b>, wie in -DNDEBUG'
1010
+ # ========================================================================= #
1011
+ # GCC ENVIRONMENT VARIABLES
1012
+ # ========================================================================= #
1013
+ h3 'Welche Environment Variable nutzt GCC?',COMPILE_HEADER3
1014
+ compile_header4 'GCC_EXEC_PREFIX'
1015
+ # ========================================================================= #
1016
+ # CROSS COMPILING - The Art of
1017
+ # ========================================================================= #
1018
+ h3 'Cross Compiling - was gibts dazu zusagen?',
1019
+ COMPILE_HEADER3,'crosscompiling'
1020
+ compile_header4 'Cross compiling is the act of the building source code on
1021
+ one system, the <b>build host</b>, into executables or
1022
+ libraries to be run on a different host, the
1023
+ <b>native host</b>.
1024
+ The build host and the native host may differ in operating
1025
+ system and/or processor type.<br/>
1026
+ Der Hauptgrund ist, das die Prozessorleistung des native host
1027
+ meist ziemlich gering ist, zb weil es sich um einen alten
1028
+ Computer handelt.'
1029
+ # ========================================================================= #
1030
+ # COMPILE SPEED
1031
+ # ========================================================================= #
1032
+ h3 'Compile Speed - wie kann ich das compilen schneller
1033
+ durchführen?',COMPILE_HEADER3,'speedy_compile'
1034
+ compile_header4 'Ich kann hier nur allgemeine Tipps geben.
1035
+ Nutze <b>tmpfs</b>.'
1036
+ # ========================================================================= #
1037
+ # MACROS und Fehlermeldungen
1038
+ # ========================================================================= #
1039
+ # UNDEFINED MACRO LIST
1040
+ # ========================================================================= #
1041
+ h3 'Was tun wenn ich die Fehlermeldung <b>Undefined Macro argument
1042
+ list</b> erhalte?',COMPILE_HEADER3
1043
+ compile_header4 'Im Makefile bei <b>CFLAGS</b> die Option
1044
+ -no-cpp-precomp hinzufügen.'
1045
+ e 'Übrigens: Mehr zu Macros sieht man hier:'
1046
+ br
1047
+ abr 'http://autoconf-archive.cryp.to/',
1048
+ content: 'http://autoconf-archive.cryp.to/'
1049
+ # ========================================================================= #
1050
+ # FEHLER HANDLING bei configure.
1051
+ # ========================================================================= #
1052
+ h3 'Was tun wenn ich einen Fehler erhalte, das configure nicht
1053
+ den host type herausfinden kann?',
1054
+ COMPILE_HEADER3
1055
+ compile_header4 'config.sub und config.guess
1056
+ mit den Versionen von /usr/libexec austauschen.
1057
+ config.cache löschen.'
1058
+ h3 'Was gehört in /usr/libexec? Was ist libexec?'
1059
+ h4 sg(:pfeil_rechts, 'marr1em')+'Programme, die ausschliesslich von
1060
+ <b>internen executables</b> verwendet werden (können). GCC libexec
1061
+ wären somit alle jene Programme, die nur von GCC intern verwendet
1062
+ werden.','marl2em'
1063
+ e 'Wenn eine Bibliothek Programme aufruft die nur durch eine
1064
+ Bibliothek aufgerufen werden können, so sind sie libexec
1065
+ Dateien (und meistens in /usr/libexec zu finden).'
1066
+ # ========================================================================= #
1067
+ # LINKING tag ld tag
1068
+ # ========================================================================= #
1069
+ h2 'ld',
1070
+ 'martb3px '+COMPILE_HEADER2
1071
+ div('default'){
1072
+ h3 'Was gibts zu <b>ld</b> zu sagen?',COMPILE_HEADER3
1073
+ p_default_le {
1074
+ e 'ld ist <b>GNU Linker</b>. Die Grundeinstellung ist der Wert
1075
+ von echo $LIBPATH. Fehlt LIBPATH dann wird einfach
1076
+ /usr/lib:/lib genommen.'
1077
+ br
1078
+ e 'ld verwendet die Variable SEARCH_DIR(path)+'
1079
+ br
1080
+ e 'The SEARCH_DIR command adds path to the
1081
+ list of paths where ld looks for archive libraries.
1082
+ Using SEARCH_DIR(path) is exactly like using -L path
1083
+ on the command line (see Command Line Options).'
1084
+ br
1085
+ e 'If both are used, then the linker will search both paths.'
1086
+ br
1087
+ e 'Alle Pfade, die mit -L spezifiziert werden, werden
1088
+ zuallererst durchsucht.'
1089
+ }
1090
+ }
1091
+ # ========================================================================= #
1092
+ # statisches kompilieren
1093
+ # ========================================================================= #
1094
+ div('default') {
1095
+ h2 'Statisches Kompilieren mittels GCC'
1096
+ e 'Vorweg - <b>statische Bibliotheken</b> sind Bibliotheken,
1097
+ in denen der eigentliche Code der Subroutinen mit
1098
+ der ausführbaren Datei gebunden wird.'
1099
+ br
1100
+ e 'Der Code für Routinen wie printf() kann allerdings ziemlich lang sein.
1101
+ Weil viele Programme häufig aufgerufene Routinen aus den Libraries
1102
+ benutzen, ist es besser diesen Teil nur einmal zu verwenden.'
1103
+ br
1104
+ e 'Hier kommen die <b>Shared Libraries</b> ins Spiel.'
1105
+ }
1106
+ # ========================================================================= #
1107
+ # === crtbegin.o tag
1108
+ # ========================================================================= #
1109
+ div('default') {
1110
+ h4 'crtbegin.o'
1111
+ e 'gcc uses <b>crtbegin.o</b> to find the start of the constructors,
1112
+ so we make sure it is first.'
1113
+ br
1114
+ e 'A wildcard means that it doesnt matter which
1115
+ directory crtbegin.o is in.'
1116
+ }
1117
+ # ========================================================================= #
1118
+ # === PMK TAG
1119
+ # ========================================================================= #
1120
+ div('default bblack3') {
1121
+ h2 'Premake Kit'
1122
+ div {
1123
+ h2 'PMK tutorial'
1124
+ e 'Make nutzt ein makefile, pmk nutzt ein pmkfile. Ein pmkfile
1125
+ hat ein paar Commands die die Source Abhängigkeiten testen.
1126
+ Danach werden Template Dateien prozessiert.'
1127
+ br
1128
+ e 'Das erste Command in einem pmkfile ist <b>SETTINGS</b>, zum Beispiel'
1129
+ br
1130
+ cmd 'SETTINGS {'
1131
+ cmd2 ' TARGET = ("Makefile.in")'
1132
+ cmd '}'
1133
+ br
1134
+ e 'Das Ziel hier ist Makefile.in.'
1135
+ br
1136
+ e 'Um etwas zu definieren wird DEFINE genutzt:'
1137
+ br
1138
+ cmd 'DEFINE {'
1139
+ cmd2 ' PACKAGE = "hello"'
1140
+ cmd2 ' VERSION = "0.1"'
1141
+ cmd '}'
1142
+ br
1143
+ e 'Folgende spezielle Namen/Tags werden ersetzt:'
1144
+ br
1145
+ cmd '@PACKAGE@, @VERSION@'
1146
+ br
1147
+ e 'Angenommen wir haben eine hello.c Datei, die
1148
+ einen string header braucht. Dann baut man das ein:'
1149
+ br
1150
+ cmd 'CHECK_headER(header_string) {'
1151
+ cmd2 ' NAME = "string.h"'
1152
+ cmd '}'
1153
+ br
1154
+ e 'NAME hat hier den header drinnen, der gechecked
1155
+ werden soll.'
1156
+ br
1157
+ e 'Ist der check erfolgreich, wird dieses Label
1158
+ als true angenommen, ansonsten false.'
1159
+ br
1160
+ e 'So erstellt man ein Test Makefile.in'
1161
+ br
1162
+ cmd 'echo "PACKAGE=@PACKAGE@" > Makefile.in'
1163
+ cmd 'echo "VERSION=@VERSION@" >> Makefile.in'
1164
+ br
1165
+ e 'Nun kann man <b>pmk</b> aufrufen.'
1166
+ br
1167
+ e 'Eine Library kann man so abfragen'
1168
+ br
1169
+ cmd 'CHECK_LIB(lib_curses) {'
1170
+ cmd2 ' NAME = "curses"'
1171
+ cmd '}'
1172
+ }
1173
+ h2 'Links'
1174
+ abr 'http://pmk.sourceforge.net/pkgconfig.php',
1175
+ content: 'PreMakeKit - Alternative zu pkgconfig'
1176
+ }
1177
+ div {
1178
+ abr :local_make,
1179
+ content: 'Make'
1180
+ }
1181
+ # ========================================================================= #
1182
+ # === LDCONFIG TAG
1183
+ # ========================================================================= #
1184
+ div('default','ldconfig'){
1185
+ h2 'ldconfig'
1186
+ br
1187
+ e 'ldconfig aktualisiert alle (shared) Libraries auf einem System -
1188
+ gibt das ganze in einen Cache, so das Programme mit shared
1189
+ libraries nicht das Filesystem jedes mal durchsuchen müssen.'
1190
+ br
1191
+ e 'Es nimmt die Information von <b>/etc/ld.so.conf</b> auf.'
1192
+ br
1193
+ e 'Dabei unterscheidet man folgende verschiedene Library-Names:'
1194
+ p('s3em') {
1195
+ b 'Realname ','darkslateblue';
1196
+ e 'Libary:'
1197
+ br
1198
+ cmd ' /usr/lib/libreadline.so.3.0'
1199
+ br
1200
+ b 'Sonamed ','darkslateblue'
1201
+ br
1202
+ e 'Library:'
1203
+ br
1204
+ cmd ' /usr/lib/libreadline.so.3'
1205
+ br
1206
+ b 'Linkername ','darkslateblue'
1207
+ br
1208
+ e 'Library:'
1209
+ br
1210
+ cmd ' /usr/lib/libreadline.so'
1211
+ }
1212
+ e 'Die Datei /etc/ld.so.cache ist insofern wichtig, da sie
1213
+ die Performance des <b>ld.so</b> abr beschleunigt.'
1214
+ }
1215
+ # ========================================================================= #
1216
+ # === memory, ram, System
1217
+ # ========================================================================= #
1218
+ div('FSI pad5px BG_White','','memory'){
1219
+ h3 'Segmentation Fault',
1220
+ 'mart4px BG_Black FW5 wid96 FS1em BOLD pad8px s1_5em slateblue'
1221
+ e 'Passiert wenn ein Programm versucht Speicherwerte zu
1222
+ nutzen, die nicht freigemacht wurden. Das Programm meldet
1223
+ sich zurück mit einem <i>core dump</i>.'
1224
+ }
1225
+ # ========================================================================= #
1226
+ # === LIBICONV TAG
1227
+ # ========================================================================= #
1228
+ h3 'Was macht libiconv?',
1229
+ COMPILE_HEADER3,
1230
+ 'libiconv'
1231
+ div('BG_White Black','libiconv') {
1232
+ e 'Nachdem man GNU libiconv kompiliert hat, sollte man GNU gettext
1233
+ erneut kompilieren, damit es libiconv verwenden kann.'
1234
+ br
1235
+ e 'Libiconv in der Glibc wird so gechecked:'
1236
+ br
1237
+ cmd ' checking for iconv_open() in -lc... yes'
1238
+ br
1239
+ e 'Offensichtlich ist sie vorhanden °_°'
1240
+ }
1241
+ # ========================================================================= #
1242
+ # === GCC Troubleshooting.
1243
+ # ========================================================================= #
1244
+ p_default_le {
1245
+ e 'Mögliche Probleme mit GCC:'
1246
+ br
1247
+ e 'Man muss immer auf korrekte headers achten. Ich hatte
1248
+ einmal Probleme, da gcc die falschen headers nutzte.'
1249
+ br
1250
+ e 'Nachdem ich die falschen headers löschte, kam das Problem
1251
+ nicht mehr auf.'
1252
+ br
1253
+ e 'Cannot guess build type'
1254
+ br
1255
+ e 'In diesem Falle kann man dem configure script
1256
+ <b>--build=i686</b> übergeben.'
1257
+ }
1258
+ # ========================================================================= #
1259
+ # === libsuffix
1260
+ # ========================================================================= #
1261
+ div('default') {
1262
+ e '<b>--disable-libsuffix</b> hilft manchmal bei Problemen mit KDE
1263
+ und ähnlichem.'
1264
+ }
1265
+ # ========================================================================= #
1266
+ # === C Standard Files. Was macht zB stdio.h?
1267
+ # ========================================================================= #
1268
+ div('default'){
1269
+ h3 'Was macht stdio.h?',
1270
+ COMPILE_HEADER3
1271
+ compile_header4 'Die <b>stdio.h</b> Bibliothek kümmert sich um
1272
+ standard input und output Funktionen für C Programmierer.'
1273
+ }
1274
+ # ========================================================================= #
1275
+ # === Bootstrapping TAG bootstrap tag
1276
+ #
1277
+ # rf compile bootstrapping
1278
+ # ========================================================================= #
1279
+ div('default'){
1280
+ h1 dot(102)+'Bootstrapping','','bootstrapping'
1281
+ h3 'Bootstrapping, Toolchains und Erstellen eines LFS mit Hilfe von uLibc'
1282
+ p_default_le {
1283
+ e 'Jeder <b>Prozess</b>, der ein kompliziertes System
1284
+ aktiviert, wird <b>Bootstrapping</b> genannt.'
1285
+ }
1286
+ p('ind0px'){
1287
+ e 'Auf Englisch hört sich dies ein wenig anders an:'
1288
+ br
1289
+ e '<quote>
1290
+ "The term to bootstrap refers to a person who tries to
1291
+ stand up by pulling on his boots."
1292
+ </quote>'
1293
+ br
1294
+ e 'In operating systems the term refers to the process in
1295
+ which a part of the operating system is brought into
1296
+ the Main Memory, with the processor executing those
1297
+ instructions. At bootstrapping the internal data
1298
+ structures of the Linux Kernel are initialized, values
1299
+ are set to the constituent variable s, and processes
1300
+ are created that usually spawn other significant
1301
+ processes later.','padl1em'
1302
+ br
1303
+ e 'Computer bootstrapping is a long and complicated
1304
+ task because when the computer is switched on all the
1305
+ hardware devices are in an unpredictable state, while
1306
+ the RAM is inactive and in a random state. Thus,
1307
+ the thing to keep in mind is the process called
1308
+ bootstrapping is highly dependent on the computer
1309
+ architecture in question.'
1310
+ }
1311
+ h4 'Die <b>setup </b> Funktion','','setup'
1312
+ p_default_le {
1313
+ s2 'The setup def can be found in the file '
1314
+ e '/usr/src/ KERNEL_V /arch/i386/boot/setup.S','BO'
1315
+ br
1316
+ e 'The code of the setup assembly language
1317
+ def is placed by the linker immediately after the
1318
+ integrated boot loader of the Kernel, that is,
1319
+ at offset 0x200 of the Kernel Image file.
1320
+ This allows the boot loader to locate the code easily and
1321
+ copy it onto the RAM starting from the physical address
1322
+ x00090200.'
1323
+ br
1324
+ e 'Now the question that comes up is:
1325
+ What does this setup def do? As its name
1326
+ suggests, it is supposed to set up something.
1327
+ As we all know for the Kernel to operate properly all
1328
+ the hardware devices in the computer must be detected
1329
+ and then initialized in an orderly fashion.
1330
+ The setup def initializes all the hardware
1331
+ devices and thus creates an environment for the Kernel
1332
+ to operate in.'
1333
+ br
1334
+ e 'Normally the BIOS should do all this.
1335
+ Although the BIOS already initialized most hardware,
1336
+ the Linux Kernel does NOT rely on it and initializes
1337
+ all of the hardware in its own fashion!'
1338
+ br
1339
+ e 'But, if someone asks, well, why does Linux
1340
+ operate in such a way? The answer to this question
1341
+ is both very easy yet extremely difficult to explain.
1342
+ The Linux Kernel had been so designed to enhance
1343
+ portability and robustness. This is one of the
1344
+ many features that makes the Linux Kernel very flexible -
1345
+ and unique.'
1346
+ br
1347
+ e 'The setup code mainly performs the following tasks:'
1348
+ br
1349
+ e '1. First, total amount of physical RAM available to the
1350
+ system is detected. It invokes a BIOS procedure for detecting
1351
+ the RAM.'
1352
+ br
1353
+ e '2. Sets the Keyboard repeat delay and rate.'
1354
+ br
1355
+ e '3. The Video adapter card is detected.'
1356
+ br
1357
+ e '4. The Disk Controller is reinitialized and hard disk
1358
+ parameters are determined.'
1359
+ br
1360
+ e '5. Checks for an IBM Micro Channel bus (MCA+'
1361
+ br
1362
+ e '6. Checks for a PS/2 pointing device (bus mouse+'
1363
+ br
1364
+ e '7. Checks for Advanced Power Management (APM BIOS support.'
1365
+ br
1366
+ e '8. Checks the position of the Kernel Image loaded in RAM.
1367
+ If loaded "low" in RAM (when using zImage, at physical
1368
+ address 0x00010000 it is moved to "high" in RAM (at physical
1369
+ address 0x00001000.
1370
+ But, if the Kernel image is a "bzImage" loaded in "high"
1371
+ of RAM already, then it is not moved anywhere.'
1372
+ br
1373
+ e '9. Sets up the Interrupt Descriptor Table (IDT and
1374
+ a Global Descriptor Table (GDT+'
1375
+ br
1376
+ e '10. If a floating-point unit (FPU is present, it is now
1377
+ reset.'
1378
+ br
1379
+ e '11. The PIC (Programmable Interrupt Controller is
1380
+ reprogrammed at this step.'
1381
+ br
1382
+ e '12. The cpU is switched from "Real mode" to "Protected
1383
+ mode" by setting the PE bit in the cr0 status register.'
1384
+ br
1385
+ e '13. Jumps to the stratup_32( assembly language function. '
1386
+ }
1387
+ }
1388
+ # ====================================================================== #
1389
+ # === Bibliotheken und Linux lib tab libraries tag
1390
+ # ====================================================================== #
1391
+ div('default'){
1392
+ h2 'Bibliotheken und Linux'
1393
+ p_default_le {
1394
+ e 'Der Haupt Loader auf einem Linux System ist
1395
+ /lib/ld-linux.so.X, wobei X die VersionNummer
1396
+ kennzeichnet.'
1397
+ br
1398
+ e 'Beispiel hierzu:'
1399
+ br
1400
+ cmd ' ld-2.3.6.so'
1401
+ cmd ' stat /lib/ld-2.5.so'
1402
+ br
1403
+ e 'Dieser Loader ist sehr wichtig - er findet nämlich alle
1404
+ anderen Shared Libraries.'
1405
+ br
1406
+ e 'Und woher weiss er, welche Verzeichnisse er durchsuchen muss?'
1407
+ br
1408
+ e 'Er zieht die Datei <b>/etc/ld.so.conf</b> hierfür heran.'
1409
+ }
1410
+ # ====================================================================== #
1411
+ # shared libraries tag
1412
+ # ====================================================================== #
1413
+ p('','shared_libs') {
1414
+ e 'Was gibts zu Shared Libraries zu sagen?','BO darkblue'
1415
+ br
1416
+ e '<b>Shared Libraries</b> werden von Programmen
1417
+ geladen, sobald sie starten. Alle Programm können
1418
+ die selbe shared library nutzen.'
1419
+ e 'Shared Libraries haben bestimmte Namen:
1420
+ Sie starten mit <b>lib</b>, dann kommt der <b>eigentliche
1421
+ Name</b>, dann kommt noch <b>.so</b>, ein <b>Punkt</b>,
1422
+ und die <b>Versions Nummer</b>.'
1423
+ e 'Der echte Name ist der Name des C Files,
1424
+ der die Bibliothek beschreibt.'
1425
+ br
1426
+ e 'Jede shared library hat einen besonderen Namen, den
1427
+ sogenannten <b>soname</b>.'
1428
+ br
1429
+ e 'Der soname hat das Prefix lib, den Namen der Library
1430
+ sowie die Endung <b>.so</b>, meist noch einen Punkt
1431
+ und eine Versionsnummer.'
1432
+ br
1433
+ e 'Die Versionsnummer wird erneuert sobald eben eine neue
1434
+ Version rausgebracht wird.'
1435
+ br
1436
+ e 'Ein genereller Vorteil der Shared Libraries ist es,
1437
+ das sie nicht nur weniger RAM verbrauchen, sondern auch
1438
+ weniger Disk Space.'
1439
+ br
1440
+ e 'Warum? Der Kernel muss nur eine einzige Kopie der
1441
+ shared Libary im Speicher halten.'
1442
+ br
1443
+ e 'Zudem kann man einfacher einen Fehler beheben,
1444
+ da man nicht viele weitere Programme kompilieren muss.'
1445
+ br
1446
+ e 'Es gibt aber auch einen Nachteil, es können
1447
+ sich Funktionen ändern. Dagegen helfen Versions Nummern -
1448
+ jede shared Library hat eine Version.'
1449
+ br
1450
+ e 'Wird nun ein Programm gegen eine shared library
1451
+ gelinkt, so speichert sie auch die Versions Nummer.'
1452
+ br
1453
+ e 'Was bedeuten nun die Nummern?'
1454
+ br
1455
+ e 'Die HauptNummer zeigt an, das es wohl einige grosse Änderungen
1456
+ gab zwischen der Vorgängerversion. Es kann also zu einigen
1457
+ Problemen kommen.'
1458
+ br
1459
+ e 'Die WenigerNummer - minor zeigt lediglich Fehlerbereinigungen an.'
1460
+ br
1461
+ e 'Beispiel:'
1462
+ br
1463
+ cmd 'libFLAC.so ist ein Symlink auf libFLAC.so.7.0.0'
1464
+ br
1465
+ e 'Eine shared library wird grundsätzlich im <b>ELF binary
1466
+ format</b> gespeichert - Executable and Linkable Format.'
1467
+ br
1468
+ e 'Es gibt natürlich auch Architektur-spezifische Fakten
1469
+ die man wissen muss. So muss man auf manchen Architekturen,
1470
+ AMD64 als Beispiel zu nennen, shared libraries
1471
+ "PIC-enabled" kompilieren.'
1472
+ }
1473
+ # ======================================================================= #
1474
+ # === ELF TAG
1475
+ # ======================================================================= #
1476
+ div('default') {
1477
+ h2 'Das ELF binary format','','elf'
1478
+ p('ind0px') {
1479
+ e 'Der ELF Standard ist historisch bedingt gewachsen.'
1480
+ br
1481
+ e 'ELF ist besser und flexibler als a.out und COFF.'
1482
+ }
1483
+ }
1484
+ }
1485
+ # ========================================================================= #
1486
+ # === udp tag
1487
+ # ========================================================================= #
1488
+ div('default FSI pad5px','','udp') {
1489
+ h3 'UDP','mart2px'
1490
+ e 'Das U in UDP heisst User.'
1491
+ }
1492
+ # ========================================================================= #
1493
+ # === AUTOCONF
1494
+ # ========================================================================= #
1495
+ div('default','autoconf') {
1496
+ h2 'Was geschieht beim Erstellen von Autoconf input files, und wie
1497
+ mache ich das? Wo genau hilft mir Autoconf und wie ist sein Bezug
1498
+ zu Autoscan?',COMPILE_HEADER3
1499
+ h1 sg(:red_dot,'marr0_3em')+'Autoconfigure'
1500
+ e 'Autoscan erstellt <b>configure.scan</b>, und daraus
1501
+ dann <b>configure.in</b>'
1502
+ br
1503
+ e 'Dazu checkt Autoscan Quelldateien im Verzeichnis, und sucht nach
1504
+ allgemein bekannten plattformspezifischen Problemen oder Regeln.'
1505
+ br
1506
+ e 'Wie ist nun das Verhältnis zu Autoconf?'
1507
+ br
1508
+ e 'Das Programm Autoconf liest eben die Datei configure.in ein, und
1509
+ erzeugt daraus ein Shell-Skript namens <b>configure</b>. Genau dieses
1510
+ Shell-Skript wird dann später vom Benutzer auf seinem Rechner aufgerufen,
1511
+ um das Paket für sein System zu konfigurieren. Außerdem müssen anstelle
1512
+ normaler Makefiles sogenannte Makefile.in geschrieben werden. Diese
1513
+ ähneln Makefiles, können aber in Klammeraffen eingeschlossene
1514
+ <b>Platzhalter</b> haben, die dann beim Aufruf von configure mit für
1515
+ das System passenden Werten ersetzt werden. (=Makros)'
1516
+ br
1517
+ e 'Typischerweise sehen die dann z.Bsp so aus:'
1518
+ br
1519
+ e 'hello: hello.cc'
1520
+ br
1521
+ e ' @CXX@ -o hello hello.cc','marl2em'
1522
+ br
1523
+ l2em ANMERKUNG+'Man achte auf die @CXX@ Variable, die später
1524
+ ersetzt wird.'
1525
+ br
1526
+ s2 'Nehmen wir als konkretes Beispiel die Angabe einer header
1527
+ Datei '
1528
+ e '<b>#include '+htmlentities('<fcntl.h>')+'</b>.'
1529
+ br
1530
+ e 'Mit dem existierenden Macro <b>AC_CHECK_HEADER</b> kann
1531
+ man nun autoconf überprüfen lassen, ob es besagte header
1532
+ Datei auch gibt. Beispiel eben: AC_CHECK_HEADER(fcntl.h)'
1533
+ br
1534
+ e 'Findet Autoconf diese Datei, so wird ein Präprozessorsymbol
1535
+ namens HAVE_FCNTL_H definiert - man sieht, alles wird hier per
1536
+ Konvention gross geschrieben.'
1537
+ br
1538
+ e 'Im Quelltext sähe dies in etwa so aus:'
1539
+ br
1540
+ cmd2 htmlentities('#ifdef HAVE_FCNTL_H')
1541
+ cmd2 htmlentities('#include <fcntl.h>')
1542
+ cmd2 htmlentities('#endif')+' '
1543
+ br
1544
+ e 'Beim eigentlichen Kompilieren fügt nun autoconf dies hier dazu:'
1545
+ br
1546
+ e '<b>-DHAVE_FCNTL_H=1</b>, man sieht das dies absolut keine
1547
+ Hexerei ist. Allerdings können durch viele solcher -D Flags die
1548
+ maximal zulässige Anzahl an Zeichen auf der Kommandozeile schnell
1549
+ überschritten werden.'
1550
+ br
1551
+ e 'Dies kann man umgehen, indem man <b>AC_CONFIG_headER(config.h)</b>
1552
+ angibt. Hierdurch werden alle #defines in der Angegebene Datei
1553
+ config.h gespeichert.'
1554
+ br
1555
+ e 'Als einziges #define steht dann auf der
1556
+ Kommandozeile -DHAVE_CONFIG_H=1 dabei.'
1557
+ br
1558
+ e 'Im Quelltext sieht dies dann so aus:'
1559
+ br
1560
+ cmd htmlentities('#ifdef HAVE_CONFIG_H')
1561
+ cmd htmlentities('#include <config.h>')
1562
+ cmd htmlentities('#endif')
1563
+ cmd htmlentities('#ifdef HAVE_FCNTL_H')
1564
+ cmd htmlentities('#include <fcntl.h>')
1565
+ cmd htmlentities('#endif')
1566
+ br
1567
+ e 'Bezüglich Macros ist noch zu sagen, das configure.in
1568
+ <b>AC_INIT(file)</b> zu Beginn, und <b>AC_OUTPUT(...)</b>
1569
+ am Ende braucht.'
1570
+ br
1571
+ e 'AC_OUTPUT akzeptiert auch ein Argument, wie zum Beispiel
1572
+ bei <b>AC_OUTPUT(Makefile)</b>'
1573
+ br
1574
+ e '<blue>Autoconf</> nimmt <b>configure.in</b> und erstellt
1575
+ die Datei <b>configure</b>.
1576
+ Danach nimmt <b>configure</b> Makefile.in und config.h.in,
1577
+ und erstellt ein <b>Makefile</b> und die Datei
1578
+ <b>config.h</b> davon.'
1579
+ br
1580
+ e 'aclocal.m4 und acsite.m4 halten weitere Features bereit.
1581
+ Autoheader kann verwendet werden um config.h.in von
1582
+ acconfig.h zu erstellen.'
1583
+ br
1584
+ e 'config.h.in wird durch den Autoheader erstellt.'
1585
+ }
1586
+ # ========================================================================= #
1587
+ # GNU Configure Optionen.
1588
+ # ========================================================================= #
1589
+ div('default') {
1590
+ h2 'GNU Configure optionen:'
1591
+ br
1592
+ e 'Achtung: Die Optionen sind nicht immer vorhanden.'
1593
+ br
1594
+ cmd ' --disable-werror'
1595
+ br
1596
+ e 'This prevents the build from stopping in the event that there
1597
+ are Warnungen von dem Host Compiler.'
1598
+ }
1599
+ # ========================================================================= #
1600
+ # === Ccache
1601
+ #
1602
+ # ccache tag
1603
+ #
1604
+ # rf compile ccache
1605
+ #
1606
+ # ========================================================================= #
1607
+ div('default marb1em','ccache','border: 1px solid mediumpurple;') {
1608
+ h2 'CCACHE','mart1px'
1609
+ e 'Was ist <b>ccache</b>?'
1610
+ br
1611
+ e '<b>ccache</b> ist ein <b>compiler cache</b>. Er beschleunigt
1612
+ das erneute Kompilieren indem vorhergehende Kompilationen
1613
+ gespeichert werden.'
1614
+ br
1615
+ e 'Er unterstützt die Sprachen C, C++, Objective-C und
1616
+ Objective-C++.'
1617
+ br
1618
+ e 'Der Cache wird normalerweise in $HOME/.ccache gespeichert.
1619
+ Dies kann man jedoch über die CCACHE_DIR Environment Variable
1620
+ ändern. Den Cache können so auch mehrere Anwender
1621
+ verwenden - hier muss man aber auf die Permissions des
1622
+ Cache aufpassen (und man muss allen Anwendern vertrauen
1623
+ können).'
1624
+ br
1625
+ e 'Jeder der den Cache verwendet muss Schreibzugriff haben,
1626
+ also eine umask von 002.'
1627
+ br
1628
+ e 'Das <b>setgid bit</b> muss auch gesetzt werden damit alle
1629
+ Unterverzeichnisse auch bei der richtigen Gruppe gesetzt sind.'
1630
+ br
1631
+ e 'Um die Statistiken auf den Ausgangszustand zurückzusetzen,
1632
+ verwende:'
1633
+ br
1634
+ cmd ' ccache -z'
1635
+ br
1636
+ e 'To remove all cached files:'
1637
+ br
1638
+ cmd ' ccache -C'
1639
+ br
1640
+ e 'Run ccache together with distcc:'
1641
+ br
1642
+ cmd ' CCACHE_PREFIX=distcc'
1643
+ br
1644
+ e 'Man sollte den cache size anpassen, für beste Resultate.'
1645
+ br
1646
+ e 'Dies geschieht wie folgt:'
1647
+ br
1648
+ cmd ' ccache --max-size 32G'
1649
+ br
1650
+ abr 'http://ccache.samba.org/',
1651
+ content: 'DEF',
1652
+ css_class: 'marl2em'
1653
+ abr 'http://ccache.samba.org/manual.html',
1654
+ content: 'DEF',
1655
+ css_class: 'marl2em'
1656
+ }
1657
+ # ========================================================================= #
1658
+ # === CYGWIN TAG
1659
+ # ========================================================================= #
1660
+ div('mart1em pad1em BG_white Black','CYGWIN') {
1661
+ e 'Was ist Cygwin?','','cygwin'
1662
+ e 'Eine Linux-like Umgebung für Windows.',
1663
+ 'pad2px','',
1664
+ 'border-left: 2px ridge darkblue;
1665
+ border-top: 2px ridge darkblue'
1666
+ e 'Zum Deinstallieren nicht auf Software\Cygnus Solutions vergessen!'
1667
+ abr :microsoft,
1668
+ content: 'Hier mehr Information'
1669
+ }
1670
+ # ========================================================================= #
1671
+ # === LD_PRELOAD tag
1672
+ # ========================================================================= #
1673
+ div('mart1em pad1em default',
1674
+ 'LD_PRELOAD',
1675
+ 'RANDOM_BORDER_3PX'){
1676
+ h2 'LD_PRELOAD','ld_preload'
1677
+ p('default','preload') {
1678
+ e 'LD_PRELOAD zeigt zu deinen eigenen Shared Libraries.'
1679
+ br
1680
+ e 'Es wird der Loader angeweisen weitere Libraries in Programme zu laden.'
1681
+ br
1682
+ e 'zlib scheint die LD_PRELOAD library zu nutzen, und macht
1683
+ transparente Dekompressionen.'
1684
+ br
1685
+ e 'Function Interposing benutzt unter Linux die
1686
+ Umgebungsvariable $LD_PRELOAD.'
1687
+ br
1688
+ e 'SuperUser Access kann auf Linux Systemen manchmal durch
1689
+ eine modifizierte libc.so.5 via LD_PRELOAD erreicht werden.'
1690
+ br
1691
+ e 'Ein recht bekanntes Programm das die LD_PRELOAD
1692
+ Methode verwendet ist <b>CheckInstall</b>'
1693
+ br
1694
+ e 'Mittels einer LD_PRELOAD library kann man andere
1695
+ Commands wie dlopen() intercepten.'
1696
+ br
1697
+ e 'Modern day implementations of ld.so(8) examine the
1698
+ LD_PRELOAD environmental variable'
1699
+ br
1700
+ e 'Whitespace-separated list of additional shared libraries
1701
+ to load before all others'
1702
+ br
1703
+ anm 'Wenn eine Funktion sowohl in der LD_PRELOAD Bibliothek,
1704
+ als auch in glibc erscheint, so hat LD_PRELOAD eine höhere
1705
+ Präferenz. ("LD_PRELOAD wins")'
1706
+ e 'Die ursprüngliche Funktion kann aber noch immer mittels
1707
+ dlopen(3) bzw mit syscall(2) angesprochen werden.'
1708
+ br
1709
+ e 'By hijacking a function or system call, the behavior can
1710
+ be altered'
1711
+ br
1712
+ e 'Hier ein Beispiel wie man sie setzt:'
1713
+ br
1714
+ cmd ' export LD_PRELOAD="/usr/X11R6/lib/libX11.so.6:/usr/X11R6/lib/libXt.so.6"'
1715
+ br
1716
+ e 'Zum Anzeigen der LD_PRELOAD Variable:'
1717
+ br
1718
+ cmd ' echo $LD_PRELOAD'
1719
+ }
1720
+ div {
1721
+ h2 dot(108)+'Anhang zu LD_PRELOAD'
1722
+ br
1723
+ e htmlentities('include <stdio.h>;')
1724
+ e htmlentities('include <dlfcn.h>;')
1725
+ pre '
1726
+ int main()
1727
+ {
1728
+ void* handle;
1729
+ printf("calling close...\n");
1730
+ close 12345
1731
+ printf("close called.\n");
1732
+ printf("calling dlopen...\n");
1733
+ handle = dlopen( "somefile", 0 );
1734
+ printf("dlopen called.\n");
1735
+ return 0;
1736
+ }'
1737
+ h2 dot(108,'marr8px')+'LD_PRELOAD Library','marb1em'
1738
+ e htmlentities('include <stdio.h>;')
1739
+ e htmlentities('include <dlfcn.h>;')
1740
+ cmd '#if defined(RTLD_NEXT)'
1741
+ cmd '#define REAL_LIBC RTLD_NEXT'
1742
+ cmd '#else'
1743
+ br
1744
+ pre '
1745
+ #define REAL_LIBC ((void *) -1L)
1746
+ #endif
1747
+
1748
+ void* dlopen(const char *file, int mode)
1749
+ {
1750
+ static void* (*o_dlopen) ( const char *file, int mode )=0;
1751
+ printf( "dlopen was called\n"
1752
+ o_dlopen = (void*(*)(const char *file, int mode)) dlsym(REAL_LIBC,
1753
+ "dlopen"
1754
+ return (*o_dlopen)( file, mode
1755
+ }
1756
+
1757
+ int close int fd )
1758
+ {
1759
+ static int (*o_close) ( int fd )=0;
1760
+ printf( "close was called\n"
1761
+ o_close = (int(*)( int fd )) dlsym(REAL_LIBC, "close"
1762
+ return (*o_close)( fd
1763
+ }'
1764
+ e 'Kompilieren des obigen Beispieles sollte so gehen:'
1765
+ br
1766
+ cmd 'gcc -Wall -fPIC -shared -o preload.so preload.c -ldl'
1767
+ br
1768
+ e 'Was man hier wissen muss ist, das ld die Definitionen
1769
+ genau in der Reihe prozessiert, wie sie auch in der
1770
+ command line übergeben wurden.'
1771
+ }
1772
+ e 'Interessante Links zu LD_PRELOAD'
1773
+ p_default_le {
1774
+ selfy 'http://michael.toren.net/slides/lkm-alternatives/TABLE_OF_CONTENTS.html'
1775
+ }
1776
+ }
1777
+ # ========================================================================= #
1778
+ # Was bedeuten die Variablen?
1779
+ # ========================================================================= #
1780
+ h3 'Hier die Erklärung der Variablen und Compiler Flags',COMPILE_HEADER3,
1781
+ 'cflags'
1782
+ table2 'BO','','CFLAGS',
1783
+ 'CC','Zu verwendender C-Compiler',
1784
+ 'CXX','Zu verwendender C++-Compiler',
1785
+ 'CFLAGS','Debug- und Optimierungsoptionen für den C-Compiler.
1786
+ Mittels --cflags erhält man Info wo die include
1787
+ Dateien sind, zb <i>gtk-config --cflags </i><br/>
1788
+ CFLAGS sind C compiler flags, die zum Optimieren von Code
1789
+ verwendet werden - Bekanntes Beispiel für nicht besonders aggressive
1790
+ Optimisierung: <br/>
1791
+ export CFLAGS="-O2 -march=i686"<br/>
1792
+ Die -0 Settings sind folgende<br/>
1793
+ <b class="red">-O3</b> Höchstes Level. Maschinen spezifischer Code
1794
+ wird generiert. Auto-magically adds the -finline-functions
1795
+ and -frename-registers flags. Nachteil ist aber das
1796
+ die Programme etwas grösser werden, und damit
1797
+ länger beim Laden brauchen.<br/>
1798
+ <b class="red">-02</b> Most Makefiles have this set up as Default, performs
1799
+ all supported optimizations that do not involve a space-speed
1800
+ tradeoff. Adds the -fforce-mem flag auto-magically. <br/>
1801
+ <b class="red">-01</b> Minimal optimizations are performed. Default for the
1802
+ compiler, if nothing is given.<br/>
1803
+ <b class="red">-00</b> Do no optimize at all. <br/>
1804
+ <b class="red">-0s</b> Same as -O2 but does additional optimizations for size. ',
1805
+ 'cpPFLAGS','Include-Verzeichnisse und andere verschiedene C-Compileroptionen. ',
1806
+ 'CXXFLAGS','Debug- und Optimierungsoptionen für den C++-Compiler',
1807
+ 'DEFS','<b>-D</b> Optionen für den C-Compiler (zB -DLINUX ',
1808
+ 'LDFLAGS','Optionen für den Linker (zB -s für automatisches Stripping
1809
+ e.g. -L<lib dir> if you have libraries in a
1810
+ nonstandard directory <lib dir>, LDFLAGS=-L/System/Links/Libraries',
1811
+ 'LIBS','-l und -L Optionen für den Linker, wobei man
1812
+ den genauen Pfad für -L auch angeben kann zb
1813
+ via <b>-L/pfad/zu/lib</b>.
1814
+ --libs returniert einen abr string, beispiel
1815
+ <b>gtk-config --libs</b> '
1816
+ # ========================================================================= #
1817
+ # Hier die configure und compiler flags, zb
1818
+ # --with-gxx-include-dir=/usr/include/c++/3.3
1819
+ # ========================================================================= #
1820
+ div 'default'
1821
+ h2 'Compiler und Configure Flags Explained'
1822
+ h3 'Was ist --with-gxx-include-dir=/usr/include/c++/3.3?',COMPILE_HEADER3
1823
+ h3 'Was ist -fomit-frame-pointer?',COMPILE_HEADER3
1824
+ compile_header4 'Dieses flag - auch als "magic flag" bekannt - verbessert die
1825
+ execution time, während die Binärgrösse etwas grösser wird. Auf x86
1826
+ führt dieses CFLAG dazu, das <b>debugging</b> nit mehr funzt.
1827
+ Daher sollte man es nicht aktivieren, wenn man etwas
1828
+ debuggen möchte. Der Compiler verwendet einen Register
1829
+ (Frame Pointer, um "stack trace debugging" zu ermöglichen.
1830
+ Wird dieser Frame Pointer nun omitted (weggelassen,
1831
+ dann wird der Register geleert - das führt dazu
1832
+ das Programme schneller rennen, da sie nicht so oft
1833
+ zum RAM zugreifen müssen. Einziger potentieller Nachteil
1834
+ ist eben das man den Debuggung output verliert.'
1835
+ h3 'Was bedeutet -mcpu=pentium3?',COMPILE_HEADER3
1836
+ compile_header4 'Dieses flag optimiert den Code für Pentium3,
1837
+ jedoch läuft der code auch auf i386 Architekturen.
1838
+ Nutzt man hingegen -march=pentium3 so läuft der Code nur auf
1839
+ Pentium3 (siehe auch unten)'
1840
+ h3 'Was bedeutet -march=pentium3?',COMPILE_HEADER3
1841
+ compile_header4 'Der code läuft nur auf Pentium3.
1842
+ 386 Architekturen. Übrigens: Setzt man -march=arch so ist auch -mcpu=arch
1843
+ genutzt. (<i>"honored"</i>'
1844
+ h3 'Was bedeutet -funrollloop?',COMPILE_HEADER3
1845
+ compile_header4 'Binaries sind grösser aber eventuell auch schneller.'
1846
+ h3 'Wie schalte ich bestimmte Funktionen eines
1847
+ Paket ein oder aus?',COMPILE_HEADER3
1848
+ compile_header4 'mit --enable und --disable'
1849
+ h3 'Was gibts zu GNU make zu sagen?',COMPILE_HEADER3
1850
+ compile_header4 'Makefile.am<br/>
1851
+ Kompiliert man ein .c File mit gcc ohne die Option -o (für
1852
+ output zu nuzen, so heisst die enstehende Datei
1853
+ <b>a.out</b>. a.out ist somit die Default
1854
+ Datei'
1855
+ h3 'Wie erreiche ich es, das das configure script weniger
1856
+ output generiert?',COMPILE_HEADER3
1857
+ compile_header4 'mit der Option <b>-q</b>'
1858
+ h3 'Was ist mit der Fehlermeldung error while loading shared
1859
+ libraries: libstdc++.so.5?',COMPILE_HEADER3
1860
+ compile_header4 'compat-libstdc++-33'
1861
+ div {
1862
+ h3 'Was ist mit der Fehlermeldung /lib/cpp fails
1863
+ sanity check?',COMPILE_HEADER3
1864
+ compile_header4 'Da ist ein Fehler beim C++ Compiler.
1865
+ Wahrscheinlich weil ein C++ Compiler nicht installiert
1866
+ wurde. Oder es handelt sich um fehlende
1867
+ linux-libc-headers. Und wenn der C++ Compiler wirklich
1868
+ irgendwo installiert ist, dann hilft ein Symlink.
1869
+ ZB wenn cc1plus nicht gefunden wurde. Zb '
1870
+ p_default_le {
1871
+ e 'ln -s /usr/lib/gcc/i486-linux-gnu/4.0.3/cc1 cc1plus'
1872
+ e 'Hmm, ob cc1plus nur ein symlink zu cc1 ist?'
1873
+ br
1874
+ e 'Das ist dann ein Symlink zum Beispiel so:'
1875
+ br
1876
+ cmd ' /lib/cpp . /usr/bin/cpp'
1877
+ }
1878
+ }
1879
+ div('default') {
1880
+ e '-fPIC tells to this gcc that it should generate PIC
1881
+ output, which saves a register for the location
1882
+ of the location of the library'
1883
+ }
1884
+ # ========================================================================= #
1885
+ # uclibc TAG ucl tag.
1886
+ # rf comp uclibc
1887
+ # ========================================================================= #
1888
+ div {
1889
+ h2 dot(102)+'Uclibc','','uclibc'
1890
+ p_default_le { e 'UClibc ist eine kleine Libc Variante.' }
1891
+ abr 'http://www.uclibc.org/',
1892
+ content: 'UClibc Homepage'
1893
+ }
1894
+ # ========================================================================= #
1895
+ # DIETLIBC TAG
1896
+ # rf comp dietlibc
1897
+ # ========================================================================= #
1898
+ div('default'){
1899
+ h2 dot(102)+'Dietlibc','','dietlibc'
1900
+ p_default_le {
1901
+ e 'Viele Distributionen setzen in ihren Initial-RAM-Disks
1902
+ (Initrd und Installationsumgebungen schon länger auf
1903
+ Dietlibc, weil damit kompilierte Programme auch schneller
1904
+ starten als Programme mittels Glibc.'
1905
+ abr 'http://www.fefe.de/dietlibc/',
1906
+ content: 'Offizielle Homepage von dietlibc',
1907
+ css_class: 'marl2em slateblue'
1908
+ }
1909
+ p_default_le {
1910
+ e 'Wie kompiliere ich ein Autoconf Programm mit diet libc?'
1911
+ e 'Setze CC wie zb so:'
1912
+ br
1913
+ cmd ' CC="diet gcc -nostdinc" ./configure --disable-nls'
1914
+ br
1915
+ e 'Wie kompiliere ich "normal"?'
1916
+ br
1917
+ cmd ' CC="diet gcc -nostdinc" ./configure --disable-nls
1918
+ --disable-shared --enable-static --host=i686'
1919
+ br
1920
+ e 'Eventuell muss man noch --disable-shared und
1921
+ --enable-static hinzufügen, für Programme die
1922
+ Libtool verwenden.'
1923
+ }
1924
+ }
1925
+ div('default') {
1926
+ h4 'Wie finde ich heraus, welche glibc Version ich habe?'
1927
+ h5 ' ldd --version',GLIBC_REPLY
1928
+ h4 'Wie finde ich heraus, welche Verzeichnisse glibc durchsucht?'
1929
+ h5 ' glib-config --cflags',GLIBC_REPLY
1930
+ h5 'Dies mag manchmal Probleme bereiten, vor allem bei
1931
+ Gobolinux ähnlichen Verzeichnisstrukturen. Man sollte auf
1932
+ alle Fälle ldconfig nach der Installation durchführen,
1933
+ und die Verzeichnisse in /etc/ld.so.conf eintragen.
1934
+ Man kann übrigens auch pkg-config
1935
+ benutzen, zum command siehe den Eintrag zu
1936
+ pkg-config.',GLIBC_REPLY
1937
+ h4 'Wie finde ich heraus, welche Library-Verzeichnisse
1938
+ von glib durchsucht werden?'
1939
+ h5 ' glib-config --libs',GLIBC_REPLY
1940
+ }
1941
+ # ========================================================================= #
1942
+ # === M4 TAG. rf compile m4
1943
+ # ========================================================================= #
1944
+ div('default','m4'){
1945
+ h2 dot(102)+'M4','marb1em'
1946
+ e 'Der Standard-Ort unter Linux, unter dem M4 Daten speichert,
1947
+ ist <b>/usr/share/aclocal</b>.'
1948
+ p_default_le {
1949
+ e 'm4_pattern_allow'
1950
+ br
1951
+ cmd ' m4_pattern_allow(AM_CONFIG_headERS'
1952
+ br
1953
+ e '(Das findet man dann zb in configure.ac)'
1954
+ br
1955
+ e 'Eine Variable kann man so deklarieren:'
1956
+ br
1957
+ cmd ' m4_define([crow_dep_dbus_glib], [0.70])'
1958
+ }
1959
+ }
1960
+ # ========================================================================= #
1961
+ # === KOBJECT TAG
1962
+ # ========================================================================= #
1963
+ div('default','kobject') {
1964
+ h2 'Kobject'
1965
+ e 'A kobject is an object of <b>type struct kobject</b>. Kobjects
1966
+ have a name and a reference count.'
1967
+ br
1968
+ e 'A kobject also has a parent pointer (allowing kobjects to be
1969
+ arranged into hierarchies, a specific type, and, perhaps, a
1970
+ representation in the sysfs virtual filesystem.'
1971
+ br
1972
+ e 'Kobjects are generally not interesting on their own instead,
1973
+ they are usually embedded within some other structure which
1974
+ contains the stuff the code is really interested in.'
1975
+ }
1976
+ # ========================================================================= #
1977
+ # CHROOT TAG
1978
+ # rf compile chroot
1979
+ # ========================================================================= #
1980
+ div('default') {
1981
+ h2 'Chroot','','chroot'
1982
+ p_default_le {
1983
+ e 'Das Verwenden von Chroot mag beim Kompilieren manchmal
1984
+ Vorteile bringen, denn ...'
1985
+ br
1986
+ e sg(:pfeil5)+'Chroot erstellt eine <b>abgekapselte
1987
+ Umgebung</b>.'
1988
+ br
1989
+ e 'Eine Chroot Umgebung mag einem auch helfen,
1990
+ "host errors" zu umgehen - zb wenn eine header Datei genutzt
1991
+ wird, die auf einem anderen Computer nicht existiert.'
1992
+ }
1993
+ p_default_le {
1994
+ e 'Für mehr Info über Chroot siehe bitte folgenden Abschnitt:'
1995
+ br
1996
+ abr 'cmd#chroot',
1997
+ content: 'Chroot',
1998
+ css_class: 'BO slateblue marl2em'
1999
+ }
2000
+ }
2001
+ # ========================================================================= #
2002
+ # === cmake tag
2003
+ # ========================================================================= #
2004
+ div('default') {
2005
+ abr :local_cmake, content: 'cmake'
2006
+ }
2007
+ # ========================================================================= #
2008
+ # Compile options zu GCC erklärt.
2009
+ # rf compile compile_options
2010
+ # ========================================================================= #
2011
+ div {
2012
+ h1 'Compile Options zu GCC:','','compile_options'
2013
+ table2 'marl1em','','',
2014
+ '-fomit-fame-pointer','Diese Option macht Programme
2015
+ schneller während der Lafuzeit. Potentieller Nachteil ist das
2016
+ das Debugging nicht mehr möglich ist.
2017
+ (-O schaltet -fomit-frame-pointer recht oft automatisch ein.)',
2018
+ '-funrollloop','will give you a bigger executable that may be
2019
+ a tad faster'
2020
+ # ======================================================================= #
2021
+ # Besondere options zu GCC
2022
+ # rf compile gcc_options
2023
+ # ======================================================================= #
2024
+ div {
2025
+ h1 'Besondere Anweisungen und Optionen zu GCC:','','gcc_options'
2026
+ table2 'marl1em','','',
2027
+ '-D','Die -D Option teilt GCC mit, das er weitere #defines
2028
+ während der Compile Time verwenden sollte. Zum Beispiel ist
2029
+ -DSRC_DIR=\"/usr/local/src\" das selbe wie in der Datei
2030
+ #define SRC_DIR \"/usr/local/src\"
2031
+ Haupteinsatzzweck dieser Option ist das Hard-coding von
2032
+ Configuration Data wie File Paths etc...'
2033
+ }
2034
+ div {
2035
+ h2 'GCC spezifische Macros:'
2036
+ table2 'mars1em','','',
2037
+ 'GLIBCXX','War früher GLIBCPP'
2038
+ }
2039
+ }
2040
+ # ========================================================================= #
2041
+ # === Header Files #header
2042
+ # ========================================================================= #
2043
+ div('','header') {
2044
+ h2 'Anhang C (Header Files)'
2045
+ h3 'Header Files eines Linux Systems'
2046
+ cmd ' /usr/include/stdio.h'
2047
+ cmd ' /usr/include/sys/types.h'
2048
+ cmd ' /usr/include/sys/stat.h'
2049
+ cmd ' /usr/include/sys/signal.h'
2050
+ cmd ' /usr/include/sys/ctype.h'
2051
+ br
2052
+ e 'Mein Script rminimal_environment.rb kopiert die relevanten Dateien.'
2053
+ }
2054
+ # ========================================================================= #
2055
+ # Besondere Variablen
2056
+ # ========================================================================= #
2057
+ div('mart2em'){
2058
+ h1 'Besondere Variablen zu GCC:'
2059
+ p_default_le {
2060
+ e 'CHOST','BO'
2061
+ br
2062
+ marl1em 'zb CHOST="i686-pc-linux-gnu"'
2063
+ br
2064
+ e 'CFLAGS','BO'
2065
+ br
2066
+ marl1em 'zb CFLAGS="-O2 -march=k6 -mcpu=k6"'
2067
+ marl1em ' CFLAGS="-pipe"'
2068
+ br
2069
+ e 'The CFLAG -pipe will cause the compiler to pipe the data
2070
+ into the next function as opposed to storing temporary files
2071
+ to the Hard Drive and accessing it from there. This will help
2072
+ speed up compile times, especially with larger programs,
2073
+ however causes more RAM to be used during compilation.'
2074
+ br
2075
+ lem 'zb CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"'
2076
+ br
2077
+ boldbr 'CXXFLAGS'
2078
+ e 'zb CXXFLAGS="---CFLAGSend"','marl1em'
2079
+ }
2080
+ }
2081
+ # ========================================================================= #
2082
+ # === Libtool
2083
+ #
2084
+ # WAS MACHT LIBTOOL? Libtool tag. lib tag. #libtool
2085
+ #
2086
+ # libtool tag
2087
+ # rf compiling libtool
2088
+ # ========================================================================= #
2089
+ div('default','Libtool') {
2090
+ h2 sg(:package)+' Was macht libtool?',COMPILE_HEADER3,'libtool'
2091
+ e 'Libtool ist ein 7584 Zeilen langes Shell-Script, das eine
2092
+ allgemeine Schnittstelle für <b>shared Libraries</b> (Bibliotheken,
2093
+ also <b>.so Objekte</b>) bereit stellt.'
2094
+ br
2095
+ cmd ' cat /usr/bin/libtool'
2096
+ br
2097
+ e 'Libtool nimmt Informationen etwas ungewöhnlich auf:'
2098
+ br
2099
+ e sg(:pfeil10)+'Der Compiler darf <b>nicht</b> bestimmen, welche
2100
+ System Bibliotheken genutzt werden sollen.','marl2em'
2101
+ br
2102
+ e 'Wie löst Libtool dies dann auf?'
2103
+ br
2104
+ e 'Es parsed den Output von:'
2105
+ br
2106
+ cmd ' gcc ARGS -v'
2107
+ br
2108
+ e 'sowie von:'
2109
+ br
2110
+ cmd ' gcc -nostdlibs ARGS -v'
2111
+ br
2112
+ e 'Danach, wenn es Zeit wird eine Bibliothek zu
2113
+ verknüpfen, verwendet <b>libtool direkt ld</b>.'
2114
+ br
2115
+ e 'Es fügt selbständig <b>crt.0</b> hinzu.'
2116
+ br
2117
+ e 'Der Gedanke dahinter ist, das Libtool <b>selbständig</b>
2118
+ alle Information erhalten kann - nichts soll vor
2119
+ Libtool versteckt sein.'
2120
+ br
2121
+ e 'Auch die Spec Datei von GCC soll sich Libtool nicht
2122
+ entziehen. Ziemlich radikal und schlau oder?'
2123
+ br
2124
+ e 'Die Idee hinter Libtool war auch genial:'
2125
+ br
2126
+ e 'Es sollte nur ein Script geben, mit dem man C Dateien
2127
+ kompilieren und (miteinander) verknüpfen kann, und somit
2128
+ Executables, static libraries und dynamic libraries erstellen kann.
2129
+ Daher auch der Name LIB-Tool, kurz für Library Tool.','marl2em'
2130
+ br
2131
+ e 'Libtool kommt auch mit libltdl, eine Bibliothek die verwendet
2132
+ wird um während der Laufzeit Extensions zu laden.'
2133
+ br
2134
+ e 'Wichtige Informationen bezieht Libtool aus den <b>.la</b>
2135
+ Dateien - diese sind normalerweise nicht einfach verschiebbar.'
2136
+ br
2137
+ e 'Linktool arbeitet in <b>6 verschiedenen Modes:</b>
2138
+ ( Compile, Link, Execute, Install, Finish, Uninstall )'
2139
+ br
2140
+ e dot(102)+'Compile Mode','marl3em'
2141
+ e dot(102)+'Link Mode','marl3em'
2142
+ e dot(102)+'Execute Mode','marl3em'
2143
+ e dot(102)+'Install Mode','marl3em'
2144
+ e dot(102)+'Finish Mode','marl3em'
2145
+ e dot(102)+'Uninstall Mode','marl3em'
2146
+ br
2147
+ e 'Der abr Mode ist hierbei sehr wichtig, denn gerade bei ihm
2148
+ kommt es des öfteren zu einem Fehler.'
2149
+ br
2150
+ e 'Soweit so gut...'
2151
+ br
2152
+ e 'Das Problem mit Libtool ist aber, das es 232KB gross ist.'
2153
+ br
2154
+ e 'Jedes mal wenn man etwas mit Autotooled Projekten erstellt,
2155
+ für JEDE C Datei in diesem Projekt, wird libtool aufgerufen.'
2156
+ br
2157
+ e 'Das führt nun dazu, das in manchen Situationen
2158
+ das Aufrufen und Verwenden von Libtool länger dauert
2159
+ als das eigentliche Kompilieren der C Dateien im Projekt.'
2160
+ br
2161
+ e 'Um LibTool kennenzulernen sollte man sich nun
2162
+ zuerst einmal in diesem Verzeichnis umsehen:'
2163
+ br
2164
+ cmd ' cd /usr/share/libtool'
2165
+ br
2166
+ e 'Will man ein reloadable Object erstellen, geht dies so:'
2167
+ br
2168
+ cmd ' ld -r -o output.o foobar.o'
2169
+ br
2170
+ e 'Hier ein Beispiel wie man relinked:'
2171
+ br
2172
+ cmd ' libtool --mode=link gcc -g -O -o libhello.la foo.o hello.o'
2173
+ br
2174
+ e 'Es kann aber auch mit Libtool zu Fehlermeldungen kommen wie zb:'
2175
+ br
2176
+ cmd 'libtool: relink: warning:
2177
+ `/usr/lib/gcc/i386-redhat-linux/3.4.6/../../..//libjpeg.la\'
2178
+ seems to be moved'
2179
+ br
2180
+ e 'Hier werden die Informationen der .la Dateien genutzt.'
2181
+ br
2182
+ e '<b>Fehlermeldungen</b> werden in <b>ltdl.h</b> über LT_ERROR
2183
+ behandelt, leider gibt es zum Teil dämliche Fehlermeldung wie
2184
+ "can not install directory" nur aufgrund eines
2185
+ nicht "konformen" Verzeichnispfad ...'
2186
+ br
2187
+ e 'Sehr wichtig ist die Variable
2188
+ <b>sys_lib_search_path_spec</b> im Libtool script,
2189
+ ich füge da gerne /System/Links/Libraries hinzu.'
2190
+ br
2191
+ e 'When you compile a program like The Gimp, it will probably abr
2192
+ with many libraries, some of which were linked against pango when
2193
+ it was still installed under /usr.'
2194
+ br
2195
+ pre '
2196
+ In this case, these libraries will have dead references in their
2197
+ own .la files. Libtool has this very nifty feature that it will
2198
+ automagically abr against dependent libraries of the libraries you
2199
+ use (which is normally automatically done by modern linkers on modern
2200
+ OSes, but since its not portable, we cant rely on this, and Libtool
2201
+ does it for you).
2202
+ So basically, when you abr against libfoo and there is a libfoo.la,
2203
+ libtool will read it to find out what are the dependencies of libfoo
2204
+ and add them recursively to the linking command. In your case, you are
2205
+ probably using libraries whose .la files are still referencing pango
2206
+ from under /usr/lib, hence the problem (that just an educated guess,
2207
+ there can be other reasons, of course).
2208
+ # grep -l pango /usr/lib{,64}/*.la
2209
+ You will see that many of them have the location of pangos la file
2210
+ stored in them.
2211
+ For example:
2212
+ # grep pango /usr/lib/libavahi-ui.la
2213
+ dependency_libs= /usr/lib/libavahi-client.la /usr/lib/libdbus-1.la
2214
+ /usr/lib/libavahi-glib.la /usr/lib/libavahi-common.la
2215
+ /usr/lib/libgtk-x11-2.0.la /usr/lib/libgdk-x11-2.0.la
2216
+ /usr/lib/libatk-1.0.la /usr/lib/libgdk_pixbuf-2.0.la
2217
+ /usr/lib/libpangocairo-1.0.la /usr/lib/libcairo.la
2218
+ /usr/lib/libpangoft2-1.0.la /usr/lib/libpango-1.0.la
2219
+ /usr/lib/libpango-1.0.la /usr/lib/libgobject-2.0.la
2220
+ /usr/lib/libgmodule-2.0.la /usr/lib/libcairo.la
2221
+ /usr/lib/libfontconfig.la /usr/lib/libfreetype.la /usr/lib/libexpat.la
2222
+ /usr/lib/libpng12.la -lz /usr/lib/libXrender.la /usr/lib/libX11.la
2223
+ /usr/lib/libxcb-xlib.la /usr/lib/libxcb.la /usr/lib/libXau.la
2224
+ /usr/lib/libXdmcp.la -lm /usr/lib/libgobject-2.0.la
2225
+ /usr/lib/libgmodule-2.0.la /usr/lib/libglib-2.0.la -ldl
2226
+ /usr/lib/libglib-2.0.la /usr/lib/libgdbm.la
2227
+ /opt/gcc/current/lib/libssp.la
2228
+ It saved all that from the last time that pango was installed
2229
+ and that software which requires pango libraries was compiled and installed.
2230
+ Now you have an understanding of what needs to be modified, right?
2231
+ All those .la files that have references to pango libraries need to
2232
+ be modified.
2233
+ The la files installed by pango are probably something like:
2234
+ /usr/lib/libpango-1.0.la
2235
+ /usr/lib/libpangocairo-1.0.la
2236
+ /usr/lib/libpangoft2-1.0.la
2237
+ /usr/lib/libpangox-1.0.la
2238
+ /usr/lib/libpangoxft-1.0.la
2239
+ Using sed -i you can edit all those files and replace
2240
+ the old locations for where the libpango libtool archive files were stored
2241
+ with the new location.
2242
+ After that you should also check for an .la file that has in it a
2243
+ direct reference
2244
+ to a pango library file and not just a .la file.
2245
+ And edit those also to reflect the new path to where pango is installed.
2246
+ Yes, it is not so easy...
2247
+ But in order to adjust the first one I might type something like
2248
+ what I have below for merely the ia32 architecture and assuming
2249
+ that /usr/lib64 is not used.
2250
+ # grep -l "/usr/lib/libpango-1.0.la" /usr/lib/*.la |
2251
+ xargs -rL64 sed -i
2252
+ "s:/usr/lib/libpango-1.0.la:/opt/pango/lib/libpango-1.0.la:g"
2253
+ Now it will assume pango is installed in /opt/pango
2254
+ However, the same must be done for:
2255
+ /usr/lib/libpangocairo-1.0.la
2256
+ /usr/lib/libpangoft2-1.0.la
2257
+ /usr/lib/libpangox-1.0.la
2258
+ /usr/lib/libpangoxft-1.0.la
2259
+ Yes editing .la files is a bit of a pain.
2260
+ Basically that is how it works.'
2261
+ br
2262
+ e 'Using grep, xargs, sed you can fix all the .la files
2263
+ with references to the old installed locations of pango.
2264
+ Or you could edit them by hand if you have a couple
2265
+ free hours.'
2266
+ br
2267
+ e 'Die aktuelle Version von libtool findet man auf'
2268
+ br
2269
+ abr 'http://www.gnu.org/software/libtool/libtool.html',
2270
+ content: 'http://www.gnu.org/software/libtool/libtool.html',
2271
+ css_class: 'BO marl2em'
2272
+ }
2273
+ # ========================================================================= #
2274
+ # === pkg-config tag, pkg tag
2275
+ # ========================================================================= #
2276
+ div('default FW4','pkg_config','') {
2277
+ h2 dot(104)+'About PKG - Config','FI','',
2278
+ 'border-top:3px solid slateblue;
2279
+ border-bottom:3px solid slateblue'
2280
+ h3 'pkg-config is a helper tool for managing library compile/link
2281
+ flags that work with automake and autoconf. It helps to compile
2282
+ software. It also replaces the ubiquitous *-config scripts you
2283
+ may have seen with a single tool. /
2284
+ Mit anderen Worten, mit Hilfe von pkg-config kann man Library
2285
+ flags in Verbindung mit automake und autoconf managen. Es nutzt
2286
+ zudem die Environment Variable <br>
2287
+ <b class="s2em">
2288
+ echo PKG_CONFIG_PATH
2289
+ </b><br>
2290
+ Default Location wo die pc Dateien normalerweise sind ist
2291
+ <b>/usr/lib/pkgconfig</b><br>
2292
+ Um weitere Dateien hinzuzufügen kann man die Pfade zu
2293
+ PKG_CONFIG_PATH angeben.','ind1em FW4'
2294
+ h2 dot(102)+'pkg-config spezifische FAQ','FI darkblue s1em','pkg'
2295
+ h4 'Herausfinden der include directories, wo der compiler nachschaut?'
2296
+ h5 'pkg-config --cflags PROGRAMM',PKG_CSS_ANSWER_CLASS
2297
+ h5 'pkg-config --cflags gtk+-2.0',PKG_CSS_ANSWER_CLASS
2298
+ h5 'pkg-config --cflags xrender',PKG_CSS_ANSWER_CLASS
2299
+ h5 'pkg-config --cflags pango',PKG_CSS_ANSWER_CLASS
2300
+ h5 'pkg-config --cflags atk',PKG_CSS_ANSWER_CLASS
2301
+ h5 'pkg-config --cflags glib-2.0',PKG_CSS_ANSWER_CLASS
2302
+ h5 'pkg-config --libs --cflags glib-2.0',PKG_CSS_ANSWER_CLASS
2303
+ br
2304
+ e 'Alle Pakete kann man so angezeigt bekommen:'
2305
+ br
2306
+ e 'pkg-config --list-all', PKG_CSS_ANSWER_CLASS
2307
+ h5 '(Beispiel Ergebnisse:
2308
+ -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include
2309
+ -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2
2310
+ -I/usr/include/freetype2/config -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
2311
+ ','FI martb1px'
2312
+ h5 'pkg-config glib --cflags','BOLD '+PKG_CSS_ANSWER_CLASS
2313
+ h4 'Wie finde ich via pkg-config heraus, welche Version von libpng
2314
+ installiert ist? Oder von Wand oder von Vorbis?'
2315
+ p('PKG_CSS_ANSWER_CLASS') {
2316
+ e 'pkg-config --modversion gtksourceview-1.0'
2317
+ e 'pkg-config --modversion libpng'
2318
+ e 'pkg-config --modversion Wand'
2319
+ e 'pkg-config --modversion vorbis'
2320
+ e 'pkg-config --modversion pango'
2321
+ e 'pkg-config --modversion atk'
2322
+ e 'pkg-config --modversion glib-2.0'
2323
+ e 'pkg-config --modversion glib'
2324
+ e 'pkg-config --modversion gtk+-2.0'
2325
+ e 'pkg-config --modversion cairo'
2326
+ e 'pkg-config --modversion qt-mt'
2327
+ e 'pkg-config --modversion sdl'
2328
+ e 'pkg-config --modversion libglade'
2329
+ e 'pkg-config --modversion gstreamer-0.10'
2330
+ }
2331
+ h4 'Wie kombiniere ich das ganze?'
2332
+ h5 'pkg-config --libs --cflags glib-2.0',PKG_CSS_ANSWER_CLASS
2333
+ h4 'Wie sieht ein typisches .pc File aus?'
2334
+ pre ' <b>prefix</b>=/usr
2335
+ <b>exec_prefix</b>=/usr
2336
+ <b>libdir</b>=/usr/lib
2337
+ <b>includedir</b>=/usr/include
2338
+ <b>target</b>=x11
2339
+ <b>gtk_binary_version</b>=2.4.0
2340
+ gtk_host=i386-unknown-linux-gnu
2341
+ <b>Name</b>: GTK+
2342
+ <b>Description</b>: GIMP Tool Kit (targetend target
2343
+ <b>Version</b>: 2.8.6
2344
+ <b>Requires</b>: gdk-targetend-2.0 atk cairo
2345
+ <b>Libs</b>: -Llibdirend -lgtk-targetend-2.0
2346
+ <b>Cflags</b>: -Iincludedirend/gtk-2.0','FS1_5em'
2347
+ br
2348
+ e 'Man kann auch Compile Flags angeben, zum Beispiel:'
2349
+ br
2350
+ cmd 'Libs.private: -lpthread'
2351
+ br
2352
+ div {
2353
+ h3 'Links bezüglich pkg','marb8px'
2354
+ p('marl1em mart1px ind0') {
2355
+ abr 'http://pkgconfig.freedesktop.org/wiki/',
2356
+ content: 'pkgconfig Wiki',
2357
+ css_class: 'slateblue'
2358
+ abr 'http://pmk.sourceforge.net/pkgconfig.php',
2359
+ content: 'PreMakeKit - Alternative zu pkgconfig',
2360
+ css_class: 'slateblue'
2361
+ }
2362
+ }
2363
+ }
2364
+ # =========================================================================== #
2365
+ # === Appendix zu Compiling
2366
+ # =========================================================================== #
2367
+ div('default') {
2368
+ h1 'Appendix zu Compiling','appendix_compiling'
2369
+ table2 's1em','','',
2370
+ '<b>Macro Prototype</b>','<b>Comments</b>',
2371
+ 'AC_INIT(sourcefile',
2372
+ 'Initializes autoconf, should be the <b>first macro</b> called
2373
+ in <b>configure.in</b>. sourcefile is the name (relative to
2374
+ current directory of a source file from your code.',
2375
+ 'AC_PROG_CC ','Determines a C compiler to use, sets the CC
2376
+ variable. If this is GCC, set the GCC variable to yes, otherwise
2377
+ no. Initializes the CFLAGS variable if it has not been set
2378
+ already (to override CFLAGS, do it in configure.in
2379
+ BEFORE calling this macro',
2380
+ 'AC_PROG_CXX','Determines a C++ compiler to use, sets
2381
+ the CXX variable. If this is the GNU C++ compiler, set GXX
2382
+ to yes, otherwise no. Initializes the CXXFLAGS variable if
2383
+ it has not been set already (to override CXXFLAGS, do it
2384
+ in configure.in BEFORE calling this macro. Ist also auch
2385
+ recht wichtig, und prüft ob man einen C++ Compiler hat.',
2386
+ 'AC_LANG_C','Tests the C compiler',
2387
+ 'AC_LANG_cpLUSPLUS','Tests the C++ compiler',
2388
+ 'AC_PROG_INSTALL ','Set variable INSTALL to the path of
2389
+ a BSD-compatible install program (see install (1. If not
2390
+ found, set it to dir/install-sh -c , looking in the
2391
+ directories specified to AC_CONFIG_AUX_DIR. Also sets
2392
+ INSTALL_SCRIPT and INSTALL_PROGRAM to (INSTALL, and
2393
+ INSTALL_DATA to (INSTALL -m 644. You must provide a
2394
+ install-sh file in the current directory (unless you use
2395
+ AC_CONFIG_AUX_DIR -- the common practice is to provide a
2396
+ install-sh file else autoconf will refuse to run.',
2397
+ 'AC_PATH_X',"ry to locate the X window system's includes
2398
+ and libraries, and sets the variables x_includes and
2399
+ x_libraries to their locations.",
2400
+ 'AC_PATH_XTRA','Like the previous, but adds the required
2401
+ include flags to X_CFLAGS and required linking flags
2402
+ to X_LIBS.',
2403
+ '<b>AC_PATH_PROG</b>(a,b[,c[,d]],a=variable-name,
2404
+ b=prog-to-check,c=value-if-not-found, d=path',
2405
+ 'Looks for prog-to-check in PATH, and sets variable-name to
2406
+ the full path if found, or to value-if-not-found if not.',
2407
+ 'AC_PROG_MAKE_SET ','If make predefines the variable MAKE,
2408
+ define output variable SET_MAKE to be empty. Otherwise,
2409
+ define SET_MAKE to contain MAKE=make',
2410
+ 'AC_OUTPUT(files [,a[,b]] ','Create output files.
2411
+ Perform substitutions on files, which contains a list of
2412
+ files separated by spaces. (is writes, say, Makefile,
2413
+ from a Makefile.in file, spec from spec.in, and so on.
2414
+ The name given here is without the .in suffix. The other
2415
+ 2 parameters are seldom used, consult the autoconf docs
2416
+ if needed. If AC_CONFIG_headER, AC_LINK_FILES or
2417
+ AC_CONFIG_SUBDIRS were called, the files named as their
2418
+ arguments are created too.',
2419
+ 'AC_CONFIG_headER(files','Make AC_OUTPUT create the
2420
+ headers listed in the files list (space-separated.
2421
+ Replaces DEFS in generated files with -DHAVE_CONFIG_H.
2422
+ The usual name for the header is config.h (created from
2423
+ config.h.in. The autoheader generates config.h.in files
2424
+ automatically for you (it is documented in the next sections+',
2425
+ 'AC_CONFIG_SUBDIRs(dirs','run configure scripts in the
2426
+ subdirectories listed in dirs (space-separated. This is
2427
+ meant for when you nest child packages to your program
2428
+ (like including libraries as subdirs+',
2429
+ 'AC_CHECK_FUNC(a[,b[,c]] a=function, b=action if found,
2430
+ c=action if not found',' checks if the given C def
2431
+ is available in the standard library (i.e., the libraries
2432
+ that are linked by default to any C program+',
2433
+ 'AC_CHECK_FUNCs(a[,b[,c]] a=list of functions
2434
+ (space-separated b=action if found c=action if not found',
2435
+ 'similar to AC_CHECK_FUNC, but looks for many functions at
2436
+ once, setting HAVE_def for each def found
2437
+ (in the given set+',
2438
+ 'AC_CHECK_LIB(a,b[,c[,d[,e]]] a=library name b=def name
2439
+ c=action if found d=action if not found e=see autoconf docs ','
2440
+ Checks whether a def exists in the given library (library
2441
+ names without the leading lib, e.g., for libxml, use just
2442
+ xml here',
2443
+ 'AC_headER_STDC','Checks for stdlib.h, stdarg.h, string.h
2444
+ and float.h, defines STDC_headERS on success.',
2445
+ 'AC_CHECK_headER(header[,a[,b]] a=action if found b=action if
2446
+ not found ','Checks whether a given header file exists.',
2447
+ 'AC_MSG_ERROR(message','Notifies the user an error has
2448
+ occurred and exits configure with a non-zero status. This is
2449
+ what you should do when a required library or header is
2450
+ missing. Example Code is followed in the section after this
2451
+ table.',
2452
+ 'AC_MSG_WARNING(message','Notifies the user with the given
2453
+ message. This is what you should do when an optional library
2454
+ is missing (thus the final result will be not as good as
2455
+ it could',
2456
+ 'AC_ARG_ENABLe feature,help[,a[,b]] a=action if given b=action
2457
+ if not given ',' Checks whether the user gave --enable-feature
2458
+ in the configure command-line. The help string is shown
2459
+ in configure --help'
2460
+ div {
2461
+ h2 'Example Code for AC_*'
2462
+ cmd 'AC_CHECK_FUNC(XextFindDisplay, :,'
2463
+ cmd2 ' AC_MSG_ERROR([*** libXext not found.
2464
+ Check config.log for more details.]'
2465
+ }
2466
+ }
2467
+ # ========================================================================= #
2468
+ # Makefile Options explained.
2469
+ # ========================================================================= #
2470
+ div {
2471
+ boldbr 'MakeFile Options Explained:'
2472
+ table2 'marl2em BO','','',
2473
+ 'Variable','Description',
2474
+ '$@','This will always expand to the current target.',
2475
+ '$<','Name der ersten Prerequisite. This is the
2476
+ first item listed after the colon. (binarytree.o
2477
+ in the first rule above)',
2478
+ '$?','The names of all the prerequisites that are newer than
2479
+ the target. In the above example this will evaluate to
2480
+ binarytree.o for the first rule.',
2481
+ '$^','The names of all the prerequisites, with spaces
2482
+ between them. No duplicates',
2483
+ '$+','Like $^, but with duplicates. Items are listed in
2484
+ the order they were specified in the rule.'
2485
+ }
2486
+ div('mar0px ind0') {
2487
+ h3 'Gute Links zum Kompilieren und Installieren'
2488
+ abr 'http://eli.thegreenplace.net/2011/08/25/load-time-relocation-of-shared-libraries/',
2489
+ content: 'NAME_ONLY',
2490
+ css_class: 'marl1em'
2491
+ abr :local_c,
2492
+ content: :self,
2493
+ css_class: 'marl1em'
2494
+ abr :local_kernel,
2495
+ content: :self,
2496
+ css_class: 'marl1em'
2497
+ }
2498
+ # ========================================================================= #
2499
+ # === Distcc tag
2500
+ # ========================================================================= #
2501
+ div {
2502
+ abr 'DistCC',
2503
+ content: 'DISTCC/DISTCC.cgi'
2504
+ }
2505
+ # ========================================================================= #
2506
+ # Anhang: March Type
2507
+ # ========================================================================= #
2508
+ div {
2509
+ h2 sg(:item)+'Anhang bezüglich <span class="BO ud">March Type</span> (-march=i686)','','anhang'
2510
+ table2 'marl4em','march_type','',
2511
+ '<b>-march=i386</b>','<a href="http://de.wikipedia.org/wiki/I386">Steinalter Chip</a>, war aber
2512
+ damals ein sehr grosser Erfolg',
2513
+ '<b>-march=i486</b>','Alter Code ... Intel i486 CPU. Dieser Chip hat z.Bsp kein scheduling.',
2514
+ '<b>-march=i586</b>','äquivalent zu <b>pentium</b>, also Intel Pentium CPU ohne MMX Unterstützung',
2515
+ '<b>-march=i686</b>','äquivalent zu <b>pentiumpro</b> (Intel Pentium Pro CPU)',
2516
+ '<b>-march=k6</b>','Der AMD K6 CPU Chip mit MMX instruction set support.',
2517
+ '<b>-march=k6-2, k6-3</b>','Improved versions of AMD K6 CPU with MMX and 3dNOW! instruction set support.',
2518
+ '<b>-march=athlon</b> (und athlon-tbird)','Scheint für Athlons zu gelten, also AMD Athlon CPUs mit
2519
+ MMX 3dNOW! enhanced 3dNOW! und SSE prefetch instruction support',
2520
+ '<b>-march=pentium</b>','Pentium 1 Reihe',
2521
+ '<b>-march=pentium-mmx</b> # Pentium MMX','Intel Pentium3 CPU MMX Reihe
2522
+ mit SSE und SSE2 (MMX instruction set support). Wird bei Centrino Notebooks verwendet.',
2523
+ '<b>-march=pentium2</b>','Intel Pentium 2 CPU basierend auf PentiumPro Kern mit MMX Instruction
2524
+ set support',
2525
+ '<b>-march=pentium3</b>','Intel Pentium3 CPU, basierend auf PentiumPro Core mit MMX und SSE
2526
+ instruction set',
2527
+ '<b>-march=celron</b>','Celron',
2528
+ '<b>-march=pentium-m</b>','Pentium M (zb Laptop FSC Amilo Pro V2030)',
2529
+ '<b>-march=pentium4</b>','Pentium 4 (produziert von 20.11.2000 - 08.08.2008),
2530
+ Inkludiert auch pentium4m. Hat MMX, SSE und SSE2.',
2531
+ '<b>-march=prescott</b>','Verbessserte Version von Intel Pentium4 CPU mit
2532
+ MMX SSE SSE2 und SSE3',
2533
+ '<b>-march=athlon-mp</b>','Athlon-mp, inkludiert auch AMD Sempron
2534
+ (Palomino Reihe)',
2535
+ '<b>-march=athlon-xp</b>','Athlon 64 (AMD), dies gilt für
2536
+ Improved AMD Athlon CPU mit MMX, 3dNOW!, enhanced 3dNOW! und vollem
2537
+ SSE instruction set support.',
2538
+ '<b>-march=athlon-4</b> (sowie athlon-xp, athlon-mp)','Verbesserter AMD
2539
+ Athlon CPU mit MMX 3dNOW! enhanced 3dNOW! und voller SSE Unterstützung',
2540
+ '<b>-march=k6</b>','AMD K6 Reihe. K6-1 entspricht k6, K6-2 entspricht k6-2,
2541
+ K6-3 entspricht k6-3',
2542
+ '<b>-march=k8</b> (inkludiert auch opteron, athlon64, athlon-fx)','AMD K8 core based CPUs with x86-64 instruction
2543
+ set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)',
2544
+ '<b>-march=athlon64</b>','AMD 64? Scheint so zu sein.',
2545
+ '<b>-march=native</b>','Eine neue Variante seit GCC 4.2.0. Wird empfohlen,
2546
+ ausser man verwendet distcc.',
2547
+ '<b>-march=nocona</b>','Verbesserte Version von Intel Pentium4 CPU
2548
+ mit 64bit Erweiterung, MMX SSE SSE2 SSE3'
2549
+ br
2550
+ selfy 'http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html'
2551
+ }
2552
+ # ========================================================================= #
2553
+ # === Nützliche Links bezüglich Installieren, Kompilieren etc
2554
+ # ========================================================================= #
2555
+ div('default') {
2556
+ h2 sg(:note,'marr8px')+
2557
+ 'Nützliche Links bezüglich Installieren, Kompilieren etc',COMPILE_HEADER2
2558
+ div('marl3em'){
2559
+ abr 'http://lug-dd.schlittermann.de/vortraege/autoconf.html',
2560
+ content: DOT106+'AutoConf Link'
2561
+ abr 'http://docs.sun.com/app/docs/doc/817-1984/6mhm7pl25?a=view',
2562
+ content: DOT106+'Glibc Audit - ein wichtiger Link'
2563
+ abr 'http://xlife.zuavra.net/columns/20020316',
2564
+ content: DOT106+'Info über C und CC'
2565
+ abr 'http://www.freehackers.org/gentoo/gccflags/flag_gcc3.html',
2566
+ content: DOT106+'GCC3 Flags'
2567
+ abr 'http://www.gentoo.org/doc/en/draft/bootstrapping-guide.xml',
2568
+ content: DOT106+'Der Bootstrapping Prozess'
2569
+ abr 'http://0install.org/index.html',
2570
+ content: DOT106+'ZeroInstall sehr interessant'
2571
+ abr 'http://www.tsfr.org/~orc/Code/configure/',
2572
+ content: DOT106+'Configure, ein Ersatz für GNU Configure'
2573
+ abr 'http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html',
2574
+ content: DOT106+'GCC Environment Variables'
2575
+ }
2576
+ }
2577
+ p('mart8px') {
2578
+ roebe_sitemap
2579
+ }
2580
+ }}