PhiLIOsoph

Willkommen auf meiner Homepage. Mein Name ist Robert Nitsch und ich studiere momentan B.Sc. Informatik an der TU Darmstadt.

In diesem Blog schreibe ich seit Ende 2006 über meine Ansichten, Projekte und mehr oder weniger alltäglichen Erlebnisse. Ab und zu schreibe ich auch eine Anleitung bzw. ein Tutorial, um ein bestimmtes Problem zu lösen oder Hilfestellung zu geben. Solltest du Gefallen an meinen Texten finden kannst du selbstverständlich auch meinen Feed abonnieren.



Seite:  Vorherige Seite 1 2 ...19 20 21 ...25 26 Nächste Seite
11.04.2007

Fahrradtour -> Straßburg

Filed under: Real Life — Robert @ 14:42:11

Ab morgen geht es 3 Tage lang mit dem Fahrrad nach Straßburg. Am Sonntag, dem 15.04. fahren wir mit dem Zug wieder zurück. Das Ganze mache ich natürlich nicht alleine, sondern mit ein paar Freunden.

Kommentare sind möglich, müssen jedoch erst freigeschaltet werden. Das Forum ist ebenfalls geschlossen und alles andere deaktiviere ich auch noch. (Ansonsten ist das legale Führen einer Website gar nicht möglich. Den Juristen sei Dank! *ironie*)

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Technorati
  • Google Bookmarks
  • Yigg
  • Digg
04.04.2007

Python, das turtle-Modul und Fraktale

Filed under: Informatik,Mathematik,Python,Tutorials — Robert @ 10:54:02

Ich hätte ja nicht gedacht, dass es so lustig sein kann, mit Fraktalen herumzuexperimentieren … aber das kann es doch. Ein bisschen Interesse natürlich vorrausgesetzt.

Mit Hilfe des Lehrmaterials “Turtle-Grafik und Fraktale Geometrie” (http://miami.uni-muenster.de/servlets/DocumentServlet?id=1522) konnte ich auch recht schnell einsteigen. Die Schilderungen und die Quelltexte sind auf das Modul turtle bezogen und sind somit grundsätzlich plattformunabhängig. Dennoch empfehle ich Python für diese Experimente, denn dort ist das turtle-Modul bereits integriert und lässt sich phänomenal einfach verwenden.

Das turtle-Modul

Das turtle-Modul ist eine Sammlung an Funktionen, mit deren Hilfe sich ein “Malstift” bzw. “turtle” steuern lässt. Mit Anweisungen wie left(), right(), forward() und backward() kann man einfachste Bewegungen koordinieren. Packt man derartige Anweisungen in rekursive Funktionen, so ergibt sich mit etwas Glück ein immerwiederkehrendes selbstähnliches Gebilde – ein Fraktal.

Die Dokumentation des pythoneigenen turtle-Moduls ist hier zu finden:

http://docs.python.org/lib/module-turtle.html

Die Kochkurve

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# coding=UTF-8
from turtle import *
import time
 
 
def kochkurve(t, s):
    if(t==0):
        # wenn die gewünschte rekursionstiefe (sprich: feinheit der bewegungen) erreich ist,
        # soll das ganze auf dem bildschirm umgesetzt werden
        forward(s)
    else:
        # die bewegungen der "turtle" werden rekursiv verfeinert
        kochkurve(t-1, s/3)
        left(60)
        kochkurve(t-1, s/3)
        left(-120)
        kochkurve(t-1, s/3)
        left(60)
        kochkurve(t-1, s/3)
 
 
# koch'sche schneeflocke, zusammengesetzt aus mehreren kochkurven
kochkurve(3, 100)
left(-90)
color(1,0,0)
kochkurve(3, 100)
left(-90)
color(0,1,0)
kochkurve(3, 100)
left(-90)
color(0,0,1)
kochkurve(3, 100)
 
# die methode done(), die die hauptschleife betritt, ist offenbar nicht verfügbar :-(
time.sleep(10)
done()

Die Rekursionstiefe (t) bestimmt die Feinheit der Bewegungen. Der Parameter s definiert die Gesamtlänge der Kochkurve.

Ich habe die Funktion am Ende mehrfach aufgerufen, sodass eine sogenannte Koch’sche Schneeflocke entsteht. Eine Koch’sche Schneeflockte besteht aus mehreren Kochkurven, die man aneinandergehängt hat. Und hängt man 4 Kochkurven im Winkel von 90° aneinander, so ergibt sich folgendes Gebilde:

Koch’sche Schneeflocke

Der fraktale Baum

Fraktale Bäume haben mich irgendwie schon immer beschäftigt. Man stelle sich einen Körper vor, von dem etliche Zweige und Äste abgehen. Von jedem Zweig und jedem Ast gehen erneut ebensoviele Zweige und Äste ab – diesmal nur wesentlich kleiner. Und von diesen kleinen Ästen gehen wieder Äste ab … immer wieder … und jedes Mal werden sie kleiner. Ich hatte meinen Spaß daran mir den kleinsten denkbaren Ast vorzustellen. Natürlich hatte dieser Gedankengang nie ein Ende. Aber wenn man jung ist… ;)

