Sonntag, 5. Oktober 2008

Basteln macht wieder Spaß! - Cubeecraft

Im planetquake.de-Forum bin ich auf diese absolut geniale Seite gestoßen. Diese Seite bietet Vorlagen an, welche ausgedruckt und durch die vorhandenen Markierungen so geschnitten werden können, dass es anschließend möglich ist Figuren daraus zu basteln.
Die Figuren, welche angeboten werden stammen aus allen Bereichen des Films und der Computerspiele und sind für die Nerds unter uns eine wahre Freude :)

http://www.cubeecraft.com

Donnerstag, 25. September 2008

Automatische Sicherung mit tar auf FTP-Server

Ich stand in der letzten Zeit vor dem Problem, eine gute Sicherungsmethode zu finden, welche performant, sicher und unkompliziert von statten geht.
Die beiden ersten Punkte habe ich denke ich erfüllt, am dritten Punkt müsste ich noch arbeiten :)
In diesem Fall wird per Shell-Script eine Sicherung aller relevanter Daten erstellt, gepackt, komprimiert und anschließend auf einen FTP-Server hochgeladen. Wer es brauchen kann, soll es sich gerne kopieren.

#!/bin/sh

# Festlegen der für das Script nötigen Variablen
dateiname="backup.tar.gz"
mysql=`date "+mysql_backup-%Y-%m-%d.sql"`
apache=`date "+apache_backup-%Y-%m-%d.tar.gz"`
datum=`date +%Y-%m-%d`

cd /

# Erstellen der verschiedenen Sicherungen
# MySQL-Komplettsicherung
# Apache-Configsicherung
mysqldump -uuser -ppasswort --all-databases > $mysql
tar cplvzf $apache /etc/apache2
tar cplvzf $dateiname /

echo "Backup erstellt!"

# Erstellen eines neuen Log-Eintrags in die backup.log
echo $dateiname $datum >> backup.log

# Verbindung zum FTP-Server und Hochladen der Dateien
ftp -n 150.50.50.0 << END_OF_FTP
user heinz_user heinz_passwort
put $dateiname
put backup.log
quit
END_OF_FTP

echo "Daten erfolgreich hochgeladen!"

# Löschen der auf dem Server erstellten temporären Dateien
cd /
rm $dateiname
rm $mysql
rm $apache

Dienstag, 23. September 2008

Referat - Scriptsprachen

Kürzlich musste ich für die Schule ein Referat zum Thema Scriptsprachen erstellen. Dieses enthält alles relevante zu den wichtigsten Sprachen, wie kleine Scriptbeispiele, die Geschichte, Anwendungsgebiete etc.

Sollte jemand dieses Referat gebrauchen können, so kann er sich gerne die Informationen herausfiltern, die er benötigt.

Das Referat werde ich hochladen, sobald die vollständige Benotung vonstatten gegangen ist.

Mittwoch, 10. September 2008

Ein Adressbuch mit "pickle"

Nach meinem erstem Projekt, welches mich in der Lernkurve doch sehr vorangebracht habe ich nun ein weiteres aus dem Projektideenfundus des Pythonwikis angestrebt und mich daran versucht.

Zunächst möchte ich ein Adressbuch auf Dateiebene, also ohne eine SQL-Datenbank realisieren bis ich so weit bin, dass ich auch das ohne Probleme hinbekommen würde. Für die Speicherung benutze ich "pickle", ein Modul, welches Daten sequentiell in eine normale Textdatei schreibt, damit es möglich ist nach dem Auslesen dieser Objekte, Variablen etc. in der gleichen Form wieder zu erhalten, ohne diese noch einmal neu deklarieren, oder füllen zu müssen.

Der erste Entwurf ist ein Versuch OOP zu schreiben. Ich hoffe es ist mir "banal" gelungen :) Die überarbeitete Version wird natürlich folgen.

import pickle

from sys import exit

class Person(object):
def __init__(self):
pass

def person_new():
person = Person()
person.vorname = raw_input('Vorname: ')
person.name = raw_input('Nachname: ')
person.geburtsort = raw_input('Geburtsort: ')
person.strasse = raw_input('Strasse: ')
person.hausnummer = raw_input('Hausnummer: ')
person.plz = raw_input('PLZ: ')
person.stadt = raw_input('Stadt: ')
return person

def person_add():
print personen

def person_show():
x = 0
for i in personen:
x+=1
print str(x) + ') ' + i

def dump_dict():
file = open('personen/daten.pk1', 'wb')
pickle.dump(personen, file)
file.close()

def load_dict():
file = open('personen/daten.pk1', 'rb')
personen = pickle.load(file)
file.close()
return personen

def menue_haupt():
print '1) Personen listen'
print '2) Person hinzufuegen'
print '3) Person loeschen'
print '4) Programm beenden'
i = int(raw_input('\nWaehlen Sie eine Option: '));print ''
return i

def menue_list():
i = raw_input('\nWelche Person?\n')
person = personen[i]
print 'Vorname: ' + person.vorname
print 'Nachname: ' + person.name
print 'Gebursort: ' + person.geburtsort
print 'Strasse: ' + person.strasse
print 'Hausnummer: ' + str(person.hausnummer)
print 'PLZ: ' + str(person.plz)
print 'Stadt: ' + person.stadt

def menue_delete():
i = raw_input('\nWelche Person moechten Sie loeschen?\n')
del personen[i]
dump_dict()

## Wieso kann `break` nicht ausgelagert werden?

def main():
while True:
i = menue_haupt()
if i == 1:
while True:
person_show()
menue_list()
i = int(raw_input('\n1) Menue\n2) Nochmal\n'))
if i == 1:
break
elif i == 2:
person_add()
i = int(raw_input('\n1) Menue\n2) Nochmal\n'))
if i == 1:
break
elif i == 3:
while True:
person_show()
menue_delete()
i = int(raw_input('\n1) Menue\n2) Nochmal\n'))
if i == 1:
break
elif i == 4:
exit()

personen = load_dict()
main()

World of Warcraft - Es hat mich wieder gepackt

Ich war eigentlich der Meinung, dass es nach 1 1/2 jähriger Abstinenz von World of Warcraft nicht mehr so einfach möglich wäre mich noch einmal zu begeistern, doch da habe ich mich (leider?) getäuscht.

Eigentlich wollte ich nur für einen Monat noch einmal reinschauen, doch jetzt habe ich das PVP-Set komplett, level einen neuen Charakter, diesmal einen Druiden hoch und merke überhaupt nicht, dass ich so lange ausgesetzt habe.

Nunja, die Zeit wird zeigen, ob die Aktion so gut war :)