diff --git a/OLD.news b/OLD.news
new file mode 100644
index 0000000..7095da2
--- /dev/null
+++ b/OLD.news
@@ -0,0 +1,1905 @@
+neue Rubrik news (Mesirii, 25. Aug 1999, 09:48:25):
+Hallo,
+da die Zeitung so oft leer ist, und Hate keine Zeit hat, sollen in dieser
+Rubrik unregelmaessig ein paar News gepostet werden, wer sie nicht lesen
+will kann die Rubrik ja abbestellen.
+
+Mesi, news-Poster
+
+-----------------------------------------------------------------------------
+
+
+
+Pech f?|r Notebook-Ruber (Taragon, 25. Aug 1999, 09:53:19):
+
+Magere Beute haben die drei bewaffneten Mnner gemacht, die am Samstag einen   
+angeblich mit 1450 Compaq-Notebooks beladenen Transporter |berfallen hatten.
+Mittlerweile steht fest, dass den Rubern statt kompletter Notebooks           
+lediglich Gehuse und Displays in die Hnde gefallen sind. Die erbeuteten
+Notebook-Teile sollten nach Recherchen von The Register nach Schottland       
+transportiert werden. Dort sollten sie in einer Fabrik des taiwanesischen
+Unternehmens Inventec zusammengebaut, mit Festplatten und Tastaturen          
+ausger|stet und spter unter Compaq-Label verkauft werden.   Compaq teilte
+inzwischen mit, die erbeuteten Teile seien zum Zeitpunkt des \berfalls
+vollstndig im Besitz von Inventec gewesen. Diese Erklrung ist Compaq         
+offenbar nicht leicht gefallen. Bisher hatten Compaq-Manager immer wieder
+beteuert, ihr Unternehmen baue Notebooks ausschliewiederlich in eigener Regie.
+Oliver Ehlebracht (em/c't)                                                    
+
+-----------------------------------------------------------------------------
+
+
+
+Re: neue Rubrik news (Bambulko, 25. Aug 1999, 10:43:07):
+~#! rn=Mesirii rt=935574505 rg=news
+~#! tid=935574505
+Oh nein, gibt es wirklich Leute hier, die so oft hier sind, das sie jetzt auch
+noch ihre nachrichten hier lesen muessen? 
+Ist ja traurig....
+
+Bambulko
+
+-----------------------------------------------------------------------------
+
+
+
+Re:   buecher.de uebernimmt Internet-Antiquariat (Grimmborn, 25. Aug 1999, 16:22:51):
+~#! rn=Mesirii rt=935581453 rg=news
+~#! tid=935581453
+Entschuldige, aber die ganzen planlos zusammenabgeschriebenen Meldungen
+koennen doch sicher nicht Sinn dieser Rubrik sein?
+
+Grimmborn der Verleger
+
+-----------------------------------------------------------------------------
+
+
+
+Re: Re:   buecher.de uebernimmt Internet-Antiquariat (Patryn, 25. Aug 1999, 16:26:10):
+~#! rn=Grimmborn rt=935598171 rg=news
+~#! tid=935581453
+ich fand die meldungen zum teil sehr interessant. die rubrik war eh leer,
+also such was anderes, worueber du dich ereifern kannst.
+
+------
+patryn
+
+-----------------------------------------------------------------------------
+
+
+
+Re^3:   buecher.de uebernimmt Internet-Antiquariat (Calimera, 25. Aug 1999, 16:26:42):
+~#! rn=Patryn rt=935598370 rg=news
+~#! tid=935581453
+ich fand es eindeutig zu viel
+
+-----------------------------------------------------------------------------
+
+
+
+Re^4:   buecher.de uebernimmt Internet-Antiquariat (Wurzel, 25. Aug 1999, 18:43:13):
+~#! rn=Calimera rt=935598402 rg=news
+~#! tid=935581453
+ich find es gut. normal komm ich eh kaum dazu zeitung zu lesen. wenn sich
+schon jemand die muehe macht, find ich das toll. wem es nicht passt, kann
+die rubrik ja abbestellen oder sich alternativ in die ecke stellen und heulen.
+
+wurzel
+
+-----------------------------------------------------------------------------
+
+
+
+Re^5:   buecher.de uebernimmt Internet-Antiquariat (Heromcfly, 25. Aug 1999, 18:45:31):
+~#! rn=Wurzel rt=935606593 rg=news
+~#! tid=935581453
+
+mit nn durchscrollen is aber   bequemer als abbestellen und auf die art und
+weise isses ne menge scroll 
+-P
+
+
+-----------------------------------------------------------------------------
+
+
+
+Re: Also doch: Muecken riechen leckeres Blut aus der Ferne (Lug, 25. Aug 1999, 22:52:47):
+~#! rn=Mesirii rt=935577932 rg=news
+~#! tid=935577932
+JAAAAAA,
+
+genau, sag ich auch immer, aber keiner glaubt es einem. Die Biester fressen
+nur mich auf...
+Lug
+
+-----------------------------------------------------------------------------
+
+
+
+Re: Re: Also doch: Muecken riechen leckeres Blut aus der Ferne (Grimmborn, 26. Aug 1999, 11:44:36):
+~#! rn=Lug rt=935621567 rg=news
+~#! tid=935577932
+Was soll das sein? Etwa ein Beleg fuer die These dass Muecken Feinschmecker
+sind?
+
+GdA
+
+-----------------------------------------------------------------------------
+
+
+
+Re: Re:   buecher.de uebernimmt Internet-Antiquariat (Mesirii, 26. Aug 1999, 11:47:30):
+~#! rn=Grimmborn rt=935598171 rg=news
+~#! tid=935581453
+Doch das sind, sie ;)
+siehe Artikel 1 ;)
+Mesi
+
+-----------------------------------------------------------------------------
+
+
+
+Re^3:   buecher.de uebernimmt Internet-Antiquariat (Grimmborn, 26. Aug 1999, 11:54:15):
+~#! rn=Mesirii rt=935668050 rg=news
+~#! tid=935581453
+In dem Fall gibts immer noch die Rubrik dw-news.
+
+GdA
+
+-----------------------------------------------------------------------------
+
+
+
+Re: Illegaler Holzeinschlag bedroht Indonesiens Orang Utans (Hobo, 27. Aug 1999, 08:53:50):
+~#! rn=News rt=935668332 rg=news
+~#! tid=935668332
+Ich kenn diesen Dr. Olaf Elicki ja nicht, aber...
+Orang Utans wuerde ich jetzt nicht unbedingt als "pussierlich" bezeichnen.
+
+Hmm, wie waer's generell mal, wenn man neben dem Autor auch noch erfahren
+koennte, aus welcher Veroeffentlichung die Meldung stammt? Wenn's sowas wie
+BILD-online gibt, wuesste ich das naemlich gern, wenn ich Schmaarn davon lese
+:)
+
+  Hobo
+
+-----------------------------------------------------------------------------
+
+
+
+Re: Re: Illegaler Holzeinschlag bedroht Indonesiens Orang Utans (Mesirii, 27. Aug 1999, 11:17:42):
+~#! rn=Hobo rt=935744030 rg=news
+~#! tid=935668332
+Hallo Hobo,
+die news sind vom Wissenschaftsdienst Online.
+http://www.wissenschaft.de/bdw/wdo/wdoframe2.hbs
+Mesi
+
+-----------------------------------------------------------------------------
+
+
+
+Neues Medium ? (Firehawk, 27. Aug 1999, 19:10:04):
+Ich hab grade gelesen, dass Sharp eine Disc entwickelt hat, auf die 200
+Gigabyte passen.
+Damit hat sie 40-fache Speicherkapazitaet einer DVD.
+Man rechnet mit Verfuegbarkeit entsprechender Geraete in zwei Jahren (na mal
+sehen).
+
+Der entsprechende Artikel ist an folgender Adresse zu finden:
+http://www.next-generation.com/jsmid/news/7474.html
+
+
+-----------------------------------------------------------------------------
+
+
+
+  Bedarf an IT-Fachkraeften waechst (News, 14. Sep 1999, 06:06:00):
+   Die Nachfrage IT-Fachkraeften hat im ersten Quartal 1999 um 27 Prozent
+   zugenommen. Zu diesem Ergebnis kommt eine [1]Stellenmarktanalyse des
+   Muenchner Weiterbildungsunternehmens CDI. Fuer diese Untersuchung wertet
+   CDI regelmaessig den Stellenteil in 30 deutschen Tageszeitungen und 4
+   Fachzeitschriften aus. Insgesamt wurden in den ersten drei Monaten des
+   Jahres knapp 29.000 Stellenangebote fuer IT-Fachkraefte gefunden.
+   Besonders gefragt waren Programmierer (30 Prozent) vor
+   Systemfachleuten (20 Prozent) und IT-Beratern (18 Prozent). Drei
+   Fuenftel der Angebote kamen direkt aus der IT-Branche, 11 Prozent aus
+   der Industrie und 5 Prozent von Banken und Versicherungen.
+   
+   Mit einer Stichprobe hat CDI auch die Anforderungen der Arbeitgeber
+   ermittelt. Demnach waren Programmierer, die C++, C oder Java
+   beherrschen, besonders begehrt. Bei Netzwerkern werden vor allem
+   tiefere Kenntnisse von Windows NT und UNIX verlangt; bei Jobs im
+   Datenbankbereich sind Erfahrungen mit Oracle fuer ein Drittel aller
+   Stellen Bedingung.
+   
+   Am groessten war die Zunahme an Stellenanzeigen fuer Internet- und
+   Multimedia-Spezialisten. Waehrend im Vergleichszeitraum des Vorjahres
+   880 Anzeigen vermerkt wurden, waren es im ersten Vierteljahr dieses
+   Jahres bereits 1300. Hier haben Programmierer und Techniker (28
+   Prozent) die besten Chancen, gefolgt von Marketing-Experten (19
+   Prozent) und Screen-Designern (18 Prozent). 38 Prozent der Stellen
+   wurden von Multimedia-Agenturen ausgeschrieben, gefolgt von
+   IT-Unternehmen (18 Prozent) und Werbeagenturen (10 Prozent).
+   ([2]anm/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Internet ab 3,8 Pfennig pro Minute (News, 14. Sep 1999, 06:06:02):
+   Die [3]Networking People GmbH in Augsburg bietet ab sofort den
+   Internet-Zugang zwischen 21 und 5 Uhr fuer 3,8 Pfennig pro Minute an.
+   Der Provider rechnet die Onlinezeit sekundengenau ab; die Einwahl
+   erfolgt ueber eine kostenlose 0800-Nummer. Networking People nennt
+   diesen Tarif "Internet-By-Call", verlangt jedoch eine
+   Einrichtungsgebuehr von 14,95 Mark. 16 MegaByte Speicherplatz fuer die
+   eigene Homepage sowie 5 E-Mail-Adressen sind in dem Paket enthalten.
+   
+   Fuer die Zeit zwischen 18 und 21 Uhr sowie von 5 bis 8 Uhr verlangt der
+   Provider 4,75 Pfennig je Minute; tagsueber 5,5 Pfennig. Die
+   Vertragslaufzeit betraegt mindestens einen Monat.
+   
+   Noch guenstiger surfen kann man im Einzugsbereich eines der 84
+   Einwahlpunkte von [4]Viag Interkom, die jedoch nicht flaechendeckend
+   zum Ortstarif erreichbar sind. Ueber diesen Provider bietet neben
+   [5]DellNet inzwischen auch [6]Sony einen "kostenlosen" Internet-Zugang
+   an. Durch Optionstarife der deutschen Telekom kostet so die
+   Onlineminute abends nur 2,1 Pfennig. ([7]ll/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Kauf dir eine Palm-Aktie (News, 14. Sep 1999, 06:06:03):
+   [8]3Com gibt den Organizer-Zweig Palm Computing ab. Anfang des
+   kommenden Jahres will der Konzern die erfolgreiche Sparte ausgliedern
+   und als sparates Unternehmen an die Boerse bringen. 3Com will in sich
+   in Zukunft nur noch auf sein Stammgeschaeft der Netzwerkloesungen
+   konzentrieren.
+   
+   Mit fuenf Millionen verkaufter Organizer (Pilot, PalmPilot, Palm
+   III/IIIx/V/VII) ist 3Com Marktfuehrer im gesamten Bereich der Personal
+   Digital Assistants. Ueber Lizenzierungen und OEM-Vertraege will Palm
+   Computing in Zukunft das hauseigene Betriebssystem PalmOS auch bei
+   anderen Herstellern platzieren.
+   
+   Als neues Mitglied des "Board of Directors" von Palm Computing steht
+   nach Angaben von 3Com der ehemalige Netscape-Chef James L. Barksdale
+   fest. ([9]ts/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  IBM nimmt Sun-Server ins Visier (News, 14. Sep 1999, 06:06:04):
+   IBM kuendigt eine neue Serie von Unix-basierenden Servern fuer
+   Internet-Dienste an. Nach den NT-basierenden [10]Mini-Servern fuer
+   Internet-Provider ist das schon die zweite Kampfansage an Marktfuehrer
+   Sun innerhalb weniger Wochen.
+   
+   Das Spektrum der Server reicht von der RS/6000 B50 Pizzaschachtel
+   (Codename Pizzazz), die sich in Racks montieren laesst, bis hin zu
+   Boliden wie der RS/6000 S80, die mit bis zu 24 PowerPC-Prozessoren in
+   Kupfertechnologie bestueckt werden kann. Alle Server laufen mit IBMs
+   eigener Unix-Variante AIX 4.3.3. Die Pizzaschachtel soll sich
+   wahlweise auch unter Linux betreiben lassen. Ausserdem will IBM Anfang
+   naechsten Jahres Zusatzsoftware als Open Source bereitstellen, die es
+   erlaubt, Linux-Applikationen unter AIX auszufuehren. ([11]ju/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Microsofts Plan fuer die Post-PC-Aera (News, 14. Sep 1999, 06:06:06):
+   Microsoft will in Zukunft staerker auf Web-basierende Software setzen.
+   Das berichtet das Wall Street Journal in seiner aktuellen Ausgabe. Die
+   neue Software-Strategie, die intern "Windows DNA 2000" genannt wird,
+   soll heute in San Francisco der Oeffentlichkeit vorgestellt werden. Das
+   Konzept beinhaltet unter anderem ein Identifikations- und
+   Bezahlungs-System fuer das Internet. Ueber seine MSN-Website will
+   Microsoft Software-Entwicklern Web-basierende Komponenten zur
+   Verfuegung stellen. Langfristig soll die gesamte Produktpalette vom
+   Einzelplatzrechner auf den mit dem Internet verbundenen PC umgestellt
+   werden.
+   
+   Das Konzept beruht auf einem internen Memo, das Bill Gates im
+   vergangenen Jahr geschrieben hat. Die Ankuendigung zum jetzigen
+   Zeitpunkt duerfte allerdings mehr mit den Angebot des Konkurrenten Sun
+   zu tun haben, der vor kurzem erklaerte, er wolle fuer beliebige Clients
+   [12]Office-Software uebers Netz zur Verfuegung stellen. Unmittelbar nach
+   dem Coup hatte auch Microsoft fuer die naehere Zukunft Web-basierende
+   Office-Dienste [13]angekuendigt. ([14]wst/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Zeuge Gates: "Bizarr" und "unglaubwuerdig" (News, 14. Sep 1999, 06:06:08):
+   Mit ungewoehnlich scharfen Worten hat das US-Justizministerium die
+   letzte Runde im Kartellprozess mit Microsoft eingelaeutet. In einer
+   Zusammenfassung des bisherigen Prozessverlaufs attackierte die Justiz
+   vor allem Microsoft-Boss Bill Gates. Seine Rolle bei
+   aussergerichtlichen Zeugenaussagen sei "bizarr" gewesen und seine
+   Einlassungen "schlicht unglaubwuerdig". Trotz der Dementis von Gates
+   sei erwiesen, dass Microsoft dem Rivalen Netscape erheblichen Schaden
+   zugefuegt habe.
+   
+   Dem haelt Microsoft entgegen, dass von einem Schaden keine Rede sein
+   koenne. Netscape sei fuer rund 10 Milliarden Dollar an AOL verkauft
+   worden. AOL uebe nach der Vereinigung mit Netscape weiterhin
+   erheblichen Wettbewerbsdruck auf Microsoft aus. Netscape wurde und
+   werde nicht am Vertrieb des rivalisierenden Browsers gehindert;
+   Verbrauchern seien deshalb auch keine Nachteile entstanden.
+   
+   Redmond habe seine Sicht der Dinge waehrend des Prozessverlaufs
+   mehrfach revidiert, konterte das Justizministerium. "Nachdem
+   [Microsoft] anfaenglich behauptete, man habe das Opfer nicht
+   erschossen, sagte man spaeter, alle seien an der Erschiessung beteiligt
+   gewesen und das Opfer waere sowieso gestorben. Und nun sagt Microsoft,
+   das Opfer ist voellig unverletzt." Durch die kostenlose Weitergabe des
+   Internet Explorer sei Netscape zwar nicht am Vertrieb, aber am Verkauf
+   seiner Software gehindert worden. Vom geschenkten Explorer wuerden
+   Verbraucher ueberdies nur kurzfristig profitieren; langfristig muessten
+   sie mit dem Verlust der freien Produktwahl bezahlen. ([15]em/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Surfen per Kabel (News, 14. Sep 1999, 06:06:09):
+   Gleich zwei Kabelnetz-Betreiber wollen ihren Kunden Internet-Zugaenge
+   ueber das Fernsehkabel anbieten. Die Mainzer [16]PrimaCom will am
+   Mittwoch in Leipzig den regulaeren Betrieb starten. Unter 100 Mark im
+   Monat soll der Internet-Zugang mit bis zu 768 kBit/s fuer Kabelkunden
+   im Leipziger Stadtteil Paunsdorf kosten. Unklar bleibt noch, ob neben
+   dieser Pauschale weitere Kosten auf die Anwender zukommen. Genaue
+   Preise und weitere Konditionen will der Anbieter erst am Mittwoch
+   bekannt geben.
+   
+   Noch nicht ganz so weit ist [17]Ost-Tel-Com aus Steinpleis bei
+   Zwickau. Vorerst koennen nur wenige Testbenutzer per Kabelmodem im
+   Internet surfen. In etwa acht Wochen soll der Testbetrieb
+   abgeschlossen sein. Wer in den umliegenden Orten Werdau, Fraureuth
+   oder Leubnitz wohnt, kann sich an dem Pilotbetrieb noch beteiligen. Zu
+   den Preisen fuer den Internet-Zugang haelt sich Ost-Tel-Com aber vorerst
+   noch bedeckt.
+   
+   ([18]ll/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  AMD antwortet auf Intels Preisoffensive (News, 14. Sep 1999, 06:06:10):
+   Nachdem Intel die Prozessorpreise im [19]Low-Cost- und
+   [20]Mobile-Bereich massiv gesenkt hat, antwortet AMD wie ueblich
+   ebenfalls mit Preissenkungen bei den K6-Prozessoren. Der K6-2/475 wird
+   um 25 Prozent auf nunmehr 114 Dollar (OEM-Peis ab 1000 Stueck)
+   verbilligt, die Preise der anderen K6-2-Versionen fallen um 17 Prozent
+   (K6-2/450 MHz auf 93 Dollar) beziehungsweise 11 Prozent (K6-2/400 auf
+   73 Dollar). Der Preis des erst kuerzlich eingefuehrten
+   MHz-Spitzenreiters K6-2/500 bleibt bei 167 Dollar. Etwas moderater
+   faellt die Reduzierung beim K6-III aus, der 400-MHz-Chip wird nun fuer
+   173 Dollar - 6 Prozent guenstiger als zuvor - angeboten.
+   
+   Die Athlon-Preise bleiben vorerst konstant. Hier erwartet man
+   allerdings Bewegung, wenn schnellere Athlon-Versionen - vermutlich im
+   Oktober - eingefuehrt werden. ([21]as/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Playstation-2-Praesentation via Internet (News, 14. Sep 1999, 06:06:12):
+   Am kommenden Freitag startet die Tokyo Game Show (TGS), auf der Sony
+   erstmals seine neue Spielekonsole "Playstation-2" vorstellt. Wer nicht
+   die Zeit und das Geld hat, sich vor Ort von den Qualitaeten der neuen
+   128-Bit-Konsole zu ueberzeugen, kann dies via Internet tun. Waehrend der
+   Dauer der Messe laesst sich die Praesentation der Konsole und der
+   dazugehoerigen Spiele ueber die [22]Sony-WebCam verfolgen. Die
+   Veranstaltung endet am Sonntag. Wegen der Zeitdifferenz von acht
+   Stunden duerfte der Besuch der Website hierzulande aber nur zwischen 1
+   Uhr und 10 Uhr morgens interessant sein.
+   
+   Erst vor wenigen Tagen hatte Sony den Verkaufsstart der neuen Konsole
+   um mehrere Monate nach hinten verschoben: Die Playstation-2 soll nun
+   erst am 4. Maerz in Japan auf den Markt kommen werden. Der Europastart
+   wird daher aller Voraussicht nach nicht vor Ende 2000 stattfinden.
+   Einen Grund fuer die Verzoegerung hatte Sony-Unterhaltungschef Ken
+   Kutaragi nicht genannt. ([23]chw/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Motorola: 10 Milliarden fuer Surfbox-Hersteller (News, 14. Sep 1999, 06:06:13):
+   Motorola plant die Uebernahme von General Instrument, dem fuehrenden
+   US-Hersteller fuer TV-Surfboxen. Das Unternehmen aus Pennsylvania ist
+   mit dem Chiphersteller Motorola durch langjaehrige Geschaeftsbeziehungen
+   verbunden. General Instrument gehoert auch zu den groessten Produzenten
+   von Kabel-Modems, die von Motorola mit Chips ausgestattet werden. Nach
+   Informationen des Wall Street Journal soll die Uebernahme im Zuge eines
+   Aktientauschs im Wert von 10 Milliarden US-Dollar erfolgen. Demnach
+   erhalten Aktionaere pro General-Instrument-Wertpapier etwas mehr als
+   eine halbe Motorola-Aktie.
+   
+   Mit dem Zukauf koennte sich Motorola nach Ansicht von Beobachtern eine
+   Goldgrube erschliessen. Die TV-Kabel gelten als Basis kuenftiger
+   breitbandiger Angebote und Surfboxen als deren verlaengerter Arm ins
+   Internet und zu neuen digitalen Diensten. General Instrument wird
+   darueber hinaus nachgesagt, die Firma unterhalte spezielle Beziehungen
+   zur Kabel-TV-Industrie. Das Unternehmen hatte in der Vergangenheit
+   grosse Auftraggeber mit der Aussicht auf Firmenbeteiligungen angelockt.
+   ([24]em/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Ungar erpresste Scientology mit "Dianetika"-Pornosite (News, 14. Sep 1999, 06:06:14):
+   Ein Ungar hat die Scientology-Organisation monatelang mit einer
+   pornografischen Website zu erpressen versucht. Ein Budapester
+   Bezirksgericht verurteilte den 23-Jaehrigen dafuer nun zu einer
+   einjaehrigen Bewaehrungsstrafe, berichtete die ungarische Tageszeitung
+   "Magyar Nemzet" am Montag. Der Ungar hatte mehrere E- Mails an die
+   Scientology-Zentrale in Los Angeles geschrieben, in denen er fuer die
+   Einstellung der Web-Seite zunaechst 25 000, dann 30 000 Dollar
+   forderte. Dabei gab er seine Kontonummer an, sodass die Polizei ihn
+   rasch ermitteln konnte.
+   
+   Der Erpresser hatte unter der Adresse www.dianetika.com eine Web-Seite
+   im Internet eingerichtet, auf der er seit November 1998 Pornofotos von
+   ungarischen Schoenheiten veroeffentlichte. Adresse und Aufmachung waren
+   so gewaehlt, dass sich die Seite leicht und irrtuemlicherweise der
+   Scientology-Organisation zuordnen liess. Das Hauptwerk ihres Gruenders
+   Ron Hubbard und die darin verkuendete umstrittene Lehre heissen
+   "Dianetik". Scientology bezeichnet sich selbst als "Kirche".
+   ([25]cp/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  "Feature freeze" fuer neuen Linux-Kernel (News, 14. Sep 1999, 06:06:16):
+   Mit dem Erscheinen des Entwicklerkernels 2.3.18 hat Linus Torvalds
+   einen "feature freeze" fuer den kommenden Anwenderkernel 2.4
+   angekuendigt. Bis zum Erscheinen von Linux 2.4 wird es keine
+   konzeptionellen Aenderungen am Linux-Kernel mehr geben, kleinere
+   Modifikationen (von Bugfixes bis zu neuen Treibern, die sich ohne
+   Aenderungen an anderen Kernelteilen integrieren lassen) sind allerdings
+   noch moeglich. Der "code freeze" -- ein Schnappschuss des aktuellen
+   Entwicklungsstandes, der Grundlage des neuen Anwenderkernels ist --
+   soll in etwa zwei Monaten erfolgen; damit koennte Linux 2.4 noch dieses
+   Jahr erscheinen.
+   
+   Zu den wichtigsten [26]Neuerungen gegenueber der aktuellen Version 2.2
+   gehoeren deutlich verbesserte Multiprozessorfaehigkeiten, USB-, I2O- und
+   Parallelportunterstuetzung sowie ein grundlegend ueberarbeitetes Routing
+   im Kernel. Ausserdem sind eine Reihe neuer Treiber (unter anderem fuer
+   Sound-, Video- und ISDN-Karten sowie verschiedene USB-Geraete)
+   hinzugekommen. Insgesamt wird der Schritt von Linux 2.2 auf 2.4 jedoch
+   weniger gross ausfallen als der Uebergang vom Kernel 2.0 zur Version 2.2
+   Anfang dieses Jahres. ([27]odi/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Erster zertifizierter R/3-Benchmark auf Linux (News, 14. Sep 1999, 06:06:18):
+   Siemens hat den ersten SAP-zertifizierten R/3-Standard-Benchmark auf
+   Linux erfolgreich absolviert. Auf einer Primergy 870/40 erreichte das
+   Heidelberger Siemens SAP Competence Center mit 241 SD- (Sales &
+   Distribution) Benchmark-Benutzern auf einer Zentraleinheit den
+   hoechsten Wert, der bisher fuer diese R/3-Version auf
+   Vierfach-Intel-Systemen gemessenen wurde. Das System verfuegte ueber
+   vier Xeon-III-CPUs mit 2 MByte L2-Cache und lief unter dem
+   Linux-Kernel 2.2.11 mit der Datenbank SAP DB 6.2.10 und der
+   R/3-Version 4.0B.
+   
+   Damit belegt diese Konfiguration derzeit Platz 12 auf der bei IDEAS
+   gefuehrten[28]Top-20-Liste von R/3-Benchmark-Ergebnissen. Siemens hatte
+   schon kurz nach der [29]Ankuendigung, Linux-basierende
+   R/3-Komplettsysteme anzubieten, [30]erste Performance-Messungen von
+   R/3 auf Linux durchgefuehrt, bei denen sich derartige Ergebnisse
+   bereits andeuteten. ([31]avr/iX)
+   
+   Microsoft raet: Active Scripting abschalten!
+   In Reaktion auf einen Bericht des Bulgaren Georgi Guninski, der --
+   [32]wieder einmal -- auf eine neue Sicherheitsluecke im Internet
+   Explorer 5 (IE5) hinweist, raet Microsoft in einem
+   [33]Sicherheitsbulletin dazu, Active Scripting abzuschalten, um sich
+   zu schuetzen bis ein Patch zur Verfuegung steht. Russ Cooper, der
+   Moderator der Sicherheitsmailingliste [34]NTBugtraq, kommentiert: "Ein
+   derart drastischer Vorschlag ... koennte bedeuten, dass sie [Microsoft]
+   sich endlich entschlossen haben, all diesen unsicheren
+   Scripting-Geschichten ... ein Ende zu machen." So recht daran glauben
+   mag aber nicht einmal Cooper selbst.
+   
+   Auch Netscape sah sich schon genoetigt, die Notbremse zu ziehen und
+   seinen Kunden zum Abschalten von [35]Java und [36]JavaScript zu raten.
+   c't empfiehlt auf Grund der immer wieder auftretenden
+   Sicherheitsprobleme mit jeglicher Art von aktiven Inhalten, Java,
+   Javascript, ActiveX usw. prinzipiell abzuschalten und nur bei
+   ausgewaehlten vertrauenswuerdigen Websites in Ausnahmefaellen zuzulassen.
+   
+   Der neue IE-Bug erlaubt einem Angreifer unter bestimmten Umstaenden,
+   per WWW ueber die Explorer-Funktion "ImportExportFavorites" Dateien auf
+   die heimische Festplatte zu schreiben und darueber Systemkommandos
+   auszufuehren. Damit waere dann jegliche Aktion moeglich, die auch der
+   rechtmaessige Anwender veranlassen koennte. ([37]nl/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Andreessen sagt AOL Bye-Bye (News, 14. Sep 1999, 06:06:20):
+   Netscape-Mitbegruender Marc Andreessen gibt seinen Posten als
+   Chefentwickler bei AOL auf. Wie das Unternehmen am Freitag mitteilte,
+   erfolgt die Trennung einvernehmlich. Andreessen werde AOL weiter als
+   Berater zur Verfuegung stehen. "Marc wollte mehr Zeit damit verbringen,
+   mit Start-Up-Firmen zu arbeiten. Wir freuen uns, dass unsere neue
+   Vereinbarung ihm das in einer Weise ermoeglicht, die unsere
+   Investmentziele voranbringt", kommentierte AOL-Chef Steve Case.
+   
+   Die Rolle eines Spitzenmanagers, die ihm nach dem [38]Kauf von
+   Netscape durch AOL zugefallen war, lag Andreessen offenbar nicht:
+   "Tausende Leute zu fuehren, das ist nicht gerade seine starke Seite,"
+   zitiert [39]Wired einen Freund des 28-jaehrigen. Beobachter aus der
+   Wirtschaft zeigten sich wenig ueberrascht, sondern eher erleichtert
+   ueber den Abgang des Web-Pioniers. Die Position des Chefentwicklers bei
+   AOL uebernimmt William Raduchel, bisher Chief Strategy Officer von Sun
+   Microsystems. AOL und Sun sind durch einen strategischen
+   Kooperationsvertrag miteinander verbunden. ([40]cp/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  US Army wechselt von Windows NT zu Mac OS (News, 14. Sep 1999, 06:06:21):
+   Geplagt von wiederholten Hackerangriffen hat die [41]US Army
+   ueberraschende Konsequenzen gezogen: Ihre Websites laufen nicht laenger
+   auf NT-basierenden Servern, sondern auf WebStar unter Mac OS.
+   Systemadministrator Christopher Unger erklaerte dazu laut [42]ArmyLink
+   News, die Army habe ihre Websites auf eine sicherere Plattform
+   umgestellt. Er bezog sich dabei auf eine aeltere Aussage des Word Wide
+   Web Consortium (W3C), wonach Mac OS weniger Angriffspunkte bietet,
+   weil es keine Kommandozeile hat und kein Remote Login erlaubt.
+   ([43]cp/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Neuer Biochip prueft Lebensmittel (News, 14. Sep 1999, 06:06:22):
+   Mit einem neuen Diagnoseverfahren koennen Lebensmittel- oder Blutproben
+   gleichzeitig auf mehrere Dutzend Inhaltstoffe untersucht werden. Das
+   System beruht auf einem Biochip, dessen Sensoroberflaeche mit Hunderten
+   von Fluessigkeitstroepfchen, sogenannten "Dots" bestueckt ist. Diese
+   wenige millionstel Millimeter kleinen Tropfen beinhalten die
+   Analysemolekuele. Damit koenne beispielsweise fremdes Erbgut in
+   gentechnisch-veraenderten Lebensmitteln festgestellt werden, aber auch
+   Eiweissstoffe, teilte das Institut fuer Mikro- und Informationstechnik
+   in Villingen-Schwenningen am Freitag mit.
+   
+   Kernstueck ist ein Dosierkopf, der aehnlich wie ein Tintenstrahldrucker
+   die Nachweissubstanzen in winzigen Mengen auf einen Chip bringen kann.
+   Jede reagiert individuell nach dem Schluessel-Schloss-System. Falls ein
+   gesuchter Stoff an "sein" Analysemolekuel gebunden hat, kann er mit
+   Fluoreszenz-Farbstoffen nachgewiesen werden. Aus dem spezifischem
+   Muster auf dem Biochip laesst sich die Substanz identifizieren. Auch
+   Tumorforscher und Gerichtsmediziner koennen von dem Verfahren namens
+   "Topspot" profitieren. Die Untersuchung dauert den Angaben zufolge
+   materialabhaengig zwischen vier und acht Stunden. Hubert Bernauer von
+   Freiburger Firma Biochip Technologies, die an der Entwicklung
+   beteiligt war, rechnet fuer das naechste Jahr mit der Markteinfuehrung.
+   ([44]cp/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Zukunft von Global One ungewiss (News, 14. Sep 1999, 06:06:24):
+   Die Zukunft des internationalen Telekommunikationsverbundes Global One
+   ist weiterhin in der Schwebe. Auf einem Telekom-Tag in New York sprach
+   der Vorstandsvorsitzende Ron Sommer von einem nicht optimalen
+   Verhaeltnis in der Allianz. Er hoffe, dass die unbefriedigende
+   Situation bis zum Jahresende geloest werde.
+   
+   Global One ist das Gemeinschaftsunternehmen der Deutschen Telekom,
+   France Telecom und der US-Firma Sprint Corp. Mit France Telecom hatte
+   sich das Bonner Unternehmen durch ihren Versuch, Telecom Italia zu
+   uebernehmen, zerstritten. Global One machte 1998 1,2 Milliarden
+   US-Dollar Umsatz und steckt seit Gruendung 1996 in den roten Zahlen.
+   
+   In der Branche wird seit einigen Monaten ueber verschiedene Optionen in
+   dem Buendnis spekuliert. Presseberichte, wonach die France Telecom
+   angeblich ausscheiden wuerde und die Telekom und Sprint den Verbund
+   weiterfuehren moechten, wurden von den Franzosen dementiert. Fuer moeglich
+   gehalten wird auch ein Rueckzug der Telekom aus Global One und Sprint,
+   an dem der Telefonriese mit zehn Prozent beteiligt ist. So wurden
+   Aussagen Sommers interpretiert, wonach die urspruengliche Beteiligung
+   an Sprint von 1,4 Milliarden Dollar inzwischen acht Milliarden wert
+   sind. ([45]cp/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Kunde kann sich gegen Kreditkartenmissbrauch wehren (News, 14. Sep 1999, 06:06:26):
+   Wer seine Kreditkartennummer im Internet angibt und sich anschliessend
+   ueber falsche Abbuchungen wundert, ist rechtlich auf der sicheren
+   Seite. Darauf hat die Rechtsanwaltskammer Koblenz am Freitag
+   hingewiesen. "Wer nur seine Kreditkartennummer angibt, ist nicht dafuer
+   verantwortlich, wenn durch einen Missbrauch Schaeden entstehen." Die
+   herkoemmlichen Allgemeinen Geschaeftsbedigungen der
+   Kreditkartenunternehmen saehen vor, dass die Kunden nicht hafteten,
+   wenn die Zahlung beleglos -- also ohne Unterschrift -- und ohne
+   Geheimzahl erfolgt sei. Spaetestens bis 4. Juni 2000 werde dieser
+   Erstattungsanspruch auch gesetzlich festgelegt sein. Der Gesetzgeber
+   muesse bis dahin eine EU-Richtlinie umsetzen.
+   
+   Die Rechtsanwaelte forderten die Verbraucher auf, zu Unrecht abgebuchte
+   Summen bei den Kreditkartenunternehmen zu beanstanden. Das Geld muesse
+   den Kunden dann wieder gutgeschrieben werden. Sollte sich das
+   Kreditinstitut jedoch weigern, koenne der Kunde seine Ansprueche mit
+   Hilfe eines Anwaltes durchzusetzen, betonte die Kammer. (dpa)
+   ([46]cp/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  EnBW bleibt bei Internet per Stromkabel (News, 14. Sep 1999, 06:06:28):
+   Die Energie Baden-Wuerttemberg AG (EnBW) will ihr "Digital
+   Powerline"-Projekt fortfuehren. Der angekuendigte [47]Ausstieg von
+   Nor.web aus der Entwicklung der Datenuebertragung ueber Stromnetze habe
+   bei EnBW fuer Verwunderung gesorgt, heisst es in einer Pressemitteilung
+   des viertgroessten Energieversorgungsunternehmens in Deutschland. Die
+   EnBW sehe keinen Anlass, ihre bisherige Linie zu korrigieren und werde
+   deshalb ihre Feldtests fortfuehren. "Der Rueckzug von Nor.web ist fuer
+   uns nicht nachvollziehbar, die Begruendungen schon gar nicht", sagte
+   EnBW-Chef Gerhard Goll. Die bisherigen Tests haetten gezeigt, dass
+   grosses Interesse bei Kunden und Providern an der Powerline-Technik
+   vorliege. Auch die bisherigen Analysen zur Wirtschaftlichkeit gaeben
+   keinen Anlass zu einem Ausstieg. EnBW plane, die Weiterentwicklung zu
+   forcieren. 18 Feldversuche in zehn Laendern haetten die Einsatzfaehigkeit
+   nachgewiesen. Digital Powerline ist ein Projekt von EnBW und tesion,
+   einer Tochter von EnBW und Swisscom. 40 Nutzer beteiligen sich seit
+   Dezember 1998 an einem Feldversuch in Herrenberg, bei dem Daten und
+   Internetdienste ueber das Stromnetz zum heimischen PC gelangen.
+   
+   ([48]anm/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Windows 9x: Sicherheitsupdate fuer Telnet (News, 14. Sep 1999, 06:06:29):
+   Der Telnet-Client von Windows 9x hat (auch in der Zweitausgabe von
+   Windows 98) ein Sicherheitsproblem, dass ueber einen so genannten
+   Buffer-Overflow-Angriff unter Umstaenden das Ausfuehren boesartigen
+   Programmcodes erlaubt. Microsoft hat in seinem [49]Sicherheitsbulletin
+   99-033 einen Patch angekuendigt, der aber vorerst nur ein
+   englischsprachiges Telnet-Programm liefert. Die Verfuegbarkeit
+   internationalisierter Versionen ist ohne weiteres nur ueber die
+   Windows-Update-Funktion zu ermitteln. Dort soll der Patch in Kuerze
+   erscheinen. ([50]nl/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+  Kritik an Windows-2000-Sicherheit (News, 14. Sep 1999, 06:06:32):
+   David Litchfield hat in einigen E-Mails an die
+   [51]Sicherheitsmailingliste Bugtraq Risiken der COM-Architektur
+   (Component Object Model) in Windows 2000 angesprochen. COM liefert
+   unter anderem die Grundlage fuer Microsofts ActiveX-Technologie.
+   Litchfield wagte die Prognose, dass man die groessten Sicherheitsloecher
+   in Windows 2000 bei COM und [52]DCOM (Distributed COM) finden wird.
+   
+   Um seine These zu untermauern, fuehrte er als Beispiel an, wie ein
+   Angreifer ueber VBScript- oder ActiveX-Anweisungen in einer E-Mail oder
+   Webseite einen Telnet-Server auf dem Rechner des Opfers starten
+   koennte. Mit Outlook Express genuege es bereits, die Betreff-Zeile in
+   der Mailuebersicht zu selektieren, um den riskanten Code und damit den
+   Telnet-Server zu starten. Eine Warnmeldung an den Benutzer soll laut
+   Litchfield nicht verhindern, dass dieses Programm arbeitet, auch wenn
+   der Benutzer "Abbruch" waehlt.
+   
+   Ein laufender Telnet-Server waere allerdings auf Einzelplatzrechnern
+   mit der jetzigen Windows-2000-Beta eine universelle Hintertuer: Der
+   Name des einzigen Benutzers ist ein autorisierter
+   Administrator-Account und nach der Standardinstallation nicht durch
+   ein Passwort geschuetzt. Damit hat ein Angreifer ueber Telnet
+   umfassenden Zugriff auf den Computer.
+   
+   Unmittelbaren Grund zum Alarm gibt es zwar nicht: Schliesslich befindet
+   sich die aktuelle Windows-2000-Version im Beta-Stadium und der Sinn
+   eines umfassenden Betatests ist ja gerade, Fehler aufzudecken.
+   Andererseits stellt sich die Frage, ob nicht durch COM und die
+   "Internet-Programme" (ActiveX, VBScript usw.) schon ein
+   konzeptionelles Sicherheitsrisiko besteht, das spaeter nahezu
+   zwangslaeufig zu Problemen fuehren wird. ([53]nl/c't)
+   
+
+-----------------------------------------------------------------------------
+
+
+
+Gibt es bald eine Pille gegen Schwerhoerigkeit? Fehlende Botenstoffe im (News, 14. Sep 1999, 06:06:44):
+
+   Medizin:
+   
+   Gibt es bald eine Pille gegen Schwerhoerigkeit? Fehlende Botenstoffe im
+   Gehirn
+   
+   (Meldung vom 10.9.1999)
+   
+   Schwerhoerigkeit im Alter kann auch durch eine nachlassende Produktion
+   von Neurotransmittern verursacht werden. Wissenschaftler des
+   Max-Planck-Instituts fuer Neurobiologie in Martinsried haben einen ganz
+   neuen Aspekt der Schwerhoerigkeit im Alter erforscht. Sie entdeckten,
+   dass die Nervenzellen, die die Signale vom Ohr ins Gehirn weiterleiten,
+   mit zunehmendem Alter weniger Botenstoffe - sogenannte
+   Neurotransmitter - produzieren. Das beeintraechtigt die Qualitaet der
+   Weiterleitung der Nervenimpulse, die von den Haarzellen des Innenohrs
+   an das Gehirn geschickt werden.
+   
+   Bislang glaubte man, dass das Absterben solcher Haarzellen im Ohr die
+   Wahrnehmung von Geraeuschen beeintraechtigt. Diese Zellen uebersetzen die
+   Schallschwingungen der Luft in Nervensignale.
+   
+   Mit den neuen Erkenntnissen ueber Ursachen der Schwerhoerigkeit ergeben
+   sich ganz neue Ansaetze zur Therapie. Mit Medikamenten koennte die
+   Produktion der Neurotransmitter gesteigert werden und Schwerhoerigkeit
+   behandelt werden.
+   
+   [Quelle: Dr. Michael Wochner]
+
+-----------------------------------------------------------------------------
+
+
+
+Junge Forscher-Generation zunehmend gegen Tierversuche (News, 14. Sep 1999, 06:06:48):
+
+   Forschungspolitik:
+   
+   Junge Forscher-Generation zunehmend gegen Tierversuche 
+   
+   (Meldung vom 10.9.1999)
+   
+   Auf einer [1]Tagung ueber Tierversuche und Alternativen, die kuerzlich
+   in Bologna stattfand, haben 900 Wissenschaftler einen Drei-Punkte-Plan
+   zur Reduzierung von Tierversuchen bei der Medikamenten- und
+   Kosmetik-Erprobung verabschiedet.
+   
+   Der Drei-Punkte-Plan beinhaltet die sogenannten "drei R's": 1)
+   Reduction: Weniger Tiere verwenden dadurch, dass effizientere Methoden
+   entwickelt werden oder solche Methoden angewandt werden, bei denen
+   keine Tierversuche notwendig sind.
+   
+   2) Refinement [Verfeinerung]: "Humanere" Methoden anwenden, bei denen
+   der Schmerz der Tiere minimiert wird.
+   
+   3) Replacement [Ersetzung]: Voellig neue Methoden entwickeln, die
+   keinerlei Tierversuche erfordern.
+   
+   Tierschuetzern geht dieser Plan noch nicht weit genug. Sie warfen
+   waehrend der Demonstrationen, die die Tagung begleiteten, den Forschern
+   vor, noch viel zu viele Kompromisse zu machen.
+   
+   Tatsaechlich ist es so, dass laut Statistik z.B. in Gross-Britannien die
+   Tierversuche seit 1970 etwa um die Haelfte zurueckgegangen sind.
+   Allerdings ist eine andere Zahl in diese Statistik nicht eingeflossen,
+   naemlich die Zahl jener Tiere, die in den Experimenten erst entstanden
+   sind, vor allem transgene Tiere. Man schaetzt, dass allein im vorigen
+   Jahr etwa 5 Mio. Tiere getoetet worden sind, die "nutzlos" waren, weil
+   das genetische Experiment nicht geklappt hatte, oder weil sie das
+   falsche Gewicht oder das falsche Geschlecht hatten.
+   
+   Dennoch ist Tagungsleiter Michael Balls optimistisch: "Es gibt einen
+   Mentalitaetswandel, und immer mehr Leute kommen zu der Einsicht, dass
+   die drei R's fuer alle ein Gewinn sind. Sie sind gut fuer die tiere und
+   gut fuer die Wissenschaft," sagte er gegenueber BBC News.
+   
+   Weiteres zum Thema Tierversuche [2]hier
+   
+   [Quelle: Dr. Doris Marszk]
+
+-----------------------------------------------------------------------------
+
+
+
+War Erfinder des Aspirins nicht Felix Hoffmann, sondern ein in (News, 14. Sep 1999, 06:06:52):
+
+   Wissenschaftsgeschichte:
+   
+   War Erfinder des Aspirins nicht Felix Hoffmann, sondern ein in
+   Deutschland verfolgter Jude? 
+   
+   (Meldung vom 10.9.1999)
+   
+   Das weltberuehmte Medikament Asprin, vor 100 Jahren in den Bayer-Werken
+   entwickelt, hat als geistigen Vater vermutlich nicht, wie bisher
+   angenommen, Felix Hoffmann, sondern Arthur Eichengruen - einem
+   deutschen Juden, der wegen des zunehmenden Antisemitismus in der
+   Nazi-Zeit nicht mehr dazu kam, seinen Urheberrechtsanspruch geltend zu
+   machen.
+   
+   Diese These vertritt Walter Sneader, Pharmaziehistoriker von
+   Strathclyde University in Glasgow (Gross-Britannien), der sie in dieser
+   Woche bei der Jahrestagung der Royal Society of Chemists in Edinburgh
+   vorstellt.
+   
+   Aufmerksam geworden auf diese Geschichte war Walter Sneader, als er in
+   der "History of Chemical Technology" aus dem Jahre 1934 einen
+   romantisierenden Bericht von Hoffmanns Aspirin-Erfindung las. Er
+   erforschte die Umstaende genauer und fand heraus, dass Hoffmann einer
+   von 10 Mitarbeitern war, die am Ende des vorigen Jahrhunderts unter
+   Arthur Eichengruen bei Bayer arbeiteten. Er fand ueberdies Hinweise
+   darauf, dass Eichengruen mit einer Forschung befasst war, die zur
+   Entwicklung von Aspirin fuehren sollte.
+   
+   Dass Hoffmann 1934 die Erfindung des Asprins fuer sich beansprucht hat,
+   duerfte Eichengruen nicht entgangen sein, doch zu dieser Zeit hatte
+   Eichengruen natuerlich andere Sorgen. Er hoffte, im aufkommenden
+   Antisemitismus seine Firma Eichengruen Chemische Werke, die er 1908
+   nach seinem im Guten erfolgten Ausscheiden bei Bayer gegruendet hatte,
+   zu retten. Es gelang ihm nicht. Bald darauf wurde er in das KZ
+   Theresienstadt deportiert. Er ueberlebte es, doch er konnte erst kurz
+   vor seinem Tod 1949 in der damals unbedeutenden Zeitschrift
+   "Pharmazie" seinen Anspruch auf die Entwicklung des Aspirin erheben.
+   
+   Die Bayer AG haelt der These Sneaders entgegen, dass Hoffmann bereits
+   1897 seine Erfindung des Aspirins in einem Werk-Journal beschrieben
+   hatte und 1899 als Inhaber des US-Patents eingetragen wurde. Daher
+   haette Eichengruen schon in jenen fruehen Jahren die Urheberschaft
+   Hoffmanns bestreiten koennen. "Wir haetten Eichengruen die Erfindung
+   zugesprochen. Warum nicht?" sagte Bayer-Sprecher Hartmut Alsfasser
+   gegenueber Nando Times. "Er hat auch 47 andere Patente."
+   
+   Weiteres zum Thema Aspirin [1]hier.
+   
+   [Quelle: Dr. Doris Marszk]
+
+-----------------------------------------------------------------------------
+
+
+
+War Papst Pius XII ein Antisemit? (News, 14. Sep 1999, 06:06:54):
+
+   Geschichte:
+   
+   War Papst Pius XII ein Antisemit?
+   
+   (Meldung vom 10.9.1999)
+   
+   Papst Pius XII (1876-1958, Papst 1939-58) war von Kirchenhistorikern
+   schon immer vorgeworfen worden, sich waehrend des Dritten Reiches nicht
+   gerade ruehmlich verhalten zu haben. Er habe, so der Vorwurf, zu lange
+   zu Hitlers Krieg und zur Deportation der Juden geschwiegen. In
+   Deutschland ist sein Pontifikat besonders nach dem Erscheinen von Rolf
+   Hochhuths Drama "Der Stellvertreter"(1963) diskutiert worden.
+   
+   John Cornwell, ein britischer Kirchenhistoriker und
+   Wissenschaftsjournalist, vertritt jetzt in seinem neuen Buch "Hitler's
+   Pope: The Secret History of Pius XII" eine sehr viel brisantere These:
+   Pius XII habe nicht nur geschwiegen, sondern Hilfe fuer die Juden sogar
+   auch dann versagt, als diese fuer ihn gefahrlos moeglich gewesen waere.
+   
+   Obwohl er waehrend des 2. Weltkriegs von einer bevorstehenden
+   Deportation von 1000 Juden aus Rom gewusst habe, habe er es
+   unterlassen, die betroffenen Menschen zu warnen. Die Deportation
+   ueberlebten nur 15 Personen.
+   
+   In bisher geheimen Vatikan-Akten hat Cornwell Briefe und Unterlagen
+   gefunden, aus denen er den Schluss zieht, dass die unterlassene
+   Hilfeleistung von Pius XII nicht nur auf menschliche Schwaeche oder
+   Feigheit begruendet war, sondern auf einen ausgepraegten Antisemitismus.
+   
+   Der Vatikan hatte Pius XII bisher immer in Schutz genommen und darauf
+   verwiesen, dass er hinter den Kulissen sehr viel fuer bedrohte Juden
+   getan habe und auch tausende gerettet habe.
+   
+   Bibliographischer Hinweis: John Cornwell: Hitler's Pope: The Secret
+   History of Pius XII. Viking Press 1999, ersch. voraussichtl. Oktober
+   99.
+   
+   Weiteres zum Thema Vatikan [1]hier.
+   
+   [Quelle: Dr. Doris Marszk]
+
+-----------------------------------------------------------------------------
+
+
+
+Rechtzeitig vorbeugen: Jetzt zur Grippeschutzimpfung (News, 14. Sep 1999, 06:06:56):
+
+   Gesundheit:
+   
+   Rechtzeitig vorbeugen: Jetzt zur Grippeschutzimpfung 
+   
+   (Meldung vom 10.9.1999)
+   
+   Die Arbeitsgemeinschaft Influenza empfiehlt sich bereits im September
+   gegen Grippe impfen zu lassen. Das gilt besonders fuer aeltere Menschen
+   und solche, die an chronischen Krankheiten leiden. Der Impfschutz
+   beginnt zwei Wochen nach Impfung und haelt etwa ein halbes Jahr an.
+   
+   Bei der Grippewelle im vergangenen Winter waren 7 bis 8 Millionen
+   Menschen an Grippe erkrankt, 40000 so schwer, dass ein
+   Krankenhausaufenthalt notwendig war. Die Grippeschutzimpfung wird von
+   den Kassen bezahlt.
+   
+   Weitere Meldungen zu Thema Grippe finden Sie [1]hier.
+   
+   [Quelle: Dr. Michael Wochner]
+
+-----------------------------------------------------------------------------
+
+
+
+Biologische Ursachen der Drogensucht. "Auch andere Faktoren (News, 14. Sep 1999, 06:07:00):
+
+   Psychologie:
+   
+   Biologische Ursachen der Drogensucht. "Auch andere Faktoren
+   notwendig."
+   
+   (Meldung vom 10.9.1999)
+   
+   Hat Drogensucht eher soziale oder biologische Ursachen?
+   US-Wissenschaftler entdeckten einen Mechanismus im Hirn, der zumindest
+   unterschiedliche Reaktionen auf Rauschmittel erklaeren kann. Demnach
+   kann die Anzahl der Dopamin-D2-Rezeptoren im Hirn den Ausschlag geben:
+   Je weniger dieser Rezeptoren vorhanden waren, desto eher mochte die
+   Versuchsperson den Effekt einer leichten Droge, dem Stimulanzmittel
+   Methylphenidat. Personen mit hoeherer Rezeptorzahl, an welche
+   normalerweise der Botenstoff Dopamin "andockt", beschrieben den Effekt
+   des Mittels eher als unangenehm, berichtet das Fachblatt "American
+   Journal of Psychiatry".
+   
+   Der chemische Botenstoff Dopamin regt im Hirn besondere Zentren an,
+   die die Motivation, das Verhalten und die Lernfaehigkeit steuern. Rund
+   eine halbe Million Dopaminzellen im Stammhirn produzieren den Stoff
+   auf bestimmte Reize hin, etwa bei ueberraschender Belohnung - doch auch
+   Drogen wie Heroin oder Kokain aktivieren eine Ausschuettung.
+   
+   Fuer die Neigung zum Rausch und zur Abhaengigkeit ist aber offenbar
+   nicht die Ausschuettung verantwortlich, sondern die Zahl der Rezeptoren
+   im Hirn, die das ausgeschuettete Dopamin auch aufnehmen koennen. "Diese
+   Erkenntnisse unterstuetzen die Theorie, dass die Hirnchemie manche
+   Menschen fuer Drogenmissbrauch anfaellig macht", so Dr. Alan I. Leshner,
+   Direktor des [1]National Institute on Drug Abuse (NIDA), das die
+   Studie finanzierte. "Die biologischen Sachverhalte zu verstehen, hilft
+   uns herauszufinden, weshalb manche Menschen besonders anfaellig sind,
+   und liefert uns neue moegliche Ziele fuer Vorbeugung und Behandlung."
+   
+   Das Team um Dr. Nora Volkow vom Brookhaven National Laboratory und der
+   [2]State University of New York, Stony Brook, fuehrte den Nachweis:
+   Dreiundzwanzig Versuchspersonen, nicht drogenabhaengig, bekamen das
+   Rauschmittel Methylphenidat und sollten seine Effekte beschreiben.
+   Ausserdem zaehlte man in ihren Hirnen, mit Hilfe der sogenannten
+   Positronenemissions-Tomographie (PET), die Dopamin-D2-Rezeptoren.
+   
+   Zwoelf der Teilnehmer beschrieben Methylphenidat als angenehm, weil die
+   Substanz sie gluecklich machte bzw. ihre Stimmung verbesserte. Neun der
+   Maenner beschrieben den Effekt als unangenehm, da es sie aergerlich oder
+   argwoehnisch machte - nur zwei Teilnehmer empfanden das Mittel als
+   neutral. Die PET-Hirnuntersuchung zeigte einen eindeutigen
+   Zusammenhang zwischen Effekt und Rezeptorzahl: Bei der ersten Gruppe
+   lag die Zahl niedriger als bei der zweiten.
+   
+   Allerdings warnen die Wissenschaftler davor, diesen Zusammenhang
+   ueberzubewerten. So Dr. Volkow: "Die Tatsache, dass die Teilnehmer, die
+   Methylphenidat mochten, zwar niedrige Rezeptorzahlen aufwiesen, aber
+   trotzdem keine Drogen missbrauchen, zeigt, dass fuer eine echte
+   Anfaelligkeit fuer Drogenmissbrauch auch andere Faktoren notwendig sind"
+   
+   [Quelle: Doerte Sasse]
+
+-----------------------------------------------------------------------------
+
+
+
+Neue Hinweise fuer Wasser auf Jupiter-Mond Europa (News, 14. Sep 1999, 06:07:04):
+
+   Astronomie allg.:
+   
+   Neue Hinweise fuer Wasser auf Jupiter-Mond Europa
+   
+   (Meldung vom 10.9.1999)
+   
+   Neue Bilder von der Raumsonde [1]Galileo zeigen, dass die Oberflaeche
+   des Jupiter-Mondes [2]Europa vor etwa 50 Millionen Jahren teilweise
+   geschmolzen war.
+   
+   Auf den Bildern sind zwei rostfarbene, 80 Kilometer grosse Gebiete zu
+   sehen, die "Thera" und "Thrace" genannt worden sind. Die Oberflaeche
+   des Mondes sieht an diesen Stellen unordentlich aus, als ob hier
+   Eisschollen aufeinandergeprallt waeren.
+   
+   Die Region "Thera" liegt leicht unter dem Niveau der umgebenden
+   Ebenen. Offensichtlich ist die Region irgendwann in der Vergangenheit
+   kollabiert. Aus der Zahl der Krater, die Europa bedecken, laesst sich
+   schliessen, dass das vor etwa 50 Millionen Jahren - also im Verhaeltnis
+   zum Alter des Mondes recht kurzer Zeit - geschehen ist.
+   
+   Eine Wissenschaftlerin der Universitaet von Arizona vergleicht zurzeit
+   Aufnahmen der Voyager-Sonde mit Galileo-Bildern, um festzustellen, ob
+   sich die Oberflaeche von Europa in den letzten 20 Jahren veraendert hat.
+   Aus anderen Galileo-Aufnahmen laesst sich schliessen, dass die
+   Oberflaeche von Europa an einigen Stellen salzig ist. Wahrscheinlich
+   gibt es zum Beispiel in der Thrace-Region Magnesiumsulfat, auch als
+   Bittersalz bekannt. Da salziges Wasser bei niedrigeren Temperaturen
+   schmilzt als Suesswasser, koennte das erklaeren, warum Thrace anscheinend
+   frueher einmal ueberschwemmt teilweise aufgeschmolzen wurde.
+   
+   Die braune Farbe, vermuten Forscher, koennte von Eisen- oder
+   Schwefelverbindungen stammen, da Bittersalz nicht braun aussieht.
+   Aufschluesse darueber, ob es unter der Oberflaeche fluessiges Wasser geben
+   koennte, kann die Kristallform des Eises geben: Wenn Eis aus fluessigem
+   Wasser entsteht, bildet sich das sogenannte hexagonale Eis, genau wie
+   auf der Erde. Bei kaelteren Temperaturen entstehen amorphes oder
+   kubisches Eis.
+   
+   Falls auf der Oberflaeche von Europa hexagonales Eis vorhanden ist,
+   muesste um den Mond ein Halo zu sehen sein, wenn das Sonnenlicht in
+   einem bestimmten Winkel auf die Oberflaeche trifft.
+   
+   Robert Carlson und Kollegen von Jet Propulsion Laboratory der Nasa
+   haben versucht, den Halo mit dem [3]"Near Infrared Mapping
+   Spektrometer" von Galileo bei einem Vorbeiflug an Europa aufzunehmen.
+   Noch analysieren die Wissenschaftler die Daten. Allerdings wird
+   hexagonales Eis durch energiereiche Strahlung, wie sie sich im
+   Magnetfeld des Jupiter ansammelt, in amorphes Eis umgewandelt.
+   
+   Die Chancen, tatsaechlich hexagonales Eis zu finden, haengen davon ab,
+   wie lange es schon her ist, dass Europa geschmolzen war.
+   
+   Weiteres zum Thema Europa finden Sie [4]hier.
+   
+   [Quelle: Ute Kehse und Nasa]
+
+-----------------------------------------------------------------------------
+
+
+
+Neue Art von Materie erzeugt. (Quanten-Degeneration bei Fermionen) (News, 14. Sep 1999, 06:07:06):
+
+   Physik allg.:
+   
+   Neue Art von Materie erzeugt. (Quanten-Degeneration bei Fermionen) 
+   
+   (Meldung vom 10.9.1999)
+   
+   Zwei Wissenschaftlern ist es gelungen, eine neue, eigenartige Form der
+   Materie zu erzeugen: Brian DeMarco und D. Jin von der [1]University of
+   Colorado kuehlten Kalium-Molekuele so stark ab, dass sie nicht mehr den
+   Regeln der klassischen Physik, sondern denen der Quantenphysik
+   gehorchten. Die Forscher schreiben im Wissenschaftsmagazin [2]Science,
+   dass die Molekuele ein Verhalten namens Quanten-Degeneration zeigten,
+   eine Vorstufe zur Fermi-Kondensation. Elementarteilchen gehoeren
+   entweder zu den Bosonen oder den Fermionen. Waehrend Bosonen alle den
+   gleichen Energiezustand annehmen koennen, ist das bei den Fermionen, zu
+   denen Protonen, Neutronen, Elektronen und auch die Kalium-Molekuele
+   zaehlen, nicht moeglich.
+   
+   1995 gelang es, ein sogenanntes Bose-Einstein-Kondensat zu erzeugen -
+   Bosonen im gleichen Energiezustand bei niedrigen Temperaturen. Daraus
+   entwickelten Wissenschaftler spaeter die ersten Atomlaser. Auch ein
+   Fermi-Kondensat, dem die Physiker mit der Quantendegeneration jetzt
+   ein Stueck naeher gekommen sind, schreiben DeMarco und Jin, liesse sich
+   fuer Atomlaser benutzen, oder auch, um Wechselwirkungen zwischen Atomen
+   zu untersuchen.
+   
+   Weiteres zum Thema Atomlaser finden Sie [3]hier. Quelle: Science
+   
+   [Quelle: Ute Kehse]
+
+-----------------------------------------------------------------------------
+
+
+
+Ist das Sonnensystem aus winzigen Glaspartikeln entstanden? (News, 14. Sep 1999, 06:07:08):
+
+   Astronomie allg.:
+   
+   Ist das Sonnensystem aus winzigen Glaspartikeln entstanden?
+   
+   (Meldung vom 10.9.1999)
+   
+   Der Staub, aus dem sich das Sonnensystem bildete, koennte zu einem
+   erheblichen Teil aus winzigen Glaspartikeln bestanden haben. Wie John
+   Bradley vom Georgia Institute of Technology in Atlanta und Kollegen im
+   Fachjournal [1]Science berichten, haben die sogenannten GEMS-Partikel
+   (Glass with Embedded Metal and Sulfide) ein aehnliches Spektrum wie die
+   Kometen Halley und Hale-Bopp, wie Silikate in den aeusseren Schalen
+   mancher jungen Sterne und wie Silikate in interstellaren Wolken.
+   
+   Die Partikel sind wenige Milliardstel Meter gross und bestehen aus
+   Silikat, das Metall und Sulfid eingelagert hat. Wissenschaftler haben
+   solche Partikel in der Stratosphaere, der zweituntersten Schicht der
+   Atmosphaere, eingesammelt. Sie stammen von Kometen und Asteroiden.
+   
+   Bradley und seine Kollegen bestrahlten die Partikel mit intensiver
+   Synchrotron-Strahlung, um ihre Spektrum zu messen. Die Wissenschaftler
+   vermuten, dass solche Silikate auch in der Wolke vorhanden waren, aus
+   der das Sonnensystem entstand. Weiteres ueber die Entstehung des
+   Sonnensystems finden Sie [2]hier.
+   
+   [Quelle: Ute Kehse und Science]
+
+-----------------------------------------------------------------------------
+
+
+
+Endlich nach hinten schauen: Genetiker schaffen Froesche mit drei Augen (News, 14. Sep 1999, 06:07:10):
+
+   Gentechnik:
+   
+   Endlich nach hinten schauen: Genetiker schaffen Froesche mit drei Augen
+   
+   (Meldung vom 13.9.1999)
+   
+   Der Entwicklungsbiologe Richard Lang und seine Kollegen vom New Yorker
+   University Medical Center stellen in der Oktoberausgabe von
+   "Development" Froesche vor, die ein drittes Auge besitzen.
+   
+   Die Wissenschaftler hatten die RNA, die den Bauplan fuer das Protein
+   Pax6 enthaelt, in die Eizellen der Tiere eingefuegt. Bei 10% der
+   Kaulquappen bildete sich daraufhin am Hinterkopf ein zusaetzliches
+   Auge. Zwar war dieses Auge etwas kleiner als die normalen Augen,
+   verfuegte aber ueber alle anatomischen Merkmale und hatte eine
+   Nervenverbindung zum Gehirn.
+   
+   Die Forscher wollten mit diesem Experiment beweisen, dass Pax6 ein
+   sogenanntes "Master-Gen" ist. Solche Gene steuern die Aktivitaet vieler
+   anderer Gene, die an der Entwicklung eines Organs - wie zB des Auges -
+   beteiligt sind. ([1] Abstract)
+   
+   Mehr zum Thema "Master-Gen" finden sie [2]hier.
+   
+   [Quelle: Michael Wochner]
+
+-----------------------------------------------------------------------------
+
+
+
+Liess ein Gammablitz die Erde entstehen? (News, 14. Sep 1999, 06:07:12):
+
+   Astrophysik:
+   
+   Liess ein Gammablitz die Erde entstehen?
+   
+   (Meldung vom 13.9.1999)
+   
+   Unser Sonnensystem koennte doch ungewoehnlicher sein als bisher gedacht:
+   Zwei Astrophysiker aus Irland vermuten, dass ein Gammablitz im Umkreis
+   von 300 Lichtjahren die Bildung der Planeten beguenstigt haben koennte.
+   Wie das Wissenschaftsmagazin [1]New Scientist berichtet, haben Brian
+   McBreen und Lorraine Hanlon vom University College in Dublin die
+   Theorie aufgestellt, dass die energiereiche Roentgen- und
+   Gammastrahlung, die bei einem Gammablitz entsteht, den Staub in der
+   protoplanetaren Wolke zu sogenannten Chondren verschmolzen hat. (Mehr
+   zu [2]Gammablitz.)
+   
+   Chondren sind glasartige Gesteinskuegelchen, die reich an Eisen und
+   Silikaten sind. Primitive Steinmeteoriten, die sogenannten Chondrite,
+   bestehen zum grossen Teil aus den Chondren. In einem Artikel, der fuer
+   die Fachzeitschrift "Astronomy and Astrophysics" angenommen wurde,
+   berichten McBreen und Hanlon, dass ein Gammablitz in der Naehe des
+   jungen Sonnensystems genug Energie geliefert haette, um den Staub zu
+   fluessigen Tropfen zu schmelzen, die dann hinterher zu den Chondren
+   abgekuehlt waeren. Aus diesen dichteren Partikeln haetten sich die
+   Planeten leichter bilden koennen als aus Staub.
+   
+   Bislang war es den Astrophysikern ein Raetsel, wie sich die Chondren
+   geformt haben. Ein unwahrscheinliches Ereignis wie ein Gammablitz in
+   der Naehe als Ursache wuerde unser Sonnensystem allerdings zu etwas
+   Besonderem machen.
+   
+   Mehr zur Entstehung des Sonnensystems finden Sie [3]hier.
+   
+   [Quelle: Ute Kehse und New Scientist]
+
+-----------------------------------------------------------------------------
+
+
+
+Ohne Muell: Warme Luft als Energiequelle der Zukunft (News, 14. Sep 1999, 06:07:16):
+
+   Technik:
+   
+   Ohne Muell: Warme Luft als Energiequelle der Zukunft
+   
+   (Meldung vom 13.9.1999)
+   
+   Schon leicht erwaermte Raumluft soll genuegen, um effektiv Elektrizitaet
+   zu erzeugen, versprechen die Entwickler eines neuartigen Generators
+   aus den USA. Das Aggregat namens ESI22 entzieht der Warmluft die
+   Energie, wandelt sie in elektrischen Strom um und gibt die kaeltere
+   Luft wieder ab. Idealerweise liesse es sich deshalb mit einem
+   Kuehlschrank oder einer Klimaanlage kombinieren, so die Herstellerfirma
+   [1]Entropy Systems Inc. (ESI) aus Ohio.
+   
+   Doch auch Autos, Boote oder Rasenmaeher sollen sich damit antreiben
+   lassen. Das Aggregat erzeugt keinerlei Schadstoffe, verbraucht weder
+   fossile noch nukleare Brennstoffe und benoetigt keine Kuehlmittel, so
+   die Konstrukteure.
+   
+   Herkoemmliche Generatoren koennen nur recht heisse Luft, etwa aus
+   Verbrennungsmotoren, in Elektrizitaet umwandeln. ESI22 hingegen nutzt
+   offenbar auch geringe Temperaturunterschiede, kann bei jedem Wetter
+   und sogar bei Temperaturen unter Null betrieben werden und liefert
+   laut ESI bessere Effizienzwerte als alle herkoemmlichen Motoren,
+   Kuehlschraenke oder Brennstoffzellen. Patente sind rund um die Welt
+   erteilt, erste Geraete sind in den USA fuer knapp 150.000 Mark zu haben.
+   
+   Mehr ueber die Energiegewinnung in der Zukunft finden Sie [2]hier.
+   
+   [Quelle: Doerte Sasse, ESI und EurekAlert]
+
+-----------------------------------------------------------------------------
+
+
+
+R100 erledigt Hausarbeiten und redet nett mit der Familie (News, 14. Sep 1999, 06:07:18):
+
+   Technik:
+   
+   R100 erledigt Hausarbeiten und redet nett mit der Familie
+   
+   (Meldung vom 13.9.1999)
+   
+   Auf die persoenlichen Beduerfnisse seiner "Arbeitgeberfamilie" soll ein
+   neuer japanischer Haushaltsroboter eingehen koennen. R100 ist der
+   Prototyp einer neuen Generation solcher Roboter, die nicht nur stupide
+   Putzarbeiten und aehnliche Dienstleistungen erledigen sollen - R100
+   kann auch kommunizieren und interagieren: "Haushaltsroboter der
+   Zukunft werden nicht nur den Teppich saugen und den Muell 'rausbringen
+   koennen, sie muessen auch mit ihren Besitzern kommunizieren, Befehle
+   verstehen und Gegenstaende erkennen", so Aston Bridgeman, Sprecher der
+   Herstellerfirma [1]NEC.
+   
+   Der 44 Zentimeter hohe Roboter, knapp 8 Kilogramm schwer, konzentriert
+   sich offenbar voll auf die Kommunikation: Statt Arme oder mechanischer
+   Werkzeuge ist er rund um die "Huefte" mit einer Reihe Linsen und
+   Sensoren ausgestattet. Damit kann er Infrarot-Signale senden, um
+   Fernsehgeraete, Stereoanlagen oder andere ferngesteuerte Geraete im Haus
+   zu kontrollieren. Zwei Kameras im "Kopf" helfen ihm, Gegenstaende und
+   menschliche Gesichter zu erkennen, so dass er Familienmitglieder mit
+   Namen ansprechen kann. Dabei kommen ihm rund 300 gespeicherte
+   Basis-Saetze zugute, mit denen er auf Gruesse wie "Guten Tag" oder "Wie
+   geht's?" antworten kann.
+   
+   Zudem fungiert R100 als Nachrichtenzentrale der Haushaltsmitglieder
+   untereinander: Statt einen Zettel zu schreiben, laesst sich per Kamera
+   eine Videonachricht aufzeichnen. Erkennt der Roboter dann das Gesicht
+   der Person, fuer die die Nachricht gedacht ist, meldet er sich und
+   spielt das Band wieder ab.
+   
+   NEC hat R100 zusaetzlich mit einigen "Niedlichkeitsfaktoren"
+   ausgestattet: wenn er gestreichelt wird, beginnt er Musik zu spielen
+   und zu tanzen, er kann "einschlafen" und sogar im "Schlaf" sprechen.
+   In zwei Jahren soll er in Japan erstmals zu kaufen sein.
+   
+   [Quelle: Doerte Sasse und NewScientist]
+
+-----------------------------------------------------------------------------
+
+
+
+Aids-Virus soll beim Kampf gegen Krebs helfen (News, 14. Sep 1999, 06:07:20):
+
+   Krebs-Forschung:
+   
+   Aids-Virus soll beim Kampf gegen Krebs helfen
+   
+   (Meldung vom 13.9.1999)
+   
+   Steven Dowdy und ein Team vom Howard Hughes Medical Institute stellen
+   in der aktuellen Ausgabe von "Science" ein neues Verfahren vor, mit
+   dem Proteine ins Innere von Zellen transportiert werden koennen.
+   
+   Die Wissenschaftler benutzen dazu ein Bruchstueck des Proteins TAT des
+   HI-Virus. Bei der Infektion von HIV spielt TAT keine Rolle, aber es
+   ist in der Lage, die Zellmembran von Zellen zu durchdringen. Die
+   Forscher machten sich diese Faehigkeit zunutze, indem sie TAT an grosse
+   Proteine anfuegten, die normalerweise die Zellmembran nicht passieren
+   koennen. So gelang es ihnen das ueber 1000 Aminosaeuren umfassende Enzym
+   beta-Galaktosidase in Zellen einzuschleusen, wo es seine biochemische
+   Funktion erfuellte.
+   
+   Defekte Proteine und Enzyme im Zellinneren sind eine haeufige Ursache
+   von schweren Stoffwechselerkrankungen und Krebs. Aufgrund ihrer Groesse
+   und ihrer chemischen Eigenschaften konnten intakte Proteine bislang
+   nicht von aussen zugefuehrt werden. Eine solche Proteintherapie ist nun
+   dank TAT moeglich. Bei diesem Verfahren wird im Gegensatz zur
+   [1]Gentherapie kein genetisches Material uebertragen.
+   
+   [Quelle: Michael Wochner und Science (1999 Sep 3;285(5433):1569-1572)]
+
+-----------------------------------------------------------------------------
+
+
+
+Chinesische Bambus-Chronik: Aeltestes Dokument einer Sonnenfinsternis? (News, 14. Sep 1999, 06:07:24):
+
+   Sonnenfinsternis99 News:
+   
+   Chinesische Bambus-Chronik: Aeltestes Dokument einer Sonnenfinsternis?
+   
+   (Meldung vom 13.9.1999)
+   
+   Die erste Sonnenfinsternis, von der wir aus der Ueberlieferung Kenntnis
+   haben, fand 899 v. Chr. in China statt. Berichtet wird davon in der
+   sogenannten Bambus-Chronik, die dem Grab des Koenigs Wei Xiang, der um
+   500 v. Chr. regierte, beigegeben wurde. "Im ersten Jahr von Koenig Yi
+   wurde es in Zheng zweimal Morgen.", heisst es in dem Text.
+   
+   Jetzt haben, wie New Scientist in seiner neuesten Ausgabe vom 11.9.99
+   berichtet, drei chinesische Wissenschaftler sich daran gemacht, das
+   genaue Datum der Sonnenfinsternis zu errechnen: Ciyuan Liu von den
+   Nationalen Astronomischen Observatorien in Lintong, Jianke Li, zur
+   Zeit an der Australian National University in Canberra und Xiaolu Zhou
+   von der Nordwest Universitaet in Xi'an. Das genaue Datum muss nach
+   ihren Berechnungen der 21. April 899 gewesen sein.
+   
+   Wenn die Sonnenfinsternis bei Tagesanbruch stattfand, dann haetten die
+   Menschen in jener Zeit den Himmel erst mysteroes aufleuchten sehen,
+   dann die Verdunkelung wahrgenommen und dann wieder das Hellwerden -
+   ein zweiter Tagesanbruch. Das wuerde die raetselhafte Beschreibung im
+   Text erklaeren.
+   
+   Der Ort Zheng, der in der Bambus-Chronik genannt wird, befand sich,
+   nach allem, was man heute weiss, in der Naehe der heutigen Stadt Xi'an.
+   
+   Der Text ist jedoch nicht unumstritten. Die zweitaelteste Ueberlieferung
+   einer Sonnenfinsternis stammt ebenfalls aus China, und zwar aus dem
+   Jahre 708 v. Chr. Aus dieser Quelle geht hervor, dass die Beobachter
+   sehr wohl wussten, dass sie es mit ener Sonnenfinsternis zu tun
+   hatten. Richard Stephenson von der University of Durham nimmt denn
+   auch an, dass Sonnenfinsternisse im alten China durchaus bekannt waren
+   und somit die seltsame Textstelle in der Bambus-Chronik nicht auf eine
+   Sonnenfinsternis hinweise.
+   
+   Li hingegen haelt an seiner These fest, dass um 900 v. Chr. in der
+   Region Xi'an Sonnnenfinsternisse noch nicht bekannt waren und dies die
+   erste war, die die damaligen Menschen sahen. Fuer die Physiker ist es
+   wichtig, von moeglichst weit zurueckliegenden Sonnenfinsternissen
+   Kenntnis zu haben. "Je weiter wir in der Vergangenheit zurueckgehen
+   koennen, desto genauer werden unsere Vorhersagen." sagt Li.
+   
+   Mehr zum Thema Sonnenfinsternis finden sie [1]hier.
+   
+   [Quelle: Dr. Doris Marszk]
+
+-----------------------------------------------------------------------------
+
+
+
+Schwankender Lebenswille bei Todkranken. Konsequenzen fuer Sterbehilfe (News, 14. Sep 1999, 06:07:26):
+
+   Psychologie:
+   
+   Schwankender Lebenswille bei Todkranken. Konsequenzen fuer Sterbehilfe
+   
+   (Meldung vom 13.9.1999)
+   
+   Patienten mit Krebs im Endstadium haben einen stark schwankenden
+   Lebenswillen, selbst innerhalb eines kurzen Zeitraums. Dies belegt
+   eine Studie von Harvey Chochinov von der University of Manitoba in
+   Winnipeg, Kanada, und seinen Kollegen, die in der letzten Ausgabe von
+   "The Lancet" (1999; Vol. 354, 816-819) veroeffentlicht worden ist.
+   
+   Die Forscher haben 168 Krebspatienten im Alter zwischen 31 und 89
+   Jahren zweimal am Tag einen Fragebogen ausfuellen lassen, auf dem die
+   Patienten den Grad ihres Wohlbefindens, ihrer Aengste, moeglicher
+   Depressionen, der Schmerzstaerke ebenso angeben sollten wie den ihres
+   Lebenswillens.
+   
+   Dabei zeigte sich zum einen, dass der Lebenswille sogar innerhalb von
+   zwoelf Stunden unterschiedlich stark ausgepraegt ist. Zum anderen liess
+   sich auch feststellen, dass der Lebenswille stark vom allgemeinen
+   Befinden abhing. Ob jemand gerade starke Depressionen, Angstzustaende
+   oder Atembeschwerden hatte, stand in engem Zusammenhang damit, wie
+   sehr er am Leben hing. Die Autoren ziehen aus ihrer Untersuchung den
+   Schluss, dass bei einer erlaubten Sterbehilfe unbedingt das Kriterium
+   eines laengerwaehrenden Wunsches, zu sterben, beachtet werden muesse.
+   Mehr zum Thema Sterbehilfe finden Sie [1]hier.
+   
+   [Quelle: Dr. Doris Marszk und The Lancet]
+
+-----------------------------------------------------------------------------
+
+
+
+R100 erledigt Hausarbeiten und redet nett mit der Familie (News, 14. Sep 1999, 06:07:30):
+
+   Technik:
+   
+   R100 erledigt Hausarbeiten und redet nett mit der Familie
+   
+   (Meldung vom 13.9.1999)
+   
+   Auf die persoenlichen Beduerfnisse seiner "Arbeitgeberfamilie" soll ein
+   neuer japanischer Haushaltsroboter eingehen koennen. R100 ist der
+   Prototyp einer neuen Generation solcher Roboter, die nicht nur stupide
+   Putzarbeiten und aehnliche Dienstleistungen erledigen sollen - R100
+   kann auch kommunizieren und interagieren: "Haushaltsroboter der
+   Zukunft werden nicht nur den Teppich saugen und den Muell 'rausbringen
+   koennen, sie muessen auch mit ihren Besitzern kommunizieren, Befehle
+   verstehen und Gegenstaende erkennen", so Aston Bridgeman, Sprecher der
+   Herstellerfirma [1]NEC.
+   
+   Der 44 Zentimeter hohe Roboter, knapp 8 Kilogramm schwer, konzentriert
+   sich offenbar voll auf die Kommunikation: Statt Arme oder mechanischer
+   Werkzeuge ist er rund um die "Huefte" mit einer Reihe Linsen und
+   Sensoren ausgestattet. Damit kann er Infrarot-Signale senden, um
+   Fernsehgeraete, Stereoanlagen oder andere ferngesteuerte Geraete im Haus
+   zu kontrollieren. Zwei Kameras im "Kopf" helfen ihm, Gegenstaende und
+   menschliche Gesichter zu erkennen, so dass er Familienmitglieder mit
+   Namen ansprechen kann. Dabei kommen ihm rund 300 gespeicherte
+   Basis-Saetze zugute, mit denen er auf Gruesse wie "Guten Tag" oder "Wie
+   geht's?" antworten kann.
+   
+   Zudem fungiert R100 als Nachrichtenzentrale der Haushaltsmitglieder
+   untereinander: Statt einen Zettel zu schreiben, laesst sich per Kamera
+   eine Videonachricht aufzeichnen. Erkennt der Roboter dann das Gesicht
+   der Person, fuer die die Nachricht gedacht ist, meldet er sich und
+   spielt das Band wieder ab.
+   
+   NEC hat R100 zusaetzlich mit einigen "Niedlichkeitsfaktoren"
+   ausgestattet: wenn er gestreichelt wird, beginnt er Musik zu spielen
+   und zu tanzen, er kann "einschlafen" und sogar im "Schlaf" sprechen.
+   In zwei Jahren soll er in Japan erstmals zu kaufen sein.
+   
+   [Quelle: Doerte Sasse und NewScientist]
+
+-----------------------------------------------------------------------------
+
+
+
+Neues Pestizid wirkt nur auf den Schaedling (News, 14. Sep 1999, 06:07:32):
+
+   Oekologie:
+   
+   Neues Pestizid wirkt nur auf den Schaedling
+   
+   (Meldung vom 13.9.1999)
+   
+   Ein neuartiges Insektenschutzmittel aus Australien soll nicht nur die
+   Landwirte vor Schaedlingsfrass schuetzen, sondern auch die Umwelt und
+   nuetzliche Insekten vor ueberfluessigem Gift. Das Pestizid setzt gezielt
+   an einzelnen Hormon-Molekuelen an, die das Wachstum der Insekten
+   steuern - dadurch ist es artenspezifisch und soll weder fuer andere
+   Insekten noch fuer Menschen, Saeugetiere oder Voegel eine Gefahr
+   darstellen.
+   
+   Das Hormon Ecdyson reguliert beim Insekt den "Haeutungsprozess": Zu
+   verschiedenen Zeitpunkten ihres Lebens wird den Tieren ihr
+   Chitinpanzer zu eng, fuer weiteres Wachstum muessen sie herausschluepfen,
+   nachdem sich ein neuer, noch weicher Panzer bereits gebildet hat.
+   
+   Die Molekularforscher der [1]Commonwealth Scientific and Industrial
+   Research Organisation (CSIRO), des [2]Biomolecular Research Institute
+   und der Firma Dunlena Pty Ltd. arbeiten an der Bestimmung der
+   Hormon-Rezeptoren von verschiedenen Schaedlingsarten. Ist die
+   spezifische Struktur bekannt, lassen sich die Rezeptoren gezielt
+   blockieren, so dass das Insekt in seiner Huelle gefangen ist und
+   stirbt.
+   
+   "Dies wird betraechtliche Sicherheits- und Umwelt-Vorteile haben, weil
+   die neuen Produkte nichts anderes als die Ziel-Insekten
+   beeintraechtigen werden.", so der Projektleiter Dr. Paul Savage. Er
+   rechnet damit, dass der Erfolg seines Forschungsteams eine ganz neue
+   Aera der Schaedlingsbekaempfung einlaeuten koennte.
+   
+   Die Wirkstoffe sollen bei niedrigerer Dosis effektiver sein als heute
+   verwendete Substanzen, und weitere Varianten gegen andere
+   Insektenarten sollen sich relativ schnell entwickeln lassen. Auch soll
+   es das neue Pestizid den Insekten schwerer machen, mit der Zeit
+   Resistenzen gegen das Pestizid zu entwickeln - da es, anders als
+   chemische Wirkstoffe, direkt an einem kritischen Punkt ihres
+   Lebenszyklus' angreift.
+   
+   Mehr ueber Pestizide erfahren Sie [3]hier.
+   
+   [Quelle: Doerte Sasse, CSIRO und bbc]
+
+-----------------------------------------------------------------------------
+
+
+
+Zahlreiche Mini-Staubstuerme auf dem Mars. Faerbten die "Staubteufel" (News, 14. Sep 1999, 06:07:34):
+
+   Astronomie allg.:
+   
+   Zahlreiche Mini-Staubstuerme auf dem Mars. Faerbten die "Staubteufel"
+   den Planeten rot?
+   
+   (Meldung vom 13.9.1999)
+   
+   Miniatur-Staubstuerme, die sogenannten "Staubteufel", koennten eine
+   Rolle dabei spielen, die Oberflaeche des [1]Mars mit dem
+   allgegenwaertigen roten Staub zu bedecken. Das berichten Forscher um
+   Stephen Metzger von der University of Nevada in Reno in den
+   [2]Geophysical Research Letters.
+   Sie untersuchten Aufnahmen der Raumsonde Mars Pathfinder, auf denen
+   groessere Staubstuerme zu sehen waren. Die Wissenschaftler filterten die
+   Bilder, so dass sie kleinere Strukturen und Muster aufloesen konnten.
+   Sie entdeckten fuenf Staub-"Pilze", die ihrer Meinung nach den
+   Staubteufeln aehneln, wie sie auf der Erde an sonnigen Tagen auf
+   Feldern oder Strassen durch aufgewirbelten Dreck entstehen.
+   
+   Die Strukturen auf dem Mars waren zwischen 15 und 50 Metern breit und
+   zwischen 50 und 400 Metern hoch. "Moeglicherweise loesen die Staubteufel
+   die grossen Staubstuerme aus, die den ganzen Planeten umgeben",
+   schreiben die Forscher. Auch daran, die feinen Partikel in die
+   Atmosphaere zu bringen, koennten die Staubteufel beteiligt sein.
+   Weiteres zum Thema Mars finden Sie [3]hier.
+   
+   [Quelle: Ute Kehse ]
+
+-----------------------------------------------------------------------------
+
+
+
+Fortschritt bei Kernfusion (News, 14. Sep 1999, 06:07:38):
+
+   Energie:
+   
+   Fortschritt bei Kernfusion
+   
+   (Meldung vom 13.9.1999)
+   
+   Wissenschaftlern von der University of Wisconsin-Madison ist es
+   gelungen, mit einer neuartigen Maschine Plasma zu erzeugen. Damit
+   haben Joseph Talmadge und sein Team einen weiteren wichtigen Schritt
+   auf dem Weg zur [1]Kernfusion getan.
+   
+   Bei diesem Prozess wird Energie dadurch erzeugt, dass
+   Wasserstoff-Kerne zu Helium verschmolzen werden. Das gelingt nur bei
+   extrem hohen Temperaturen, bei denen die Materie in Form von Plasma,
+   also in ionisiertem, elektrisch leitfaehigem Zustand, vorliegt.
+   
+   Ein Problem bei der Kernfusion besteht darin, das extrem heisse Plasma
+   einzuschliessen. Dazu sind starke Magnetfelder noetig. Die
+   Wissenschaftler aus Wisconsin haben jetzt zum ersten Mal mit der
+   HSX-Maschine (Helically Symmetric Experiment) Plasma erzeugt, die zwei
+   bestehende Technologien vereinigt.
+   
+   Das erzeugte Magnetfeld ist symmetrisch, so dass die Energie, die das
+   Plasma zusammenhaelt, in Magnetfeld-Windungen ausserhalb des Plasmas
+   liegt. Das macht HSX als Fusionsreaktor stabiler. Im Innern des
+   Reaktors koennen Temperaturen bis zu zehn Millionen Grad erreicht
+   werden.
+   
+   Zunaechst sollen die Eigenschaften von Plasma und Moeglichkeiten, es
+   auszunutzen, untersucht werden. Die Kernfusion ist der Prozess, der
+   die Energie im Innern der Sterne erzeugt- eine praktisch unermessliche
+   Energiequelle - fall es gelingt, sie anzuzapfen.
+   
+   Weiteres zum Thema Kernfusion finden Sie [2]hier und [3]hier
+   (Europaeische Fusionsforschung).
+   
+   [Quelle: Ute Kehse]
+
+-----------------------------------------------------------------------------
+
+
+
+Cochlea-Implantat: Gehirn muss in jungen Jahren hoeren lernen (News, 14. Sep 1999, 06:07:40):
+
+   Medizin:
+   
+   Cochlea-Implantat: Gehirn muss in jungen Jahren hoeren lernen
+   
+   (Meldung vom 13.9.1999)
+   
+   Tiere, die taub geboren wurden - und vermutlich auch Menschen - koennen
+   mit Hilfe eines Cochlea-Implantats hoeren lernen, wenn das Implantat
+   frueh genug eingesetzt wird. Dies ist das Ergebnis von Untersuchungen,
+   die Rainer Klinke vom Physiologischen Institut III der Universitaet
+   Frankfurt an jungen Katzen durchgefuehrt hat.
+   
+   Klinke und sein Team pflanzten taubgeborenen Katzen im Alter von 3-4
+   Monaten die Cochlea-Implantate ein und stellten fest, dass die
+   Kaetzchen schon nach 1-3 Wochen zuverlaessig auf Toene reagierten.
+   
+   Cochlea-Implantate werden schon seit einigen Jahren Gehoerlosen
+   eingesetzt. Es handelt sich dabei um ein Geraet, das einem Hoergeraet
+   nicht unaehnlich ist, aber nicht nur aussen am Ohr angebracht wird,
+   sondern auch einen inneren Teil hat, der operativ eingesetzt werden
+   muss und der direkt den Gehoernerv stimulieren soll.
+   
+   Wird das Geraet lange nach der Phase des Spracherwerbs eingesetzt, ist
+   es fuer den Gehoerlosen kaum noch von Nutzen. Durch seine Katzenversuche
+   weiss Klinke auch, warum: Das Gehirn sowohl des Gehoerlosen als auch
+   das des Hoerenden muss Hoeren lernen, und dieser Prozess findet in der
+   fruehesten Kindheit statt. Er ist auch die Bedingung fuer den
+   Spracherwerb. Wird jemand gehoerlos, lange nachdem der Sprachwerb
+   abgeschlossen ist, kann ihm ein Cochlea Implantat helfen, da das
+   Gehirn ja schon einmal hoeren und also auch sprechen gelernt hat.
+   
+   Bei von Geburt an gehoerlosen Kindern muesste das Cochlea Implantat also
+   etwa im ersten Lebensjahr eingesetzt werden.
+   
+   [Quelle: Dr. Doris Marszk]
+
+-----------------------------------------------------------------------------
+
+
+
+Amerikanische Psychologie fuer russische Problemkinder (News, 14. Sep 1999, 06:07:42):
+
+   Gesellschaft:
+   
+   Amerikanische Psychologie fuer russische Problemkinder
+   
+   (Meldung vom 13.9.1999)
+   
+   Fuer Jugendliche in Nizhnij Novgorod, die, wie in ganz Russland,
+   zunehmend drogen- und alkoholabhaengig sowie selbstmordgefaehrdet sind,
+   hat Martha Holden, Direktorin des [1]Residential Child Care Project
+   der Cornell University jetzt ein Hilfsprogramm exportiert.
+   
+   Holden hat zusammen mit zwei Kollegen, zwei Dolmetschern und einem
+   300-Seiten-Handbuch, das ins Russische uebersetzt wurde, 16
+   Hochschullehrer, Psychologen und andere eine Woche lang geschult. Das
+   Programm ist bisher in der gesamten englischsprachigen Welt erprobt
+   worden; kuerzlich ist es ins Spanische uebersetzt worden, um in Puerto
+   Rico eingesetzt zu werden.
+   
+   Mit der Uebersetzung ins Russische wird es jetzt erstmals in einem Land
+   angewandt, das ueberhaupt nicht zur englischsprachigen Welt gehoert.
+   Anders als es in Russland ueblich ist, wo auffaellig gewordene
+   Jugendliche in Straflager und Besserungsanstalten eingeliefert werden,
+   stellt das Residential Child Care Project auf eine Arbeit in
+   therapeutischen Gruppen und Wohngemeinschaften ab.
+   
+   "Mit meinen Cornell-Kollegen Nick Pidgeon und Jack Holden versuchten
+   wir den Russen zu helfen, die Krise der jungen Leute als eine
+   Moeglichkeit zu sehen, sie zu analysieren und den betroffenen Kids Wege
+   zu besserem Verhalten zu eroeffnen. Gleichzeitig zeigen wir den
+   Betreuern, wie sie aus den Krisen lernen koennen und mit den
+   Jugendlichen Strategien diskutiere koennen, so dass aehnliche
+   Situationen beim naechsten Mal besser bewaeltigt werden koennen",
+   erklaerte Holden.
+   
+   [Quelle: Dr. Doris Marszk]
+
+-----------------------------------------------------------------------------
+
+
+
+Leider nix mehr mit 1.7 Pf/Min (Mesirii,  9. Nov 1999, 12:09:16):
+
+Siehe auch:
+http://www.heise.de/newsticker/data/je-08.11.99-000/
+
+Aus nem Kommentar fuer Hannoveraner:
+
+Statt dessen benutze ich momentan
+Nikoma und demnaechst Hannovers CityCarrier, bei dem ich fuerr 21,- DM im
+Monat tagsueber (8-18 Uhr) fuer 2 Pfennig und die restliche Zeit fuer 1
+Pfennig die Minute surfe (bei sek.-genauer Abrechnung nach der ersten
+Minute). Da braucht man eigentlich schon fast keine Flatrate mehr
+(zumindest nicht bei den momentan Flatratepreisen).
+Ich wuerde sowieso vielmehr Leuten empfehlen zu entsprechenden
+CityCarriern zu wechseln, da man da auch im Orts- und Nahbereich (bis
+50 km) noch eine ganue Menge sparen kann. Ausserdem kann man dann z.B.
+auch einen ISDN-Anschluss fuer 39,- DM inkl. pro Monat bekommen.
+Mesi, traurig dass er nimmer billig mudden kann
+
+-----------------------------------------------------------------------------
+
+
+
+flatrates (Mesirii, 17. Nov 1999, 12:14:35):
+  Flatrates werden billiger
+   Der Internet-Provider Silyn-Tek senkt zum 1. Dezember die Preise fuer
+   seine Flatrate-Angebote. Damit kostet der unbeschraenkte
+   Internet-Zugang (inklusive Telefonkosten) den Internet-Surfer noch 189
+   Mark pro Monat, wenn er sich fuer drei Jahre an den Provider bindet.  
+   Bei 24-monatiger Laufzeit zahlt man jedoch 239 Mark im Monat, bei
+   12-monatiger sogar 299 Mark.
+
+   Zusaetzlich wollen bisher Unbekannte im deutschen Providermarkt in
+   diesen Markt einsteigen. Ueber die Qualitaet der Angebote sind derzeit
+   noch keine Aussagen moeglich.
+   
+   Die Firma Freeprovider kuendigt an, ab 1. Januar einen Flatrate-Zugang
+   fuer 120 Mark pro Monat anbieten zu wollen -- ein Tarif, bei dem jedoch
+   eine zusaetzliche Finanzierung durch Werbebanner erfolgt, wie der
+   Anbieter auf seiner Homepage schreibt. Zudem wird eine Anmeldegebuehr  
+   von 50 Mark faellig; Anmeldungen will die Firma ab Mitte Dezember 
+   entgegennehmen.
+   
+   Den Vogel schiesst die Firma NetAndGo ab: Sie will ab 1. Februar fuer
+   nur 89 Mark pro Monat unbegrenztes Surfen ermoeglichen. Die Anmeldung  
+   soll ab 1. Dezember moeglich sein. (ll/c't)
+
+-----------------------------------------------------------------------------
+
+
+
+tf-gimmicks (Mesirii, 18. Apr 2000, 12:40:22):
+/def beat = \
+        /set output=$(/ps -r)%;\
+        /if (strstr(output,strcat("/beat_",{1}," "))>-1) \
+           /set beat_%{1}%;\
+/ps%;\
+           /eval /kill \%beat_%{1}%;\
+           /purge beat_%{1}%;\
+           /clear_hook beat_%{1}%;\
+        /endif%;\
+        /def beat_%{1} = \
+        /if (do_beat>=0 & do_beat_%{1}>=0) \
+        /if (do_beat_%{1}==1 & do_beat==1) \
+          /eval_hook beat_%{1}\%;\
+        /endif\%;\
+        /repeat -%{1} 1 /beat_%{1}\%;\
+        /set beat_%{1}=\%?\%;\
+        /endif\%;%;\
+        /set do_beat_%{1}=1%;\
+        /beat_%{1}%;
+
+Benutzung mit: /beat sekunden z.B. /beat 15 erzeugt nen regelmaessigen
+Prozess,
+der Aktionen ausfuehren kann.
+gesteuert kann das Ganze ueber zwei Variablen werden eine globale
+do_beat und eine lokale do_beat_15 (z.B)
+wenn diese jeweils 1 sind, werden die kommandos ausgefuehrt und der prozess
+regelmaessig gestartet.
+wenn diese jeweils 0 sind, werden keine kommandos ausgefuehrt, aber der
+prozess laeuft weiter
+wenn sie <0 sind, wird der prozess gestoppt und muss dann mit /beat 15
+wieder gestartet werden, nachdem die steuervariablen zurueckgesetzt wurden
+
+Mesi, jetzt wirklich viel Spass wuenschend.
+
+
+-----------------------------------------------------------------------------
+
+
+
+arrays in tf (Mesirii, 25. Apr 2000, 14:41:16):
+Wieder mal was aus der Alchemistenkueche ;)
+Diesmal Arrayfunktionen, da ganz nuetzlich:
+Nutzung mit /funktion array [index [wert]] je nach bedarf
+/def aget = \
+        /test value:=\{array_%{1}___%{2}\}%;\
+        /return value%;\
+        
+/def aput = \
+        /set array_%{1}___%{2}=%{-2}%;\
+        /if (astart()>{2}) /test array_%1___min_len:={2}%; /endif%;\
+        /if (alen()<{2}) /test array_%1___max_len:={2}%; /endif%;
+
+/def aclear = \
+        /purge_vars array_%1___*%;\
+        /set array_%1___max_len=0%;\
+        /set array_%1___min_len=0%;
+
+/def alen = \
+        /return \{array_%{1}___max_len\}%;
+
+/def astart = \
+        /return \{array_%{1}___min_len\}%;
+
+/def ashow = \
+        /listvar -g array_%{1}___*%;
+
+/def asshow = \
+        /let count=$[alen({1})+1]%;\
+        /let res=%;\
+        /while (--count>=astart({1})) \
+          /let res=$[aget({1},count)] %res%;\
+        /done%;\
+        /echo %res%;\
+Mesi, in Proggerlaune
+
+-----------------------------------------------------------------------------
+
+
+
+quicksort fuer die arrays (Mesirii, 25. Apr 2000, 14:45:26):
+Die Arrayfunktionen brauchte ich nur fuer das folgende Quicksort.
+Erst noch n paar Hilfsfunktionen, und dann das sort + Beispiel
+/def aswap = \
+        /test value:=\{array_%{1}___%{2}\}%;\
+        /test array_%{1}___%{2}:=\{array_%{1}___%{3}\}%;\
+        /test array_%{1}___%{3}:=value%;
+
+< 0 wenn aa < bb
+/def ascmp = \
+        /test value:=strcmp(\{array_%{1}___%{2}\},\{array_%{1}___%{3}\})%;\
+        /return value%;
+
+/def asicmp = \
+        /test
+value:=strcmp(tolower(\{array_%{1}___%{2}\}),tolower(\{array_%{1}___%{3}\}))%;
+\
+        /return value%;
+
+< 0 wenn 1 < 2
+/def ancmp = \
+        /test value:=(\{array_%{1}___%{2}\}-\{array_%{1}___%{3}\})%;\
+        /return value
+
+feld,beginn, ende, sortierfunktion
+/def asort = \
+/if (++ainit>8) /return%; /endif%;\
+        /let asort1=$[{2}-1]%; /let asort2=$[{3}+1]%;\
+        /let cmp=$[(asort1+asort2)/2]%;\
+/echo ivorn %2 $[aget({1},{2})]%;\
+/echo ihinten %3 $[aget({1},{3})]%;\
+/echo cmp %cmp $[aget({1},cmp)]%;\
+        /if (abs({2}-{3})<=1) \
+           /if (abs({2}-{3})==1) \
+           /%{4} %{1} %{2} %{3}%;\
+           /if ({?}>0) /aswap %{1} %{2} %{3}%; /endif%;\
+           /endif%;\
+           /return %; \
+        /endif%;\
+        /while (asort1<asort2) \
+        /%{4} %{1} $[++asort1] %cmp%;\
+        /while (asort1<asort2 & {?}<0) \
+          /%{4} %{1} $[++asort1] %cmp%;\
+        /done%;\
+        /%{4} %{1} $[--asort2] %cmp%;\
+        /while (asort2>asort1 & {?}>0) \
+          /%{4} %{1} $[--asort2] %cmp%;\
+        /done%;\
+        /if (asort1<asort2) \
+/echo vorn %asort1 $[aget({1},asort1)]%;\
+/echo hinten %asort2 $[aget({1},asort2)]%;\
+        /aswap %{1} %asort1 %asort2%;\
+        /endif%;\
+/test ++asort1%;\
+/test --asort2%;\
+/asshow %{1}%;\
+        /done%;\
+        /asort %{1} %2 %asort2 %4%;\
+        /asort %{1} %asort1 %3 %4%;\
+
+/def ainit = \
+        /aclear a%;\
+        /aput a 1 Michael%;\
+        /aput a 2 Susi%;\
+        /aput a 3 Joerg%;\
+        /aput a 4 Lina%;\
+        /aput a 5 Gabi%;\
+        /aput a 6 Selina%;\
+        /asshow a%;\
+        /test asort("a",1,6,"asicmp")%;\
+        /asshow a%;
+Mesi, TF-ler
+
+-----------------------------------------------------------------------------
+
+
+
