Browse Source

First commit

Thomas Buck 11 years ago
commit
6783f259cd
100 changed files with 4874 additions and 0 deletions
  1. 1
    0
      .gitignore
  2. 5
    0
      deploy
  3. 9
    0
      input/404.md
  4. 23
    0
      input/blog.md
  5. 20
    0
      input/blog/2012_12_05_xycontrol.md
  6. 24
    0
      input/blog/2012_12_16_mun.md
  7. 24
    0
      input/blog/2012_12_22_docking.md
  8. 20
    0
      input/blog/2012_12_22_motor_test.md
  9. 18
    0
      input/blog/2012_12_25_heli.md
  10. 51
    0
      input/blog/2013_01_20_quadrocopter.md
  11. 23
    0
      input/blog/2013_01_31_odys_genio.md
  12. 20
    0
      input/blog/2013_02_11_motor_test.md
  13. 24
    0
      input/blog/2013_02_25_android.md
  14. 21
    0
      input/blog/2013_03_05_graphview.md
  15. 26
    0
      input/blog/2013_03_10_yasab.md
  16. 27
    0
      input/blog/2013_03_12_test_rig.md
  17. 18
    0
      input/blog/2013_03_13_test_rig.md
  18. 27
    0
      input/blog/2013_03_16_pid.md
  19. 23
    0
      input/blog/2013_03_25_doxygen.md
  20. 30
    0
      input/contact.md
  21. 127
    0
      input/css/gh-fork-ribbon.css
  22. 1
    0
      input/css/sh_bright.min.css
  23. 237
    0
      input/css/style.css
  24. 57
    0
      input/index.md
  25. 1
    0
      input/js/sh/sh_bison.min.js
  26. 1
    0
      input/js/sh/sh_c.min.js
  27. 1
    0
      input/js/sh/sh_caml.min.js
  28. 1
    0
      input/js/sh/sh_changelog.min.js
  29. 1
    0
      input/js/sh/sh_cpp.min.js
  30. 1
    0
      input/js/sh/sh_csharp.min.js
  31. 1
    0
      input/js/sh/sh_css.min.js
  32. 1
    0
      input/js/sh/sh_desktop.min.js
  33. 1
    0
      input/js/sh/sh_diff.min.js
  34. 1
    0
      input/js/sh/sh_flex.min.js
  35. 1
    0
      input/js/sh/sh_glsl.min.js
  36. 1
    0
      input/js/sh/sh_haxe.min.js
  37. 1
    0
      input/js/sh/sh_html.min.js
  38. 1
    0
      input/js/sh/sh_java.min.js
  39. 1
    0
      input/js/sh/sh_javascript.min.js
  40. 1
    0
      input/js/sh/sh_javascript_dom.min.js
  41. 1
    0
      input/js/sh/sh_latex.min.js
  42. 1
    0
      input/js/sh/sh_ldap.min.js
  43. 1
    0
      input/js/sh/sh_log.min.js
  44. 1
    0
      input/js/sh/sh_lsm.min.js
  45. 1
    0
      input/js/sh/sh_m4.min.js
  46. 1
    0
      input/js/sh/sh_makefile.min.js
  47. 1
    0
      input/js/sh/sh_oracle.min.js
  48. 1
    0
      input/js/sh/sh_pascal.min.js
  49. 1
    0
      input/js/sh/sh_perl.min.js
  50. 1
    0
      input/js/sh/sh_php.min.js
  51. 1
    0
      input/js/sh/sh_prolog.min.js
  52. 1
    0
      input/js/sh/sh_properties.min.js
  53. 1
    0
      input/js/sh/sh_python.min.js
  54. 1
    0
      input/js/sh/sh_ruby.min.js
  55. 1
    0
      input/js/sh/sh_scala.min.js
  56. 1
    0
      input/js/sh/sh_sh.min.js
  57. 1
    0
      input/js/sh/sh_slang.min.js
  58. 1
    0
      input/js/sh/sh_sml.min.js
  59. 1
    0
      input/js/sh/sh_spec.min.js
  60. 1
    0
      input/js/sh/sh_sql.min.js
  61. 1
    0
      input/js/sh/sh_tcl.min.js
  62. 1
    0
      input/js/sh/sh_xml.min.js
  63. 1
    0
      input/js/sh/sh_xorg.min.js
  64. 4
    0
      input/js/sh_main.js
  65. 103
    0
      input/projects/avrnetstack.md
  66. 29
    0
      input/projects/avrserial.md
  67. 55
    0
      input/projects/c250.md
  68. 186
    0
      input/projects/ledcube.md
  69. 38
    0
      input/projects/ledmatrix.md
  70. 250
    0
      input/projects/nas.md
  71. 47
    0
      input/projects/serialdebug.md
  72. 83
    0
      input/projects/serialhelper.md
  73. 34
    0
      input/projects/ssop28.md
  74. 228
    0
      input/projects/ultimatenotifier.md
  75. 94
    0
      input/projects/xyrobot/bluetooth.md
  76. 47
    0
      input/projects/xyrobot/k6x4008.md
  77. 39
    0
      input/projects/xyrobot/rremote.md
  78. 125
    0
      input/projects/xyrobot/xyrobot.md
  79. 67
    0
      input/projects/xyrobot/xyrobotremote.md
  80. 80
    0
      input/projects/yasab.md
  81. 188
    0
      macros.py
  82. BIN
      macros.pyc
  83. 131
    0
      output/2012_12_05_xycontrol.html
  84. 132
    0
      output/2012_12_16_mun.html
  85. 132
    0
      output/2012_12_22_docking.html
  86. 131
    0
      output/2012_12_22_motor_test.html
  87. 133
    0
      output/2012_12_25_heli.html
  88. 140
    0
      output/2013_01_20_quadrocopter.html
  89. 134
    0
      output/2013_01_31_odys_genio.html
  90. 133
    0
      output/2013_02_11_motor_test.html
  91. 132
    0
      output/2013_02_25_android.html
  92. 131
    0
      output/2013_03_05_graphview.html
  93. 132
    0
      output/2013_03_10_yasab.html
  94. 133
    0
      output/2013_03_12_test_rig.html
  95. 131
    0
      output/2013_03_13_test_rig.html
  96. 131
    0
      output/2013_03_16_pid.html
  97. 134
    0
      output/2013_03_25_doxygen.html
  98. 104
    0
      output/404.html
  99. 188
    0
      output/avrnetstack.html
  100. 0
    0
      output/avrserial.de.html

+ 1
- 0
.gitignore View File

@@ -0,0 +1 @@
1
+.DS_Store

+ 5
- 0
deploy View File

@@ -0,0 +1,5 @@
1
+#!/bin/sh
2
+
3
+poole.py --build
4
+cp output/* /var/www/
5
+cp static/* /var/www/

+ 9
- 0
input/404.md View File

@@ -0,0 +1,9 @@
1
+title: 404
2
+funny: searching something?
3
+---
4
+
5
+# {{ page.title }}
6
+
7
+## Page not found!
8
+
9
+← Maybe you can find it over here?

+ 23
- 0
input/blog.md View File

@@ -0,0 +1,23 @@
1
+title: Blog
2
+menu-position: 1
3
+changefreq: daily
4
+priority: 0.8
5
+funny: a day in the life of...
6
+compat: blog
7
+---
8
+
9
+# Blog Archive
10
+
11
+To receive my latest updates, you can subscribe the [RSS Feed! ![RSS Logo][logo]][rss]
12
+
13
+<!--%
14
+from datetime import datetime
15
+posts = [p for p in pages if "post" in p] # get all blog post pages
16
+posts.sort(key=lambda p: p.get("date"), reverse=True) # sort post pages by date
17
+for p in posts:
18
+    date = datetime.strptime(p.date, "%Y-%m-%d").strftime("%B %d, %Y")
19
+    print "  * **[%s](%s)** - %s" % (p.post, p.url, date) # markdown list item
20
+%-->
21
+
22
+[rss]: rss.xml
23
+[logo]: img/rss.png

+ 20
- 0
input/blog/2012_12_05_xycontrol.md View File

@@ -0,0 +1,20 @@
1
+title: Blog
2
+post: xyControl PCB angekommen
3
+date: 2012-12-05
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Gerade war der nette Typ von UPS da, mit dieser Schönheit im Gepäck... :)  
17
+[![PCB Photo][1]][2]
18
+
19
+ [1]: img/pcb_small.jpg
20
+ [2]: img/pcb.jpg

+ 24
- 0
input/blog/2012_12_16_mun.md View File

@@ -0,0 +1,24 @@
1
+title: Blog
2
+post: Mun Landing
3
+date: 2012-12-16
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Finally... I did it! And now I also know the difference between Type A and Type B Solar Panels...  
17
+
18
+[![Screenshot 1][1]][2]
19
+[![Screenshot 2][3]][4]
20
+
21
+ [1]: img/mun1_small.png
22
+ [2]: img/mun1.png
23
+ [3]: img/mun2_small.png
24
+ [4]: img/mun2.png

+ 24
- 0
input/blog/2012_12_22_docking.md View File

@@ -0,0 +1,24 @@
1
+title: Blog
2
+post: Docking in Kerbal Orbit
3
+date: 2012-12-22
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Yay! My Kerbal Space Station is beginning to form:
17
+
18
+[![Screenshot 1][1]][2]
19
+[![Screenshot 2][3]][4]
20
+
21
+ [1]: img/kss1_small.png
22
+ [2]: img/kss1.png
23
+ [3]: img/kss2_small.png
24
+ [4]: img/kss2.png

+ 20
- 0
input/blog/2012_12_22_motor_test.md View File

@@ -0,0 +1,20 @@
1
+title: Blog
2
+post: Quadrocopter Motor Test
3
+date: 2012-12-22
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+xyControl ist fertig bestückt und funktioniert (größtenteils)! Also konnte ich auch gleich den Motor sowie seinen Treiber [testen][1]:
17
+
18
+<iframe width="560" height="315" src="http://www.youtube.com/embed/GxKMCVwqaKk" frameborder="0" allowfullscreen></iframe>
19
+
20
+ [1]: http://youtu.be/GxKMCVwqaKk

+ 18
- 0
input/blog/2012_12_25_heli.md View File

@@ -0,0 +1,18 @@
1
+title: Blog
2
+post: RC-Heli Absturz
3
+date: 2012-12-25
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Ganz Überraschend bekam ich zu Weihnachten einen RC-Heli mit Kamera. Funktioniert bei Video-Aufnahmen aber irgendwie nicht so toll...
17
+
18
+<iframe width="420" height="315" src="http://www.youtube.com/embed/x8cPgIY_cJo" frameborder="0" allowfullscreen></iframe></p>

+ 51
- 0
input/blog/2013_01_20_quadrocopter.md View File

@@ -0,0 +1,51 @@
1
+title: Blog
2
+post: Quadrocopter Ueberblick
3
+date: 2013-01-20
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Wie auf Twitter bereits zu sehen war, arbeite Ich momentan an meiner eigenen Quadrocopter Plattform. Kern der ganzen Geschichte ist [xyControl][1]:
17
+
18
+[![Photo 1][2]][3]
19
+[![Photo 2][4]][5]
20
+
21
+Alle nötigen Sensoren, also 3D Accelerometer und 3D Gyroskop, sowie 3D Magnetometer, sind in einem Paket untergebracht, dem [MiniMU-9 v2][6]:
22
+
23
+[![Photo 3][7]][8]
24
+
25
+Verwendung finden außerdem vier [BL-Ctrl v1.2][9] Brushlessregler, welche vier [Robbe Roxxy BL Outrunner 2824-34][10] Motoren antreiben:
26
+
27
+[![Photo 4][11]][12]
28
+[![Photo 5][13]][14]
29
+
30
+Und alles zusammen schaut momentan so aus:
31
+
32
+[![Photo 6][15]][16]
33
+
34
+Ich bin zuversichtlich... :)
35
+
36
+ [1]: https://github.com/xythobuz/xyControl
37
+ [2]: img/q_control_small.jpg
38
+ [3]: img/q_control.jpg
39
+ [4]: img/q_control2_small.jpg
40
+ [5]: img/q_control2.jpg
41
+ [6]: http://www.watterott.com/de/MinIMU-9-v2
42
+ [7]: img/q_sens_small.jpg
43
+ [8]: img/q_sens.jpg
44
+ [9]: https://www.mikrocontroller.com/index.php?main_page=product_info&products_id=209
45
+ [10]: http://www.conrad.de/ce/de/product/231867
46
+ [11]: img/q_mot_small.jpg
47
+ [12]: img/q_mot.jpg
48
+ [13]: img/q_motprop_small.jpg
49
+ [14]: img/q_motprop.jpg
50
+ [15]: img/q_fin_small.jpg
51
+ [16]: img/q_fin.jpg

+ 23
- 0
input/blog/2013_01_31_odys_genio.md View File

@@ -0,0 +1,23 @@
1
+title: Blog
2
+post: Odys Genio USB Debugging am Mac
3
+date: 2013-01-31
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Um das [Odys Genio (Affiliate Link)][1] auch am Mac für USB Debugging nutzen zu können, muss die USB Vendor ID des Genio in die Konfigurationsdatei der Android Debug Bridge eingetragen werden. Hierfür erstmal die VID des Genio im System Profiler ermitteln (bei mir 0x2207). Dann kann diese Nummer, allein in einer einzelnen Zeile, in die Datei ~/.android/adb_usb.ini eingetragen werden. Sollte die Datei nicht existieren, einfach neu anlegen, mit der VID als einzigem Inhalt. Anschließend eventuell das Tablet erneut anschließen, und adb neu starten: 
17
+
18
+<pre class="sh_sh">
19
+adb kill-server
20
+adb start-server
21
+</pre>
22
+
23
+ [1]: http://www.amazon.de/gp/product/B00A7PZM7E/ref=as_li_ss_tl?ie=UTF8&camp=1638&creative=19454&creativeASIN=B00A7PZM7E&linkCode=as2&tag=xythobuzorg-21

+ 20
- 0
input/blog/2013_02_11_motor_test.md View File

@@ -0,0 +1,20 @@
1
+title: Blog
2
+post: Quadrocopter Motor Test
3
+date: 2013-02-11
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Nun ist mein Quadrocopter soweit zusammengebaut...
17
+
18
+<iframe width="560" height="315" src="http://www.youtube.com/embed/5AOkSvRz64c" frameborder="0" allowfullscreen></iframe>
19
+
20
+Das sieht doch schon ganz vielversprechend aus... :)

+ 24
- 0
input/blog/2013_02_25_android.md View File

@@ -0,0 +1,24 @@
1
+title: Blog
2
+post: xyCopter Android App
3
+date: 2013-02-25
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Die erste Version meiner Quadrocopter Fernsteuerungs App für Android ist fertig und funktioniert soweit. Hier ein Screenshot:
17
+
18
+[![xyCopter Screenshot][1]][2] 
19
+
20
+Und natürlich auch die [unsignierte APK zum Download][3]...
21
+
22
+ [1]: img/xyCopter_small.png
23
+ [2]: img/xyCopter.png
24
+ [3]: https://github.com/xythobuz/xyControl/blob/master/tools/xyCopter-1.0.apk?raw=true

+ 21
- 0
input/blog/2013_03_05_graphview.md View File

@@ -0,0 +1,21 @@
1
+title: Blog
2
+post: xyCopter mit GraphView
3
+date: 2013-03-05
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Jetzt hab ich [GraphView][1] in xyCopter eingebaut:  
17
+[![Screenshot][2]][3]
18
+
19
+ [1]: https://github.com/Lauszus/GraphView
20
+ [2]: img/xyCopterNew_small.png
21
+ [3]: img/xyCopterNew.png

+ 26
- 0
input/blog/2013_03_10_yasab.md View File

@@ -0,0 +1,26 @@
1
+title: Blog
2
+post: xyCopter loves YASAB
3
+date: 2013-03-10
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Jetzt hat meine xyCopter App eine YASAB Implementation. So kann man per Bluetooth die Firmware des Quadrocopters vom Tablet aus neu flashen. Und woher hat die App das Firmware Hexfile? Aus Dropbox! Wenn das mal nicht geil ist... :D</p> 
17
+
18
+[![Screenshot][1]][2] 
19
+
20
+Allerdings funktioniert Dropbox Integration und OpenSource nicht so wirklich... Man muss sich also eine [eigene App bei Dropbox registrieren][3] und den Key und das Secret dann im [Manifest][4] und im [Code][5] eintragen...
21
+
22
+ [1]: img/xyCopterFirmware_small.png
23
+ [2]: img/xyCopterFirmware.png
24
+ [3]: https://www.dropbox.com/developers/apps
25
+ [4]: https://github.com/xythobuz/xyControl/blob/master/tools/xyCopter/AndroidManifest.xml
26
+ [5]: https://github.com/xythobuz/xyControl/blob/master/tools/xyCopter/src/org/xythobuz/xycopter/MainActivity.java

+ 27
- 0
input/blog/2013_03_12_test_rig.md View File

@@ -0,0 +1,27 @@
1
+title: Blog
2
+post: Quadrocopter Testvorrichtung
3
+date: 2013-03-12
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Hab mal ein bisschen mit Opa im Keller gebastelt. Ergebnis ist diese Testvorrichtung, um besser die PID-Parameter anhand einer einzelnen Achse zu bestimmen. Und Fehler im Code zu finden. Das gibts ja immer... :)
17
+
18
+[![Foto 1][1]][2]
19
+[![Foto 2][3]][4]
20
+[![Foto 3][5]][6]
21
+
22
+ [1]: img/quadRig1_small.jpg
23
+ [2]: img/quadRig1.jpg
24
+ [3]: img/quadRig2_small.jpg
25
+ [4]: img/quadRig2.jpg
26
+ [5]: img/quadRig3_small.jpg
27
+ [6]: img/quadRig3.jpg

+ 18
- 0
input/blog/2013_03_13_test_rig.md View File

@@ -0,0 +1,18 @@
1
+title: Blog
2
+post: Quadrocopter Test Rig Video
3
+date: 2013-03-13
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+Ja, das ist alles ganz schön wackelig. Jetzt hab ich mehr Gewicht drauf. Und die Parameter find ich irgendwann auch noch :)
17
+
18
+<iframe width="560" height="315" src="http://www.youtube-nocookie.com/embed/b5MhLgDhQ2c" frameborder="0" allowfullscreen></iframe>

+ 27
- 0
input/blog/2013_03_16_pid.md View File

@@ -0,0 +1,27 @@
1
+title: Blog
2
+post: xyCopter PID-Parameter
3
+date: 2013-03-16
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+---
8
+
9
+## {{ page["post"] }}
10
+<!--%
11
+from datetime import datetime
12
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
13
+print "*Posted at %s.*" % date
14
+%-->
15
+
16
+So, jetzt fehlen hoffentlich nur noch die richtigen PID Parameter um den Quadrocopter in der Schwebe zu halten...
17
+
18
+  
19
+[![Screenshot][1]][2]
20
+
21
+ [1]: img/xyCopterOsci_small.png
22
+ [2]: img/xyCopterOsci.png
23
+
24
+
25
+
26
+
27
+

+ 23
- 0
input/blog/2013_03_25_doxygen.md View File

@@ -0,0 +1,23 @@
1
+title: Blog
2
+post: xyControl Doxygen Dokumentation
3
+date: 2013-03-25
4
+comments: true
5
+flattr: true
6
+twitter: xythobuz
7
+funny: document ALL the code
8
+---
9
+
10
+## {{ page["post"] }}
11
+<!--%
12
+from datetime import datetime
13
+date = datetime.strptime(page["date"], "%Y-%m-%d").strftime("%B %d, %Y")
14
+print "*Posted at %s.*" % date
15
+%-->
16
+
17
+Ich hab jetzt mal eine hübsche Doxygen Dokumentation für die xyControl Firmware angelegt. Kann auch mit "make doc" erstellt werden. Neben HTML wird auch Latex ausgegeben, im Ordner ist ein Makefile um daraus eine PDF zu setzen. 
18
+
19
+ * [HTML Dokumentation][1]
20
+ * [PDF Dokumentation][2]
21
+
22
+ [1]: http://www.xythobuz.org/xycontrol/index.html
23
+ [2]: http://www.xythobuz.org/xycontrol.pdf

+ 30
- 0
input/contact.md View File

@@ -0,0 +1,30 @@
1
+title: Contact
2
+menu-position: 2
3
+funny: drop a message!
4
+compat: kontakt
5
+---
6
+
7
+# {{ page.title }}
8
+
9
+You can always use this [PGP Key][1]
10
+
11
+Mail: <xythobuz@xythobuz.org>
12
+
13
+Jabber: xythobuz@jabber.ccc.de
14
+
15
+Skype: xythobuz
16
+
17
+ICQ: 347449811
18
+
19
+Twitter: [@xythobuz][2]
20
+
21
+Facebook: [Ver Ballert][3]
22
+
23
+PSN: xythobuz
24
+
25
+Youtube: [xythobuz][4]
26
+
27
+ [1]: files/xythobuz.gpg
28
+ [2]: https://twitter.com/xythobuz
29
+ [3]: https://www.facebook.com/vballert
30
+ [4]: http://www.youtube.com/user/xythobuz

+ 127
- 0
input/css/gh-fork-ribbon.css View File

@@ -0,0 +1,127 @@
1
+/* Left will inherit from right (so we don't need to duplicate code */
2
+.github-fork-ribbon {
3
+  /* The right and left lasses determine the side we attach our banner to */
4
+  position: absolute;
5
+
6
+  /* Add a bit of padding to give some substance outside the "stitching" */
7
+  padding: 2px 0;
8
+
9
+  /* Set the base colour */
10
+  background-color: #FF9900;
11
+
12
+  /* Set a gradient: transparent black at the top to almost-transparent black at the bottom */
13
+  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.00)), to(rgba(0, 0, 0, 0.15)));
14
+  background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.00), rgba(0, 0, 0, 0.15));
15
+  background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.00), rgba(0, 0, 0, 0.15));
16
+  background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.00), rgba(0, 0, 0, 0.15));
17
+  background-image: -ms-linear-gradient(top, rgba(0, 0, 0, 0.00), rgba(0, 0, 0, 0.15));
18
+  background-image: linear-gradient(top, rgba(0, 0, 0, 0.00), rgba(0, 0, 0, 0.15));
19
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#000000', EndColorStr='#000000');
20
+
21
+  /* Add a drop shadow */
22
+  -webkit-box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.5);
23
+  box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.5);
24
+
25
+  z-index: 9999;
26
+}
27
+
28
+.github-fork-ribbon a {
29
+  /* Set the font */
30
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
31
+  font-size: 13px;
32
+  font-weight: 700;
33
+  color: white;
34
+
35
+  /* Set the text properties */
36
+  text-decoration: none;
37
+  text-shadow: 0 -1px rgba(0,0,0,0.5);
38
+  text-align: center;
39
+
40
+  /* Set the geometry. If you fiddle with these you'll also need to tweak the top and right values in #github-fork-ribbon. */
41
+  width: 200px;
42
+  line-height: 20px;
43
+
44
+  /* Set the layout properties */
45
+  display: inline-block;
46
+  padding: 2px 0;
47
+
48
+  /* Add "stitching" effect */
49
+  border-width: 1px 0;
50
+  border-style: dotted;
51
+  border-color: rgba(255,255,255,0.7);
52
+}
53
+
54
+.github-fork-ribbon-wrapper {
55
+  width: 150px;
56
+  height: 150px;
57
+  position: absolute;
58
+  overflow: hidden;
59
+  top: 0;
60
+}
61
+
62
+.github-fork-ribbon-wrapper.left {
63
+  left: 0;
64
+}
65
+
66
+.github-fork-ribbon-wrapper.right {
67
+  right: 0;
68
+}
69
+
70
+.github-fork-ribbon-wrapper.left-bottom {
71
+  position: fixed;
72
+  top: inherit;
73
+  bottom: 0;
74
+  left: 0;
75
+}
76
+
77
+.github-fork-ribbon-wrapper.right-bottom {
78
+  position: fixed;
79
+  top: inherit;
80
+  bottom: 0;
81
+  right: 0;
82
+}
83
+
84
+.github-fork-ribbon-wrapper.right .github-fork-ribbon {
85
+  top: 42px;
86
+  right: -43px;
87
+
88
+  /* Rotate the banner 45 degrees */
89
+  -webkit-transform: rotate(45deg);
90
+  -moz-transform: rotate(45deg);
91
+  -o-transform: rotate(45deg);
92
+  transform: rotate(45deg);
93
+}
94
+
95
+.github-fork-ribbon-wrapper.left .github-fork-ribbon {
96
+  top: 42px;
97
+  left: -43px;
98
+
99
+  /* Rotate the banner -45 degrees */
100
+  -webkit-transform: rotate(-45deg);
101
+  -moz-transform: rotate(-45deg);
102
+  -o-transform: rotate(-45deg);
103
+  transform: rotate(-45deg);
104
+}
105
+
106
+
107
+.github-fork-ribbon-wrapper.left-bottom .github-fork-ribbon {
108
+  top: 80px;
109
+  left: -43px;
110
+
111
+  /* Rotate the banner -45 degrees */
112
+  -webkit-transform: rotate(45deg);
113
+  -moz-transform: rotate(45deg);
114
+  -o-transform: rotate(45deg);
115
+  transform: rotate(45deg);
116
+}
117
+
118
+.github-fork-ribbon-wrapper.right-bottom .github-fork-ribbon {
119
+  top: 80px;
120
+  right: -43px;
121
+
122
+  /* Rotate the banner -45 degrees */
123
+  -webkit-transform: rotate(-45deg);
124
+  -moz-transform: rotate(-45deg);
125
+  -o-transform: rotate(-45deg);
126
+  transform: rotate(-45deg);
127
+}

+ 1
- 0
input/css/sh_bright.min.css View File