Mit dem turtle-Modul lassen sich natürlich auch fraktale Bäume erzeugen.

Z.Bsp. hiermit:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# coding=UTF-8
from turtle import *
import time
 
 
def baum(s,t):
    if(t >= 0):
        forward(s)
        left(30)
        baum(s*0.6, t-1)
        right(75)
        baum(s*0.7, t-1)
        left(45)
        backward(s)
 
 
sety(-100)
baum(100,7)
 
# die methode done(), die die hauptschleife betritt, ist offenbar nicht verfügbar :-(
time.sleep(10)
done()

Mit Hilfe des Parameters t lässt sich auch hier die Rekursionstiefe festlegen.

Der Code ergibt, wenn man ihn mit dem Python-Compiler aufruft, folgendes:

Fraktaler Baum

Selbstverständlich lassen sich Winkel und Streckenlängen variieren. In diesem konkreten Fall ist der linke Ast um 30° (nach links), der rechte um 45° (nach rechts) abgewinkelt. Der linke Ast hat die Länge 0,6*s – das entspricht 60% der Länge des Mutterastes. Der rechte Ast hat jeweils die Länge 0,7*s – also 70% der Länge des Mutterastes.

Weitere Anregungen

Fischpopulationen im Lehrerzimmer mit Tkinter (kleine Andeutung am Rande ;) )

Turtle-Grafik und fraktale Geometrie

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Technorati
  • Google Bookmarks
  • Yigg
  • Digg
31.03.2007

Kubuntu vs. WLAN

Filed under: Kubuntu — Robert @ 18:16:46

Es war ein relativ langer Kampf, den ich letztendlich, wenn auch erst nach einigen Niederlagen, doch noch gewonnen habe. Ich schreibe diesen Artikel unter Kubuntu und verwende kein LAN-Kabel. Stattdessen werden die Bits und Bytes zwischen meinem PC und dem Router über eine drahtlose Verbindung übertragen. Diese Verbindung ist darüber hinaus WPA-verschlüsselt.

Bisher war das leider nicht mit Linux möglich. Ich konnte meinem lieben Kubuntu-System, das noch relativ frisch ist (~4 Monate), nicht beibringen, dass es sich in dieses verschlüsselte Drahtlosnetzwerk einklinken soll. Und das, obwohl ich mir mehrere Tutorials und Anleitungen angesehen hatte.

Heute habe ich mich aber nochmal drangesetzt und energisch auf der Tastatur herumgehauen. :) Offensichtlich habe ich es geschafft.

Das Notebook und die Umstände

