Donnerstag, 28. August 2008

Wie demokratisch ist das?

Bei solchen Vorgängen frage ich mich doch ernsthaft, wie man der NPD noch beikommen soll, wenn es schon in anderen Parteien Sympathisanten gibt. Eigentlich gibt es für mich zwei Möglichkeiten:

1. Die Abgeordneten fühlen sich nur ihrem offensichtlich nicht übermäßig demokratischen Gewissen verpflichtet
2. Das ganze ist trivial und es haben einfach 2 Leute das falschen Stimmkärtchen abgegeben bzw. das Kreuz an die falsche Stelle gemacht.

Irgendwie stellen mich beide Erklärungen nicht besonders zufrieden. Vielleicht wäre ein Verbot der NPD doch die einzige Lösung.

Dienstag, 26. August 2008

Und mein kürzester Persönlichkeitstest




Your Personality Profile



You are elegant, withdrawn, and brilliant.

Your mind is a weapon, able to solve any puzzle.

You are also great at poking holes in arguments and common beliefs.



For you, comfort and calm are very important.

You tend to thrive on your own and shrug off most affection.

You prefer to protect your emotions and stay strong.

Was bin ich für ein Tee???




You Are Black Tea



You have a bold personality. You're not afraid of simply being yourself.

You have the courage to speak the truth. You are fearless in your actions.



You come off as a bit intimidating and unapproachable. Only confident people are attracted to you.

You don't try to scare off anyone. You're just an intense person!

What Kind of Tea Are You?

Ob das wirklich stimmt sollten andere beurteilen ...

Montag, 18. August 2008

Trauriges aus der Welt der Politiker

Soviel zur totalen Abgehobenheit deutscher Bundestagshinterbänkler ... die Namen habe ich vorher noch nie gehört aber sie müssen wohl sehr wichtig sein. Aber sie haben sich den Urlaub auf Kosten der Steuerzahler sicher redlich verdient!

Und zu der Idee, Langzeitarbeitslose zur Pflege zu verpflichten ist ja wohl weit ab jeglicher Realität. Um mal von vorne anzufangen ... Freiheit der Berufswahl steht im Grundgesetz! Und das diese ganze Sache ganz nebenbei eine ziemliche Entwürdigung ist wird hier sehr treffend kommentiert.

Lustiges aus der Welt der Programmierer

Folgendes Zitat habe ich in der Python Mailingliste gefunden:

<schnipp>
when I use 20 for ,"SystemError: too many statically nested blocks"

When I use 100 for ,"IndentationError: too many levels of indentation"

How to handle these errors?
<schnapp>

Äääähhhhhmmmm bei 100 geschachtelten Schleifen über Listen mit jeweils 2 Elementen kommen da
2^100 = 1267650600228229401496703205376 Iterationen raus ... kann diese Zahl noch jemand aussprechen? W ... T ... H(ack)???!!!

Sonntag, 17. August 2008

Einfach nur Süss!

Ein Roboter mit Gehirn

Britische Forscher haben eine Art "Modellgehirn" entwickelt und dieses ist nun die Steuerung eines Roboters ... die Kommunikation zwischen Gehirn und Mechanik funktioniert per Bluetooth.
Die etwa 300.000 Nervenzellen funktionieren wie ein Gehirn und lernen ihre Umgebung kennen, der Roboter weicht Hindernissen in einer bekannten Umgebung aus.
Der (kleine) Forscher in mir überlegt, ob dieses Modell in größerem Maßstab tatsächlich zu intelligenten Robotern führt.
Der (kleine) Hacker in mir überlegt, welche Neurosen man der armen Maschine wohl über gehackte Bluetooth Kommunikation unterschieben kann ... :-)

Dienstag, 12. August 2008

[Worst Code Ever] Meine aktuelle Nummer 1

Manche Programmierer haben wohl die 80'er Jahre noch nicht hinter sich gelassen, wie folgender Python Code zeigt:

while a&528or a in l:a=random.randrange(512)

Dieser Schnipsel kommt aus dem pygame Projekt und entspringt dem Bemühren, Programme möglichst klein zu halten.
Vielleicht sollen sie aber mal

import this

(eines meiner lieblings easter eggs) bemühen und lesen, was das Zen of Python ist.

Sonntag, 10. August 2008

Der Große Deutschtest

Sehr schön ... die Netzeitung hat den Einbürgerungstest Online. Ich muss mich nicht ausbürgern lassen, aber einige Fragen sind doch etwas verwirrend gestellt. Aber ob Details wie Schulpflicht oder Besatzungsmächte nach dem zweiten Weltkrieg oder Gründungsjahr der DDR wirklich relevant sind???

Farbenspiele

Wenn der Merz mit dem Westerwelle ... oder umgekehrt. Blenden wir alle Wechselgerüchte aus, wie wäre es wenn Westerwelle mal mit Steinmeier wandern geht? Statt ständiger konservativ-liberaler Konsultationen mal wieder sozial-liberaler Gedankenaustausch. Aber irgendwie bleiben Politiker wohl dogmatisch.

Freitag, 8. August 2008

Die Nerds sind aus dem Computer ausgebrochen

Es gibt nicht nur Onlinerollenspieler (das sind die blassen nächtelang zockenden Gestalten die wohl bisher niemand im wirklichen Leben zu Gesicht bekommen hat) ... nein, der Trend zur Phantasiewelt schleicht sich in die Realität, wie diese Fotoserie beweist.

Donnerstag, 7. August 2008

Ich bin dann mal ... Studieren

Ein Jahr Student und Arbeiter ... das ruft nach einer Zwischenbilanz. Wie fühlt man sich zwischen zwei Welten? Und ist es wirklich soooooo schlimm?

Entwarnung: von einen Nervenzusammenbruch war ich immer weit entfernt. Extrem stressig waren eigentlich nur die letzten 3 Wochen vor dem Semesterende, als sich "plötzlich" alle Klausuren gegen mich verschworen und innerhalb einer Woche geschrieben sein wollten.
Innerhalb des Semesters geht zwar mehr Freizeit für Lernen und Arbeiten drauf als ich es ursprünglich erwartet hatte. Aber vollkommen aus dem Leben katapultiert wie es der oben verlinkte Artikel beschreibt, fühlte ich mich eigentlich nie.


Und was die zwei Welten angeht ... wie oft ich inzwischen die Fragen
"Aber, warum arbeitest du denn?" und "Aber, warum studierst du denn
noch?" gehört habe kann ich nicht mehr zählen. Deswegen hier zwei kurze Antworten:

Warum lohnt es sich, trotz Studium zu Arbeiten? Nach einer Mathevorlesung seinen Laptop zu starten und wieder lösbare Probleme vor sich zu sehen ist schon ein tolles Gefühl!

Warum lohnt es sich, trotz festem Job zu studieren? Man hat endlich einen Grund, sich zumindestens mit einigem von dem zu Beschäftigen was zwar interessant ist aber nicht unmittelbar arbeitsrelevant ist und deswegen sonst ignoriert wird.

Geschrieben in den Semesterferien, nach bestandenen Klausuren und 3 Wochen Urlaub :o)

Der Staat muss uns schützen ...

... vor allem! Nicht Vater sondern Staat muss jetzt also die Kinder vor den bösen Überaschungseiern schützen.

1. Komisch, alle Kinder mit denen ich zusammen Überaschungseier gegessen haben leben heute noch
2. Bevor jemand auf die Idee kommt die verbleibenden Überraschungseier einzuschmelzen ... schickt sie mir, ich opfere mich!

Dienstag, 5. August 2008

Neoliberalismus, Neofeudalismus oder doch wieder nur Neid?

Damit dieses Blog keine Monokultur wird, hier mal etwas Gesellschaftspolitisches:

