Das Kleingedruckte

Friday, February 5. 2010
Comments

Zum Thema, "Was bedeutet eigentlich Flatrate", hier die Vorstellung meines Anbieters.

Ich wollte es zuerst unter "Abzocke" verbloggen, aber eigentlich ist das schon wieder so komisch, dass ich dann davon abgesehen habe. Hier die Fußnote bzw. das Kleingedruckte meines Mobilanbieter (mobilcom-debitel), zum Thema Datenflatrate "[email protected] Flat". Die interessanten Passagen hab ich hervorgehoben.

Gilt bei Abschluss der mobilcom-debitel Datenoption [email protected] Flat - Try&Buy, mtl. Grundpreis € 9,95 (erster Monat Grundpreis frei), 24 Monate Mindestlaufzeit. Der Vertrag kann innerhalb von 30 Tagen nach Vertragsschluss gekündigt werden (Kündigung wird wirksam zum 30. Tag nach Vertragsschluss). Erfolgt keine Kündigung innerhalb von 30 Tagen, beträgt die Mindestlaufzeit der Option 24 Monate. Das Inklusivvolumen gilt für nationalen Datenverkehr über den WEB- und WAP-APN. Nach Erreichen von 300 MB (Vodafone), 250 MB (Eplus), 200 MB (o2) Datenvolumen/Monat wird die Datenübertragung auf GPRS-Geschwindigkeit reduziert. WLAN, VPN, VoIP, Instant Messaging sind ausgeschlossen und werden nach dem zugrunde liegendem Tarif berechnet. Im T-Mobile Netz sind zudem Business-Software-Zugriff, Filesharing / FTP, iTunes, Multiplayer-Onlinegames, Internet-Radio bzw. Internet-TV, Client-basierte E-Mail Nutzung ausgeschlossen und werden mit 0,09 € / Minute abgerechnet. Nicht nutzbar mit BlackBerry, iPhone, T-Mobile G1/G2. Die Option unterstützt nur das Surfen mit einem geeigneten Mobiltelefon ohne angeschlossenen Computer. Die Laufzeit der Option verlängert sich automatisch um 12 Monate, wenn nicht 3 Monate vor Ablauf gekündigt wird. Ein Wechsel der Datenoption ist nur zum Ende der Mindestlaufzeit möglich.

… und das macht richtig Lust und Laune diese Zusatzoption abzuschliessen. Und Kunde bin ich bei diesem Laden seit 10.12.1999.

Wieso zum Teufel benutzt DU keine Versionskontrolle?

Tuesday, January 5. 2010
Comments

