Software-Entwicklung
Es folgen alle der Kategorie Software-Entwicklung zugeordneten Einträge.
Du kannst den RSS-Feed dieser Kategorie abonnieren.
Seit ich WordPress nutze habe ich mich darüber geärgert, dass die Autoupdate-Funktion vermeindlich nur FTP und FTPS, aber kein SFTP über SSH unterstützt. Die Betonung liegt auf vermeindlich, denn in Wirklichkeit unterstützt WordPress auch Updates per SSH. Diese Option wird allerdings nur angezeigt, wenn PHP über Bindings an eine installierte libssh2-Library verfügt.
Unter Debian kann man sich die entsprechende Library und die PHP-Bindings aus dem momentanen unstable-Trunk besorgen: http://packages.debian.org/de/sid/libssh2-php
Ich schreibe ja gerade meine Diplomarbeit über das Thema der Modellierung von Produktlinien automobiler Software. Klingt trocken? Ist nicht so. Man kann es sehr einfach modellieren. Stellt euch die Software in einem Auto als eines großen Haufen verschiedener einzelner Funktionen vor. Das können z.B. die Zentralverrieglung und ihre Teilfunktionen, wie das Verriegeln der linken Tür und die Steuerung des dafür zuständigen Elektromotors sein. Verbindet nun in Gedanken alle jene Funktionen mit einem Strich, die irgendwie miteinander zu tun habe. Also z.B. die Funktion des Navigationsystems, eure Position zu bestimmen, mit der Funktion des GPS-Steuergeräts und der Funktion der Signalantenne. Als Ergebnis bekommt ihr ein sg. Bordnetz; das Netzwerk aller Fahrzeugfunktionen und ihrer Abhängigkeiten. Das sieht dann z.B. für einen wenige Jahre alten BMW so aus:

Jetzt habt ihr ungefähre Vorstellung, wie komplex recht normale Fahrzeugsoftware ist. Wenn ihr in einer aktuellen Mercedes S-Klasse die Fahrertür öffnet, werden über 50 verschiedene Systeme angestoßen. Dieses Chaos zu verstehen und zu beherrschen, es so darzustellen, dass man praktisch etwas kapieren kann, darum geht es.
Dieses Bordnetzwerk ist im Vergleich zu unserem Gehirn übrigens von absurd lächerlicher Komplexität. Wie ein Sandkorn im Vergleich zu einem Strand. Wenn man diesen Vergleich konkret vor Augen geführt bekommt, fragt man sich jedes Mal, warum Gegner des Naturalismus ein solch faszinierendes und unfassbar komplexes Netz aus hunderten von Millarden von extrem stark vernetzten Neuronen als „nur Atome und bewegte Materie, aus dem keine Seele entstehen kann“ abwerten.
- C
- wäre das Judentum – uralt und voller Einschränkungen, aber der Großteil der Welt kennt und respektiert C. Man kann nicht von einer anderen Sprache zu C wechseln – entweder man wächst damit auf oder man hält es für einen Irrwitz. Außerdem neigen viele Menschen dazu, C die Schuld an allen Probleme der Menschheit zu geben, wenn mal wieder irgendwas schief läuft.
- Java
- wäre das fundamentalistische Christentum – theoretisch basiert es auf C, aber Java fehlen so viele der alten Regeln, dass es nicht wie das Original rüberkommt. Stattdessen kommt es mit einer Vielzahl neuer, rigoroserer Regeln, die ihre Anhänger dem Original gegenüber für deutlich überlegen halten. Sie sind sich nicht nur sicher, dass Java die bei weitem beste Sprache der Welt ist, sondern sind auch bereit, Andersdenkende auf dem Scheiterhaufen zu verbrennen.
- PHP
- wäre das gemäßigte Christentum. Es kämpft mit Java um Marktanteile im WWW. Es nimmt sich einige Konzepte von C und Java – aber nur die, die alle mögen. PHP mag nicht so stimmig sein, wie die anderen Sprachen, aber es lässt einem wenigstens viel Freiheit und bleibt den Kernideen im Großen und Ganzen treu. Außerdem hat sich PHP vom „goto hell“-Konzept getrennt.
- C++
- wäre der Islam. Es nimmt sich von C nicht nur all dessen Regeln sondern setzt noch eine große Menge weiterer Regeln drauf. C++ ist so vielseitig, dass es als Grundlage von so ziemlich allem dienen kann, seien es Kriegsverbrechen oder Kunstwerke. Die Anhänger von C++ sind davon fest überzeugt , dass es die ultimative und universellste Sprache des Planeten ist, und allen Andersgläubigen gegenüber sehr verärgert. Außerdem drohen sie dir wahrscheinlich mit dem Tod, wenn du den Erfinder der Sprache beleidigst.
- C#
- wäre das Mormonentum. Auf den ersten Blick sieht es aus wie Java, aber wenn man genauer hinschaut, merkt man, dass es von einer einzigen Firma kontrolliert wird (die von den meisten Java-Anhängern für das Böse gehalten wird) und das viele theoretische Prinzipien ein wenig anders sind. Man könnte sich mit C# eigentlich anfreunden, wenn man nur nicht ständig von den Java-Anhängern diskriminiert werden würde.
- LISP
- wäre der Zen-Buddhismus. Es gibt keine Syntax, kein einheitliches Dogma und keine verehrungswürdigen Persönlichkeiten. Das ganze Universum läge dir zu Füßen … wenn du nur erleuchtet genug wärest, es ergreifen zu können. Manche sagen, dass LISP keine richtige Sprache sei. Andere sagen, es sei die einzige Sprache, die Sinn macht.
- Haskell
- wäre wie der Taoismus. Es ist dermaßen verschieden von allen anderen Sprachen, dass sich jeder wundert, wie Leute damit etwas anfangen können. Die Anhänger von Haskell halten es für den einzig wahren Weg zur endgültigen Weisheit, aber diese Weisheit ist für die meisten Sterblichen unerreichbar.
- Erlang
- wäre wie der Hinduismus. Eine weitere seltsame Sprache, die den Eindruck erweckt, sie sei zu nichts zu nutze, aber im Gegensatz zu den meisten anderen Sprachen basiert sie auf dem Konzept multipler paralleler Entitäten.
- Perl
- wäre wie Voodoo. Eine unverständliche Sammlung arkaner, mit Ziegenblut angereicherter Rituale, die deine Seele auf ewig zerrütten können. Wird häufig eingesetzt, wenn dein Boss dir am Freitag Abend noch eine wichtige, nervige Aufgabe aufdrückt.
- Lua
- wäre wie Wicca. Eine pantheistische Sprache, welche ohne Probleme verschiedenen Kulturen und Regionen angepasst werden kann. Lua-Code ist sehr liberal und erlaubt den Einsatz vieler Techniken, die konventionelle Sprachen als Hokuspokus ablehnen. Lua hat eine tiefe Verbindung zum Mond.
- Ruby
- wäre wie Neo-Paganimus. Eine Mischung verschiedener anderer Sprachen und Ideen, die man in einem großen Topf verrührt hat und die man nur mit viel gutem Willen für eine Programmiersprache halten kann. Obwohl genug Leute Ruby mit Misstrauen begegnen, wächst die Zahl der Ruby-Anhänger rasant. Sie sind die nettesten, hilfsbereitesten Menschen von allen und wollen niemandem etwas böses.
- Python
- wäre wie der Humanismus. Simpel, ohne große Einschränkungen, und alles, was du beachten musst, ist der gesunde Menschenverstand. Die Anhänger von Python behaupten, von allen Bürden anderer Programmiersprachen befreit worden zu sein und den Spaß am Programmieren wiedergefunden zu haben. Machen Leute sagen, Python sei eine Form von Pseudo-Code.
- COBOL
- wäre wie urtümlicher Paganismus. Vor langer Zeit war es von Bedeutung und herrschte über ein großes Gebiet, aber in unserer Zeit ist COBOL praktisch tot – zu unser aller Vorteil. Obwohl fast alle angesichts der Rituale COBOLs erschaudern, gibt es immer noch einige wenige, die versuchen, es am Leben zu halten.
- LOLCODE
- wäre wie der Pastafarismus. Ein esoterisches Produkt des Internets, das niemand ernst nimmt, obwohl alle sich anstrengen, es zu verbreiten.
- Visual Basic
- wäre wie der Satanismus – außer dass man als Satanist seine Seele nicht wirklich verkaufen muss…
[via The Atheist Blogger]
Ich bin wieder zu Hause – zumindest länger als nur 6 Stunden am Stück – nach 5 Wochen Pendeln zwischen Aachen, Bonn und Bochum. Das Praktikum hat eine Menge Spaß gemacht, auch wegen der eher seltenen Gelegenheit mit Objective C und für eine Apple-Plattform zu entwickeln (und das Produkt von unserem persönlichen Steve-Jobs-Fake präsentieren zu lassen).
Das nächste Mal nehme ich mir eine Wohnung oder ein Zimmer für einen Monat, anstatt mit der Bahn zu pendeln. Verspätete volle Züge sind auf Dauer nicht auszuhalten.
Erkenntnisse:
- Nutellabrötchen sind keine langzeittaugliche Ernährung
- Egal wie laut die an CruiseControl angeschlossene Sirene ist, jemand commited trotzdem Code, der die Tests nicht besteht
- Nicht alles, was auf dem iPhone Simulator läuft, läuft auch auf dem iPhone (Kein NSXMLDocument, kein NSPredicate, …)
- Exception-driven development > Test-driven development
- Evolving architeture + non-experts = Jede Woche alles komplett umschmeißen
- Ruby on Rails als Gameserver ist komisch, aber funktioniert
- Der Post-It- und Papierrollenverbrauch von Agile-Development-Teams ist der Nagel zum Sarg der Waldbestände
- Verlasse dich auf Pizzadienste und du bist verlassen
- Am Anfang weiß jeder, dass Tests wichtig sind, in der Mitte vergisst es jeder, und am Ende fällt es einem schmerzlich wieder ein.
- BÄM!