Homepage
» Web2.0
- Montag, 6. November 2006, 23:51
- Effektive Browsererkennung Internet Explorer
- Ich hatte es ja bereits vor geraumer Zeit bereits einmal angesprochen
, als ich die JavaScript Bibliothek IE7 von Dean Edwards
vorgestellt habe, dass man mit einer simplen Abfrage JavaScript nur für die Internet Explorer Familie ausführen kann.
Weil ich gerade mal wieder auf dieses Problem gestoßen bin (ich habe bei mir den Internet Explorer 7 noch nicht installiert, daher kann ich nur Aussagen zum IE6 treffen), will ich das ein für alle mal verewigen.
Der Trick hierbei ist das Anwenden von Condtional Comments, also etwas wie das hier
Im Einzelnen:
IE steht für Internet Explorer, klar.
Dahinter steht die Versionsnummer.
gte steht für greater-than oder eval, also größer-gleich
Auf gut Deutsch, dieser Code wird nur von einem Browser der Internet Explorer Familie ab Version 6 und höher ausgeführt.
Folgende Optionen sind möglich:
gte -> greater-than or eval
gt -> greater-than
lt -> less-than
lte -> less-than or eval
! -> NOT-Operator
Der Trick ist kein billiger Hack, sondern von Microsoft so gewollt. Weitere Informationen gibt es in der MSDN Developer Database in den Artikeln "Detecting Internet Explorer More Effectively
" und "About Conditional Comments
".
Andere Browser überlesen den Code einfach nur. Ach so, es wäre auch möglich jedweden HTML-Code damit nur auf dem IE auszuführen, wenn das denn einen Sinn ergibt.
- Dienstag, 17. Oktober 2006, 16:06
- JAVA-Bibliotheken mit PHP nutzen unter Windows XP
- Dies ist eine kurze Anleitung zur Installation und eines kurzen Tests der PHP-JAVA-Bridge unter Windows XP. Damit lassen sich .jar-Bibliotheken in PHP einbinden.
Schön für alle die einen eigenen Entwickklungsserver haben bzw. einen ROOT-Zugriff auf die PHP-Konfiguration ihr eigen nennen. Für Leute auf einem Shared Webserver leider total unpraktikabel.
1, Download des Binary Paketes der PHP-JAVA-Bridge von der Seite http://sourceforge.net/projects/php-java-bridge
. Hauptseite: http://php-java-bridge.sourceforge.net/ 
2. Entpacken des ZIP-Archives
3. Ausführen der Datei test.bat. Die Datei entpackt die JavaBridge.war und erzeugt eine php.ini-Datei mit den Werten, die unter Punkt 5 in die php.ini eingetragen werden müssen.
4. Kopieren der Dateien JavaBridge.jar und php_java.dll aus dem erzeugten Ordner ext in den ext-Ordner der PHP Installation. (Die XAMPP-Version von apachefriends.org liefert bereits eine php_java.dll, die jedoch nicht ausreichend ist, daher muss sie ersetzt werden).
5. php.ini suchen und folgende Werte eintragen:
extension=php_java.dll
sowie
[java]
java.java_home=[Laufwerk:]\[PATH]\[TO]\jre1.5.0_08
java.java=[Laufwerk:]\[PATH]\[TO]\jre1.5.0_08\bin\javaw.exe
java.log_level=2
;java.log_file=ext/JavaBridge.log
6. Server-Neustart. Ausführen einer info.php
<?php
phpinfo();
?>
Dort sollte ein Eintrag unter java stehen, der anzeigt, dass der JAVA-Support aktiviert ist.
7. Ausführen eines Hello World Skripts
Die JAVA-Datei sieht wie folgt aus:
public class HelloWorld {
String test = "Hello World";
public void HelloWorld(){
}
public String getHelloWorld() {
return test;
}
}
Sie wird unter HelloWorld.java abgespeichert.
Nun wird die Konsole bemüht, um zunächst die .java-Datei in Bytecode umzuwandeln. Dies erfolgt über den Aufruf
javac HelloWorld.java
(Dabei ist davon auszugehen, dass man sich im entsprechenden Verzeichnis befindet)
Eine HelloWorld.class-Datei (Die Datei mit dem Bytecode für die Virtual Machine) wird erzeugt.
Danach wird eine JAR-Bibliothek erzeugt.
jar cvf HelloWorld.jar HelloWorld.class
Ergebnis: Eine Datei mit dem Namen HelloWorld.jar
Als nächstes wird ein PHP-Skript für den Aufruf der JAVA-Klasse angelegt.
Das PHP-Skript
<?php
//Einbinden der JAVA-Bibliothek
java_require($_SERVER['DOCUMENT_ROOT']."/path/to/HelloWorld.jar");
// Instantiieren der JAVA-Klasse
$myObj = new Java('HelloWorld');
// Anzeige des übergebenen Strings
echo (String) $myObj->getHelloWorld();
?>
java_require bindet externe Bibliotheken (.jar) ein. Der Aufruf kann über "http:", "ftp:" oder "file:" erfolgen.
Der Aufruf einer JAVA-Klasse erfolgt über den Aufruf new Java('Klassenname'). Ein Aufruf der entsprechenden JAVA-Klasse kann nur erfolgen, wenn diese über einen Konstruktor verfügt. Ansonsten erhält man eine Fehlermeldung:
Fatal error: Uncaught [o(Exception):"java.lang.Exception: CreateInstance failed: new HelloWorld. Cause: java.lang.ClassNotFoundException: Could not find HelloWorld in java_require() path. Please check the path and the SEL and File permissions. Responsible VM: 1.5.0_06@http://java.sun.com/" at: #-10 php.java.bridge.DynamicJavaBridgeClassLoader.loadClass(DynamicJavaBridgeClassLoader.java:448) #-9 java.lang.ClassLoader.loadClassInternal(Unknown Source) #-8 java.lang.Class.forName0(Native Method) #0 H:\htdocs\1\java\test.php(4): Java::__construct('HelloWorld') #1 {main}] thrown in H:\htdocs\1\java\test.php on line 4
Das Ergebnis:
Hello World
Dies ist wieder mal nur eine kleine Gedankenstütze für mich selbst. Für den Leser sei hinzuzufügen, dass man sicherlich spektakulärere Ausgaben erzeugen kann. Dennoch bietet die Einbindung von JAVA-Bibliotheken (bla) ungeahnte Möglichkeiten, wie z.B. das Erzeugen von PDF's über die Bibliothek FOP (http://www.sagehill.net/docbookxsl/InstallingAnFO.html
).
Weiterführende Links:
Gegensätze ziehen sich an
Java-Bibliotheken und -Anwendungen aus PHP heraus nutzen
PHP5 - Java integration on Win32, and examples
http://php-java-bridge.sourceforge.net/
http://php-java-bridge.sourceforge.net/documentation/PHP-API/html/java_8c.html#doc23
http://php.net/manual/de/ref.java.php
- Mittwoch, 4. Oktober 2006, 15:24
- Nackt oder nicht nackt
- Noch was aus der Kategorie Kurioses. Eine PHP-Klasse zum Erkennen von Schweinkram. Das Skript versucht an Hand von Hauttönen zu erkennen, ob nackte Haut gezeigt wird oder nicht.
Ob dies jedoch aureichend ist, ist sehr zweifelhat. Die arme Sau im Bild konnte nämlich nicht hochgeladen werden. Die ewiglich dauernde Bildberechnung dauerte eine knappe Miunte bei 1197 x 825 Pixel. Das Ergebnis:
Da bekommt Schweinkram doch gleich eine andere Bedeutung.
Image scored 81.72%
It seems that you have uploaded a nude picture
Ausprobieren
. Code
.
- Mittwoch, 4. Oktober 2006, 14:55
- Noch mehr Google...
- Oh Mann. da ist man mal einen Monat nicht online und dann kommt man schon gar nicht mehr hinterher, was Google anbetrifft.
Nummero Uno: Google stellt allen Webseitenbetreiber seine Gadgets zur Verfügung, die man von der personalisierten Homepage kennt. Mittlerweile an die 1.200 Stück. Viel Schrott, aber auch einiges sinnvolles. Viel Spaß beim Einbinden. Klick hier
.
Nummero Due: Google stellt seine AJAX search API zur Verfügung. Damit kann man eine Goole AJAX-Suche auf seiner Webseite einbinden. Durchsucht werden das Web sowie Video, News, Maps und Blogs. Klick hier
. Beispiele hier
.
Nummero Tre: Eine Suchmaschine zum Testen hat Google unter http://www.searchmash.com/
gelauncht. Ganz ohne Google-Branding werden hier neue Features für Suchmaschinen ausprobiert. Es werden das Web und Images durchsucht. Zu jeder Suche werden zu den Webergebnissen auch drei Bilder angezeigt. Nebenstehend mal meine Suche nach "Porn".
. Die Suchergebnisse lassen sich per Drag and Drop verschieben. Wobei ich mir nicht sicher bin, wie sinnvoll das ist. Nett finde ich die kleine Anzeige rechts oben in der Ecke, die sich verändert, wenn man scrollt. Einfach mal ansehen.
- Mittwoch, 30. August 2006, 22:17
- Kommentarspam
- Im Moment werde ich regelrecht zugeballert mit Kommentarspam. Wenn ich Morgens mich an den Rechner setze, darf ich mir erst mal 50 Emails runterladen. Hi, nice site, look this: url, url, url etc.
Davon habe ich jetzt die Schnauze voll. Ich habe gerade keine Zeit mir andere Abwehrmaßnahmen auszudenken, daher habe ich jetzt einfach versucht die Spambots (meiner kommt übrigens aus Grenada in Spanien) mittels ihrer IP-Adresse abzuwehren.
Dazu braucht es nur ein paar Zeilen PHP
if (file_exists('banned.php')){
include('banned.php');
$ip = $_SERVER['REMOTE_ADDR'];
foreach ($banned as $k =>$v){
if ($v == $ip){
sleep(20);
}
}
}
Also, wenn es eine Datei gibt, die banned.php heißt, dann ermittle die IP-Adresse desjenigen, der die Seite aufruft. Vergleiche jedes Array-Element, das in banned.php definiert ist und wenn die IP dort aufgeführt ist, dann verzögere das weitere Abarbeiten des Skripts um 20 Sekunden.
Das ganze wird an oberster Stelle der index.php eingefügt.
Die banned.php ist auch ganz einfach:
$banned[] = '80.58.205.40';
Wahrscheinlich werden's noch mehr
. Mal sehen, ob es was bringt. Vielleicht verliert ja der Spambot nach 20 Sekunden die Lust. Ich würde ungern die ganze IP durch ein exit anstatt dem sleep bannen, da die meisten IP's ja dynamisch vergeben werden und dann irgend ein armer Spanier nicht mehr das matblog lesen kann, wenn ihm die IP zugeteilt wird. (Weil ja auch so viele Spanier das matblog lesen).
- Dienstag, 22. August 2006, 19:57
- Ereignisreich
- Heute war ein Tag, an dem sich für mich und meine Diplomarbeit so einiges geändert hat. Ich hatte heute ein Treffen mit meiner Professorin, die, schlecht für mich, aber gut für sie, die letzten 4 Wochen ihren wohlverdienten Urlaub angetreten hat.
Wie dem Ein oder Anderen bekannt sein dürfte, entwickle ich eine Web 2.0 Anwendung. Diplomarbeiten in der Informatik laufen ziemlich häufig nach Schema F ab. Nach einer Einleitung und dem Teil, der die Grundlagen für das weitere Verständnis der Arbeit schafft, setzt sich der Rest der Arbeit aus den Kapiteln
- Anforderungsanalyse
- Applikationsdesign
- Implmentierung
- Tests
zusammen. Dem versierten Leser sollte diese Vorgehensweise auch bekannt sein als Wasserfallmodell
.
In der Anforderungsanalyse werden alle Funktionalitäten bestimmt, die eine zu entwickelnde Applikation später aufweisen muss (Kunden-seitig durch das Lastenheft, Programmierer-seitig durch das Pflichtenheft). Im wahren Leben, abseits vom Diplomwahnsinn, zeichnet der Kunde dann das Pflichtenheft ab und die nächste Phase wird eingeleitet. So habe ich 55 Seiten Anforderungsanalyse geschrieben, mit dem Ergebnis, dass ein Design solch einer Applikation den Rahmen meiner Diplomarbeit definitv sprengen würde, da ich nur max. 90 Seiten abgeben darf und mein Grundlagenteil bereits 35 Seiten umfasst.
Die Frage war also, was tun? Ein befreundeter Programmierer riet mir mich doch einmal mit XP (Extreme Programming
) auseinander zu setzen und vorallem mit YAGNI
, was für You aren't gonna need it steht. Im Einzelnen die Besonderheiten von XP zu besprechen, würde den Rahmnen dieses Artikels sprengen (Anm.: Gern genommener Satz in Diplomarbeiten), jedoch, um auf die wesentliche Erkenntnis einzugehen, werden im XP keine Funktionalitäten beschrieben, sondern User Stories, wie z.B. 'Der Benutzer kann sich einloggen'. Diese User Stories werden dann nach Wichtigkeit bewertet und so genannten Iterationen
zugewiesen. Am Ende einer Iteration steht ein Produkt, dass je nach Anforderungen der User Stories bestimmte Funktionalitäten aufweist. Der Clou an der Sache ist, dass der Teil mit dem Applikationsdesign als Ganzes vor der Programmierung wegfällt, da man jede User Story für sich abarbeitet und dafür ein kleinen, aber feinen Entwurf (Design) macht, der dann implementiert wird.
Dies hat zum Vorteil, dass bei Änderungen nicht das Gesamtmodell geändert wird, sondern nur der jenige Teil der Applikation, der dies betrifft. YAGNI, um das noch einmal aufzugreifen, bedeutet, dass man daher auch nicht Sachen vorbereitend programmiert, die in der Applikation vielleicht irgendwann mal gebraucht werden sollten. Wenn ich zum Beispiel ein Skript für eine Upload-Funktionalität habe und die User Story heisst 'Der Benutzer kann Files auf den Server laden', stelle ich dies als Funktionalität bereit und kümmere mich jetzt noch nicht darum, dass der Benutzer vielleicht einmal einen Batch-Upload (mehrer Files auf einmal) machen können soll. Keep it simple, keep it clear ist die Devise.
Es wurde mir klar, dass dieses Programmiermodell meiner Web 2.0-Entwicklung durchaus entgegen kommt. In O'Reilly's Essay "What is Web 2.0
" stehen folgenschwere Sätze über deren Bedeutung ich mir vor der Auseinandersetzung mit XP nicht im Klaren war: "We put up two or three new features on some part of the site every day, and if users don't adopt them, we take them down. If they like them, we roll them out to the entire site." Cal Henderson, the lead developer of Flickr, recently revealed that they deploy new builds up to every half hour. Wäre ich mir vorher über die Existenz und Bedeutung des XP bewusst gewesen, hätte mir auffallen müssen, dass diese Sätze genau mein Problem beschreiben. Das Wasserfallmodell ist für die Entwicklung von Web 2.0-Applikationen nicht geeignet.
Nun habe ich aber nun mal bereits 55 Seiten an Hand des Wasserfallmodells geschrieben. Soll ich die nun wegschmeissen? Meine Professorin sagte mir, dass es genau diese Erkenntnis ist, die ich in meine Arbeit einpflegen kann. Die Konzeptionsphase ist damit erledigt. Ich kann nach diesem Teil direkt im Sinne des XP dazu übergehen, meine Anforderungen Stück für Stück zu designen und zu implementieren.
Mein Problem ist natürlich, dass ich nur noch eine Woche Zeit hätte, um meine Arbeit abzugeben, daher hatte sie mir vorgeschlagen mein Thema zu ändern und aus 'Design und Entwicklung eines Web-basierten Anotationswerkzeuges' (mit diesem Titel war ich eigentlich nie richtig zufrieden) die Entwicklung heraus zu streichen und mich nur auf die Konzeption zu spezialisieren. Dies wurde jedoch meinen Ansprüchen nicht gerecht, da ich nicht wollte, dass ich eine Anforderungsanalyse abgebe, bei der ich hinterher im Endeffekt sage: "Schön, dass Sie's gelesen haben, aber eigentlich war's für'n Arsch. Vielen Dank für Ihre Aufmerksamkeit."
So habe ich erst einmal zwei Wochen Verlängerung erwirkt. Ich gebe also jetzt in der zweiten Septemberwoche ab. Ich habe ja auch schon einige Sachen programmiert. So habe ich z.B. das Framework
fertig, welches die Requests auf dem Server dynamisch abhandelt. Einzelne Module, wie das Einbinden von flickr und YouTube über WebServices sind programmiert und zu 65% die Einbindung von Google Maps. Anotieren kann man jedoch noch nicht. Daher wurde jetzt auch noch kurzer Hand der Titel meiner Diplomarbeit geändert. Er heißt jetzt: "Konzeption und prototypische Entwicklung einer Mixed-Media-Platform". Klingt funky, oder? Klingt auch mehr nach Web 2.0, irgendwie.
Ich bin also guter Dinge, die Diplomarbeit zu einem, für mich, zufriedenstellenden Ende zu bringen. Ich mache diese Arbeit, im Gegensatz zur allgemeinen Meinung über Diplomarbeiten, nicht nur für meine beiden Professoren, die die Arbeit bewerten sollen, sondern für mich als Grundlage einer Web 2.0-Seite, die irgendwann, wenn sie dem Alpha-Stadium entlassen wird, auch auf die Menschheit losgelassen wird. Mit XP habe ich jetzt ein Vorgehensmodell gefunden, mit dem ich entspannter, viel entspannter, an die Sache rangehen kann. Ich habe nicht mehr den Klotz am Bein ein Applikationsdesign im Sinne des Wasserfallmodells zu erstellen und daher auch nicht mehr so ein Brett vor'm Kopf.
Die Diplomarbeit ist allerdings und bleibt viel Arbeit. Minimum 7 Stunden, meistens aber 12 Stunden am Tag wende ich zur Zeit dafür auf. Daher glaube ich auch nicht, dass Jürgen, der eine Diplomarbeit über Web 2.0 schreibt, seinen Fulltime-Job nebenher aufrecht erhalten kann (und den dazu gehörigen Artikel anscheinend gelöscht hat und damit gegen eine der goldenen Regeln des Web 2.0 verstößt, daher trackbacke ich auf einen anderen Artikel
, schade). Ich habe ja auch am Anfang nebenher gearbeitet und habe festgestellt, dass dies für mich nichts bringt. Respekt, wenn man's trotzdem hinkriegt.
Und für alle, die es geschafft haben sich hier mal wieder durch meine geistigen Ergüsse zu lesen, herzlichen Glückwunsch, Du hast es geschafft. Für heute bin ich fertig.
- Montag, 7. August 2006, 14:17
- Richtiges Browserverhalten
- Um dem IE5 und dem IE6 die Webstandards ein bißchen näher zu bringen gibt es von Dean Edwards ein Script namens IE7
. Setzt man dieses ein, kann man auf die so genannten CSS-Hacks vollkommen verzichten, denn der IE hält die vom W3C erarbeiteten Standards ein.
Folgende Features erhält man:
- supports the following CSS selectors:
- namespace|selector
- parent > child
- adjacent + sibling
- adjacent ~ sibling
- [attr], [attr="value"], [attr~="value"] etc
- .multiple.classes (fixes bug)
- :hover, :active, :focus (for all elements)
- :first-child, :last-child, only-child, nth-child, nth-last-child
- :check, :disabled, :enabled
- :root, :empty, :contains(), :not()
- :before/:after/content:
- :lang()
- works with both HTML and XML documents
- supports imported style sheets
- preserves the cascade of the style sheet
- does not alter the document structure
- does not repeatedly query the DOM tree using JavaScript
- uses pure CSS to enforce style sheet rules
- supports the W3C box model in both standards and quirks mode
- supports fixed positioning (flicker free)
- supports overflow:visible
- supports min/max-width/height
- fixes broken (X)HTML elements (abbr, object)
- standardies forms behavior
- supports PNG alpha transparency
- lightweight script (22K)
- completely modular (add/remove fixes)
- works for Microsoft Internet Explorer 5+ (Windows only)
Der Nachteil ist natürlich, dass der Client JavaScript aktiviert haben muss. Wenn ich mir gerade Firmen ansehe, die nur den IE auf den Rechnern haben und Admins die Scripting generell deaktivieren...
Eingebunden wird das Ganze folgendermaßen:
Dies beruht auf einem Bug/Feature des IE namens Conditional Comments
. Der IE parst auch Code innerhalb eines Kommentars, andere Browser nicht. Das heißt, dass auch nur der IE diesen ausführt. [if lt IE 7] bedeutet, dass dieser Code nur von Browsern kleiner als IE7 ausgeführt werden soll. Dies kann man natürlich dementsprechend für die Version anpassen, die man braucht.
- Sonntag, 6. August 2006, 21:10
- JavaScript Email Validierung
- var test = 'testString';
if (!test.value.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)){
alert('not valid');
} else {
alert('valid');
}
- Freitag, 4. August 2006, 12:23
- JavaScript 1.7
- Alle Neuheiten zu JavaScript 1.7
gibt's auf der Seite des Mozilla Developer Centers.
- Mittwoch, 19. Juli 2006, 09:55
- Mehr Diplomanden - Versuch einer Web 2.0 Diskussion im Sinne des Web 2.0
- Durch meinen Artikel zu "Was ist Web 2.0?
" komme ich mit immer mehr Leidensgenossen in Kontakt, die dieses Thema auch auf die ein oder andere Art und Weise in ihrer Diplomarbeit behandeln. Noch mehr freut es mich natürlich, wenn sie meinem Beispiel folgen und ihre Sichtweisen in ihren Blogs verfolgen. So auch z. B. Jürgen aus der Nähe von Frankfurt, der eine Diplomarbeit mit dem Titel "Enterprise 2.0" schreibt. Zunächst war sich Jürgen nicht sicher, ob er seine Recherchen oder geistigen Werke auch veröffentlichen soll, aber mittlerweile gibt es schon einige Einträge wie seine Gliederung und erste Kerngedanken, den er in seinem Artikel "Die drei Phänomene des Web 2.0
" veröffentlicht hat.
Ich nutze mein Blog mal um seinen letzten Artikel zu kommentieren. Ich wollte schon immer mal eine Dikussion über mein Blog zu einem Anderen führen. That's Web 2.0, man.
Jürgen schreibt:
Ich sitze gerade an der Gliederung meiner Diplomarbeit und überlege, wie ich in einen roten Faden durch das Web 2.0 ziehen kann. Durch meine Recherche bin ich auch folgende Thesen gekommen:
Die technische Sichtweise: AJAX und Rich Web Application
Die gesellschaftliche Sichtweise: Kollaboration und Selbstdarstellung
* Die wirtschaftliche Sichtweise: Neue Goldgräberstimmung und Aufbau des Medium „Internet“ durch die Medien zum Comeback
Meiner Meinung nach muss AJAX nicht wirklich etwas mit Web 2.0 zu tun haben. Es wird zwar oft in einem Atemzug genannt, jedoch ist es kein unbedingtes Muss. Es bleibt dem Entwickler und Konzepter selbst überlassen, ob AJAX eingesetzt wird. Es gibt durchaus auch Web 2.0 Seiten die gänzlich auf AJAX verzichten. YouTube ist da ein Beispiel oder fro.rtio.us kommt auch gänzlich ohne AJAX aus. flickr war schon eine Web 2.0 Anwendung als all die kleinen Gimmicks noch aus Flash-Bestandteilen gestrickt waren. Erst vor Kurzem ist flickr auf AJAX umgestiegen (mit dem Gamma Release).
Andererseits fordert O'Reilly
Rich Internet Applications, die den Benutzer vom Look & Feel an Desktop-Applikationen erinnern. Dies wird zunächst einmal mit DHTML erreicht. Der asynchrone Request, der dann einzelne Komponenten aktualisiert muss aber nicht unbedingt mit AJAX erfolgen. Es gibt auch Techniken wie FJAX, wo die Requests über eine Flash Engine gehandelt werden. Wenn man sich AJAX-Bücher ansieht, werden sogar iFrames noch als gängige Praxis angesehen. Davon würde ich aber Abstand nehmen.
Bei Rich Internet Applications stimme ich allerdings zu. Sie sollen Benutzern die Arbeit mit der Seite so angenehm wie möglich gestalten. Drag & Drop, Sortierung, im nur 2 Beispiele zu nennen. Was mir jedoch noch fehlt ist die Erweiterbarkeit durch API's. Das sollte unbedingt rein. Es ist der Motor des Web 2.0 aus technischer Sicht. Applikationen wie uploadr sind zum Beispiel ein Beispiel für diese Erweiterbarkeit.
Mit der gesellschaftlichen Darstellung stimme ich überein. Vielleicht kann man ja noch die Weisheit der Vielen erwähnen.
Wirtschaftlich gibt's ein paar Ansätze im neuen Spiegel.
Also lieber Jürgen, verstehe es bitte nicht als Kritik. Dies soll nur meine Sichtweise auf die Dinge sein. Sie sind natürlich in keinster Weise verbindlich. Ich habe nur rausgefunden, je mehr man sich mit Anderen über das Thema unterhält, desto klarer wird es einem selbst. Deswegen kann ich Dich nur zu Deinem Schritt beglückwünschen Deine Überlegungen zu veröffentlichen.