(This post is entirely in German, I'll see if I can translate this rant later.) Also, Prost und frohes Neujahr — ich starte das neue Jahr damit etwas emotionalen Ballast aus dem alten Jahr loszuwerden!

Ab und an treffe ich wieder auf Kunden und Kollegen mit denen ich vor relativ langer Zeit — fünf oder sechs Jahren oder länger — zusammengearbeitet habe.

Die Zeitspanne ist deshalb wichtig weil ich generell daran Interesse habe immer wieder oder zumindest des öfteren mit jemandem zusammenzuarbeiten, wenn die Zusammenarbeit erfolgreich war. Wenn es allerdings Zwangspausen zwischen Projekten gibt, dann kann sich der geneigte Leser vorstellen, dass das letzte Projekt nicht vollkommene Zufriedenheit auf beiden Seiten ausgelöst hat.

Nichts desto trotz gibt jeder dem anderen eine neue Chance, und die Bezahlung spielt dann nicht eine gerade untergeordnete Rolle. Einige nennen so etwas Schmerzensgeld, und so ähnlich ging es mir auch in diesem Fall. Bzw. waren meine Motivation Weihnachtsgeschenke für Familie und Freunde, eine PS3 Slim und diverse andere Annehmlichkeiten.

Zwischenmenschliche Beziehungen

Schlußendlich entwickeln Menschen sich immer weiter. Diese Entwicklung merke ich nicht nur an technischen Fähigkeiten und Details, sondern auch menschlich, oder wie heisst so schön — am Stil.

Wenn ich mir nicht sicher bin, dann stelle ich mir folgende Fragen:

  • Wie laufen die Projekte ab?
  • Wieviel Spass macht es allen beteiligten?

Ausnahmen bestätigen die Regel und ab und an dauert die Entwicklung länger und ich muss Überzeugungsarbeit leisten.

In solchen Situation höre ich Sätze wie zum Beispiel:

  • "Aber das mach ich schon immer so."
  • "Objekte, wozu soll das gut sein? Kannst mir auch nen Array geben?!"
  • "Tests. Sowas mach ich nicht."

… oder mein absoluter Lieblingssatz:

  • "Versionskontrolle — das brauch ICH nicht."

Und irgendwann geht's natürlich schief.

Die Versionskontrolle

Besonders der letzte Satz hat es mir angetan und mich tatsächlich nach zwei Wochen Urlaub, nach denen mich wirklich nichts erschüttern konnte, während der Feiertage etwas auf die Palme gebracht.

Denn natürlich lief das Projekt nicht ganz so zügig und wurde nicht pünktlich zu Weihnachten fertig. Und da im neuen Jahr alles funktionieren soll, wurde es etwas hektisch!

Auf meine Frage welche (nicht ob) Versionskontrolle er benutze, erklärte mir der Kollege am Anfang ganz stolz, dass er alle Daten in mehren Kopien vorhät. Beim Kunden ("Produktivsystem") und auf seinen beiden Rechnern. Natürlich fällt einem dabei auf, dass die Versionskontrolle etwas missverstanden wird — denn primär geht es nicht um Backup.

Aber wieso man diesen Stress macht und nicht an einen Dienstleister wie github oder unfuddle auslagert, das ist mir ein Rätsel. Denn natürlich sollte auch die Versionskontrolle gesichert werden.

In dieser Situation fragte ich mich nur wie ein Team zusammenarbeitet, wenn es ohne VCS auskommen muss. Inzwischen kann ich es mir eigentlich gar nicht mehr vorstellen.

Als Argumente für den Einsatz einer Versionskontrolle führte ich an, dass es (eigentlich auch allein Sinn macht — Dokumentationszwecke — und) ab zwei Arbeitern nicht nur viele Vorteile mitsichbringt sondern ein Muss ist, und eine Voraussetzung dafür, dass ich an diesem Spiel teilnehme.

Ich erinnere mich oft an Projekte in dem Mitglieder des Teams mehr als einmal den Stand des anderen überschrieben haben. Für mich reicht das, aber anscheinend ist so etwas nicht abschreckend genug. Zu oft müssen Entwickler mit Code umgehen und wissen nicht wieso ein Problem auf diese und nicht jene Art gelöst wurde — bei richtigem Einsatz der Versionskontrolle (und Dokumentation im Code) passiert so etwas nicht.

Am Ende einigten wir uns auf git und ich kaufte dafür bei Github ein — und es ging los.

Im Projekt

Rückschläge gab es.

Mein Kollege besitzt zum Beispiel noch das selbe Notebook wie vor sechs Jahren. Und das hatte er gerade mit Windows XP neu eingerichtet. Und Git unter Windows war ihm zu mächtig ("das schreibt sich sicherlich überall in die Registry rein") wodurch er auch nie die Versionskontrolle dabei hatte.

Obwohl ich ihn mehr als einmal gebeten habe zumindest während unserer Zusammenarbeit git auf seinem Laptop aufzusetzen, hat er es dann doch nicht geschafft.

Besonders zeitraubend ist es, wenn der aktuelle Stand per Email oder per USB-Stick ausgetauscht wird. Manuelles mergen gehört zu den Dingen die ich überhaupt nicht machen möchte und generell lehne ich es auch ab meine geänderten Dateien per Email wieder zurückschicken.

Wieso auch, wenn alles mit git commit, git push und git pull erledigt werden kann?

Aber natürlich haben wir genau diese Dinge zwischen Weihnachten und Neujahr getan.

Die Ironie und Absurdität dieser Situation ist bezeichnend.

Fazit

Liebe Kinder!

Bei der Arbeit könnt Ihr wirklich am meisten Zeit vergeuden und alle in den Wahnsinn treiben wenn Ihr keine Versionskontrolle einsetzt.

Denn bei konsequenter und halbwegs gescheiter Benutzung würden folgende Fragen entfallen:

  • "Wieso sieht das so aus?"
  • "Hatten wir das nicht schon mal?"
  • "Welche Dateien hast Du gerade bearbeitet?".
  • "Kannst Du mir das mal eben schicken?"
  • "Das hab ich doch gestern schon gemacht?"
  • "Hast Du eben die Datei x überschrieben?"

... und mir würden noch andere einfallen, aber irgendwann muss auch mal Schluß sein.

The End

Keine Versionskontrolle — das hab ich lange nicht erlebt aber vielleicht ist das bezeichnend für die PHP-Welt. Ich würde auch zu gern noch einen Absatz über's Testen schreiben, denn auch darauf haben wir konsequent verzichtet.

Und es gab zu viele gute Beispiele wo es sinnvoll gewesen wäre. Aber das hebe ich mir für einen anderen Tag auf! :-)

