Was sich schon in den letzten Jahren angedeutet hat wird immer deutlicher. China läuft uns davon.
In allen wirtschaftlichen Belangen hat China gewaltige Steigerungsraten. Und der Westen wird mehr und mehr hinterherlaufen.
Die USA versuchen mit militärischer Macht dagegen zu halten. Aber auch das wird meiner Meinung nach nicht gelingen. Einerseits weil es aus meiner Sicht nicht die richtige Strategie ist – von der Moral ganz abgesehen – , andererseits zerfleischen sie sich gerade selbst.
Russland spielt geostratetisch und militärisch noch eine Rolle, aus ökonomischer Sicht sind sie aber nur ein Mitläufer.
Dieser Artikel ist der Ansatz, Schopenhauer’s Welt in der Software Entwicklung darzustellen und auf mehrere Ebenen und Systeme zu übertragen.
Nach Schopenhauer hat jedes Lebewesen einen Willen.
Die unbelebten Gegenstände sind dagegen „nur“ existent. Die Lebewesen benutzen die Gegenstände, um ihren Willen umzusetzen.
Wille und Ziel
Was ist der Unterschied zwischen Wille und Ziel?
Das Ziel ist ein neuer Zustand, der erreicht werden will (sehr witzig, daß dieses Wort schon ein Teil von „Wille“ ist).
Um diesen neuen Zustand zu erreichen benötigt man zielgerichtete Aktivitäten. Das wird mit dem Begriff „Wille“ verbunden. Wenn kein Wille vorhanden ist, kann das ausgesprochene Ziel durch den Zielgeber nicht erreicht werden (ausser von „aussen“) .
Im Unterschied dazu ist ein „Wunsch“ etwas passives. Wenn jemand einen Wunsch äussert, trägt er nicht aktiv dazu bei, dass dieser Wunsch erfüllt wird, sondern ist passiv. Oder anders ausgedrückt, er wünscht sich eine Aktivität von „aussen“.
Wenn der Wunsch oder das Ziel erreicht wird, ist man glücklich. Wenn nicht, leidet man.
Ziele einer Art und eines Produktes
Jedes Lebewesen, angefangen von Viren bis zu den sogenannten höher entwickelten Arten, hat einen Willen bzw. ein oder mehrere Ziele. Aber gehen wir zuerst eine Ebene höher, sehen wir uns eine Art an.
Das Überleben der Art über mehrere Generationen ist ein klares Ziel. Dies wird z.B. über das Speichern in der DNA und mit der Reproduktion auf die nächste Generation erreicht. Siehe auch Charles Darwin etc.
Im Leben eines Software Produktes werden im Lebenszyklus immer neue Releases geplant.
Im Leben entstehen neue „Releases“ ungeplant mit dem Mechanismus der Mutation. Wobei eine Änderung eines Features auch nichts anderes ist wie eine Mutation, nur eben bewusst herbei geführt.
Mutationen und ihre Wirkungen sind natürlich von Charles Darwin bzw. Richard Dawkins hervorragend beschrieben.
Übrigens kann man die Begriffe „Art“ und „Produkt“ auch mit „Firma“, „Gesellschaft“, „Gemeinde“ und „Staat“ ersetzen.
Ziele auf Individual Ebene
Auf der Ebene des Individuums haben wir ebenfalls Ziele und einen Willen. Das Individuum setzt sich kleine Zwischenziele und setzt diese um. Es gibt natürlich auch langfristige Ziele, wie das Erreichen einer Futterquelle, die Reproduktion, das Erobern neuer Welten, etc.
Auf technischer Ebene entsprechen die Zwischenziele den Sprint Zielen.
Über die Sprints bzw. die individuellen Ziele wird immer wieder iteriert. Sowohl in der Software Domäne als auch in der Domäne der Lebewesen.
Top down oder buttom up
Dies war nun eine Top down Betrachtung. Man kann sich auch den buttom up Ansatz durchgehen, das Ergebnis ist das Gleiche.
Auch kann man sich gedanklich beliebig viele weitere Ebenen denken, wie z.B. sich bei einem Tier auf die Ebene der Zellen zu bewegen und sich den Lebenszyklus mit den Zielen auf Zellebene ansehen.
Systemischer Ansatz
Wie wir gesehen haben, können wir den systemischen Ansatz verwenden um die Rahmenbedingungen für die einzelnen Systeme zu verstehen. Auf dieser Basis können wir die Ziele der einzelnen Systeme erkennen und anhand der Ziele verstehen wir die Aktivitäten, die zu diesen Zielen gehören.
Im nächsten Schritt können wir dann die einzelnen Systeme miteinander verknüpfen.
Die folgenden Quellen haben mich bei dem Artikel inspiriert:
Yeah, a first version of the folding@home remote client prototype is ready to go!
The use case of the software is the following :
The available client software for the folding@home project concentrates on making the calculations for the famous protein project. That makes complete sense.
On the other hand sometimes I also want just to control my clients from the mobile phone. And this problem is solved by the remote client.
The software makes no calculations at all, it just controls the other devices/clients where the calculations are happening.
Features
With the prototype you can already perform the following actions :
Add a new client with name, IP address and port
Edit the client’s properties
Delete a client
Select a client and perform the following actions :
Select the power used for the calculations
Start, Pause and finish folding of a slot
While a client is selected, it’s status including multiple properties is pulled in regular intervals
The next actions/features I have in mind :
Compile a runnable IOS and Android package
Make the GUI more beautiful with e. g. images for the buttons etc.
Add another screen for the work unit details
Implement a link to the user or show the browser results
Implement a link to the project or show the browser results
Let me know, if you wanna contribute, not only via a merge request 😉
One test I cannot do with my environment as I only have a laptop with one CPU.
So you can also contribute just with testing in an environment where one server has more than one CPU / GPU. Then the machine would have multiple slots.