Hier findet man eine Liste der 300 reichsten Deutschen, deren Vermögen in Mrd. Euro. Und damit wir auch alle ganz genau wissen, wie weit wir von diesen Menschen entfernt sind wird auch noch vorgerechnet wie hoch denn unser Stundenlohn sein müsste um nach 40 Jahren Arbeit ein solches Vermögen zu haben. Das steht dann unter dem Titel Fakten zum "Meudalismus" = moderner Feudalismus und das macht mich mehr als nur ein wenig nachdenklich.

Ich möchte hier nicht den mathematischen Sinn oder eben Unsinnd solcher statistiken diskutieren. Nur eine Anmerkung: einige der hier auftauchenden Firmen existieren deutlich länger als 40 Jahre ... also sollten wir uns auch mehr Zeit geben um aufzuschließen.
Ich möchte auch nicht diskutieren, ob und warum dieser Reichtum verdient oder unverdient ist.
Vielmehr frage mich mich, ob die real existierende ungleiche Verteilung von Geld denn tatsächlich schon der Anfang des Feudalismus ist. Feudalismus bedeutete Unfreiheit für alle die, die kein Land besaßen. Sind dann im Meudalismus alle unfrei, die nicht über genügend Geld verfügen? Oder umgekehrt: macht Geld frei?
Im Feudalismus waren die Grundherren auch Richter, so direkt funktioniert das heute ja erwiesenermaßen nicht mehr ... aber ist die Justiz im Meudalismus käuflich?
Feudalismus bedeutet am Ende auch, das der Wert des Menschen an seinem Besitz gemessen wird. Ist der Mensch im Meudalismus dann soviel Wert wie sein Konto?

Ja, mir fallen ersteinmal nur Fragen ein ... vielleicht kommen in den nächsten Tagen nochmal ein paar Antworten hinterher. Auf jeden Fall sollte man sich mit dem Thema Meudalismus wirklich mal beschäftigen, alleine um zu ergründen ob sich unsere Gesellschaft wirklich so wenig weiterentwickelt hat.

Python und Singletons

Mein Blog entwickelt sich zur Python Ecke ... es könnte schlimmer kommen. Obwohl Python im Gegensatz zu Java keine Sichtbarkeitseinschränkungen kennt kann man dennoch einige aus Java wohlbekannte Designpatterns auch in Python implementieren. Hier als Beispiel eine threadsichere Implementierung des Singleton Patterns.

from threading import Lock

class Singleton(object):
"""
A simple example implementing the singleton design pattern in python
"""
#we need two class attributes (which translate to static attributes in java)
__lock = Lock() #a lock for thread safety
__instance = None #and to remember the one instance

#first of all: make pythons usual way of creating objects unusable because
#we cannot just hide them as one would in java or C++
def __new__(cls, *args, **kwargs):
pass

def __init__(self):
pass

#mind that a java static translates into a python classmethod and not a
#staticmethod (which would lack the cls which is a reference to the class)
@classmethod
def getInstance(cls, *args, **kwargs):
"""
The famous gatInstance method which resturns the one instance of our
class.

params:
cls - reference to the class
*args - the tuple of arguments paassed by position
**kwargs - the dictionary of arguments passed by keyword
"""
#enter critical section
cls.__lock.acquire()
try:
if cls.__instance is None:
#use the superclasses __new__ for creation
cls.__instance = object.__new__(cls, *args, **kwargs)

#place initialisation code (everything which would usually
#happen in __init__) here
cls.__instance.SomeInt = 1
finally:
#leave critical section
cls.__lock.release()

return cls.__instance

if __name__ == "__main__":
instance1 = Singleton.getInstance()
instance2 = Singleton.getInstance()
print hash(instance1)==hash(instance2) #True
instance3 = Singleton()
print instance3 == None #True

Samstag, 2. August 2008

Python reverse String