AddressLimitExceeded: Too many addresses allocated

Tuesday, October 13. 2009
Comments

I got this error message tonight when I tried to allocate another EIP from within RightScale's dashboard. So it turns out there is a maximum of 5 (E)IPs on all AWS accounts, but there's a contact form to request more. Meh.

I wish AWS would make this part slightly easier, e.g. by announcing a customer's own IP space.

Mobilcom-Debitel-Spass

Friday, October 2. 2009
Comments

[English: German content ahead. ;-)]

Habe eben bemerkt, dass der Mobilfunkanbieter meines Vertrauens (die Mobilcom) jetzt zu Debitel gehört, oder anders herum. Auf jeden Fall hat sich im Zuge dieser großartigen Fusion der Kundenbereich der Login grundlegend geändert — anscheinend habe ich jetzt einen Benutzernameich muss mich mit meinem Benutzername einloggen.

Auf zum Benutzernamen

Der theoretische Weg zum Benutzernamen (und neuem Passwort) ist wie folgt:

  • Ich gebe meine Telefonnummer in ein Formular ein und bekomme dafür die Kundennummer per Email zugeschickt. Wohin weiss ich nicht. Zum Glück hatte ich da bereits eine Emailadresse hinterlegt.
  • Danach gebe ich die Kundennummer und meine Telefonnummer in das nächste Formular ein und bekomme danach meinen Benutzername zugeschickt.
  • Dann gebe ich meine meine Kundennummer und meine Telefonnummer in das nächste Formular ein um ein neues Passwort per SMS zugesendet zu bekommen.

Und dann kann ich mich schon einloggen!

Äh, ja.

Die Fragen die sich zu diesem Vorgang stellen sind:

  • Warum habe ich jetzt einen Benutzernamen?
  • Sind Telefonnummern nicht eindeutig genug?
  • Wofür brauche ich eigentlich eine Kundennummer?
  • Wieso kommen alle Daten nicht per Email oder per SMS?

Spontan ergibt sich sich hier die eine oder andere kleine Rationalisierungsmaßnahme.

Und sonst?

Ich bin bereits im zweiten Schritt gescheitert — der Benutzername hat sein Ziel nie erreicht. Außerdem gab's auch noch zufällig jene Meldung:

mobilcom-debitel-spass

Danke!

Forced contribution

Monday, September 7. 2009
Comments

I'm not exactly neutral when it comes to anything remotely related to the GPL license. Personally, there's a bit of a GPL scare when I see code that's released under that license and I usually try to avoid it.

