Browse Source

Redesigned

Thomas Buck 11 years ago
parent
commit
5295cc70fb

+ 16
- 54
input/index.md View File

@@ -6,71 +6,33 @@ flattr: true
6 6
 compat: home
7 7
 ---
8 8
 
9
-# Welcome
9
+<div style="width: 150px; height: 150px; float: right; border: 2px, solid, #000000; border-radius: 10px; background-image: url(http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=150); margin-left: 2em; margin-bottom: 1em;"></div>
10 10
 
11
-I'm a 19 year old Information Engineering student from Germany, mostly building cool stuff with AVR microcontrollers.
11
+I'm a 19 year old Information Engineering student from Germany, mostly building stuff with AVR microcontrollers.
12 12
 All of my projects are released as [Free Software][fs] on my [GitHub Profile][gh], as well as on this Website. Have fun!
13 13
 
14 14
 It would be nice if you could use this [Amazon.de Affiliate Link][ama].
15 15
 
16
-<div style="margin-left: auto; margin-right: auto; margin-top: 1em; margin-bottom: 1em;">
17
-<iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 110px;width: 200px;overflow: hidden;"></iframe>
18
-<div style="width: 150px; height: 150px; float: right; border: 2px, solid, #000000; border-radius: 10px; background-image: url(http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=150)"></div>
19
-</div>
20
-
21
-[09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0][2]
22
-
23
-[46 DC EA D3 17 FE 45 D8 09 23 EB 97 E4 95 64 10 D4 CD B2 C2][3]
24
-
25
-<pre>
26
------BEGIN GEEK CODE BLOCK-----
27
-Version: 3.12
28
-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?*
29
-------END GEEK CODE BLOCK------
30
-</pre>
31
-
32
-<div style="width: 520px; max-width: 100%; margin-left: auto; margin-right: auto;">
33
-<a class="twitter-timeline" data-dnt="true" href="https://twitter.com/xythobuz" data-widget-id="318732638158471170">Tweets by @xythobuz</a>
34
-<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
35
-</div>
36
-
37
- [1]: http://www.xythobuz.de/cubehook.php
38
- [2]: http://en.wikipedia.org/wiki/HD_DVD_encryption_key_controversy
39
- [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/
40
- [fs]: http://www.gnu.org/philosophy/free-sw.html
41
- [gh]: https://github.com/xythobuz
42
- [ama]: http://www.amazon.de/?_encoding=UTF8&amp;camp=1638&amp;creative=19454&amp;linkCode=ur2&amp;site-redirect=de&amp;tag=xythobuzorg-21
43
-
44
-lang: de
45
-
46
-# Willkommen
47
-
48
-Hier findest du (immer mehr) Informationen zu Projekten von mir. Gerne höre ich Feedback über E-Mail. Viel Spaß!
49
-
50
-<div style="width: 400px; height: 110px; margin-left: auto; margin-right: auto; margin-top: 1em; margin-bottom: 1em;">
51
-<iframe src="http://githubbadge.appspot.com/badge/xythobuz?a=0" style="border: 0;height: 110px;width: 200px;overflow: hidden;"></iframe>
52
-<div style="width: 110px; height: 110px; float: right; border: 2px, solid, #000000; border-radius: 10px; background-image: url(http://www.gravatar.com/avatar/8d18fec40a74782052fb4c007d212475?s=110)"></div>
53
-</div>
54
-
55
-[09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0][2]
16
+### Recent Posts
56 17
 
57
-[46 DC EA D3 17 FE 45 D8 09 23 EB 97 E4 95 64 10 D4 CD B2 C2][3]
18
+<!--%
19
+from datetime import datetime
20
+posts = [p for p in pages if "post" in p] # get all blog post pages
21
+posts.sort(key=lambda p: p.get("date"), reverse=True) # sort post pages by date
22
+for p in posts[0:4]:
23
+    date = datetime.strptime(p.date, "%Y-%m-%d").strftime("%B %d, %Y")
24
+    print "  * **[%s](%s)** - %s" % (p.post, p.url, date) # markdown list item
25
+%-->
26
+  * **[more...](blog.html)**
58 27
 
59
-<pre>
60
------BEGIN GEEK CODE BLOCK-----
61
-Version: 3.12
62
-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?*
63
-------END GEEK CODE BLOCK------
64
-</pre>
28
+### Tweets
65 29
 
66
-<div style="width: 520px; max-width: 100%; margin-left: auto; margin-right: auto;">
67
-<a class="twitter-timeline" data-dnt="true" href="https://twitter.com/xythobuz" data-widget-id="318732638158471170">Tweets by @xythobuz</a>
30
+<div style="width: 100%; margin-left: auto; margin-right: auto;">
31
+<a class="twitter-timeline" data-dnt="true" href="https://twitter.com/xythobuz" data-widget-id="318732638158471170" data-chrome="noheader nofooter">Tweets by @xythobuz</a>
68 32
 <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
69 33
 </div>
70 34
 
71 35
  [1]: http://www.xythobuz.de/cubehook.php
72
- [2]: http://en.wikipedia.org/wiki/HD_DVD_encryption_key_controversy
73
- [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/
74 36
  [fs]: http://www.gnu.org/philosophy/free-sw.html
75 37
  [gh]: https://github.com/xythobuz
76
- [ama]: http://www.amazon.de/?_encoding=UTF8&amp;camp=1638&amp;creative=19454&amp;linkCode=ur2&amp;site-redirect=de&amp;tag=xythobuzorg-21
38
+ [ama]: http://www.amazon.de/?_encoding=UTF8&amp;camp=1638&amp;creative=19454&amp;linkCode=ur2&amp;site-redirect=de&amp;tag=xythobuzorg-21

+ 1
- 16
input/projects/hardware.md View File

@@ -4,22 +4,7 @@ position: 4
4 4
 compat: hw
5 5
 ---
6 6
 
7
-# {{ page.title }}
8
-
9
-These are my mostly hardware-related projects and articles.
10
-
11
-<!--%
12
-mpages = [p for p in pages if p.get("parent", "") == "hardware" and p.lang == "en"]
13
-mpages.sort(key=lambda p: int(p["position"]))
14
-for p in mpages:
15
-    print "  * **[%s](%s)**" % (p.title, p.url) # markdown list item
16
-%-->
17
-
18
-lang: de
19
-
20
-# {{ page.title }}
21
-
22
-Dies sind meine Projekte, deren Schwerpunkt eher im Bereich Hardware liegen.
7
+### {{ page.title }}
23 8
 
24 9
 <!--%
25 10
 mpages = [p for p in pages if p.get("parent", "") == "hardware" and p.lang == "en"]

+ 2
- 2
input/projects/hardware/ledmatrix.md View File

@@ -11,7 +11,7 @@ reddit: true
11 11
 print: true
12 12
 ---
13 13
 
14
-# {{ page.title }}
14
+### {{ page.title }}
15 15
 
16 16
 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:
17 17
 
@@ -26,7 +26,7 @@ This is a school project: an 8x10 LED matrix. The circuit is based on [this][1],
26 26
 
27 27
 lang: de
28 28
 
29
-# {{ page.title_de }}
29
+### {{ page.title_de }}
30 30
 
31 31
 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:
32 32
 

+ 2
- 2
input/projects/hardware/serialdebug.md View File

@@ -11,7 +11,7 @@ reddit: true
11 11
 print: true
12 12
 ---
13 13
 
14
-# {{ page.title }}
14
+### {{ page.title }}
15 15
 
16 16
 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.
17 17
 
@@ -31,7 +31,7 @@ A 8x5 LED Matrix controlled by an AtTiny2313 which communicates via a FT232R wit
31 31
 
32 32
 lang: de
33 33
 
34
-# {{ page.title_de }}
34
+### {{ page.title_de }}
35 35
 
36 36
 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.
37 37
 

+ 2
- 2
input/projects/hardware/ssop28.md View File

@@ -10,7 +10,7 @@ twitter: xythobuz
10 10
 reddit: true
11 11
 ---
12 12
 
13
-# {{ page.title }}
13
+### {{ page.title }}
14 14
 
15 15
 This is a small PCB to use a SSOP28 SMT IC in a Breadboard or similar with 1" (2,54mm) pin-distance:
16 16
 
@@ -23,7 +23,7 @@ This is a small PCB to use a SSOP28 SMT IC in a Breadboard or similar with 1" (2
23 23
 
24 24
 lang: de
25 25
 
26
-# {{ page.title_de }}
26
+### {{ page.title_de }}
27 27
 
28 28
 Hier das Layout eines SSOP28 - DIL Adapters:
29 29
 

+ 2
- 2
input/projects/hardware/xyrobot.md View File

@@ -12,7 +12,7 @@ reddit: true
12 12
 print: true
13 13
 ---
14 14
 
15
-# {{ page.title }}
15
+### {{ page.title }}
16 16
 
17 17
 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].
18 18
 
@@ -79,7 +79,7 @@ for p in mpages:
79 79
 
80 80
 lang: de
81 81
 
82
-# {{ page.title_de }}
82
+### {{ page.title_de }}
83 83
 
84 84
 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].