@@ -0,0 +1 @@
1
+pre.sh_sourceCode{background-color:#fff;color:#401e7a;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_keyword{color:#ff3030;font-weight:bold;font-style:normal;}pre.sh_sourceCode .sh_type{color:#f7b92c;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_string{color:#1861a7;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_regexp{color:#1861a7;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_specialchar{color:#1861a7;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_comment{color:#38ad24;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_number{color:#32ba06;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_preproc{color:#5374b0;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_symbol{color:#3030ee;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_function{color:#d11ced;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_cbracket{color:#3030ee;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_url{color:#1861a7;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_date{color:#ff3030;font-weight:bold;font-style:normal;}pre.sh_sourceCode .sh_time{color:#ff3030;font-weight:bold;font-style:normal;}pre.sh_sourceCode .sh_file{color:#ff3030;font-weight:bold;font-style:normal;}pre.sh_sourceCode .sh_ip{color:#1861a7;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_name{color:#1861a7;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_variable{color:#00f;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_oldfile{color:#1861a7;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_newfile{color:#1861a7;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_difflines{color:#ff3030;font-weight:bold;font-style:normal;}pre.sh_sourceCode .sh_selector{color:#00f;font-weight:normal;font-style:normal;}pre.sh_sourceCode .sh_property{color:#ff3030;font-weight:bold;font-style:normal;}pre.sh_sourceCode .sh_value{color:#1861a7;font-weight:normal;font-style:normal;}

+ 237
- 0
input/css/style.css View File

@@ -0,0 +1,237 @@
1
+/*
2
+ * Color Combination
3
+ * #000000 - Text
4
+ * #FF9900 - Link, Hover Link, Dashes
5
+ * #FFFFFF - Background
6
+ * #666666 - Visited Link, Footer
7
+ * #EEEEEC - <pre>
8
+ */
9
+
10
+body {
11
+    font-family: 'Droid Sans', sans-serif;
12
+    margin: 0;
13
+    padding: 0;
14
+    border: 0; /* This removes the border around the viewport in old versions of IE */
15
+    width: 100%;
16
+    min-width: 600px; /* Minimum width of layout - remove line if not required */
17
+    color: #000000;
18
+}
19
+
20
+a {
21
+    color: #FF9900;
22
+    font-weight: bold;
23
+    text-decoration: none;
24
+}
25
+
26
+a:visited {
27
+    color: #848484;
28
+    text-decoration: none;
29
+}
30
+
31
+a:hover {
32
+    color: #FF9900;
33
+    text-decoration: underline;
34
+}
35
+
36
+#header {
37
+    clear: both;
38
+    float: left;
39
+    width: 95%;
40
+    padding-left: 1em;
41
+    padding-top: 0.5em;
42
+    padding-bottom: 0.5em;
43
+    border-bottom: dashed #FF9900 2px;
44
+}
45
+
46
+#header h1 {
47
+    display: inline;
48
+    padding-right: 0.5em;
49
+    font-size: 3.5em;
50
+}
51
+
52
+#header h2 {
53
+    display: inline;
54
+    font-size: 2em;
55
+}
56
+
57
+#flattr {
58
+    padding-right: 1.5em;
59
+    padding-bottom: 1em;
60
+    padding-left: 1em;
61
+    float: right;
62
+    clear: both;
63
+}
64
+
65
+#twitter {
66
+    padding-right: 1.5em;
67
+    padding-bottom: 1em;
68
+    padding-left: 1em;
69
+    float: right;
70
+    clear: both;
71
+}
72
+
73
+#reddit {
74
+    padding-right: 1.5em;
75
+    padding-bottom: 1em;
76
+    padding-left: 1em;
77
+    float: right;
78
+    clear: both;
79
+}
80
+
81
+#github {
82
+    padding-right: 3em;
83
+    padding-bottom: 1em;
84
+    padding-left: 1em;
85
+    float: right;
86
+    clear: both;
87
+}
88
+
89
+div#lang {
90
+    text-align: right;
91
+    padding-right: 10em;
92
+}
93
+
94
+span#lang {
95
+    line-height: 2em;
96
+}
97
+
98
+.colmask {
99
+    position: relative; /* This fixes the IE7 overflow hidden bug */
100
+    clear: both;
101
+    float: left;
102
+    width: 100%; /* width of whole page */
103
+    overflow: hidden; /* This chops off any overhanging divs */
104
+}
105
+
106
+.colleft {
107
+    float: left;
108
+    width: 100%;
109
+    position: relative;
110
+}
111
+
112
+.content {
113
+    float: left;
114
+    position: relative;
115
+    padding-left: 0.5em;
116
+    padding-right: 0.5em;
117
+    overflow: hidden;
118
+}
119
+
120
+.nav {
121
+    float: left;
122
+    position: relative;
123
+    padding: 0 0 0 0;
124
+    overflow: hidden;
125
+    background-color: #FFFFFF;
126
+    z-index: 1;
127
+}
128
+
129
+div#logo {
130
+    width: 180px;
131
+    height: 180px;
132
+    box-shadow: 0px 0px 10px #666666;
133
+    border-radius: 8px;
134
+    border: solid #FF9900 3px;
135
+    background-color: #FF9900;
136
+    overflow: hidden;
137
+    padding: 10px;
138
+    margin: 10px;
139
+}
140
+
141
+img#logo {
142
+    padding: 0;
143
+    border-radius: 8px;
144
+    width: 180px;
145
+    height: 180px;
146
+    overflow: hidden;
147
+}
148
+
149
+ul#menuList {
150
+    list-style-type: none;
151
+    padding: 0.5em;
152
+    padding-top: 0;
153
+    margin-top: 0;
154
+}
155
+
156
+#recent {
157
+    padding-top: 1.5em;
158
+    padding-bottom: 0.5em;
159
+}
160
+
161
+ul#recentList {
162
+    list-style: none;
163
+    padding:0;
164
+    margin:0;
165
+}
166
+
167
+li.recentDate {
168
+    padding-left: 1em;
169
+    padding-bottom: 0.7em;
170
+}
171
+
172
+li.recentList {
173
+    padding-left: 1em;
174
+    text-indent: -1em;
175
+}
176
+
177
+li.recentList:before {
178
+    content: "→ ";
179
+}
180
+
181
+.leftmenu {
182
+    background: #FFFFFF; /* right column background colour */
183
+}
184
+
185
+.leftmenu .colleft {
186
+    right: 75%; /* right column width */
187
+    background: #FFFFFF; /* left column background colour */
188
+}
189
+
190
+.leftmenu .content {
191
+    width: 70%; /* right column content width */
192
+    left: 102%; /* 100% plus left column left padding */
193
+}
194
+
195
+.leftmenu .nav {
196
+    width: 21%; /* left column content width (column width minus left and right padding) */
197
+    left: 6%; /* (right column left and right padding) plus (left column left padding) */
198
+}
199
+
200
+#dude {
201
+    position: fixed;
202
+    bottom: 0px;
203
+    left: 10px;
204
+    max-width: 20%;
205
+}
206
+
207
+#footer {
208
+    clear: both;
209
+    float: left;
210
+    width: 95%;
211
+    text-align: center;
212
+    font-size: small;
213
+    color: gray;
214
+    margin: 1em;
215
+}
216
+
217
+#footer a {
218
+    color: #666666;
219
+    text-decoration: none;
220
+}
221
+
222
+#footer a:hover {
223
+    color: #666666;
224
+    text-decoration: underline;
225
+}
226
+
227
+#footer a:visited {
228
+    color: #666666;
229
+    text-decoration: none;
230
+}
231
+
232
+pre {
233
+    border: dotted black 2px;
234
+    background: #EEEEEC;
235
+    padding: 1em;
236
+    overflow: scroll;
237
+}

+ 57
- 0
input/index.md View File

@@ -0,0 +1,57 @@
1
+title: Home
2
+title_de: Home
3
+menu-position: 0
4
+flattr: true
5
+funny: Electronics &amp; Software
6
+compat: home
7
+---
8
+
9
+# Welcome
10
+
11
+I'm publishing some informations about my projects here. Please give feedback and have fun!
12
+
13
+If you are interested in my newest work, enter your mail address in my [Github Post Receive Hook][1] and select a repository. You will then get a mail for every new commit.
14
+
15
+[09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0][2]
16
+
17
+[46 DC EA D3 17 FE 45 D8 09 23 EB 97 E4 95 64 10 D4 CD B2 C2][3]
18
+
19
+<pre>
20
+-----BEGIN GEEK CODE BLOCK-----
21
+Version: 3.12
22
+GCS/E/MU d-(--)>--- s:++ a-- C++++>$ UBLX+++>++++$ P+ L+ !E--- W+++ N+ !o K--? !w--- !O M++ !V PS+++ PE-- Y+ PGP++ !t !5 !X !R tv-- b+ DI+ D+ G e h r y?*
23
+------END GEEK CODE BLOCK------
24
+</pre>
25
+
26
+<a class="twitter-timeline" data-dnt="true" href="https://twitter.com/xythobuz" data-widget-id="313378431708577794">Tweets by @xythobuz</a>
27
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
28
+
29
+ [1]: http://www.xythobuz.org/cubehook.php
30
+ [2]: http://en.wikipedia.org/wiki/HD_DVD_encryption_key_controversy
31
+ [3]: http://www.yalelawtech.org/trusted-computing-drm/46-dc-ea-d3-17-fe-45-d8-09-23-eb-97-e4-95-64-10-d4-cd-b2-c2/
32
+
33
+lang: de
34
+
35
+# Willkommen
36
+
37
+Hier findest du (immer mehr) Informationen zu Projekten von mir. Gerne höre ich Feedback über E-Mail. Viel Spaß!
38
+
39
+Solltest du an meiner neuesten Arbeit interessiert sein, kannst du dich in meinem [GitHub Post Receive Hook][1] mit deiner E-Mail Adresse für bestimmte Repositories eintragen. Du bekommst dann bei jedem Commit eine E-Mail.
40
+
41
+[09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0][2]
42
+
43
+[46 DC EA D3 17 FE 45 D8 09 23 EB 97 E4 95 64 10 D4 CD B2 C2][3]
44
+
45
+<pre>
46
+-----BEGIN GEEK CODE BLOCK-----
47
+Version: 3.12
48
+GCS/E/MU d-(--)>--- s:++ a-- C++++>$ UBLX+++>++++$ P+ L+ !E--- W+++ N+ !o K--? !w--- !O M++ !V PS+++ PE-- Y+ PGP++ !t !5 !X !R tv-- b+ DI+ D+ G e h r y?*
49
+------END GEEK CODE BLOCK------
50
+</pre>
51
+
52
+<a class="twitter-timeline" data-dnt="true" href="https://twitter.com/xythobuz" data-widget-id="313378431708577794">Tweets by @xythobuz</a>
53
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
54
+
55
+ [1]: http://www.xythobuz.org/cubehook.php
56
+ [2]: http://en.wikipedia.org/wiki/HD_DVD_encryption_key_controversy
57
+ [3]: http://www.yalelawtech.org/trusted-computing-drm/46-dc-ea-d3-17-fe-45-d8-09-23-eb-97-e4-95-64-10-d4-cd-b2-c2/

+ 1
- 0
input/js/sh/sh_bison.min.js
File diff suppressed because it is too large
View File