But (primarily) due to RoundCube being licensed under the GPL, I think I do know what it entails to release code using this license. In addition to that I have read a lot about the license, I even wasted spent three hours one night to listen to RMS.

In the end — the GPL just did not grow on me, or made me happy.

Open source

I am a firm believer in open source. I release code for free. Whenever I have the choice, my free contributions include the freedom to really do whatever you want with my code. Because if I did not meant it, I would either sell the code, or not share it at all.

I recently read Zed Shaw's reasoning why he believes in the [A,L]GPL and that same day I walked into yet another license discussion on PEAR's IRC channel (#[email protected]), and I felt like I need to write it all out.

The GPLs

GPL in a nutshell

  • The GPL means that whenever I use code that is licensed under it in my code, my code automatically becomes GPL too.
  • The GPL requires me to release the source code of the software when I give it to others [them].
  • The GPL allows them to give it to other people as well, license still applies.
  • (Contrary to popular believe, ) The GPL also allows me to sell software. I'm not required to give it away for free.

If you still do not understand what the above means, here's an example: Wordpress. Wordpress is GPL and therefor all plugins written for Wordpress are GPL too. I realize some people may think that there might not be too much that you can do in a plugin, but if you wanted to make money of your work (plugin), the options are pretty limited.

LGPL in a nutshell

The LGPL is basically the same as the GPL, but if I use LGPL software inside my software, my software does not become GPL.

Affero (L)GPL

Because web software is often not distributed (think of SAAS), the GPL people came up with an Affero clause.

This clause requires you to open source your changes to a software/library even if it's only accessible through the network. In plain English — if you do SAAS (Remember, plain English!), or a simple website, and do not directly distribute your source code to your customer, you will still have to open source your changes because your customers can access it anyway.

The Affero clause is currently available as AGPL, and soon as ALGPL.

Non-restrictive licensing

When I speak of non-restrictive (or liberal :-)) licenses, I think of the (new) BSD, MIT and Apache licenses. In a nutshell, they all allow you to really do whatever you want. Whatever, of course except for removing the copyright on the source code.

  • They do not force you to open source your changes to the code.
  • They do not force a license on your own code just because you happen to use it.
  • The do not force you to release the source code to your customers.

Reading the above, one would see that these licenses are very compatible with typical business interests. They all come in handy for frameworks such as ezComponents or the Zend Framework — and many PEAR components use them as well. They really bring freedom of use the user, without imposing any duties on the user, and the best of all: the user can contribute anyway.

Impose

For a lot of people the world is black and white. You see other people benefiting from your own work hiding everywhere. And it's all too easy to find a license to impose your own beliefs on others. Because if they do not get it, there is a way to make them.

This rather simplified approach to a pretty complicated topic is easier to comprehend and therefor popular. And I can't blame anyone. Think further — religion. People who convert or find a thing for themselves easily become outspoken about and start preaching their new found happiness to others.

It's very human. If it makes you happy, you want to share.

This is of course meant with no offense to people like Zed Shaw who feel like they did not get their share of the cake (even though — Hey Zed! — a ton of people run your software (Mongrel)). I do understand Zed's point of view though. Visibility in the open source world does not pay your monthly bills. I'm not naive like that. On the other hand, there are more than a few examples from the the open source world where a company is build around an open source product and the company offers services — such as consulting and support — for said product.

The bottom line for myself is that I do not like to force people to do something. And no one does, right? (Except when the motives allow it!)

Conclusion

I believe that more people will contribute to open source because they believe in the cause. Not because some license forces them to do so. A lot of people get into open source because they use(d) open source software already and decided to contribute to the community. A lot of commercial entities fund open source development — heck, for whatever reason, even Microsoft does it.

If anything, the Affero clause will cause is to hinder the adoption rates of the software in question. And that is not just because all these licenses are written in English which requires a law degree, but because when you manage to understand them, they impose a threat on your own intellectual property.