Lesenswertes
Archive
- Gletscher Rückzug
- 100 mal Floss Weekly
- Softwareentwicklung als Kooperatives Spiel
- Python Saug Punkte contd.: x += y ist nicht x = x + y
- Python Saugpunkte: Klassenobjekte
- Grand Unified Theory of Programming?
- Python Saug Punkte contd.
- SOLID object oriented design
- Here be electric dragons
- Method argument naming confusion
- Python Saug-Punkte
- How to crash IE 7 with javascript
- Python distributions
- Flagge zeigen
- Zur Schweinegrippe
- Das Wikipedia Dilemma Lösen
- Hamam
- Wie viel kostet die Finanzkriese?
- Wieso Blöcke keine echten Funktionen sein sollten
- Worin liegt der Erfolg von "Ruby on Rails"
Salve
Dear english-speaking visitors: Since I do not want to maintain a bilingual website and my native tongue is German - most of the content of this website will be in german. Though don't let that hinder you, just jump straight to my software and enjoy their description in english.
Viel Spaß an alle die sich durch diese Einführung nicht abschrecken ließen, viel Spaß vor allem beim Lesen meiner Veröffentlichungen und dem Benutzen meiner Programme!
Gletscher Rückzug
Klima-Veränderung ist ein schwer zugängliches Thema.
Aber auch Sau-Wichtig. Und daher finde ich es grandios was James Balog für eine Arbeit gemacht hat um den Gletscher-Rückzug zu dokumentieren. Mit knapp 30 Zeitraffer-Kammeras macht er über Jahre Hinweg jede Stunde ein Bild von vielen Gletschern und daraus dann einen Film.
Wow.
- Gibts bei TED als Video
- Oder auf der Homepage des Projekts
- Mein Lieblingsvideo dort bisher
100 mal Floss Weekly
:) Einer meiner Lieblingspodcasts hat es jetzt auf die 100. Ausgabe gebracht.
Und da muss ich doch mal gratulieren. Vor allem weil ich bei der Quiz-Show über Programmiersprachen und deren Verbreitung absolut herzhaft gelacht habe. :-)
Hörenswert! Immer wieder großartige Interviews mit Machern von Open Source Projekten.
[Hier gehts zur 100-sten Show http://twit.tv/floss100]
Softwareentwicklung als Kooperatives Spiel
Das ist ein steinalter Vortrag von Alistair Cockburn (gesprochen Co-Burn) in dem er darlegt wieso er findet das das eine sehr gute Sichtweise auf Softwareprojekte ist.
Der Vortrag ist schon 10 Jahre alt - und trotzdem finde ich ihn sehr Aktuell.
Lesenswert!
Python Saug Punkte contd.: x += y ist nicht x = x + y
a = b = list() a = a + ['foo'] print b # => [] a = b = list() a += ['foo'] print b # => ['foo']
Doh. Wie kann das sein? Kommt man von C ist das erst mal sehr verblüffend - und auch die meisten anderen Programmiersprachen die ich kenne verwenden a += b als equivalent für a = a + b.
Well, nicht so Python. Weil da gab es offenbar mal Programmierer die fanden dass man Code der mit Matrizen rechnet lieber mit Operatoren schreiben möchte weil sich das besser ließt. Natürlich nicht mit den normalen operatoren wie */+-, weil, da kann man ja den empfänger nicht in place modifizieren, und wie jeder weiß sind Matrizen ja so groß dass die dann nicht mehr in den Ram passen.
Also haben sie die <op>= operatoren in Python so spezifiziert, dass sie ihre left-hand-variable in place modifizieren wenn diese mutable sind.
:-(
Python Saugpunkte: Klassenobjekte
Klassenobjekte sind special - daher hat man im boddy einer klasse keinen Zugriff auf das klassenobjekt.
Weil, self ist ja auch nicht automatisch und man muss es in Methoden immer als explizites Argument hinschreiben, und so etwas gibt es ja bei Klassen nicht, denn das sind ja keine Methoden und daher kann man halt das Klassenobjekt nicht referenzieren im body.
Doh.
Und das nervt natürlich total bei der meta-programmierung.
Hier mal ein Beispiel von etwas SQL-Alchemy Code wo mir das wieder aufgefallen ist:
class Poll(Base): proposal = relation(proposal.Proposal, backref=backref('polls', cascade='all', lazy=False, order_by=Poll.begin_time.desc()))
Das geht nicht, weil ich auf Poll nicht zugreifen kann und damit nicht auf andere attribute der Klasse. Der Workaround den SQLAlchemy dafür macht ist das man einen String hineinreicht und die den dann aufwendig parsen. Total gar nicht toll.
:-(
