Nein, eigentlich ist das kein Spaß. Das ist gruselig (ausprobiert auf einem aktuellen Debian):

Also ist true == false, ja?

Entnommen habe ich das der Diskussion um diesen — nicht minder gruseligen — Bug: md5(‚240610708‘) == md5(‚QNKCDZO‘).

Mehr zu ähnlichen ‚Features‘ hatte ich übrigens letztes Jahr schon: hier und (vor allem) hier.

Früher habe ich wirklich viel mit PHP gemacht. Über die Jahre ist mir die Sprache aber immer suspekter geworden, und ich versuche sie zu vermeiden wo immer es geht. Leider habe ich keine Python-Konkurrenz zu WordPress auf dem Schirm, und selbst für das ‚große‘ CMS sehe ich keine Patentlösung… :-(

Ich persönlich mag ja Skriptsprachen. Wenn es irgendwie geht greife ich gerne zu Python, wenn es sein muss skripte ich aber auch in Perl oder PHP. Sprachen mit P halt. :-)

Ein Problem das ‚richtige Programmierer‘ immer wieder mit Skriptsprachen haben ist, dass die in der Regel dynamisch typisiert sind. Man muss halt nicht explizit sagen was in einer Variable stehen darf, man benutzt sie einfach.

Gerade bin ich auf ein erschreckendes Beispiel gestoßen das zeigt dass dynamische Variablen tatsächlich böse schlecht implementiert sein können. Ich war noch nie ein Freund von Javascript, aber…

rschaten% js
js> 5+2
7
js> 5-2
3
js> "5"+2
"52"
js> "5"-2
3

Schaurig, oder? 8-O

Glücklicherweise machen andere Sprachen das besser:

rschaten% python
Python 3.3.2 (default, Sep 6 2013, 09:30:10)
[GCC 4.8.1 20130725 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 5+2
7
>>> 5-2
3
>>> "5"+2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> "5"-2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'int'

Dass die Fehlermeldung sich hier zwischen + und – unterscheidet liegt daran dass der Operator + in Python auch für die Konkatenierung von Strings verwendet wird. Mein Vertrauen in Python besteht weiterhin… :-)

Ich musste das einfach ausprobieren:

% python
Python 2.6.5 (r265:79063, Mar 23 2010, 04:44:21)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import braces
File "", line 1
SyntaxError: not a chance
>>>

:-D

Da sich Gestern jemand über zu seltene Postings beschwert hat (Herzlichen Glückwunsch nochmal, Andreas ;-) ), und da ich gerade mal wieder an einem kleinen Python-Projekt bastele: ein aktuelles Fundstück. Wenn man sich — wie ich — nichts merken kann, und zudem — wie ich — dauernd zwischen verschiedenen Programmiersprachen hin- und herspringt findet man so eine Sammlung mit Codeschnipseln sehr praktisch, stelle ich gerade fest. Hinweise auf bessere Schnipselsammlungen nehme ich dankend entgegen!

Ich möchte jemandem eine oder mehrere Dateien zur Verfügung stellen die zu groß sind um sie in eine Mail zu packen. Bislang habe ich dann immer ein Paket gemacht und das temporär auf meinem Webspace abgelegt. Das hat den Nachteil dass ich am Webspace rumschreiben muss, und dass mir das in den Apache-Logs rummüllt und meine Statistiken durcheinander bringt. Gerade habe ich eine einfache und schnelle Lösung gelernt:

python -m SimpleHTTPServer 8000

Kurz und schmerzlos. Dann muss ich nur noch meinen Gegenüber auf beispielsweise blog.schatenseite.de:8000 schicken, er findet dort alles was im gleichen Verzeichnis liegt in dem ich das gestartet habe. Prädikat: praktisch! :-)

Ach ja: Python war natürlich schon installiert. Und das Modul musste ich auch nicht mehr separat nachinstallieren, keine Ahnung ob das zum Standard-Lieferumfang gehört.