Mein Notebook ist ein Intel Centrino® Mobile Notebook mit einer Intel BG PRO 2200 WLAN-Karte (oder ähnlicher Name).

Das Drahtlosnetzwerk ist WPA-PSK verschlüsselt und verwendet TKIP.

Im Detail

Für WPA-verschlüsselte Netzwerke hat die Standardinstallation von Kubuntu nicht viel zu bieten. Stattdessen muss man den wpa_supplicant installieren – einen Dienst, der WLAN-Verbindungen verwaltet und aufrecht erhält.

Die Konfiguration des Dienstes kann theoretisch in einer beliebigen Textdatei vorgenommen werden. Üblich ist jedoch die Datei /etc/wpa_supplicant.conf.

In dieser Datei steht bei mir z.B. folgendes:

ctrl_interface_group=admin

# WPA-PSK/TKIP

ctrl_interface=/var/run/wpa_supplicant

network={
        ssid="noname"
        key_mgmt=WPA-PSK
        proto=WPA
        pairwise=TKIP
        group=TKIP
        psk="unser wlan passwort im klartext"
}

Die wichtigsten Zeilen beschreibe ich im Folgenden.

ctrl_interface_group=admin legt die Benutzergruppe fest, die dazu berechtigt ist, mittels wpa_cli, einem Hilfsprogramm, den interaktiven Modus des wpa_supplicants zu nutzen. Dort kann man dem wpa_supplicant dann während der Laufzeit Kommandos geben, z.B. um erneut nach Netzwerken zu suchen. Sogar die Konfiguration kann zur Laufzeit beeinflusst werden.

ssid=”noname” legt die SSID, d.h. grob gesagt den “Namen” des Drahtlosnetzwerks fest, zu welchem verbunden werden soll.

psk=”unser wlan passwort im klartext” legt die Passphrase des Drahtlosnetzwerks fest, mit der die Verbindung aufgebaut werden kann.

Die Datei /etc/network/interfaces

In dieser Datei wird bei Kubuntu die Konfiguration der Netzwerkadapter gespeichert. Ich möchte gar nicht viel weiter darauf eingehen, denn diese Datei kann jeder Kubuntu-Benutzer auch schnell mal selbst öffnen, um ein Bild davon zu bekommen.

Jedoch möchte ich niemandem einen kleinen Trick vorenthalten:

Es wäre praktisch, wenn der wpa_supplicant automatisch dann gestartet wird, wenn die WLAN-Verbindung (in meinem Fall das “interface” mit der Kennung “eth0″) aktiviert wird. Bei der Deaktivierung der WLAN-Verbindung sollte er optimalerweise wieder beendet werden. Ich habe dies mit den beiden folgenden Anweisungen, die in den entsprechenden Teil in der /etc/network/interfaces-Datei geschrieben werden müssen, gelöst:

pre-up wpa_supplicant -Bw -ieth0 -Dwext -c/etc/wpa_supplicant.conf
post-down killall -q wpa_supplicant

Jeder Netzwerkadapter, also eth0, eth1, …, ethn (bzw. wlan0, …) hat in der interfaces-Datei seinen eigenen Abschnitt. Die beiden Zeilen müssen daher nur in den richtigen Abschnitt eingefügt werden und man hat einen etwas leichteren Zugang zum WLAN. :)

Alles in allem…

…hat Kubuntu mal wieder bewiesen, was es drauf hat. Denn die WLAN-Verbindung, die ich gerade – auch in diesem Moment – unter Linux genieße, ist deutlich stabiler als jede WLAN-Verbindung die ich jemals unter Windows zustandegebracht habe. Ein Hoch auf freie Software!

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Technorati
  • Google Bookmarks
  • Yigg
  • Digg
Seite:  Vorherige Seite 1 2 ...19 20 21 ...25 26 Nächste Seite
« Vorherige SeiteNächste Seite »

© Robert Nitsch
(Powered by WordPress)