85 85
 

+ 4
- 4
input/projects/hardware/xyrobot/bluetooth.md View File

@@ -11,7 +11,7 @@ reddit: true
11 11
 print: true
12 12
 ---
13 13
 
14
-# {{ page.title }}
14
+### {{ page.title }}
15 15
 
16 16
 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].
17 17
 
@@ -35,7 +35,7 @@ Here's the Layout of a BTM-222 Bluetooth PCB, following the [Roboternetz Guideli
35 35
 
36 36
 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.
37 37
 
38
-## Interfacing the BTM-222
38
+### Interfacing the BTM-222
39 39
 
40 40
 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.
41 41
 
@@ -54,7 +54,7 @@ Before using the BTM-222 you have to configure it. You can change the speed, dat
54 54
 
55 55
 lang: de
56 56
 
57
-# {{ page.title_de }}
57
+### {{ page.title_de }}
58 58
 
59 59
 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].
60 60
 
@@ -78,7 +78,7 @@ Hier das Layout einer Adapterplatine für den BTM-222 Bluetooth IC im [Roboterne
78 78
 
79 79
 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.
80 80
 
81
-## Ansteuerung des BTM-222
81
+### Ansteuerung des BTM-222
82 82
 
83 83
 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.
84 84
 

+ 2
- 2
input/projects/hardware/xyrobot/k6x4008.md View File

@@ -12,7 +12,7 @@ reddit: true
12 12
 print: true
13 13
 ---
14 14
 
15
-# {{ page.title }}
15
+### {{ page.title }}
16 16
 
17 17
 [![Photo 1][1]][2]
18 18
 
@@ -31,7 +31,7 @@ My xyRobot uses a [K6x4008 512K SRAM][3] to store pictures from it's Gameboy Cam
31 31
 
32 32
 lang: de
33 33
 
34
-# {{ page.title_de }}
34
+### {{ page.title_de }}
35 35
 
36 36
 [![Photo 1][1]][2]
37 37
 

+ 2
- 2
input/projects/hardware/xyrobot/rremote.md View File

@@ -11,7 +11,7 @@ reddit: true
11 11
 print: true
12 12
 ---
13 13
 
14
-# {{ page.title }}
14
+### {{ page.title }}
15 15
 
16 16
 rRemote is a addin for Casio fx9860G calculators written in C. It allows you to send data over the 3-Pin serial port.
17 17
 
@@ -27,7 +27,7 @@ The project [fxSDK][2] has helped me a lot. You can find documentation about the
27 27
 
28 28
 lang: de
29 29
 
30
-# {{ page.title_de }}
30
+### {{ page.title_de }}
31 31
 
32 32
 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.
33 33
 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.

+ 2
- 2
input/projects/hardware/xyrobot/xyrobotremote.md View File

@@ -12,7 +12,7 @@ reddit: true
12 12
 print: true
13 13
 ---
14 14
 
15
-# {{ page.title }}
15
+### {{ page.title }}
16 16
 
17 17
 xyRobotRemote is a Cross-Platform Java GUI App. It controls the [xyRobot][1].
18 18
 
@@ -41,7 +41,7 @@ That's what the GUI looked like earlier, when it was written as X11 App.
41 41
 
42 42
 lang: de
43 43
 
44
-# {{ page.title_de }}
44
+### {{ page.title_de }}
45 45
 
46 46
 xyRobotRemote ist eine Cross-Plattform Java GUI App. Sie dient der Fernsteuerung des [xyRobot][1] Roboters.
47 47
 

+ 1
- 16
input/projects/software.md View File

@@ -4,22 +4,7 @@ position: 3
4 4
 compat: sw
5 5
 ---
6 6
 
7
-# {{ page.title }}
8
-
9
-These are my mostly software-related projects and articles.
10
-
11
-<!--%
12
-mpages = [p for p in pages if p.get("parent", "") == "software" and p.lang == "en"]
13
-mpages.sort(key=lambda p: int(p["position"]))
14
-for p in mpages:
15
-    print "  * **[%s](%s)**" % (p.title, p.url) # markdown list item
16
-%-->
17
-
18
-lang: de
19
-
20
-# {{ page.title }}
21
-
22
-Dies sind meine Projekte, deren Schwerpunkt eher im Bereich Software liegen.
7
+### {{ page.title }}
23 8
 
24 9
 <!--%
25 10
 mpages = [p for p in pages if p.get("parent", "") == "software" and p.lang == "en"]

+ 2
- 2
input/projects/software/avrserial.md View File

@@ -12,7 +12,7 @@ reddit: true
12 12
 print: true
13 13
 ---
14 14
 
15
-# {{ page.title }}
15
+### {{ page.title }}
16 16
 
17 17
 The avrSerial Library enables interrupt-driven UART communication on all available UART modules. Each module has it's own receive and transmit buffer. XON/XOFF Flow Control for the receiving end can be enabled. At the moment, the following AtMega types are supported:
18 18
 
@@ -43,7 +43,7 @@ To add another processor, just get the register names from the data sheet and pu
43 43
 
44 44
 lang: de
45 45
 
46
-# {{ page.title_de }}
46
+### {{ page.title_de }}
47 47
 
48 48
 Die avrSerial Library ermöglicht Interruptgesteuerte UART kommunikation mit allen verfügbaren UART Modulen. Jedes Modul hat einen eigenen Sende- und Empfangspuffer. XON/XOFF Flow Control kann auf Empfangsseite aktiviert werden. Unterstützt werden momentan folgende AtMega Typen:
49 49
 

+ 2
- 2
input/projects/software/c250.md View File

@@ -11,7 +11,7 @@ reddit: true
11 11
 print: true
12 12
 ---
13 13
 
14
-# Mio C220 / C250 Unlock
14
+### Mio C220 / C250 Unlock
15 15
 
16 16
 In short:
17 17
 
@@ -28,7 +28,7 @@ Done!
28 28
 
29 29
 lang: de
30 30
 
31
-# Mio C220 / C250 Unlock
31
+### Mio C220 / C250 Unlock
32 32
 
33 33
 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.
34 34
 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.

+ 1
- 1
input/projects/software/nas.md View File

@@ -11,7 +11,7 @@ reddit: true
11 11
 print: true
12 12
 ---
13 13
 
14
-# {{ page.title }}
14
+### {{ page.title }}
15 15
 
16 16
 1.  root Access (by Jayare)
17 17
     *   Install the device like a normal user would

+ 2
- 2
input/projects/software/serialhelper.md View File

@@ -12,7 +12,7 @@ reddit: true
12 12
 print: true
13 13
 ---
14 14
 
15
-# {{ page.title }}
15
+### {{ page.title }}
16 16
 
17 17
 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.
18 18
 
@@ -49,7 +49,7 @@ Terminal Mode (send stdin and recieve to stdout):
49 49
 
50 50
 lang: de
51 51
 
52
-# {{ page.title_de }}
52
+### {{ page.title_de }}
53 53
 
54 54
 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.
55 55
 

+ 3
- 3
input/projects/software/ultimatenotifier.md View File

@@ -11,7 +11,7 @@ reddit: true
11 11
 print: true
12 12
 ---
13 13
 
14
-# {{ page.title }}
14
+### {{ page.title }}
15 15
 
16 16
 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:
17 17
 
@@ -41,7 +41,7 @@ With the command
41 41
 
42 42
 <pre>crontab -e</pre>
43 43
 
44
->You can add a cronfile entry. To execute the script every 30 minutes, use this:
44
+You can add a cronfile entry. To execute the script every 30 minutes, use this:
45 45
 
46 46
 <pre>*/30 * * * * /Users/anon/bin/ipnotify.sh</pre>
47 47
 
@@ -121,7 +121,7 @@ fi
121 121
 
122 122
 lang: de
123 123
 
124
-# {{ page.title_de }}
124
+### {{ page.title_de }}
125 125
 
126 126
 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:
127 127
 

+ 2
- 2
input/projects/software/yasab.md View File

@@ -12,7 +12,7 @@ reddit: true
12 12
 print: true
13 13
 ---
14 14
 
15
-# YASAB - Yet another simple AVR Bootloader
15
+### YASAB - Yet another simple AVR Bootloader
16 16
 
17 17
 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.
18 18
 
@@ -46,7 +46,7 @@ Upload finished after 28.0 seconds.
46 46
 
47 47
 lang: de
48 48
 
49
-# YASAB - Yet another simple AVR Bootloader
49
+### YASAB - Yet another simple AVR Bootloader
50 50
 
51 51
 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.
52 52
 

+ 1
- 1
input/reviews/tex_beetle.md View File

@@ -4,7 +4,7 @@ comments: true
4 4
 flattr: true
5 5
 ---
6 6
 
7
-# {{ page.title }}
7
+### {{ page.title }}
8 8
 
9 9
 On June 5th I ordered the [Tex Beetle][texbeetle] from [MechanicalKeyboards.com][shop]. It shipped one day later and after about two weeks I received a notification from the German customs office. Including import sales tax and shipping, I had to pay 160 Euros.
10 10
 

+ 2
- 2
input/unlisted/404.md View File

@@ -1,8 +1,8 @@
1 1
 title: 404
2 2
 ---
3 3
 
4
-# {{ page.title }}
4
+### {{ page.title }}
5 5
 
6
-## Page not found!
6
+### Page not found!
7 7
 
8 8
 These are not the Droids you are looking for!

input/projects/software/avrnetstack.md → input/unlisted/avrnetstack.md View File


+ 1
- 1
input/unlisted/language.md View File

@@ -2,6 +2,6 @@ title: Language
2 2
 parent: none
3 3
 ---
4 4
 
5
-# {{ page.title }}
5
+### {{ page.title }}
6 6
 
7 7
 You should only reach this page if your Javascript is disabled, and you clicked on the Language link. To reach the german version of an article, just add .de before .html in the URL bar.

input/projects/hardware/xycontrol.md → input/unlisted/xycontrol.md View File


+ 32
- 83
page.html View File

@@ -9,14 +9,11 @@
9 9
     <link rel="author" href="xythobuz@xythobuz.de">
10 10
     <link rel="shortcut icon" href="img/favicon.ico">
11 11
     <link rel="alternate" type="application/rss+xml" title="Blog" href="rss.xml">
12
+    <link type="text/css" rel="stylesheet" href="css/style.css" />
12 13
     <link type="text/css" rel="stylesheet" href="css/sh_bright.min.css" />
13
-    <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" media="screen" />
14
-    <link rel="stylesheet" href="css/bootstrap-responsive.min.css" type="text/css" media="screen" />
15
-    <link rel="stylesheet" href="css/gh-fork-ribbon.css" />
16
-    <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
14
+    <link type="text/css" rel="stylesheet" href="css/gh-fork-ribbon.css" />
15
+    <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Droid+Sans:400,700">
17 16
     <script type="text/javascript" src="js/sh_main.js"></script>
18
-    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
19
-    <script type="text/javascript" src="js/bootstrap.min.js"></script>
20 17
     <!--%
21 18
         if page.get("flattr", "false") == "true":
22 19
             print "<script type='text/javascript'>"
@@ -33,7 +30,7 @@
33 30
             print "</script>"
34 31
     %-->
35 32
 </head>
36
-<body onload="sh_highlightDocument('/js/sh/', '.min.js');" style="font-size: 1.1em; font-family: 'Droid Sans', sans-serif;">
33
+<body onload="sh_highlightDocument('/js/sh/', '.min.js');">
37 34
     <!--%
38 35
         if page.get("github", "") != "":
39 36
             # GitHub Fork-Me Ribbon
@@ -42,68 +39,34 @@
42 39
             print page.github
43 40
             print '">Fork me on GitHub</a></div></div>'
44 41
     %-->
45
-    <div class="navbar navbar-fixed-top">
46
-        <div class="navbar-inner">
47
-            <ul class="nav">
48
-                <!--%
49
-                    mpages = [p for p in pages if p.get("parent", "") == "main" and p.lang == "en"]
50
-                    mpages.sort(key=lambda p: int(p["position"]))
51
-                    entry = '<li><a href="%s">%s</a></li>'
52
-                    newEntry = '<li class="dropdown"><a href="%s" class="dropdown-toggle" data-toggle="dropdown">%s<b class="caret"></b></a><ul class="dropdown-menu">'
53
-                    newEntry2 = '<li class="dropdown-submenu"><a href="%s" class="dropdown-toggle disabled" data-toggle="dropdown">%s</a><ul class="dropdown-menu">'
54
-                    for p in mpages:
55
-                        sub = [r for r in pages if r.get("parent", "") == p.url.replace("/", "").replace(".html", "") and r.lang == "en"]
56
-                        sub.sort(key=lambda r: int(r["position"]))
57
-                        if len(sub) > 0:
58
-                            print(newEntry % (htmlspecialchars(p["url"]), htmlspecialchars(p["title"])))
59
-                            for r in sub:
60
-                                subsub = [s for s in pages if s.get("parent", "") == r.url.replace("/", "").replace(".html", "") and s.lang == "en"]
61
-                                subsub.sort(key = lambda s: int(s["position"]))
62
-                                if len(subsub) > 0:
63
-                                    print(newEntry2 % (htmlspecialchars(r["url"]), htmlspecialchars(r["title"])))
64
-                                    for s in subsub:
65
-                                        print(entry % (htmlspecialchars(s["url"]), htmlspecialchars(s["title"])))
66
-                                    print("</ul>")
67
-                                else:
68
-                                    print(entry % (htmlspecialchars(r["url"]), htmlspecialchars(r["title"])))
69
-                            print("</ul>")
70
-                        else:
71
-                            print(entry % (htmlspecialchars(p["url"]), htmlspecialchars(p["title"])))
72
-                %-->
73
-                <li class="divider-vertical"></li>
74
-                <li><a href="http://xythobuz.de/lastmusic">♫</a></li>
75
-                <!--%
76
-                        tmp = [p for p in page["lang_links"].iteritems()]
77
-                        if len(tmp) > 1:
78
-                            print '<li class="divider-vertical"></li>'
79
-                            print '<li class="dropdown"><a href="language.html" class="dropdown-toggle" data-toggle="dropdown">Language<b class="caret"></b></a><ul class="dropdown-menu">'
80
-                            print " ".join(["<li><a href='%s'>%s</a></li>" % (url, lang) for lang, url in page["lang_links"].iteritems()]).replace(">en<", ">English<").replace(">de<", ">Deutsch<")
81
-                            print "</ul></li>"
82
-                            print ''
83
-                %-->
84
-                <li class="divider-vertical"></li>
85
-                <script type="text/javascript">
86
-                    function sitesearch(curobj) {
87
-                        curobj.q.value = "site:xythobuz.de " + curobj.r.value
88
-                    }
89
-                </script>
90
-                <form class="navbar-search" action="http://www.google.com/search" method="get" onSubmit="sitesearch(this)">
91
-                    <input name="q" type="hidden" />
92
-                    <input name="r" type="text" class="search-query span2" placeholder="Search..." />
93
-                </form>
94
-            </ul>
95
-        </div>
42
+    <div id="nav">
43
+        <ul>
44
+            <li id="home"><a href="index.html">xythobuz.de</a></li>
45
+            <!--%
46
+                mpages = [p for p in pages if p.get("parent", "") == "main" and p.lang == "en"]
47
+                mpages.sort(key=lambda p: int(p["position"]))
48
+                entry = '<li><a href="%s">%s</a></li>'
49
+                for p in mpages[1:]:
50
+                    print(entry % (htmlspecialchars(p["url"]), htmlspecialchars(p["title"])))
51
+            %-->
52
+            <li><a href="http://xythobuz.de/lastmusic">♫</a></li>
53
+            <!--%
54
+                #tmp = [p for p in page["lang_links"].iteritems()]
55
+                #if len(tmp) > 1:
56
+                    #print '<li class="dropdown"><a href="language.html" class="dropdown-toggle" data-toggle="dropdown">Language<b class="caret"></b></a><ul class="dropdown-menu">'
57
+                    #print " ".join(["<li><a href='%s'>%s</a></li>" % (url, lang) for lang, url in page["lang_links"].iteritems()]).replace(">en<", ">English<").replace(">de<", ">Deutsch<")
58
+                    #print "</ul></li>"
59
+            %-->
60
+        </ul>
96 61
     </div>
97
-
98
-    <div style="width: 75%; margin-left: auto; margin-right: auto; padding-top: 50px;">
62
+    <div style="width: 75%; margin-left: auto; margin-right: auto;">
99 63
         {{ __content__ }}
100 64
         <!--%
101 65
             import sys
102 66
 
103
-            # Horizontal Line and Centered DIV
67
+            # Centered DIV
104 68
             if page.get("flattr", "false") == "true" or page.get("twitter", "") != "" or page.get("reddit", "") != "" or page.get("github", "") != "" or page.get("print", "false") == "true":
105
-                print '<hr>'
106
-                print '<div style="text-align: center;">'
69
+                print '<div style="margin-top: 1em; text-align: center;">'
107 70
 
108 71
             # Print and PDF Buttons
109 72
             if page.get("print", "false") == "true":
@@ -164,12 +127,9 @@
164 127
             if page.get("flattr", "false") == "true" or page.get("twitter", "") != "" or page.get("reddit", "") != "" or page.get("github", "") != "" or page.get("print", "false") == "true":
165 128
                 print '</div>'
166 129
 
167
-            if page.get("comments", "false") != "true":
168
-                print '<hr>'
169
-
170 130
             # Disqus Comments
171 131
             if page.get("comments", "false") == "true":
172
-                print '<hr><div id="disqus_thread"></div>'
132
+                print '<div id="disqus_thread"></div>'
173 133
                 print '<script type="text/javascript">'
174 134
                 print 'var disqus_shortname = "xythobuz";'
175 135
                 print '(function() {'
@@ -185,25 +145,14 @@
185 145
         %-->
186 146
     </div>
187 147
 
188
-    <div style="color: gray; text-align: center;">
189
-        Made with <a href="http://bitbucket.org/obensonne/poole">Poole</a>, <a href="http://twitter.github.io/bootstrap/index.html">Bootstrap</a> and <a href="http://shjs.sourceforge.net">SHJS</a>
148
+    <div id="footer">
149
+        <a href="http://bitbucket.org/obensonne/poole">Poole</a>
150
+        &middot;
151
+        <a href="http://shjs.sourceforge.net">SHJS</a>
190 152
         &middot;
191
-        Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
153
+        <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
192 154
     </div>
193 155
     <img src="http://xythobuz.de/stats/count.php?img" alt="Analytics">
194 156
     <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
195
-    <script type="text/javascript">
196
-        var _gaq = _gaq || [];
197
-        _gaq.push(['_setAccount', 'UA-39163591-1']);
198
-        _gaq.push(['_setDomainName', 'xythobuz.org']);
199
-        _gaq.push(['_setAllowLinker', true]);
200
-        _gaq.push(['_trackPageview']);
201
-        setTimeout("_gaq.push(['_trackEvent', '30_seconds', 'read'])", 30000);
202
-        (function() {
203
-            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
204
-            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
205
-            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
206
-        })();
207
-    </script>
208 157
 </body>
209 158
 </html>

+ 0
- 9
static/css/bootstrap-responsive.min.css
File diff suppressed because it is too large
View File


+ 0
- 9
static/css/bootstrap.min.css
File diff suppressed because it is too large
View File


+ 61
- 0
static/css/style.css View File

@@ -0,0 +1,61 @@
1
+body {
2
+    font-size: 1.2em;
3
+    font-family: 'Droid Sans', sans-serif;
4
+}
5
+
6
+#nav ul {
7
+    list-style-type: none;
8
+}
9
+
10
+#nav ul li {
11
+    display: inline;
12
+    margin-right: 0.5em;
13
+}
14
+
15
+#home {
16
+    font-size: 2.5em;
17
+    margin-right: 0.5em;
18
+}
19
+
20
+#nav a:link {
21
+    color: black;
22
+    font-weight: bold;
23
+    text-decoration: none;
24
+}
25
+
26
+#nav a:visited {
27
+    color: black;
28
+    font-weight: bold;
29
+    text-decoration: none;
30
+}
31
+
32
+pre {
33
+    max-height: 300px;
34
+    overflow: scroll;
35
+    font-size: 0.9em;
36
+    padding: 10px;
37
+    margin: 1em;
38
+    border-style: solid;
39
+    border-width: 2px;
40
+    border-color: orange;
41
+    border-radius: 10px;
42
+}
43
+
44
+iframe[id^='twitter-widget-'] {
45
+    width: 100%;
46
+}
47
+
48
+#footer {
49
+    color: gray;
50
+    text-align: center;
51
+    margin-top: 1em;
52
+    font-size: small;
53
+}
54
+
55
+#footer a:link {
56
+    color: gray;
57
+}
58
+
59
+#footer a:visited {
60
+    color: gray;
61
+}

+ 0
- 6
static/js/bootstrap.min.js
File diff suppressed because it is too large
View File


Loading…
Cancel
Save