Einer meiner absoluten Lieblingszufallsentdeckungen war die folgende Methode einen String rückwärts auszugeben:

s = "1234"
print s[::-1]


Und die Ausgabe ist tatsächlich 4321 . Eine genaue Erklärung, warum das so implementiert ist habe ich leider nicht, die Notation mit dem :: hatte ich bisher nur in solchen Fällen verwendet:

s = "1.2.3.4"
print s[0::2]


Also um Zeichen in regelmäßigen Abständen aus dem String zu entfernen (Die Ausgabe ist 1234). Wenn jemand eine Erklärung hat, wie genau Python diese Notation interpretiert bin ich für einen Kommentar sehr dankbar!
Ansonsten nutzt es einfach als nettes kleines Rezept.

Python und "for" Schleifen

Ein Beitrag aus der Kategorie Python ist nicht Java. Das Schlüsselwort for hat in Python eine andere Bedeutung als in Java.

In Java leitet for eine Schleife ein, es folgen die Initialisierung einer Zählervariablen, eine Abbruchbedingung und eine Schrittweite.

for (int i=0; i<10; i++){...}

Um die Verwirrung zu steigern ist das Schlüsselwort for zusätzlich noch ein Iterator über z.B. ein Array oder eine Liste:

List Items = new LinkedList();
for (Integer Item : Items){...}

Hierbei wird der Code innerhalb der Schleife für jedes Element innerhalb der Liste einmal ausgeführt.

In Python ist das Schlüsselwort for immer eine Iteration über eine Liste bzw. eine anderes iterierbares Objekt.

for item in items:
...

Hierbei wird der Code hinter dem for für jedes Element in items einmal ausgeführt.

Dennoch gibt es in Python die Möglichkeit, zumindestens Java ähnliche for Schleifen zu Programmieren. Hierzu dienen die eingebauten Funktionen range und xrange, die (im Ergebnis) das gleiche tun.

for i in xrange(10):
...


Ist äquivalent zur Java for Schleife

for (int i = 0; i<10; i++){...}

for i in xrange(1, 5):
...


Ist äquivalent zur Java for Schleife

for (int i = 1; i<5; i++){...}

Mit xrange kann also das Verhalten einer Vorschleife mit beliebigem Start- und Endwert erreicht werden, lediglich eine Schrittweite ist nicht so einfach anzugeben.
In den gezeigten Beispielen kann xrange problemlos durch range ersetzt werden, das Verhalten der Schleifen ändert sich dadurch nicht.
Der unterschied zwischen beiden Funktionen besteht lediglich darin, dass range eine Liste generiert und diese vollständig im Speicher ablegt. xrange arbeitet etwas komplizierter mit einem iterierbaren Objekt, welches weniger Speicher verbraucht.

Freitag, 1. August 2008

Mein erster Post

Hallo Web,

nach bestandenen Zweitsemesterklausuren und 2 Wochen Fahrradtour durch Frankreich ist heute (vielleicht) der richtige Zeitpunkt, konsequent das bloggen zu beginnen.

Und damit ich mich (vielleicht) mal daran erinnere fasse ich ersteinmal ein paar gute Vorsätze. Ich werde versuchen, alles was mir wichtig und veröffentlichungswürdig auch tatsächlich zu veröffentlichen. Wer das hier liest und interesse an aktuellen und gesellschaftlichen themen hat sollte gelegentlich mal wieder vorbeischauen. Wer darüber hinaus interesse an diskussionen über alternative politischen und gesellschaftliche Modelle hat sollte sogar unbedingt gelegentlich mal wieder vorbeischauen. Wer darüber hinaus (oder alternativ) auch noch interesse an Softwareentwicklung und Diskussionen über die Open Source Szene hat ist hier auch nicht unbedingt verkehrt.
Alle anderen werden sich hier wahrscheinlich langweilen.

So, das sollte als einführende Worte reichen ... vielleicht bis demnächst!