+ 1
- 0
input/js/sh/sh_c.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.c=[[[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/(\bstruct)([ \t]+)([A-Za-z0-9_]+)/g,["sh_keyword","sh_normal","sh_classname"],-1],[/^[ \t]*#(?:[ \t]*include)/g,"sh_preproc",10,1],[/^[ \t]*#(?:[ \t]*[A-Za-z0-9_]*)/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",13],[/'/g,"sh_string",14],[/\b(?:__asm|__cdecl|__declspec|__export|__far16|__fastcall|__fortran|__import|__pascal|__rtti|__stdcall|_asm|_cdecl|__except|_export|_far16|_fastcall|__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto|break|case|catch|cdecl|const|continue|default|do|else|enum|extern|for|goto|if|pascal|register|return|sizeof|static|struct|switch|typedef|union|volatile|while)\b/g,"sh_keyword",-1],[/\b(?:bool|char|double|float|int|long|short|signed|unsigned|void|wchar_t)\b/g,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1],[/([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g,["sh_usertype","sh_usertype","sh_normal"],-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/$/g,null,-2],[/</g,"sh_string",11],[/"/g,"sh_string",12],[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9]],[[/$/g,null,-2],[/>/g,"sh_string",-2]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];

+ 1
- 0
input/js/sh/sh_caml.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.caml=[[[/\b(?:external|open|include|[A-Z][\w']*(?=\.))\b/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",1],[/\b(?:and|as|assert|asr|begin|class|closed|constraint|do|done|downto|else|end|exception|false|for|fun|function|functor|if|in|inherit|initializer|land|lazy|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|object|of|or|parser|private|rec|sig|struct|then|to|true|try|type|val|virtual|when|while|with)\b/g,"sh_keyword",-1],[/\(\*/g,"sh_comment",2],[/\b(?:[A-Z][\w']*(?!\.)|int|int32|int64|nativeint|bool|char|exn|option|float|unit|string|list|array|ref|format|format4|lazy_t|in_channel|out_channel)\b/g,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/\*\)/g,"sh_comment",-2],[/\(\*/g,"sh_comment",2]]];

+ 1
- 0
input/js/sh/sh_changelog.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.changelog=[[[/[\d]{2,4}-?[\d]{2}-?[\d]{2}/g,"sh_date",1,1],[/(^[ \t]+)(\*)([ \t]+)((?:[^:]+\:)?)/g,["sh_normal","sh_symbol","sh_normal","sh_file"],-1],[/(^[ \t]+)((?:[^:]+\:)?)/g,["sh_normal","sh_file"],-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:[A-Za-z0-9_]|[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-])+/g,"sh_name",-1]]];

+ 1
- 0
input/js/sh/sh_cpp.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.cpp=[[[/(\b(?:class|struct|typename))([ \t]+)([A-Za-z0-9_]+)/g,["sh_keyword","sh_normal","sh_classname"],-1],[/\b(?:class|const_cast|delete|dynamic_cast|explicit|false|friend|inline|mutable|namespace|new|operator|private|protected|public|reinterpret_cast|static_cast|template|this|throw|true|try|typeid|typename|using|virtual)\b/g,"sh_keyword",-1],[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/(\bstruct)([ \t]+)([A-Za-z0-9_]+)/g,["sh_keyword","sh_normal","sh_classname"],-1],[/^[ \t]*#(?:[ \t]*include)/g,"sh_preproc",10,1],[/^[ \t]*#(?:[ \t]*[A-Za-z0-9_]*)/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",13],[/'/g,"sh_string",14],[/\b(?:__asm|__cdecl|__declspec|__export|__far16|__fastcall|__fortran|__import|__pascal|__rtti|__stdcall|_asm|_cdecl|__except|_export|_far16|_fastcall|__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto|break|case|catch|cdecl|const|continue|default|do|else|enum|extern|for|goto|if|pascal|register|return|sizeof|static|struct|switch|typedef|union|volatile|while)\b/g,"sh_keyword",-1],[/\b(?:bool|char|double|float|int|long|short|signed|unsigned|void|wchar_t)\b/g,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1],[/([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g,["sh_usertype","sh_usertype","sh_normal"],-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/$/g,null,-2],[/</g,"sh_string",11],[/"/g,"sh_string",12],[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9]],[[/$/g,null,-2],[/>/g,"sh_string",-2]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];

+ 1
- 0
input/js/sh/sh_csharp.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.csharp=[[[/\b(?:using)\b/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))(?:[FfDdMmUulL]+)?\b/g,"sh_number",-1],[/(\b(?:class|struct|typename))([ \t]+)([A-Za-z0-9_]+)/g,["sh_keyword","sh_normal","sh_classname"],-1],[/\b(?:abstract|event|new|struct|as|explicit|null|switch|base|extern|this|false|operator|throw|break|finally|out|true|fixed|override|try|case|params|typeof|catch|for|private|foreach|protected|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|continue|in|return|virtual|default|interface|sealed|volatile|delegate|internal|do|is|sizeof|while|lock|stackalloc|else|static|enum|namespace|get|partial|set|value|where|yield)\b/g,"sh_keyword",-1],[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/(\bstruct)([ \t]+)([A-Za-z0-9_]+)/g,["sh_keyword","sh_normal","sh_classname"],-1],[/^[ \t]*#(?:[ \t]*include)/g,"sh_preproc",10,1],[/^[ \t]*#(?:[ \t]*[A-Za-z0-9_]*)/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",13],[/'/g,"sh_string",14],[/\b(?:bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void)\b/g,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1],[/([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g,["sh_usertype","sh_usertype","sh_normal"],-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/$/g,null,-2],[/</g,"sh_string",11],[/"/g,"sh_string",12],[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9]],[[/$/g,null,-2],[/>/g,"sh_string",-2]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];

+ 1
- 0
input/js/sh/sh_css.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.css=[[[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/(?:\.|#)[A-Za-z0-9_]+/g,"sh_selector",-1],[/\{/g,"sh_cbracket",10,1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\}/g,"sh_cbracket",-2],[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/[A-Za-z0-9_-]+[ \t]*:/g,"sh_property",-1],[/[.%A-Za-z0-9_-]+/g,"sh_value",-1],[/#(?:[A-Za-z0-9_]+)/g,"sh_string",-1]]];

+ 1
- 0
input/js/sh/sh_desktop.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.desktop=[[[/#/g,"sh_comment",1],[/\[.*\]/g,"sh_section",1],[/([^="\[]+)((?:\[.+\])*)([ \t]*)(=)/g,["sh_type","sh_paren","sh_normal","sh_symbol"],-1]],[[/$/g,null,-2]]];

+ 1
- 0
input/js/sh/sh_diff.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.diff=[[[/(?=^[-]{3})/g,"sh_oldfile",1,1],[/(?=^[*]{3})/g,"sh_oldfile",3,1],[/(?=^[\d])/g,"sh_difflines",6,1]],[[/^[-]{3}/g,"sh_oldfile",2],[/^[-]/g,"sh_oldfile",2],[/^[+]/g,"sh_newfile",2],[/^@@/g,"sh_difflines",2]],[[/$/g,null,-2]],[[/^[*]{3}[ \t]+[\d]/g,"sh_oldfile",4],[/^[*]{3}/g,"sh_oldfile",2],[/^[-]{3}[ \t]+[\d]/g,"sh_newfile",5],[/^[-]{3}/g,"sh_newfile",2]],[[/^[\s]/g,"sh_normal",2],[/(?=^[-]{3})/g,"sh_newfile",-2]],[[/^[\s]/g,"sh_normal",2],[/(?=^[*]{3})/g,"sh_newfile",-2],[/^diff/g,"sh_normal",2]],[[/^[\d]/g,"sh_difflines",2],[/^[<]/g,"sh_oldfile",2],[/^[>]/g,"sh_newfile",2]]];

+ 1
- 0
input/js/sh/sh_flex.min.js
File diff suppressed because it is too large
View File


+ 1
- 0
input/js/sh/sh_glsl.min.js
File diff suppressed because it is too large
View File


+ 1
- 0
input/js/sh/sh_haxe.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.haxe=[[[/^[ \t]*#(?:(?:if|else)[ \t]*[A-Za-z0-9_]*|end)|import|package/g,"sh_preproc",-1],[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",10],[/'/g,"sh_string",11],[/(\b(?:class|interface))([ \t]+)([$A-Za-z0-9_]+)/g,["sh_keyword","sh_normal","sh_classname"],-1],[/\b(?:abstract|assert|break|case|cast|catch|class|continue|default|do|else|enum|extends|extern|false|final|finally|for|function|if|implements|in|inline|interface|new|null|override|private|protected|public|return|static|super|switch|synchronized|this|throw|throws|true|try|typedef|untyped|var|while)\b/g,"sh_keyword",-1],[/\b(?:Bool|Dynamic|Float|Int|Void)\b/g,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1],[/([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g,["sh_usertype","sh_usertype","sh_normal"],-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];

+ 1
- 0
input/js/sh/sh_html.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.html=[[[/<\?xml/g,"sh_preproc",1,1],[/<!DOCTYPE/g,"sh_preproc",3,1],[/<!--/g,"sh_comment",4],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",5,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",5,1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",4]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]]];

+ 1
- 0
input/js/sh/sh_java.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.java=[[[/\b(?:import|package)\b/g,"sh_preproc",-1],[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",10],[/'/g,"sh_string",11],[/(\b(?:class|interface))([ \t]+)([$A-Za-z0-9_]+)/g,["sh_keyword","sh_normal","sh_classname"],-1],[/\b(?:abstract|assert|break|case|catch|class|const|continue|default|do|else|extends|false|final|finally|for|goto|if|implements|instanceof|interface|native|new|null|private|protected|public|return|static|strictfp|super|switch|synchronized|throw|throws|true|this|transient|try|volatile|while)\b/g,"sh_keyword",-1],[/\b(?:int|byte|boolean|char|long|float|double|short|void)\b/g,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1],[/([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g,["sh_usertype","sh_usertype","sh_normal"],-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];

+ 1
- 0
input/js/sh/sh_javascript.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.javascript=[[[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/\b(?:abstract|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|final|finally|for|function|goto|if|implements|in|instanceof|interface|native|new|null|private|protected|prototype|public|return|static|super|switch|synchronized|throw|throws|this|transient|true|try|typeof|var|volatile|while|with)\b/g,"sh_keyword",-1],[/(\+\+|--|\)|\])(\s*)(\/=?(?![*\/]))/g,["sh_symbol","sh_normal","sh_symbol"],-1],[/(0x[A-Fa-f0-9]+|(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?)(\s*)(\/(?![*\/]))/g,["sh_number","sh_normal","sh_symbol"],-1],[/([A-Za-z$_][A-Za-z0-9$_]*\s*)(\/=?(?![*\/]))/g,["sh_normal","sh_symbol"],-1],[/\/(?:\\.|[^*\\\/])(?:\\.|[^\\\/])*\/[gim]*/g,"sh_regexp",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",10],[/'/g,"sh_string",11],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/\b(?:Math|Infinity|NaN|undefined|arguments)\b/g,"sh_predef_var",-1],[/\b(?:Array|Boolean|Date|Error|EvalError|Function|Number|Object|RangeError|ReferenceError|RegExp|String|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt)\b/g,"sh_predef_func",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];

+ 1
- 0
input/js/sh/sh_javascript_dom.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.javascript_dom=[[[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/\b(?:abstract|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|final|finally|for|function|goto|if|implements|in|instanceof|interface|native|new|null|private|protected|prototype|public|return|static|super|switch|synchronized|throw|throws|this|transient|true|try|typeof|var|volatile|while|with)\b/g,"sh_keyword",-1],[/(\+\+|--|\)|\])(\s*)(\/=?(?![*\/]))/g,["sh_symbol","sh_normal","sh_symbol"],-1],[/(0x[A-Fa-f0-9]+|(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?)(\s*)(\/(?![*\/]))/g,["sh_number","sh_normal","sh_symbol"],-1],[/([A-Za-z$_][A-Za-z0-9$_]*\s*)(\/=?(?![*\/]))/g,["sh_normal","sh_symbol"],-1],[/\/(?:\\.|[^*\\\/])(?:\\.|[^\\\/])*\/[gim]*/g,"sh_regexp",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",10],[/'/g,"sh_string",11],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/\b(?:Math|Infinity|NaN|undefined|arguments)\b/g,"sh_predef_var",-1],[/\b(?:Array|Boolean|Date|Error|EvalError|Function|Number|Object|RangeError|ReferenceError|RegExp|String|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt)\b/g,"sh_predef_func",-1],[/\b(?:applicationCache|closed|Components|content|controllers|crypto|defaultStatus|dialogArguments|directories|document|frameElement|frames|fullScreen|globalStorage|history|innerHeight|innerWidth|length|location|locationbar|menubar|name|navigator|opener|outerHeight|outerWidth|pageXOffset|pageYOffset|parent|personalbar|pkcs11|returnValue|screen|availTop|availLeft|availHeight|availWidth|colorDepth|height|left|pixelDepth|top|width|screenX|screenY|scrollbars|scrollMaxX|scrollMaxY|scrollX|scrollY|self|sessionStorage|sidebar|status|statusbar|toolbar|top|window)\b/g,"sh_predef_var",-1],[/\b(?:alert|addEventListener|atob|back|blur|btoa|captureEvents|clearInterval|clearTimeout|close|confirm|dump|escape|find|focus|forward|getAttention|getComputedStyle|getSelection|home|moveBy|moveTo|open|openDialog|postMessage|print|prompt|releaseEvents|removeEventListener|resizeBy|resizeTo|scroll|scrollBy|scrollByLines|scrollByPages|scrollTo|setInterval|setTimeout|showModalDialog|sizeToContent|stop|unescape|updateCommands|onabort|onbeforeunload|onblur|onchange|onclick|onclose|oncontextmenu|ondragdrop|onerror|onfocus|onkeydown|onkeypress|onkeyup|onload|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onpaint|onreset|onresize|onscroll|onselect|onsubmit|onunload)\b/g,"sh_predef_func",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];

+ 1
- 0
input/js/sh/sh_latex.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.latex=[[[/%/g,"sh_comment",1],[/&|~|\\[$_&{}~^%#`'"|\s\\]/g,"sh_symbol",-1],[/"/g,"sh_string",2],[/``/g,"sh_string",3],[/`/g,"sh_string",4],[/\$\$|\\\[|\\\]/g,"sh_math",-1],[/\$/g,"sh_math",5],[/\\textit/g,"sh_keyword",6,1],[/\\textbf/g,"sh_keyword",9,1],[/\\texttt/g,"sh_keyword",12,1],[/\\underline/g,"sh_keyword",15,1],[/\\[A-Za-z]+/g,"sh_keyword",-1],[/\*/g,"sh_symbol",-1],[/\{[ \t]*$/g,"sh_normal",-1],[/\[/g,"sh_optionalargument",18],[/\{/g,"sh_argument",19]],[[/$/g,null,-2]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/\\(?:\\|'')/g,null,-1],[/''/g,"sh_string",-2]],[[/\\(?:\\|')/g,null,-1],[/'/g,"sh_string",-2]],[[/\\(?:\\|\$)/g,null,-1],[/\$/g,"sh_math",-2]],[[/$/g,null,-2],[/\{/g,"sh_italics",7]],[[/$/g,null,-2],[/\{/g,"sh_italics",8],[/\}/g,"sh_italics",-3]],[[/\\(?:\\|\})/g,null,-1],[/\}/g,"sh_italics",-2],[/\{/g,"sh_italics",8]],[[/$/g,null,-2],[/\{/g,"sh_bold",10]],[[/$/g,null,-2],[/\{/g,"sh_bold",11],[/\}/g,"sh_bold",-3]],[[/\\(?:\\|\})/g,null,-1],[/\}/g,"sh_bold",-2],[/\{/g,"sh_bold",11]],[[/$/g,null,-2],[/\{/g,"sh_fixed",13]],[[/$/g,null,-2],[/\{/g,"sh_fixed",14],[/\}/g,"sh_fixed",-3]],[[/\\(?:\\|\})/g,null,-1],[/\}/g,"sh_fixed",-2],[/\{/g,"sh_fixed",14]],[[/$/g,null,-2],[/\{/g,"sh_underline",16]],[[/$/g,null,-2],[/\{/g,"sh_underline",17],[/\}/g,"sh_underline",-3]],[[/\\(?:\\|\})/g,null,-1],[/\}/g,"sh_underline",-2],[/\{/g,"sh_underline",17]],[[/$/g,null,-2],[/\\(?:\\|\])/g,null,-1],[/\]/g,"sh_optionalargument",-2]],[[/\\(?:\\|\})/g,null,-1],[/\}/g,"sh_argument",-2],[/\{/g,"sh_argument",19]]];

+ 1
- 0
input/js/sh/sh_ldap.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.ldap=[[[/#/g,"sh_comment",1],[/(\b[A-Za-z0-9_]+:)((?:[^,=]*$)?)/g,["sh_keyword","sh_string"],-1],[/([A-Za-z0-9_]+)(=)([^,]+)(,?)/g,["sh_attribute","sh_symbol","sh_string","sh_symbol"],-1]],[[/$/g,null,-2]]];

+ 1
- 0
input/js/sh/sh_log.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.log=[[[/^[A-Za-z]{3}[ \t]{1,2}[\d]{1,2}(?=[ \t][\d]{2}:[\d]{2}:[\d]{2})/g,"sh_date",1,1],[/^[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\b/g,"sh_ip",6,1],[/^\[[A-Za-z]{3}[ \t][A-Za-z]{3}[ \t]{1,2}[\d]{1,2}[ \t](?=[\d]{2}:[\d]{2}:[\d]{2})/g,"sh_date",8,1],[/[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\b/g,"sh_ip",-1],[/\b(?:root|failure)\b/g,"sh_string",-1],[/((?:port|pid)[ \t])([\d]+)/g,["sh_normal","sh_port"],-1],[/[ \t](?=(?:IN|OUT)=)/g,"sh_normal",9,1]],[[/$/g,null,-2],[/\b[\d]{2}:[\d]{2}:[\d]{2}\b/g,"sh_time",2,1]],[[/$/g,null,-2],[/[^ \t]+/g,"sh_symbol",3,1]],[[/$/g,null,-2],[/:/g,"sh_normal",-3],[/[^:\(\[]+/g,"sh_function",-1],[/\[/g,"sh_number",4],[/\(/g,"sh_number",5]],[[/$/g,null,-2],[/\]/g,"sh_number",-2]],[[/$/g,null,-2],[/\)/g,"sh_number",-2]],[[/$/g,null,-2],[/[A-Za-z0-9]+(?=[ \t]\[[\d]{2}\/[A-Za-z]{3}\/[\d]{4})/g,"sh_string",-1],[/[\d]{2}\/[A-Za-z]{3}\/[\d]{4}(?=:[\d]{2}:[\d]{2}:[\d]{2})/g,"sh_date",-1],[/[\d]{2}:[\d]{2}:[\d]{2}[ \t][+-][\d]{4}/g,"sh_time",-1],[/[1-5][\d]{2}[ \t][-0-9]+/g,"sh_twonumbers",-1],[/\b(?:OPTIONS|GET|HEAD|POST|PUT|DELETE|TRACE|CONNECT|PROPFIND|MKCOL|COPY|MOVE|LOCK|UNLOCK)\b/g,"sh_webmethod",7,1]],[[/[^ \t]+/g,"sh_string",-2]],[[/$/g,null,-2],[/\b[\d]{2}:[\d]{2}:[\d]{2}\b/g,"sh_time",-1],[/[\d]{4}\]|\[[A-Za-z]{3}[ \t][A-Za-z]{3}[ \t]{1,2}[\d]{1,2}[ \t](?=[\d]{2}:[\d]{2}:[\d]{2})/g,"sh_date",-1],[/\[error\]/g,"sh_string",-1],[/\[notice\]/g,"sh_comment",-1],[/[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\b/g,"sh_ip",-1]],[[/$/g,null,-2],[/(?:IN|OUT|PROTO)=(?=[^ \t]+)/g,"sh_normal",7,1],[/(?:SPT|DPT|TYPE|SEQ)=(?=[^ \t]+)/g,"sh_normal",10,1],[/\b(?:CWR|ECE|URG|ACK|PSH|RST|SYN|FIN)\b/g,"sh_number",-1],[/[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\b/g,"sh_ip",-1]],[[/[^ \t]+/g,"sh_cbracket",-2]]];

+ 1
- 0
input/js/sh/sh_lsm.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.lsm=[[[/\b(?:Begin[\d]*|End)\b/g,"sh_keyword",-1],[/^[A-Za-z0-9_-]+:/g,"sh_type",-1],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1]]];

+ 1
- 0
input/js/sh/sh_m4.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.m4=[[[/dnl/g,"sh_keyword",1,1],[/#/g,"sh_comment",7],[/"/g,"sh_string",8],[/\$[\d]+/g,"sh_variable",-1]],[[/$/g,null,-2],[/[ \t]+/g,"sh_comment",-1],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/.+/g,"sh_comment",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]]];

+ 1
- 0
input/js/sh/sh_makefile.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.makefile=[[[/^[a-zA-Z0-9_-]+[\s]*=/g,"sh_type",-1],[/^\.[a-zA-Z0-9_-]+[\s]*:|@(?:.+)@/g,"sh_preproc",-1],[/^(?:[A-Za-z0-9_.\s-])+:/g,"sh_symbol",-1],[/%[a-zA-Z0-9_.-]+:%[a-zA-Z0-9_.-]+/g,"sh_string",-1],[/(?:[A-Za-z0-9_-]*)\.(?:[A-Za-z0-9_-]+)/g,"sh_normal",-1],[/\b(?:import)\b/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/\\"|\\'/g,"sh_normal",-1],[/"/g,"sh_string",1],[/'/g,"sh_string",2],[/function[ \t]+(?:[A-Za-z]|_)[A-Za-z0-9_]*[ \t]*(?:\(\))?|(?:[A-Za-z]|_)[A-Za-z0-9_]*[ \t]*\(\)/g,"sh_function",-1],[/(?:[A-Za-z]*[-\/]+[A-Za-z]+)+/g,"sh_normal",-1],[/\b(?:alias|bg|bind|break|builtin|caller|case|command|compgen|complete|continue|declare|dirs|disown|do|done|elif|else|enable|esac|eval|exec|exit|export|false|fc|fg|fi|for|getopts|hash|help|history|if|in|jobs|let|local|logout|popd|printf|pushd|read|readonly|return|select|set|shift|shopt|source|suspend|test|then|times|trap|true|type|typeset|umask|unalias|unset|until|wait|while)\b/g,"sh_keyword",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?==)|\$\{(?:[^ \t]+)\}|\$\((?:[^ \t]+)\)|\$(?:[A-Za-z]|_)[A-Za-z0-9_]*|\$(?:[^ \t]{1})/g,"sh_variable",-1],[/~|!|%|\^|\*|\(|\)|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\||%%|(?:##){2}(?!#)/g,"sh_symbol",-1],[/#/g,"sh_comment",3]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/$/g,null,-2]]];

+ 1
- 0
input/js/sh/sh_oracle.min.js
File diff suppressed because it is too large
View File


+ 1
- 0
input/js/sh/sh_pascal.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.pascal=[[[/\b(?:alfa|and|array|begin|case|const|div|do|downto|else|end|false|file|for|function|get|goto|if|in|label|mod|new|not|of|or|pack|packed|page|program|put|procedure|read|readln|record|repeat|reset|rewrite|set|text|then|to|true|type|unpack|until|var|while|with|writeln|write)\b/gi,"sh_keyword",-1],[/\(\*/g,"sh_comment",1],[/\{/g,"sh_comment",2],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",3],[/'/g,"sh_string",4],[/\b(?:boolean|byte|char|integer|maxint|real)\b/gi,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1]],[[/\*\)/g,"sh_comment",-2],[/\(\*/g,"sh_comment",1]],[[/\}/g,"sh_comment",-2],[/\{/g,"sh_comment",2]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/$/g,null,-2],[/\\(?:\\|')/g,null,-1],[/'/g,"sh_string",-2]]];

+ 1
- 0
input/js/sh/sh_perl.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.perl=[[[/\b(?:import)\b/g,"sh_preproc",-1],[/(s)(\{(?:\\\}|[^}])*\}\{(?:\\\}|[^}])*\})([ixsmogce]*)/g,["sh_keyword","sh_regexp","sh_keyword"],-1],[/(s)(\((?:\\\)|[^)])*\)\((?:\\\)|[^)])*\))([ixsmogce]*)/g,["sh_keyword","sh_regexp","sh_keyword"],-1],[/(s)(\[(?:\\\]|[^\]])*\]\[(?:\\\]|[^\]])*\])([ixsmogce]*)/g,["sh_keyword","sh_regexp","sh_keyword"],-1],[/(s)(<.*><.*>)([ixsmogce]*)/g,["sh_keyword","sh_regexp","sh_keyword"],-1],[/(q(?:q?))(\{(?:\\\}|[^}])*\})/g,["sh_keyword","sh_string"],-1],[/(q(?:q?))(\((?:\\\)|[^)])*\))/g,["sh_keyword","sh_string"],-1],[/(q(?:q?))(\[(?:\\\]|[^\]])*\])/g,["sh_keyword","sh_string"],-1],[/(q(?:q?))(<.*>)/g,["sh_keyword","sh_string"],-1],[/(q(?:q?))([^A-Za-z0-9 \t])(.*\2)/g,["sh_keyword","sh_string","sh_string"],-1],[/(s)([^A-Za-z0-9 \t])(.*\2.*\2)([ixsmogce]*(?=[ \t]*(?:\)|;)))/g,["sh_keyword","sh_regexp","sh_regexp","sh_keyword"],-1],[/(s)([^A-Za-z0-9 \t])(.*\2[ \t]*)([^A-Za-z0-9 \t])(.*\4)([ixsmogce]*(?=[ \t]*(?:\)|;)))/g,["sh_keyword","sh_regexp","sh_regexp","sh_regexp","sh_regexp","sh_keyword"],-1],[/#/g,"sh_comment",1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/(?:m|qr)(?=\{)/g,"sh_keyword",2],[/(?:m|qr)(?=#)/g,"sh_keyword",4],[/(?:m|qr)(?=\|)/g,"sh_keyword",6],[/(?:m|qr)(?=@)/g,"sh_keyword",8],[/(?:m|qr)(?=<)/g,"sh_keyword",10],[/(?:m|qr)(?=\[)/g,"sh_keyword",12],[/(?:m|qr)(?=\\)/g,"sh_keyword",14],[/(?:m|qr)(?=\/)/g,"sh_keyword",16],[/"/g,"sh_string",18],[/'/g,"sh_string",19],[/</g,"sh_string",20],[/\/[^\n]*\//g,"sh_string",-1],[/\b(?:chomp|chop|chr|crypt|hex|i|index|lc|lcfirst|length|oct|ord|pack|q|qq|reverse|rindex|sprintf|substr|tr|uc|ucfirst|m|s|g|qw|abs|atan2|cos|exp|hex|int|log|oct|rand|sin|sqrt|srand|my|local|our|delete|each|exists|keys|values|pack|read|syscall|sysread|syswrite|unpack|vec|undef|unless|return|length|grep|sort|caller|continue|dump|eval|exit|goto|last|next|redo|sub|wantarray|pop|push|shift|splice|unshift|split|switch|join|defined|foreach|last|chop|chomp|bless|dbmclose|dbmopen|ref|tie|tied|untie|while|next|map|eq|die|cmp|lc|uc|and|do|if|else|elsif|for|use|require|package|import|chdir|chmod|chown|chroot|fcntl|glob|ioctl|link|lstat|mkdir|open|opendir|readlink|rename|rmdir|stat|symlink|umask|unlink|utime|binmode|close|closedir|dbmclose|dbmopen|die|eof|fileno|flock|format|getc|print|printf|read|readdir|rewinddir|seek|seekdir|select|syscall|sysread|sysseek|syswrite|tell|telldir|truncate|warn|write|alarm|exec|fork|getpgrp|getppid|getpriority|kill|pipe|qx|setpgrp|setpriority|sleep|system|times|x|wait|waitpid)\b/g,"sh_keyword",-1],[/^\=(?:head1|head2|item)/g,"sh_comment",21],[/(?:\$[#]?|@|%)[\/A-Za-z0-9_]+/g,"sh_variable",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1]],[[/$/g,null,-2]],[[/\{/g,"sh_regexp",3]],[[/[ \t]+#.*/g,"sh_comment",-1],[/\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g,"sh_variable",-1],[/\\\{|\\\}|\}/g,"sh_regexp",-3]],[[/#/g,"sh_regexp",5]],[[/[ \t]+#.*/g,"sh_comment",-1],[/\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g,"sh_variable",-1],[/\\#|#/g,"sh_regexp",-3]],[[/\|/g,"sh_regexp",7]],[[/[ \t]+#.*/g,"sh_comment",-1],[/\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g,"sh_variable",-1],[/\\\||\|/g,"sh_regexp",-3]],[[/@/g,"sh_regexp",9]],[[/[ \t]+#.*/g,"sh_comment",-1],[/\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g,"sh_variable",-1],[/\\@|@/g,"sh_regexp",-3]],[[/</g,"sh_regexp",11]],[[/[ \t]+#.*/g,"sh_comment",-1],[/\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g,"sh_variable",-1],[/\\<|\\>|>/g,"sh_regexp",-3]],[[/\[/g,"sh_regexp",13]],[[/[ \t]+#.*/g,"sh_comment",-1],[/\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g,"sh_variable",-1],[/\\]|\]/g,"sh_regexp",-3]],[[/\\/g,"sh_regexp",15]],[[/[ \t]+#.*/g,"sh_comment",-1],[/\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g,"sh_variable",-1],[/\\\\|\\/g,"sh_regexp",-3]],[[/\//g,"sh_regexp",17]],[[/[ \t]+#.*/g,"sh_comment",-1],[/\$(?:[A-Za-z0-9_]+|\{[A-Za-z0-9_]+\})/g,"sh_variable",-1],[/\\\/|\//g,"sh_regexp",-3]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/$/g,null,-2],[/\\(?:\\|')/g,null,-1],[/'/g,"sh_string",-2]],[[/$/g,null,-2],[/>/g,"sh_string",-2]],[[/\=cut/g,"sh_comment",-2]]];

+ 1
- 0
input/js/sh/sh_php.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.php=[[[/\b(?:include|include_once|require|require_once)\b/g,"sh_preproc",-1],[/\/\//g,"sh_comment",1],[/#/g,"sh_comment",1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",2],[/'/g,"sh_string",3],[/\b(?:and|or|xor|__FILE__|exception|php_user_filter|__LINE__|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|each|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|for|foreach|function|global|if|isset|list|new|old_function|print|return|static|switch|unset|use|var|while|__FUNCTION__|__CLASS__|__METHOD__)\b/g,"sh_keyword",-1],[/\/\/\//g,"sh_comment",4],[/\/\//g,"sh_comment",1],[/\/\*\*/g,"sh_comment",9],[/\/\*/g,"sh_comment",10],[/(?:\$[#]?|@|%)[A-Za-z0-9_]+/g,"sh_variable",-1],[/<\?php|~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1]],[[/$/g,null,-2]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/\\(?:\\|')/g,null,-1],[/'/g,"sh_string",-2]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",5,1],[/<!DOCTYPE/g,"sh_preproc",6,1],[/<!--/g,"sh_comment",7],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",8,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",8,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",7]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",5,1],[/<!DOCTYPE/g,"sh_preproc",6,1],[/<!--/g,"sh_comment",7],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",8,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",8,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]]];

+ 1
- 0
input/js/sh/sh_prolog.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.prolog=[[[/\b(?:bgidriver|bgifont|check_determ|code|config|diagnostics|error|errorlevel|heap|gstacksize|nobreak|nowarnings|printermenu|project)\b/g,"sh_preproc",-1],[/%/g,"sh_comment",1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",2],[/'/g,"sh_string",3],[/\b(?:abstract|align|as|and|class|clauses|constants|database|determ|domains|elsedef|endclass|enddef|erroneous|facts|failure|global|goal|if|ifdef|ifndef|implement|include|language|multi|nocopy|nondeterm|object|or|procedure|protected|predicates|reference|single|static|struct|this|ABSTRACT|ALIGN|AS|AND|CLASS|CLAUSES|CONSTANTS|DATABASE|DETERM|DOMAINS|ELSEDEF|ENDCLASS|ENDDEF|ERRONEOUS|FACTS|FAILURE|GLOBAL|GOAL|IF|IFDEF|IFNDEF|IMPLEMENT|INCLUDE|LANGUAGE|MULTI|NOCOPY|NONDETERM|OBJECT|OR|PROCEDURE|PROTECTED|PREDICATES|REFERENCE|SINGLE|STATIC|STRUCT|THIS|assert|asserta|assertz|bound|chain_inserta|chain_insertafter|chain_insertz|chain_terms|consult|db_btrees|db_chains|fail|findall|format|free|msgrecv|msgsend|nl|not|readterm|ref_term|retract|retractall|save|term_bin|term_replace|term_str|trap|write|writef|mod|div|abs|exp|ln|log|sqrt|round|trunc|val|cos|sin|tan|arctan|random|randominit)\b/g,"sh_keyword",-1],[/\/\*/g,"sh_comment",4],[/\b(?:char|real|string|symbol|byte|sbyte|short|ushort|word|integer|unsigned|dword|long|ulong|binary|ref)\b/g,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1],[/[A-Z][A-Za-z0-9_]*|_/g,"sh_variable",-1]],[[/$/g,null,-2]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/$/g,null,-2],[/\\(?:\\|')/g,null,-1],[/'/g,"sh_string",-2]],[[/\*\//g,"sh_comment",-2],[/\/\*/g,"sh_comment",4]]];

+ 1
- 0
input/js/sh/sh_properties.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.properties=[[[/#/g,"sh_comment",1],[/!/g,"sh_comment",1],[/([^="]+)([ \t]*)(=)/g,["sh_type","sh_normal","sh_symbol"],-1]],[[/$/g,null,-2]]];

+ 1
- 0
input/js/sh/sh_python.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.python=[[[/\b(?:import|from)\b/g,"sh_preproc",-1],[/#/g,"sh_comment",1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/\b(?:and|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|global|if|in|is|lambda|not|or|pass|print|raise|return|try|while)\b/g,"sh_keyword",-1],[/^(?:[\s]*'{3})/g,"sh_comment",2],[/^(?:[\s]*\"{3})/g,"sh_comment",3],[/^(?:[\s]*'(?:[^\\']|\\.)*'[\s]*|[\s]*\"(?:[^\\\"]|\\.)*\"[\s]*)$/g,"sh_comment",-1],[/(?:[\s]*'{3})/g,"sh_string",4],[/(?:[\s]*\"{3})/g,"sh_string",5],[/"/g,"sh_string",6],[/'/g,"sh_string",7],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\||\{|\}/g,"sh_symbol",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1]],[[/$/g,null,-2]],[[/(?:'{3})/g,"sh_comment",-2]],[[/(?:\"{3})/g,"sh_comment",-2]],[[/(?:'{3})/g,"sh_string",-2]],[[/(?:\"{3})/g,"sh_string",-2]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/$/g,null,-2],[/\\(?:\\|')/g,null,-1],[/'/g,"sh_string",-2]]];

+ 1
- 0
input/js/sh/sh_ruby.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.ruby=[[[/\b(?:require)\b/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",1],[/'/g,"sh_string",2],[/</g,"sh_string",3],[/\/[^\n]*\//g,"sh_regexp",-1],[/(%r)(\{(?:\\\}|#\{[A-Za-z0-9]+\}|[^}])*\})/g,["sh_symbol","sh_regexp"],-1],[/\b(?:alias|begin|BEGIN|break|case|defined|do|else|elsif|end|END|ensure|for|if|in|include|loop|next|raise|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield|false|nil|self|true|__FILE__|__LINE__|and|not|or|def|class|module|catch|fail|load|throw)\b/g,"sh_keyword",-1],[/(?:^\=begin)/g,"sh_comment",4],[/(?:\$[#]?|@@|@)(?:[A-Za-z0-9_]+|'|\"|\/)/g,"sh_type",-1],[/[A-Za-z0-9]+(?:\?|!)/g,"sh_normal",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/(#)(\{)/g,["sh_symbol","sh_cbracket"],-1],[/#/g,"sh_comment",5],[/\{|\}/g,"sh_cbracket",-1]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/$/g,null,-2],[/\\(?:\\|')/g,null,-1],[/'/g,"sh_string",-2]],[[/$/g,null,-2],[/>/g,"sh_string",-2]],[[/^(?:\=end)/g,"sh_comment",-2]],[[/$/g,null,-2]]];

+ 1
- 0
input/js/sh/sh_scala.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.scala=[[[/\b(?:import|package)\b/g,"sh_preproc",-1],[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",10],[/'/g,"sh_string",11],[/(\b(?:class|trait))([ \t]+)([$A-Za-z0-9_]+)/g,["sh_keyword","sh_normal","sh_classname"],-1],[/abstract|case|catch|class|def|do|else|extends|false|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|requires|return|sealed|super|this|throw|trait|try|true|type|val|var|while|with|yield|_|:|=>|=|<-|<:|<%|>:|#|@/g,"sh_keyword",-1],[/\b(?:Int|Byte|Boolean|Char|Long|Float|Double|Short|Nil)\b/g,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_|[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-])(?:[A-Za-z0-9_]|[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-])*(?=[ \t]*\()/g,"sh_function",-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];

+ 1
- 0
input/js/sh/sh_sh.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.sh=[[[/\b(?:import)\b/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/\\"|\\'/g,"sh_normal",-1],[/"/g,"sh_string",1],[/'/g,"sh_string",2],[/function[ \t]+(?:[A-Za-z]|_)[A-Za-z0-9_]*[ \t]*(?:\(\))?|(?:[A-Za-z]|_)[A-Za-z0-9_]*[ \t]*\(\)/g,"sh_function",-1],[/(?:[A-Za-z]*[-\/]+[A-Za-z]+)+/g,"sh_normal",-1],[/\b(?:alias|bg|bind|break|builtin|caller|case|command|compgen|complete|continue|declare|dirs|disown|do|done|elif|else|enable|esac|eval|exec|exit|export|false|fc|fg|fi|for|getopts|hash|help|history|if|in|jobs|let|local|logout|popd|printf|pushd|read|readonly|return|select|set|shift|shopt|source|suspend|test|then|times|trap|true|type|typeset|umask|unalias|unset|until|wait|while)\b/g,"sh_keyword",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?==)|\$\{(?:[^ \t]+)\}|\$\((?:[^ \t]+)\)|\$(?:[A-Za-z]|_)[A-Za-z0-9_]*|\$(?:[^ \t]{1})/g,"sh_variable",-1],[/~|!|%|\^|\*|\(|\)|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\||%%|(?:##){2}(?!#)/g,"sh_symbol",-1],[/#/g,"sh_comment",3]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/$/g,null,-2]]];

+ 1
- 0
input/js/sh/sh_slang.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.slang=[[[/#/g,"sh_comment",1],[/\b(?:ERROR_BLOCK|EXECUTE_ERROR_BLOCK|EXIT_BLOCK|NULL|__tmp|_for|and|break|case|catch|chs|continue|define|do|else|else|exch|finally|for|foreach|forever|if|ifnot|loop|mod|mul2|not|or|orelse|pop|private|public|return|shl|shr|sign|sqr|static|struct|switch|then|throw|try|typedef|using|variable|while|xor)\b/g,"sh_keyword",-1],[/%/g,"sh_comment",1],[/"/g,"sh_string",2],[/'/g,"sh_string",3],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/~|!|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|&|<|>|\|/g,"sh_symbol",-1],[/\b(?:require)\b/g,"sh_preproc",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1]],[[/$/g,null,-2]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/$/g,null,-2],[/\\(?:\\|')/g,null,-1],[/'/g,"sh_string",-2]]];

+ 1
- 0
input/js/sh/sh_sml.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.sml=[[[/\b(?:external|open|include|[A-Z][\w']*(?=\.))\b/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",1],[/\(\*/g,"sh_comment",2],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/\b(?:abstraction|abstype|and|andalso|as|before|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|o|of|op|open|orelse|overload|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/g,"sh_keyword",-1],[/\b(?:int|byte|boolean|char|long|float|double|short|void)\b/g,"sh_type",-1]],[[/$/g,null,-2],[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/\*\)/g,"sh_comment",-2],[/\(\*/g,"sh_comment",2]]];

+ 1
- 0
input/js/sh/sh_spec.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.spec=[[[/#/g,"sh_comment",1],[/^[A-Za-z0-9_-]+:/g,"sh_keyword",-1],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/\$[A-Za-z0-9_]+/g,"sh_variable",-1],[/%(?:\{?)[A-Za-z0-9_]+(?:\}?)/g,"sh_preproc",-1]],[[/$/g,null,-2]]];

+ 1
- 0
input/js/sh/sh_sql.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.sql=[[[/\b(?:VARCHAR|TINYINT|TEXT|DATE|SMALLINT|MEDIUMINT|INT|BIGINT|FLOAT|DOUBLE|DECIMAL|DATETIME|TIMESTAMP|TIME|YEAR|UNSIGNED|CHAR|TINYBLOB|TINYTEXT|BLOB|MEDIUMBLOB|MEDIUMTEXT|LONGBLOB|LONGTEXT|ENUM|BOOL|BINARY|VARBINARY)\b/gi,"sh_type",-1],[/\b(?:ALL|ASC|AS|ALTER|AND|ADD|AUTO_INCREMENT|BETWEEN|BINARY|BOTH|BY|BOOLEAN|CHANGE|CHECK|COLUMNS|COLUMN|CROSS|CREATE|DATABASES|DATABASE|DATA|DELAYED|DESCRIBE|DESC|DISTINCT|DELETE|DROP|DEFAULT|ENCLOSED|ESCAPED|EXISTS|EXPLAIN|FIELDS|FIELD|FLUSH|FOR|FOREIGN|FUNCTION|FROM|GROUP|GRANT|HAVING|IGNORE|INDEX|INFILE|INSERT|INNER|INTO|IDENTIFIED|IN|IS|IF|JOIN|KEYS|KILL|KEY|LEADING|LIKE|LIMIT|LINES|LOAD|LOCAL|LOCK|LOW_PRIORITY|LEFT|LANGUAGE|MODIFY|NATURAL|NOT|NULL|NEXTVAL|OPTIMIZE|OPTION|OPTIONALLY|ORDER|OUTFILE|OR|OUTER|ON|PROCEDURE|PROCEDURAL|PRIMARY|READ|REFERENCES|REGEXP|RENAME|REPLACE|RETURN|REVOKE|RLIKE|RIGHT|SHOW|SONAME|STATUS|STRAIGHT_JOIN|SELECT|SETVAL|SET|TABLES|TERMINATED|TO|TRAILING|TRUNCATE|TABLE|TEMPORARY|TRIGGER|TRUSTED|UNIQUE|UNLOCK|USE|USING|UPDATE|VALUES|VARIABLES|VIEW|WITH|WRITE|WHERE|ZEROFILL|TYPE|XOR)\b/gi,"sh_keyword",-1],[/"/g,"sh_string",1],[/'/g,"sh_string",2],[/`/g,"sh_string",3],[/#/g,"sh_comment",4],[/\/\/\//g,"sh_comment",5],[/\/\//g,"sh_comment",4],[/\/\*\*/g,"sh_comment",11],[/\/\*/g,"sh_comment",12],[/--/g,"sh_comment",4],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/`/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/$/g,null,-2]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",6,1],[/<!DOCTYPE/g,"sh_preproc",8,1],[/<!--/g,"sh_comment",9],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",10,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",10,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",7]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",7]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",9]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",7]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",6,1],[/<!DOCTYPE/g,"sh_preproc",8,1],[/<!--/g,"sh_comment",9],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",10,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",10,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]]];

+ 1
- 0
input/js/sh/sh_tcl.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.tcl=[[[/#/g,"sh_comment",1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",2],[/'/g,"sh_string",3],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/\b(?:proc|global|upvar|if|then|else|elseif|for|foreach|break|continue|while|set|eval|case|in|switch|default|exit|error|proc|return|uplevel|loop|for_array_keys|for_recursive_glob|for_file|unwind_protect|expr|catch|namespace|rename|variable|method|itcl_class|public|protected|append|binary|format|re_syntax|regexp|regsub|scan|string|subst|concat|join|lappend|lindex|list|llength|lrange|lreplace|lsearch|lset|lsort|split|expr|incr|close|eof|fblocked|fconfigure|fcopy|file|fileevent|flush|gets|open|puts|read|seek|socket|tell|load|loadTk|package|pgk::create|pgk_mkIndex|source|bgerror|history|info|interp|memory|unknown|enconding|http|msgcat|cd|clock|exec|exit|glob|pid|pwd|time|dde|registry|resource)\b/g,"sh_keyword",-1],[/\$[A-Za-z0-9_]+/g,"sh_variable",-1]],[[/$/g,null,-2]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];

+ 1
- 0
input/js/sh/sh_xml.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.xml=[[[/<\?xml/g,"sh_preproc",1,1],[/<!DOCTYPE/g,"sh_preproc",3,1],[/<!--/g,"sh_comment",4],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",5,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",4]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]]];

+ 1
- 0
input/js/sh/sh_xorg.min.js View File

@@ -0,0 +1 @@
1
+if(!this.sh_languages){this.sh_languages={}}sh_languages.xorg=[[[/#/g,"sh_comment",1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",2],[/'/g,"sh_string",3],[/\b(?:End)?(?:Sub)*Section\b/g,"sh_keyword",-1],[/[A-Za-z0-9_]+/g,"sh_type",-1]],[[/$/g,null,-2]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];

+ 4
- 0
input/js/sh_main.js
File diff suppressed because it is too large
View File


+ 103
- 0
input/projects/avrnetstack.md View File

@@ -0,0 +1,103 @@
1
+title: avrNetStack
2
+title_de: avrNetStack
3
+description: Modular AVR TCP/IP Stack with Ethernet and WiFi support
4
+menu-position: 22
5
+comments: true
6
+flattr: true
7
+github: https://github.com/xythobuz/avrNetStack
8
+twitter: xythobuz
9
+reddit: true
10
+---
11
+
12
+# {{ page.title }}
13
+
14
+[avrNetStack][github] aims to be a very modular Networking Stack running on AVR Microcontrollers and supporting different Network Hardware (ENC28J60, MRF24WB).
15
+Select your MCU and hardware driver in the makefile.
16
+Compile with "make lib" to create a static library.
17
+Compile with "make test" to create a test hex file to use with the hardware found in Hardware/avrNetStack.sch. You need Eagle 6, available for free from cadsoft.
18
+In the future, a PCB will be designed that can act as WLAN / LAN Module for your AVR Project, in addition to this software.
19
+
20
+[![Foto 1][f1s]][f1]
21
+[![Foto 2][f2s]][f2]
22
+[![Foto 2][f3s]][f3]
23
+
24
+## License
25
+
26
+All files in "lib/drivers/asynclabs" are released under the [GPLv2][gplv2].
27
+
28
+<pre>
29
+&copy; 2009 Async Labs Inc.
30
+&copy; 2012 Thomas Buck
31
+</pre>
32
+
33
+Everything else, if not mentioned otherwise elsewhere, is released under a BSD 2-Clause License. See the accompanying COPYING file.
34
+
35
+## Software Overview
36
+
37
+### ENC28J60 Driver
38
+
39
+This is a self-written driver for [Microchips ENC28J60][enc], based on it's [datasheet][datasheet] and the [silicon errata][errata]. It is operating (more or less) stable.
40
+The 8KB Buffer in the ENC28J60 is not really used, as all received Packets are placed in RAM before using their data. It will be used as FIFO for Packets that are received before the CPU is able to work on them.
41
+You can change the size and location of the Receive and Transmit Segments in the ENC28J60 SRAM.
42
+
43
+### MRF24WB0MA Driver
44
+
45
+This is based on Stefan Heeschs modified version of Asynclabs G2100 Driver, released in [this forum thread][forum], modified to work with this Networking Stack. This is a heavy work in progress.
46
+
47
+### Hardware Libraries
48
+
49
+avrNetStack includes UART, SPI and Timer libs aswell as a basic task switcher and scheduler.
50
+The UART lib uses FIFO Buffers for receiving and transmitting interrupt driven. Change the Buffer size in 'include/serial.h', if you want. For debugging, you can run the serial library in a blocking mode.
51
+The Time lib supports 16MHz and 20MHz on a small selection of hardware devices. If you get compile errors after changing the target plattform in the makefile, you have to extend these libraries to support your target.
52
+If you want to use the UART with your own software don't include another UART library. Use the functions from serial.h!
53
+You need to call scheduler() and tasks() in you main-loop and also enable interrupts to use the Networking Stack. Both are completely dynamic, so you can use them for your application logic, too.
54
+The std module is a wrapper for the libc memory allocation functions. It is used to keep track of memory allocations for debugging purposes.
55
+
56
+### Debug Output
57
+
58
+Every software modules debug output can be individually turned off or on. Just set the "#define DEBUG" at the start of the file to 1' or higher. To add debug output, use debugPrint() to print. If you need some more code to generate your output, put it in a "#if DEBUG == 1 ... #endif" block.
59
+debug.h also includes a custom assert implementation.
60
+
61
+### Controller Module
62
+
63
+Controls the operation of the whole network stack. It contains only one function for the main program, networkInit. It is to be called once afer System Reset and performs initialization of all necessary hardware and buffers, etc. Also, some definitions can be uncommented in the controller.h file to deactivate parts of the stack. This could allow you to run a subset of the stack on a smaller AVR.
64
+
65
+### MAC Module
66
+
67
+These are the Network Hardware drivers. Different MAC implementations will exist in the future, right now only the ENC28J60 is supported. This allows sending Ethernet Packets, as well as receiving them. Received Packets are given to the appropriate next layer by the controller.
68
+
69
+### ARP Module
70
+
71
+Handles received ARP Packets, maintains an ARP Cache and gives functions of higher layers a method to obtain a MAC Address from an IP Address.
72
+If the Cache has no hit, an ARP Packet is issued, so that the higher layer can try again later.
73
+
74
+### IPv4 Module
75
+
76
+Handles received IPv4 Packets. Received valid Datagrams are given to the appropriate next stack layer. Also, IPv4 Packets can be transmitted with this module.
77
+It buffers outgoing IPv4 Packets to get the target MAC from the ARP Module automatically.
78
+
79
+### ICMP Module
80
+
81
+Handles received ICMP Packets. Can answer and send out echo requests.
82
+A single handler for echo replies can be registered. This is used to implement a simple Ping Utility in "test/main.c".
83
+
84
+### UDP Module
85
+
86
+Handles the really simple User Datagram Protocol. A handler for every port can be registered and UDP packets can be transmitted.
87
+
88
+### NTP Module
89
+
90
+Simple NTP (SNTP) Client. Will update systemTime automagically to the current unix timestamp some time after calling ntpIssueRequest().
91
+
92
+ [github]: https://github.com/xythobuz/avrNetStack
93
+ [gplv2]: http://www.gnu.org/licenses/gpl-2.0.html
94
+ [enc]: http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en022889
95
+ [datasheet]: http://ww1.microchip.com/downloads/en/DeviceDoc/39662d.pdf
96
+ [errata]: http://ww1.microchip.com/downloads/en/DeviceDoc/80349c.pdf
97
+ [forum]: http://www.mikrocontroller.net/topic/175463#1945568
98
+ [f1s]: img/net_small.jpg
99
+ [f1]: img/net.jpg
100
+ [f2s]: img/net2_small.jpg
101
+ [f2]: img/net2.jpg
102
+ [f3s]: img/teaser2_small.png
103
+ [f3]: img/teaser2.png

+ 29
- 0
input/projects/avrserial.md View File

@@ -0,0 +1,29 @@
1
+title: AVR Serial Library
2
+title_de: AVR Serial Library
3
+description: Hardware UART library for many AVR MCUs
4
+menu-position: 25
5
+comments: true
6
+flattr: true
7
+github: https://github.com/xythobuz/avrSerial
8
+compat: avrserlib
9
+twitter: xythobuz
10
+reddit: true
11
+---
12
+
13
+# {{ page.title }}
14
+
15
+The avrSerial Library let's your AVR communicate with it's UART. At the moment, the following AtMega types are supported: 8, 16, 32, 323, 640, 1280, 1281, 2560, 2561, 8515, 8535. To add another processor, just get the register names from the data sheet and put them in the header file.
16
+
17
+[Code on GitHub][1]
18
+
19
+ [1]: https://github.com/xythobuz/avrSerial
20
+
21
+lang: de
22
+
23
+# {{ page.title_de }}
24
+
25
+Die avrSerial Library ermöglicht problemlos die serielle Kommunikation für AVR Prozessoren. Unterstützt werden momentan folgende AtMega Typen: 8, 16, 32, 323, 640, 1280, 1281, 2560, 2561, 8515, 8535. Es können jedoch problemlos weitere Prozessoren hinzugefügt werden. Dafür müssen nur die Registernamen aus dem Datenblatt in die Header Datei eingefügt werden.
26
+
27
+[Code auf GitHub][1]
28
+
29
+ [1]: https://github.com/xythobuz/avrSerial

+ 55
- 0
input/projects/c250.md View File

@@ -0,0 +1,55 @@
1
+title: Mio C250 Unlock
2
+title_de: Mio C250 Unlock
3
+description: Unlocking Mio C250 or C220 GPS Satnavs
4
+menu-position: 60
5
+comments: true
6
+flattr: true
7
+funny: Free your Device!
8
+compat: c250
9
+twitter: xythobuz
10
+reddit: true
11
+---
12
+
13
+# Mio C220 / C250 Unlock
14
+
15
+In short:
16
+
17
+*   Place [Mio C220 / C250 Pseudo Unlock (4.3MB)][1] on a SD Card.
18
+*   Insert the Card while the device is running. A file-manager will start.
19
+*   Backup your "MioMap" Folder which is inside "\My Flash Drive\".
20
+*   Delete the folder "MioMap" inside "\My Flash Drive\".
21
+*   Run "Setup.exe" on the SD Card.
22
+*   Starting MioMap from the Main Menu will now open a menu that allows you to start some apps. You can add more, if you want.
23
+
24
+Done!
25
+
26
+ [1]: files/c250_pseudo_unlock.zip
27
+
28
+lang: de
29
+
30
+# Mio C220 / C250 Unlock
31
+
32
+Das Mio C250 oder C220 (eins für Amerika, eins für Europa) ist ein Navigationsgerät dessen Software auf Windows CE 5.0 basiert.  
33
+Das weckt natürlich Hoffnungen, das Gerät in einen PDA verwandeln zu können. Aber leider ist Windows nur in einer Core Version installiert.  
34
+Dort fehlt fast alles wichtige für eine Grafische Oberfläche, wie zum Beispiel die Taskbar (Deshalb auch Pseudo Unlock). Grafische Programme wie zum Beispiel Datei-Manager können aber gestartet werden.  
35
+Daher war mein Ziel, das Gerät mit einem Explorer-Fenster auch für eigene Anwendungen benutzbar zu machen.  
36
+Ein weiteres Hinderniss ist der ROM des Gerätes. Dort kommt nämlich das System-Image her, welches bei jedem "Hardboot" in den RAM geladen wird.  
37
+Nur ein Flash-Speicher steht zur Verfügung, auf welchem Standartmäßig die Navigationssoftware liegt. Die bleibt bei meinem Hack übrigens nicht auf dem Gerät, kann aber jederzeit von der Speicherkarte gestartet werden.  
38
+Der eigentliche Exploit, der diesen Unlock möglich macht, ist das Verhalten des Betriebssystem.  
39
+Dieses startet, wenn vorhanden, die Datei "Oscar91ADM.exe" von der Speicherkarte, wenn diese eingesetzt wird.  
40
+  
41
+Wenn du nun unten meinen "Hack" heruntergeladen hast, findest du darin einige Dateien und Ordner. Die müssen auf die SD-Karte.  
42
+Die enthaltene Oscar91ADM.exe ist ein Dateimanager. Gestartet wird er, wenn du die Speicherkarte einsetzt, wärend das Navi an ist.  
43
+Mit diesem kannst du die Navigations Software aus dem Ordner "\My Flash Drive\" auf die Speicherkarte kopieren. Der Ordner, den du dafür benötigst, heißt "MioMap".  
44
+Stelle sicher, dass du den Ordner "MioMap" aus "My Flash Drive" löschst, bevor du weitermachst.  
45
+Starte nun die Setup.exe auf der Speicherkarte. Das ist eine Dummy executable, welche das Script Setup.scp startet.  
46
+Jetzt werden die benötigten Dateien und ein paar Praktische kleine Programme aufs Gerät kopiert. Nach einigen Sekunden startet das Navi neu.  
47
+Wenn du nun im Hauptmenü des Navis auf das Navi-Icon klickst, erscheint ein Menü mit dem du einige Programme starten kannst.  
48
+Wenn du deine Navi Software weiterhin benutzen willst, lege sie doch auf die Speicherkarte und starte sie mit einem der beiden File-Manager.  
49
+Du kannst natürlich auch das Menü ändern. Das ganze Zeug findet sich in "\My Flash Drive\MioMap\MioMap\miomap.mscr".  
50
+  
51
+Der ganze Aufbau des Systems ist wirklich sehr einfach. Du kannst problemlos weitere Programme ins Menü hinzufügen. 
52
+
53
+### [Download Mio C250 / C220 Pseudo Unlock (4.3MB)][1]
54
+
55
+ [1]: files/c250_pseudo_unlock.zip

+ 186
- 0
input/projects/ledcube.md View File

@@ -0,0 +1,186 @@
1
+title: 8x8x8 LED Cube
2
+title_de: 8x8x8 LED Wuerfel
3
+description: AVR LED Cube with Java Software and Music Visualization
4
+menu-position: 15
5
+comments: true
6
+flattr: true
7
+funny: <a href="http://www.liveleak.com/view?i=0cd_1295609192">"It turns blue..."</a>
8
+github: https://github.com/xythobuz/LED-Cube
9
+compat: cube
10
+twitter: xythobuz
11
+reddit: true
12
+---
13
+
14
+# {{ page.title }}
15
+
16
+Get the [current Codebase as Zip][1].
17
+
18
+<iframe width="640" height="360" src="http://www.youtube.com/embed/czxCxTBSgHM?feature=player_detailpage" frameborder="0" allowfullscreen></iframe>
19
+
20
+My friends Max (<hutattedonmyarm@me.com>) and Felix built this single-color 8x8x8 LED Cube with me. On this page, you can get the Software as well as Schematics and the PCB Layout licensed under the GPLv3. Have fun!
21
+
22
+[![Foto 1][2]][3]
23
+[![Foto 2][4]][5]
24
+
25
+## Hardware
26
+
27
+An AtMega32 controls 8 8bit Latches. These 64 bits control, via a PNP Transistor, the anodes of 8 LEDs, each.
28
+
29
+There are also 8 N-Channel MOSFETs connected to the AtMega32. They each control the cathodes of 64 LEDs on a Y-Plane.
30
+
31
+It can talk to a PC via USB with a FT232RL. A 1Mbit FRAM is accessed over TWI (or I2C).
32
+
33
+There's also an AtMega8 which acts as a TWI Slave and sends audio data to the AtMega32. This data comes from a MSGEQ7.
34
+
35
+An extensive part list can be found in the Github repository, in Hardware, called parts.txt.
36
+
37
+[![Foto 3][6]][7]
38
+[![Foto 4][8]][9]
39
+
40
+## Software
41
+
42
+The software is composed of 3 parts. The CubeFirmware for the AtMega32, the AudioFirmware for the AtMega8 and CubeControl, the PC software.
43
+
44
+### CubeFirmware
45
+
46
+It's main work is to load images from the FRAM or the AtMega8 and display it. It also monitors the serial Port and reacts accordingly.
47
+
48
+[![Foto 7][20]][21]
49
+[![Foto 8][22]][23]
50
+
51
+### AudioFirmware
52
+
53
+It gets data from the MSGEQ7 and sends it via TWI.
54
+
55
+### CubeControl
56
+
57
+Depends on [Java3D][10]. It renders a rotatable 3D View of the cube. You can then create animations, load and save them, and upload them to the Cube. It has it's own C Library for Windows and Unix to talk to the serial port.
58
+
59
+[![Screenshot][11]][12]
60
+[![Schematic][13]][14]
61
+
62
+### Hardware Emulator
63
+
64
+Allows you to test CubeControl without a real Cube. Unix only!
65
+
66
+### UploadTest
67
+
68
+Small CLI tool to send testdata or stored animations from CubeControl. Unix only!
69
+
70
+## Download
71
+
72
+Get the whole code, as well as schematics and the PCB layout as PNG and Eagle files, from the [GitHub Repository][15].
73
+
74
+[![Foto 5][16]][17]
75
+[![Foto 6][18]][19]
76
+
77
+ [1]: https://github.com/xythobuz/LED-Cube/zipball/master
78
+ [2]: img/cube14_small.jpg
79
+ [3]: img/cube14.jpg
80
+ [4]: img/cube11_small.jpg
81
+ [5]: img/cube11.jpg
82
+ [6]: img/cube10_small.jpg
83
+ [7]: img/cube10.jpg
84
+ [8]: img/cube12_small.jpg
85
+ [9]: img/cube12.jpg
86
+ [10]: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html
87
+ [11]: img/cubecontrol_small.png
88
+ [12]: img/cubecontrol.png
89
+ [13]: img/cubeschem_small.png
90
+ [14]: img/cubeschem.png
91
+ [15]: https://github.com/xythobuz/LED-Cube
92
+ [16]: img/cube13_small.jpg
93
+ [17]: img/cube13.jpg
94
+ [18]: img/cube15_small.jpg
95
+ [19]: img/cube15.jpg
96
+ [20]: img/kuehler1_small.jpg
97
+ [21]: img/kuehler1.jpg
98
+ [22]: img/kuehler2_small.jpg
99
+ [23]: img/kuehler2.jpg
100
+
101
+lang: de
102
+
103
+# {{ page.title_de }}
104
+
105
+Downloade die [aktuelle Codebase als Zip][1].
106
+
107
+Als Schulprojekt und für den Explore-IT Wettbewerb von SAP in Markdorf haben meine zwei Teamkollegen, Max <hutattedonmyarm@me.com> und Felix, zusammen mit mir diesen einfarbigen 8x8x8 LED Cube gebaut. Für Interessierte hier alle Software sowie Schaltplan und Boardlayout unter der GPLv3. Viel Freude damit.
108
+
109
+[![Foto 1][2]][3]
110
+[![Foto 2][4]][5]
111
+
112
+## Hardware
113
+
114
+Ein AtMega32 steuert über einen 8bit Bus 8 Latches. Diese 64 bit steuern über je einen PNP Transistor die Anoden von jeweils 8 übereinander liegenden LEDs.
115
+
116
+Des weiteren steuert der Prozessor 8 N-Kanal MOSFETs welche die Kathoden von 64 in einer x-z Ebene liegenden LEDs steuern.
117
+
118
+Ausserdem kommuniziert der AtMega32 über einen FT232RL per USB mit einem PC. Ãœber den TWI (I2C) Bus wird auf ein 1MBit FRAM zugegriffen.
119
+
120
+Zusätzlich ist ein AtMega8 auf der Platine. Dieser liest über einen MSGEQ7 ein Audiosignal und sendet dieses über TWI an den AtMega32.
121
+
122
+Eine ausführlichere Bauteilliste findet sich im Github Repository, im Ordner Hardware als parts.txt.
123
+
124
+[![Foto 3][6]][7]
125
+[![Foto 4][8]][9]
126
+
127
+## Software
128
+
129
+Die Software besteht aus 3 großen Teilen, die CubeFirmware für den AtMega32, die AudioFirmware für den AtMega8 und CubeControl. Letzteres ist eine Plattformunabhängige Java Software, welche es erlaubt, Animationen für den LED Cube zu erstellen und diese an den Cube zu übertragen. Hierfür wird Java3D benötigt.
130
+
131
+### Cube Firmware
132
+
133
+Die Hauptaufgabe der CubeFirmware ist es, Animationen aus dem FRAM zu laden und anzuzeigen. Nebenbei wird auf Anfragen per USB gewartet und entsprechend gehandelt. Auf Knopfdruck steuert die CubeFirmware den AtMega8 an, um Audio Daten zu visualisieren.
134
+
135
+[![Foto 7][20]][21]
136
+[![Foto 8][22]][23]
137
+
138
+### Audio Firmware
139
+
140
+Die AudioFirmware liest den MSGEQ7 aus, um bei entsprechender Anfrage über TWI diese Daten zu übertragen.
141
+
142
+### CubeControl
143
+
144
+Neben einigen Java Klassen um einen 3D LED Würfel darzustellen und mit diesem zu interagieren, besteht CubeControl auch aus einer Java Native Interface (JNI) Library, welche sowohl unter Windows als auch unter Unix die serielle Kommunikation für CubeControl ermöglicht. Für die 3D Darstellung wird [Java3D][10] benötigt. In der OS X Lion Variante von Java ist dies bereits enthalten, für Windows und Linux muss es separat heruntergeladen werden.
145
+
146
+[![Screenshot][11]][12]
147
+[![Schematic][13]][14]
148
+
149
+### Hardware Emulator
150
+
151
+Ein kleines Projekt, welches unter Unix ein Pseudo Terminal öffnet und die Cube Hardware emuliert. Kann zum testen von CubeControl genutzt werden.
152
+
153
+### UploadTest
154
+
155
+Ein kleines CLI Tool um Testdaten und mit CubeControl gespeicherte Animationen an den Cube zu senden.
156
+
157
+## Download
158
+
159
+Im [GitHub Repository][15] findet sich der gesamte Code sowie die Eagle Dateien und Schaltplan und Layout als PNGs.
160
+
161
+[![Foto 5][16]][17]
162
+[![Foto 6][18]][19]
163
+
164
+ [1]: https://github.com/xythobuz/LED-Cube/zipball/master
165
+ [2]: img/cube14_small.jpg
166
+ [3]: img/cube14.jpg
167
+ [4]: img/cube11_small.jpg
168
+ [5]: img/cube11.jpg
169
+ [6]: img/cube10_small.jpg
170
+ [7]: img/cube10.jpg
171
+ [8]: img/cube12_small.jpg
172
+ [9]: img/cube12.jpg
173
+ [10]: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html
174
+ [11]: img/cubecontrol_small.png
175
+ [12]: img/cubecontrol.png
176
+ [13]: img/cubeschem_small.png
177
+ [14]: img/cubeschem.png
178
+ [15]: https://github.com/xythobuz/LED-Cube
179
+ [16]: img/cube13_small.jpg
180
+ [17]: img/cube13.jpg
181
+ [18]: img/cube15_small.jpg
182
+ [19]: img/cube15.jpg
183
+ [20]: img/kuehler1_small.jpg
184
+ [21]: img/kuehler1.jpg
185
+ [22]: img/kuehler2_small.jpg
186
+ [23]: img/kuehler2.jpg

+ 38
- 0
input/projects/ledmatrix.md View File

@@ -0,0 +1,38 @@
1
+title: LED Matrix
2
+title_de: LED Matrix
3
+description: ATTiny2313 displaying simple animations on an 8x10 LED Matrix
4
+menu-position: 35
5
+comments: true
6
+flattr: true
7
+compat: ledmatrix
8
+twitter: xythobuz
9
+reddit: true
10
+---
11
+
12
+# {{ page.title }}
13
+
14
+This is a school project: an 8x10 LED matrix. The circuit is based on [this][1], only the resistor values and transistors were changed. Take two of these and add a AtTiny2313 and voilà, you get this:
15
+
16
+[![PCB][2]][3] 
17
+
18
+### [Download the source code (in C) and the makefile (ZIPed, Public Domain, 5kB)][4]
19
+
20
+ [1]: http://www.mikrocontroller.net/articles/LED-Matrix#Transistoren
21
+ [2]: img/led_matrix_small.jpg
22
+ [3]: img/led_matrix.jpg
23
+ [4]: files/led_matrix.zip
24
+
25
+lang: de
26
+
27
+# {{ page.title_de }}
28
+
29
+Hier ein kleines Schulprojekt: Eine 8x10 LED Matrix. Die Schaltung basiert [hierauf][1], nur die Widerstandswerte und Transistoren wurden der Matrix entsprechend verändert. Diese Schaltung 2x aufbauen und an einen AtTiny2313 anschliessen und schon kommt das dabei heraus:
30
+
31
+[![Foto][2]][3] 
32
+
33
+### [Hier der Code (in C) und das Makefile zum Download (geZIPt, Public Domain, 5kB)][4]
34
+
35
+ [1]: http://www.mikrocontroller.net/articles/LED-Matrix#Transistoren
36
+ [2]: img/led_matrix_small.jpg
37
+ [3]: img/led_matrix.jpg
38
+ [4]: files/led_matrix.zip

+ 250
- 0
input/projects/nas.md View File

@@ -0,0 +1,250 @@
1
+title: IB-NAS6210 Linux
2
+title_de: IB-NAS6210 Linux
3
+description: Booting your own Linux on an Icybox NAS6210 box
4
+menu-position: 62
5
+comments: true
6
+flattr: true
7
+funny: Kernel Hacking 101
8
+compat: nas
9
+twitter: xythobuz
10
+reddit: true
11
+---
12
+
13
+# {{ page.title }}
14
+
15
+1.  root Access (by Jayare) 
16
+    *   Install the device like a normal user would
17
+    *   Have at least one user with administrator access (either add one, or use the main account) - in my case this is 'admin' but could be any user with administrator rights
18
+    *   Fire up an SSH connection to box (e.g. putty)
19
+    *   Login with the following details:
20
+    *   [username]\_hipserv2\_raidsonic_[PRODUCTCODE]
21
+    *   so in my case that would be
22
+    *   admin\_hipserv2\_raidsonic_XXXX-XXXX-XXXX-XXXX
23
+    *   It'll echo the ICY BOX version (in my case ICY BOX version 10.0.x) and ask for a password. Enter the regular password for the user.
24
+    *   You'll now be logged in to the ICY BOX with the 'regular' user
25
+    *   sudo -E -s
26
+    *   reenter your regular pwd. It'll give you an 'audit\_log\_user_command(): connection refused' and give you root access
27
+2.  Hardware access (by me, really short version) 
28
+    *   This is really long and I'm not in the mood to translate this... Sorry :)
29
+    *   But I saw that googles translator does a really "good" job translating my text...
30
+    *   Try to look at [my article in English][1]!
31
+
32
+ [1]: http://translate.google.de/translate?sl=de&tl=en&js=n&u=http%3A%2F%2Fwww.xythobuz.org%2Fnas.de.html
33
+
34
+lang: de
35
+
36
+# {{ page.title_de }}
37
+
38
+Diese Anleitung gilt ebenso für den IB-NAS6220. Dieser besitzt 2 HDD Schächte und ein völlig anderes Webinterface. Über dieses ist es möglich, das root Passwort zu ändern (siehe diesen [Forenbeitrag][1]), was evtl. eine Neuinstallation einer Linux Distribution erübrigt.
39
+
40
+Der [Icy Box IB-NAS6210][2] (Affiliate Link) hat mit seiner hauseigenen Firmware nur einen beschränkten Funktionsumfang. Es ist kein [AFP][3] oder [DAAP][4] möglich, was als Mac User von großem Nachteil ist. Deshalb muss Linux her, welches auf der verbauten ARM CPU hervorragend läuft. Es ist zwar bereits ein Linux System installiert, leider ist aber der root User nicht zugänglich.
41
+
42
+Die Basisplattform des NAS6210 bildet die Kirkwood Plattform, welche auch im [SheevaPlug][5] und im [OpenRD][6] zum Einsatz kommt. Dies erleichtert die Suche nach einer fertigen Linux Distribution.
43
+
44
+## Update
45
+
46
+Jayare hat mir per E-Mail mitgeteilt, dass er einen Weg gefunden hat, root Zugang zum Installierten Linux System zu bekommen. Dafür folgende Schritte befolgen:
47
+
48
+*   Das Gerät normal in Betrieb nehmen.
49
+*   Einen Administrator Account anlegen oder den vorhandenen Haupt Account nutzen. Im folgenden Beispiel lautet der Benutzername admin.
50
+*   Mittels SSH eine Verbindung zum NAS herstellen.
51
+*   Benutzername nach folgendem Schema:
52
+<pre>
53
+[Benutzername]_hipserv2_raidsonic_[Produktcode]
54
+</pre>
55
+*   In unserem Fall: 
56
+<pre>
57
+admin_hipserv2_raidsonic_XXXX-XXXX-XXXX-XXXX
58
+</pre>
59
+*   Das Passwort ist das, welches beim erstellen des Benutzers angegeben wurde.
60
+*   Nun hat man eingeschränkte Zugriffsrechte.
61
+*   Der Befehl:
62
+<pre>
63
+sudo -E -s
64
+</pre>
65
+*   Die erneute Eingabe des Passwortes führt zur Ausgabe einer Fehlermeldung.
66
+*   Man hat nun trotzdem root Zugriff.
67
+
68
+Dies ähnelt den Methoden, die bei Netgear und Seagate Geräten zum root Zugriff führen. Vielen Dank dafür, Jayare!
69
+
70
+## Hardware Modifikation
71
+
72
+Um das Starten einer anderen Linux Distribution über USB oder eSata zu ermöglichen, benötigen wir Zugang zum Bootloader [Das U-Boot][7]. Dieser gibt beim Booten Statusmeldungen über den internen Seriellen Port des NAS aus und ermöglicht, den Bootprozess zu unterbrechen. Anschliessend kann ein anderer Kernel und eine passende Ramdisk zum Booten ausgewählt werden. Eine bebilderte Anleitung zum aufspüren des Seriellen Ports findet sich, auf Englisch, [hier][8]. Kurz zusammengefasst müssen die hintere Abdeckung und die hinteren Füße weggeschraubt werden, danach lässt sich die Platine mitsamt der Rückwand heraus schieben. Dabei sollte der Festplattenrahmen vorher entfernt worden sein. Unter dem Lüfter befinden sich einige Steckverbindungen auf der Platine. Davon ist eine 4 polige unbelegt. Dies ist der serielle Anschluss. Er arbeitet mit 3,3V Pegeln. Wenn der Stecker an der oberen linken Ecke sitzt, ist die Belegung wie folgt:
73
+
74
+<pre>
75
+(GND) (TX) (RX) (3V3)
76
+</pre>
77
+
78
+Ein passender Adapter um den Port an den Computer anzuschliessen ist schnell gemacht. Hierzu habe ich einen FT232R auf meine [DIP Adapterplatine][9] gelötet und wie folgt beschaltet (Klick vergrößert):
79
+
80
+[![Schaltplan][10]][11]
81
+[![Fertiger Adapter][12]][13] 
82
+
83
+## Software
84
+
85
+Nun besteht also eine Verbindung zwischen meinem Computer und dem NAS mit 115200bps. Wird letzterer nun gebootet, erscheinen U-Boots Statusmeldungen in meinem Terminal. Früher oder später erscheint ein Countdown. Wird dieser mit dem drücken einer beliebigen Taste unterbrochen, findet man sich in U-Boots Kommandozeile wieder. Hier kann zum Beispiel U-Boots eigenes USB System gestartet werden, damit ein Kernel von einem angeschlossenen USB Stick geladen werden kann. Alternativ kann ein Kernel von einem TFTP Server geladen und gestartet werden. Ausserdem können Umbgebungsvariablen angezeigt, geändert, und im NAND gespeichert werden:
86
+
87
+<pre>
88
+printenv
89
+setenv name wert
90
+saveenv
91
+</pre>
92
+
93
+Zum Starten eines anderen Kernels muss zunächst die Variable "mainlineLinux" auf "yes" gesetzt werden. Anschliessend ändern wir die "arcNumber" auf "2361". Dies gaukelt dem Debian Linux Kernel ein anderes System vor, da es den NAS6210 nicht kennt und deshalb sonst nicht booten will. Die Originale arcNumber lautet 3104. Nun wird noch "ipaddr" auf die gewünschte NAS IP gesetzt und "serverip" auf die IP des Rechners, der im nächsten Schritt einen TFTP Server startet. Geschrieben werden die Änderungen dann mit saveenv.
94
+
95
+<pre>
96
+setenv mainlineLinux yes
97
+setenv arcNumber 2361
98
+setenv ipaddr 192.169.2.107
99
+setenv serverip 192.168.2.101
100
+saveenv
101
+</pre>
102
+
103
+Nun wird auf einem Rechner im selben Netzwerk ein TFTP Server gestartet. Ich habe auf meinem Mac [TftpServer][14] verwendet. Dieser muss ein [uImage][15] und eine [uInitrd][16] zur Verfügung stellen. Die verlinkten Dateien sind die des [aktuellen Armel OpenRD Debian Installers][17]. Der Installer wird nun auf dem NAS gebootet:
104
+
105
+<pre>
106
+tftpboot 0x01100000 uInitrd
107
+tftpboot 0x00800000 uImage
108
+setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most
109
+bootm 0x00800000 0x01100000
110
+</pre>
111
+
112
+Die Installation kann sowohl auf einem USB-Stick, einem eSATA oder einem internen SATA Laufwerk erfolgen. Ich habe Debian auf einen 8GB USB-Stick installiert. Beim Debian Support gibt es [Hilfe zur Installation][18]. Ist die Installation abgeschlossen, muss U-Boot konfiguriert werden, um sie zu starten. Zuerst die folgenden 2 Zeilen eingeben:
113
+
114
+<pre>
115
+setenv bootargs_console console=ttyS0,115200
116
+setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_slk; bootm 0x00800000 0x01100000'
117
+</pre>
118
+
119
+Für eine USB-Stick Installation nun folgendes Eingeben:
120
+
121
+<pre>
122
+setenv bootcmd_slk 'usb start; ext2load usb 0:1 0x01100000 /uInitrd; ext2load usb 0:1 0x00800000 /uImage'
123
+</pre>
124
+
125
+Dieses Kommando funktioniert so nur, wenn /boot auf der ersten, als ext2 formatierten Partition liegt. Ansonsten den Pfad anpassen. Ext3 und 4 werden von U-Boot nicht unterstützt.
126
+
127
+Für SATA oder eSATA:
128
+
129
+<pre>
130
+setenv bootcmd_slk 'ide reset; ext2load ide 0:1 0x01100000 /uInitrd; ext2load ide 0:1 0x00800000 /uImage'
131
+</pre>
132
+
133
+Nun noch ein "saveenv", um das ganze zu speichern. Jetzt reicht "run bootcmd" um die U-Boot Kommandozeile zu verlassen und das neu Installierte Debian zu booten.
134
+
135
+## Ein neuer Kernel muss her
136
+
137
+Der Standard Kernel von Debian unterstützt den NAS6210 nicht wirklich, weshalb die grüne LED dauernd blinkt und das Gerät nach dem herunterfahren nicht ausgeht. Abhilfe schafft ein selbst kompilierter Linux Kernel mit dem richtigen Patch. Dieser ist auf der oben verlinkten Tutorial Seite zu finden, oder auch [hier][19]. Wer sich die Mühe machen will, kann seinen eigenen Kernel nach [diesem Ausschnitt des Debian Kernel Handbook][20] selbst konfigurieren und kompilieren. Ich habe mir diese Mühe bereits gemacht, und [fertige .deb Pakete erstellt (18MB)][21], welche nur noch mittels diesem Befehl installiert werden müssen:
138
+
139
+<pre>
140
+dpkg -i linux-image-3.1.0-rc742_xy42_armel.deb
141
+</pre>
142
+
143
+Im /boot Verzeichnis des NAS findet sich nun der neue Kernel als "vmlinuz-3.1.0-rc742" und die neue Ramdisk als "initrd.img-3.1.0-rc742". Diese 2 Dateien müssen nun mittels mkimage in U-Boot Images verwandelt werden:
144
+
145
+<pre>
146
+mkimage -A arm -O linux -T kernel -C none -a 0x8000 -n Kernel -d vmlinuz-3.1.0-rc742 uImageN
147
+mkimage -A arm -O linux -T ramdisk -C gzip -a 0x8C800000 -n RamDisk -d initrd.img-3.1.0-rc742 uInitrdN
148
+</pre>
149
+
150
+Das erzeugt die Dateien uInitrdN und uImageN, welche gebootet werden müssen. Dazu neu starten und folgendes im U-Boot Prompt eingeben:
151
+
152
+<pre>
153
+setenv bootcmd_slk 'usb start; ext2load usb 0:1 0x01100000 /uInitrdN; ext2load usb 0:1 0x00800000 /uImageN'
154
+setenv arcNumber 3104
155
+saveenv
156
+</pre>
157
+
158
+Ausserdem wird die arcNumber auf die des NAS6210 gestellt, welche dem neuen Kernel bekannt ist. Falls du nicht auf einen USB-Stick installiert hast, musst du das SATA Kommando von oben entsprechend anpassen.
159
+
160
+Das wars! Nun kann beliebige Software installiert werden, um den Server für die eigenen Bedürfnisse anzupassen. Bei mir läuft folgendes:
161
+
162
+*   [Netatalk][22]
163
+*   Avahi als Zeroconf Implementation für Netatalk
164
+*   [Apache][23]
165
+*   [MySQL][24]
166
+*   [PHP][25]
167
+*   [forked-daapd][26]
168
+*   [CUPS][27]
169
+*   [Webmin][28]
170
+*   [Transmission für Torrents][29]
171
+
172
+## Power Button nutzen
173
+
174
+Per E-Mail hat mich Waepu auf seinen Weg aufmerksam gemacht, den Power Button nutzbar zu machen. Dafür muss ein neuer Kernel kompiliert werden. Neben dem oben verlinkten Patch muss folgende kleine Änderung angewendet werden:
175
+
176
+<pre class="sh_c">
177
+static unsigned int nas6210_mpp_config[] __initdata = {
178
+  MPP0_NF_IO2,
179
+  MPP1_NF_IO3,
180
+  MPP2_NF_IO4,
181
+  MPP3_NF_IO5,
182
+  MPP4_NF_IO6,
183
+  MPP5_NF_IO7,
184
+  MPP18_NF_IO0,
185
+  MPP19_NF_IO1,
186
+
187
+  MPP20_SATA1_ACTn,    /* HD1 LED red */
188
+  MPP21_SATA0_ACTn,    /* HD0 LED red */
189
+  MPP22_GPIO,    /* Power LED red */
190
+  MPP23_GPIO,    /* Power button */
191
+
192
+  MPP24_GPIO,    /* Power off device */
193
+  MPP25_GPIO,    /* Power LED green */
194
+  MPP27_GPIO,    /* USB transfer LED */
195
+  MPP28_GPIO,    /* Reset button */
196
+  MPP29_GPIO,    /* USB Copy button */
197
+  0
198
+};
199
+</pre>
200
+
201
+Erst wenn im Struct MPP23_GPIO hinzugefügt wird, funktioniert folgendes Bash Script.
202
+
203
+<pre class="sh_sh">
204
+#!/bin/sh
205
+echo 23 > /sys/class/gpio/export
206
+while : ; do
207
+  s=`cat /sys/class/gpio/gpio23/value`
208
+  if test "$s" == 0 ; then
209
+    shutdown -h now
210
+    exit 0
211
+  fi
212
+  sleep 1
213
+done
214
+</pre>
215
+
216
+Der Button auf MPP23\_GPIO hat eine Art Flip-Flop Funktion. Wenn man den Button für ein paar Sekunden hält, ändert sich der Status von MPP23\_GPIO und bleibt so bis zum Reboot.
217
+
218
+Ersetzt man im Kernel MPP20\_SATA1\_ACTn und MPP21\_SATA0\_ACTn durch MPP20\_GPIO und MPP21\_GPIO können per Bash auch die HDD LEDs angesteuert werden. Dann funktioniert jedoch die Anzeige der Festplattenaktivität nicht mehr.
219
+
220
+Vielen Dank an Waepu hierfür!
221
+
222
+ [1]: http://forum.nas-portal.org/showthread.php?12855-Ib-nas6220-b&p=55718&viewfull=1#post55718
223
+ [2]: http://www.amazon.de/gp/product/B003DODPGG/ref=as_li_qf_sp_asin_tl?ie=UTF8&tag=xythobuzorg-21&linkCode=as2&camp=1638&creative=6742&creativeASIN=B003DODPGG
224
+ [3]: http://de.wikipedia.org/wiki/Apple_Filing_Protocol
225
+ [4]: http://de.wikipedia.org/wiki/Digital_Audio_Access_Protocol
226
+ [5]: http://de.wikipedia.org/wiki/SheevaPlug
227
+ [6]: http://open-rd.org/
228
+ [7]: http://sourceforge.net/projects/u-boot/
229
+ [8]: http://simon.baatz.info/raidsonic-icy-box-ib-nas6210-my-new-sheevaplug/
230
+ [9]: ssop28.de.html
231
+ [10]: img/ft232plansmall.jpg
232
+ [11]: img/ft232plan.jpg
233
+ [12]: img/ft232fertigsmall.jpg
234
+ [13]: img/ft232fertig.jpg
235
+ [14]: http://schimana.net/2008/03/it/tftp-server-fuer-mac-os-x/
236
+ [15]: http://ftp.debian.org/debian/dists/stable/main/installer-armel/current/images/kirkwood/netboot/marvell/openrd/uImage
237
+ [16]: http://ftp.debian.org/debian/dists/stable/main/installer-armel/current/images/kirkwood/netboot/marvell/openrd/uInitrd
238
+ [17]: http://ftp.debian.org/debian/dists/stable/main/installer-armel/current/images/kirkwood/netboot/marvell/openrd/
239
+ [18]: http://www.debian.org/releases/stable/armel/
240
+ [19]: http://simon.baatz.info/downloads/linux-3.1-rc9.nas6210.patch
241
+ [20]: http://kernel-handbook.alioth.debian.org/ch-common-tasks.html
242
+ [21]: files/linuxnas.zip
243
+ [22]: http://netatalk.sourceforge.net/
244
+ [23]: http://httpd.apache.org/
245
+ [24]: http://www.mysql.de/
246
+ [25]: http://www.php.net/
247
+ [26]: https://github.com/jasonmc/forked-daapd
248
+ [27]: http://www.cups.org/
249
+ [28]: http://www.webmin.com/
250
+ [29]: http://www.transmissionbt.com/

+ 47
- 0
input/projects/serialdebug.md View File

@@ -0,0 +1,47 @@
1
+title: Serial Debug
2
+title_de: Serial Debug
3
+description: Displaying incoming UART characters on a 8x5 LED Matrix with an ATTiny2313
4
+menu-position: 30
5
+comments: true
6
+flattr: true
7
+funny: mildly useful
8
+compat: serialdebug
9
+twitter: xythobuz
10
+reddit: true
11
+---
12
+
13
+# {{ page.title }}
14
+
15
+A 8x5 LED Matrix controlled by an AtTiny2313 which communicates via a FT232R with a PC. Received characters are displayed by the matrix. This is useful for debugging serial applications.
16
+
17
+[![Photo][1]][2]
18
+[![Schematics][3]][4]
19
+
20
+<iframe width="420" height="315" src="http://www.youtube.com/embed/WMnwJV9WJf8" frameborder="0" allowfullscreen></iframe>
21
+
22
+[Download sourcecode and hex file (9kB)][5]
23
+
24
+ [1]: img/serialdebug_small.jpg
25
+ [2]: img/serialdebug.jpg
26
+ [3]: img/serialdebug_sch_small.jpg
27
+ [4]: img/serialdebug_sch.jpg
28
+ [5]: files/SerialDebug.zip
29
+
30
+lang: de
31
+
32
+# {{ page.title_de }}
33
+
34
+Eine 8x5 LED Matrix an einem AtTiny2313, welcher über einen FT232R mit einem Computer kommuniziert. Empfangene Zeichen werden auf der LED Matrix angezeigt. Dies ist hilfreich beim Debuggen von Computerprogrammen, welche mit einer seriellen Schnittstelle kommunizieren.
35
+
36
+[![Photo][1]][2]
37
+[![Schematics][3]][4]
38
+
39
+<iframe width="420" height="315" src="http://www.youtube.com/embed/WMnwJV9WJf8" frameborder="0" allowfullscreen></iframe>
40
+
41
+[Download Sourcecode und Hex Datei (9kB)][5]
42
+
43
+ [1]: img/serialdebug_small.jpg
44
+ [2]: img/serialdebug.jpg
45
+ [3]: img/serialdebug_sch_small.jpg
46
+ [4]: img/serialdebug_sch.jpg
47
+ [5]: files/SerialDebug.zip

+ 83
- 0
input/projects/serialhelper.md View File

@@ -0,0 +1,83 @@
1
+title: Serial Helper
2
+title_de: Serial Helper
3
+description: Reading and Writing a Serial Port from the Command Line
4
+menu-position: 70
5
+comments: true
6
+flattr: true
7
+github: https://github.com/xythobuz/SerialHelper
8
+compat: serialhelper
9
+twitter: xythobuz
10
+reddit: true
11
+---
12
+
13
+# {{ page.title }}
14
+
15
+SerialHelper is a Cross-Platform (Windows, Unix systems) Command Line Utility allowing read and write access to serial ports. Additionally, it can list the available serial ports.
16
+
17
+[Github Repository][1]
18
+
19
+[Download newest source][2]
20
+
21
+[Windows Binary (Version 0.5)][3]
22
+
23
+<pre>
24
+SerialHelper for Unix version 0.5
25
+This utility allows you to send or recieve data to and from a serial port.
26
+You can also get a list of available serial ports.
27
+It is meant to be used as a tool to allow programs written in other languages access to serial ports.
28
+
29
+Getting a list of serial ports:
30
+  serialHelperUnix -s [SearchTerm]
31
+Default Search Term: "tty" or "tty." on a Mac
32
+
33
+Sending data to a serial port:
34
+  serialHelperUnix -t "serial port" "Data to send..."
35
+  serialHelperUnix -tf "serial port" /file/to/send
36
+
37
+Recieving data from a serial port:
38
+  serialHelperUnix -r "serial port" length
39
+
40
+Terminal Mode (send stdin and recieve to stdout):
41
+  serialHelperUnix -rw port
42
+</pre>
43
+
44
+ [1]: https://github.com/xythobuz/SerialHelper
45
+ [2]: https://github.com/xythobuz/SerialHelper/zipball/master
46
+ [3]: files/serialHelperWin-0.5.exe
47
+
48
+lang: de
49
+
50
+# {{ page.title_de }}
51
+
52
+SerialHelper ist ein Cross Plattform (Windows, Unix Systeme) Kommandozeilen Programm welches den Zugriff auf serielle Ports ermöglicht. Ausserdem können vorhandene serielle Ports aufgelistet werden.
53
+
54
+[Github Repository][1]
55
+
56
+[Download aktuellster Sourcecode][2]
57
+
58
+[Windows Binary (Version 0.5)][3]
59
+
60
+<pre>
61
+SerialHelper for Unix version 0.5
62
+This utility allows you to send or recieve data to and from a serial port.
63
+You can also get a list of available serial ports.
64
+It is meant to be used as a tool to allow programs written in other languages access to serial ports.
65
+
66
+Getting a list of serial ports:
67
+  serialHelperUnix -s [SearchTerm]
68
+Default Search Term: "tty" or "tty." on a Mac
69
+
70
+Sending data to a serial port:
71
+  serialHelperUnix -t "serial port" "Data to send..."
72
+  serialHelperUnix -tf "serial port" /file/to/send
73
+
74
+Recieving data from a serial port:
75
+  serialHelperUnix -r "serial port" length
76
+
77
+Terminal Mode (send stdin and recieve to stdout):
78
+  serialHelperUnix -rw port
79
+</pre>
80
+
81
+ [1]: https://github.com/xythobuz/SerialHelper
82
+ [2]: https://github.com/xythobuz/SerialHelper/zipball/master
83
+ [3]: files/serialHelperWin-0.5.exe

+ 34
- 0
input/projects/ssop28.md View File

@@ -0,0 +1,34 @@
1
+title: SSOP28 - DIL Adapter
2
+title_de: SSOP28 - DIL Adapter
3
+description: SSOP28 to DIL Adapter with EAGLE board file
4
+menu-position: 40
5
+comments: true
6
+flattr: true
7
+compat: ssop28
8
+twitter: xythobuz
9
+reddit: true
10
+---
11
+
12
+# {{ page.title }}
13
+
14
+This is a small PCB to use a SSOP28 SMT IC in a Breadboard or similar with 1" (2,54mm) pin-distance:
15
+
16
+![Layout][1]
17
+
18
+[Eagle brd File][2]
19
+
20
+ [1]: /img/ssop28.png
21
+ [2]: /files/ssop28.brd
22
+
23
+lang: de
24
+
25
+# {{ page.title_de }}
26
+
27
+Hier das Layout eines SSOP28 - DIL Adapters:
28
+
29
+![Layout][1]
30
+
31
+[Eagle brd File][2]
32
+
33
+ [1]: /img/ssop28.png
34
+ [2]: /files/ssop28.brd

+ 228
- 0
input/projects/ultimatenotifier.md View File

@@ -0,0 +1,228 @@
1
+title: Ultimate Notifier Script
2
+title_de: Ultimate Notifier Script
3
+description: Sending Push Notifications to an iPhone from a Bash Script
4
+menu-position: 65
5
+comments: true
6
+flattr: true
7
+compat: notifier
8
+twitter: xythobuz
9
+reddit: true
10
+---
11
+
12
+# {{ page.title }}
13
+
14
+The service [Ultimate Notifier][1] allows you to send Push-Notification to your iPhone easily. Based on this, you can write shell scripts that are executed regularly via cron. This could inform you about a changed public IP. To do this, save this script somewhere:
15
+
16
+<pre class="sh_sh">
17
+#!/bin/sh
18
+
19
+ipfile=".currentip"
20
+service="ifconfig.me"
21
+user="username"
22
+pass="password"
23
+message="IP:"
24
+
25
+ip=`curl -s $service`
26
+touch $ipfile
27
+lastip=`cat $ipfile`
28
+if [ "$ip" != "$lastip" ]; then
29
+    echo "New public IP. Sending notification!"
30
+    curl -s "https://www.ultimatenotifier.com/items/User/send/${user}/message=${message}%20${ip}/password=${pass}"
31
+fi
32
+cp /dev/null $ipfile
33
+echo $ip > $ipfile
34
+</pre>
35
+
36
+It gets the current public IP via [ifconfig.me][2] and compares it to the IP stored in a file named .currentip. If they differ, a Push-Notification will be sent and the new IP stored.
37
+
38
+With the command
39
+
40
+<pre>crontab -e</pre>
41
+
42
+>You can add a cronfile entry. To execute the script every 30 minutes, use this:
43
+
44
+<pre>*/30 * * * * /Users/anon/bin/ipnotify.sh</pre>
45
+
46
+You can find the code on [GitHub][3], too!
47
+
48
+Of course, you can extend this principle. This script is called every 5 minutes on my server to notify me about eventual problems.
49
+
50
+<pre class="sh_sh">
51
+#!/bin/bash
52
+
53
+# Checks for Health of Server and sends notifications to iPhone in case of error
54
+# Checks for:
55
+# -	HDD Temperature
56
+# -	HDD Space
57
+# -	CPU Usage
58
+# Sends a notification via UltimateNotifier
59
+# Depends on bash, wget, hddtemp, grep, awk, sed, ps, sort and head.
60
+
61
+# ------------------------------
62
+# ------------------------------
63
+
64
+# Your UltimateNotifier Password
65
+UNUsername="YourUserName"
66
+UNPassword="YourPassWord"
67
+
68
+# Check for free space
69
+hddMountPoint="bay" # greps for this in mounted hdds
70
+maxPercentFull=75 # minimum percentage to send notification
71
+
72
+# Check for CPU Usage of processes
73
+maxCpuUsage=750 # Is in tenths of a percent (420 => 42%)
74
+
75
+# Checks hdd temperature
76
+# Depends on hddtemp tool
77
+hddDevice="/dev/sda"
78
+maxHddTemp=50
79
+
80
+# ------------------------------
81
+# ------------------------------
82
+
83
+# Set $message to your Message and then call this...
84
+function sendNotification {
85
+	wget "https://www.ultimatenotifier.com/items/User/send/${UNUsername}/message=${message}/password=${UNPassword}" -O /dev/null -q
86
+	echo "$message"
87
+}
88
+
89
+# ------------------------------
90
+# ------------------------------
91
+
92
+# Check for hdd temperature
93
+hddTemp=`/usr/sbin/hddtemp ${hddDevice} | awk '{print $4}' | awk -F '°' '{print $1}'`
94
+if [ $hddTemp -gt $maxHddTemp ]; then
95
+	message="Marvin's HDD has reached ${hddTemp}°C!"
96
+	sendNotification
97
+fi
98
+
99
+# Check for free space on hdd
100
+spaceUsed=`df -h | grep ${hddMountPoint} | awk '{print $5}' | sed 's/%//'`
101
+if [ $spaceUsed -gt $maxPercentFull ]; then
102
+	message="Marvin's HDD is ${spaceUsed}% full!"
103
+	sendNotification
104
+fi
105
+
106
+# Check for most cpu intensive process, report if usage too high
107
+processName=`ps -e -o cp,args | sed -e 's/^[ \\t]*//' | awk -F " " '{print $1, $2}' | sed -e '1d' | sort -rn | head -1 | awk '{print $2}'`
108
+processUsage=`ps -e -o cp,args | sed -e 's/^[ \\t]*//' | awk -F " " '{print $1, $2}' | sed -e '1d' | sort -rn | head -1 | awk '{print $1}'`
109
+if [ $processUsage -gt $maxCpuUsage ]; then
110
+	processUsage=`echo "${processUsage} / 10.0" | bc -q`
111
+	message="${processName} needs ${processUsage}% CPU!"
112
+	sendNotification
113
+fi
114
+</pre>
115
+
116
+ [1]: http://ultimatenotifier.com
117
+ [2]: http://ifconfig.me
118
+ [3]: https://github.com/xythobuz/Snippets/blob/master/ipnotify.sh
119
+
120
+lang: de
121
+
122
+# {{ page.title_de }}
123
+
124
+Der Dienst [Ultimate Notifier][1] erlaubt es relativ problemlos, zum Beispiel mittels curl Push-Notifications an ein iPhone zu senden. Darauf basierend können Shell Skripte geschrieben werden, welche regelmäßig als Cron-Job gestartet werden. So kann man sich zum Beispiel über eine geänderte Public IP informieren lassen. Dafür muss dieses Skript irgendwo gespeichert werden:
125
+
126
+<pre class="sh_sh">
127
+#!/bin/sh
128
+
129
+ipfile=".currentip"
130
+service="ifconfig.me"
131
+user="username"
132
+pass="password"
133
+message="IP:"
134
+
135
+ip=`curl -s $service`
136
+touch $ipfile
137
+lastip=`cat $ipfile`
138
+if [ "$ip" != "$lastip" ]; then
139
+    echo "New public IP. Sending notification!"
140
+    curl -s "https://www.ultimatenotifier.com/items/User/send/${user}/message=${message}%20${ip}/password=${pass}"
141
+fi
142
+cp /dev/null $ipfile
143
+echo $ip > $ipfile
144
+</pre>
145
+
146
+Es liest die aktuelle öffentliche IP mittels curl vom Dienst [ifconfig.me][2] aus und vergleicht diese mit der zwischengespeicherten IP in einer Datei namens .currentip. Unterscheiden sich die IPs, wird eine Push Notification gesendet und die neue IP gespeichert.
147
+
148
+Mit dem Befehl
149
+
150
+<pre>crontab -e</pre>
151
+
152
+Kann ein Eintrag ins cronfile hinzugefügt werden, sodass das Skript regelmäßig gestartet wird. Ein Beispiel, für 30 Minuten:
153
+
154
+<pre>*/30 * * * * /Users/anon/bin/ipnotify.sh</pre>
155
+
156
+Der Code findet sich auch auf [GitHub][3].
157
+
158
+Natürlich kann dieses Prinzip beliebig erweitert werden. Dieses Bash Skript wird auf meinem Server alle 5 Minuten von cron gestartet und berichtet über eventuelle Probleme.
159
+
160
+<pre class="sh_sh">
161
+#!/bin/bash
162
+
163
+# Checks for Health of Server and sends notifications to iPhone in case of error
164
+# Checks for:
165
+# - HDD Temperature
166
+# - HDD Space
167
+# - CPU Usage
168
+# Sends a notification via UltimateNotifier
169
+# Depends on bash, wget, hddtemp, grep, awk, sed, ps, sort and head.
170
+
171
+# ------------------------------
172
+# ------------------------------
173
+
174
+# Your UltimateNotifier Password
175
+UNUsername="YourUserName"
176
+UNPassword="YourPassWord"
177
+
178
+# Check for free space
179
+hddMountPoint="bay" # greps for this in mounted hdds
180
+maxPercentFull=75 # minimum percentage to send notification
181
+
182
+# Check for CPU Usage of processes
183
+maxCpuUsage=750 # Is in tenths of a percent (420 => 42%)
184
+
185
+# Checks hdd temperature
186
+# Depends on hddtemp tool
187
+hddDevice="/dev/sda"
188
+maxHddTemp=50
189
+
190
+# ------------------------------
191
+# ------------------------------
192
+
193
+# Set $message to your Message and then call this...
194
+function sendNotification {
195
+  wget "https://www.ultimatenotifier.com/items/User/send/${UNUsername}/message=${message}/password=${UNPassword}" -O /dev/null -q
196
+  echo "$message"
197
+}
198
+
199
+# ------------------------------
200
+# ------------------------------
201
+
202
+# Check for hdd temperature
203
+hddTemp=`/usr/sbin/hddtemp ${hddDevice} | awk '{print $4}' | awk -F '°' '{print $1}'`
204
+if [ $hddTemp -gt $maxHddTemp ]; then
205
+  message="Marvin's HDD has reached ${hddTemp}°C!"
206
+  sendNotification
207
+fi
208
+
209
+# Check for free space on hdd
210
+spaceUsed=`df -h | grep ${hddMountPoint} | awk '{print $5}' | sed 's/%//'`
211
+if [ $spaceUsed -gt $maxPercentFull ]; then
212
+  message="Marvin's HDD is ${spaceUsed}% full!"
213
+  sendNotification
214
+fi
215
+
216
+# Check for most cpu intensive process, report if usage too high
217
+processName=`ps -e -o cp,args | sed -e 's/^[ \\t]*//' | awk -F " " '{print $1, $2}' | sed -e '1d' | sort -rn | head -1 | awk '{print $2}'`
218
+processUsage=`ps -e -o cp,args | sed -e 's/^[ \\t]*//' | awk -F " " '{print $1, $2}' | sed -e '1d' | sort -rn | head -1 | awk '{print $1}'`
219
+if [ $processUsage -gt $maxCpuUsage ]; then
220
+  processUsage=`echo "${processUsage} / 10.0" | bc -q`
221
+  message="${processName} needs ${processUsage}% CPU!"
222
+  sendNotification
223
+fi
224
+</pre>
225
+
226
+ [1]: http://ultimatenotifier.com/
227
+ [2]: http://ifconfig.me
228
+ [3]: https://github.com/xythobuz/Snippets/blob/master/ipnotify.sh

+ 94
- 0
input/projects/xyrobot/bluetooth.md View File

@@ -0,0 +1,94 @@
1
+title: Bluetooth UART (BTM-222)
2
+title_de: Bluetooth UART (BTM-222)
3
+description: PCB for the BTM-222 and 5V level converters
4
+menu-position: 46
5
+comments: true
6
+flattr: true
7
+compat: bt
8
+twitter: xythobuz
9
+reddit: true
10
+---
11
+
12
+# {{ page.title }}
13
+
14
+Here's the Layout of a BTM-222 Bluetooth PCB, following the [Roboternetz Guidelines Mini Format][1]. The circuit comes from [Robotfreak][2], but is basically the minimal circuit described in the [datasheet (370kB)][3].
15
+
16
+[![PCB Top][4]][5]
17
+[![PCB Bottom][6]][7]
18
+[![Circuit diagram][8]][9]
19
+[![Layout][10]][11]
20
+
21
+[Layout and Circuit Diagram as Eagle files (54kB)][12].
22
+
23
+<table border="1">
24
+  <tr><th>ID</th><th>Value</th><th>Shop</th></tr>
25
+  <tr><td>R1</td><td>200k Ohm</td><td>-</td></tr>
26
+  <tr><td>R2</td><td>5k Ohm Poti</td><td><a href="http://www.conrad.de/ce/de/product/430722/">Conrad</a></td></tr>
27
+  <tr><td>R3 - R10</td><td>1k Ohm</td><td>-</td></tr>
28
+  <tr><td>Q1 - Q4</td><td>BC547 NPN</td><td><a href="http://www.conrad.de/ce/de/product/155012/">Conrad</a></td></tr>
29
+  <tr><td>IC1</td><td>LM317(LZ)</td><td><a href="http://www.conrad.de/ce/de/product/155585/">Conrad</a></td></tr>
30
+  <tr><td>IC2</td><td>BTM 222</td><td><a href="http://shop.ulrichradig.de/aktive-Bauelemente/Module/Bluetooth-Module-BTM222.html">Ulrich Radig</a></td></tr>
31
+  <tr><td>LED 1+2</td><td>LED 5mm</td><td>-</td></tr>
32
+</table>
33
+
34
+Soldering the standard parts should be no problem. You should use a find soldering iron to connect each pin of the BTM-222, one after another. A 31mm long piece of wire can be used as antenna.
35
+
36
+## Interfacing the BTM-222
37
+
38
+Before using the BTM-222 you have to configure it. You can change the speed, data format, name, PIN and some other things. You have to connect the hardware serial interface of the BTM-222 to a PC and issue the AT-Commands documented in the datasheet. It is very important to use only '\r' as Line-End-Character. Using '\n' or "\r\n" will result in error messages from the module.
39
+
40
+ [1]: http://www.rn-wissen.de/index.php/RN-Definitionen
41
+ [2]: http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44
42
+ [3]: files/btm222.pdf
43
+ [4]: img/BT_Top_small.jpg
44
+ [5]: img/BT_Top.jpg
45
+ [6]: img/BT_Bot_small.jpg
46
+ [7]: img/BT_Bot.jpg
47
+ [8]: img/bt_plan_small.png
48
+ [9]: img/bt_plan.png
49
+ [10]: img/BT_Layout_small.png
50
+ [11]: img/BT_Layout.png
51
+ [12]: files/bluetooth.zip
52
+
53
+lang: de
54
+
55
+# {{ page.title_de }}
56
+
57
+Hier das Layout einer Adapterplatine für den BTM-222 Bluetooth IC im [Roboternetz Mini Format][1]. Die Schaltung stammt von [Robotfreak][2], entspricht aber im Prinzip der Minimalbeschaltung aus dem [Datenblatt][3].
58
+
59
+[![Platine oben][4]][5]
60
+[![Platine unten][6]][7]
61
+[![Schaltplan][8]][9]
62
+[![Layout][10]][11]
63
+
64
+[Layout und Schaltplan als Eagle Dateien][12].
65
+
66
+<table border="1">
67
+  <tr><th>ID</th><th>Wert</th><th>Shop</th></tr>
68
+  <tr><td>R1</td><td>200k Ohm</td><td>-</td></tr>
69
+  <tr><td>R2</td><td>5k Ohm Poti</td><td><a href="http://www.conrad.de/ce/de/product/430722/">Conrad</a></td></tr>
70
+  <tr><td>R3 - R10</td><td>1k Ohm</td><td>-</td></tr>
71
+  <tr><td>Q1 - Q4</td><td>BC547 NPN</td><td><a href="http://www.conrad.de/ce/de/product/155012/">Conrad</a></td></tr>
72
+  <tr><td>IC1</td><td>LM317(LZ)</td><td><a href="http://www.conrad.de/ce/de/product/155585/">Conrad</a></td></tr>
73
+  <tr><td>IC2</td><td>BTM 222</td><td><a href="http://shop.ulrichradig.de/aktive-Bauelemente/Module/Bluetooth-Module-BTM222.html">Ulrich Radig</a></td></tr>
74
+  <tr><td>LED 1+2</td><td>LED 5mm</td><td>-</td></tr>
75
+</table>
76
+
77
+Das löten der Standard-Bauteile sollte kein Problem darstellen. Beim BTM-222 empfiehlt es sich, mit einem feinen Lötkolben jeden Pin einzeln anzulöten. Als Antenne kann ein 3,1cm langer Draht verwendet werden.
78
+
79
+## Ansteuerung des BTM-222
80
+
81
+Vor der ersten Verwendung muss das BTM-222 Modul konfiguriert werden. Dort werden Geschwindigkeit, Format, Name, PIN und weitere Einstellungen getroffen. Dabei muss das Modul per Hardware-Schnittstelle an einen Computer angeschlossen werden. Nun können die im Datenblatt dokumentierten AT Befehle eingegeben werden. Sehr wichtig hierbei ist, dass das Modul als Zeilenendzeichen nur '\r' erwartet. Wird '\n' oder "\r\n" verwendet quittiert das Modul jegliche Eingabe mit Error.
82
+
83
+ [1]: http://www.rn-wissen.de/index.php/RN-Definitionen
84
+ [2]: http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44
85
+ [3]: files/btm222.pdf
86
+ [4]: img/BT_Top_small.jpg
87
+ [5]: img/BT_Top.jpg
88
+ [6]: img/BT_Bot_small.jpg
89
+ [7]: img/BT_Bot.jpg
90
+ [8]: img/bt_plan_small.png
91
+ [9]: img/bt_plan.png
92
+ [10]: img/BT_Layout_small.png
93
+ [11]: img/BT_Layout.png
94
+ [12]: files/bluetooth.zip

+ 47
- 0
input/projects/xyrobot/k6x4008.md View File

@@ -0,0 +1,47 @@
1
+title: K6x4008 SRAM
2
+title_de: K6x4008 SRAM
3
+description: Connecting an K6x4008 SRAM to an ATmega2560
4
+menu-position: 47
5
+comments: true
6
+flattr: true
7
+github: https://github.com/xythobuz/xyRobot/blob/master/lib/mem.c
8
+compat: sram
9
+twitter: xythobuz
10
+reddit: true
11
+---
12
+
13
+# {{ page.title }}
14
+
15
+[![Photo 1][1]][2]
16
+
17
+My xyRobot uses a [K6x4008 512K SRAM][3] to store pictures from it's Gameboy Camera. It is accessed via two shift registers, saving some pins. You still need two full byte ports to access the RAM.
18
+
19
+[![Schematic][4]][5]
20
+
21
+[Code in the xyRobot GitHub repository][6]
22
+
23
+ [1]: img/ram_small.jpg
24
+ [2]: img/ram.jpg
25
+ [3]: http://www.reichelt.de/Drams-Srams/628512-55/3//index.html?ACTION=3&GROUPID=2954&ARTICLE=40088&SHOW=1&START=0&OFFSET=500&
26
+ [4]: img/ram_small.png
27
+ [5]: img/ram.png
28
+ [6]: https://github.com/xythobuz/xyRobot/blob/master/lib/mem.c
29
+
30
+lang: de
31
+
32
+# {{ page.title_de }}
33
+
34
+[![Photo 1][1]][2]
35
+
36
+Der [K6x4008 512K SRAM][3] dient meinem xyRobot als Zwischenspeicher für Bilder der Gameboy Kamera. Die Ansteuerung findet relativ pinsparend über zwei Schieberegister (74xx573) statt. Dennoch werden zwei komplette Byteports benötigt.
37
+
38
+[![Schematic][4]][5]
39
+
40
+[Dazugehöriger Code im xyRobot GitHub Repository][6]
41
+
42
+ [1]: img/ram_small.jpg
43
+ [2]: img/ram.jpg
44
+ [3]: http://www.reichelt.de/Drams-Srams/628512-55/3//index.html?ACTION=3&GROUPID=2954&ARTICLE=40088&SHOW=1&START=0&OFFSET=500&
45
+ [4]: img/ram_small.png
46
+ [5]: img/ram.png
47
+ [6]: https://github.com/xythobuz/xyRobot/blob/master/lib/mem.c

+ 39
- 0
input/projects/xyrobot/rremote.md View File

@@ -0,0 +1,39 @@
1
+title: rRemote
2
+title_de: rRemote
3
+description: Remote Control Casio FX9860-GII Calculator AddIn
4
+menu-position: 49
5
+comments: true
6
+flattr: true
7
+compat: rrem
8
+twitter: xythobuz
9
+reddit: true
10
+---
11
+
12
+# {{ page.title }}
13
+
14
+rRemote is a addin for Casio fx9860G calculators written in C. It allows you to send data over the 3-Pin serial port.
15
+
16
+You can download the whole project for the [official Casio SDK (get it for free from Casio)][1]. You can change the serial port parameters in the source code.
17
+
18
+The project [fxSDK][2] has helped me a lot. You can find documentation about the unofficial syscalls for the serial port there!
19
+
20
+## [Download: rremote.zip (77kB)][3]
21
+
22
+ [1]: http://edu.casio.com/products/sdk/9860sdk.html
23
+ [2]: http://sourceforge.net/apps/trac/fxsdk
24
+ [3]: files/rremote.zip
25
+
26
+lang: de
27
+
28
+# {{ page.title_de }}
29
+
30
+rRemote ist ein Addin für Casio fx9860G-Serie Taschenrechner. Es ermöglicht die serielle Kommunikation mit beliebigen Geräten über den 3-Pin Anschluss.
31
+Zum Download wird das gesamte Projekt für das [offizielle Casio SDK angeboten. Dieses kann kostenlos von Casio bezogen werden][1]. Die Parameter für die serielle Schnittstelle können im Quellcode geändert werden, genauso wie die Daten die gesendet werden sollen. Das sollte mit passablen C Kentnissen möglich sein.
32
+
33
+Eine große Hilfe war das Projekt [fxSDK][2]. Dort werden die nicht offiziell nutzbaren Syscalls dokumentiert, welche zur Ansteuerung der seriellen Schnittstelle notwendig sind.
34
+
35
+## [Download: rremote.zip (77kB)][3]
36
+
37
+ [1]: http://edu.casio.com/products/sdk/9860sdk.html
38
+ [2]: http://sourceforge.net/apps/trac/fxsdk
39
+ [3]: files/rremote.zip

+ 125
- 0
input/projects/xyrobot/xyrobot.md View File

@@ -0,0 +1,125 @@
1
+title: xyRobot
2
+title_de: xyRobot
3
+description: ATMega2560 robotics platform with Gameboy Camera
4
+menu-position: 45
5
+comments: true
6
+flattr: true
7
+github: https://github.com/xythobuz/xyRobot
8
+compat: rob
9
+twitter: xythobuz
10
+reddit: true
11
+---
12
+
13
+# {{ page.title }}
14
+
15
+This is my robot project. A self-made PCB with an AtMega2560 controls everything. The robot has a [Bluetooth module][1], a [Gameboy Camera][2] and my [RAM module][3]. I bought the [RN-KeyLCD][4] and the [RN-VN2][5] from [Roboternetz][6].
16
+
17
+The current software as well as Eagle files of the PCB are on [GitHub][7].
18
+
19
+Now some pictures:
20
+
21
+[![Foto 5][8]][9]
22
+[![Foto 6][10]][11]
23
+[![Foto 7][12]][13]
24
+[![Foto 8][14]][15]
25
+[![Foto 9][16]][17]
26
+[![Foto 10][18]][19]
27
+[![Foto 1][20]][21]
28
+[![Foto 2][22]][23]
29
+[![Foto 3][24]][25]
30
+[![Foto 4][26]][27]
31
+[![Foto 11][28]][29]
32
+[![Foto 12][30]][31]
33
+[![Foto 13][32]][33]
34
+
35
+ [1]: bluetooth.html
36
+ [2]: http://www.angelfire.com/de3/juliprograms/amr/gbcam.htm
37
+ [3]: k6x4008.html
38
+ [4]: http://www.rn-wissen.de/index.php/RN-KeyLCD
39
+ [5]: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=112
40
+ [6]: http://www.roboternetz.de
41
+ [7]: https://github.com/xythobuz/xyRobot
42
+ [8]: img/rob5_small.jpg
43
+ [9]: img/rob5.jpg
44
+ [10]: img/rob6_small.jpg
45
+ [11]: img/rob6.jpg
46
+ [12]: img/rob7_small.jpg
47
+ [13]: img/rob7.jpg
48
+ [14]: img/rob8_small.jpg
49
+ [15]: img/rob8.jpg
50
+ [16]: img/rob9_small.jpg
51
+ [17]: img/rob9.jpg
52
+ [18]: img/rob10_small.jpg
53
+ [19]: img/rob10.jpg
54
+ [20]: img/rob1_small.jpg
55
+ [21]: img/rob1.jpg
56
+ [22]: img/rob2_small.jpg
57
+ [23]: img/rob2.jpg
58
+ [24]: img/rob3_small.jpg
59
+ [25]: img/rob3.jpg
60
+ [26]: img/rob4_small.jpg
61
+ [27]: img/rob4.jpg
62
+ [28]: img/rob_1_small.jpg
63
+ [29]: img/rob_1.jpg
64
+ [30]: img/Rob_Board_small.jpg
65
+ [31]: img/Rob_Board.jpg
66
+ [32]: img/roboter_platine.png
67
+ [33]: img/roboter_platine_big.png
68
+
69
+lang: de
70
+
71
+# {{ page.title_de }}
72
+
73
+Dies ist mein kleines Roboterprojekt. Eine eigene Platine mit einem AtMega2560 steuert den Roboter. Angeschlossen sind unter anderem mein [Bluetooth Modul][1], eine [Gameboy Kamera][2] und mein [RAM Modul][3]. Vom [Roboternetz][4] stammen das [RN-KeyLCD][5] und der [RN-VN2 Motortreiber][6].
74
+
75
+Die aktuelle Software sowie Eagle Dateien der Platine finden sich auf [GitHub][7].
76
+
77
+Hier nun einige Bilder meines Roboters:
78
+
79
+[![Foto 5][8]][9]
80
+[![Foto 6][10]][11]
81
+[![Foto 7][12]][13]
82
+[![Foto 8][14]][15]
83
+[![Foto 9][16]][17]
84
+[![Foto 10][18]][19]
85
+[![Foto 1][20]][21]
86
+[![Foto 2][22]][23]
87
+[![Foto 3][24]][25]
88
+[![Foto 4][26]][27]
89
+[![Foto 11][28]][29]
90
+[![Foto 12][30]][31]
91
+[![Foto 13][32]][33]
92
+
93
+ [1]: bluetooth.html
94
+ [2]: http://www.angelfire.com/de3/juliprograms/amr/gbcam.htm
95
+ [3]: k6x4008.html
96
+ [4]: http://www.rn-wissen.de/index.php/RN-KeyLCD
97
+ [5]: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=112
98
+ [6]: http://www.roboternetz.de
99
+ [7]: https://github.com/xythobuz/xyRobot
100
+ [8]: img/rob5_small.jpg
101
+ [9]: img/rob5.jpg
102
+ [10]: img/rob6_small.jpg
103
+ [11]: img/rob6.jpg
104
+ [12]: img/rob7_small.jpg
105
+ [13]: img/rob7.jpg
106
+ [14]: img/rob8_small.jpg
107
+ [15]: img/rob8.jpg
108
+ [16]: img/rob9_small.jpg
109
+ [17]: img/rob9.jpg
110
+ [18]: img/rob10_small.jpg
111
+ [19]: img/rob10.jpg
112
+ [20]: img/rob1_small.jpg
113
+ [21]: img/rob1.jpg
114
+ [22]: img/rob2_small.jpg
115
+ [23]: img/rob2.jpg
116
+ [24]: img/rob3_small.jpg
117
+ [25]: img/rob3.jpg
118
+ [26]: img/rob4_small.jpg
119
+ [27]: img/rob4.jpg
120
+ [28]: img/rob_1_small.jpg
121
+ [29]: img/rob_1.jpg
122
+ [30]: img/Rob_Board_small.jpg
123
+ [31]: img/Rob_Board.jpg
124
+ [32]: img/roboter_platine.png
125
+ [33]: img/roboter_platine_big.png

+ 67
- 0
input/projects/xyrobot/xyrobotremote.md View File

@@ -0,0 +1,67 @@
1
+title: xyRobotRemote
2
+title_de: xyRobotRemote
3
+description: Java Swing App to remote-control a robot
4
+menu-position: 48
5
+comments: true
6
+flattr: true
7
+github: https://github.com/xythobuz/xyRobot/tree/master/xyRobotRemote
8
+compat: xyrobotremote
9
+twitter: xythobuz
10
+reddit: true
11
+---
12
+
13
+# {{ page.title }}
14
+
15
+xyRobotRemote is a Cross-Platform Java GUI App. It controls the [xyRobot][1].
16
+
17
+[![New Screenshot][2]][3]
18
+[![Screenshot][4]][5]
19
+[![Pandora Screenshot 1][8]][9]
20
+[![Pandora Screenshot 2][10]][11]
21
+
22
+The source code is in the [xyRobot Github Repository][6].
23
+
24
+![Old Screenshot][7]
25
+
26
+That's what the GUI looked like earlier, when it was written as X11 App.
27
+
28
+ [1]: index.php?p=rob
29
+ [2]: img/xyremote_small.png
30
+ [3]: img/xyremote.png
31
+ [4]: img/GBCam2_small.png
32
+ [5]: img/GBCam2.png
33
+ [6]: https://github.com/xythobuz/xyRobot/tree/master/xyRobotRemote
34
+ [7]: img/GBCam.png
35
+ [8]: img/pan_small.png
36
+ [9]: img/pan.png
37
+ [10]: img/panWork_small.png
38
+ [11]: img/panWork.png
39
+
40
+lang: de
41
+
42
+# {{ page.title_de }}
43
+
44
+xyRobotRemote ist eine Cross-Plattform Java GUI App. Sie dient der Fernsteuerung des [xyRobot][1] Roboters.
45
+
46
+[![New Screenshot][2]][3]
47
+[![Screenshot][4]][5]
48
+[![Pandora Screenshot 1][8]][9]
49
+[![Pandora Screenshot 2][10]][11]
50
+
51
+Der Quellcode liegt im [xyRobot Github Repository][6].
52
+
53
+![Old Screenshot][7]
54
+
55
+So sah die GUI früher, als X11 App, aus.
56
+
57
+ [1]: index.php?p=rob
58
+ [2]: img/xyremote_small.png
59
+ [3]: img/xyremote.png
60
+ [4]: img/GBCam2_small.png
61
+ [5]: img/GBCam2.png
62
+ [6]: https://github.com/xythobuz/xyRobot/tree/master/xyRobotRemote
63
+ [7]: img/GBCam.png
64
+ [8]: img/pan_small.png
65
+ [9]: img/pan.png
66
+ [10]: img/panWork_small.png
67
+ [11]: img/panWork.png

+ 80
- 0
input/projects/yasab.md View File

@@ -0,0 +1,80 @@
1
+title: YASAB AVR Bootloader
2
+title_de: YASAB AVR Bootloader
3
+description: Yet another simple AVR Bootloader with Upload Software for Unix and Android.
4
+menu-position: 20
5
+comments: true
6
+flattr: true
7
+github: https://github.com/xythobuz/yasab
8
+compat: yasab
9
+twitter: xythobuz
10
+reddit: true
11
+---
12
+
13
+# YASAB - Yet another simple AVR Bootloader
14
+
15
+YASAB is a simple AVR Bootloader, written in C for the [AVR libc][1]. A PC Program sends the data to be programmed with a simple protocol via UART to the AVR. If the bootloader was compiled for the ATmega168, 128x or 256x, it will listen on both USART0 and USART1 for serial communication attempts. [The most recent source code can be found in the Github Repository][2]. The Upload software can easily be used in place of avrdude in makefiles.
16
+
17
+Another YASAB compatible Uploader implementation is in my [xyCopter Android App][3], using [Bluetooth][4].
18
+
19
+<pre>
20
+yasab /dev/tty.usbserial-A100QOUE test.hex q
21
+Hex File Path   : test.hex
22
+Minimum Address : 0x0
23
+Maximum Address : 0x61E2
24
+Data payload    : 25068 bytes
25
+
26
+Pinging bootloader... Stop with CTRL+C
27
+Got response... Acknowledging...
28
+Connection established successfully!
29
+Sending target address...
30
+Sending data length...
31
+100% (25068 / 25068) 195 page(s) written!
32
+
33
+Upload finished after 28.0 seconds.
34
+</pre>
35
+
36
+[![xyCopter Screenshot][5]][6]
37
+
38
+ [1]: http://www.nongnu.org/avr-libc/
39
+ [2]: https://github.com/xythobuz/yasab
40
+ [3]: https://github.com/xythobuz/xyControl/tree/master/tools/xyCopter
41
+ [4]: bluetooth.html
42
+ [5]: img/xyCopterFirmware_small.png
43
+ [6]: img/xyCopterFirmware.png
44
+
45
+lang: de
46
+
47
+# YASAB - Yet another simple AVR Bootloader
48
+
49
+YASAB ist ein einfacher AVR Bootloader, geschrieben in C für die [AVR libc][1]. Von einem PC-Programm aus werden die Daten über ein simples Protokoll per UART an den AVR gesendet. Wurde der Bootloader für den ATmega168, 128x oder 256x kompiliert, wird sowohl auf USART0 als auch auf USART1 Daten erwartet. [Der aktuellste Quellcode findet sich stets im Github Repository][2]. Die Upload Software kann einfach statt avrdude oder ähnlichem in makefiles eingebaut werden.
50
+
51
+Außerdem implementiert meine [Android App xyCopter][3] einen YASAB kompatiblen Uploader über [Bluetooth][4].
52
+
53
+<pre>
54
+yasab /dev/tty.usbserial-A100QOUE test.hex q
55
+Hex File Path   : test.hex
56
+Minimum Address : 0x0
57
+Maximum Address : 0x61E2
58
+Data payload    : 25068 bytes
59
+
60
+Pinging bootloader... Stop with CTRL+C
61
+Got response... Acknowledging...
62
+Connection established successfully!
63
+Sending target address...
64
+Sending data length...
65
+100% (25068 / 25068) 195 page(s) written!
66
+
67
+Upload finished after 28.0 seconds.
68
+</pre>
69
+
70
+[![xyCopter Screenshot][5]][6]
71
+
72
+ [1]: http://www.nongnu.org/avr-libc/
73
+ [2]: https://github.com/xythobuz/yasab
74
+ [3]: https://github.com/xythobuz/xyControl/tree/master/tools/xyCopter
75
+ [4]: bluetooth.html
76
+ [5]: img/xyCopterFirmware_small.png
77
+ [6]: img/xyCopterFirmware.png
78
+
79
+
80
+

+ 188
- 0
macros.py View File

@@ -0,0 +1,188 @@
1
+import re
2
+import itertools
3
+import email.utils
4
+import os.path
5
+import time
6
+from datetime import datetime
7
+
8
+DEFAULT_LANG = "en"
9
+BASE_URL = "http://www.xythobuz.org"
10
+
11
+# -----------------------------------------------------------------------------
12
+# preconvert hooks
13
+# -----------------------------------------------------------------------------
14
+
15
+def hook_preconvert_anotherlang():
16
+    MKD_PATT = r'\.(?:md|mkd|mdown|markdown)$'
17
+    _re_lang = re.compile(r'^[\s+]?lang[\s+]?[:=]((?:.|\n )*)', re.MULTILINE)
18
+    vpages = [] # Set of all virtual pages
19
+    for p in pages:
20
+        current_lang = DEFAULT_LANG # Default language
21
+        langs = [] # List of languages for the current page
22
+        page_vpages = {} # Set of virtual pages for the current page
23
+        text_lang = re.split(_re_lang, p.source)
24
+        text_grouped = dict(zip([current_lang,] + \
25
+                                        [lang.strip() for lang in text_lang[1::2]], \
26
+                                        text_lang[::2]))
27
+
28
+        for lang, text in text_grouped.iteritems():
29
+            spath = p.fname.split(os.path.sep)
30
+            langs.append(lang)
31
+            
32
+            if lang == "en":
33
+                filename = re.sub(MKD_PATT, "%s\g<0>" % "", p.fname).split(os.path.sep)[-1]
34
+            else:
35
+                filename = re.sub(MKD_PATT, ".%s\g<0>" % lang, p.fname).split(os.path.sep)[-1]
36
+
37
+            vp = Page(filename, virtual=text) 
38
+            # Copy real page attributes to the virtual page
39
+            for attr in p:
40
+                if not vp.has_key(attr):
41
+                    vp[attr] = p[attr]
42
+            # Define a title in the proper language
43
+            vp["title"] = p["title_%s" % lang] \
44
+                                    if p.has_key("title_%s" % lang) \
45
+                                    else p["title"]
46
+            # Keep track of the current lang of the virtual page
47
+            vp["lang"] = lang
48
+            # Fix post name if exists
49
+            if vp.has_key("post"):
50
+                if lang == "en":
51
+                    vp["post"] = vp["post"][:]
52
+                else:
53
+                    vp["post"] = vp["post"][:-len(lang) - 1]
54
+            page_vpages[lang] = vp
55
+            
56
+        # Each virtual page has to know about its sister vpages
57
+        for lang, vpage in page_vpages.iteritems():
58
+            vpage["lang_links"] = dict([(l, v["url"]) for l, v in page_vpages.iteritems()])
59
+            vpage["other_lang"] = langs # set other langs and link
60
+
61
+        vpages += page_vpages.values()
62
+
63
+    pages[:] = vpages
64
+
65
+
66
+
67
+_COMPAT = """        case "%s":
68
+            $loc = "%s/%s";
69
+            break;
70
+"""
71
+
72
+_COMPAT_404 = """        default:
73
+            $loc = "%s";
74
+            break;
75
+"""
76
+
77
+def hook_preconvert_compat():
78
+    fp = open(os.path.join(options.project, "output", "index.php"), 'w')
79
+    fp.write("<?\n")
80
+    fp.write("// Auto generated xyCMS compatibility index.php\n")
81
+    fp.write("$loc = 'index.de.html';\n")
82
+    fp.write("if (isset($_GET['p'])) {\n")
83
+    fp.write("    if (isset($_GET['lang'])) {\n")
84
+    fp.write("        $_GET['p'] .= EN;\n")
85
+    fp.write("    }\n")
86
+    fp.write("    switch($_GET['p']) {\n")
87
+    for p in pages:
88
+        if p.get("compat", "") != "":
89
+            tmp = p["compat"]
90
+            if p.get("lang", DEFAULT_LANG) == DEFAULT_LANG:
91
+                tmp = tmp + "EN"
92
+            fp.write(_COMPAT % (tmp, options.base_url.rstrip('/'), p.url))
93
+            fp.write("\n")
94
+    fp.write(_COMPAT_404 % "/404.html")
95
+    fp.write("    }\n")
96
+    fp.write("}\n")
97
+    fp.write("if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {\n")
98
+    fp.write("    if (php_sapi_name() == 'cgi') {\n")
99
+    fp.write("        header('Status: 303 See Other');\n")
100
+    fp.write("    } else {\n")
101
+    fp.write("        header('HTTP/1.1 303 See Other');\n")
102
+    fp.write("    }\n")
103
+    fp.write("}\n");
104
+    fp.write("header('Location: '.$loc);\n")
105
+    fp.write("?>")
106
+
107
+
108
+
109
+_SITEMAP = """<?xml version="1.0" encoding="UTF-8"?>
110
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
111
+%s
112
+</urlset>
113
+"""
114
+
115
+_SITEMAP_URL = """
116
+<url>
117
+    <loc>%s/%s</loc>
118
+    <lastmod>%s</lastmod>
119
+    <changefreq>%s</changefreq>
120
+    <priority>%s</priority>
121
+</url>
122
+"""
123
+
124
+def hook_preconvert_sitemap():
125
+    date = datetime.strftime(datetime.now(), "%Y-%m-%d")
126
+    urls = []
127
+    for p in pages:
128
+        urls.append(_SITEMAP_URL % (options.base_url.rstrip('/'), p.url, date, p.get("changefreq", "monthly"), p.get("priority", "0.5")))
129
+    fname = os.path.join(options.project, "output", "sitemap.xml")
130
+    fp = open(fname, 'w')
131
+    fp.write(_SITEMAP % "".join(urls))
132
+    fp.close()
133
+
134
+
135
+# -----------------------------------------------------------------------------
136
+# postconvert hooks
137
+# -----------------------------------------------------------------------------
138
+
139
+_RSS = """<?xml version="1.0"?>
140
+<rss version="2.0">
141
+<channel>
142
+<title>%s</title>
143
+<link>%s</link>
144
+<description>%s</description>
145
+<language>en-us</language>
146
+<pubDate>%s</pubDate>
147
+<lastBuildDate>%s</lastBuildDate>
148
+<docs>http://blogs.law.harvard.edu/tech/rss</docs>
149
+<generator>Poole</generator>
150
+%s
151
+</channel>
152
+</rss>
153
+"""
154
+
155
+_RSS_ITEM = """
156
+<item>
157
+    <title>%s</title>
158
+    <link>%s</link>
159
+    <description>%s</description>
160
+    <pubDate>%s</pubDate>
161
+    <guid>%s</guid>
162
+</item>
163
+"""
164
+
165
+def hook_postconvert_rss():
166
+    items = []
167
+    posts = [p for p in pages if "post" in p] # get all blog post pages
168
+    posts.sort(key=lambda p: p.date, reverse=True)
169
+    for p in posts:
170
+        title = p.post
171
+        link = "%s/%s" % (options.base_url.rstrip("/"), p.url)
172
+        desc = p.get("description", "Electronics & Software Projects")
173
+        date = time.mktime(time.strptime("%s 12" % p.date, "%Y-%m-%d %H"))
174
+        date = email.utils.formatdate(date)
175
+        items.append(_RSS_ITEM % (title, link, desc, date, link))
176
+
177
+    items = "".join(items)
178
+
179
+    title = "xythobuz.org Blog"
180
+    link = "%s/blog.html" % options.base_url.rstrip("/")
181
+    desc = "xythobuz Electronics & Software Projects"
182
+    date = email.utils.formatdate()
183
+
184
+    rss = _RSS % (title, link, desc, date, date, items)
185
+
186
+    fp = open(os.path.join(output, "rss.xml"), 'w')
187
+    fp.write(rss)
188
+    fp.close()

BIN
macros.pyc View File


+ 131
- 0
output/2012_12_05_xycontrol.html View File

@@ -0,0 +1,131 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2012_12_05_xycontrol.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2012_12_05_xycontrol.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>xyControl PCB angekommen</h2>
48
+<p><em>Posted at December 05, 2012.</em></p>
49
+<p>Gerade war der nette Typ von UPS da, mit dieser Schönheit im Gepäck... :)<br />
50
+<a href="/img/pcb.jpg"><img alt="PCB Photo" src="/img/pcb_small.jpg" /></a></p>
51
+
52
+        <div id="disqus_thread"></div>
53
+<script type="text/javascript">
54
+var disqus_shortname = "xythobuz";
55
+(function() {
56
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
57
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
58
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
59
+})();
60
+</script>
61
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
62
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
63
+
64
+        </div>
65
+        <div class="nav">
66
+            <h3>Thomas Buck</h3>
67
+
68
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
69
+
70
+            <p id="bio">
71
+                19 year old Information Engineering student from Germany.
72
+                Making cool stuff, mostly with AVR microcontrollers.
73
+            </p>
74
+
75
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
76
+
77
+            <ul id="menuList">
78
+            <li><a href="/index.html">Home</a></li>
79
+<li><a href="/blog.html">Blog</a></li>
80
+<li><a href="/contact.html">Contact</a></li>
81
+<br>
82
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
83
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
84
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
85
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
86
+<li><a href="/serialdebug.html">Serial Debug</a></li>
87
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
88
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
89
+<li><a href="/xyrobot.html">xyRobot</a></li>
90
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
91
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
92
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
93
+<li><a href="/rremote.html">rRemote</a></li>
94
+<br>
95
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
96
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
97
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
98
+<li><a href="/serialhelper.html">Serial Helper</a></li>
99
+            </ul>
100
+
101
+            <div id="recent">
102
+                Recent blog posts:
103
+                <ul id="recentList">
104
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
105
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
106
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
107
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
108
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
109
+                </ul>
110
+            </div>
111
+        </div>
112
+    </div></div>
113
+
114
+    <img id="dude" alt="The Dude" src="/img/dude.png">
115
+
116
+    <div id="footer">
117
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
118
+        &middot;
119
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
120
+        &middot;
121
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
122
+        &middot;
123
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
124
+        &middot;
125
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
126
+        &middot;
127
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
128
+    </div>
129
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
130
+</body>
131
+</html>

+ 132
- 0
output/2012_12_16_mun.html View File

@@ -0,0 +1,132 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2012_12_16_mun.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2012_12_16_mun.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>Mun Landing</h2>
48
+<p><em>Posted at December 16, 2012.</em></p>
49
+<p>Finally... I did it! And now I also know the difference between Type A and Type B Solar Panels...  </p>
50
+<p><a href="/img/mun1.png"><img alt="Screenshot 1" src="/img/mun1_small.png" /></a>
51
+<a href="/img/mun2.png"><img alt="Screenshot 2" src="/img/mun2_small.png" /></a></p>
52
+
53
+        <div id="disqus_thread"></div>
54
+<script type="text/javascript">
55
+var disqus_shortname = "xythobuz";
56
+(function() {
57
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
58
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
59
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
60
+})();
61
+</script>
62
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
63
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
64
+
65
+        </div>
66
+        <div class="nav">
67
+            <h3>Thomas Buck</h3>
68
+
69
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
70
+
71
+            <p id="bio">
72
+                19 year old Information Engineering student from Germany.
73
+                Making cool stuff, mostly with AVR microcontrollers.
74
+            </p>
75
+
76
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
77
+
78
+            <ul id="menuList">
79
+            <li><a href="/index.html">Home</a></li>
80
+<li><a href="/blog.html">Blog</a></li>
81
+<li><a href="/contact.html">Contact</a></li>
82
+<br>
83
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
84
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
85
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
86
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
87
+<li><a href="/serialdebug.html">Serial Debug</a></li>
88
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
89
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
90
+<li><a href="/xyrobot.html">xyRobot</a></li>
91
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
92
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
93
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
94
+<li><a href="/rremote.html">rRemote</a></li>
95
+<br>
96
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
97
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
98
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
99
+<li><a href="/serialhelper.html">Serial Helper</a></li>
100
+            </ul>
101
+
102
+            <div id="recent">
103
+                Recent blog posts:
104
+                <ul id="recentList">
105
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
106
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
107
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
108
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
109
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
110
+                </ul>
111
+            </div>
112
+        </div>
113
+    </div></div>
114
+
115
+    <img id="dude" alt="The Dude" src="/img/dude.png">
116
+
117
+    <div id="footer">
118
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
119
+        &middot;
120
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
121
+        &middot;
122
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
123
+        &middot;
124
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
125
+        &middot;
126
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
127
+        &middot;
128
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
129
+    </div>
130
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
131
+</body>
132
+</html>

+ 132
- 0
output/2012_12_22_docking.html View File

@@ -0,0 +1,132 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2012_12_22_docking.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2012_12_22_docking.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>Docking in Kerbal Orbit</h2>
48
+<p><em>Posted at December 22, 2012.</em></p>
49
+<p>Yay! My Kerbal Space Station is beginning to form:</p>
50
+<p><a href="/img/kss1.png"><img alt="Screenshot 1" src="/img/kss1_small.png" /></a>
51
+<a href="/img/kss2.png"><img alt="Screenshot 2" src="/img/kss2_small.png" /></a></p>
52
+
53
+        <div id="disqus_thread"></div>
54
+<script type="text/javascript">
55
+var disqus_shortname = "xythobuz";
56
+(function() {
57
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
58
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
59
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
60
+})();
61
+</script>
62
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
63
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
64
+
65
+        </div>
66
+        <div class="nav">
67
+            <h3>Thomas Buck</h3>
68
+
69
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
70
+
71
+            <p id="bio">
72
+                19 year old Information Engineering student from Germany.
73
+                Making cool stuff, mostly with AVR microcontrollers.
74
+            </p>
75
+
76
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
77
+
78
+            <ul id="menuList">
79
+            <li><a href="/index.html">Home</a></li>
80
+<li><a href="/blog.html">Blog</a></li>
81
+<li><a href="/contact.html">Contact</a></li>
82
+<br>
83
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
84
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
85
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
86
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
87
+<li><a href="/serialdebug.html">Serial Debug</a></li>
88
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
89
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
90
+<li><a href="/xyrobot.html">xyRobot</a></li>
91
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
92
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
93
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
94
+<li><a href="/rremote.html">rRemote</a></li>
95
+<br>
96
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
97
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
98
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
99
+<li><a href="/serialhelper.html">Serial Helper</a></li>
100
+            </ul>
101
+
102
+            <div id="recent">
103
+                Recent blog posts:
104
+                <ul id="recentList">
105
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
106
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
107
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
108
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
109
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
110
+                </ul>
111
+            </div>
112
+        </div>
113
+    </div></div>
114
+
115
+    <img id="dude" alt="The Dude" src="/img/dude.png">
116
+
117
+    <div id="footer">
118
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
119
+        &middot;
120
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
121
+        &middot;
122
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
123
+        &middot;
124
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
125
+        &middot;
126
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
127
+        &middot;
128
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
129
+    </div>
130
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
131
+</body>
132
+</html>

+ 131
- 0
output/2012_12_22_motor_test.html View File

@@ -0,0 +1,131 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2012_12_22_motor_test.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2012_12_22_motor_test.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>Quadrocopter Motor Test</h2>
48
+<p><em>Posted at December 22, 2012.</em></p>
49
+<p>xyControl ist fertig bestückt und funktioniert (größtenteils)! Also konnte ich auch gleich den Motor sowie seinen Treiber <a href="http://youtu.be/GxKMCVwqaKk">testen</a>:</p>
50
+<iframe width="560" height="315" src="http://www.youtube.com/embed/GxKMCVwqaKk" frameborder="0" allowfullscreen></iframe>
51
+
52
+        <div id="disqus_thread"></div>
53
+<script type="text/javascript">
54
+var disqus_shortname = "xythobuz";
55
+(function() {
56
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
57
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
58
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
59
+})();
60
+</script>
61
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
62
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
63
+
64
+        </div>
65
+        <div class="nav">
66
+            <h3>Thomas Buck</h3>
67
+
68
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
69
+
70
+            <p id="bio">
71
+                19 year old Information Engineering student from Germany.
72
+                Making cool stuff, mostly with AVR microcontrollers.
73
+            </p>
74
+
75
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
76
+
77
+            <ul id="menuList">
78
+            <li><a href="/index.html">Home</a></li>
79
+<li><a href="/blog.html">Blog</a></li>
80
+<li><a href="/contact.html">Contact</a></li>
81
+<br>
82
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
83
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
84
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
85
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
86
+<li><a href="/serialdebug.html">Serial Debug</a></li>
87
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
88
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
89
+<li><a href="/xyrobot.html">xyRobot</a></li>
90
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
91
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
92
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
93
+<li><a href="/rremote.html">rRemote</a></li>
94
+<br>
95
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
96
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
97
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
98
+<li><a href="/serialhelper.html">Serial Helper</a></li>
99
+            </ul>
100
+
101
+            <div id="recent">
102
+                Recent blog posts:
103
+                <ul id="recentList">
104
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
105
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
106
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
107
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
108
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
109
+                </ul>
110
+            </div>
111
+        </div>
112
+    </div></div>
113
+
114
+    <img id="dude" alt="The Dude" src="/img/dude.png">
115
+
116
+    <div id="footer">
117
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
118
+        &middot;
119
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
120
+        &middot;
121
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
122
+        &middot;
123
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
124
+        &middot;
125
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
126
+        &middot;
127
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
128
+    </div>
129
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
130
+</body>
131
+</html>

+ 133
- 0
output/2012_12_25_heli.html View File

@@ -0,0 +1,133 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2012_12_25_heli.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2012_12_25_heli.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>RC-Heli Absturz</h2>
48
+<p><em>Posted at December 25, 2012.</em></p>
49
+<p>Ganz Überraschend bekam ich zu Weihnachten einen RC-Heli mit Kamera. Funktioniert bei Video-Aufnahmen aber irgendwie nicht so toll...</p>
50
+<iframe width="420" height="315" src="http://www.youtube.com/embed/x8cPgIY_cJo" frameborder="0" allowfullscreen></iframe>
51
+
52
+</p>
53
+
54
+        <div id="disqus_thread"></div>
55
+<script type="text/javascript">
56
+var disqus_shortname = "xythobuz";
57
+(function() {
58
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
59
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
60
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
61
+})();
62
+</script>
63
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
64
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
65
+
66
+        </div>
67
+        <div class="nav">
68
+            <h3>Thomas Buck</h3>
69
+
70
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
71
+
72
+            <p id="bio">
73
+                19 year old Information Engineering student from Germany.
74
+                Making cool stuff, mostly with AVR microcontrollers.
75
+            </p>
76
+
77
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
78
+
79
+            <ul id="menuList">
80
+            <li><a href="/index.html">Home</a></li>
81
+<li><a href="/blog.html">Blog</a></li>
82
+<li><a href="/contact.html">Contact</a></li>
83
+<br>
84
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
85
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
86
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
87
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
88
+<li><a href="/serialdebug.html">Serial Debug</a></li>
89
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
90
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
91
+<li><a href="/xyrobot.html">xyRobot</a></li>
92
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
93
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
94
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
95
+<li><a href="/rremote.html">rRemote</a></li>
96
+<br>
97
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
98
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
99
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
100
+<li><a href="/serialhelper.html">Serial Helper</a></li>
101
+            </ul>
102
+
103
+            <div id="recent">
104
+                Recent blog posts:
105
+                <ul id="recentList">
106
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
107
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
108
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
109
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
110
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
111
+                </ul>
112
+            </div>
113
+        </div>
114
+    </div></div>
115
+
116
+    <img id="dude" alt="The Dude" src="/img/dude.png">
117
+
118
+    <div id="footer">
119
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
120
+        &middot;
121
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
122
+        &middot;
123
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
124
+        &middot;
125
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
126
+        &middot;
127
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
128
+        &middot;
129
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
130
+    </div>
131
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
132
+</body>
133
+</html>

+ 140
- 0
output/2013_01_20_quadrocopter.html View File

@@ -0,0 +1,140 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2013_01_20_quadrocopter.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2013_01_20_quadrocopter.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>Quadrocopter Ueberblick</h2>
48
+<p><em>Posted at January 20, 2013.</em></p>
49
+<p>Wie auf Twitter bereits zu sehen war, arbeite Ich momentan an meiner eigenen Quadrocopter Plattform. Kern der ganzen Geschichte ist <a href="https://github.com/xythobuz/xyControl">xyControl</a>:</p>
50
+<p><a href="/img/q_control.jpg"><img alt="Photo 1" src="/img/q_control_small.jpg" /></a>
51
+<a href="/img/q_control2.jpg"><img alt="Photo 2" src="/img/q_control2_small.jpg" /></a></p>
52
+<p>Alle nötigen Sensoren, also 3D Accelerometer und 3D Gyroskop, sowie 3D Magnetometer, sind in einem Paket untergebracht, dem <a href="http://www.watterott.com/de/MinIMU-9-v2">MiniMU-9 v2</a>:</p>
53
+<p><a href="/img/q_sens.jpg"><img alt="Photo 3" src="/img/q_sens_small.jpg" /></a></p>
54
+<p>Verwendung finden außerdem vier <a href="https://www.mikrocontroller.com/index.php?main_page=product_info&amp;products_id=209">BL-Ctrl v1.2</a> Brushlessregler, welche vier <a href="http://www.conrad.de/ce/de/product/231867">Robbe Roxxy BL Outrunner 2824-34</a> Motoren antreiben:</p>
55
+<p><a href="/img/q_mot.jpg"><img alt="Photo 4" src="/img/q_mot_small.jpg" /></a>
56
+<a href="/img/q_motprop.jpg"><img alt="Photo 5" src="/img/q_motprop_small.jpg" /></a></p>
57
+<p>Und alles zusammen schaut momentan so aus:</p>
58
+<p><a href="/img/q_fin.jpg"><img alt="Photo 6" src="/img/q_fin_small.jpg" /></a></p>
59
+<p>Ich bin zuversichtlich... :)</p>
60
+
61
+        <div id="disqus_thread"></div>
62
+<script type="text/javascript">
63
+var disqus_shortname = "xythobuz";
64
+(function() {
65
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
66
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
67
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
68
+})();
69
+</script>
70
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
71
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
72
+
73
+        </div>
74
+        <div class="nav">
75
+            <h3>Thomas Buck</h3>
76
+
77
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
78
+
79
+            <p id="bio">
80
+                19 year old Information Engineering student from Germany.
81
+                Making cool stuff, mostly with AVR microcontrollers.
82
+            </p>
83
+
84
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
85
+
86
+            <ul id="menuList">
87
+            <li><a href="/index.html">Home</a></li>
88
+<li><a href="/blog.html">Blog</a></li>
89
+<li><a href="/contact.html">Contact</a></li>
90
+<br>
91
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
92
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
93
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
94
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
95
+<li><a href="/serialdebug.html">Serial Debug</a></li>
96
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
97
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
98
+<li><a href="/xyrobot.html">xyRobot</a></li>
99
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
100
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
101
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
102
+<li><a href="/rremote.html">rRemote</a></li>
103
+<br>
104
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
105
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
106
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
107
+<li><a href="/serialhelper.html">Serial Helper</a></li>
108
+            </ul>
109
+
110
+            <div id="recent">
111
+                Recent blog posts:
112
+                <ul id="recentList">
113
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
114
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
115
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
116
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
117
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
118
+                </ul>
119
+            </div>
120
+        </div>
121
+    </div></div>
122
+
123
+    <img id="dude" alt="The Dude" src="/img/dude.png">
124
+
125
+    <div id="footer">
126
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
127
+        &middot;
128
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
129
+        &middot;
130
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
131
+        &middot;
132
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
133
+        &middot;
134
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
135
+        &middot;
136
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
137
+    </div>
138
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
139
+</body>
140
+</html>

+ 134
- 0
output/2013_01_31_odys_genio.html View File

@@ -0,0 +1,134 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2013_01_31_odys_genio.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2013_01_31_odys_genio.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>Odys Genio USB Debugging am Mac</h2>
48
+<p><em>Posted at January 31, 2013.</em></p>
49
+<p>Um das <a href="http://www.amazon.de/gp/product/B00A7PZM7E/ref=as_li_ss_tl?ie=UTF8&amp;camp=1638&amp;creative=19454&amp;creativeASIN=B00A7PZM7E&amp;linkCode=as2&amp;tag=xythobuzorg-21">Odys Genio (Affiliate Link)</a> auch am Mac für USB Debugging nutzen zu können, muss die USB Vendor ID des Genio in die Konfigurationsdatei der Android Debug Bridge eingetragen werden. Hierfür erstmal die VID des Genio im System Profiler ermitteln (bei mir 0x2207). Dann kann diese Nummer, allein in einer einzelnen Zeile, in die Datei ~/.android/adb_usb.ini eingetragen werden. Sollte die Datei nicht existieren, einfach neu anlegen, mit der VID als einzigem Inhalt. Anschließend eventuell das Tablet erneut anschließen, und adb neu starten: </p>
50
+<pre class="sh_sh">
51
+adb kill-server
52
+adb start-server
53
+</pre>
54
+
55
+        <div id="disqus_thread"></div>
56
+<script type="text/javascript">
57
+var disqus_shortname = "xythobuz";
58
+(function() {
59
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
60
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
61
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
62
+})();
63
+</script>
64
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
65
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
66
+
67
+        </div>
68
+        <div class="nav">
69
+            <h3>Thomas Buck</h3>
70
+
71
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
72
+
73
+            <p id="bio">
74
+                19 year old Information Engineering student from Germany.
75
+                Making cool stuff, mostly with AVR microcontrollers.
76
+            </p>
77
+
78
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
79
+
80
+            <ul id="menuList">
81
+            <li><a href="/index.html">Home</a></li>
82
+<li><a href="/blog.html">Blog</a></li>
83
+<li><a href="/contact.html">Contact</a></li>
84
+<br>
85
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
86
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
87
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
88
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
89
+<li><a href="/serialdebug.html">Serial Debug</a></li>
90
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
91
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
92
+<li><a href="/xyrobot.html">xyRobot</a></li>
93
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
94
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
95
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
96
+<li><a href="/rremote.html">rRemote</a></li>
97
+<br>
98
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
99
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
100
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
101
+<li><a href="/serialhelper.html">Serial Helper</a></li>
102
+            </ul>
103
+
104
+            <div id="recent">
105
+                Recent blog posts:
106
+                <ul id="recentList">
107
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
108
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
109
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
110
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
111
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
112
+                </ul>
113
+            </div>
114
+        </div>
115
+    </div></div>
116
+
117
+    <img id="dude" alt="The Dude" src="/img/dude.png">
118
+
119
+    <div id="footer">
120
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
121
+        &middot;
122
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
123
+        &middot;
124
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
125
+        &middot;
126
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
127
+        &middot;
128
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
129
+        &middot;
130
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
131
+    </div>
132
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
133
+</body>
134
+</html>

+ 133
- 0
output/2013_02_11_motor_test.html View File

@@ -0,0 +1,133 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2013_02_11_motor_test.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2013_02_11_motor_test.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>Quadrocopter Motor Test</h2>
48
+<p><em>Posted at February 11, 2013.</em></p>
49
+<p>Nun ist mein Quadrocopter soweit zusammengebaut...</p>
50
+<iframe width="560" height="315" src="http://www.youtube.com/embed/5AOkSvRz64c" frameborder="0" allowfullscreen></iframe>
51
+
52
+<p>Das sieht doch schon ganz vielversprechend aus... :)</p>
53
+
54
+        <div id="disqus_thread"></div>
55
+<script type="text/javascript">
56
+var disqus_shortname = "xythobuz";
57
+(function() {
58
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
59
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
60
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
61
+})();
62
+</script>
63
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
64
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
65
+
66
+        </div>
67
+        <div class="nav">
68
+            <h3>Thomas Buck</h3>
69
+
70
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
71
+
72
+            <p id="bio">
73
+                19 year old Information Engineering student from Germany.
74
+                Making cool stuff, mostly with AVR microcontrollers.
75
+            </p>
76
+
77
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
78
+
79
+            <ul id="menuList">
80
+            <li><a href="/index.html">Home</a></li>
81
+<li><a href="/blog.html">Blog</a></li>
82
+<li><a href="/contact.html">Contact</a></li>
83
+<br>
84
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
85
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
86
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
87
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
88
+<li><a href="/serialdebug.html">Serial Debug</a></li>
89
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
90
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
91
+<li><a href="/xyrobot.html">xyRobot</a></li>
92
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
93
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
94
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
95
+<li><a href="/rremote.html">rRemote</a></li>
96
+<br>
97
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
98
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
99
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
100
+<li><a href="/serialhelper.html">Serial Helper</a></li>
101
+            </ul>
102
+
103
+            <div id="recent">
104
+                Recent blog posts:
105
+                <ul id="recentList">
106
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
107
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
108
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
109
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
110
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
111
+                </ul>
112
+            </div>
113
+        </div>
114
+    </div></div>
115
+
116
+    <img id="dude" alt="The Dude" src="/img/dude.png">
117
+
118
+    <div id="footer">
119
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
120
+        &middot;
121
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
122
+        &middot;
123
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
124
+        &middot;
125
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
126
+        &middot;
127
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
128
+        &middot;
129
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
130
+    </div>
131
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
132
+</body>
133
+</html>

+ 132
- 0
output/2013_02_25_android.html View File

@@ -0,0 +1,132 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2013_02_25_android.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2013_02_25_android.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>xyCopter Android App</h2>
48
+<p><em>Posted at February 25, 2013.</em></p>
49
+<p>Die erste Version meiner Quadrocopter Fernsteuerungs App für Android ist fertig und funktioniert soweit. Hier ein Screenshot:</p>
50
+<p><a href="/img/xyCopter.png"><img alt="xyCopter Screenshot" src="/img/xyCopter_small.png" /></a> </p>
51
+<p>Und natürlich auch die <a href="https://github.com/xythobuz/xyControl/blob/master/tools/xyCopter-1.0.apk?raw=true">unsignierte APK zum Download</a>...</p>
52
+
53
+        <div id="disqus_thread"></div>
54
+<script type="text/javascript">
55
+var disqus_shortname = "xythobuz";
56
+(function() {
57
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
58
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
59
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
60
+})();
61
+</script>
62
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
63
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
64
+
65
+        </div>
66
+        <div class="nav">
67
+            <h3>Thomas Buck</h3>
68
+
69
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
70
+
71
+            <p id="bio">
72
+                19 year old Information Engineering student from Germany.
73
+                Making cool stuff, mostly with AVR microcontrollers.
74
+            </p>
75
+
76
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
77
+
78
+            <ul id="menuList">
79
+            <li><a href="/index.html">Home</a></li>
80
+<li><a href="/blog.html">Blog</a></li>
81
+<li><a href="/contact.html">Contact</a></li>
82
+<br>
83
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
84
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
85
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
86
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
87
+<li><a href="/serialdebug.html">Serial Debug</a></li>
88
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
89
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
90
+<li><a href="/xyrobot.html">xyRobot</a></li>
91
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
92
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
93
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
94
+<li><a href="/rremote.html">rRemote</a></li>
95
+<br>
96
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
97
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
98
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
99
+<li><a href="/serialhelper.html">Serial Helper</a></li>
100
+            </ul>
101
+
102
+            <div id="recent">
103
+                Recent blog posts:
104
+                <ul id="recentList">
105
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
106
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
107
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
108
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
109
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
110
+                </ul>
111
+            </div>
112
+        </div>
113
+    </div></div>
114
+
115
+    <img id="dude" alt="The Dude" src="/img/dude.png">
116
+
117
+    <div id="footer">
118
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
119
+        &middot;
120
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
121
+        &middot;
122
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
123
+        &middot;
124
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
125
+        &middot;
126
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
127
+        &middot;
128
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
129
+    </div>
130
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
131
+</body>
132
+</html>

+ 131
- 0
output/2013_03_05_graphview.html View File

@@ -0,0 +1,131 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2013_03_05_graphview.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2013_03_05_graphview.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>xyCopter mit GraphView</h2>
48
+<p><em>Posted at March 05, 2013.</em></p>
49
+<p>Jetzt hab ich <a href="https://github.com/Lauszus/GraphView">GraphView</a> in xyCopter eingebaut:<br />
50
+<a href="/img/xyCopterNew.png"><img alt="Screenshot" src="/img/xyCopterNew_small.png" /></a></p>
51
+
52
+        <div id="disqus_thread"></div>
53
+<script type="text/javascript">
54
+var disqus_shortname = "xythobuz";
55
+(function() {
56
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
57
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
58
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
59
+})();
60
+</script>
61
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
62
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
63
+
64
+        </div>
65
+        <div class="nav">
66
+            <h3>Thomas Buck</h3>
67
+
68
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
69
+
70
+            <p id="bio">
71
+                19 year old Information Engineering student from Germany.
72
+                Making cool stuff, mostly with AVR microcontrollers.
73
+            </p>
74
+
75
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
76
+
77
+            <ul id="menuList">
78
+            <li><a href="/index.html">Home</a></li>
79
+<li><a href="/blog.html">Blog</a></li>
80
+<li><a href="/contact.html">Contact</a></li>
81
+<br>
82
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
83
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
84
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
85
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
86
+<li><a href="/serialdebug.html">Serial Debug</a></li>
87
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
88
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
89
+<li><a href="/xyrobot.html">xyRobot</a></li>
90
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
91
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
92
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
93
+<li><a href="/rremote.html">rRemote</a></li>
94
+<br>
95
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
96
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
97
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
98
+<li><a href="/serialhelper.html">Serial Helper</a></li>
99
+            </ul>
100
+
101
+            <div id="recent">
102
+                Recent blog posts:
103
+                <ul id="recentList">
104
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
105
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
106
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
107
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
108
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
109
+                </ul>
110
+            </div>
111
+        </div>
112
+    </div></div>
113
+
114
+    <img id="dude" alt="The Dude" src="/img/dude.png">
115
+
116
+    <div id="footer">
117
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
118
+        &middot;
119
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
120
+        &middot;
121
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
122
+        &middot;
123
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
124
+        &middot;
125
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
126
+        &middot;
127
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
128
+    </div>
129
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
130
+</body>
131
+</html>

+ 132
- 0
output/2013_03_10_yasab.html View File

@@ -0,0 +1,132 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2013_03_10_yasab.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2013_03_10_yasab.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>xyCopter loves YASAB</h2>
48
+<p><em>Posted at March 10, 2013.</em></p>
49
+<p>Jetzt hat meine xyCopter App eine YASAB Implementation. So kann man per Bluetooth die Firmware des Quadrocopters vom Tablet aus neu flashen. Und woher hat die App das Firmware Hexfile? Aus Dropbox! Wenn das mal nicht geil ist... :D</p> </p>
50
+<p><a href="/img/xyCopterFirmware.png"><img alt="Screenshot" src="/img/xyCopterFirmware_small.png" /></a> </p>
51
+<p>Allerdings funktioniert Dropbox Integration und OpenSource nicht so wirklich... Man muss sich also eine <a href="https://www.dropbox.com/developers/apps">eigene App bei Dropbox registrieren</a> und den Key und das Secret dann im <a href="https://github.com/xythobuz/xyControl/blob/master/tools/xyCopter/AndroidManifest.xml">Manifest</a> und im <a href="https://github.com/xythobuz/xyControl/blob/master/tools/xyCopter/src/org/xythobuz/xycopter/MainActivity.java">Code</a> eintragen...</p>
52
+
53
+        <div id="disqus_thread"></div>
54
+<script type="text/javascript">
55
+var disqus_shortname = "xythobuz";
56
+(function() {
57
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
58
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
59
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
60
+})();
61
+</script>
62
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
63
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
64
+
65
+        </div>
66
+        <div class="nav">
67
+            <h3>Thomas Buck</h3>
68
+
69
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
70
+
71
+            <p id="bio">
72
+                19 year old Information Engineering student from Germany.
73
+                Making cool stuff, mostly with AVR microcontrollers.
74
+            </p>
75
+
76
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
77
+
78
+            <ul id="menuList">
79
+            <li><a href="/index.html">Home</a></li>
80
+<li><a href="/blog.html">Blog</a></li>
81
+<li><a href="/contact.html">Contact</a></li>
82
+<br>
83
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
84
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
85
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
86
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
87
+<li><a href="/serialdebug.html">Serial Debug</a></li>
88
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
89
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
90
+<li><a href="/xyrobot.html">xyRobot</a></li>
91
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
92
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
93
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
94
+<li><a href="/rremote.html">rRemote</a></li>
95
+<br>
96
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
97
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
98
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
99
+<li><a href="/serialhelper.html">Serial Helper</a></li>
100
+            </ul>
101
+
102
+            <div id="recent">
103
+                Recent blog posts:
104
+                <ul id="recentList">
105
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
106
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
107
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
108
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
109
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
110
+                </ul>
111
+            </div>
112
+        </div>
113
+    </div></div>
114
+
115
+    <img id="dude" alt="The Dude" src="/img/dude.png">
116
+
117
+    <div id="footer">
118
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
119
+        &middot;
120
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
121
+        &middot;
122
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
123
+        &middot;
124
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
125
+        &middot;
126
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
127
+        &middot;
128
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
129
+    </div>
130
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
131
+</body>
132
+</html>

+ 133
- 0
output/2013_03_12_test_rig.html View File

@@ -0,0 +1,133 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2013_03_12_test_rig.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2013_03_12_test_rig.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>Quadrocopter Testvorrichtung</h2>
48
+<p><em>Posted at March 12, 2013.</em></p>
49
+<p>Hab mal ein bisschen mit Opa im Keller gebastelt. Ergebnis ist diese Testvorrichtung, um besser die PID-Parameter anhand einer einzelnen Achse zu bestimmen. Und Fehler im Code zu finden. Das gibts ja immer... :)</p>
50
+<p><a href="/img/quadRig1.jpg"><img alt="Foto 1" src="/img/quadRig1_small.jpg" /></a>
51
+<a href="/img/quadRig2.jpg"><img alt="Foto 2" src="/img/quadRig2_small.jpg" /></a>
52
+<a href="/img/quadRig3.jpg"><img alt="Foto 3" src="/img/quadRig3_small.jpg" /></a></p>
53
+
54
+        <div id="disqus_thread"></div>
55
+<script type="text/javascript">
56
+var disqus_shortname = "xythobuz";
57
+(function() {
58
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
59
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
60
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
61
+})();
62
+</script>
63
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
64
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
65
+
66
+        </div>
67
+        <div class="nav">
68
+            <h3>Thomas Buck</h3>
69
+
70
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
71
+
72
+            <p id="bio">
73
+                19 year old Information Engineering student from Germany.
74
+                Making cool stuff, mostly with AVR microcontrollers.
75
+            </p>
76
+
77
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
78
+
79
+            <ul id="menuList">
80
+            <li><a href="/index.html">Home</a></li>
81
+<li><a href="/blog.html">Blog</a></li>
82
+<li><a href="/contact.html">Contact</a></li>
83
+<br>
84
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
85
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
86
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
87
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
88
+<li><a href="/serialdebug.html">Serial Debug</a></li>
89
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
90
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
91
+<li><a href="/xyrobot.html">xyRobot</a></li>
92
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
93
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
94
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
95
+<li><a href="/rremote.html">rRemote</a></li>
96
+<br>
97
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
98
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
99
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
100
+<li><a href="/serialhelper.html">Serial Helper</a></li>
101
+            </ul>
102
+
103
+            <div id="recent">
104
+                Recent blog posts:
105
+                <ul id="recentList">
106
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
107
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
108
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
109
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
110
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
111
+                </ul>
112
+            </div>
113
+        </div>
114
+    </div></div>
115
+
116
+    <img id="dude" alt="The Dude" src="/img/dude.png">
117
+
118
+    <div id="footer">
119
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
120
+        &middot;
121
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
122
+        &middot;
123
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
124
+        &middot;
125
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
126
+        &middot;
127
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
128
+        &middot;
129
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
130
+    </div>
131
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
132
+</body>
133
+</html>

+ 131
- 0
output/2013_03_13_test_rig.html View File

@@ -0,0 +1,131 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2013_03_13_test_rig.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2013_03_13_test_rig.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>Quadrocopter Test Rig Video</h2>
48
+<p><em>Posted at March 13, 2013.</em></p>
49
+<p>Ja, das ist alles ganz schön wackelig. Jetzt hab ich mehr Gewicht drauf. Und die Parameter find ich irgendwann auch noch :)</p>
50
+<iframe width="560" height="315" src="http://www.youtube-nocookie.com/embed/b5MhLgDhQ2c" frameborder="0" allowfullscreen></iframe>
51
+
52
+        <div id="disqus_thread"></div>
53
+<script type="text/javascript">
54
+var disqus_shortname = "xythobuz";
55
+(function() {
56
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
57
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
58
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
59
+})();
60
+</script>
61
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
62
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
63
+
64
+        </div>
65
+        <div class="nav">
66
+            <h3>Thomas Buck</h3>
67
+
68
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
69
+
70
+            <p id="bio">
71
+                19 year old Information Engineering student from Germany.
72
+                Making cool stuff, mostly with AVR microcontrollers.
73
+            </p>
74
+
75
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
76
+
77
+            <ul id="menuList">
78
+            <li><a href="/index.html">Home</a></li>
79
+<li><a href="/blog.html">Blog</a></li>
80
+<li><a href="/contact.html">Contact</a></li>
81
+<br>
82
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
83
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
84
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
85
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
86
+<li><a href="/serialdebug.html">Serial Debug</a></li>
87
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
88
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
89
+<li><a href="/xyrobot.html">xyRobot</a></li>
90
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
91
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
92
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
93
+<li><a href="/rremote.html">rRemote</a></li>
94
+<br>
95
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
96
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
97
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
98
+<li><a href="/serialhelper.html">Serial Helper</a></li>
99
+            </ul>
100
+
101
+            <div id="recent">
102
+                Recent blog posts:
103
+                <ul id="recentList">
104
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
105
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
106
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
107
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
108
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
109
+                </ul>
110
+            </div>
111
+        </div>
112
+    </div></div>
113
+
114
+    <img id="dude" alt="The Dude" src="/img/dude.png">
115
+
116
+    <div id="footer">
117
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
118
+        &middot;
119
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
120
+        &middot;
121
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
122
+        &middot;
123
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
124
+        &middot;
125
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
126
+        &middot;
127
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
128
+    </div>
129
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
130
+</body>
131
+</html>

+ 131
- 0
output/2013_03_16_pid.html View File

@@ -0,0 +1,131 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>Blog</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2013_03_16_pid.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2013_03_16_pid.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>xyCopter PID-Parameter</h2>
48
+<p><em>Posted at March 16, 2013.</em></p>
49
+<p>So, jetzt fehlen hoffentlich nur noch die richtigen PID Parameter um den Quadrocopter in der Schwebe zu halten...</p>
50
+<p><a href="/img/xyCopterOsci.png"><img alt="Screenshot" src="/img/xyCopterOsci_small.png" /></a></p>
51
+
52
+        <div id="disqus_thread"></div>
53
+<script type="text/javascript">
54
+var disqus_shortname = "xythobuz";
55
+(function() {
56
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
57
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
58
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
59
+})();
60
+</script>
61
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
62
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
63
+
64
+        </div>
65
+        <div class="nav">
66
+            <h3>Thomas Buck</h3>
67
+
68
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
69
+
70
+            <p id="bio">
71
+                19 year old Information Engineering student from Germany.
72
+                Making cool stuff, mostly with AVR microcontrollers.
73
+            </p>
74
+
75
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
76
+
77
+            <ul id="menuList">
78
+            <li><a href="/index.html">Home</a></li>
79
+<li><a href="/blog.html">Blog</a></li>
80
+<li><a href="/contact.html">Contact</a></li>
81
+<br>
82
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
83
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
84
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
85
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
86
+<li><a href="/serialdebug.html">Serial Debug</a></li>
87
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
88
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
89
+<li><a href="/xyrobot.html">xyRobot</a></li>
90
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
91
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
92
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
93
+<li><a href="/rremote.html">rRemote</a></li>
94
+<br>
95
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
96
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
97
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
98
+<li><a href="/serialhelper.html">Serial Helper</a></li>
99
+            </ul>
100
+
101
+            <div id="recent">
102
+                Recent blog posts:
103
+                <ul id="recentList">
104
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
105
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
106
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
107
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
108
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
109
+                </ul>
110
+            </div>
111
+        </div>
112
+    </div></div>
113
+
114
+    <img id="dude" alt="The Dude" src="/img/dude.png">
115
+
116
+    <div id="footer">
117
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
118
+        &middot;
119
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
120
+        &middot;
121
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
122
+        &middot;
123
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
124
+        &middot;
125
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
126
+        &middot;
127
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
128
+    </div>
129
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
130
+</body>
131
+</html>

+ 134
- 0
output/2013_03_25_doxygen.html View File

@@ -0,0 +1,134 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>Blog - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    
30
+    <div id="header">
31
+        <h1>xythobuz.org</h1>
32
+        <h2>document ALL the code</h2>
33
+    </div>
34
+    <div id="lang"><span id="lang">Translation: 
35
+<a href='2013_03_25_doxygen.html'>en</a>
36
+</span></div>
37
+    <div class="colmask leftmenu"><div class="colleft">
38
+        <div class="content">
39
+
40
+            <div id="flattr">
41
+<a class="FlattrButton" href="http://www.xythobuz.org/2013_03_25_doxygen.html" title="Blog">Blog</a>
42
+</div>
43
+<div id="twitter">
44
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
45
+</div>
46
+
47
+            <h2>xyControl Doxygen Dokumentation</h2>
48
+<p><em>Posted at March 25, 2013.</em></p>
49
+<p>Ich hab jetzt mal eine hübsche Doxygen Dokumentation für die xyControl Firmware angelegt. Kann auch mit "make doc" erstellt werden. Neben HTML wird auch Latex ausgegeben, im Ordner ist ein Makefile um daraus eine PDF zu setzen. </p>
50
+<ul>
51
+<li><a href="http://www.xythobuz.org/xycontrol/index.html">HTML Dokumentation</a></li>
52
+<li><a href="http://www.xythobuz.org/xycontrol.pdf">PDF Dokumentation</a></li>
53
+</ul>
54
+
55
+        <div id="disqus_thread"></div>
56
+<script type="text/javascript">
57
+var disqus_shortname = "xythobuz";
58
+(function() {
59
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
60
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
61
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
62
+})();
63
+</script>
64
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
65
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
66
+
67
+        </div>
68
+        <div class="nav">
69
+            <h3>Thomas Buck</h3>
70
+
71
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
72
+
73
+            <p id="bio">
74
+                19 year old Information Engineering student from Germany.
75
+                Making cool stuff, mostly with AVR microcontrollers.
76
+            </p>
77
+
78
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
79
+
80
+            <ul id="menuList">
81
+            <li><a href="/index.html">Home</a></li>
82
+<li><a href="/blog.html">Blog</a></li>
83
+<li><a href="/contact.html">Contact</a></li>
84
+<br>
85
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
86
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
87
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
88
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
89
+<li><a href="/serialdebug.html">Serial Debug</a></li>
90
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
91
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
92
+<li><a href="/xyrobot.html">xyRobot</a></li>
93
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
94
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
95
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
96
+<li><a href="/rremote.html">rRemote</a></li>
97
+<br>
98
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
99
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
100
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
101
+<li><a href="/serialhelper.html">Serial Helper</a></li>
102
+            </ul>
103
+
104
+            <div id="recent">
105
+                Recent blog posts:
106
+                <ul id="recentList">
107
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
108
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
109
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
110
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
111
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
112
+                </ul>
113
+            </div>
114
+        </div>
115
+    </div></div>
116
+
117
+    <img id="dude" alt="The Dude" src="/img/dude.png">
118
+
119
+    <div id="footer">
120
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
121
+        &middot;
122
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
123
+        &middot;
124
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
125
+        &middot;
126
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
127
+        &middot;
128
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
129
+        &middot;
130
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
131
+    </div>
132
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
133
+</body>
134
+</html>

+ 104
- 0
output/404.html View File

@@ -0,0 +1,104 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>404 - xythobuz.org</title>
5
+    <meta name="description" content="Electronics &amp; Software Projects" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    
16
+</head>
17
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
18
+    
19
+    <div id="header">
20
+        <h1>xythobuz.org</h1>
21
+        <h2>searching something?</h2>
22
+    </div>
23
+    <div id="lang"><span id="lang">Translation: 
24
+<a href='404.html'>en</a>
25
+</span></div>
26
+    <div class="colmask leftmenu"><div class="colleft">
27
+        <div class="content">
28
+
29
+            
30
+
31
+            <h1>404</h1>
32
+<h2>Page not found!</h2>
33
+<p>&larr; Maybe you can find it over here?</p>
34
+
35
+        
36
+
37
+        </div>
38
+        <div class="nav">
39
+            <h3>Thomas Buck</h3>
40
+
41
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
42
+
43
+            <p id="bio">
44
+                19 year old Information Engineering student from Germany.
45
+                Making cool stuff, mostly with AVR microcontrollers.
46
+            </p>
47
+
48
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
49
+
50
+            <ul id="menuList">
51
+            <li><a href="/index.html">Home</a></li>
52
+<li><a href="/blog.html">Blog</a></li>
53
+<li><a href="/contact.html">Contact</a></li>
54
+<br>
55
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
56
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
57
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
58
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
59
+<li><a href="/serialdebug.html">Serial Debug</a></li>
60
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
61
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
62
+<li><a href="/xyrobot.html">xyRobot</a></li>
63
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
64
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
65
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
66
+<li><a href="/rremote.html">rRemote</a></li>
67
+<br>
68
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
69
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
70
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
71
+<li><a href="/serialhelper.html">Serial Helper</a></li>
72
+            </ul>
73
+
74
+            <div id="recent">
75
+                Recent blog posts:
76
+                <ul id="recentList">
77
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
78
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
79
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
80
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
81
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
82
+                </ul>
83
+            </div>
84
+        </div>
85
+    </div></div>
86
+
87
+    <img id="dude" alt="The Dude" src="/img/dude.png">
88
+
89
+    <div id="footer">
90
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
91
+        &middot;
92
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
93
+        &middot;
94
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
95
+        &middot;
96
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
97
+        &middot;
98
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
99
+        &middot;
100
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
101
+    </div>
102
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
103
+</body>
104
+</html>

+ 188
- 0
output/avrnetstack.html View File

@@ -0,0 +1,188 @@
1
+<html>
2
+<head>
3
+    <meta charset="utf-8" />
4
+    <title>avrNetStack - xythobuz.org</title>
5
+    <meta name="description" content="Modular AVR TCP/IP Stack with Ethernet and WiFi support" />
6
+    <meta name="keywords" content="xythobuz" />
7
+    <link rel="author" href="/xythobuz@xythobuz.org">
8
+    <link rel="shortcut icon" href="/img/favicon.ico">
9
+    <script type="text/javascript" src="/js/sh_main.js"></script>
10
+    <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
11
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
12
+    <link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/rss.xml">
13
+    <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
14
+    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
15
+    <script type='text/javascript'>
16
+/* <![CDATA[ */
17
+(function() {
18
+var s = document.createElement('script');
19
+var t = document.getElementsByTagName('script')[0];
20
+s.type = 'text/javascript';
21
+s.async = true;
22
+s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
23
+t.parentNode.insertBefore(s, t);
24
+})();
25
+/* ]]> */
26
+</script>
27
+</head>
28
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
29
+    <div class="github-fork-ribbon-wrapper right">
30
+<div class="github-fork-ribbon"><a href="
31
+https://github.com/xythobuz/avrNetStack
32
+">Fork me on GitHub</a></div></div>
33
+    <div id="header">
34
+        <h1>xythobuz.org</h1>
35
+        <h2>avrNetStack</h2>
36
+    </div>
37
+    <div id="lang"><span id="lang">Translation: 
38
+<a href='avrnetstack.html'>en</a>
39
+</span></div>
40
+    <div class="colmask leftmenu"><div class="colleft">
41
+        <div class="content">
42
+
43
+            <div id="flattr">
44
+<a class="FlattrButton" href="http://www.xythobuz.org/avrnetstack.html" title="avrNetStack">Modular AVR TCP/IP Stack with Ethernet and WiFi support</a>
45
+</div>
46
+<div id="twitter">
47
+<a href="https://twitter.com/share" class="twitter-share-button" data-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
48
+</div>
49
+<div id="reddit">
50
+<script type="text/javascript">reddit_url = "http://www.xythobuz.org/avrnetstack.html";</script>
51
+<script type="text/javascript" src="http://www.reddit.com/static/button/button2.js"></script>
52
+</div>
53
+<div id="github">
54
+<a href="https://github.com/xythobuz/avrNetStack" class="gitforked-button gitforked-forks gitforked-watchers">Fork</a>
55
+</div>
56
+
57
+            <h1>avrNetStack</h1>
58
+<p><a href="https://github.com/xythobuz/avrNetStack">avrNetStack</a> aims to be a very modular Networking Stack running on AVR Microcontrollers and supporting different Network Hardware (ENC28J60, MRF24WB).
59
+Select your MCU and hardware driver in the makefile.
60
+Compile with "make lib" to create a static library.
61
+Compile with "make test" to create a test hex file to use with the hardware found in Hardware/avrNetStack.sch. You need Eagle 6, available for free from cadsoft.
62
+In the future, a PCB will be designed that can act as WLAN / LAN Module for your AVR Project, in addition to this software.</p>
63
+<p><a href="/img/net.jpg"><img alt="Foto 1" src="/img/net_small.jpg" /></a>
64
+<a href="/img/net2.jpg"><img alt="Foto 2" src="/img/net2_small.jpg" /></a>
65
+<a href="/img/teaser2.png"><img alt="Foto 2" src="/img/teaser2_small.png" /></a></p>
66
+<h2>License</h2>
67
+<p>All files in "lib/drivers/asynclabs" are released under the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GPLv2</a>.</p>
68
+<pre>
69
+&copy; 2009 Async Labs Inc.
70
+&copy; 2012 Thomas Buck
71
+</pre>
72
+
73
+<p>Everything else, if not mentioned otherwise elsewhere, is released under a BSD 2-Clause License. See the accompanying COPYING file.</p>
74
+<h2>Software Overview</h2>
75
+<h3>ENC28J60 Driver</h3>
76
+<p>This is a self-written driver for <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en022889">Microchips ENC28J60</a>, based on it's <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/39662d.pdf">datasheet</a> and the <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/80349c.pdf">silicon errata</a>. It is operating (more or less) stable.
77
+The 8KB Buffer in the ENC28J60 is not really used, as all received Packets are placed in RAM before using their data. It will be used as FIFO for Packets that are received before the CPU is able to work on them.
78
+You can change the size and location of the Receive and Transmit Segments in the ENC28J60 SRAM.</p>
79
+<h3>MRF24WB0MA Driver</h3>
80
+<p>This is based on Stefan Heeschs modified version of Asynclabs G2100 Driver, released in <a href="http://www.mikrocontroller.net/topic/175463#1945568">this forum thread</a>, modified to work with this Networking Stack. This is a heavy work in progress.</p>
81
+<h3>Hardware Libraries</h3>
82
+<p>avrNetStack includes UART, SPI and Timer libs aswell as a basic task switcher and scheduler.
83
+The UART lib uses FIFO Buffers for receiving and transmitting interrupt driven. Change the Buffer size in 'include/serial.h', if you want. For debugging, you can run the serial library in a blocking mode.
84
+The Time lib supports 16MHz and 20MHz on a small selection of hardware devices. If you get compile errors after changing the target plattform in the makefile, you have to extend these libraries to support your target.
85
+If you want to use the UART with your own software don't include another UART library. Use the functions from serial.h!
86
+You need to call scheduler() and tasks() in you main-loop and also enable interrupts to use the Networking Stack. Both are completely dynamic, so you can use them for your application logic, too.
87
+The std module is a wrapper for the libc memory allocation functions. It is used to keep track of memory allocations for debugging purposes.</p>
88
+<h3>Debug Output</h3>
89
+<p>Every software modules debug output can be individually turned off or on. Just set the "#define DEBUG" at the start of the file to 1' or higher. To add debug output, use debugPrint() to print. If you need some more code to generate your output, put it in a "#if DEBUG == 1 ... #endif" block.
90
+debug.h also includes a custom assert implementation.</p>
91
+<h3>Controller Module</h3>
92
+<p>Controls the operation of the whole network stack. It contains only one function for the main program, networkInit. It is to be called once afer System Reset and performs initialization of all necessary hardware and buffers, etc. Also, some definitions can be uncommented in the controller.h file to deactivate parts of the stack. This could allow you to run a subset of the stack on a smaller AVR.</p>
93
+<h3>MAC Module</h3>
94
+<p>These are the Network Hardware drivers. Different MAC implementations will exist in the future, right now only the ENC28J60 is supported. This allows sending Ethernet Packets, as well as receiving them. Received Packets are given to the appropriate next layer by the controller.</p>
95
+<h3>ARP Module</h3>
96
+<p>Handles received ARP Packets, maintains an ARP Cache and gives functions of higher layers a method to obtain a MAC Address from an IP Address.
97
+If the Cache has no hit, an ARP Packet is issued, so that the higher layer can try again later.</p>
98
+<h3>IPv4 Module</h3>
99
+<p>Handles received IPv4 Packets. Received valid Datagrams are given to the appropriate next stack layer. Also, IPv4 Packets can be transmitted with this module.
100
+It buffers outgoing IPv4 Packets to get the target MAC from the ARP Module automatically.</p>
101
+<h3>ICMP Module</h3>
102
+<p>Handles received ICMP Packets. Can answer and send out echo requests.
103
+A single handler for echo replies can be registered. This is used to implement a simple Ping Utility in "test/main.c".</p>
104
+<h3>UDP Module</h3>
105
+<p>Handles the really simple User Datagram Protocol. A handler for every port can be registered and UDP packets can be transmitted.</p>
106
+<h3>NTP Module</h3>
107
+<p>Simple NTP (SNTP) Client. Will update systemTime automagically to the current unix timestamp some time after calling ntpIssueRequest().</p>
108
+
109
+        <div id="disqus_thread"></div>
110
+<script type="text/javascript">
111
+var disqus_shortname = "xythobuz";
112
+(function() {
113
+var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
114
+dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
115
+(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
116
+})();
117
+</script>
118
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
119
+<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
120
+
121
+        </div>
122
+        <div class="nav">
123
+            <h3>Thomas Buck</h3>
124
+
125
+            <div id="logo"><img id="logo" src="http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=180" alt="Avatar"></div>
126
+
127
+            <p id="bio">
128
+                19 year old Information Engineering student from Germany.
129
+                Making cool stuff, mostly with AVR microcontrollers.
130
+            </p>
131
+
132
+            <iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
133
+
134
+            <ul id="menuList">
135
+            <li><a href="/index.html">Home</a></li>
136
+<li><a href="/blog.html">Blog</a></li>
137
+<li><a href="/contact.html">Contact</a></li>
138
+<br>
139
+<li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
140
+<li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
141
+<li><a href="/avrnetstack.html">avrNetStack</a></li>
142
+<li><a href="/avrserial.html">AVR Serial Library</a></li>
143
+<li><a href="/serialdebug.html">Serial Debug</a></li>
144
+<li><a href="/ledmatrix.html">LED Matrix</a></li>
145
+<li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
146
+<li><a href="/xyrobot.html">xyRobot</a></li>
147
+<li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
148
+<li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
149
+<li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
150
+<li><a href="/rremote.html">rRemote</a></li>
151
+<br>
152
+<li><a href="/c250.html">Mio C250 Unlock</a></li>
153
+<li><a href="/nas.html">IB-NAS6210 Linux</a></li>
154
+<li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
155
+<li><a href="/serialhelper.html">Serial Helper</a></li>
156
+            </ul>
157
+
158
+            <div id="recent">
159
+                Recent blog posts:
160
+                <ul id="recentList">
161
+                <li class="recentList"><a href="/2013_03_25_doxygen.html">xyControl Doxygen Dokumentation</a></li><li class="recentDate">2013-03-25</li>
162
+<li class="recentList"><a href="/2013_03_16_pid.html">xyCopter PID-Parameter</a></li><li class="recentDate">2013-03-16</li>
163
+<li class="recentList"><a href="/2013_03_13_test_rig.html">Quadrocopter Test Rig Video</a></li><li class="recentDate">2013-03-13</li>
164
+<li class="recentList"><a href="/2013_03_12_test_rig.html">Quadrocopter Testvorrichtung</a></li><li class="recentDate">2013-03-12</li>
165
+<li class="recentList"><a href="/2013_03_10_yasab.html">xyCopter loves YASAB</a></li><li class="recentDate">2013-03-10</li>
166
+                </ul>
167
+            </div>
168
+        </div>
169
+    </div></div>
170
+
171
+    <img id="dude" alt="The Dude" src="/img/dude.png">
172
+
173
+    <div id="footer">
174
+        Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
175
+        &middot;
176
+        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
177
+        &middot;
178
+        <a href="http://validator.w3.org/check?uri=referer">Validate HTML</a>
179
+        &middot;
180
+        <a href="http://jigsaw.w3.org/css-validator/validator?uri=xythobuz.org%2Fstyle.css&amp;profile=css3">Validate CSS</a>
181
+        &middot;
182
+        <a href="http://feed1.w3.org/check.cgi?url=http://www.xythobuz.org/rss.xml">Validate RSS</a>
183
+        &middot;
184
+        <a href="http://www.validome.org/google/validate?url=http://www.xythobuz.org&amp;googleTyp=SITEMAP">Validate Sitemap</a>
185
+    </div>
186
+    <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
187
+</body>
188
+</html>

+ 0
- 0
output/avrserial.de.html View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save