Mein Buchtip (Aranya,  6. Nov 1995, 13:56:26):
Einen Buchtip habe ich schon an in fruehreren Zeiten an dieser Stelle ver-
braten: John Lennon: Zwei Jungfrauen oder Wahnsinnig in Daenemark. Weiter
wuerde ich empfehlen: Victor Klemperer: LTI / Ich will Zeugnis ablegen bis
zum Letzten / Zwiespaeltiger denn je. Klemperer war Philologieprof an
der Dresdner TH, bis er 1935 als Jude geschasst wurde. Wegen seiner "ari-
schen" Frau wurde er jedoch nicht in KZ geschickt, sondern blieb in
Dresden. Ich will Zeugnis ablegen... ist das Tagebuch 1933-45, Zwiespael-
tiger... das Tagebuch 1945. Sein bekanntestes Werk ist jedoch LTI (Lingua
Tertii Imperii - die Sprache des Dritten Reiches), in der er als scharf
beobachtender Zeitgenosse und als Philologe die Veraenderungen im Verhal-
ten und in der Sprache beschreibt. Einige interessante Vergleiche mit heu-
te sind moeglich und angebracht...
Weiterhin lese ich mal wieder C.W. Ceram: Goetter Graeber und Gelehrte.
Der Roman der Archaeologie. Wenngleich etwas veraltet (im Grossteil Stand
40er und 50er Jahre), erzaehlt Ceram hervorragend lesbar und doch fach-
lich fundiert ueber die Abenteuer und Geheimnisse der Archaeologie. Ein
Buch nicht nur fuer Archaeologiestudenten.
In der heutigen (montaeglichen) Ausgabe der Sueddeutschen ist in dem Ju-
gendmagazin Jetzt eine Lesenswert-Liste abgedruckt, die ein paar interes-
sante Empfehlungen enthaelt (eine von mir... Ratet mal und MUDmail an mich).
Qualitativ hochwertige Buecher findet man auch in der SWF-Bestenliste.
Dort schreiben - glaube ich - zehn Kritiker ihre Monatsempfehlung auf.
Das Literarische Quartett ist IMHO geschlossen dabei.
So. Jetzt habt ihr wieder genug zu lesen.
Aranya
      guckt vom Buch auf

-----------------------------------------------------------------------------



Re: Mein Buchtip (Aranya,  6. Nov 1995, 13:58:17):
#! rn=Aranya rt=815662586
Ach ja, genauere Angaben ueber die Buecher erteil ich gerne auf Anfrage

Aranya
      NNN

-----------------------------------------------------------------------------



Buchtip (Li,  7. Nov 1995, 09:14:44):

1) Der Wurm Ouroboros   /E.R. Eddings

   Viele Buecher, die mit dem "Herr der Ringe" verglichen werden, kommen an
   das grosse buch der Fantasy nicht heran. Bei dem Wurm ist das anders. Man
   kann es auch nur in einer Sache mit den HdR vergleichen: Die Sprache.
   Wenn es ein Buch gibt, das noch mehr epische Tiefe hat, das noch mehr
   einen archaischen Eindruck erweckt, so ist es der Wurm. Eddings benutzt
   in seinem Buch teilweise sehr altes Englisch, um die Unterschiede der
   beiden Hauptrassen zu beschreiben. Das buch galt lange Zeit als
   unuebersetzbar, bis letztes Jahr dann eine deutsche Uebersetzung vorlag.
   Auch im Wurm gibt es Berichte aus der "Altvorderenzeit", die im deutschen
   teilweise in mittelhochdeutsch geschrieben wurden, um das alte Englisch
   zu simulieren.
   Zum Inhalt: Zwei Rassen fuehren Krieg: Auf der eine Seite der grausame
   und zauberkundige Gorice von Hexenland und seine Mannen, auf der anderen
   Seite der Fuerst Juss. Ihm zur Seite stehen viele wackere Helden, unter
   anderem der groesste Held: Goldry Blusco. Und gerade Blusco wird kurz vor
   einer wichtigen Schlacht von Daemonen entfuehrt. Ohne ihren wichtigsten
   Helden haben Fuerst Juss und seine Getreuen keine Chance gegen ihre
   Gegner. Also macht sich Fuerst Juss auf, seinen Freund zu befreien. aber
   der ist auf dem hoechsten Berg der Welt gefangen, ein Berg, den noch kein
   Sterblicher je erklommen hat.
   Dieses Buch will ich allen ans Herz legen, denen am HdR besonders
   folgende Sachen gefallen haben: die epische Sprache, die erzaehlerische
   Dichte, die Charaktarisierung der Helden. Versteht mich nicht falsch:
   Ich finde das Buch nicht besser als den HdR, mna kann sie auch vom
   Inhalt her nicht vergleichen, aber sie sind sich doch in Sprache und
   Anlage aehnlich, da beide Autoren aus den selben Quellen geschoepft
haben:
   den alten Heldensagen und -epen des noerdlichen Europas.


Li (wuenscht viel Spass beim lesen)

-----------------------------------------------------------------------------



Buchtip II (Li,  7. Nov 1995, 09:45:07):

Der Spiegel ihrer Traeume/Einer reitet durch    Stephen R. Donaldson

   Zwei Buecher fuer Leser, die Intrigen, Spannung, undurchschaubare
   Charaktere und eine nette Liebesgeschichte moegen. Donaldson, bekannt
   geworden durch seinen Thomas Covenant Zyklus, legt hier ein Meisterwerk
   vor: Es ist die Geschichte der entschlusslosen Terisa Morgan, die sich
   jeden Tag von Neuem ihres Daseins nur dadurch versichern kann, in dem
   sich sich im Spiegel betrachtet und sich sicher ist, dass sie noch da
   ist. Eines Tages tritt ploetzlich ein junger Mann durch diesen Spiegel
   hindurch, behauptet, er sei gekommen um sie in sein Land zu holen, da
   ein Orakel geweissagt habe, sie sei die Rettung seines Landes.
   Mehr aus Neugier ob der junge Mann spinne, folgt sie ihm und landet mit
   ihm tatsaechlich in einen Land, dass kurz vor einer Katastrophe steht:
   Fremdartige Monster aus anderen Dimensionen bedrohen das Land, der einst
   so starke Koenig hat sich in einen schwachsinnigen Greis verwandelt, der
   nur noch eine Leidenschaft hat: Das Damespielen.
   Zum Uebel kommt noch hinzu, dass beide Nachbarlaender jeweils eine
   grosse Armee in Marsch gesetzt haben, um das schwache koenigreich
   zwischen ihnen zu schlucken...
   In dieses Chaos stuerzt Terisa, alle verlangen entscheidungen von ihr,
   aber keine Partei offenbart iht gegenueber seine Plaene. So wird sie
   gezwungen, eigene Entscheidungen zu treffen.
   Was der Reiz dieses buches ausmacht, ist nicht nur die spannende
   Handlung, sondern auch die Erzaehlweise. Zwar ist das Buch keine Ich-
   Erzaehlung, aber es ist dennoch aus der Sicht Terisas geschrieben. Der
   Leser weiss also immer nur genausoviel wie sie, und immer wenn sie etwas
   Neues entdeckt, geht auch dem Leser ein Licht auf.
   Zwei Buecher, die von Anfang bis Ende spannend sind, und mehr als einmal
   vollzieht die Handlung ueberraschende Wendungen...


Weitere Buchtips, die ich aber nicht naeher erlaeutern moechte (Nciht weil
sie schlechter sind, sondern weil ich keine Lust mehr habe, mit die Finger
wund zu tippen.)

Das Parfum/Patrick Suesskind                      (Geschichtsroman/Fantasy)

Gott schuetze dieses Haus/Elisabeth George        (Krimi)

Inspector Jury schlaeft ausser Haus/Martha Grimes (Krimi)

Die Bruecke der Voegel/Barry Hughart              (Fantasy)

Krabat/Ottfried Preussler                         (Maerchen/Fantasy)
(nicht lachen, wenn Preusller auch als kinderbuchautor bekannt geworden
ist, und Krabat auch als Jugendlichenbuch konzipiert ist, so ist es auch
fuer jedes Alter ein tolles Buch (man denke in diesem zusammenhang an
"Der kleine Hobbit")




-----------------------------------------------------------------------------



Buchtips (Alboin,  7. Nov 1995, 13:05:04):
Weil ich in letzter Zeit das Bett hueten musste bin ich auch mal wieder zum
lesene gekommen.Das Buch was ich hier gerade verschlinge heisst 'Alexis
Sorbas' von Nikos Kazantzakis.
Alexis Sorbas ist eine der grossen Gestalten der modernen Weltliteratur, ein
Mann mit dem man weint und lacht, bei dem sich Optimismus, Nachdenklichkeit,
Menschenliebe, Vitalitaet und manchmal auch etwas Misanthropie zu einer
Persoenlichkeit von fast archaischem Ausmass zusammenfuegen.
Der Erzaehler, ein welfremder Schriftsteller, der durch seine Wanderung durch
verschiedene philosophische Systeme keine Zugang zur Realitaet gefunden hat,
kann erst durch Sorbas finden was ihm bisher versagt blieb: das Gefuehl und
die Erkenntnis, in der Welt zu Hause zu sein.Auf Kreta lehrt ihn Sorbas, das
Leben zu lieben und den Tod nicht zu fuerchten, lehrt ihn die Sprache des
Tanzes die Leben ausdrueckt, lehrt ihn in schwierigen Situationen Mut zu
beweisen; denn keiner ist wie er faehig, die einfachen Dinge zu geniessen :die
Liebe, das Spiel, die Arbeit.
Am besten ihr lest es selbst einmal, vor allem fuer solche Melancholiker und
Rationalisten wie mich ;-) ist es Pflicht.Leider weiss ich nicht in welchem
Verlag das Buch derzeit zu haben ist.Bei mir ist es eine alte Ausgabe aus dem
'verlag Volk und Welt'

Ciao Euer Albi

P.S. Und noch was den 'Kleinen Prinzen' von Antoine de Saint-Exupery sollte
man sich immer mal wieder zur Hand nehmen - einfach suess :-)


-----------------------------------------------------------------------------



Re: Re: Buchtips (Troubadix,  7. Nov 1995, 18:23:01):
#! rn=Zardoz rt=815411855

Das Gedicht erinnert mich an eine Anzeige, die mein frueherer WG-Genosse (wie
ich Mathematiker) und ich einmal in einem Kieler Stadtmagazin aufgegeben
haben, um uns ueber die vielen esoterischen Anzeigen lustig zu machen. Ich
glaube, sie lautete in etwa so:
Involutorische Bewegungen lassen Dich die Charakteristik Deines Koerpers
erkennen. Givens-Rotationen helfen Dir beim Loesen von Eigenwertprobelemen.
Erlebe die stabilisierende Wirkung von Bewegungsgruppen!

Wir haben darauf uebrigens nur von einem Interessenten Antwort bekommen.
Deshalb mussten wir ihm mitteilen, dass unsere Bewegungsgruppe aufgrund zu
geringer Elementezahl leider aufgeloest werden musste. :)

Ciao, Troubadix.

-----------------------------------------------------------------------------



buchtip-anmerkungen (Li,  8. Nov 1995, 09:29:39):
Hi!
Ich war wohl gestern etwas muede, sonst waere mir das nicht pasiert:
der autor des Wurm Ouroboros heisst nicht Eddings(den gibt es naemlich auch)
sondern Eddison: E.R.Eddison

Bei meinen Krimivorschlaegen habe ich jeweils nur das Erste genannt,
empfehlen kann ich alle Krimis von Elisabeth george und Martha Grimes! sie
sind alle Spitze.

Dann Habe ich noch Robert van gullik vergessen. Lange bevor durch Der Name
der Rose "Geschichtskrimis" modern wurden, schieb er in den 60ern die buecher
um Richter Di. Richter Di ist ein Richter im alten China, zur Zeit der
Tang-Dynastie (ca. 700 n.Chr.). Da im alten China der richter auch
gleichzeitig der Untersuchungsbeamte war, kommen viele geheimnisvolle,
spannende Krimis zustande. Im gegensatz zu Barry hugharts romanen um Meister
Li, sind die Richter Di Geschichten reine Krimis, die allerdings die Zeit der
Tang so exakt zeichenen, wie es nur moeglich ist. RvG war ein profunder
Chinakenner, und das macht sich natuerlich in den wie recherchiert
erscheinenden buechern bemerkbar.

Li (schwaermt nicht als Fernwestler von richter di, sondern als Krimileser)

-----------------------------------------------------------------------------



Der Rabe (Li,  8. Nov 1995, 11:24:50):
Hi!
Hier mal ein Gedicht, dass etwas laenger ist. Es ist von E.A.Poe, der nicht
nur brilliante Geschichten geschrieben hat, sondern auch brilliante Gedichte.
hier sein bekannteste:
(Ach so, ne deutsche Uebersetzung liefre ich noch nach.)



THE RAVEN

Once upon a midnight dreary, while I pondered, weak
and weary,
Over many a quaint and curious volume of forgotten
lore--
While I nodded, nearly napping, suddenly there came a
tapping,
As of some one gently rapping, rapping at my chamber
door.
"'T is some visitor," I muttered, "tapping at my chamber
door--
     Only this and nothing more."

Ah, distinctly I remember it was in the bleak December;
And each separate dying ember wrought its ghost upon
the floor.
Eagerly I wished the morrow; - vainly I had sought to
borrow
From my books surcease of sorrow - sorrow for the lost
Lenore--
For the rare and radiant maiden whom the angels name
Lenore--
      Nameless here for evermore.

And the silken, sad, uncertain rustling of each purple
curtain
Thrilled me--filled me with fantastic terrors never felt
before;
So that now, to still the beating of my heart, I stood
repeating,
"'T is some visitor entreating entrance at my chamber
door--
Some late visitor entreating entrance at my chamber
door;--
       This it is and nothing more."

Presently my soul grew stronger; hesitating then no			
longer,			
"Sir," said I, "or Madam, truly your forgiveness I			
implore;			
But the fact is I was napping, and so gently you came	
rapping,			
And so faintly you came tapping, tapping at my chamber
door;			
That I scarce was sure I heard you" - here I opened wide
the door;--		
       Darkness there and nothing more.			

Deep into that darkness peering, long I stood there
wondering, fearing,	
Doubting, dreaming dreams no mortal ever dared to
dream before;
But the silence was unbroken, and the stillness gave no
token,
And the only word there spoken was the whispered word,
"Lenore ?"
This I whispered, and an echo murmured back the word,
"Lenore !"
       Merely this and nothing more.	I		

Back into the chamber turning, all my soul within me
burning,			
Soon again I heard a tapping somewhat louder than
before.		
"Surely,"; said I, "surely that is something at my window	
lattice;
Let me see, then, what thereat is, and this mystery
explore--
Let my heart be still a moment and this mystery
explore;--
      'T is the wind and nothing more !"

Open here I flung the shutter, when, with many a flirt and
flutter,
In there stepped a stately Raven of the saintly days of
yore;
Not the least obeisance made he; not a minute stopped or
stayed he;
But, with mien of lord or lady, perched above my
chamber door--
Perched upon a bust of Pallas just above my chamber
door--
      Perched, and sat, and nothing more.

Then this ebony bird beguiling my sad fancy into smiling,
By the grave and stern decorum of the countenance it
wore,
"Though thy crest be shorn and shaven, thou," I said,
"art sure no craven,
Ghastly grim and ancient Raven wandering from the
Nightly shore--
Tell me what thy lordly name is on the Night's Plutonian
shore !"
      Quoth the Raven, "Nevermore."

Much I marvelled this ungainly fowl to hear discourse so
plainly,
Though its answer little meaning - little relevancy bore;
For we cannot help agreeing that no living human being
Ever yet was blessed with seeing bird above his chamber
door--
Bird or beast upon the sculptured bust above his chamber
door,
     With such name as "Nevermore."

But the Raven, sitting lonely on the placid bust, spoke
only
That one word, as if his soul in that one word he did
outpour.
Nothing farther then he uttered - not a feather then he
fluttered--
Till I scarcely more than muttered, "Other friends have
flown before--
On the morrow he will leave me, as my Hopes have flown
before."
      Then the bird said, "Nevermore."

Startled at the stillness broken by reply so aptly
spoken,
"Doubtless," said I, "what it utters is its only stock and
store
Caught from some unhappy master whom unmerciful
Disaster
Followed fast and followed faster till his songs one
burden bore--
Till the dirges of his Hope that melancholy burden bore
       Of 'Never - nevermore.' "

But the Raven still beguiling my sad fancy into smiling,
Straight I wheeled a cushioned seat in front of bird and
bust and door;
Then, upon the velvet sinking, I betook myself to linking
Fancy unto fancy, thinking what this ominous bird of
yore--
What this grim, ungainly, ghastly, gaunt, and ominous
bird of yore
       Meant in croaking "Nevermore."

This I sat engaged in guessing, but no syllable expressing
To the fowl whose fiery eyes now burned into my
bosom's core;
This and more I sat divining, with my head at ease
reclining
On the cushion's velvet lining that the lamp-light gloated
o'er,
But whose velvet-violet lining with the lamp-light
gloating o'er,
       She shall press, ah, nevermore !

Then, methought, the air grew denser, perfumed from an
unseen censer
Swung by seraphim whose foot-falls tinkled on the tufted
floor.
"Wretch," I cried, "thy God hath lent thee - by these
angels he hath sent thee
Respite--respite and nepenthe from thy memories of
Lenore;
Quaff, oh, quaff this kind nepenthe and forget this lost
Lenore !"
       Quoth the Raven, "Nevermore."

"Prophet!" said I, "thing of evil!--prophet still, if bird
or devil !--
Whether Tempter sent, or whether tempest tossed thee
here ashore,
Desolate yet all undaunted, on this desert land
enchanted--
On this home by Horror haunted--tell me truly, I
implore--
Is there--is there balm in Gilead?--tell me--tell me, I
implore !"
       Quoth the Raven, "Nevermore."

"Prophet 1" said I, "thing of evil --prophet still, if bird	
or devil!	
By that Heaven that bends above us--by that God we		
both adore--		
Tell this soul with sorrow laden if, within the distant		
Aidenn,		
It shall clasp a sainted maiden whom the angels name		
Lenore--	
Clasp a rare and radiant maiden whom the angels name	
Lenore."	
      Quoth the Raven, "Nevermore.

"Be that word our sign of parting, bird or hend !" I	
shrieked, upstarting--	
"Get thee back into the tempest and the Night's		
Plutonian shore !	
Leave no black plume as a token of that lie thy soul hath		
spoken !	
Leave my loneliness unbroken!--quit the bust above my		
door !		
Take thy beak from out my heart, and take thy form from		
off my door !"		
      Quoth the Raven, "Nevermore."		

And the Raven, never flitting, still is sitting, still is sitting	
On the pallid bust of Pallas just above my chamber door;		
And his eyes have all the seeming of a demon's that is	
dreaming,		
And the lamp-light o'er him streaming throws his shadow	
on the floor;	
And my soul from out that shadow that lies floating on
the floor	
      Shall be lifted--nevermore !	



(Uebrigens, der Zeilenumbruch ist kein Fehler von mir.)

-----------------------------------------------------------------------------



Noch n Buchtip von mir (Aranya,  8. Nov 1995, 15:20:27):
Ein Buch hab ich noch vergessen... Tststs!
Herbert (?) Rosendoerfer, Briefe in die chinesische Vergangenheit, dtv.

Ein recht vergnuegliches Buch (ich habe es an einem Abend geschafft, laesst
sich sehr gut lesen) ueber unsere jetzige Welt aus einer Distanz.
Der Plot: Ein chinesischer Mandarin aus dem Ende des 10. Jahrhunderts hat
eine Zeitreisemaschine erfunden. Damit will er 1000 Jahre in die Zukunft
reisen. Dummerweise uebersieht er die Erdrotation und landet im Muenchen
der Endachziger. Er schreibt seinem Freund Kao Tai Briefe auf speziellem
Zeitreisepapier und diese kann man nun lesen. Mit gewissen Startschwierig-
keiten findet sich der Mandarin in der heutigen Welt zurecht, zumal er einen
Geschichtsdozenten findet, der ihn an- und aufnimmt und ihm die Welt er-
klaert. Es ist ganz witzig zu sehen, wie er versucht, anhand der Kwei-Wa-Ta
(Krawatten) die Rangunterschiede abzulesen und ob die Frauen Regenschirme
in den Farben der Kwei-wa-ta ihrer Maenner haben. Die A-tao-Waegen hat er
schnell durchschaut und auch sonst zeigt er nicht grosse Verwunderung ueber
die technisierte Gesellschaft.
Das Buch besticht durch eine ziemlich profunde Kenntnis der chinesischen
Gesellschaft zu Ende des letzten Jahrtausends, wird aber wenn es in Richtung
Umweltschutz und Religion geht meines Erachtens zu moralisierend. Darueber
hinaus ist es aber durchaus zu empfehlen.

A-ran-ya
NNN

-----------------------------------------------------------------------------



Re: Noch n Buchtip von mir (Li,  9. Nov 1995, 08:09:59):
#! rn=Aranya rt=815840427
Tja, dieses Buch:
Der Kritikpunikt Aranyas ( zu moralisierend) war fuer mich der Grund, es
nicht in meinen buchtips aufzunehmen. am anfang ist es ziemlich witzig, als er
A-Tao-Wagen, Da Wing Do (Davidoff-Zigarren!) und Mo Te Schan Dong (ein
Prickelwasser) kennenlernt. Aber sobald sich der Besucher etwas eingelebt hat,
hebt sich der moralisierende Zeigefinger. Und der senkt sich auch nicht mehr.
nun, nichts gegen Gesellschaftskritik, aber nicht so!
Meine meinung zum Buch: Ausleihen, da ganz witzig (und die fremde Sichtweise
sehr interessant) fuer den Kauf zu Schade.
Wenn ich schon dabei bin, buecher zu verreissen: Das Foucault'sche Pendel von
Umberto Eco erscheint mir wie ein billiger Abklatsch der
Illumminatus-Trilogie, aber mmit weniger Inhalt. nicht zu vergleichen mit Der
Name der Rose.

Li (wartet aud die gegenteilige Meinung)

-----------------------------------------------------------------------------



Re: Re: Noch n Buchtip von mir (Aranya, 14. Nov 1995, 16:48:16):
#! rn=Li rt=815900999
*klatsch li zu*

Aranya
NNN

-----------------------------------------------------------------------------



Re: Buchtip II (Caradhras, 15. Nov 1995, 00:07:05):
#! rn=Li rt=815733907
Ich kann mich uebrigens Li nur anschliessen in seiner Meinung ueber
Krabat, meines Empfindens nach (IMHO ;-) eines der besten Buecher, die
es gibt. Mit dem Herrn der Ringe und 'aehnlichem' kann man es sicher
nicht vergleichen, aber schon wer gerne Maerchen liest, MUSS dieses
Buch sich antun.

           tschoe       Caradhras

-----------------------------------------------------------------------------



Re: Re: Buchtip II (Lwaxana, 15. Nov 1995, 15:42:51):
#! rn=Caradhras rt=816390425
Was haltet ihr eigentlich von der Unendlichen Geschichte? das buch
wohlgemerkt, die Filme sind ja ganz nett, aber meiner Meinung nach kommen sie
nicht mal im entferntesten an das Buch ran. Ich finde naemlich dieses Buch als
mit das beste, was ich je gelesen habe...

Krabat ist uebrigens auch ziemlich genial, muss ich sagen...


Lwaxana liebt Maerchen und verschlingt Buecher haufenweise...

-----------------------------------------------------------------------------



Re^3: Buchtip II (Roadrunner, 15. Nov 1995, 15:59:00):
#! rn=Lwaxana rt=816446571
Unendliche Geschichte ....
Hab das Buch grade mal wieder gelesen. Ich finds genial. Den Film hab ich mir
NICHT angetan - daher fehlt mir die Beurteilungsgrundlage. Liegt wohl daran
dass ich MOMO auch zuerst gelesen und dann den Film gesehen hab. Dort ist es
zwar nett umgesetzt, entspricht aber bei weitem nicht meiner vorstellung die
ich beim Lesen des buchs entwickelte.

Bei den Filmen geht, wie ich meine, die philosophische und die Mutmach -
aussage der Buecher ziemlich drauf. Ganz abgesehen davon dass ich gerne lese
und meine Bilder selber entwickle. Das ist ja auch ein ganz wesentlicher Punkt
bei der aussage der Undendlichen Geschichte.

Krabat ...

Schon lange her dass ichs las. Ich fand es damals spannend, aber aufgrund der
Handlung auch etwas bedrueckend. Muesste es mal wieder zur Hand nehmen.
Was fuer das Buch spricht ist, dass ich mir die Handlung davon bis heute in
etwa merken konnte.

			Roadrunner
P.S. Hab mir grade mal wieder den Herr der Ringe rausgekramt :)

-----------------------------------------------------------------------------



Re^3: Buchtip II (Acrimon, 16. Nov 1995, 01:20:02):
#! rn=Lwaxana rt=816446571
Die Filme sind eine Beleidigung fuer das Buch "Unendliche Geschichte".
Wer die Filme gesehen hat, der wird nie eine richtig eigene schoene Phantasie
fuer das Buch entwickeln koennen.
Ich habe zuerst das Buch gelesen - absolut spitze!
Und dann in die Filme hineingeschaut - im Vergleich sind die Filme absolut
kitschig, und saemtliche Denkanregungen und Weisheiten des Buchs sind in den
Filmen ersatzlos gestrichen!

Haette es nur die Filme nie gegeben.

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re^3: Buchtip II (Li, 16. Nov 1995, 09:12:24):
#! rn=Lwaxana rt=816446571
Also ich fand Unendliche Geschichte ziemlich schwach, lag wahrscheinlich
daran, dass ich so viel von dem Buch gehoert hatte, und dann war es nicht halb
so gut, wie ich es mir vorgestellt hatte. Lag vieleicht daran, dass mir die
moral des buches doch zu platt rueberkam.
Wenn schon aus Fantasy Maeerchen oder Fabel wird, dann aber bitteschoen
richtig, und nicht so platt wie bei Ende (kennt jemand Stein und Floete v.
Heinz Bemman? Schoenes, stimmungsvollen buch zwischen fantasy und Maerchen)

Li (fand Momo 1000mal besser als Unendliche Geschichte)

-----------------------------------------------------------------------------



Das Siegel (Creative, 16. Nov 1995, 09:15:54):

Geniales Buch:
Wolfgang Holbein, Das Siegel.

Geht um nen jungen Kreuzritter, der auszieht, um Abenteuer zu erleben.
War ja damals so ueblich. Die Geschichte, die sich dann eigentlich drum
strickt ist mehr als genial.
Mehr will ich gar net verraten - lesen fesselt immens!
Eins noch... die historischen Tatsachen, auf denen das Buch beruht, sind
ziemlich gut ausgekluegelt, wie bei Holbein immer. Wenn man sich also fuer
die Zeit ein wenig interessiert (Kreuzfahrer und so), dann ist das Buch
zusaetzlich auch von den historischen Ereignissen eine gute Lektuere.
Schaut mal rein...

-Crea- (hat das Buch binnen 1,5 Stunden durchgehabt)


-----------------------------------------------------------------------------



Re: Das Siegel (Highlander, 16. Nov 1995, 09:23:27):
#! rn=Creative rt=816509754
In 1:30? Das ist kein Buch fuer mich, fuerchte ich, ich brauch
welche, an denen ich etwas laenger lesen kann :>
Zum Beispiel das Buch Magician von Raymond Feist.
Ein schoen geschriebener Schmoeker (es gibt ihn in zwei Buechern,
M:Apprentice und M:Master oder als Magician, in neuer Ausgabe ohne Kuerzungen
inzwischen).
Es geht um zwei Freunde, ein Magierlehrling und ein Kriegerlehrling (am
Anfang zumindest), die in den Riftwar hineingezogen werden, in dem Midkemia
von den Tsurani, starken Kriegern von einer anderen Welt mit eigenartigem
Ehrenkodex, angegriffen wird. Ihre Geschichte wird ueber etwa zehn Jahre
oder so erzaehlt, und mehr will ich an sich hier nicht schreiben, weil ich
ja nicht das Buch erzaehlen will, ihr solltet das selber tun :>
Es gibt auch ein paar Buecher, die erzaehlen, was spaeter passiert,
namentlich (mit den gleichen Personen) Silverthorn und A Darkness at
Sethanon.
Wie ihr wahrscheinlich gemerkt habt, habe ich die Buecher auf Englisch,
schoenen Gruss von books.com und Palm&Enke :>
Bye,
   HrT

-----------------------------------------------------------------------------



Re: Re: Das Siegel (Creative, 16. Nov 1995, 09:24:11):
#! rn=Highlander rt=816510207

Das Buch hat ca 700 Seiten :)

-Crea- (konnte die Lesezeit nicht ganz glauben)


-----------------------------------------------------------------------------



Re^3: Buchtip II (Throin, 16. Nov 1995, 09:53:17):
#! rn=Lwaxana rt=816446571
Hm, die unsaeglichen 'Unendliche Geschichte'-Filme als ganz nett zu
bezeichnen finde ich etwas gewagt, aber das Buch ist wirklich genial. (gilt
genauso fuer Krabat! Dank an Ancalagon, ders mir mal geliehen hat.)
Desweiteren kann ich auch noch ein paar Sachen empfehlen:
Fuer Krimifreunde: Natuerlich Raymond Chandler und Dashiel Hammett (die
Buecher sind meiner Meinung nach sogar besser als die Filme). Ansonsten kann
ich auch nur Tony Hillerman empfehlen. Seine Krimis spielen bei der Navaho
Tribal Police und sind meiner Meinung nach extrem spannend, nicht zuletzt auch
durch den Einblick, den man in die Kultur der Navahos erhaelt.
Fuer Sci-Fi-Freunde: Auf jeden Fall empfehlenswert: Jack Vance!!!! (Alastor,
Cadwal-Chroniken, Lyonesse-Zyklus, etc.) Keiner beschreibt fremde Welten und
Kulturen so schoen wie der 'Erfinder des intergalaktischen Heimatromans'.
Diverse Auszeichnungen mit 'Hugo' und 'Nebula' beweisen das.
Fuer Sci-Fi-Freunde: Auf jeden Fall empfehlenswert: Jack Vance!!!! (Alastor,
Cadwal-Chroniken, Lyonesse-Zyklus, etc.) Keiner beschreibt fremde Welten und
Kulturen so schoen wie der 'Erfinder des intergalaktischen Heimatromans'.
Diverse Auszeichnungen mit 'Hugo' und 'Nebula' beweisen das.
Braumeister Throin (koennte zur Not sogar ohne Bier auskommen, aber NICHT
ohne Buecher)

-----------------------------------------------------------------------------



Re: Das Siegel (Li, 16. Nov 1995, 09:57:27):
#! rn=Creative rt=816509754
Crea* sorry, nichts gegen dich, aber dass muss jetzt sein, es gibt Sachen auf
die reagiere ich wie ein Stier auf eine rotes Tuch:
Holbein genial?
gute historische Tatsachen bei holbein?!
Das ich nicht lache!
holbein, der konsalik der fantasy? was hat der nicht schon alles verbrochen!
Und hist, tatsachen? hab ich doch letztens mal ein klappentext gelen uber
robin hood, der am kreuzzug teilgenommen hat! bei sowaas wird mir immer
schlecht (galt auch fuer den K.costner film).
und dann holbein als Robert Craven! Lovecraft wuerde sich im Grabe umdrehen,
wenn er lesen koennte, wie der Hexer mal locker den grossen Chtullhu, Hastur
und Nyalathotep platt macht!
Es gibt einfach kein thema, an dem sich holbein (heisst er nicht hohlbein?)
verbrochen hat: germanische sagen, horror, einfach alles. ich sag ja, der
konsalik der fantasy denn kaum einer duerfte soviel ramsch geschrieben haben
wie holbein. und dann noch Ska der Superheld! Conan und LAncelot in einer
Figur!
(Obwohl "der wandernde Wald" von der idee des Wanderns ganz gut war)
Neee, Leute! kommt mir nicht mit hohlbein!

Li
P.S. sorry fuer die vielen typos aber da kann ich einfach nciht ruhig bleiben
:-)

-----------------------------------------------------------------------------



Re: Re: Das Siegel (Li, 16. Nov 1995, 10:00:24):
#! rn=Highlander rt=816510207
Uebrigens auf deutsche heisst der Zyklus midkemia. Damals bei goldmann
erschienen, das erste buch heisst pug und tomas (die beidenfreunde), vor
kurzen glaube ich bei heyne neu aufgelegt( die kaufe eh' alles auf)
Ich fand sie auch klasse, mus aber sagen, dass der mr der zweite zyklus nach
dem riftwar noch besser gefallen haben.
Reinschauen!

-----------------------------------------------------------------------------



Re: Re: Das Siegel (Creative, 16. Nov 1995, 10:01:06):
#! rn=Li rt=816512247

*sniff*
Ich kenn NUR dieses Buch, und 3 Hexer-Romane von ihm... Die Hexer-Sachen sind
Schrott, aber 'Das Siegel' is a) frueh entstanden, b) gut. Mehr will ich
da gar net sagen.
Ueber den Rest... Tja, was man nicht kennt - ich kann nur von dem Standpunkt
aus argumentieren, den ich zur Zeit hab. Und der is nu mal so.

-Crea-, fuehlt sich ein wenig angegriffen :)
P.S.: Hagen von Tronje von Ho(h?)lbein is ebenfalls Schrott :)


-----------------------------------------------------------------------------



Re^3: Das Siegel (Li, 16. Nov 1995, 10:04:08):
#! rn=Creative rt=816512466
Crea* ich sag doch, ich wollte dich nicht angreifen. *troest* Uebrigens sind
die fruehen werke meistens besser, siehe Marion zimmer-Bradley:
Darkover und Haus der Welten? Klasse!
Nebel von Avalon? Fand ich beim ersten Lesen toll, beim 2. naja und beim 3.
scheisse! (haehae, warte schon auf die proteste!)
Und was danach kam? Der Rest ist Schweigen!
Li

-----------------------------------------------------------------------------



Re^4: Das Siegel (Creative, 16. Nov 1995, 10:05:15):
#! rn=Li rt=816512648

Dann les bitte mal nur einfach so 'Das Siegel' und bild Dir ne Meinung
drueber. Bitte :)

-Crea-, findet das Buch immer noch fesselnd, spannend, gut.
(Frag Semira, die kennt es auch)


-----------------------------------------------------------------------------



Re^3: Das Siegel (Acrimon, 16. Nov 1995, 10:58:22):
#! rn=Creative rt=816510251
Fuer 700 Seiten brauche ich mindestens 20 Stunden. Wenn das Buch gut
geschrieben ist und spannend ist, dann brauche ich noch laenger, weil ich es
dann langsamer und gruendlicher und mit mehr Phantasie lese.
Wenn jemand ein gutes Buch moeglichst schnell durchliest, dann hat er nicht
viel davon.

Acrimon, geniesst lieber die Buecher als dasz er sie ueberfliegt

-----------------------------------------------------------------------------



Re^4: Das Siegel (Creative, 16. Nov 1995, 10:59:02):
#! rn=Acrimon rt=816515902

Dafuer hab ich es ja auch schon 3 mal gelesen :) die beiden letzten Male auch
laenger.
-Crea-


-----------------------------------------------------------------------------



Re: Re: Noch n Buchtip von mir (Murkes, 16. Nov 1995, 11:01:57):
#! rn=Li rt=815900999
Bei dem "Foucault'sche Pendel" von Eco muss ich Li vollkommen recht geben,
es faengt ganz spannend an und zieht sich dann ewig hin, wobei die Story
auch immer schlechter wird.
Ich habe mich zwar nicht direkt gelangweilt, aber das Buch hatte einige
Laengen.

Murkes
,

-----------------------------------------------------------------------------



Buchtip von Rudi (Rudiratter, 16. Nov 1995, 12:00:25):
Also, wenn hier schon alle Buchtips reinschreiben, dann will ich auch nicht
fehlen.
Ich kann alle Buecher von John Irving empfehlen. Die Geschichten sind so
abgedreht und unglaublich, dass sie fast schon wieder war sein koennten und
wenn man sie auf Englisch liest, lernt man alle englischen schmutzigen Woerter
dieser Welt ;))
Besonders gut sind meiner Meinung nach:
Garp und wie er die Welt sah
Das Hotel New Hampshire
A prayer for Owen Meany (weiss nicht, wie der deutsche Titel heisst)

Rudi

-----------------------------------------------------------------------------



Re: Buchtip von Rudi (Kafka, 16. Nov 1995, 12:03:16):
#! rn=Rudiratter rt=816519625
yeah, a prayer for owen meany (auf deutsch nur: owen meany) kann ich auch nur
sehr empfehlen. hab's auch auf englisch gelesen, deshalb kann ich zur dt
version nix sagen. von j irving hab ich sonst leider nur 'the cider house
rules'
gelesen, das war nicht soooo doll, aber owen meany war einfach grossartig.
   k

-----------------------------------------------------------------------------



Re^3: Das Siegel (Hardil, 16. Nov 1995, 13:04:07):
#! rn=Creative rt=816512466

Sorry Crea,

aber das Siegl ist sicherlich keins von Hohlbeins fruehen Werken.
Nichtsdestotrotz hab ichs damals auch ganz gerne gelesen, und wer keine
allzugrossen Anforderungen an Fantasy-Literatur stellt, fuer den ist das Buch
sicherlich okee.

-Hardil. Zieht einen guten Krimi trotzdem jedem Hohlbein vor.

{uuups, das da oben sollte Siegel heissen, nicht Siegl. Siegl? Horst Siegl ?
Oleeee, FCK ! :-) }

-----------------------------------------------------------------------------



Re^4: Das Siegel (Hardil, 16. Nov 1995, 13:05:51):
#! rn=Acrimon rt=816515902
Acrimon:

was die Lesezeit angeht, kann ich DIr nicht zustimmen. Ich binauch eher ein
Schnell-Leser. Den Herrn der Ringe hab ich damals, als ich ihn mir frisch
gekauft habe, in 10 Stunden Non-Stop reingezogen. Quasi puenktlich zum
Fruehstueck war ich fertig :)
Schnell-Lesen und Buecher geniessen geht auch.

-Hardil.

-----------------------------------------------------------------------------



Chanur (Highlander, 16. Nov 1995, 14:12:40):
So, und noch eine Buchempfehlung. Ich moechte empfehlen die Buecher
The Pride of Chanur
Chanur's Venture
The Kif Strike Back.
Chanur's HomeComing
(Bonusbuch Chanur's Legacy)
Ja, ich weiss, schon wieder auf Englisch, aber wenn ich kann, besorge ich mir
Buecher natuerlich auf Englisch, weil
a) original und
b) ich gerne Englisch lese, um in Uebung zu bleiben.
Worum geht es?
Es geht um ein Hani-Raumschiff in einem Universum, in dem es einen Rassenbund
namens Compact gibt. Das ist ein ziemlich loser Bund, der hauptsaechlich auf
Handel basiert, jedenfalls, soweit man dieses Konzept den Rassen beibringen
konnte.
Dieses Schiff sammelt eines Tages auf einer Station etwas auf, was, gelinde
geagt, zu Komplikationen fuehrt.
Kann man das erwarte nicht bitte mal auf Message() umstellen? Ich krieg hier
dauernd die mpa-Meldungen rein.
C.J.Cherryh beschreibt ein konsistentes, interessantes Haeufchen von
Alienvoelkern mit komplizierten Braeuchen, Aussehen, Eigenarten anschaulich
und fesselnd.
Das erste Buch was an sich allein stehend gedacht, aber da es sehr gut ankam,
durfte CJC mit den naechsten drei Baenden an sich ein Buch schreiben, das
heisst, man sollte keines der Buecher 2, 3 und 4 allein lesen - kein Anfang,
kein Ende :>
Im gleichen Universum spielen noch andere Buecher, aber nicht im Compact.
Beispiel: Pells Stern (DAS hab ich mal auf D gelesen :>)
Wer gerne SF liest, mit gut beschriebenen Charakteren (ich liebe gruffy old
Tirun oder
die kaputte Gesellschaftsordnung der Kif, Py gibt einen guten Captain ab etc
etc), der hole sich diese Buecher, am besten in der Originalversion. Eine
Warnug moechte ich allerdings aussprechen: Es gibt lkeichteres Englisch.
Ciao and keep on reading,
   HrT

-----------------------------------------------------------------------------



Re: Das Siegel (Yendi, 16. Nov 1995, 14:22:57):
#! rn=Creative rt=816509754

Ich habe bis jetzt nur "Neues vom Hexer" von Hohlkopf^H^H^H^Hbein gelesen.
Langweilig und plump.
Wann immer der Author es gerne gruselig gehabt haette, wurde es dunkel und
kalt (alle Welt froestelt dauernd), und es kam stets der Standard-
Gruenschimmer. Uuuuh, wie aufregend...


-----------------------------------------------------------------------------



cthulhu (Cymonk, 16. Nov 1995, 14:28:33):
huhu

wenn gerade hohlbeins hexer so schoen niedergemacht wird ...
ich habe eben eine buecherliste zum cthulhu mtythos
gefunden:

http://eerie.eerie.fr/~alquier/HPL/books/cth_bib.html

by(t)e, CyMonk

-----------------------------------------------------------------------------



John Irving (Murkes, 16. Nov 1995, 14:32:08):
Ja, die Buecher von John Irving kann ich auch nur empfehlen.
Ich kenne sie alle in deutscher Uebersetzung, die meist recht gut ist.
Zur Zeit bin ich dabeiu die englischen Originale zu lesen.
Zu: The cider-house-rules
Das Buch heisst auf deutsch 'Gottes Werk und Teufels Beitrag' und ist
meiner Meinung nach das beste, was er bisher geschrieben hat.
Owen Meany fand ich dagegen schon etwas zu mystisch, obwohl es sonst auch
wirklich gut ist.
Nett fand ich auch 'Die wilde Geschichte vom Wassertrinker, eine Geschichte
ueber einen echten Looser, witzig.
Nur fuer Irving-Fans kann man eigentlich sein Erstlingswerk 'Die Baeren sind
los'
empfehlen.

So zum Schluss eine Frage: Hat jemand schon 'Zirkuskind' gelesen?

Murkes

-----------------------------------------------------------------------------



Und noch mal Buecher... (Loco, 16. Nov 1995, 14:38:18):
Ich haette auch noch einen Tip, den manche vielleicht etwas komisch finden
werden - lest auch mal wieder Kinderbuecher!

Und dann gleich ein Tip mit MG-Bezug:
Wer den eigentlichen Ursprung von Svolvaer im Morgengrauen kennenlernen will,
findet es als Schauplatz in
 "Latte Igel reist auf die Lofoten"   von Sebastian Lybeck.
In jeder guten Stadtbuecherei unter 6-9 -jaehrige zu finden, meist als
Sammelband mit dem ersten Teil "Latte Igel und der Wasserstein".
Ich hatte vor langer Zeit einmal vor, dieses Buch zu einer Quest zu machen,
wo aber nie etwas fertiges draus wurde. Uebrig blieb Svolvaer.

Ach ja: Falls irgendjemand mal den Originaltext (schwedisch), moeglichst
beider Teile, zu einem annehmbaren Preis findet, bitte sofort fuer mich
zuschlagen! Es scheint davon nach der ersten Auflage ca. 1950 keine weitere
mehr gegeben zu haben, und nachdem ich in ueber 10 Buchhandlungen nachgefragt
hatte, war ich schon erstaunt, wenn jemand ueberhaupt schon davon gehoert
hatte. Titel waere: "Latte Igelkott (och vattenstenet / reser till lofoten)".


Jetzt zu jemand viel bekannteren, Astrid Lindgren:

"Ronja Raeubertochter", "Brueder Loewenherz" und "Mio, mein Mio" wuerde ich
auf jeden Fall unter die (Kinder-) Buecher zaehlen, fuer die man eigentlich
nicht zu alt sein kann. Warum ich solche "Allerweltsbuecher" erwaehne, die
doch angeblich jeder kennt? Ich habe selber diese drei Buecher erst dieses
Jahr zum ersten Mal gelesen, allerdings den Originaltext, mit dem hier wohl
wenige etwas anfangen koennen. Fuer die deutschen Versionen gilt wieder:
Sollten in jeder Stadtbuecherei verfuegbar sein.


Soviel von mir als Literaturbanausen,

      Loco

-----------------------------------------------------------------------------



auch will ;) (Felagund, 16. Nov 1995, 14:39:28):
Also wo mer grade bei Buechertipps sind auch mal was von mir:
SF: Hier wuerd ich vor allem den Amtrak-Zyklus von Patrick Tilley empfehlen,
der is echt Klasse, allerdings is Band 3 ziemlich schwer zu bekommen (hab ich
hier in Giessen allerdings noch gesehen, falls den einer braucht)
Ausserdem natuerlich den Dune-zyklus von Herbert, aber den kennt ja wohl eh
jeder. (Kein Vergleich zum Film, obwohl ich den als ich die Buecher noch nedd
kante auch ganz gut fand...)
Fantasy: Ganz oben auf meiner Liste steht da der "Rad der Zeit"-zyklus von
Robert Jordan, der hat ne sehr komplexe Story und ist athmosphaerisch recht
gut (und auf englisch noch besser als auf deutsch) -groesstes Manko: er ist
noch nicht abgeschlossen *wart auf Band 7* (jeweils 2 deutsche baende
entsprechen einem englischen, also auf englisch nicht unbedingt teurer)
Ausserdem empfehlenswert waere hier alles was ich von Eddings kenn (3 Zyklen)
hier ist zwar die Geschichte selbst meist nicht SOO anspruchsvoll, aber die
Charaktere sind ganz nett ausgearbeitet..
Relativ unbekannt ist glaubich der Drachenprinz-Zyklus von Melanie Rawn. Der
besticht durch eine andere Sichtweise, da er aus Sicht einer Herrscherfamilie
geschrieben ist und ein relativ unuebliches Magiesystem, das ich auch sehr
gelungen finde..
soweit dazu...
.....Fela
P.S. zu Feists Romanen gibts ein ganz nettes Computerspiel namens Betrayal at
Krondor, das mir ziemlich gut gefallen hat...

-----------------------------------------------------------------------------



Re: Chanur (Hakkikkt, 16. Nov 1995, 14:45:05):
#! rn=Highlander rt=816527560
Hi ,
zu den Chanur gibts auch noch was zu sagen: Die
Maratasen aehneln verblueffend stark den Hani ;_)
Bis denne, hakkikkt (hat die Buecher alle (auf Deutsch) im Schrank stehen )

-----------------------------------------------------------------------------



Steven Karl Zoltan Brust (Yendi, 16. Nov 1995, 14:55:10):


Ich werde nicht muede, meinen derzeitigen Lieblingsauthor anzupreisen:

Steven Karl Zoltan Brust, ein Amerikaner ungarischer Abstammung.

Aus seiner Feder stammen einige der Sprueche, die man verschiedentlich
von mir oder Elric oder Ratboy@Kerovnia gehoert haben mag:

"No matter how subtle the wizard, a knife blade between his shoulders will
seriously cramp his style."  oder
"There is no substitute for good manners, except fast reflexes."

Wenn er nicht gerade trockene Witze macht, dann erzaehlt er in seinen "Vlad
Taltos"-Buechern packende Geschichten auf gutem bis sehr gutem sprachlichem
Niveau, angesiedelt in einer in sich stimmigen und farbig dargestellten Welt,
bevoelkert von faszinierenden Charakteren.

Seine "Phoenix Guard"-Buecher "The Phoenix Guards" und "500 Years After" sind
in einem sehr viel ausschweifenderen Stil geschrieben, angelehnt an die
Erzaehltradition und die Charaktere von Dumas, wieder sehr witzig und dabei
von einer meisterhaft ausgefeilten Sprache getragen.

In seiner letzten Novelle "Agyar" praesentiert sich Brust als stimmungsvoller
Erzaehler mit der Faehigkeit, in drei Worten ein Mass an Verzweiflung, Wut
oder unbaendiger Freude auszudruecken, welches weniger begnadete Schrift-
steller auch auf drei Seiten nicht erreichen koennen.
Ausserdem spielt er in diesem Buch, wie auch vorher in "Taltos" oder
"Athyra", mit der aeusseren Form, er verwebt die Erzaehlstraenge und -ebenen
vielfach, ohne dass es gekuenstelt oder unuebersichtlich wirkt.

Andere Details, die ich bei Brust liebe:
In "Cowboy Feng's Space Bar and Grille" stellt er jedem Kapitel die
passende Strophe eines Folksongs voran, in "Jhereg" sind es die Zeilen einer
Anweisung fuer die Kleiderreinigung ("Repair cut in left sleeve & remove
blood
stain from front").

Ach, ich koennte noch lange schwaermen, aber warum der langen Rede: Lest
selbst!
Allerdings fuerchte ich, dass diejenigen, die mit der englischen Sprache auf
Kriegsfuss stehen, an seinen Buechern verzweifeln werden -- oder sie lernen,
Englisch zu lieben.
Wie auch immer, es gibt m.W.n. keine Uebersetzung aus dem Englischen, und
IMHO wuerde sie auch nicht im Entferntesten an das Original heranreichen
koennen. (Hmmm... obwohl es beim LotR erstaunlich gut funktionierte...)

So, ich geh jetzt ein bisschen lesen.

YTY


-----------------------------------------------------------------------------



Re: Buchtip von Rudi (Grimmborn, 16. Nov 1995, 16:31:01):
#! rn=Rudiratter rt=816519625

Was Rudi vergass zu erwaehnen:
Die Mittelgewichtsehe (The 120-Pound marriage) und Lasst die Baeren los (wie
auch immer das heisst) sind nicht so doll.
Viele Motive wiederholen sich bei John Irving, was kein Nachteil ist.
A Prayer for Owen Meany heisst auf deutsch genauso, nur ohne "A Prayer for".
Der Neueste (was mit indischem Zirkus, mein Gedaechtnis laesst mich im Stich)
scheint auch gut zu sein, durch bin ich noch nicht.

Ach ja, und Rudis groesste Unterlassung war: Das mit deutlich beste Buch sind
die "Cider House Rules" (Gottes Werk und Teufels Beitrag, gar nichtmal
unpassend uebersetzt).

Grimmborn der Atheist gruesst Rudiratter, den Furz im Sturzflug

-----------------------------------------------------------------------------



Semira mag auch buecher... (Semira, 16. Nov 1995, 16:38:32):
Meine liebsten (z.T. schon genannt):

- Das Parfum (Patrick Suesskind)
- Der Azteke (Gary Jennings)
- Der satanarchaeoluegenialkohoellische Wunschpunsch (Michael Ende)
- HDR (Tolkien)
- Ayla und der Clan des Baeren und die 3 folgenden buecher (M.M.Auel)
-Palast der Winde (M.M. Keye) (das bei Auel muss heissen J.L. glaub ich)
- Falidae und Francis (Akif Pirincci)
- Der Stein von Duncton (mistichhabdennamenwiedervergessen)+

und was nicht unbedingt romaniges:

lest mal die Buecher/Gedichte von Joern Pfenning!

Ach ja, und das siegel fand ich wirklich nicht schlecht...wenn auch einiges
zu offen blieb :)

*knuddels*

Semira

-----------------------------------------------------------------------------



Re: Re: Das Siegel (Puma, 16. Nov 1995, 17:56:37):
#! rn=Yendi rt=816528177
Fuer weitere Hohlkop...aeh..bein-Fans sei auch das interessante Interview im
irren Weltraumproleten angepriesen. eigentlich viel zu kurz, aber doch eine
Delikatesse... jetzte gerade wieder in der Jubilaeumsausgabe des DiWp
veroeffentlicht.

Schicke einfach mail an Nudei@MorgenGrauen und auch Du kannst Dein
persoenliches Exemplar binnen weniger Tage im Schrank stauben haben....
(*huestel*)

          In diesem Sinne

             Puma (DiWp-Kultist) ;)



-----------------------------------------------------------------------------



Re^3: Das Siegel (Wargon, 17. Nov 1995, 12:14:49):
#! rn=Li rt=816512424
Aus dem Midkemia-Zyklus sind bisherzumindest auf deutsch und bei Heyne
mindestens sechs Baende erschienen. Gegenueber frueheren deutschen Ausgaben
haben sich die Namen allerdings gaendert...
Band 1 heisst bei Heyne "Der Lehrling des Zauberers" (oder ...des Magiers?),
Band 3 "Die Gilde des Todes", Band 6 "Des Koenigs Freibeuter" und die Namen
der anderen drei Baende weiss ich jetzt nicht mehr... ;)
  Wargon

-----------------------------------------------------------------------------



Re^4: Buchtip II (Boing, 17. Nov 1995, 13:14:22):
#! rn=Li rt=816509544
Jau, Stein und Floete ist supergut, kann ich nur empfehlen.
  Boing

-----------------------------------------------------------------------------



Re^3: Buchtip II (Aranya, 17. Nov 1995, 15:50:04):
#! rn=Lwaxana rt=816446571
Hae? Seit wann sind die Unendliche-Geschichte-Filme nett?

Aranya
      findet die bescheuert
NNN.

-----------------------------------------------------------------------------



Noch n Buchtip (Aranya, 17. Nov 1995, 16:11:41):
Ich war bei meinem letzten Beitrach zum Thema noch nicht durch, deshalb
jetzt im Nachhinein:
Lawrence Norfolk: Lempieres Woerterbuch
Das Buch hat mich jede Menge Zeit gekostet, es ist schon ziemlich schwierig
zu lesen und ich werde nicht umhin kommen, es nochmal zu lesen, um es halb-
wegs zu kapieren. Es ist in jeder Menge Erzaehlebenen geschrieben und man
weiss eigentlich nicht so genau, was jetzt die Hauptgeschichte ist. Viel-
leicht vergleichbar mit dem schon vorher gescholtenen Focaultschen Pendel.
Es hatte sicher auch seine Laengen, aber nach dem Durchlesen hatte ich ein
aehnliches Gefuehl wie nach dem Namen der Rose: schwierig, aber lohnend zu
lesen.
Die Zeit, in der das Buch spielt, ist kurz vor der Franzoesischen Revolution
(andere Handlungsebene: ein paar Generationen vorher), es spielt in London
(und La Rochelle, Istanbul und so weiter) und es geht um den profunden Ken-
ner der antiken Sagen John Lempriere, dessen Familie in einem Zusammenhang
mit einer geheimnisvollen Organisation steht. Welcher Zusammenhang wird na-
tuerlich jetzt nicht verraten, klar.
Lest's euch mal einfach durch.

Aranya
NNN.

-----------------------------------------------------------------------------



Re: Noch n Buchtip (Tasha, 17. Nov 1995, 18:02:06):
#! rn=Aranya rt=816621101
Ich stimme Aranya zu, das Buch ist zu 99% absolute Spitze. Die detailreiche
Beschreibung des Lebens zu der ZEit ist wirklich irrsinnig schoen.
Was an dem Buch aber leider SEHR traurig ist, ist das Ende. Das ist naemlich
das schlechteste Ende eines Buches, das mit je unter die Augen gekommen ist.
Trotzdem: Der Rest des Buches rechtfertigt das Lesen absolut.

Buecher wurmend, Tasha

-----------------------------------------------------------------------------



Attanasio (Elric, 17. Nov 1995, 20:56:38):
 Nun ist es wohl auch fuer mich an der Zeit, einen meiner Lieblingsautoren
vorzustellen: A.A.Attanasio.
 Bisher haber ich zwei Buecher von ihm gelesen; Wyvern und Radix.
Wyvern spielt im 17. Jahrhundert auf der Erde und erzaehlt die Geschichte
von Jaki, dem Sohn eines englischen Offiziers zur See und einer Ureinwohnerin
von Borneo. Extrem stimmungsvoll, ein wenig romantisch, und ein weing
traurig.
 Radix ist eine SciFi-Geschichte und beschreibt den Werdegang von Sumner
Kagan, der als fast ekelhaft fettes Kind
in den Slums aufwaechst und sich als "The Sugarat" fuer erlittene
Demuetigungen raecht
und durch eine Reihe von Schicksalsschlaegen zu fast gottaehnlichem Status
aufsteigt.
Besonders in Radix beeindruckt der Reichtum des Hintergrundes, der teilweise
den Herrn der Ringe
ziemlich muede aussehen laesst und der Mangel an Kitsch.
In beiden Buechern ist das Hauptthema die Persoenlichkeitsentwicklung einer
Figur, die staendig zwischen den Welten steht, die niemals irgendwo ernsthaft
zuhause ist, und der dieser Umstand zu ihrer fast schwindelerregenden
Entwicklung und letztendichen Tragik verhilft.
 Philosophisch, spannend, sehr einfuehlsam, liebevoll gestaltete
Nebenrollen; Wahnsinn.
 Wer gut englisch lesen kann, sollte sich die beiden Buecher nicht entgehen
lassen.

 Ausserdem kann ich an Freunde des Horrors noch Clive Barker empfehlen
(ziemlich abgefahrener Englaender mit einem zweifelhaften Verhaeltnis
zum Thema Sexualitaet und entschieden zu hohem Drogenkonsum)

 An Comicleser kann ich die "Zeit der Asche"-Trilogie von Chevalier&Segur
empfehlen. Gory, good, solid stuff.
 Steven Brust ist Klasse.
 Ceterum censeo Hohlbein esse neglegendum.
 Elric.

-----------------------------------------------------------------------------



grr. (Elric, 17. Nov 1995, 21:00:29):
Sorry fuer das Layout und den zeitweilig verlorenen Ueberblick. Zu viel los
auf den Kanaelen.
 Ceterum censeo Hohlbein esse neglegendum. Elric.

-----------------------------------------------------------------------------



Re: Re: Das Siegel (Schrumpfi, 18. Nov 1995, 13:18:50):
#! rn=Li rt=816512247
Da haste recht Li!! Ich les zwar auch ganz gern W.Hohlbein aber wenn er H.P
Lovecraft mit einbaut und was er beim Hexer so ueber ihn schreibt, da dreht
sich bei mir der Magen um und der gute H.P wuerd sich mit Sicherheit im Grab
umdrehn!
Schrumpfi liebt H.P Lovecraft

-----------------------------------------------------------------------------



Re^3: Das Siegel (Cuchullin, 18. Nov 1995, 13:21:41):
#! rn=Schrumpfi rt=816697130

Egal, wie grausam Hohli mit Geschichte und Sagen umgeht, ich finde
"Drachenfeuer" ist ein recht gelungenes Kinder- und Jugendbuch. Zumindest hab
ichs immer wieder gerne gelesen.

Cuch.-


-----------------------------------------------------------------------------



Re^4: Das Siegel (Schrumpfi, 18. Nov 1995, 13:25:14):
#! rn=Cuchullin rt=816697301
Naja, die Moorhexe find ich auch ganz gut von ihm aber mit dem Cthulhu-Mythos
kann er sich schleichen, da hat er keinen Auftrag :-)

-----------------------------------------------------------------------------



Re^4: Buchtip II (Lwaxana, 18. Nov 1995, 21:41:33):
#! rn=Acrimon rt=816481202
Also hier moechte ich mal was klarstellen:

Ich finde die Filme verglichen mit dem Buch auch armselig, ums mal Harmlos
auszudruecken, aber ich fand zumindest den ersten so als Film nicht  schlecht,
wenn man das Buch nicht kennt...

-----------------------------------------------------------------------------



Bitte! Nie SCI-FI (Lug, 19. Nov 1995, 03:53:00):
Also bitte,
schreibt SF aber nicht Sci-Fi.Das gehoert sich naemlich nicht. ;)
Lug

-----------------------------------------------------------------------------



Re: Re: Das Siegel (Nudei, 20. Nov 1995, 07:59:59):
#! rn=Li rt=816512247
Lieber LI!

GRATULATION!!!!

Was besseres habe ich seit dem Interview mit W.Hohlkopf (oder auch Holzebin,
sein andererr Kuenstlername) im DiWp noch nicht gesehen.
Aber es ist eine beleidigung fuern Konsalik, in einem Atemzug mit Hohlkopf
genannt zu werden, das ist Dir doch wohl klar....

Nudei, Schriftleitung DiWp

-----------------------------------------------------------------------------



Re^3: Das Siegel (Nudei, 20. Nov 1995, 08:12:31):
#! rn=Nudei rt=816850799
Oooops, am sollte immer alle Artikeln lesen, bevor man Lob austeilt...
Natuerlich auch Dank an Puma, der dezent drauf hinweist, wofuer ich warb...

uebrigens, meine liebste Fantasy-Lektuere ist Karl Marx: Arbeit, Lohn und
Mehrwert....

:)
Nudei, Schriftleitung DiWp

-----------------------------------------------------------------------------



auch ein buechertip (Nixihou, 20. Nov 1995, 17:17:45):
also wenn alle buchtipps abgeben, hier also meiner:
der Daemonenzyklus von robert asprin, und die beiden buecher die zur
Phuls company serie gehoeren.
beide serien sind zumindest sehr erheiternd, auch wenn asprin beim daemonen
cyclus stark nachlaesst (die spaeteren baende sind nicht mehr so voller witz)

nixi, auch buchsenf senfend

-----------------------------------------------------------------------------



Re: auch ein buechertip (Caradhras, 20. Nov 1995, 20:08:36):
#! rn=Nixihou rt=816884265
Was ist auch noch empfehlen kann, ist 'Die Herren von Fionavar', ein
upps, eine Trilogie, aehnlich dem Herrn der Ringe und doch wieder ganz
anders, moderner und mit Elementen der Arthur/Lancelot/Guinevere-Saga.

Das ganze ist von Guy Gavriel Kay, 3 Baende, erster Band heisst
'Silbermantel',
upps, wie der zweite heisst weiss ich grade nicht :) und der dritte
heisst: Ein Kind von Licht und Schatten.

Wer Vergleiche anstellt mit dem HDR wird merken, dass es viele Aequivalente
gibt, ein Aequivalent zu Morgoth, zu Gandalf, zu Saruman, den Elfen, den
Orks, Trolls, den Zwergen unter Moria mitsamt Kheled-zaram, den Rohirrim
und noch vielem anderem. Guy Gavriel Kay hat gemeinsam mit Christopher
Tolkien die Unterlagen/Notizen ... fuer das Silmarillion geordnet und
verfasst, die Aehnlichkeit ist sehr stark, aber wie gesagt, es ist ganz
anders. Nicht von dieser epischen Breite des HDR, eher Richtung Unterhaltung,
aber kein Trivialroman.

       Lest es einfach        tschoe     Caradhras

-----------------------------------------------------------------------------



Frage (Flagg, 21. Nov 1995, 10:58:36):
Hallo erstmal...
Da hier scheinbar sehr viele Buecherwuermer sind, haette ich da mal ne
Frage.....
Also : Ich moechte gerne wissen, wie gut/schlecht folgendes Buch ist :
A.E.Poe : Die Abenteuer des Gordon Pym   oder so aehnlich

Lohnt sich das zu lesen/kaufen ????
Bitte um Infos....
	Flagg

-----------------------------------------------------------------------------



Re: Frage (Boing, 21. Nov 1995, 13:34:15):
#! rn=Flagg rt=816947916
Also ich hab das vor Jahren mal gelesen und fand es spitze, uebrigens
fast alles von Poe. Insofern kann ich nur zum Kauf (oder Ausleihen)
raten. :)
  Boing

-----------------------------------------------------------------------------



Re^3: Das Siegel (Mupfel, 21. Nov 1995, 19:24:39):
#! rn=Puma rt=816540997
SOWAS liest du? *entsetztsei* :-)

nudei hat anlaesslich dustys geburtstag dieses 'magazin' unter die leute
geworfen... ich fands grausam... naja

-mupfel-

-----------------------------------------------------------------------------



Re: Noch n Buchtip (Mupfel, 21. Nov 1995, 19:27:08):
#! rn=Aranya rt=816621101
fand ich auch sehr gut, wenn auch nicht ganz einfach zu lesen...

-mupfel-

-----------------------------------------------------------------------------



Re^4: Das Siegel (Hardil, 21. Nov 1995, 19:35:59):
#! rn=Mupfel rt=816978279

Ohje, ohje,

Nudei hat mir gedroht, auch eins zu schicken. Isses wirklich so schlecht,
Mupf?

-Hardil.

-----------------------------------------------------------------------------



Buchtips (Ketos, 21. Nov 1995, 22:47:45):

Hier mal meine Hotlist von Buechern:
Momo, Michael Ende   - Schoenes Maerchen ueber die Zeit
Das Parfuem: Patrik Sueskind   -  Danach riecht man die Welt mit anderer Nase
Sofie's Welt:              - Philosophie schoen erzaehlt
Die Entdeckung der langsamkeit  - Es geht um ein mensch der sehr langsam ist,
                                  aber dafuer die ruhe weg hat wenn andere
			
			panik bekommen   -   (lag mal positiv)
tohuwabohu:   englischer humor fuer die traenendruesen, teils derb
waechter von jeden, Jonnes Butta     - no comment
Es geht auch ohne Frauen,     Verfasser wurde von Emanzen begraben...
God O-Man's , Terry Pratchett:      Klamauk ueber Gut und Boese, teils lang

Noch ein Filmtip:
Shallow Graves:    Thriller vom feinsten, aestetische, ein Morder wie Du.

- Ketos -

-----------------------------------------------------------------------------



Noch mehr Buecher... (Kretek, 22. Nov 1995, 02:47:50):
Aeh... Wenn ich jetzt zugebe, dass ich gern Marion Zimmer Bradley lese,
werde ich dann destructed?

Kretek

-----------------------------------------------------------------------------



Re: Frage (Li, 22. Nov 1995, 09:26:50):
#! rn=Flagg rt=816947916
kommt drauf an, was du erwartest:
Arthur gordon Pym wurde zu einer Zeit geschrieben, als einige Teile des
Globus noch weisse Flecken gab. Poe hat mit seiner Phantasie diese Flecken
beschrieben, von denen wir heute wisen, dass es dort anders aussieht.
Wen soetwas stoert, dem ist von dem Buch abzuraten. andererseits gilt A.G.Pym
als der erste Abenteuerroman, und wer fuer ein "klassisches" abenteuer zu
haben ist, sei es nahe gelegt.
Ich find ihn gut.
mit einem Tekeli-li verabschiedet sich
Li
P.S. Uebrogens hat kein anderer als H.P. Lovecraft in einer seiner
Geschichten
  Deutlich Bezug auf Poe genommen (Das sollte einiges ueber die Atmosphaere
im Pym verraten)

-----------------------------------------------------------------------------



Re: Buchtips (Li, 22. Nov 1995, 09:29:06):
#! rn=Ketos rt=816990465
Zum Thema Tohuwabohu faellt mir das bekannteste(IMHO auch beste Buch) tom
sharpes ein: PUPPENMORD
ein absolut empfehlendes WErk fuer Freunde des beruehmten englischen,
schwarzen Humors!
Li

-----------------------------------------------------------------------------



Re: Noch mehr Buecher... (Li, 22. Nov 1995, 09:31:16):
#! rn=Kretek rt=817004870
Huups, ich will nicht destructet werden! :-) die aeltern buecher von Bradley
sind naemlich gut bis Spitze.
Li (findet, das es seit Nebel von Avalon mit ihr bergab ging)

-----------------------------------------------------------------------------



Re^4: Das Siegel (Nudei, 22. Nov 1995, 09:51:01):
#! rn=Mupfel rt=816978279
Isser nich!
Protest!
Konstruktive Kritik bitte!

Nudei, Schriftleitung DiWP

-----------------------------------------------------------------------------



Re^5: Das Siegel (Nudei, 22. Nov 1995, 09:52:09):
#! rn=Hardil rt=816978959
Nein, ist  es nicht, ist es nicht ist es nicht *auf den Boden stampf wie
Rumpel Stilz)
Selber ueberzeugen, selber ueberzeugen!

Nudei, Schriftleitung DiWp

-----------------------------------------------------------------------------



Re: Re: Buchtips (Murkes, 22. Nov 1995, 10:27:19):
#! rn=Li rt=817028946
Naja, PUPPENMORD mag ja das beste Buch von Tom Sharpes sein, ich fand esauch
ganz nett, aber halt nur NETT.
Murkes (versteht die Begeisterung nicht so recht, bleibt halt
Geschmackssache)

-----------------------------------------------------------------------------



Re: Noch mehr Buecher... (Mindolluin, 22. Nov 1995, 10:53:55):
#! rn=Kretek rt=817004870
Stimmt, die aelteren Buecher von MZB sind ziemlich gut, aber nicht
alle, ich denke da zB an 'Der Bronzedrache', passt von Stil her gaaar
nicht zu ihr. 'Trommeln in der Daemmerung' (kein F/SF) ist auch nicht
gut. Und noch einer ihrer ersten Darkover-Romane, hm, welcher war
das nochmal? Das Schwert der Aldones glaube ich. Ist ihr furchtbarstes
Buch IMHO.

   tschoe             Caradhras

-----------------------------------------------------------------------------



Re^3: Buchtips (Li, 22. Nov 1995, 12:05:35):
#! rn=Murkes rt=817032439
richtig, Wenn man bei buechern ueber geschmackssache sprechen kann, dann bei
Tom Sharpe!

-----------------------------------------------------------------------------



books... (Kotzbrocken, 22. Nov 1995, 14:39:26):
ok, hier noch mal nen paar buchtips von mir, 2 'aeltere' und 2 neue buecher.
1. the new york trilogy: dies sind 3 geschichten, im weiteren sinne detektiv-
romane aber ungeheuer abgedreht und niederschmetternd (fand ich). ist sicher-
lich, aeh, meine wird sicherlich nicht jedem gefallen weil teilweise so ab-
gespaced.
(empfehlung bezieht sich aber auf's original, uebersetzung kenne ich nit)
2.watership down: die geschichte einer gruppe von kaninchen, die ihren
heimischen bau verlaesst, um sich ne neue bleibe zu suchen.
klingt vielleicht nach einem maerchen oder einer kindergeschichte, ist es
aber
beides nicht und wiederum doch...alles klar? ;) auf jeden fall phantastisch.
autor heisst adams, vorname vergessen, autor von 1. ist auster,paul.
2. hab ich auch nur im orig gelesen.
3. hoffmanns hunger: kam glaub ich voriges jahr raus oder so...eine story
ueber einen botschafter, der den tod seiner toechter nicht verschmerzen kann,
und sich mit einzig und allein mit essen troesten kann. naja, es geht schon
noch um etwas mehr, ist im kurzen aber schlecht zu schildern...

name des autors hab ich leider vergessen, ist ein hollaender.
4.the afterlife: eine sammlung amerikanischer kurzgeschichten, eine der
wenigen interessanten amerikanischen errungenschaften ;). die meisten sind
melancholisch/nachdenklich.
autor ist john updike, ein absoluter lieblingsautor von mir...

ok, falls sich irgendjemand was davon antun moechte viel spass
          Gruss
               Kotzi.

-----------------------------------------------------------------------------



Buchtip Nr. ... (Aranya, 22. Nov 1995, 18:31:16):
Gerade ausgelesen, noch ganz warm!
Ich habe mir gestern mittag das Kartengeheimnis von Jostein Gaarder (ganz
richtig, der von Sofies Welt) gekauft und bin heute morgen damit fertig ge-
worden (ein halbes Buch zum Einschlafen, das andere halbe Buch nach dem Auf-
wachen).
Im Kartengeheimnis kommt Sofies Welt mal wieder zum Vorschein. In einer an
und fuer sich normalen Geschichte tauchen widersinnige Ereignisse auf, die
sich gegen Ende des Buches aufklaeren. Nun ja.
Ausserdem lassen sich die verschiedenen Figuren des Buches (der Vater und
der Ich-Erzaehler (Sohn) der ersten Erzaehlebene) mal wieder gaardersch ue-
ber die Philosophie aus. "Es gibt doch Ministerien fuer alles Moegliche.
Warum wird kein Ministerium fuer Philosophie eingerichtet?"
Man erfaehrt interessante Ansichten ueber Joker, Rosinenbroetchen und Limo.
   Tja. Wer eine zweite Sofie erwartet, wird IMHO enttaeuscht, aber das Buch
ist freundlich und gut geschrieben, man erfaehrt wieder einiges Neues und
es ist in dem erfreulichen Gaarderschen Stil geschrieben.
Aranya-Testurteil: Empfehlenswert

Aranya
NNN

-----------------------------------------------------------------------------



Re: Re: Noch mehr Buecher... (Baron, 22. Nov 1995, 20:46:34):
#! rn=Mindolluin rt=817034035
Darf man hier eigentlich nur noch schreiben wenn mindestens achtmal pro
Artikel das Wort IMHO vorkommt :)=? *kicher*
Mal ganz abgesehen davon finde ich die Darkover Romane (fast) alle auch sehr
nett. Und natuerlich die beiden 'Jaeger des reten Mondes' Folgen sind klasse.
Nicht gerade Weltliteratur, aber wer will schon immer beim Lesen gruebeln
muessen :).
Baron - haelt heute mal zu Li

-----------------------------------------------------------------------------



Re: Re: Noch mehr Buecher... (Kretek, 22. Nov 1995, 20:59:23):
#! rn=Mindolluin rt=817034035
Ich dachte dabei ja auch eher an "Die Nebel von Avalon", "Die Feuer von
Troja"
oder ihre diversen Kurzgeschichten, daraus vor allem den Zyklus um
Lythande... Speziell letzteres ist fuer mich Phantasy vom Feinsten!

So.
Kretek

-----------------------------------------------------------------------------



DiWp (Nudei, 23. Nov 1995, 07:37:19):
Lieber Leser un Innen!

Der DiWp (DER IRRE WELTRAUMPROLET, das Spizenzine) bereitet seine
Novemberausgabe vor!

Atmenberaubende Stories, haarstraeubende Artikel und irre Facts zum Thema
Fantasy und Rollenspiel, enervierende Tippfehler und ueberraschende Plots am
laufenden Band warten auch Euch!

Heute noch bestellen!!! Probeexemplar gratis!!!
[Die restlichen kosten auch nur Porto, man ist ja sozial und nicht
unverschaemt]

Kritiken:
Mupfel: ...grausam!
Puma: Stark!
Terkal: Argl *Neid*!
Nudei: A Waounsinn!


Gruss an alle

Nudei, Schriftleitung DiWp

-----------------------------------------------------------------------------



Spielend leben - leben, wie man spielt? (Hakkikkt, 28. Nov 1995, 11:49:45):
Hi,
der nachfolgende Text war gestern Anstoss fuer eine interessante Diskussion
mit einigen Freunden.
Vielleicht ist er ja auch hier fuer einige Denkanstoesse gut.
Nur um gleich irgendwelchen Miss verstaendnissen vorzubeugenDer Text spiegelt
nicht meine pershnliche meinung wider!

Spielend leben -
leben, wie man spielt?

Ein Kinderspiel-
oder ein Spiel zwischen Erwachsenen?
Wo ist der Unterschied?
Als ich ein Kind war, dachte ich wie ein Kind,
spielte ich wie ein Kind.

Nun bin ich erwachsen, denke, wie man denkt,
und spiele, wie man spielt-

Mit Konzentration oder Desinteresse,
mit Schwung oder Gleichgueltigkeit,
mit Partnern oder Gegnern,
Gewinn oder Verlust.

Spielend leben.
Folge ich dieser Aufforderung,
stelle ich fest:

Spiel-entwicklungsgeschichtlich
aus dem Wort Tanz entstanden:
Die fuesse setzen, figuren beschreiben,
Musik hoeren, Feste feiern.

Also:
Ich lebe spielend und tanze durch meine Zeit?

Ich wiederhole und stottere:
Ich tanze durch meine Zeit?
Ja, wenn ich mich freue,
wenn ich Ferien habe, die Sonne scheint
und das Meer in den Funken des Lichts glitzert,
wenn ich eine Pruefung hinter mir habe,
wenn ich verliebt bin.
Ich tanze, ich spiele-ich lebe?

Pltzlich verstehe ich,
ich darf nicht trennen
Tanzen und Spielen
von Angsthaben und Alleinsein.
Leben meint Sonne und dunkle Wolken,
Tag und Nacht.

Ich will in der Nacht nicht den Tag vergessen.
Ich weiss, dass der Wind die Wolken schiebt.
Meine Fuesse sollen leicht sein.

Irmhild Baerend





-----------------------------------------------------------------------------



Spielend leben (Hakkikkt, 28. Nov 1995, 11:51:51):
HI,
jetzt habe ich doch beim Abtippen noch einige Fehler in den Text reingebaut.
Ich hoffe das ist nicht ganz so schlimm.
Mit meinem Terminal ist es leider schwierig einmal eingegebene Zeichen wieder
zu loeschen.
Bis denne, Hakkikkt

-----------------------------------------------------------------------------



Re: Noch mehr Buecher... (Roesti, 30. Nov 1995, 12:45:32):
#! rn=Kretek rt=817004870
Marion Zimmer Bradley les ich doch auch und mir passiert nix..

Roesti wundert sich wo die ganzen steine herkommen:)

-----------------------------------------------------------------------------



SUCHE BUCH (Hobo,  5. Dez 1995, 18:46:32):
Und zwar ein ganz bestimmtes:
Es heisst: Sechs kamen geflogen
Ist von: Marquis marc Swiney of Mashanaglass (oder so aehnlich)
und wurde 1973 vom Rohwolt-Verlag verlegt....
Und ich braeuchte es ganz dringend bis Weihnachten.. Wuehlt also bitte mal
den Buecherschrank zuhause durch und meldet Euch bittebittebitte schnell bei
mir!

Tschuessi

 Hob

-----------------------------------------------------------------------------



Auchn Buchtip (Hobo,  5. Dez 1995, 18:53:42):
Ich haette hier mal ein Buch zu empfehlen, was bisher noch keinem gefallen
hat, dem ichs zum Lesen ausgeliehen habe. Aber ich persoenlich finde es
Klasse, weil es so gar nichts mit anderen Sachen zu tun hat...
Es heisst PanAroma und ist von.... aehm Dingens, weiss nicht mehr.
Darin geht es um Rote Bete, Pan, das ewige Leben, ein Parfuem und tausand
andere Dinge und es ziemlich schrill.... und wie gesagt: mir gefaellt's!
Versucht's doch mal!
Tschuessi :)


 Hobo (diesmal ganz)

-----------------------------------------------------------------------------



Re: SUCHE BUCH (Grimmborn,  6. Dez 1995, 10:18:14):
#! rn=Hobo rt=818185592

Na, solls ein Geschenk fuer Deinen sogenannten "Boing" sein?
Dann ists hier aber ziemlich unauffaellig... ;-)

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Auchn Buchtip (Pennywise,  6. Dez 1995, 17:14:38):
#! rn=Hobo rt=818186022
Das Buch "Panaroma" ist uebrigens von Tom Robbins. Es ist wirklich
ausgezeichnet, was erstaunlich ist, wenn man Tom Robbins' andere Buecher
liest; die sind lange nicht so gut!

Besonders gelungen finde ich den Vortrag ueber den wahren Grund des
Aussterbens der Dinosaurier. Einfach genial.


Just my bit of mustard...
Pennywise :)

-----------------------------------------------------------------------------



wieder mal ein Buchtip von mir ... (Alboin,  7. Dez 1995, 06:18:08):
Hallo Leseratten!
Damit diese Rubrik nicht ganz den SF/Fantasie-Fans ueberlassen wird, moechte
ich wieder mal ein beletristisches Buch vorstellen.
Das Buch heisst 'Die Legende vom Glueck ohne Ende' und ist von Ulrich
Plenzdorf.Es ist neben 'Die Leiden des jungen W.' auch ein Kultbuch zu
DDR-Zeiten gewesen.Die erste Haelfte des Buches wurde uebrigens als 'Die
Legende von Paul und Paula' verfilmt, und ist auch als Drehbuch als
Suhrkamp-Taschenbuch erhaeltlich, wie die beiden obenegenannten Buecher auch.
Sowohl den Film als auch das Buch sollte man sich nicht entgehen lassen, vor
allem wenn man wissen will, 'wie es so damals in der DDR lief' ,denn das Buch
hat neben der unkonventionellen Liebesgeschichte als Rahmen auch ziemlich
gewitzte und etwas versteckte Systemkritik zum Inhalt.Da mag es verwundern,
dass das Buch welches 1973 erschien, nicht verboten wurde.
Das Schoene an dem Buch ist, dass es sich um einen wunderbare, einfache und
unrealistische Geschichte ist, die faszinierenderweise doch nicht so
unrealistisch ist wie es scheint.Also lest es einfach mal selber.Es lohnt
sich!
Ueberhaupt sollte man sich den Namen 'Plenzdorf' in Erinnerung behalten, denn
er ist genaugenommen eher Drehbuchautor und Theaterstueckeschreiber als
'normaler' Schriftsteller.Wenn ich richtig gehoert habe , hat er bei dem
Fernsehfilm neulich -eine Verfilmung eines Theaterstuecks von Fallada mit
Harald Juhnke als Saeufer- auch mitgewirkt.

So das war es erstmal wieder
Euer Al-boin mit den 40 Buechern ;-)

P.S. Und immer mal wieder in den 'kleinen Prinzen' schauen, kann amn gar
nicht oft genug sagen ;-)

-----------------------------------------------------------------------------



Re: wieder mal ein Buchtip von mir ... (Sique,  7. Dez 1995, 17:50:00):
#! rn=Alboin rt=818313488
Die "Legende vom Glueck ohne Ende" ist SPAETER als der Film "Paul und Paula"
enstanden. Ulrich Plenzdorf hat das Drehbuch zu einem Roman umgeschrieben.

                                         Sique (um Exaktheit bemueht)

-----------------------------------------------------------------------------



Boing mal anders :-) (Yantro,  8. Jan 1996, 10:25:30):

Ich hab zugegebenermassen in einem anderen Mud was schoenes gefunden:

Zwergengedanken (Boing,  5. Dez 1996, 15:14:06):
Was einem so einfaellt, wenn man allein mit Erzmagiern hier ist: ;)

Ich bin ein armes Schwein,
und ich bin ganz allein.
Der Erzmagier red't nicht mit mir,
ich frage mich, was will ich hier?
Den Ifrit krieg ich auch nicht platt,
doch will ich haben was er hat.
Nun ist er tot und das ist gut,
ich schaende die Leiche in meiner Wut,
wo ist der Schatz, der mir versprochen,
ich hab das Gold doch von Weitem gerochen!
Doch leider ist die Zeit nun aus,
ich dreh mich um und geh nach Haus.

  Boing


ich hoff, dass Boing mich dafuer nicht killt, denn ich find es ist schoen :-)

-----------------------------------------------------------------------------



Eines Abends im MorgenGrauen (Wanderer,  6. Feb 1996, 22:06:26):
Als ich neulich abends auf der Hochebene im Schutze eines Steines
mein Nachtlager aufschlug, da hoerte ich von der andern Seite des
Steines Singen. Ein andere Wander hatte sich dort wohl schon vor mir
zur Rast niedergelassen. Sein Lied will ich Euch nicht vorenthalten:

In fremder Welt da traf ich sie,
Fasste zu ihr Vertrauen.
Noch war ich jung und unbedarft,
Wusst' nichts vom MorgenGrauen.

In jener Welt da schien sie mir
die schoenste aller Frauen.
In jener Welt sprach sie zu mir,
Sprach auch vom MorgenGrauen.

Ging sie wohl fort aus jener Welt?
Sie ward nicht mehr zu schauen.
So suchte ich und fand ihr Licht,
Es schien im MorgenGrauen.


So sass ich in Gedanken da.
Wollt ich sie wiederschauen?
So machte ich mich auf den Weg,
Brach auf ins MorgenGrauen.

Nun ziehe ich auf meinem Weg
Durch Berge, Waelder, Auen.
Ich seh ihr Licht doch seh sie nicht,
Seh nur das MorgenGrauen.

So bleibt mir nur auf meinem Weg
Der Welt mich zu beschauen.
Komm ich je wieder von hier los?
Verflucht das MorgenGrauen!

-----------------------------------------------------------------------------



Re: Eines Abends im MorgenGrauen (Acrimon,  6. Feb 1996, 22:25:19):
~#! rn=Wanderer rt=823640786
~#! tid=823640786
DAS IST ES!

Das Nationallied des MorgenGrauen ist geboren.
Wanderer, du schreibst Geschichte und sprichst vielen aus der Seele!

Gelobet sei dieser Tag!

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re: Re: Eines Abends im MorgenGrauen (Wur,  8. Feb 1996, 20:32:24):
~#! rn=Acrimon rt=823641919
~#! tid=823640786
Na wenn Du ein Nationallied unbedingt brauchst um selig zu werden, Acrimon,
dann singe solange wie Du kannst, aber wennes geht in einer Ecke wo ich nicht
zuhoehren muss.

Wur

-----------------------------------------------------------------------------



Re: Re: Eines Abends im MorgenGrauen (Gast3,  8. Feb 1996, 23:32:30):
~#! rn=Acrimon rt=823641919
~#! tid=823640786
Moment, moment!!!
Wenn hier ein Nationallied eingefuehrt werden soll, dann moechte ich daran
erinnern, dass auch ich vor knapp einem Jahr ein solches, vielverspottetes
geschrieben habe. Im Ernstfall waere dann wohl eine Abstimmung faellig.

Troubadix.

P.S.: Dass Gast3 im Titel genannt wird, ist nicht zu vermeiden gewesen.

-----------------------------------------------------------------------------



Re^3: Eines Abends im MorgenGrauen (Acrimon,  9. Feb 1996, 00:03:21):
~#! rn=Gast3 rt=823818750
~#! tid=823640786
Dann stelle es nochmal zur Wahl, Troubadix, und poste es hier!

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re^4: Eines Abends im MorgenGrauen (Jimdigriz,  9. Feb 1996, 00:03:56):
~#! rn=Acrimon rt=823820601
~#! tid=823640786
tus lieber nicht, ich erinner mich mit grausen.

JdG.

-----------------------------------------------------------------------------



Re^5: Eines Abends im MorgenGrauen (Amazora,  9. Feb 1996, 00:10:40):
~#! rn=Jimdigriz rt=823820636
~#! tid=823640786
Ich auch, war furchtbar. Wenn Du es echt wissen willst, Acrimon, dann soll er
es Dir mailen! Ich mag mir diesen patriotischen Scheiss nicht nochmal
durchlesen.
Amazora

-----------------------------------------------------------------------------



Mumpf (Laila,  9. Feb 1996, 13:56:08):
Hallo Leute!
Da Postet einer mal etwas schoenes und dann dies:
Mecker, motz, 'woa-ist-ja-S*****'
Wo bleibt denn euer Kultur-Gefuehl :))

Und jetzt STILLE !

Gnaedigst eure Laila

-----------------------------------------------------------------------------



Damit's hier nicht so leer ist (Wanderer, 26. Feb 1996, 18:34:13):
Voruebergehn ('ne Art Gedicht)

Was ist Dir ein leichter Regen
Er wird voruebergehn
Du Schuettelst die Tropfen ab
Als waern sie nie geschehn

Was tut Dir ein kuehler Wind
Er wird voruebergehn
Du ziehst die Jacke um Dich
So wird Dir nichts geschehn

Was bin ich in Deinen Augen
Hast Du mich je gesehn
Du laesst mich, laesst meine Freundschaft
An Dir voruebergehn

-----------------------------------------------------------------------------



Re: Damit's hier nicht so leer ist (Amonsul, 27. Feb 1996, 09:43:49):
~#! rn=Wanderer rt=825356053
~#! tid=825356053
Hui, bist Du Huepfer?

-----------------------------------------------------------------------------



Bloedsinn (Grimmborn, 27. Feb 1996, 15:37:14):

Also, ich hab mich mal entschlossen, hier in loser Folge den einen oder
anderen Sontext hinzuschreiben. Das hat natuerlich keinen praktischen Nutzen
und ist mehr eine intellektuelle Selbstbefriedigung (oder so), aber ich
dachte, was solls.
Da mich natuerlich nicht eure Meinung dazu interessiert koennt ihr euch die
replies und mails sparen. Wenns euch nervt duerft ihr gerne eine Diskussion
ueber den Befehl "ignoriere name.artikel.rubrik" vom Zaun brechen... ;-)

Also, auf gehts!

Ich Dunn Alles Fuer Dich
------------------------

Ich well dich sinn, hann, foehle, roeche, schmecke
Kuennt dich Daachs un Naaks vun Kopp bes Foss afflecke
Kuennt dir 16 Stunde in de Oure luure
Do bes die schoenste Frau,
dr Ress sin nur Fijure
Ich weiss, et haett mich erwisch
Ich dunn alles fuer dich

Ich stonn em Fuer, wenn do mich nur aanpacks
Ne Wink jenoech un ich kumme met dr Tax
Wenn ich dich sinn, dann triff mich dr Schlaach
Et weed mer nie zovill,
vun mir us jede Naach
Ich weiss, et haett mich erwisch
Ich dunn alles fuer dich

Dat haett ich nie jedaach dat mir sujet passeet
Ich jenesse jede Ourebleck
Wer weiss, wann et widder anders weed

Op froeh, op spaet, am Ovend un am Morje
Wenn ich bei dir ben, maach ich mer kein Sorje
Alles droemeroem es nur noch Kulesse
Dat wat wirklich zaehlt, passeet he en de Kesse
Ich weiss, et haett mich erwisch
Ich dunn alles fuer dich

(Viva la Diva)

Ach ja, ich vergass zu erwaehnen: Der Test ist in einer lokalen Geheimschrift
verfasst, also brauchen sich Bayern und Fischkoeppe erst gar keine Muehe zu
geben. Dechiffrieren ist ausserhalb der Moeglichkeiten. *unschuldig pfeif*

Grimmborn der Atheist

-----------------------------------------------------------------------------



Schon wieder einer (Grimmborn, 29. Feb 1996, 17:06:05):

Und noch ein Text in der Sprache, die sie hier in der Gegend als "schoen"
bezeichnen. Viel Spass beim nicht lesen!

Staenekrank
-----------

Kumm un schless Ding Aure zo
Die Nach es sanft und schoen wie Du
Loss mich Dir zeije wie jaen ich Dich han
Un halt mich esu e Laeve lang

Kumm un schless Ding Aure zo
Die Nach es soess un der Mond es wie Du
Kumm loss uns mache wat uns jefaellt
Komm loss uns danze bis an et Eng vun der Welt

   Alles drieht sich oem uns eroem
   Himmel un Aed, Jott un de Welt zesamme, zesamme
   Un alles drieht sich wie em Kreis
   Staenekrank un bedrunke vun Dir

Kumm un schless Ding Aure zo
Die Nach es su soess un dae Mond es wie Du
Lss mich Dir zeije wie jaen ich Dich han
Un halt mich esu e Laeve lang

Kumm loss uns mache wat uns jefaellt
Komm loss uns danze bis an et Eng vun der Welt

Kumm un schless Ding Aure zo...
Die Nach es sanft un schoen wie Du
Kumm  un schless Ding Aure zo
Die Nach es su soess un d'r Mond es wie Du

Kumm un schless Ding Aure zo

(LSE)

Grimmborn der Atheist

-----------------------------------------------------------------------------



Tja, was solls? (Grimmborn,  1. Mar 1996, 14:56:42):

Nun, da ich hier in Linz sowieso keine Chance habe, was anstaendiges zu
machen zu dieser Zeit, hier ein weiterer Text.
Diesmal in einer weiteren Fremdsprache verfasst, und da es diesmal eher
"mainstream" ist vermutlich auch bekannter...

So Far Away
-----------

Here I am again in this mean old town
And you're so far away from me
And where are you when the sun goes down
You're so far away from me

So far away from me
So far I just can't see
So far away from me
You're so far away from me

I'm so tired of beeing in love and beeing all alone
When you're so far away from me
I'm tired of making out on the telephone
And you're so far away from me

So far away from me
So far I just can't see
So far away from me
You're so far away from me

I get so tired when I have to explain
When you're so far away from me
See you've been in thee sun and I've been in the rain
And you're so far away from me

So far away from me
So far I just can't see
So far away from me
You're so far away from me

(Dire Straits)

Naja, voellig unnoetig, aber ist eh nichts los in der mpa... ;-)

Grimmborn der Atheist

-----------------------------------------------------------------------------



Aber warum auch nicht? (Yendi,  1. Mar 1996, 15:43:49):


125
---


I'm heading north, I'm going home,
doing 125,
I close my eyes and count to ten and
haha, yeah I'm still alive.
Perfect perfect tunnel vision,
razorsharp and racing, racing
These moments, immortal,
no one touches this

These things they flow as blood must flow,
dust to dust and wind must blow,
nothing that I need to know
or ever understand.
These things they flow as blood must flow
dust to dust and wind must blow
You can die before you get old
but me I'm gonna live forever
an ever ... and ever ... and ever ...


The music plays, the party swings,
the gayety walls come closing in,
I catch your eye, you take my hand,
out into the night we run.
Dancing down these dead end streets,
howling at the moon like little kids
Out on the grass on the top of the hill
your breath tastes sweet

These things they flow...


And if I say I hate this place
don't take it as personal,
if I say I'm gonna kill somebody,
doesn't mean to say that I will,
and I don't think that makes me crazy,
and anyway I'm way past caring,
there's a ride leaves out of here at 9,
what do you say, what do you say

Tonight we'll flow as blood must flow...




Hach jaaa... ich glaube, ich leihe mir mal eben den Wagen meiner Eltern...



-----------------------------------------------------------------------------



Re: Bloedsinn (Schrumpfi,  3. Mar 1996, 15:21:30):
~#! rn=Grimmborn rt=825431834
~#! tid=825431834
Pech gehabt. Ich versteh die Geheimschrift leider.

Schrumpfi

-----------------------------------------------------------------------------



Re: Schon wieder einer (Stahldorn,  3. Mar 1996, 15:32:29):
~#! rn=Grimmborn rt=825609965
~#! tid=825609965
"Lokale Geheimschrift" ??
Das kann ja sogar ich doofer Oesi lesen...

-----------------------------------------------------------------------------



YENDI !!! (Oetti,  4. Mar 1996, 10:07:46):
Seufz !
Yendi Du hast ja richtig Musikgeschmack !!!!

NA ja jedenfalls MEINEN ;-))

*knuddels* von

Don Oett

-----------------------------------------------------------------------------



Fuer Oetti... };-> (Yendi,  4. Mar 1996, 16:01:32):

Au petit Matin
--------------


Au petit matin,
Les fleurs de mon jardin
S'ouvraient a la vie,
Et je me vois encore,
Couverte de rosees,
Apres la nuit passee,
A rire, a dancer, a aimer...

Au petit matin,
Ils viendront me chercher
Et me conduiront
Par les rues de la ville
Dans un chariot de bois
Jusqu'a l'horribl' endroit --
Mon dieu, epargne moi la peur...


(Voellig schnulziger Refrain weggelassen..)

*seufz*

Ich hoffe mal, dass das einigermassen korrekt geschrieben ist,
mein Fronssoesiesch ist ein wenig eingerostet. :(


-----------------------------------------------------------------------------



Re: Re: Bloedsinn (Grimmborn,  4. Mar 1996, 16:37:36):
~#! rn=Schrumpfi rt=825862890
~#! tid=825431834

Tststs, da hab ich extra am Anfang geschrieben, ihr koennt euch replies und
mail sparen und dann kommen gleich 2 Reaktionen. Phh, selber schuld, dafuer
kommt hier ein ganz besonders albernes Lied:

Was macht der Herr da (bei Fraeulein Gerda)
-------------------------------------------

Was macht der Herr da,
Bei Fraeulein Gerda?
Er ist ganz deutlich, messerscharf zu sehn
Was macht der Herr da,
Bei Fraeulein Gerda?
An einem Nachmittag um sechzehn Uhr und zehn?

Ist es etwa der Kassierer nur vom Gase?
Oder gar ein Wuestling, knapp vor der Extase?
Will vielleicht er nur der Kuehlschrank reparieren?
Gott, er wird doch nicht die Aermste massakrieren?

Was meinen Sie?
Was meinen Sie?
Was meinen Sie?
Was meinen Sie?
Man weiss es nie,
Was vis a vis
Sie da so treibt
Die Frage bleibt,
Jaaaaaaaa
Die Frage bleibt:

Was macht der Herr da,
Bei Fraeulein Gerda?
Er ist ganz deutlich, messerscharf zu sehn
Was macht der Herr da,
Bei Fraeulein Gerda?
An einem Nachmittag um sechzehn Uhr und zehn?

Koennt sich ja um einen Heiratsschwindler handeln.
Oder um den Arzt, und sie hats mit den Mandeln.
Sicher trinkt er und raucht zu viel Zigaretten!
Das nimm noch ein schlechtes Ende, woll'n wir wetten?

Was meinen Sie?
Was meinen Sie?
Was meinen Sie?
Was meinen Sie?
Man weiss es nie,
Was vis a vis
Sie da so treibt
Die Frage bleibt,
Jaaaaaaaa
Die Frage bleibt:

Was macht der Herr da,
Bei Fraeulein Gerda?
Er ist ganz deutlich, messerscharf zu sehn
Was macht der Herr da,
Bei Fraeulein Gerda?
An einem Nachmittag um sechzehn Uhr und zehn?

Muss ein ziemlich unmoralischer Patron sein
Koennt genauso ein australischer Spion sein
Nein, der will in einen Harem sie entfuehren!
Sollte man nicht doch die Wache alarmieren?

Was meinen Sie?
Was meinen Sie?
Was meinen Sie?
Was meinen Sie?
Man weiss es nie,
Was vis a vis
Sie da so treibt
Die Frage bleibt,
Jaaaaaaaa
Was ist denn das?

Ei hotz!
Was macht er?
Der Klotz!
Jetzt lacht er!
Und schliesst ganz ruecksichtslos den Vorhang, sehen Sie
Wie schreck-
lich ist es
Ich ah-
ne Wuestes
Na wir zumindest haben ja ein Alibi!

(Die Vielharmoniker)

Ja, und das ganze ist dann noch als flotter Tango zu denken.

Grimmborn der Atheist warnt vor replies: Da gibts noch viel schnulzigere
Lieder...

-----------------------------------------------------------------------------



Re^3: Bloedsinn (Schrumpfi,  4. Mar 1996, 23:11:59):
~#! rn=Grimmborn rt=825953856
~#! tid=825431834
Hab ich schon jemals drauf gehoert, was Du gesagt hast? :-)
Her mit den Schnulzen! ;-)

Schrumpfi gibt nicht auf, bevor da nicht ein Text von Hans Albers oder Freddy
Quinn ist

-----------------------------------------------------------------------------



Re^4: Bloedsinn (Yendi,  5. Mar 1996, 12:54:43):
~#! rn=Schrumpfi rt=825977519
~#! tid=825431834

Schnulzen willst Du, Schrumpfi? Schnulzen sollst Du haben!


*raeusper*


In suesser Lenznacht, bei der Sterne Schein,
Vom hellen Mondenglanze uebergossen,
Von Kuehl' und Duft und Stille mild umflossen
Ging ich mit ihr vertraulich und allein,
In suesser Lenznacht, bei der Sterne Schein.

Reich an Gefuehlen, doch an Worten arm
Ruht Arm in Arm in seligem Umfangen,
Liegt Aug' in Aug', und Wange ruht an Wangen.
"Dein, Dein auf ewig!" ruf ich wahr und warm,
Reich an Gefuehlen, doch an Worten arm.




(Fuer die Korrektheit der zweiten Strophe will ich meine Hand lieber nicht
 ins Feuer legen... Ausserdem gabs da, wenn ich mich nicht irre, noch eine
 dritte Strophe, mal sehen, ob ich die noch irgendwo auftreiben kann.)


Das Ganze ist von irgendeinem Christian soundso Freiherr von irgendwo...









-----------------------------------------------------------------------------



Re^5: Bloedsinn (Schrumpfi,  6. Mar 1996, 20:09:30):
~#! rn=Yendi rt=826026883
~#! tid=825431834
*applaudier*

-----------------------------------------------------------------------------



Poems for no reason. (Oetti, 10. Mar 1996, 15:42:35):
Hi Kinners !

Es ist soweit hier eine selbstverfasste Ode an den Fruehling !

Fruehling Du alte Pottsau ! (*grins Arien an*)

Und wieder rinnt der Morgentau,
leise froestelnd durch die Haende.

Und wieder merken Mann und Frau,
dezentes prickeln in der Lende.

Und wieder steh ich hier und da,
und traeume von dem Ende.

Und wieder denk ich lauthals ja,
und wieder glaub ich dieses Jahr,
und wieder weiss nicht, ist es wahr,
und wieder denk ich Selbstbetrug,
und frag mich was sie gestern trug,
und frag mich wie sie morgen heisst,
wenn sie mich wieder mal bescheisst,
wenn ich sie wieder ueber hab,
die letzte will ich,
bis ins Grab.


Is ja schrecklich ! ;-)

Oettl

-----------------------------------------------------------------------------



Gedicht der Gedichte (Grimmborn, 11. Mar 1996, 17:14:21):

So, hier kommt das Gedicht der Gedichte. Wers nicht mag ist doof und stinkt,
aber ansonsten interessiert mich die Meinung des Mobs (wie ueblich) nicht. ;-)

Paul Celan

Todesfuge

Schwarze Milch der Fruehe wir trinken sie abends
wir trinken sie mittags und morgens wir trinken sie nachts
wir trinken und trinken
wir schaufeln ein Grab in den Lueften da liegt man nicht eng
Ein Mann wohnt im Haus der spielt mit den Schlangen der schreibt
der schreibt wenn es dunkelt nach Deutschland dein goldenes Haar Margarete
er schreibt es und tritt vor das Haus es blitzen die Sterne er pfeift seine
   Rueden herbei
er pfeift seine Juden hervor laesst schaufeln ein Grab in der Erde
er befiehlt uns spielt auf nun zum Tanz

Schwarze Milch der Fruehe wir trinken dich nachts
wir trinken dich morgens und mittags wir trinken dich abends
wir trinken und trinken
Ein Mann wohnt im Haus und spielt mit den Schlangen der schreibt
der schreibt wenn es dunkelt nach Deutschland dein goldenes Haar Margarete
Dein aschenes Haar Sulamith wir schaufeln ein Grab in den Lueften da liegt 
   man nicht eng

Er ruft stecht tiefer ins Erdreich ihr einen ihr andern singet und spielt
er greift nach dem Eisen im Gurt er schwingts seine Augen sind blau
stecht tiefer die Spaten ihr einen ihr andern spielt weiter zum Tanz auf

Schwarze Milch der Fruehe wir trinken dich nachts
wir trinken dich mittags und morgens wir trinken dich abends
wir trinken und trinken
ein Mann wohnt im Haus dein goldenes Haar Margarete
dein aschenes Haar Sulamith er spielt mit den Schlangen

Er ruft spielt suesser den Tod der Tod ist ein Meister aus Deutschland
er ruft streicht dunkler die Geigen dann steigt ihr als Rauch in die Luft
dann habt ihr ein Grab in den Wolken da liegt man nicht eng

Schwarze Milch der Fruehe wir trinken dich nachts
wir trinken dich mittags der Tod ist ein Meister aus Deutschland
wir trinken dich abends und morgens wir trinken und trinken
der Tod ist ein Meister aus Deutschland sein Auge ist blau
er trifft dich mit bleierner Kugel er trifft dich genau
ein Mann wohnt im Haus dein goldenes Haar Margarete
er hetzt seine Rueden auf uns er schenkt uns ein Grab in der Luft
er spielt mit den Schlangen und traeumet der Tod ist ein Meister aus 
   Deutschland

dein goldenes Haar Margarete
dein aschenes Haar Sulamith


Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Gedicht der Gedichte (Acrimon, 11. Mar 1996, 19:10:03):
~#! rn=Grimmborn rt=826560861
~#! tid=826560861
Das ist ja schlimmer als ein Vogonengedicht!

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re: Re: Gedicht der Gedichte (Caradhras, 11. Mar 1996, 20:54:51):
~#! rn=Acrimon rt=826567803
~#! tid=826560861
Noe, das ist toll! Das habe ich schon damals in der Schule in der
11ten Klasse (oh Gott ist das lange her) gedichtsinterpretieren
muessen und es hat mir (trotz Schule!) gefallen. :)

    *wuschelt Grimmborn* (in Erinnerung)

             Caradhras

-----------------------------------------------------------------------------



Wieder mal ein Liedtext (Grimmborn, 12. Mar 1996, 11:09:27):

Ja, vielleicht oute ich mich ja. Aber fuer mich ist das folgende eines der
schoensten Liebeslieder der Popgeschichte:

Halt mich
---------

Nehm meine Traeume fuer bare Muenze, schwelge in Phantasien
Hab mich in Dir gefangen, weiss nicht wie mir geschieht
Waerm mich an Deiner Stimme, leg mich zur Ruhe in Deinem Arm
Halt mich nur ein bisschen bis ich schlafen kann

Fuehl mich bei Dir geborgen, setz mein Herz auf Dich
Will jeden Moment geniessen, Dauer ewiglich
Bei Dir ist gut anlehnen, Glueck im Ueberfluss
Dir willenlos ergeben, find ich bei Dir Trost

Bin vor Freude ausser mir, will langsam mit Dir untergehn
Kopflos, sorglos, schwerelos in Dir verlier'n
Deck mich zu mit Zaertlichkeiten, nimm mich im Sturm, die Nacht ist kurz
Friedvoll, liebestoll, ueberwaeltigt von Dir
Schoen dass es Dich gibt

Komm erzaehl mir was, plauder auf mich ein
ich will mich an Dir satthoern, immer mit Dir sein
Betanke mich mit Leben, lass mich in Deinem Arm
Halt mich nur ein bisschen bis ich schlafen kann
Halt mich, dass ich schlafen kann

(Herbert Groehl^H^Hnemeyer)

Naja, was solls... *zuck*

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Wieder mal ein Liedtext (Creative, 12. Mar 1996, 11:51:28):
~#! rn=Grimmborn rt=826625367
~#! tid=826625367

Ein Groehlegeier! Aber ich stimm Dir zu, Grimm... is ein feines Lied...

-Crea-
(gehoert wieder mal zu den sinnlosen Zustimmartikeln, *self-flame*)


-----------------------------------------------------------------------------



Sowas ! (Oetti, 12. Mar 1996, 13:01:44):
Wasn hier los !

Unglaublich, diese Rubrik wird vollgekitscht, da muss mal jemand
entgegenwirken.

Ein wirklich schoener Text kommt jetzt !

They went down to the river
on a warm summer night
the air was sick with the smell of temptation.

And he said why don't we go in the water
let the water run over me
and she grinned and she said and she said
Now that's a good idea
and she said and she said
that's a good idea
and she said and she said
now i've been waiting for years and i'd rather be dead
she said she said

He hold her head, high in his hands,
he hold her down deep in the stream,
he saw the bubbles and matted hair
next thing was she weeped and started to scream
was ist something I said, was it something I said
and he said and he said
now thats a good idea, he said he said
to be alone with you
he said he said
now I've been waiting for years and you'd rather be dead
he said he said

I saw them from the ocean
she didn't seem to mind didn't fight it at all
she didn't fight it at all
and sometimes I'm best left alone
and sometimes I'm just left alone
and sometimes I see you in the water and I and I and I and I

now that's a good idea

Ciao
 Oettl

-----------------------------------------------------------------------------



Re: Sowas ! (Grimmborn, 12. Mar 1996, 13:56:04):
~#! rn=Oetti rt=826632104
~#! tid=826632104

Hmm, angelsaechsische Texte? Sowas kann ich auch. Zu meiner Verteidigung sage
ich, dass ein Mitglied der Gruppe ein alter Schulkamerad von mir ist. Nein,
ich mache mich nicht lustig ueber die Leute, kaem ich nie auf die Idee,
ehrlich nicht!

Slam
----

Slam the doors are closed now
Young and strong is the crowd
Deep, we're getting deeper and deeper
Into the cities we shout
We run away against walls of fire
We really got to get out of this cage
We were crushed in your arms of justice
Running wild in our rage

Once you'll understand
What it's all about
Then you come to be my friend
I need a home

Where were you when I needed your help
Whatever you did you where wrong
Gimme hope
Gimme reconciliation
That is why I sing this song

Once you'll understand
What it's all about
Then you come to be my friend

Once you'll understand
What I mean
Then you come to be my friend

(Violet)

Naja, geht so...
                    Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Gedicht der Gedichte (Rudiratter, 12. Mar 1996, 17:41:22):
~#! rn=Grimmborn rt=826560861
~#! tid=826560861
die todesfuge und einige andere gedichte findet man uebrigens hervorragend
vorgetragen von Lutz G"orner im 'Poesiealbum', das es in jeder Buchhandlung
mit Textheft auf Cassette zu kaufen geben sollte.
Rudi

-----------------------------------------------------------------------------



Re: Wieder mal ein Liedtext (Schrumpfi, 13. Mar 1996, 00:33:49):
~#! rn=Grimmborn rt=826625367
~#! tid=826625367
*SCHREI* Ich will nicht spuelen!!

Schrumpfi denkt in letzter Zeit bei Herbert Groehlemeier nur noch ans
Spuelen.

-----------------------------------------------------------------------------



Abermals H. Householder (Yendi, 13. Mar 1996, 13:47:23):



Dieses kleine Kunstwerk tauchte irgendwann zwischen
den threads ueber Feuerwaffenbesitz, Sprachfehler und
wa-weiss-ich in rec.org.mensa auf (und wer sich darueber
aufregt, dass ich es schon zum zweitenmal poste, der
kann meinethalben gerne flamen, hier jedenfalls ist es):


> >The moving finger writeth on,
> >And having writ, it falleth down
> >Drunk with its own glory.
> >The rest of the tale's less happy though
> >The thigh, the breast and one big toe
> >Were eaten--very gory
> >By H. Householder (owned a gun).
> >In the night he chanced upon
> >Their owner.  Second-story
> >Burglar with a lilting lithp.
> >H. shot once and didn't myth.
> >Or even allegory.
> >
> >       (Stephanie Smilay)


Hach... Wunderbar in seiner surrealistischen Ausdruckskraft...



-----------------------------------------------------------------------------



Yo ! (Oetti, 18. Mar 1996, 12:33:09):
Huhu !

So als gegengewicht zu den Weicheitexten, nochmal ein Liedtext, der
mir besonders gut gefaellt, die Gruppe heisst Sugar, die CD Copper Blue.

Do you know where wou're going
Do you know where you've been
Is it simple
Is it simple
The chances seemed so slim
In a cloud is it cloudy
You've clouded up again
Your perception
Your decision, your decision

and I'm, I'm left behind
I'm left behind, left behind
It's a matter of time

Your conception from injection
my rejection

Is protection from a slide
is projection from the slide

Did it all seem so easy
so easy to concede
giving in, giving in
the chances seemed so slim
In a moment just a moment
Oh I felt you rushing in
You were rushing I am crushing
your rush to cruise this

I'm oh I'm left behind
I'm left behind, left behind
It's a matter of time

Your conception from injection
my rejection

Is protection from a slide
is projection from the slide

Now I with your breath on my pillow
And I with the memory, oh I get to wait it out
never put it away
When you left with your death
I felt empty when i looked back
on my pillow
what we used to say
what we used to say

I'm oh I'm left behind
I'm left behind, left behind
It's a matter of time

And I with your breath on my pillow
And I with the memory, oh I get to wait it out
never put it away
When you left with your death
I felt anger when I looked back
on my pillow
And I felt your breath for a moment
And I heard your voice for a moment
then I looked back
on my pillow what you used to say
what you used to say
what we used to say
that the chances seemed so slim
the chances used to be so slim

No I swim alone
the slim alone

Is to honour and to obey, to cherish, to worship
in sickness and in health
for richer for poorer for anything
until death do us part


Ciao
Oettl

-----------------------------------------------------------------------------



Weicheitext (Grimmborn, 18. Mar 1996, 14:23:00):

So, wenn Oetti mit sonem Gedusel ankommt, muss ich ja kontern. Dieser Text
ist von Robert Long, einem Hollaender der ausserdem noch schwul ist (der Mann
ist echt gestraft...). Hat aber einige der schoensten sentimentalen Lieder die
ich kenne.

Du Und Ich
----------

Ich find so vieles nicht gut
bin traurig und voll Wut
Die Zuversicht verliess mich irgendwann
Dieses Schiff hat ein Leck
es hat doch keinen Zweck
zu kaempfen, wenn man nichts mehr aendern kann

Manchmal sage ich zu mir
Wirf doch die Karten hin
denn nur wer falsch spielt kann in dieser Zeit gewinnen
Wer Ideale hat
braucht gar nicht zu beginnen
Und auf Vernunft zu setzen, ist ganz ohne Sinn
Wenn man dann doch kaempft 
kaempft man gegen bessres Wissen
weil ja der Ausgang laengst beschlossne Sache ist
Es geht um Macht -
und Macht ist Geld
Erlaubt ist, was die Macht erhaelt
Wer da nicht mitmacht, ist verrueckt
oder zumindest Anarchist

Oft denk ich mutlos
wenn ich noch fuenfzig werd',
bevor das Pulverfass hier hoch geht, ist's ein Wunder
Sie spielen ueberall mit Feuer und mit Zunder
Und eines Tages wird das Irrenhaus zerstoert

Ich habe Angst
ich gebe zu, ich moechte abhaun
doch alle Tueren sind versperrt, es ist zu spaet
Die Zukunft liegt schon hinter uns
was mir noch Kraft gibt - das bist Du
Das ist mein Ernst
ich halt mich fest an Dir, wenn alles untergeht - 
Denn Du und ich
das ist wahr
sind fuer einander da
Ich hoffe wir sind stark
Du und ich
Eines ist fuer mich klar
im Schatten der Gefahr
sind wir uns doppelt nah
Du und ich

(Robert Long)

Hach ja, so richtich was fuers Herz...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Hate (Grimmborn, 18. Mar 1996, 14:26:36):

Wo ich gerade bei Liedtexten bin, folgendes singen Bad Religion auf ihrer
neuesten CD "The Gray Race":

Hate is a simple manifestation
Of the deep-seated self-directed frustration
All he (hier ist ein Druckfehler im INlet der CD!) does is promote fear
      and consternation
(Song "Them and Us")

Soweit alles klar und richtig, aber ich frage mich: Seit wann spielen Bad
Religion im MG? Und unter welchem Namen?

Grimmborn der Atheist. Kanns nicht lassen.

-----------------------------------------------------------------------------



Re: Weicheitext (Spatz, 18. Mar 1996, 16:48:46):
~#! rn=Grimmborn rt=827155380
~#! tid=827155380
Das ist doch absoluter Humbug, was da in dem Text drinsteht!
Der versucht ja schon im Anfang jede Hoffnung zu nehmen.
Hoert nicht auf so einen Schwachsinn!

Spatz, mit (umsetzbaren!) Idealen

-----------------------------------------------------------------------------



Liedtext (Zardoz, 18. Mar 1996, 17:11:34):

Ok, ich schreib auch mal nen Liedtext :)

Bleaurgh 
    von Flag of Democracy

fuck

how's it taste that shit you suck

I might be eating dirt
still I ain't no maggot meat like you
I despise and laugh at you
you're just garbage in my way

a snake on your belly
you smile as you tell me
the shit you can sell me

there's no hope without you
just can't cope without you
I don't wanna know you

fuck


Ciao   Zardoz

P.S.: Das Lied ist 17 Sekunden lang...

-----------------------------------------------------------------------------



Re: Liedtext (Yantro, 18. Mar 1996, 17:18:28):
~#! rn=Zardoz rt=827165494
~#! tid=827165494

auch ein paar Liedtexte:

Dead!!!
        (The Ballad of Jimi Hendix, SOD, 4 Sekunden)

Diamonds and Rust!!!
         (Diamonds and Rust, SOD, 2 Sekunden)

     wer bietet weniger?

                Yantro, Ex-Mosher.

-----------------------------------------------------------------------------



Re: Re: Liedtext (Laila, 18. Mar 1996, 17:19:09):
~#! rn=Yantro rt=827165908
~#! tid=827165494

    (The Song of Nothing of Laila, 0 sec)

-----------------------------------------------------------------------------



Re^3: Liedtext (Bobo, 18. Mar 1996, 17:35:29):
~#! rn=Laila rt=827165949
~#! tid=827165494
Habt ihr letzte Woche das Ende von meinem Song mitgekriegt?
Ich fang gleich an...
BoBo, kann am kuerzesten.

-----------------------------------------------------------------------------



Re: Weicheitext (Sique, 18. Mar 1996, 18:48:05):
~#! rn=Grimmborn rt=827155380
~#! tid=827155380
Fuer euch von Franz Hohler:

Strandgut
=========

Eines Tages wird an der Kueste irgendeines Meeres, wahrscheinlich im Norden
etwas stranden, das voll ist von Algen und dicht besetzt mit Muscheln,
  wahrscheinlich ein Koffer.
Und die Leute werden sich darum versammeln und beraten, was damit zu tun sei.

Schliesslich beginnt ein Fischer, die Schicht mit dem Messer abzuschaben,
  da sieht man zwei Schloesser.
Alsbald geht der Dorfschmied daran, mit dem Hammer und dem Meissel, den
Koffer
  zu sprengen.
Und die Leute recken jetzt ihre Haelse, um zu sehen, was darin ist.

Bald richten sich alle wieder auf und es steigt aus ihrer Mitte ein Laut
  der Enttaeuschung.
Nichts ist zu sehen in dem Koffer ausser einem Schimmel von schwaerzlicher
  Farbe.
Und am Boden liegt ein flaches, rundes Stueck von einem Stein, das traegt
  eine Inschrift.

Niemand jedoch versteht die Inschrift und keiner kennt die Sprache, in der
  sie verfasst ist.
Da ruft man den Dorfschullehrer herbei und fragt, ob er verstehe, was darauf
  geschrieben.
Und der Dorfschullehre nimmt den Stein in seine Hand und beginnt zu lesen:

Diesen Koffer werde ich,
Servatius Omnignosticus,
Prorektor, Arzt und Humanist zu Amsterdam,
heute, den 14. Jun 1493, auf hoher See versenken.
Darin gefangen und gebannt auf immer
habe ich die schauerlichste Geisel der Menschheit,
den Virus einer Seuche, gegen die die Pest ein Schnupfen ist.
Gott verhuete, dass dieser Koffer je gehoben wird.

                                                    Sique

-----------------------------------------------------------------------------



Re: Re: Weicheitext (Creative, 19. Mar 1996, 09:54:33):
~#! rn=Sique rt=827171285
~#! tid=827155380

Also, streich den Titel...
Das hat nix mit Weicheitext zu tun
Weiter solche Texte!

-Crea-


-----------------------------------------------------------------------------



Einen hab ich noch... (Oetti, 19. Mar 1996, 10:35:45):
Sooo auch wieder ein schoenes Leidenslied ;-)

Deine Lakeien, Lonely, tolle Version auf der acoustic CD


lonely
where should I be this has left my eye
slowly
life is running through my fingers like sand
call me
and I'll be there wherever you are
lonely
and the day hurts a fallen star

and I tried so hard
and I tried to get out
but oh the fear kept on strangling my will
and I tried so hard
yes I tried so hard
but oh the changes they were harder than still...

lonely
when the bird calls the break of dawn
lonely
when nightfall takes lovers in it's arms
lonely
when meadows outside grow green
falling
and the waters take out as we're
flowing
shall be a place where I fall asleep
lonely
the oceans are vast and deep

da capo al fine

und tschuess

Oetti

-----------------------------------------------------------------------------



Teetasse (Grimmborn, 20. Mar 1996, 14:52:39):

Hier kommt mal wieder eine Schnulze, und sogar auf inlaendisch damit ich auch
lesen kann was ich geschrieben habe.
Besonders fuer Dich, Schrumpfi! Teetassen forever!

Wenn Deine Kuesse
-----------------

[sprechend]
Ach ja, die Natur und ihre Bedeutung. Meine Lieben, ich habe Freunde, die
sind mit ueberhaupt GAR nichts zufrieden, es ist eigentlich tragisch...

[singend]
Ach Du liebe Zeit, wenn Deine Freundin greint
Weil ihr Saftbock sie verliess
Spuer ich nur die Lust zu sagen: "Sei keine Gans, Du Gans!"
Schluss mit dem Geschrei, und der Jammerei
Du gewinnst ueberhaupt gar nichts damit
Das ist keine Art und Weise
Sein Herz neu zu erglueh'n

Was soll denn das Gejammer
Sich an den Mann zu klammern
Wenn er sich um Dich schert nen Dreck
Wenn Deine Kuesse ihn nicht halten koennen
Na dann schmeiss ihn einfach weg
Sei lieber wieder lustig
Anstatt verheult und krustig
Nur weil er glaubt er braucht sein Glueck
Wenn Deine Kuesse ihn nicht halten koennen
Deine Traenen bringen ihn nicht zurueck

Hoer zu, Du, wenn Deiner Kuesse Voodoo
Deinen Mann nicht mehr verhext
Na wie kannst Du denn erwarten, als kalter Sonntagsbraten
Wenn Du Deinen Kopf in'n Ofen steckst

Fang an Dich selbst zu pflegen
Sagen wir: ins Schaumbad Dich zu legen
Du bist doch selbst Dein bestes Stueck
Und wenn Deine Kuesse ihn nicht halten koennen
Deine Traenen bringen ihn nicht zurueck

[schnell sprechend]
Sag mir, mein Liebes, worueber weinst Du ueberhaupt, Du koenntest genauso
gut ueber das zerbrochene Chinaporzellan heulen. Wenn er kalte Fuesse kriegt,
Deine Traenen werden sie nicht aufheizen. Und eins moechte ich Dir sagen: Es
gibt kein sichereres Rezept einen Mann aus dem Haus zu treiben als eine
verheulte Fresse. Lach, und die Welt lacht mit Dir. Wein, und Du schlaefst
allein! Liebe ist wie Selbstgebackenes, gut und reichlich und welcher Mann
mag nicht noch einen Haufen Schlagsahne auf den ganzen Suesskram drauf. Und
wenn rausfindest dass er Dich bescheisst und betruegt auch noch am End gar,
dann geh raus, mach dasselbe! Seit Jahren wartest Du auf diese Chance!
Traenen, meine Guete, werden Dir nichts weiter bringen als eine rote
glaenzende Nase. Also puder ab, mach Dich schoen, geh raus, Party! 
Maenner kriegst Du zu Tausenden, betrogene Frauen haben Sorgen, hah! Das 
ist der Grund wofuer Gott Matrosen erschaffen hat. Also hoer auf zu heulen
und hol Dir einen Neuen, [in Gesang uebergehend]
nen geilen Matthias oder Jack
Und wenn Dir seine Kuesse dann nicht mehr geil genug sind
Na dann schmeiss ihn einfach weg!

(Georgette Dee)

Hmm, ja, gehoert ists noch besser als gelesen... ;-)

Grimmborn der Atheist

-----------------------------------------------------------------------------



Oberschnulze (Grimmborn, 20. Mar 1996, 14:55:51):

Und hier ist dann die schnulzigste Schnulze, die ich auf die Schnelle bei mir
in die Finger bekommen habe. Georgette Dee ist uebrigens eine Diseuse aus der
Schwulenszene, Kleinkunstpreis um 1994 oder so mit einer umwerfenden
Buehnenwirkung. Und herrlich schwuelstigen Liedern und Texten, ohne sich aber
selber zu ernst zu nehmen. Off we go!

Lass das!
---------

Schaust Du mich an wird mir aegyptisch
Die schmalen Sterne nehmen mich mit
Die Blicke tauchen ein wie Perlen
Und tanzen kribbelnd durch den Bauch
Lass das! Lass das, ach, lass das!

Doch Deine hellen Blicke wirbeln
So unbeherrscht auf meiner Stirn
Es ist als legt ein Tausendfuessler
In meiner Nasenfalte sich zur Ruh

Ich geb Dich nicht her fuer ein bisschen Orgasmus
Ich kenne Dich tausend Jahre und mehr
Ich geb Dich nicht her fuer ein fluechtiges "Lass uns!"
Mit Dir hab ich goldene Meere gesehn
Und versunkene Gaerten, seltsam und schoen
Hab an Deiner Hand ueber Schluchten gehangen
Und Dir Wasser gegeben und ein Schwert geschenkt

Mit Augen schoener als Saphire
Kommst Du zu mir von irgendwo
Du laechelst wie ein Dieb auf Urlaub
Und breitest Dich als Beute aus
Lass das! Lass das, ach, lass das!

Doch mit dem Beben Deiner Beine
Raubst Du mir den Verstand komplett
Es ist als dreht in meinen Narben
Sich ein Haustuerschluessel tief ins Herz

Ich geb Dich nicht her fuer ein bisschen Orgasmus
Ich kenne Dich tausend Jahre und mehr
Ich geb Dich nicht her fuer ein fluechtiges "Lass uns!"
Mit Dir hab ich goldene Meere gesehn
Und versunkene Gaerten, seltsam und schoen
Hab an Deiner Hand ueber Schluchten gehangen
Und Dir Wasser gegeben und ein Schwert geschenkt

Und unsre Stimmen beben reichlich
Und saugen Pulschschlag aus und ein
Wie junge Katzenabenteurer
Schenkst Du mir meine Nacht als Glueck
Lass das! Lass das, ach, lass das!

Doch Du kuesst zum Abschied mir die Finger
Und ziehst mich tanzend bis zur Tuer
Es ist wie nie und doch wie immer
Du bist nie fort kommst nie zurueck

Ich geb Dich nicht her fuer ein bisschen Orgasmus
Ich kenne Dich tausend Jahre und mehr
Ich geb Dich nicht her fuer ein fluechtiges "Lass uns!"
Mit Dir hab ich goldene Meere gesehn
Und versunkene Gaerten, seltsam und schoen
Hab an Deiner Hand ueber Schluchten gehangen
Und Dir Wasser gegeben und ein Schwert geschenkt

(Georgette Dee)

Wetten, das ist der Text, der bisher von den meisten gelesen wurde? Immerhin
kam das Wort "Orgasmus" vor...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Weil Oetti so faul ist und Guybrush mich gebeten hat (Grimmborn, 20. Mar 1996, 19:11:37):

So, wieder eine Schnulze in der schoenen und klaren Sprache der hiesigen
Gegend. Ich gebe zu, mit Musik waers noch schoener, aber das .wav file sah
hier in der mpa so komisch aus.

Paar Daach Froeher
------------------

Die Schwalve sin widder op heim ahn ahm fleeje;
ich stonn am Balkon un luhr inne noh.
Stell mir Marokko vuer, wie jedesmol,
wie jed Johr un draeum ich woehr do.

Die Daach weede koeoeter un laenger die Naechte.
Noch joot ene Mohnd, bess et naahx widder friert.
op einmohl weed mir kloor, 'n dat woor noch nie do:
Will nit met dissmohl, dat litt wohl ahn dir.

   Do wo du bess, ess dae Nabel der Welt,
   weiss jetz, wat mir all die Johre jefaehlt.
   Dieh Haezz ess 'ne Nuemaat, ding Kralle sinn spetz,
   un wenn ich falle, ddann bess du ming Netz.
   Dich halt ich fess, dich lass ich nit mieh loss.
   Do, wo du bess, benn ich endlich zohuss.
   Haett ich dat bloss paar Daach froeher jewoss!
   
Zochvuejel losse sich nit irritiere.
Die spuere, wo't langjeht, dat hann die em Bloot.
Richtung Nordafrika woehr wunderbar,
leis hann ich dae Lockroof jehoot,
dae Lockroof jehoot.

   Do wo du bess, ess dae Nabel der Welt,
   weiss jetz, wat mir all die Johre jefaehlt.
   Dieh Haezz ess 'ne Nuemaat, ding Kralle sinn spetz,
   un wenn ich falle, ddann bess du ming Netz.
   Dich halt ich fess, dich lass ich nit mieh loss.
   Do, wo du bess, benn ich endlich zohuss.
   Haett ich dat bloss paar Daach froeher jewoss!
   

(BAP)

Naja, soweit. Langsam gehts ja auch an meine Reserven...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Weil Oetti so faul ist und Guybrush mich gebeten hat (Lwaxana, 20. Mar 1996, 19:16:30):
~#! rn=Grimmborn rt=827345497
~#! tid=827345497
Hallelujah und preiset den Herrn, ich dachte schon, das geht ewig so weiter
:)))
Lwax - hat ihre persoenliche Hoelle entdeckt, muss irgendwo in der Naehe von
Bones liegen..

-----------------------------------------------------------------------------



How many bodies? (Tryfan, 21. Mar 1996, 10:20:42):

 How many bodies are required before we have a problem? G.E.Brown points
out that this can be answered by a look at history, In eighteenth-century
Newtonian mechanics, the three-body problem was insoluble. With the birth
of relativity around 1900 and quantum electrodynamics in 1930, the two- and
one-body problem became insoluble. And within modern quantum field theory,
the problem of zero bodies (vacuum) is insoluble. So, if we are out after
exact solutions, no bodies at all is already to many!
		R.D.Mattuck   -NY 1976-

-----------------------------------------------------------------------------



Wie Grimmborn der Atheist seine Naechte verbringt, Teil 1 (Grimmborn, 21. Mar 1996, 16:48:02):


Hmm, falls mir jemand vorwerfen wollte, ich wuerde nur Schnulzen kennen,
hier kommt der Gegenbeweis. Es ist das musikalisch einzige schoene Stueck
auf der "Chaos", die ansonsten eher grottenschlecht ist. Aber andererseits
vermutlich Groenemeyers textlich staerkste Platte. Ach ja: Ich bin KEIN 
ausgesprochener Groenemeyer-Fan, was auch immer hier fuer ein Eindruck 
entsteht. Aber versucht mal, gute deutsche Texte (bei mir in der Platten-
sammlung) zu finden, das ist nicht so leicht. Und englisch macht nicht so
viel Spass zu tippen. Weil geht langsamer. Wer sich beschwert bekommt ne 
Sonderration "Muenchener Freiheit"...
Genug der Vorrede, hier ist sie, die Nichtschnulze:


Kein Verlust
------------

Hast lange gelauert
auf Deinen grossen Sprung
hast mich vorne bedauert
mich verleugnet hintenrum
in meiner schwaechsten Sekunde
Deinen Dolch nicht mehr versteckt

Hast auch zugetreten
die Gelegenheit benutzt
Mitgefuehl geheuchelt
mich 'runtergeputzt
aus mir Kapital geschlagen
fuer Deinen Vorteil verkauft

Erinnerungen hochgehalten
auf mein Sentiment gebaut
um mich gekuemmert nach Plan
laengst die Seiten getauscht
meine Karten verraten
am anderen Tisch

Mich mit alten Zeiten geblendet
Dein linkes Spiel gespielt
endlich nach Deinen Regeln
Dich wie der Koenig gefuehlt
in Deinem Rausch uebersehen
fuer Dich war's 'ne Nummer zu gross

Hast meinen Freund gemimt
dabei nur gelitten
und den Neid nur vergessen
bei jedem neuen Tritt
hast mich zum Frass vorgeworfen
als ich schon laengst nicht mehr stand
hast meine Schwaeche genossen
Dein endlicher Kampf
Dir gings nur noch um's Messen
Du bist kein Verlust

Fuer mich warst Du nie Gegner
tausendprozentig vertraut
Dir alles erzaehlt
vor Dir Intimstes aufgetaut
hab Dich vielleicht zwanghaft
mit 'nem Heiligenschein verseh'n

Hatte nie Probleme
wer nimmt und wer gibt
nie rivalisiert
diese Sicherheit versiebt
das Leben ist haerter
wir haben die Unschuld verlor'n

Hast Dir auf die Zunge gebissen
die Lippen verspannt
und vom Ehrgeiz zerissen
nie was beim Namen genannt
hast mich still erduldet
immer Haltung bewahrt
auf Deine Gelegenheit gewartet
sie sofort genutzt, knallhart
Dir ging's nur ums Messen
Du bist kein Verlust

Hast mich still erdultet
immer Haltung bewahrt
auf Deine Gelegenheit gewartet
sie sofort genutzt, knallhart
Dir ging's nur noch ums Messen
Du bist kein Verlust

(Herbert Groenemeyer)


Hach ja, und dann die Musik dazu...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Wie Grimmborn der Atheist seine Naechte verbringt, Teil 2 (Grimmborn, 21. Mar 1996, 16:48:12):
Tja, nach dem "Verlust" von Groenemeyer habe ich mich dann gestern in 
allgemeinem Weltschmerz verloren. Was bei der Musik auch leicht passieren
kann. Also hab ich dann Robert Long ausgepackt, weil die ganze Platte, auch
wenn sie hier und da schnulzig ist, doch sehr melancholisch ist. Genau
richtig um so richtig in duesteren Gefuehlen zu versumpfen...

Jos
---

Und dann war Jos auf einmal tot
Er wollte einfach nicht mehr weiterleben
Er hat sich eines Tages aufgegeben
Ich sah es kommen und stand bloss daneben
Er hat nicht nur damit gedroht
Nein, er stieg einfach aus dem Boot

Man glaubt ja oft, dass man einen kennt
nun ja, ich habe Jos ganz gut verstanden
obwohl wir nicht gleich zueinander fanden
er taute auf, als wir uns besser kannten
dann ging ein Riss durch den Zement
dann war er mir nicht mehr so fremd
Wenn wir zu zweit an stillen Sommertagen
im Abendrot am dunklen Wasser lagen
konnte er mir auf einmal alles sagen
Er hatte sich an mich gewoehnt
und uns hat nicht mehr viel getrennt

Er sah mir selten in's Gesicht - 
auch als wir schon beinahe Freunde waren
er hatte Angst sich ganz zu offenbaren
er konnte stundenlang in's Leere starren
Dann wusste ich, er moechte nicht
dass man das Schweigen einfach bricht
Er wollte eine harte Schale haben
sich vor der ganzen Welt in sich vergraben
ich sass dabei und zwang mich, nicht zu fragen
denn irgendwie, da wusste ich
dass er von ganz alleine spricht

Und dann hat er von sich erzaehlt
von Eltern, die sich immerzu nur streiten
er hin- und hergerissen zwischen beiden
und schliesslich lassen sie sich scheiden
und wen von beiden er auch waehlt
er fuehlt, dass ihm der andre fehlt
Er scheint auf einmal ueberall zu stoeren
zu keinem Menschen richtig zu gehoeren
Und trotzig will er sich dagegen wehren
Er moechte Liebe und erhaelt
viel Schokolade und viel Geld -

Man steckt ihn in ein Internat -
Am Anfang moechte er vor Heimweh sterben
Doch was er fuehlt, kann er bald gut verbergen
Er lernt zu luegen um geliebt zu werden
Er ist ein schlechter Kamerad
kaum einer gibt sich mit ihm ab
Und nach der Schule laesst er sich so treiben
will nichts erreichen und will nirgends bleiben
Nur weil er glaubt, ihn koenne keiner leiden
vertraut er keinem guten Rat
- und seine Wege sind nicht grad

Das alles hat er mir gesagt
Er konnte frueher nie darueber reden
Doch mir erzaehlte er sein ganzes Leben
Haett' ich ihm damals bloss die Hand gegeben
und ihm gesagt dass ich ihn mag
mein Gott, es war sein letzter Tag

Den letzten Brief schrieb er an mich -
und darin stand: "Auch Du hast mich belogen
mit Deinem milden Laecheln mich betrogen
und mich am Ende wieder abgeschoben
Es denkt halt jeder nur an sich
Und trotzdem hoffte ich auf Dich -
Ich fuehlte mich ganz wohl in Deiner Naehe
Du musst verzeihn, wenn ich so einfach gehe
das ist nur, weil ich keinen Sinn mehr sehe
Ich will nicht mehr
Leb wohl - dein Jos"

(Robert Long)


Ja, was soll man da noch gross zu sagen?

Grimmborn der Atheist

-----------------------------------------------------------------------------



Wie Grimmborn der Atheist seine Naechte verbringt, Teil 3 (Grimmborn, 21. Mar 1996, 16:48:31):
Nach der Vorbereitung durch Groenemeyer und Long bin ich dann ueber einige
Bluesplatten (wo die Texte nicht mit drin stehen, die Musik aber beein-
druckend ist) letztendlich bei meinem geliebten Tom Waits versackt. Diese
wahnsinnige, traurige und oft absurde Musik zusammen mit ebensolchen Texten
gewinnt bei jedem neuen Hoeren und passt hervorragend zum Ausklang eines
Weltschmerzabends. Tom Waits hats einfach drauf, nochmal bedeutend besser
als seine diversen Nachahmer wie Nick Cave zum Beispiel. ;-)


Tango till they're sore
-----------------------

Will ya play that Tarantella
All the hounds they start to roar
And the boys all go to hell
Then the Cubans hit the floor
And they drive along the pipeline
They tango till they're sore
They take apart their nightmares
And they leave them by the door

Let me fall out of the window
With confetti in my hair
Deal out jacks or better
On a blanket by the stairs
I'll tell you all my secrets 
But I lie about my past
So send me off to bed forever more

Make sure they play my theme song
I guess daisies will have to do
Just get me to New Orleans
And paint shadows on the pews
Turn the spit on that pig
Kick the drum and let me down
Put my clarinet beneath your bed
Till I get back in town

Let me fall out of the window
With confetti in my hair
Deal out jacks or better
On a blanket by the stairs
I'll tell you all my secrets 
But I lie about my past
So send me off to bed forever more

Just make sure she's all in calico
And the colour of a doll
Wave that flag on cadillac day
And a skillet on the wall
Cut me a switch or hold your breath
Till the sun goes down
Write my name on the board
Send me off to another town

And then just let me fall out of the window
With confetti in my hair
Deal out jacks or better
On a blanket by the stairs
I'll tell you all my secrets 
But I lie about my past
So send me off to bed forever more

(Tom Waits)


Ja, und damit bin ich dann schlafen gegangen. Sechs Stunden Blues machen
muede, vor allem wenn man das als Nichtneger nicht gewohnt ist...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Wie Grimmborn der Atheist seine Naechte verbringt, Teil 3 (Grimmborn, 21. Mar 1996, 16:53:19):
~#! rn=Grimmborn rt=827423311
~#! tid=827423311

So, wer sich die Zeiten ansieht, zu dneen ich die letzten drei Artikel
gepostet habe darf mich zu meiner Fingerfertigkeitt beglueckwuenschen...

Grimmborn der Attheist und Mogler

-----------------------------------------------------------------------------



Liedtext gesucht (Yendi, 21. Mar 1996, 17:06:14):

Kennt jemand den Text zu "(All it ever does is) Rain" von Johnny Winter?

Da geht die zweite Strophe so ungefaehr

"I got a photograph in living colours,
 You'd almost think it was alive,
 It <hmm hmm hmm hmm hmmmm hmm> morning,
 It <hmm hmm> every night at five.
 There's a copy of it in my pocket
 And another on my bedroom wall,
 There's a hundred that I've torn to pieces
 But I could never get rid of them all..."


Ach ja... Ich glaube, ich muss meinem Bruder mal wieder ein paar Platten
abluchsen...


-----------------------------------------------------------------------------



Re: Wie Grimmborn der Atheist seine Naechte verbringt, Teil 2 (Acrimon, 21. Mar 1996, 18:17:25):
~#! rn=Grimmborn rt=827423292
~#! tid=827423292
Mal ein richtig guter Liedtext in dieser Rubrik :-O

Acrimon der Rote Ritter

-----------------------------------------------------------------------------



Re: Hate (Schrumpfi, 22. Mar 1996, 22:12:32):
~#! rn=Grimmborn rt=827155596
~#! tid=827155596
Unter den Namen Boing, Jof und Rumata ;-)
Schrumpfi

-----------------------------------------------------------------------------



Re: Einen hab ich noch... (Schrumpfi, 22. Mar 1996, 22:16:23):
~#! rn=Oetti rt=827228145
~#! tid=827228145
SCHMILZ!
Weiter, weiter, weiter, Oetti!! *huepf*
Schrumpfi steht TOTAL auf 'Deine Lakeien'

-----------------------------------------------------------------------------



Re: Teetasse (Schrumpfi, 22. Mar 1996, 22:19:53):
~#! rn=Grimmborn rt=827329959
~#! tid=827329959
  :-)

Schrumpfi, die mit den Einzeilern (aua, nicht schlagen, Cat*, ich tus nie
wieder!)

-----------------------------------------------------------------------------



Ich auch will! (Schrumpfi, 22. Mar 1996, 22:46:18):
Hier kommt ein Liedtext von den guten, alten Ton Steine Scherben. Ich glaub
da fehlt ne ganze Ecke vom Text aber ich kriegs auch nicht mehr so ganz hin,
is schon zu lange her :)


Ich hab getraeumt der Krieg ist vorbei, Du bist hier und wir sind frei
und die Morgensonne schien.
Alle Tueren waren offen, die Gefaengnisse leer,
es gab keine Waffen und keine Kriege mehr,
das war das Paradies.

Ich hab getraeumt der Winter ist vorbei,
Du bist hier und wir sind frei
und die Morgensonne schien.
Es gab keine Angst und nichts zu verliern,
es war Friede bei den Menschen und unter den Tieren,
das war das Paradies.

Der Traum ist aus!
Der Traum ist aus!
Aber ich werde alles geben,
dass er Wirklichkeit wird!
Aber ich werde alles geben,
dass er Wirklichkeit wird!

Gibt es ein Land auf der Erde,
wo der Traum Wirklichkeit ist?
Ich weiss es wirklich nicht.
Ich weiss nur eines und da bin ich sicher!
Dieses Land ist es nicht! Dieses Land ist es nicht!

Der Traum ist ein Traum zu dieser Zeit
doch nicht mehr lange, mach Dich bereit,
fuer den Kampf um's Paradies.

Wir haben nicht zu verlieren, ausser unsere Angst,
es ist unsere Zukunft, unser Land,
gib mir Deine Liebe, gib mir Deine Hand.

Der Traum ist aus!
Der Traum ist aus!
Aber ich werde alles geben,
dass er Wirklichkeit wird!
Aber ich werde alles geben,
dass er Wirklichkeit wird!

Schrumpfi

-----------------------------------------------------------------------------



Mal ein Liebeslied meiner Art. (Schrumpfi, 22. Mar 1996, 22:49:54):
So, hier kommt mal ein Liebeslied von mir. Als Gegenstueck zu Heribert
Grohelemeier sozusagen :)

Ich bin die umstuerzlerische Liebe.
Der Gegensex.
Jeder Tag kostet mich Wunden
dabei bin ich schon jetzt
zerschunden und voellig blutverschmiert.

Meine Seele brennt!

Du faengst im Taxi an zu heulen,
bloss weil ich sage,
dass ich bei dem Konsum
in zwei Jahren tot bin.
Alle Idole muessen sterben.
Meine Seele brennt!

Ich versteck mich, sitz in meinem Loch
und warte auf die Traeume, die mich retten.
Sie kommen nicht.
Liebe ist ein Scheiterhaufen
auf dem ich langsam aber sicher
von innen her zum Rand verbrenne.

Ich hab gekostet
bin zu weit gegangen
werd den Geschmack nicht los.
Vielleicht ist nur entzuendet?
Vielleicht ist nur entzuendet was da brennt?
Anstelle meiner Seele
An der Stelle meiner Seele.
Meine Seele brennt!

Das Lied ist von den Einstuerzenden Neubauten
Schrumpfi

-----------------------------------------------------------------------------



Noch ein Liedchen (Schrumpfi, 22. Mar 1996, 22:54:10):
GREEN DAY
"Basket Case"



Do you have the time
To listen to me whine
About nothing and everything
All at once
I am one of those
Melodramatic fools
Neurotic to the bone
No doubt about it

Sometimes I give myself the creeps
Sometimes my mind plays tricks on me
It all keeps adding up
I think I'm cracking up
Am I just paranoid?
I'm just stoned!

I went to a shrink
To analyze my dreams
She says it's lack of sex
That's bringing me down
I went to a whore
He said my life's a bore
And quit my whining cause
It's bringing her down

Grasping to control
So you better hold on



-----------------------------------------------------------------------------



und nochn Lied... (Flinx, 23. Mar 1996, 14:45:10):
OLD LOVE


I can feel your body
When I`m lying in bed
There's too much confusion
Going around through my head
And it makes me so angry
To know that the flame still burns
Why can't I get over?
When will I ever learn

Old love,leave me alone
Old love, go on home

I can see your face
But I know that it's not real
It's just an illusion
Caused by how I used to feel
And it makes me so angry
To know that the flame will always burn
I'll never get over
I know now that I'll never learn

Old love,leave me alone
Old love,go on home

E.Clapton, R. Cray, 1989


Blues moegend,

Flinx.

-----------------------------------------------------------------------------



liedtext in zeitung (Toeter, 24. Mar 1996, 20:12:14):
So, hier mal einer meiner Favoriten:

-Sick-

I've been living for years in question   some obsession
Was I less to live without answers as a life cried wolf
I'm ashamed to mention my anguish but silence lies empty
If I say it again can I kill it   will you lend me your ears

Breathe in breathe out exhale   acting   sweating
A broken smile provides them a view   projection is nothing new
Just once I would like them to feel it   suffer in my skin
For a moment stand in my shoes  filled with swelling blues

I keep this room and this room keeps me chained to my organs
I am quarantined to a place thats dark   staring at three walls
The door is locked to them

"Maybe now that they all know it   you'll find solace"
As you're drowning in narcissism   or is it self-loathing
"'Cause you fought it all in your head boy"   psychosomatic
They used to humor you - now they pity you and nothings changed

I keep this room and this room keeps me chained to my organs
I am quarantined to a place thats dark   staring at three walls
The door is locked behind me

If I say it again can I kill it
If I say it again can I kill it
If I say it again can I kill it
Because they are sick of my complaining and I am sick of being sick

Maybe these will cure you completely   chemicals deeply
Saviors until you're dependent   don't let them go to your head
I'm ashamed to mention my anguish but silence lies empty
Silence lies empty
Silence lies empty
Silence lies.

-----------------------------------------------------------------------------



Sittenverfall und Chaos! (Grimmborn, 25. Mar 1996, 16:30:52):

Also, ich glaubs ja nicht. Kaum bin ich mal ein paar Tage nicht da geht hier
der angelsaechsische Mob ab. Dank an dieser Stelle an Schrumpfi, die
wenigstens hier und da einen gut deutschen Text eingeschoben hat. Koennt ihr
mir mal sagen, was das soll? Das hier ist ein DEUTSCHSPRACHIGES mud, da hat
die ganze NEgermusik nichts zu suchen. Gut, mir ist auch bewusst, dass die
Deutschen ziemlich unfaehig sind, gute Texte zu schreiben, aber muss man das
gleich so deutlich darstellen indem man den Eindruck erweckt "ja, ich wollt ja
was schreiben, hab nur keinen guten deutschen Text gefunden, hab ich halt nen
englischen genommen". Ist doch peinlich.

Aber eigentlich wollte ich auch einen (natuerlich gut deutsch geschriebenen
Text) anbringen. Nachdem mich der eine oder andere zum Thema "bisse nu auch rl
Atheist oder nicht?" genervt hat und ueberhaupt dieses Thema einige sehr zu
interessieren scheint, hier eine Diskussionshilfe. Manfred Siebald ist ein
Saenger und Gittarist in enger Verbindung zur Missionsgemeinschaft der
Fackeltraeger, der christliche Texte mit durchaus schoenen Melodien verbindet.
Ausserdem ist er auch so ein netter Kerl.

Ich wollte Dich verteidigen
---------------------------

Ich wollte Dich verteidigen, bei denen, die Dich uebergehn,
Dich schmaehen, die beleidigen, weil sie Dich einfach nicht verstehn.
Doch ploetzlich stand nur meine Ehre und nicht mehr Deine auf dem Spiel
Und meine Weisheit, meine Lehre, weil ich mir nicht als Dein Narr gefiel.

Herr, noch immer faellt es mir schwer,
mit Dir zu leiden und still zu sein mit Dir.
Herr, Du trugst ein Kreuz vor mir her.
Hilf mir zu sehen. Ein leichteres liegt auf mir.

Ich wollte fuer Dich kaempfen, Herr, wie damals Petrus fuer Dich stritt.
Mich schmerzten Deine Wunden sehr, ich litt ein Stueck des Hasses mit.
Doch Du hast mich nur angesehen, bis ich begriffen hab:
Du laesst noch den im Segen gehn, der Dich verfluchte und Dir Schlaege gab.

Herr, noch immer faellt es mir schwer,
mit Dir zu leiden und still zu sein mit Dir.
Herr, Du trugst ein Kreuz vor mir her.
Hilf mir zu sehen. Ein leichteres liegt auf mir.

Ich wollte fuer Dich geradestehn - sie waren wieder mal so weit,
in Dir den Schuldigen zu sehn fuer Menschenhass und Menschenleid.
Ich hab zu eifern angefangen und hoerte nicht heraus,
dass in den Klagen Fragen schwammen, Fragen nach Dir und dem Weg nach Haus.

Herr, Du hast schon lange gesiegt,
lange bevor ich begann, fuer Dich zu streiten.
Herr, zeige mir, dass es genuegt,
andre in Liebe zu Dir zu begleiten.

(Manfred Siebald)

Na also, ein schoener Text, noch dazu in verstaendlicher Sprache. Ausserdem
schreiben die Angelsachsen nicht bessere Texte, man versteht sie nur
schlechter und merkt daher nicht gleich, was das fuer ein Schund ist...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Sittenverfall und Chaos! (Yendi, 25. Mar 1996, 16:50:09):
~#! rn=Grimmborn rt=827767852
~#! tid=827767852


Hey! Endlich einer, der Manfred Siebald kennt!
Da muss ich doch gleich auch noch einen bringen:

(Titel vergessen)

Nur nicht aus der Ruhe bringen lassen,
Nur nicht das Gesicht verlieren,
Und am besten gar nicht ruehren,
Gar nicht erst damit befassen,
Nur nicht irre machen lassen!

Sagte auch der Herr, dem man erklaerte,
Dass sein Fahrschein zwar in Ordnung,
Doch der Zug in dem er sass der Falsche sei,
Und er hob mit vielen Argumenten
Zu beweisen an,
Dass man das nicht so sagen kann,
Die Gegend sei doch angenehm
Und auch sein Sitz sei sehr bequem...

Nur nicht aus der Ruhe bringen lassen...

Sagte auch die Dame im Orchester,
Die voll Inbrunst Haydn geigte,
Als man im Programm schon bei Vivaldi war,
Und sie verwies recht aergerlich
Auf ihren satten Bogenstrich
Und meinte selbstbewusst und froh,
Ihr Spiel, das laeg ja sowieso
Auf einem hoeheren Niveau...

Lass Dich doch mal aus der Ruhe bringen,
Fang mal wieder an zu denken,
hoer auf, von Dir abzulenken,
Gott fragt Dich nach Deinem Leben
Und Du sollst ihm Antwort geben.


Das Ganze dann mit einer Ohrwurmmelodie... Huebsch.


YTY


-----------------------------------------------------------------------------



PUNKROCK RULES! (Schrumpfi, 25. Mar 1996, 17:27:19):
So, mal einen anstaendigen Songtext hier schreiben. Besonders fuer meinen
ueber alles geliebten Daemonengatten Zardoz :-)

WE'VE GOT A BIGGER PROBLEM NOW

I am Emperor Ronald Reagan
Born again with fascist cravings
Still, you made me president

Human rights will soon go 'way
I am now your Slash today
Now I command all of you
Now you're gonna pray in school
I'll make me sure they're christians too

California ueber alles
Ueber alles California

Klu Klux Klan will control you
Still you think it's natural
Nigger knockin' for the master race
Still you wear the happy face

You closed your eyes, can't happen here
Alexander Haig is near
Vietnam won't come back you say
Join in the army or you will pay

California ueber alles
Ueber alles California

Welcome to 1984
Are you ready for the Third World War?!?
You too will meet the secret police
They'll draft you and they'll jail your niece

You'll quietly to boot camp
They'll shoot you dead, make you a man
Don't you worry, it's for a cause
Feeding global corporations' claws

Die on our brand new poison gas
El Salvador or Afghanistan
Making money for President Reagan
And all the friends of President Reagan

California ueber alles
Ueber alles California

Dead Kennedys (In God we trust, Inc)

-----------------------------------------------------------------------------



Re: PUNKROCK RULES! (Schrumpfi, 25. Mar 1996, 18:03:08):
~#! rn=Schrumpfi rt=827771239
~#! tid=827771239
Und weil wir ja so gluecklich verheiratet sind, widme ich Zardoz gleich noch
eines. :-)

CALIFORNIA UEBER ALLES

I am Govener Jerry Brown
My aura smiles
and never frowns
Soon I will be president....
Carter power will soon go away
I will be Fuehrer one day
I will command all of you
Your kids will meditate in school
California ueber alles
Ueber alles California
Zen fascists will control you
100% natural
You will jog the master race
And always wear the happy face
Close your eyes, can't happen here
Big Bro' on white horse is near
The hippies won't come back you say
Mellow out or you will pray
California ueber alles
Ueber alles California
Now it's 1984
Knoc knock at your front door
It's the suede/denim secret police
They have come for your uncool neice
Come quietly to the camp
You'd look nice as a drawstring lamp
Don't you worry, it's only a shower
For your clothes here's a pretty flower
DIE on organic poison gas
Serpent's egg's already hatched
You will crack, you little clown
When you mess with President Brown
California ueber alles
Ueber alles California

Dead Kennedys (Fresh fruit for Rotting Vegetables)

-----------------------------------------------------------------------------



was passendes zu so spaeter Stunde# (Grimmborn, 25. Mar 1996, 20:02:50):

Tja, wo ichs hier schon rumfliegen habe, was solls? Ist ein all-time
Klassiker, also duerfte die Melodie den meisten bekannt sein. Off we go:

Komm unter meine Decke
----------------------

Komm unter meine
Komm unter meine 
Komm unter meine Decke

Der eine braucht nen Cadillac sonst beisst kein Maedchen an
Der and're braucht dazu viel Alkohol
Und einer mimt mit Bodybuilding einen starken Mann
Und nimmt sich selbst als Einziger fuer voll
Ein and'rer meint er koennt Dich haben mit nem Haufen Geld
Nein, Maedchen, fall auf sowas nur nicht rein
Im Notfall komm zu mir, ich werd Dich schuetzen vor der boesen Welt
Ich habe einen Platz fuer uns allein

Komm unter meine Decke
Und da mach es Dir bequem
Bis ich Dich dann wieder wecke
Soll es Dir nicht schlecht ergeh'n
Komm unter meine Decke 
Du brauchst dazu nur etwas Mut
Und wenn ich mich nach Dir recke und strecke
Dann wirst Du seh'n wie gut Dir das tut

Der eine hat ein Haartoupet und hoert nur Stereo
Und hat 'ne Riesenvilla vor der Stadt
Ich hab ein Zimmer nur mit Kofferradio
Und fahre nur ein altes Motorrad
Der eine macht auf ledig, doch er hat 'ne Frau zu Haus
Und hat 'nen Doktortitel vorneweg
Ein andrer der verspricht Dir eine Nacht in Saus und Braus
Bei mir da gibt es Bohnen nur mit Speck

Komm unter meine Decke
Und da mach es Dir bequem
Bis ich Dich dann wieder wecke
Soll es Dir nicht schlecht ergeh'n
Komm unter meine Decke 
Du brauchst dazu nur etwas Mut
Und wenn ich mich nach Dir recke und strecke
Dann wirst Du seh'n wie gut Dir das tut

Mein alter Ofen ist kaputt und draussen ist es kalt
Und durch die Ritzen pfeift der Wind
Erkaelt Dich nicht, ich halt Dich warm und schlafe ein in meinem Arm
Schlaf ein mit mir, mein schoenes Kind (Schlafe, Prinzessin, schlaf ein)

Komm unter meine Decke
Und da mach es Dir bequem
Bis ich Dich dann wieder wecke
Soll es Dir nicht schlecht ergeh'n
Komm unter meine Decke 
Du brauchst dazu nur etwas Mut
Und wenn ich mich nach Dir recke und strecke
Dann wirst Du seh'n wie gut Dir das tut

(Die Vielharmoniker)

Ja, das war doch schoen...
Und macht so richtig Lust, jetzt schlafen zu gehen.
Die Vielharmoniker sind uebrigens ein Vokalensemble im Stile der Comedian
Harmonists mit eher humoristischen Interpretationen. Unbekannt, aber sehr
lohnend.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Genesungslieder (Yendi, 25. Mar 1996, 20:33:46):

... oder, wie Lea (rymes with sea) Jones sie genannt hat:

"Songs of Recovery"

Da ist hinten auf der Cassette ein Lied versteckt, das lautet
Something you want that much will make you crazy,
Something you need that bad will make you pay.
You drive around the block past her house when you know she's not home,
And that's the ninth or tenth time today.

Desperate allies in a dangerous game now,
All the kids wanna do is to soften the pain.
In just a couple of years, they'll be women and men,
No words can tell it, it feels so insane

So we're teaching these kids that they can't be alone now,
Now they fill up the time with TV, drugs and sex,
Talking 'bout parties and love when they're eleven years old.
Pregnant teenagers, what the hell do you expect...
Pretty little babies have'm babies, have'm babies

Something you want that much will make you crazy,
Something you need that bad will make you cry.
Your baby is hungry and cold, your baby is crying and she won't go to sleep;
You can't think about it now, you'd rather get high.

So you're looking for someone new to make you happy
 (gonna make you _happy_, baby),
So you're looking for romance now to make you whole.
And now it's you and your lover, sitting there in the cold.

I know some people, they don't wanna know hunger (can't blame them),
You know some people just as soon would not cry,
So they fill in the blanks of their lives with some
 pieces that just don't fit right;
Maybe they get married, maybe they just keep getting high.

Something you want that much will make you suffer (gonna make you suffer,
baby),
Something you need that bad will make you cry.
You grab without tenderness, with a grip that'll surely break bones,
You wind up alone again now and you don't know why.

Something you want that much will make you crazy,
Something you need that bad will make you pay.
I drive around the block past your house when I know you're not home,
And that's the fifteenth time today
 (and that's the sixteenth time today).



-----------------------------------------------------------------------------



Re: was passendes zu so spaeter Stunde# (Baron, 25. Mar 1996, 21:17:33):
~#! rn=Grimmborn rt=827780570
~#! tid=827780570
Ich sage nur: 'Kein Schwein ruft mich aaaann, keine Sau interessiert sich
fuer miiiiich *traeller*
Super!

-----------------------------------------------------------------------------



Schon wieder ich... (Schrumpfi, 25. Mar 1996, 23:36:31):
Hier kommt eines meiner Lieblingslieder, richtig schoen Depri-Sound. :-)

Ein neuer Tag beginnt
auf der Suche nach dem Sinn,
dem Sinn in meinem Leben, doch ich kann ihn nicht finden.

War's das schon? Kann das alles sein?
Was kommt danach? Wann ist's vorbei?
Wer kennt die Antwort auf diese Frage?

Die Tage vergehn, nichts passiert,
nichts ist geschehn und es rebelliert,
in den Falten meines Hirns, in den Ecken meiner Seele.

Wieder mal nen Tag verschenkt!
Wieder mal nen Tag verschenkt!

Die Tage vergehn, nichts passiert,
nichts ist geschehn und es rebelliert,
in den Falten meines Hirns in den Ecken meiner Seele.

Ich hab naechtelang gezecht, mich ins Koma gesoffen,
oft gezielt doch nie getroffen,
ich weiss wie es ist der Arsch zu sein!

Wieder mal nen Tag verschenkt!
Wieder mal nen Tag verschenkt!




Von wem das Lied ist, sag ich lieber nicht, weil ich die Band an und fuer
sich nicht mag aber der Text von dem Lied gefaellt mir extrem gut. :-)
*zwinker Yantro*

-----------------------------------------------------------------------------



Jetzt ich ! (Beelzebub, 26. Mar 1996, 14:12:51):
Jawohl, auch ich habe Langeweile :)
Hier sind ein paar meiner Lieblingstext:

Der erste ist recht depressiv. Wenns dir nicht gefaellt - lesen brauchst
du ihn ja nicht :)

Two Winters Only
----------------

What is it you hope for, even though you are dying?
And even though life is closing your tiny eyes
Why did I leave them all?
I should be with them to die in the same place
The pain I think should go on forever. For always
But no. Not mine. Not now. My life now begins

Call me what you will, but I'll die for no man, at all
My limbs and the life that spreads from them
Cross my path and you'll suffer like no man before, at all
What I hunger for, is the trial of God

For just two Winters only did we live for
My God. What have you become? Dear, dear lord

We could have changed the world, had you been here with me.
Right now
Held you in my arms. In my arms, my love
Jesus wept so man could live forever on earth. In peace
But my tears. They fall for you. Only you

(My Dying Bride)


Hat mal jemand ein Taschentuch fuer mich? *sniff*
Der Deifi

-----------------------------------------------------------------------------



Jetzt ich ! #2 (Beelzebub, 26. Mar 1996, 14:23:08):
Weiter geht's! Jetzt etwas freundlicher :)

Leaves
------

i close your eyes with my mouth
now you don't see anything
but you feel my breath all over
i can feel you too

although i don't really know you
i don't really care

cry with me, make my day
tomorrow all will be gone
all the sweetness and all the fun
no, i don't wanna know...

although i don't really know you
i don't really care

now that you're gone i don't know
how to really feel inside
baring the hope to see you again
i guess i never wil

now that i do really know you
yes, i really care!

(The Gathering)

Das Beste an diesem Lied ist uebrigens die Saengerin.
Keine traellert schoener!

leise davonschwebend,
der Deifi :)

-----------------------------------------------------------------------------



Jetzt ich ! #3 (Beelzebub, 26. Mar 1996, 14:35:39):
Nun kommt einer meiner persoenlichen Favoriten.

ACHTUNG: DER FOLGENDE TEXT KOENNTE DEINE RELIGIOESEN GEFUEHLE VERLETZEN.
LIES ALSO NUR DANN WEITER, WENN DU DIR SICHER BIST, DASS DU KEINE HAST. :)

Christian Woman
---------------

A cross upon her bedroom wall
From grace she will fall
An image burning in her mind
And between her thighs

A dying God-man full of pain
When will you cum again?
Before him beg to serve or please
On your back or knees
There's no forgiveness for her sins
Prefers punishment?
Would you suffer eternally
Or internally?

For her lust
She'll burn in hell
Her soul done medium well
All through mass manual stimulation
Salvation

Body of Christ
She needs
The body of Christ

She'd like to know God
Ooh love God
Feel her God
Inside of her - deep inside of her

Jesus Christ looks like me

(Type 0 Negative)


Sorry, aber ich find den koestlich :)

der Deifi

-----------------------------------------------------------------------------



Jetzt ich ! #4 (Beelzebub, 26. Mar 1996, 14:49:51):
Fuer alle, die meine drei vorherigen Texte gelesen haben:
Hier kriegt ihr zum Dank dafuer noch ein paar Texte von den wohl
groessten Dichtern und Philosophen unsere Zeit : MONTY PYTHON :-)

Penis Song (The Not Noel Coward Song)
-------------------------------------

Isn't it awfully nice to have a penis,
Isn't it frightfully good to have a dong?
It's swell to have a stiffy,
It's divine to own a dick,
From the tiniest little tadger,
To the world's biggest prick.

So three cheers for your Willy or John Thomas,
Hooray for your one-eyed trouser snake,
Your peace of pork, your wife's best friend,
Yoer Percy or your cock,
You can wrap it up in ribbons,
You can slip it in your sock,
But don't take it out in public,
Or they will stick you in the dock,
And you won't come back.

(Monty Python)

der Deifi :)

-----------------------------------------------------------------------------



Jetzt ich ! #5 (Beelzebub, 26. Mar 1996, 15:03:21):
And now to something completely different :

Sit On My Face
--------------

Sit on my face and tell me that you love me
I'll sit on your face and tell you I love you too
I love to hear you o-ra-lise
When I'm between your thighs
You blow me away.

Sit on my face and let my lips embrace you
I'll sit on your face an then I'll love you truly
Life can be fine if we both sixty nine
If we sit on our faces
In all sorts of places
And play till we're blown away.

(Monty Python)

So, jetzt hab ich kein Bock mehr.
Hat wahrscheinlich eh keinen interessiert. ;-)

Beelze

-----------------------------------------------------------------------------



Endlich mal ein Text oberhalb der Guertellinie... (Grimmborn, 29. Mar 1996, 18:22:02):

Nachdem hier so viele Schlagertexte veroeffentlicht wurden hab ich mir 
gedacht, dem muss man mal entgegenwirken. Und was ist der groesste Gegensatz 
zum seichten Schlager den man so hat? Richtig, die ehrenwerte Nationalhymne. 
Zu offiziellen Anlaessen soll ja nur die dritte Strophe gesungen werden (was 
einen eklatanten Mangel an geschichtlichem Wissen und Sinn fuer Zusammen- 
haenge der Verantwortlichen beweisst, aber seis drum), daher hab ich auch 
nur diese hier abgeschrieben. Da sicher jeder die dritte Strophe sowieso 
kennt und vielen die beiden anderen auch gelaeufig sind (und wiederum 
einige auch das Horst Wessels Lied kennen duerften, das eigentlich an die 
dritte Strophe anschliesst...) habe ich hier mal die Kanzlerversion genom- 
men. Wird besonders gerne vor Fussballaenderspielen und aehnlichen Veran- 
staltungen gesungen. 


Nationalhymne
-------------

La la la la la la lahala
La la la la la lahala
La la la la la la lahala
La la la la la lahala
La la lahala la la lalala
La la la la la laha la
La la lahala la la lahala
La laha laha la la la lahala

(Helmut Kohl)


Grimmborn der Atheist. Haelt die Fahnen hoch und die Reihen fest geschlossen.

-----------------------------------------------------------------------------



Morbide... (Grimmborn,  1. Apr 1996, 21:54:25):

So, neue Woche, neuer Text. Erstaunlich, was man fgindet wenn man sucht.
Folgendes hab ich gefunden, wenn auch (noch) nicht bei mir im Regal:

Mit dem Wissen...
-----------------

Es ist nicht die Absicht meiner Tat 
den Kindern ihre Freude zu rauben, 
aber es wird besser sein sie zu toeten, 
um sie vor dem Kommenden zu bewahren. 
Ein sanfter Tod - unbemerkt - kann etwas sehr, sehr Schoenes sein. 

Es ist nicht die Absicht meiner Tat 
den Kindern ihre Traeume zu rauben, 
aber es wird besser sein sie zu toeten, 
denn ihre Traeume werden immer nur haesslich sein 
und sich ueber ihren Schlaf wie ein dunkler Schatten legen. 

Es ist nicht die Absicht meiner Tat 
mit dem Tod der Kinder den Zyklus 
des Lebens zu unterbrechen
aber es wird besser sein sie zu toeten, 
denn Erwachsene koennen sehr 
Gefaehrlich sein 
sehr gefaehrlich, denn sie vergassen ihre Jugend. 
sehr gefaehrlich 

Es ist die Absicht meiner Tat 
allein zu sein 
Als letzter zufrieden dem Ende des Tages beizuwohnen
mit der Gewissheit der naechste wird 
wieder friedlich sein...

(Goethes Erben)


Keine Ahnung, was die genommen haben um auf den Text zu kommen, aber ich
glaube, davon will ich nichts. Im Moment...

Grimmborn der Atheist


-----------------------------------------------------------------------------



Re: Morbide... (Schrumpfi,  1. Apr 1996, 23:35:55):
~#! rn=Grimmborn rt=828388465
~#! tid=828388465
Klingt gut!

Schrumpfi mag's morbide

-----------------------------------------------------------------------------



Re: Re: Morbide... (Hate,  2. Apr 1996, 09:38:16):
~#! rn=Schrumpfi rt=828394555
~#! tid=828388465
Der naechste der hier einen Text loslaesst wir verknackt diesen in die HTML
FOrm zu bringen, wie sie auf der MG Seite Informationen/Kult/LIterarisches
zu finden ist!

Hate.

-----------------------------------------------------------------------------



Artikel. Der Text ist nur zufaellig enthalten... (Grimmborn,  2. Apr 1996, 17:01:19):

Und weiter gehts. Ich muss sagen, je oefter ich "Goethes Erben" hoere, desto 
besser finde ich sie. Und ich fand sie schon zu Anfang nicht schlecht. Und 
wenn ich sie schon gut finde, kann ich euch damit auch auf die Nerven fallen.
Offensichtlich handelt es sich um zwei Leute, die eher Performances als Kon- 
zerte zu machen scheinen. So kann man nicht eigentlich von "Gesang" reden, 
der Vortrag der Texte ist auch ueberwiegend mit modulierter Sprechstimme. 
"Goethes Erben" machen einen sehr schwarzen, morbiden Eindruck; okkulter Ein-
fluss laesst sich aus dem Inlet, nicht jedoch unmittelbar aus den Texten 
schliessen. Nun ja, "schliessen" kann man viel, aber wenn mans drauf anlegt 
sind z.B. die "Eagles" auf den ersten Blick sicher deutlicher okkult ange- 
haucht. Die Texte sind vornehmlich auf Wirkung und Inhalt ausgerichtet, die 
Form tritt dahinter zurueck. Da aber meist keine durchgehende Melodie vor- 
handen ist laesst sich das beim Vortrag kaschieren. Vorgetragen werden die 
Stuecke mit einer sehr lebendigen, nuancierten Stimme (und mit deutlicher 
Artikulation! Hurra!) die hin und wieder in den Wahnsinn abzudriften scheint.
Was im Zusammenhang sicher als plus zu werten ist. Die Begleitung ist spar- 
sam, eher als Hintergrundmusik denn als Begleitung zu sehen. Zu einer sehr 
differenzierten Percussion kommen hier und da Keyboard-Spielereien, (angeb- 
lich echte) Streicher, Saxophone, akustische Gitarre. Aber immer im Vorder- 
grund steht das Wort. Der erzielte Effekt erinnert ein wenig an eine "Tanz- 
theater"-Atmosphaere. Ach ja, getanzt wurde bei dem Konzert wohl auch, aber 
das ist auf der CD nicht so doll zu erkennen. Man kann nicht alles haben. So,
jetzt aber endlich noch ein Text von "Goethes Erben". Diesmal gehts nicht 
darum, Kinder umzubringen...


So sei es!
----------

NEEEEEEEEIIIIIIIIIINNN!!!

Sei es das Verlangen den sanften Kuss auf der 
weissen Haut zu spueren.
Gemeinsam die Minuten
auszukosten, die geblieben sind, 
unbefleckt von all der Schmach
welcher auserkoren durch
zerfressene Zungen
Verborgenes entkleidet
Der Unschuld der Ahnungslosigkeit beraubt, 
Gezerrt ans Licht der Gaffer. 
So sei es!

Doch mein Geist sehnt sich nach dem Dialog
Dem Spiel der Worte
Mit ihm erstrahlt die Eleganz dieser Ebene 
Weder die Tat noch das Wort zaehlt 
Viel mehr wiegt das was unterlassen blieb
Das Wort - das nur gedacht 
Die Tat - die nur geplant
Alle Zuege - die nur auf dem 
Schachbrett der Phantasie 
zu schemenhaftem Dasein thronten.
Die allumfassende Macht der 
Sehnsucht, nach Waerme 
Das Gefuehl ihr allein ergeben zu sein.
So sei es! 

Auch wenn das Feuer schmerzt 
Die Glut das Ebenmass zerstoert 
Ein diffuses Gefuehl entfacht 
Schmerz und Lust verbindet 
Unloeschbar bleibt die Sehnsucht..... 
So sei es!

Auch wenn ihr anders denkt 
Diese Waerme spendet euch sicher 
keine Waerme.

(Goethes Erben)


Also, wenn ihr was von denen in die Finger bekommt: Reinhoeren! Allerdings 
moechte ich warnen, ich empfehle das intensive Anhoeren nur in einer "mental 
stable condition", sonst laeuft man Gefahr, mehr als nur ein paar ep zu ver- 
lieren... In so einem Fall sollte man sich darauf konzentrieren, die ganze 
Sache laecherlich zu finden. Das geht (wie ueberhaupt wenn Pathos im Spiel 
ist) recht leicht, unterstuetzt durch formale Ungereimtheiten und hier und 
da ein Bild, das nicht ganz so elegant gewaehlt ist. Wenn man sich aber in 
den Vortrag (die Musik?) fallen laesst faellt das nicht so ins Gewicht. Dann 
ist die Wirkung enorm. Oder vielmehr fuerchterlich. Auf jeden Fall etwas be- 
sonderes.
Aber: Untersucht vorher nochmal eure Lebensversicherung auf eine Selbstmord- 
klausel...

Grimmborn der Atheist. Haelt sich nach 73:08 "Goethes Erben - Leben im 
                       Niemandsland" fuer einen Experten. 

P.S. Hmm, mitt den Teilen duerfte ich endgueltig Oetti ausgebootet haben...
P.P.S. In HTML-Form bringen? Logo, kein Problem, wird erledigt. ASAP. *grins*

-----------------------------------------------------------------------------



Re: Artikel. Der Text ist nur zufaellig enthalten... (Schrumpfi,  3. Apr 1996, 13:27:02):
~#! rn=Grimmborn rt=828457279
~#! tid=828457279
Hmm, wenn ich bei den Texten schon Selbstmordgedanken kriege, dann muesste
ich mich schon laengst umgebracht haben. Aber kannst ruhig mehr davon posten!
Wenn Du grade dabei bist, kannste ja auch mal ein paar Texte vom Murder Album
posten :-)
Wenn ich schlecht drauf bin, dann muss ich mir Depri-Sound anhoeren, dann
gehts mir wieder besser. Ja, ich bin verrrueckt, morbide, suicidgefaehrdet,
Gruftie usw usf

Schrumpfi steht auf Joy Division, Einstuerzende Neubauten, The Cure, Nick
Cave und den ganzen Depri-Sound

-----------------------------------------------------------------------------



Intellektuelle Scheisse ! (Oetti,  4. Apr 1996, 12:35:19):
Alles Muell Grimmborn !

Die echten Wahrheiten sind viel einfacher.
Also wieder mal ein Text von den Lakeien:

My Winter searches
My coldness needs
My sun shines
My night lies
My spring will come

My winter is searching you
My coldness needs you
My sun is shining
My night is lying
My spring will come

My winter is searching you now that you're gone
My coldness doesn't need you anymore
My suns don't shine for long
My night lies in snow and frost
My spring will come
My spring will come
will become
come your winter

Yeah, yeah, passt auch zur Jahreszeit...

Oettl.

-----------------------------------------------------------------------------



Tiefes Lila (Yendi,  4. Apr 1996, 15:13:14):

Wo wir alle gerade bei den Jahreszeiten sind (tippt noch jemand die Partitur
von Verdis "Fruehling" ab? Danke!), hier "Blind" von Deep Purple:


I see reflections on the water,
Autumn colours, summers daughter.
And as the year is growing older,
I see winter on my shoulder.
I stand in the haze, watchin stone made ripples grow,
On my own...
Never knew you were needed,
Till I found myself standing here alone.

And in the water, such a sad face,
Slowly drowning, such a sad face.
If only I could change the seasons,
like a poet, I'd my reasons.
It started to snow in the middle of july,
wonder why...
I never did understand you
my sorrow is hanging in the gray sky.


In the summer days, we flew to the sun
On melting wings,
But the seasons changed so fast,
They'd leave us all behind,
Blind.




Tjajaaa...

So, den Rest muss ich nochmal ordentlich raushoeren, da bin ich mir bei
einigen Textstellen nicht ganz sicher.


-----------------------------------------------------------------------------



Re: Intellektuelle Scheisse ! (Schrumpfi, 11. Apr 1996, 21:47:55):
~#! rn=Oetti rt=828614119
~#! tid=828614119
Schick mir all Deine Lakeien Texte!!
Schrumpfi heute mit Befehlston ;-)

-----------------------------------------------------------------------------



Lakaien - Texte (Laila, 12. Apr 1996, 10:01:37):
Lakaien - Texte ????
Schon unter http://www.heim8.tu-clausthal.de/misc/Deine.Lakaien/dl.html
nachgeschaut ? Dort findest du alle Texte + eine menge Info ueber Lakaien.

Und hier noch die offizielle Site vom Label :
http://www.netville.de/music/labels/gymnastic/lak.html

So , das wars

Laila

-----------------------------------------------------------------------------



Herzschmerz und so... (Grimmborn, 12. Apr 1996, 17:01:28):
Damit das hier nicht einschlaeft oder langweilig wird hab ich wieder mal
einen Text mitgebracht. Zur Abwechslung sag ich nicht von wem der ist (nein,
der ist nicht von mir!), ihr koennt ja raten. Loesungsvorschlaege bitte an
Bloodgore mailen. Hab doch keine Lust, mich mit sowas rumzuaergern, das soll
mal ruhig Bloody machen...
Hier also der Text, deutsch und duester, wie sich das gehoert: 

Sieben nach 12
--------------

Es klingt banal, was ich hier niederschreibe
So wie ein dummer Schlager 
Jedes Wort so leer
Ich geb mir Muehe, dass ich sachlich bleibe
Doch das ist schwer
Dort an der Turmuhr kann ich sehn
Sieben Minuten schon nach zehn 

Zwei Stunden Zeit hab ich mir noch gegeben 
Fuer diesen Brief, damit Du mich verstehst
Ich hab versucht, auch ohne Dich zu leben
Nur dass die Kraft mich jetzt verlaesst

Wie eine Ewigkeit ist jeder Tag gewesen 
Seitdem Du von mir fortgegangen bist
Da tut man alles: ausgehn, saufen, lesen
Dass man vergisst
Doch das war alles ohne Sinn
So dass ich heut am Ende bin

Die Zeit laeuft ab, das Leben geht ja weiter 
Und Deines auch, es faengt ja grad erst an 
Doch mir erscheint es durchaus nicht mehr heiter 
Und darum ist es mir zu lang 

Der Brief hier soll so eine Art von Lebewohl sein 
Such nicht nach einem Vorwurf irgendwo 
Vielleicht wird Dir wenn Du ihn liest nicht wohl sein 
Ich meins nicht so
Wir werden uns nicht wiedersehn 
Fuer mich wird es jetzt Zeit zu gehn

Wenn man mich morgen finden wird
Denk dran dass Liebe niemals stirbt



Ach ja, als kleiner Tip: Das hier ist nicht der erste Text, den ich von
diesem Interpreten hier poste. Und es ist nicht Groenemeyer.

Grimmborn der Atheist

-----------------------------------------------------------------------------



null ouvert (Toeter, 18. Apr 1996, 12:49:22):
Ein kurzes Gedicht:

Gespielt wird: null ouvert
Gewinn geht an Verlierer

Selbstzufriedbetruegenheit
...nie mehr zweite Liga.

null null schneider schwarz tim toeter

-----------------------------------------------------------------------------



Noch'n Gedicht... (Oetti, 18. Apr 1996, 12:54:56):
Los lueg mich an, los lueg mich an
Sag nur was ich ertragen kann
Los lueg mich an, los lueg mich voll
Die Wahrheit, Scheisse, Supertoll
Los lueg mich an, nuch mach doch schon
Ich bins gewohnt, das ist der Lohn.


Dummdoof Oetti

-----------------------------------------------------------------------------



Re: Lakaien - Texte (Schrumpfi, 19. Apr 1996, 13:38:09):
~#! rn=Laila rt=829296097
~#! tid=829296097
Hmm, danke. Gibt es zufaellig ne Nick Cave Seite auch?
Schrumpfi

-----------------------------------------------------------------------------



Ein Lied, zwo, drei! (Grimmborn, 23. Apr 1996, 10:18:15):

Also, weil das hier gerade bischen einschlaeft und mit Oetti eh nichts
anstaendiges anzufangen ist ergreife ich die Initiative. Ich hab da ein
wunderschoenes Fruehlingslied gefunden, passend zur Jahreszeit, in der sich
das Leben erneuert, die Saefte spriessen und das Glueck ueber alle Menschen
weht.


Der Weg
-------

Feuchtigkeit mit Angst vermengt
Mein Koerper folgt
Die Zeit geht nur vorwaerts, nie zurueck noch bleibt sie stehen
Haltlos rinnen die Sandkoerner durch die Ritzen meiner Haende
Sie koennen nicht ein Korn bremsen
Mit geschlossenen Augen sah ich das Damals
Die Traenen der Mutter
Die Feuchtigkeit der Kaelte
Den Schuldspruch - ohne Worte
In Angst geboren

Die Hand wird sauber - aber rein?
Nur scheinbar
Ich sehe wie das Blut, laengst abgewaschen -
Die Tat verwest und doch geschehen
Fahl faellt das Licht ein, vom Stahl getrennt
Die Ordnung der Koerner umzusetzen
Wie gerne moechte ich im Sandkasten spielen
Das Tempo der Zeit bestimmt den Tod
Wird eins mit den Schritten der Woerter

Sie kommen
Langsam faellt auch das letzte Korn der Hoffnung
Das Schloss -
Die Tuer geht auf - dort wartet nicht die Freiheit!
Ein Mann in Schwarz spricht seinen Trost
Was nuetzt der?
Der Gang ist gelb
Neonlicht erhellt kalt die Szene
Meine Kindheit begegnet mir
Meine tote Mutter wuenscht gute Reise
Sie sieht gut aus, so jung
Da liegt die Leiche, ich sehe das weinende Gesicht
Betaeubt vom Leben setze ich mich auf diesen Stuhl
Die Gurte werden angelegt
Die Arme, Beine festgebunden
Meine Freunde lachten, als ich in den Bach fiel
Damals, es war ja Winter, die Zeit der Angst
Ja, die Zeit der Angst
Die Zeit der Angst
Eine Haube wird mir aufgesetzt
Ich werde verkabelt
Die Stimmen werden leiser
Ich bin allein

Die letzten Koerner fallen
Die letzten Koerner fallen

Die Zeit der Angst zersetzt mein Gehirn
Die Zeit der Angst zersetzt mein Gehirn

(Goethes Erben)


Ich empfehle in diesem Zusammenhang den Film "Dead Man Walking", wenn irgend
moeglich im Original (meinetwegen auch mit Untertiteln).

Grimmborn der Atheist

-----------------------------------------------------------------------------



Auf Oettis ausdruecklichen Wunsch (Grimmborn, 24. Apr 1996, 12:56:50):

Leider sind Oetti die Texte ausgegangen, aber immerhin hat er sich bei mir
einen Text gewuenscht. Zufaelligerweise von Goethes Erben,a ber das seid ihr
ja nun wohl schon gewohnt. Wieterhin gilt: Eure Kritik oder Kommentare
interessieren mich nicht... ;-)


Ich liebe Schmerzen
-------------------

Seit Tagen liege ich im warmen Wasser
Ich fuehle mich wohl warm und leicht
Meine Haut loest sich ganz leicht vom Fleisch
Ich geniesse den Schmerz er tut gut

Ich liebe Schmerzen
Warum nicht?

Das Wasser ist tiefrot
Das Rubinauge beobachtet mich
Kleine Blutgerinnsel treiben in meinem Saft
Der Schmerz ist fast unertraeglich
Aber ich will mehr noch mehr Schmerzen spueren

Ich liebe Schmerzen
Warum nicht?

Inzwischen kann ich nicht mehr sitzen
Meine Muskeln liegen frei
Zitternd bebt mein Koerper brennend
Neben der Wanne tuermt sich die Haut
Streifen um Streifen mehren sich meine Schmerzen

Ich liebe Schmerzen
Warum nicht?

Das rohe Leben liegt huellenlos frei
schutzlos dem Schmerz ausgeliefert

Meine Liebe zum Schmerz wird mich irgendwann das Leben kosten aber...

Ich liebe Schmerzen
Warum nicht?

(Goethes Erben)



Dieses war Teil zwei des Liederzyklus' anlaesslich der Jahreszeit...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Auf Oettis ausdruecklichen Wunsch (Hardil, 24. Apr 1996, 13:14:30):
~#! rn=Grimmborn rt=830343410
~#! tid=830343410

Also dafuer brauchst DU keinen Goethe oder seine Erben heranzuzeihen,
Grimmborn, das geht jedem, der auf einem Ascheplatz FUssball spielt, hinterher
in der Badewanne so.
Man knibbelt sich die Narbenkruste runter, fragt sich, warum das Wasser rot
ist, warum man so einen Scheiss-Sport ueberhaupt betreibt, abbaissokee.

-Hardil. Heute mal ganz unkulturell.

-----------------------------------------------------------------------------



Hitchhiker's guide to the galaxy (Guldukat, 26. Apr 1996, 14:40:38):

Hitchhiker's Guide kommt naechstes Wochenende (Samstag und Sonntag)
im Fernsehen, (RTL 2, zur Mittagszeit, in zwei Teilen)
Gul Dukat

-----------------------------------------------------------------------------



lie society (Toeter, 26. Apr 1996, 15:09:50):
Fuer ihre Information ist hier ein Gedicht zufoerderlichst gedruckt.

-join the lie group-
Vereitelt und verfluechtigt
Das Gefuehl der Gefaelligkeit
In Deiner Luegenalgebra
ist Dabeisein alles

Flache Wasser sind tief

-----------------------------------------------------------------------------



Fatasie-Buecher (Alboin, 26. Apr 1996, 21:20:25):
Nur wer es noch nicht weiss:
Der klett-Cotta-Verlag hat ein paar seiner Buecher als Jubilaeumsausgabe in
Taschenbuchformat herausgebracht.Darunter ist z.B. Nachrichten aus Mittelerde
von J.R.Tolkien und Der Stein von Duncton (Autor faellt mir nicht mehr ein).
Jedes Taschenbuch kostet fast 25 DM, ich denke dass muesste wesentlich
billiger sein als die sonstigen deutschen Ausgaben.

Alboin

-----------------------------------------------------------------------------



Re: Fatasie-Buecher (Anatol, 26. Apr 1996, 21:48:19):
~#! rn=Alboin rt=830546425
~#! tid=830546425

Der Stein von Duncton (William Horwood ;-) ) ist auch sonst als Taschenbuch
erhaeltlich, zumindest hab ich so eine Ausgabe damals von Tryfan zugeschickt
bekommen.

Nichtsdestotrotz ist das Buch einfach klasse und waere auch ein Hardcover
wert. Allemal!

Anatol mag Rebekka aeh den Stein aeh das Buch


-----------------------------------------------------------------------------



Re: Fatasie-Buecher (Caradhras, 27. Apr 1996, 13:32:13):
~#! rn=Alboin rt=830546425
~#! tid=830546425
Ich habe die Nachrichten aus ME auch als Paperback. Und zwar schon
seit mehreren Jahren.

         Caradhras - hoechster Berg von Moria

-----------------------------------------------------------------------------



Intelektuelle Scheisse ! (Oetti, 27. Apr 1996, 18:51:19):
Lass meine Mitte Deine Achse sein
Um die Dein Leib sich windet
Lass meine Mitte Deine Achse sein
Um die Dein Leib sich windet
Lass mich zwischen Deinen Saeulen wandeln
Deinen Saeulengang entlang
Lass mich nicht zoegern noch zieren
Lustwandeln verlustieren
In Dir verlieren

Nur sie wird das Licht als erste sehen

Lass mich Dein Delta durchschwimmen
geneigten Hauptes durchqueren
Lass mich kosten das wahre Salz der Welt
Zungenfisch in Deinem See sein
Den Gang der Welt auf allen Vieren
Als Karnales Schauspiel inszenieren
Den Fruehling zelebrieren

Nun sieh ! Die Polkappen schmelzen
Der Huegel nicht erfroren

Die Axt ist lange schon angelegt
Den Garten zu deflorieren
etwas wichtiges zu exhumieren
Saliva und Honig in einem Mund addieren
Deine Seele zu exhumieren

Nun zieh mich Dir nach
Der Winter ist vorbei. Schneeschmelze !

Ich komme
Aus Irrtum,
aus Siechtum
aus dem Fuerstentum
derer von Sinnen Dich zu freien
Fuer immer zu befreien

Nur sie wird das Licht als erste sehen





Einstuerzende Neubauten


Oetti & Klonki (Babes)

-----------------------------------------------------------------------------



Re: Hitchhiker's guide to the galaxy (Cauno, 27. Apr 1996, 22:05:21):
~#! rn=Guldukat rt=830522438
~#! tid=830522438

Hat man schon gesehen. Aber ich hab die 6 Teile seit ein paar Jahren auf
Video - vom WDR (ohne &%$&@@@ Werbung.
Trotzdem ist der HInweis gut, wer findet sich heute noch in der
Fernsehzeitung zurecht?

					C. No
					No Panic!

-----------------------------------------------------------------------------



Re: Ein Lied, zwo, drei! (Schrumpfi, 28. Apr 1996, 17:58:00):
~#! rn=Grimmborn rt=830247495
~#! tid=830247495
Huch, ich hab Dich wohl mit den Deprisounds angesteckt :-)
Ich glaub ich muss mir dann wohl mal Goethes Erben besorgen :)

Schrumpfi-hin und hergerissen

-----------------------------------------------------------------------------



Fuer Guybrush (Caradhras, 28. Apr 1996, 18:53:37):
         Das Volk ist dumm, das macht der Kohl
         er blaeht nur unterm Schurze.
         Den Kopf hingegen laesst er hohl
         ich sags 'zum Wohl'
         politisches Gefurze.

         Heinrich Heine

-----------------------------------------------------------------------------



Alles neu macht der Mai! (Grimmborn, 30. Apr 1996, 19:23:23):

Zum Fruehlingssymbol schlechthin, dem ersten Mai, hab ich was passendes
gefunden. Bekanntlich ist der Fruehling die Zeit, in der das Leben spriesst
und alles, was so lange tot schien wieder erwacht. Und zu diesem schoenen
Thema hab ich also was gefunden:

Rote Traenen
------------

Es macht mir eigentlich keine Freude
In meine eigene Hand
zu schneiden, 
rote Traenen zu beobachten,
die einen kleinen Rinnsal bildend mich verlassen.
Die einzige Moeglichkeit mich an mir zu raechen
Zu suehnen fuer das was ich sprach und tat.
Ohne bewusst gehandelt zu haben.
Es kommt mir vor als haette ich 
nie gelacht
nie geweint,
gelacht
geweint

Die Bilanz zeigt aufwaerts
Doch verliert sich die schwarze Linie 
am Horizont der brennt.
Mit steigender Tendenz Richtung Unendlichkeit
Weit entfernt von so etwas wie Gefuehlen.

Ich spuere nicht das Stueck Fleisch,
dass anstatt meiner rote Traenen weint.
Im Moment noch wenige
Und jeder Schritt abseits der Linie wird bestraft
mit fluesternden Worten die mehr rote Traenen fordern.
Hoert nur wie sie 
fluestern und wispern
schimpfen und geifern
stechen und bohren
zerren und beissen
fordern: rote Traenen zu weinen
und schliesslich darum betteln

Endlich rote Traenen zu weinen
Endlich rote Traenen zu weinen
... rote Traenen zu weinen
... Traenen zu weinen
... zu weinen
... weinen.

(Goethes Erben)


Wie heisst es doch so schoen? Gegensaetze ziehen sich an. Also passt der
Text, schawoll.

Grimmborn der Atheist. Geht gleich Maibaeume setzen.

-----------------------------------------------------------------------------



Ein Gedicht! (Jariel, 30. Apr 1996, 23:50:46):

Freie Wahl mit guten Vorsaetzen
-------------------------------

                     am Beispiel ueste

 Die ueste hat die freie Wahl:
 Wenn sie ein W waehlt bleibt sie kahl
 Wenn sie ein K waehlt wird sie nass -
 Die freie Wahl macht keinen Spass


                           (Erich Fried)


-----------------------------------------------------------------------------



Der alten Linde Sang (Acrimon,  1. Mai 1996, 17:54:37):

Hier nun ein Lied, das Anfang des 19. Jahrhunderts
der uralten Linde zu Staffelberg zugeschrieben wurde.
Es wendet sich an einen Teil der in Mitteleuropa wohnenden Leute
und beschreibt aus lokaler Sicht, was die Linde sah und sieht
und strickt weiter, was die Linde moeglicherweise noch sehen wird.
Sie singt von den Irrtuemern des Hasses, der Hochmut und der
Fremdenfeindlichkeit, von den Freveln speziell des deutschen Volkes,
von den zerstoererischen Maechten des Luegens und Betruegens,
von den schrecklichen Fruechten der Umweltzerstoerung,
von der himmelschreienden Hoffnungslosigkeit nach den Tagen,
und wie aus dem unsagbaren Leid schliesslich die Erkenntnis erwaechst,
dass nur echte Liebe und Friede mit allen Menschen der Welt
eine glueckliche Welt ohne jegliches Leid schaffen kann.



Der alten Linde Sang
====================

Alte Linde bei der heiligen Klamm,
Ehrfurchtsvoll betast' ich deinen Stamm,
Karl den Grossen hast du schon gesehn,
Wenn der Groesste kommt, wirst du noch stehn.

Dreissig Ellen misst dein grauer Stamm,
Aller deutschen Lande aelt'ster Baum,
Kriege, Hunger schautest, Seuchennot,
Neues Leben wieder, neuen Tod.

Schon seit langer Zeit dein Stamm ist hohl,
Ross und Reiter bargest einst du wohl,
Bis die Kluft dir sacht mit milder Hand
Breiten Reif um deine Stirne wand.

Bild und Buch nicht schildern deine Kron',
Alle Aeste hast verloren schon
Bis zum letzten Paar, das maechtig zweigt,
Blaetter freudig in die Luefte steigt.

Alte Linde, die du alles weisst,
Teil uns guetig mit von deinem Geist,
Send ins Werden deinen Seherblick,
Kuende Deutschlands und der Welt Geschick!

Grosser Kaiser Karl, in Rom geweiht,
Eckstein sollst du bleiben deutscher Zeit,
Hundertsechzig, sieben Jahre Frist,
Deutschland bis ins Mark getroffen ist.

Fremden Voelkern front dein Sohn als Knecht,
Tut und laesst, was ihren Sklaven recht,
Grausam hat zerrissen Feindeshand
Eines Blutes, einer Sprache Band.

Zehre, Magen, zehr vom deutschen Saft,
Bis mit einmal endet deine Kraft,
Krankt das Herz, siecht ganzer Koerper hin,
Deutschlands Elend ist der Welt Ruin.

Ernten schwinden, doch die Kriege nicht,
Und der Bruder gegen Bruder ficht,
Mit der Sens' und Schaufel sich bewehrt,
Wenn verloren Flint' und Schwert.

Arme werden reich des Geldes rasch,
Doch der rasche Reichtum wird zu Asch',
Aermer alle mit dem groessern Schatz.
Minder Menschen, enger noch der Platz.

Da die Herrscherthrone abgeschafft,
Wird das Herrschen Spiel und Leidenschaft,
Bis der Tag kommt, wo sich glaubt verdammt,
Wer berufen wird zu einem Amt.

Bauer heuert (keifert), bis zum Wendetag,
All sein Mueh'n ins Wasser nur ein Schlag,
Mahnwort faellt auf Wuestensand,
Hoerer findet nur der Unverstand.

Wer die meisten Suenden hat,
Fuehlt als Richter sich und hoechster Rat,
Raucht das Blut, wird wilder nur das Tier,
Raub zur Arbeit wird und Mord zur Gier.

Rom zerhaut wie Vieh die Priesterschar,
Schonet nicht den Greis im Silberhaar,
Ueber Leichen muSilberhaar, der Hoechste fliehn
Und verfolgt von Ort zu Orte ziehn.

Gottverlassen scheint er, ist es nicht,
Felsenfest im Glauben, treu der Pflicht,
Leistet auch in Not er nicht Verzicht,
Bringt den Gottesstreit vors nah' Gericht.

Winter kommt, drei Tage Finsternis,
Blitz und Donner und der Erde Riss,
Bet' daheim, verlasse nicht das Haus!
Auch am Fenster schaue nicht den Graus!

Eine Kerze gibt die ganze Zeit allein,
Wofern sie brennen will, dir Schein.
Gift'ger Odem dringt aus Staubesnacht,
Schwarze Seuche, schlimmste Menschenschlacht.

Gleiches allen Erdgebor'nen droht,
Doch die Guten sterben sel'gen Tod.
Viel Getreue bleiben wunderbar
Frei von Atemkrampf und Pestgefahr.

Eine grosse Stadt der Schlamm verschlingt,
Eine andre mit dem Feuer ringt,
Alle Staedte werden totenstill,
Auf dem Wiener Stephansplatz waechst Dill.

Zaehlst du alle Menschen auf der Welt,
Wirst du finden, dass ein Drittel fehlt,
Was noch uebrig, schau in jedes Land,
Hat zur Haelft' verloren den Verstand.

Wie im Sturm ein steuerloses Schiff,
Preisgegeben einem jeden Riff,
Schwankt herum der Eintags-Herrscherschwarm,
Macht die Buerger aermer noch als arm.

Denn des Elends einz'ger Hoffnungsstern
Eines bessern Tags ist endlos fern.
"Heiland, sende den du senden musst!"
Toent es angstvoll aus der Menschen Brust.

Nimmt die Erde ploetzlich andern Lauf,
Steigt ein neuer Hoffnungsstern herauf?
"Alles ist verloren!" hier's noch klingt,
"Alles ist gerettet", Wien schon singt.

Ja, von Osten kommt der starke Held,
Ordnung bringend der verwirrten Welt.
Weisse Blumen um das Herz des Herrn,
Seinem Rufe folgt der Wackre gern.

Alle Stoerer er zu Paaren treibt,
Deutschem Reiche deutsches Recht er schreibt,
Bunter Fremdling, unwillkommner Gast,
Flieh die Flur, die du gepfluegt nicht hast.

Gottes Held, ein unzertrennlich Band
Schmiedest du um alles deutsche Land.
Den Verbannten fuehrest du nach Rom,
Grosse Kaiserweihe schaut ein Dom.

Preis dem einundzwanzigsten Konzil,
Das den Voelkern weist ihr hoechstes Ziel,
Und durch strengen Lebenssatz verbuergt,
Dass nun reich und arm sich nicht mehr wuergt.

Deutscher Nam', du littest schwer,
Wieder glaenzt um dich die alte Ehr',
Waechst um den verschlung'nen Doppelast,
Dessen Schatten sucht gar mancher Gast.

Dantes und Cervantes welscher Laut
Schon dem deutschen Kinde ist vertraut,
Und am Tiber- wie am Ebrostrand
Liegt der braune Freund von Hermannsland.

Wenn der engelgleiche Voelkerhirt'
Wie Antonius zum Wandrer wird,
Den Verirrten barfuss Predigt haelt,
Neuer Fruehling lacht der ganzen Welt.

Alle Kirchen einig und vereint,
Einer Herde einz'ger Hirt' erscheint.
Halbmond maehlich weicht dem Kreuze ganz,
Schwarzes Land erstrahlt im Glaubensglanz.

Reiche Ernten schau' ich jedes Jahr,
Weiser Maenner eine grosse Schar,
Seuch' und Kriegen ist die Welt entrueckt,
Wer die Zeit erlebt, ist hochbeglueckt.

Dieses kuendet deutschem Mann und Kind
Leidend mit dem Land die alte Lind',
Dass der Hochmut mach' das Mass nicht voll,
Der Gerechte nicht verzweifeln soll!



Verfasser unbekannt.




PS: In schrecklicher Weise hat der Nationalsozialismus Anfang unseres
Jahrhunderts bewiesen, welchen Irrweg man gehen kann.
Es scheint so, als habe man daraus gelernt, jedoch haben sich weder
Hasz noch Betrug auf der Welt gelindert, geschweige denn ganz gelegt.
Es stehen uns wohl noch viele Bemuehungen bevor.
(Das war die Moral von der Geschicht' von Acrimon, dem Roten Ritter.)


-----------------------------------------------------------------------------



Re: Der alten Linde Sang (Grimmborn,  2. Mai 1996, 14:07:54):
~#! rn=Acrimon rt=830966077
~#! tid=830966077

Huch, was gibt denn das? Einen Wettbewerb "Wer kann das laengste Gedicht
posten"? Da sollt ich langsam mal anfangen, "The Hunting of the Snark" zu
suchen. Wenn der Wettbewerb allerdings lautet "Wer kann das langatmigste
Gedicht posten" erklaere ich mich geschlagen. Da komm ich nicht mal in die
Naehe...

Grimmborn der Atheist baut sorgfaeltig ein neues Feindbild auf.

-----------------------------------------------------------------------------



Re: Intelektuelle Scheisse ! (Schrumpfi,  3. Mai 1996, 02:59:29):
~#! rn=Oetti rt=830623879
~#! tid=830623879
Ich bin die umstuerzlerische Liebe.
Der Gegensex.
Jeder Tag kostet mich Wunden
dabei bin ich schon jetzt
zerschunden und voellig blutverschmiert.

Meine Seele brennt!

Du faengst im Taxi an zu heulen,
bloss weil ich sage,
dass ich bei dem Konsum
in zwei Jahren tot bin.
Alle Idole muessen sterben.

Meine Seele brennt!

Ich versteck mich, sitz in meinem Loch
und warte auf die Traeume, die mich retten.
Sie kommen nicht.
Liebe ist ein Scheiterhaufen
auf dem ich langsam aber sicher
von innen her zum Rand verbrenne.

Ich hab gekostet
bin zu weit gegangen
werd den Geschmack nicht los.
Vielleicht ist nur entzuendet?
Vielleicht ist nur entzuendet was da brennt?
Anstelle meiner Seele
An der Stelle meiner Seele.
Meine Seele brennt!

Einstuerzende Neubauten

S.

-----------------------------------------------------------------------------



Ein Lied tirilii (Schrumpfi,  3. Mai 1996, 18:35:08):
A Forest

Come closer and see
See into the trees
Find the girl
While you can
See into the dark
Just follow your eyes
Just follow your eyes

I hera her voice
Calling my name
The sound is deep
In the dark
I hear her voice
And start to run
Into the trees
Into the trees

Suddenly I stop
But I knows it's too late
I'm lost in a forest
All alone
The girl was never there
It's allways the same
I'm running towards nothing
Again and again and again

The Cure

-----------------------------------------------------------------------------



Noch ein Lied tirilii (Schrumpfi,  3. Mai 1996, 20:14:45):
THE HANGING GARDEN

Creatures kissing in the rain
Shapeless in the dark again
In the hanging garden
Please don't speak
In the hanging garden
No one sleeps

Catching haloes on the moon
Gives my hands the shapes of angels
In the heat of the night
The animals scream
In the heat of the night
Walking into a dream...

Fall fall fall fall
Into the walls
Jump jump out of time
Fall fall fall fall
Out of the sky
Cove my face as the animal cry

Creatures kissing in the rain
Shapeless in the dark again
In a hanging garden
Change the past
In a hanging garden
Wearing furs
And masks

Fall fall fall fall
Into the walls
Jump jump out of time
Fall fall fall fall
Out of the sky
Cover my face as the animals die
In the hanging garden

The Cure

-----------------------------------------------------------------------------



Warnung !! Nix fuer sensibelchen (oder Moralapostel) (Inskipp,  6. Mai 1996, 19:39:24):
Hi,
Also nachdems hier "intellektuelle scheisse'
depri-suelz und schnulz kram nur so hagelt, muss ich mal
eben meine finsteren Freunde aus den Chaoswelten befragen,
ob sie mal nix da haetten, was ein wenich kontrast bietet.
Siehe da erhoert haben mich "Rigor Mortis"
(zu deutsch "Leichenstarre"), mit ihrem song
"Bodily Dismemberment" (neee das koennt Ihr selber nachschlagen)

Bereit ? Ich will danach kein gejammer ueber solche geschmacklose (!!),
nivaeulose (vermutlich) sonstwie verabscheungswuerdige (garantiert)
Gewaltverherrlichung hoeren !
Flames wenn dann per mail und nicht in die MPA.

Wer mit diesen Bedinugen nicht einverstanden is, soll jetzt nicht
weiterlesen!


Bodily Dismemberment

Sum and smile, you my dear,
I see you are tied.
Thou really never heard
my fetish is a crime.
There's no need to worry, bitch,
just lay there and relax,
as  you reach your climax, I'll be reaching for my axe.

With five easy slices , you're in six lovely pieces
Bodily Dismemberment, let's passion increases.

So, you wanna play games, do ya ?
How just could you think, you fucking win ?
See, I do anything the hard way.
Yes, I've been through hell and back

I feel my time has come, and so why you're here ?
See the weapon  in my hand and you know your death is near.

I tied your hands and beat
you thought i was excited
now you cannot stop
what is destinated.

With five easy slices, you're in six lovely pieces.
Bodily Dismemberment, lets passion increases.

Whos laughing now, you whore ?
Oh you has your chance, that's it !
Expect no mercy from this maniac.
You're fucking history bitch.

First I slice your tiny legs off,
just above the thighs.
Then I remove your slimy arms,
my passion raging high.
Last I will decapitate
your pretty little head.
Rests a piece of bleeding flesh
like sitting on my bed.

With five easy slices, you're in six lovely pieces.
Bodily Dismemberment, let the lust for you increases.

Why do you make me do these things?
Would you know, I never wanted to hurt you.
Laughing hell, you wouldn't listen, would you ?
What a stupid fuck, look at you now!

(Rigor Mortis)

P.S.: achja der komische Satzbau liegt entweder an meiner Unfaehigkeit
die message aus den hoellenabgruenden zu verstehen, oder einfach daran,
dass die Typen kein englisch koennen ;-))

Enjoy,
 Der schwarze Inskipp !!

-----------------------------------------------------------------------------



Re: Noch ein Lied tirilii (Hardil,  7. Mai 1996, 14:35:00):
~#! rn=Schrumpfi rt=831147285
~#! tid=831147285

Also Schrumpi, mach so weiter, am besten veroeffentlichst DU auch noch "Lemon
Tree' von Fools Garden :-)

pruuuuuustend,

			Hardil.

-----------------------------------------------------------------------------



Blood for the Blood god (Puma,  8. Mai 1996, 17:01:24):

Ein wahrer Juenger des Chaos geht nicht in die Schlacht ohne den
einzig wahren Song an den Chaos Gott Khorne (direkt aus WD 96):

BLOOD FOR THE BLOOD GOD

1. The Nightmare Begins

Once the mighty cities now crumbled and turned to sand
Here dwelt the Old Slann (the Masters)
Infinite wisdom (a god given right)
To these genetic scientists forming new life
Yet these powerful beings could never have known
Their seeds of destruction were already sown

See how the void gates that held back the Chaos foe
Shudder and shatter an entropy overload
Spweing forth creatures - obscene machinations
Malicious entities warping creation
Then shrouded in darkness they silently wait
Counting the days till the 'Blood god' awakes

Armed with fury - cloaked by night
Mutations spawned by warpstone might
Shall now go forth - profilerate
To slay and conquer - dominate

From their holes and caverns creep
Ten million Orc and Goblin feet
With hungry hearts and sharpened knives
They come to take your worthless lives

'Blood for the Blood God!'
'Blood for the Blood God!'


Die - Chaos claims thee!
Chaos takes thy soul!


2. Let Battle Commence

Flee now in terror as darkness descends
An the forces of nature relentlessly bend
Spreading the cancer - perverse permutations
Chaotic entropy - warped malformations
Till where once was beauty is Chaos and War
And that which was lawful is lawful no more

Armed with fury - cloaked by night
Mutations spawned by warpstone might
Shall now go forth - profilerate
To slay and conquer - dominate

Underneath this sleeping city
Red eyes filled with rage, not pity
Stalk our dreams with tooth and claw
And crave for human flesh to gnaw

'Blood for the Blood God!'
'Blood for the Blood God!'

In tattered shreds our broken ranks
Are swept before this flood
Of Chaos creatures come to rend our flesh and spill our blood

Where are the heroes in this hour of need
Stout hearted and brave men who'll never concede - 
To the forces of Chaos - hold back their might
Who dares stand proud when the Warhammer strikes?




Der Song stammt von einer unbedeutenden Death Metal Gruppe namens
Sabbat und verursacht spaetestens nach der ersten Strophe absolute
Genickstarre.

  Gruessings,

      Puma!


-----------------------------------------------------------------------------



Danzig (Beelzebub,  9. Mai 1996, 19:53:23):
Ich hab in meiner Cd-Sammlumg zwei Texte gefunden, die auch in der 
Etikette oder im (noch) imaginaeren Religion-Kanal stehen koennten.
Tun sie aber nicht...

Bringer of death
----------------

see the devil kiss the hand of god
see the devil crying tears of flame
see the devil bite the hand of christ
and know the devil is the work of god

and all the devils do the work of god
in this season of the world's demise
upon the wings of the fallen dreams
i hear the sound of a bleeding mind
bringer of death
bringer of death

the angels smile is a smile of shame
they bring the tortures that infest the earth
see the warlords of a heavenly rank
and know that war is the will of god
bringer of death
bringer of death

(Danzig)


Kampfzweg Glenn Danzig hat zwar auch schon bessere Songs geschrieben,
aber der passt grad so gut :)

Beelzebub (muss ja irgendwie seinem Namen gerecht werden)

-----------------------------------------------------------------------------



Iced Earth (Beelzebub,  9. Mai 1996, 20:09:29):
Und noch einer, weils grad Spass macht :

Brainwashed
-----------

and so we begin with another sin
the earth's enslaved with hypocrites
they lay their heads to rest at night
say a little prayer and all is right

Christ it's nothing personal
You've got to see
they twist and turn your words
for their own needs
they're brainwashed puppets
the almighty crutch
cowards of reality
and their dying love

living life in total lies
judging others
believe what i say or burn in hell
bow down your head
you won't feel so bad
do as I say or burn in hell

close your eyes, look deep inside
master of the ignorant
master of the lies
judgment day is close at hand
generate that blasphemy
master of the damned

lies

now behind your reflection 
lies the one who knows the truth
your conscience will condemn you
on judgement day you'll lose

it seems very odd to me
how you sin and feel so free
and all you have to do is say
forgive me... I believe

lies, foolish lies
behind your brainwashed eyes
lies, foolish lies
behind your brainwashed eyes

judge me not my shallow friend
lest ye be judged yourself
you abuse the words you preach
you mold them for yourself
brainwashed hypocrisy
justifies the life you lead
forgive me father I have sinned
lay my head to rest again

living life in total lies 
judging others
believe what I say or burn in hell
trust in me, say yes I believe 
do it now or burn in hell

(Iced Earth)

So, nun ist aber gut...

-----------------------------------------------------------------------------



Re: Blood for the Blood god (Khorne, 10. Mai 1996, 08:02:10):
~#! rn=Puma rt=831567684
~#! tid=831567684
Naja, so unbedeutend ist Sabbat nun auch nicht, und als Death-Metal wuerde
ich ihre Musik auch nicht unbedingt bezeichnen, eher so 
Thrashcanfusiondingsgedoehns. Diese Leute haben auch zufaellig ein Album 
herausgebracht, das sich mit dem in jeder Hinsicht empfehlenswerten Buch "The 
Way of Wyrd" (Dem auch Teile meiner Insel entstammen, copy region) beschaef-
tigt. Daher (genauer gesagt aus dem Lied "Mythistory") stammt auch der fol-
gende Textauszug, der die Naturbezogenheit der angelsaechsischen Mystik (jaja 
ich weiss, Lug, in Wirklichkeit war alles ganz anders ;) herausstellt: 

 'Corn is the gold that 
  will shine in the Summertime
  Leaves are the emeralds 
  you find in the Spring.

  At Autumn they turn and
  as copper they burn.
  Then fall like the diamonds
  that bleak Winter brings.'

Drawn to the spirits like moths to the flame - 
when there is no risk then there can be no gain 
  Toeter

-----------------------------------------------------------------------------



Zork (Guldukat, 10. Mai 1996, 16:50:19):
Hi, Activision bietet jetzt das Kult spiel

    Zork  (eins, the great underground empire)

zum downloaden an (fuer PC und Mac)
sag auf der ernie?
ops, rufzeichen vergessen ;)

ach ja, die URL:

  http://www.activision.com/zorknem/zorkdownload.html

GD

-----------------------------------------------------------------------------



Re: Re: Blood for the Blood god (Lug, 10. Mai 1996, 19:28:28):
~#! rn=Khorne rt=831708130
~#! tid=831567684
a) Tja, das gute Sabbat Teil gab es in einer White Dwarf in Labber-Vinyl. Erst
spaeter dann als Bonustrack auf CD gepresst. Und natuerlich hast Du Recht
Toeter. Es war anders. Bloss wie ist die Frage ;)

Lug

-----------------------------------------------------------------------------



Fuer Trekkies und andere irre ... (Jimdigriz, 12. Mai 1996, 18:32:58):
Hiho,

mal was abgespacetes fuer verrueckte und
faszinierte. Trekkies kommen auch auf ihre kosten. 
Der folgende Text des Lieds "Ghost Town" stammt
vom Album "Black Science" von Steve Coleman & Five Elements,
welches all denen gewidmet ist, die mutig genug waren es
zu kaufen (wie ich ;-)). Wer verrueckten Jazz mag und
Steve Coleman nicht kennt, dem sei dass hiermit empfohlen.
..
aeh also ein s weniger (nicht hauen Acrimon ;-))

ok hier kommt der Text, schoen brav lesen nicht einfach
3x enter druecken. Wer den refrain kennt muss ihn beim 2. und 3.

mal nicht nochmal lesen ;-))

Ghost Town
-----------

Dispossessed in their minds
Struggling in staccato time
shoulders hangers
for confetti clothes
they got a hunger
no au gratin potatoes.
They like the sticky needle
juice for the people.

His woman is addicted 
to this bloody rhythm,
needs a nother hiiiigh note
on her vein flute.
Melody in her arm,
out of tune and mute.
She wants to forget her face
to abort her soul
from this accidental pace
She is just marking time
with a needle and death
looking for next fix
until her last breath.

Her man tested positive.
A new meaning in his bloodstream!
I ask what time is it,
he checks his Longines.
But this the kind of time
that ain't caged in a clock,
this the kind of time
that's beyond tick .... or tock.

Ghost Town!
Absent and around!
Urban eyes alibis
think you up,
when you're down.
Ghost Town!
Gunshots are a safe sound.
Vacant hearts deal the cards
in this Hades, where you're bound.

He beamed up to Scotty,
payed the greedy D.J. 
who always likes to party,
as long as you pay ,
to worship the pipe.

Five minutes of prayer
at least twice a night.
He won't need to care
he lies like a road
leading to no place.
He's worse than a Gemini
with a second face.
He sold out for a pipe dream,
sitting on a nude roof,
where for Scotty he beams.

Freebase !
The best smoke last year.
We are the vestiges 
of the starship getting high.
Our five year addiction
to explore strange new worlds,
to seek new pipes
and new inhalations.
To boldly go where no high has gone before.
Crackhead's Log, 
Stardate: A week ago last Tuesday.


Ghost Town!
Absent and around!
Urban eyes alibis
think you up,
when you're down.
Ghost Town!
Gunshots are a safe sound.
Vacant hearts deal the cards
in this Hades, where you're bound.


It's a slight of the rhymes.
Life between the lines.
Where dope takes the rent
and the days are just numbers.
Hours sneak by
and fools never wonder.

The drug is your destiny,
protecting you from the shame
of looking at your life's mirror.
It's junkyard remains
but either you get by
until you're so low
or you slap the dawn
seeking other ways to go.

We got enough zombies 
to fill endless graves.
But here's your last rites.
Are you ready for change ??

Ghost Town!
Absent and around!
Urban eyes alibis
think you up,
when you're down.
Ghost Town!
Gunshots are a safe sound.
Vacant hearts deal the cards
in this Hades, where you're bound.


James Bolivar diGriz.

-----------------------------------------------------------------------------



wieder mal ein schoener Text (Alboin, 12. Mai 1996, 21:53:33):
Weil ich mich freue, dass Grimmborn dazu beitraegt deutsches Lied- und Textgut
zu verbreiten, in einer Zeit wo ja fast alles amerikanisiert oder anglisiert
ist, will ich dem nicht nachstehen und veroeffentlich an dieser Stelle auch
mal einen schoenen Text.Das Lied stammt vom Liedermacher Gerhard Schoene, der
leider in den alten Bundeslaendern noch nicht so populaer ist, was vielleicht
auch daran liegt, dass er die breite Oeffentlichkeit meidet und mehr in
kleinen Kulturhaeusern oder kirchlichen Einrichtungen auftritt.(Fuer Zueri:
Achtung, dieser Mann will Dich missionieren!;-) )
Also los geht es:

Die Liebe des Fischers

Fische huschten unter Steine,
Wolken zogen bang,
als der junge Fischer Erik
heimkam mit Gesang.

Vor dem Tor im schwarzen Mantel
wartete ein Mann.
's war der Richter von dem Festland,
der sprach Erik an:

'Deine Frau Luise brachte 
man mir frueh.
Sie brach die Ehe mit 'nem Fremden.
Schande ueber sie!

Nach dem Brauch der Insel wird beim
ersten Sonnenschein
deine Frau vom Fels gestossen 
in den Tod hinein.'

Erik sah dem Ungluecksboten 
nach im Daemmerlicht.
'Gott im Himmel, sei uns gnaedig!
Herz, zerspring mir nicht!'

Als die Doerfler schliefen, stieg er
in die Felsenwand.
UNd hat mutig uebern Abgrund 
Seil um Seil gespannt.

Hat mit Reisig, Stroh und Farnen
alles dicht gemacht.
Hat am Ende noch als Polster
Heu hinaufgebracht.

Als die ersten Haehne schrien,
stiessen sie sogleich
seine Frau vom Fels hinunter.
Himmel, fiel sie weich!

In das Netz der Liebe fiel sie,
die nicht Strafe will.
Fische spielten unter Steinen.
Wolken zogen still.


(Nach einer Parabel von Werner Bergengruen)

-----------------------------------------------------------------------------



Re: wieder mal ein schoener Text (Caradhras, 15. Mai 1996, 20:51:47):
~#! rn=Alboin rt=831930813
~#! tid=831930813
Sehr schoen, Alboin, der schoenste Artikel hier seit langem
seit keine Kochrezepte mehr hier drin stehen.

       Golddrachenberg Caradhras *ohne Ironie*

-----------------------------------------------------------------------------



Bedingung (Jariel, 16. Mai 1996, 02:18:39):

       Wenn es Sinn haette
       zu leben
       haette es Sinn
       zu leben

       Wenn es Sinn haette
       noch zu hoffen
       haette es Sinn
       noch zu hoffen

       Wenn es Sinn haette
       sterben zu wollen
       haette es Sinn
       sterben zu wollen

       fast alles haette Sinn
      wenn es Sinn haette

                                        (Erich Fried)

-----------------------------------------------------------------------------



SF (Zardoz, 20. Mai 1996, 13:32:07):
Ich hab nen netten Kommentar zur Science Fiction gefunden, den ich nur
bestaetigen kann :)

Die Autoren der pseudowissenschaftlichen Maerchen bieten dem Publikum das, was
es selber haben will: Banalitaeten, Binsenweisheiten, Klischees, entsprechend
verpackt und bizarr aufgemacht, so dass sich der Verbraucher einen harmlosen
Staunen hingeben und zugleich unbehelligt bei seiner Lebensphilosophie bleiben
kann. Wenn es in der Kultur einen Fortschritt gibt, dann vor allem einen
begrifflichen, und den tastet die Literatur, besonders die phantastische,
nicht an.

Professor Peter E. Hogarth

Ciao Zardoz 

-----------------------------------------------------------------------------



Re: SF (Cauno, 20. Mai 1996, 13:40:00):
~#! rn=Zardoz rt=832591927
~#! tid=832591927

Aeh. Wann schickst du die Uebersetzung davon ins Netz?

C. No dachte, er kennt sich mit SF aus...

-----------------------------------------------------------------------------



Re: SF (Wurzel, 20. Mai 1996, 21:33:08):
~#! rn=Zardoz rt=832591927
~#! tid=832591927
hmm, hogarth hat offensichtlich nicht allzu viel gelesen, er bietet keine
argumentation, sondern praesentiert nur seine vorurteile.
es stimmt, es gibt viel muell, gerade bei sf. aber alles pauschal ueber einen
kamm zu scheren, ist wohl doch etwas aermlich. im letzten satz bezieht er
sich auf "die literatur", hat also den rundumschlag doch erheblich erweitert.
er outet sich damit selbst als literaturfeind, dem es bei sf nur darum geht,
einen leicht zugaenglichen aufhaenger zu finden.
dass ich selbst heute keine sf mehr lese, liegt im wesentlichen daran, dass
ich nach meinem physik-studium den regelmaessig anzutreffenden pseudo-
wissenschaftlichen quatsch nicht mehr ertragen habe. trotzdem lese ich
ueberwiegend phantastische literatur, weil die moeglichkeiten, die der
autor/die autorin hat, befreit von den zwaengen der realitaet ein gedankliches
weltbild aufzubauen, meiner meinung nach die nachteile der schwierigen
uebertragbarkeit mehr als aufwiegt. klar, auch da gibt es viel muell, aber wer
will schon immer hohe literatur lesen (die es in der fantasy mit sicherheit
gibt)? manchmal moechte ich einfach nur traeumen...

wurzel

-----------------------------------------------------------------------------



Re: Re: SF (Cauno, 21. Mai 1996, 12:39:07):
~#! rn=Wurzel rt=832620788
~#! tid=832591927

Also, ich lese weiterhin SF, gerade nach meinem Studium kann ich zwischen
dem pseudowissenschaftlichen Quatsch und den sozialkritischen Elementen
(zum Bleistift) umso besser entscheiden, da ich weiss, dass es in guter SF
weniger um die Technik als mehr um die Menschen, die mit dieser Technik
umgehen muessen, geht.

Ob der Autor nun Ahnung von der Wissenschaft hat, oder nicht, erkennt man
meistens erst, wenn man das Zeug selbst studiert hat. Leider passiert es
einigen Autoren, dass sie zuviel Ahnung haben, und die Personen in ihrer
Welt vernachlaessigen. Dadurch kommt dann der ganze Schrott zusammen, der
die SF manchmal in Verruf bringt.

Meine Lieblingsromane verwenden ein Minimum an Technik, dafuer sind die
Personen dann besonders gut charakterisiert.

C. No
sieht die SF nicht als Vorhersagemittel der Zukunft,
sondern als Spiegel der Gegenwart.

-----------------------------------------------------------------------------



Neulich, vor Aurora... (Flora, 25. Jun 1996, 13:06:02):
Hallo, hier mal wieder etwas fuer alle Unterwasserfreunde.

"Vineta"
(von Wilhelm Mueller)

Aus des Meeres tiefem, tiefem Grunde,
Klingen Abendglocken, dumpf und matt,
Uns zu geben wunderbare Kunde
Von der schoenen alten Wunderstadt.

In der Fluten Schoss hinabgesunken,
Blieben unten ihre Truemmer stehn.
Ihre Zinnen lassen goldne Funken
Wiederscheinend auf dem Spiegel sehn.

Und der Schiffer, der den Zauberschimmer
Einmal sah im hellen Abendrot,
Nach derselben Stelle schifft er immer,
Ob auch ringsumher die Klippe droht.

Aus des Herzens tiefem, tiefem Grunde
Klingt es mir wie Glocken dumpf und matt.
Ach, sie geben wunderbare Kunde
Von der Liebe, die geliebt es hat.

Eine schoene Welt ist da versunken,
Ihre Truemmer blieben unten stehn;
Lassen sich als goldne Himmelsfunken
Oft im Spiegel meiner Traeume sehn.

Und dann moecht' ich tauchen in die Tiefen,
Mich versenken in den Wunderschein,
Und mir ist, als ob mich Engel riefen
In die alte Wunderstadt herein.


Noch schoener ist's natuerlich mit der Vertonung von J. Brahms (davon gibt's
ne Wahnsinnsaufnahme mit dem Monteverdi Choir (IMHO dem besten Kammerchor den
es zur Zeit gibt) unter J.E. Gardiner)

Bis denne,
Flora
(ueberlegt sich, ob sie diesen Artikel in d.inseln crossposten soll)

-----------------------------------------------------------------------------



Midkemia (Li, 27. Jun 1996, 10:28:57):
Buchempfehlung: Die Midkemia-Saga von Raymond Feist

"Wenn es einen Autor gibt, der im Fantasy-Himmel zur Rechten von J.R.R.
Tolkien 
sitzen wird, dann ist es Raymond Feist". Dieser Kommentar eines Kritikers
steht 
auf den Buechern. Normalerweise ist ein Vergleich mit Tolkien immer nur ein 
schlechter Witz, aber hier stimmt es. Wieso? Weil man nach dem Lesen der
ersten 
Seiten nicht mehr von den Buechern los kommt. Zu klar werden die Charaktere 
beschrieben, zu klar entsteht die Welt Midkemia vor den Augen des Lesers. Nun 
ist Midkemia nicht so ausgefeilt wie Mittelerde an Sagen und Geschichte, aber 
wie beim Lesen von Tolkiens Werke ist man bei Feist sehr bald gefangen: Nicht 
nur von der spannenden, interessanten Handlung, sondern auch von den Personen 
und der Welt.
Es treten keine Ueberhelden wie Conan auf, nein "ganz normale" Menschen
spielen 
die Hauptrollen. Die auftretenden Figuren sind glaubhaft, toll
charakterisiert, 
"realistisch".
Zur Handlung moechte ich nicht allzu viel verraten. Die ersten beiden Baende, 
Der Lehrling des Magiers und Der verwaiste Thron, behandeln den Spaltkrieg,
und 
die Geschichte von zwei heranwachsenden Jungs, Pug und Tomas. Aufgewachsen im 
weit entfernten Aussenposten des Koenigreichs der Inseln, entdecken sie eines 
ueste gestrandet ist. Damit beginnt Tages ein seltsames Schiff, das an der K
ueber neun Jahre hinzieht, und in der beide "Einiges" eine Handlung, die sich 
erleben: Begegnungen mit Elben, Dunkelelben, Drachen, maechtigen Relikten der 
Vergangenheit, maechtigen Magiern, einem wahnsinnigen Koenig und vieles mehr.
Was Feist gross anzurechnen ist: Er versucht nicht, Tolkien irgendwie zu 
kopieren. Er hat es auch gar nicht noetig, denn seine Charaktere "leben" auch 
ohne Anlehnung an Tolkien.
Die Elben sind anders , aber ebenso glaubwuerdig, die Drachen ebenfalls und
die  
"Bruderschaft des dunklen Pfades" ,also die Dunkelelben? Nun, sie
unterscheidet 
von ihren Vettern nur sehr wenig: Ihr streben nach Macht. Die Dunkelelben bei 
Feist leben nicht wie DrizztDoUrden unter der Erde, sie sind nicht von Natur 
aus grausam, pervertiert oder sonstwie anders. Allerding laesst sie ihr 
Machtstreben natuerlich auch ueber Leichen gehen, denn ihnen ist meistens fast
jedes Mittel recht.
Band Drei und Vier, die Gilde des Todes und Dunkel ueber Sethanon, berichtet 
von der ungewohnlichen Freundschaft zwischen einem Strassendieb und einem 
Prinzen, die sich waehrend des Spaltkrieges kurz begegnet sind. Jimmy die Hand
rettet Prinz Arutha das Leben, in dem er einen Mordanschlag eines 
Meuchelmoerders verhindert. Ein unbekannter Gegner, der keine Gande kennt und 
auch vor dunkler Magie nicht zurueckschreckt, laesst Prinz Arutha und seine 
Gefaehrten nicht zur Ruhe kommen.
Faszinierend an diesen Baenden ist nicht nur die ungewoehnliche Freundschaft, 
sondern vor allen die unheimliche Atmosphaere, die der Gegner im Hintergrund 
hervorruft. Und dann die Nachtgreifer, Meuchelmoerder, die nach ihrem Tod als 
Untote weiterhin versuchen, ihren Auftrag durchzufuehren. zombies, aber 
"realistisch" geschildert. Kein Kanonenfutter, sondern Monster, die mit
normalen
Waffen nicht zu vernichten sind.
Waren die Baende um den Spaltkrieg schon spannend, so endet der vierte Band in
einem furiosen Hoehepunkt: Der Schlacht um Sethanon. 
Band 5, Gefaehrten des Blutes, spielt 20 Jahre nach dem Spaltkrieg. Borric und
Erland, die Soehne Aruthas, bekommen ihren ersten Raepresentationsauftrag und 
muessen ins Kaiserreich Kesh reisen, das uralte, benachbarte Reich. Dort
geraten 
sie in Gefahren und Intrigen, die bei einer Geburtstagsfeier zur Ehren der 
Kaiserin eigentlich nicht zu erwarten waren... :-)
Der sechste und letzte Band wiederum berichtet vom juengsten Sohn Aruthas, der
auf einer Seereise an die Gestade eines fremden Kontinentes verschlagen wird.
Wenn es jetzt auch nicht so klingt, so handeln doch alle Baende in lockerer 
Reihenfolge hintereinander, wobei eins und zwei, sowie drei und vier 
zusamenhaengen. Altbekannte Personen tauchen immer wieder auf: Pug, Arutha, 
Jimmy, sind auch in den Baenden fuenf und sechs nicht nur Statisten, um die 
Geschichte weiterzufuehren. Gerade Jimmy, inzwischen zum Baron aufgestiegen, 
ist die ideale Hilfe fuer die Prinzen am Hofe, versteht doch kaum einer so
viel 
von Hinterlist und "um die Ecke denken", wie der ehemalige Meisterdieb. Und 
selbst der Humor kommr nicht zu kurz. Kein lautes Gelaechter, aber zum 
Schmunzeln reicht es alle Male, kein Wunder, tauchen doch manchmal etwas sehr 
seltsame Gestalten auf...
Abschliessend noch ein Zitat vom Buchruecken. Normalerweise sollte man 
bombastischen Worten nicht trauen, aber hier stimmen sie einfach:
 Raymond Feists Midkemia Saga - eine unerreichte Fantasy von Liebe und Krieg,
 Freundschaft und Verrat, Magie und Erloesung.


zieht's Euch rein - Es lohnt sich


-----------------------------------------------------------------------------



Re: Midkemia (Li, 27. Jun 1996, 10:30:25):
~#! rn=Li rt=835864137
~#! tid=835864137
Sorry fuer das schlechte Layout! Seltsam bei Cut&Paste und Begrenzung auf 75
Zeichen duerfte soetwas eigentlich nicht vorkommen.
Naja egal
Li

-----------------------------------------------------------------------------



Re: Re: Midkemia (Grimmborn, 27. Jun 1996, 10:51:05):
~#! rn=Li rt=835864225
~#! tid=835864137

Hee, Li, DU BIST MAGIER!
Schreib den Kram in ein file, fang den Artikel hier an und lies ihn dann mit
"~i dateiname" ein.
Das ist allemal sicherer als (D)ein c&p...

GdA verteilt Gratis-Tips.

-----------------------------------------------------------------------------



Abschied (Summerwind, 27. Jun 1996, 16:47:14):

Abschied im Morgengrauen


Vom nebelueberhangenen Fluss
bei den taufeuchten Wiesen im Morgenlicht
habe ich meine Geschichte gehoert.
Kuehles glaenzendes Wasser und
die sanfte Beruehrung des Windes waren bei mir,
sprachen zu mir in der alten Sprache,
sangen zu mir und lachten mit mir,
versuchten mich zu halten
als mein suchender Fuss schon
die Ufer des Lethe betrat, als
meine Hand schon vom Wasser
des Vergessens schoepfte, zitternd,
mit einem Blick zurueck zu den Waeldern
wo fuer einen Herzschlag
die Zeit den Atem anhielt
ob meiner Entscheidung,
und ihre Liebe draengte mich
von zwei Wegen den einen zu waehlen,
aber ich ...

Die Wasser sprachen zu mir wie in jeder Nacht,
wenn die silbernen Strahlen des vollen Mondes
das Land verzauberten mit ihrer Magie, in Naechten
da Liebende fallen und Seelen steigen und
die Herzen der Menschen den Weg nach Hause finden im Traum,
wenn Nebel die Herzen umarmt, deren Kummer zu schwer wiegt
um sie in dieser Welt zu halten, und sie fallen;
aber der wachsame Mond sendet seine Boten
und auf den silbernen Wassern treiben sie den Lethe entlang
hinueber ins Reich der Toten, obgleich sie leben.
Blind wie Traeumer gleiten sie hinueber zu denen,
die gingen und nichts hinterliessen als Leid,
um noch einmal im Traum ihre Liebe zu spueren,
die Hoffnung sie blieben nicht zurueck, wenn Freunde gehen,
und fuer diese Nacht sind sie wieder eins
mit der Erinnerung an bessere Zeiten und der Umarmung
die sie erfahren durch die Fernen, die nie wiederkehren.
Bis der Morgen daemmert und der Zauber verfliegt
und die brennende Zerbrechlichkeit des letzten Atemzuges
im Reich, wo gefallene Liebe lebt, in Schoenheit
zerbricht.

In dieser Nacht sprachen die Wasser zu mir.
Der Weg durch den Mitternachtswald war gesaeumt von Augen,
deren samtener Blick fuer mich sah und mich fuehrte,
das seidene Bluetengras umspuelte meine Schritte
und leitete mich hinunter zum Fluss. Ich spuerte Tiere
im Schattengruen der Nacht, die sich nicht fuerchteten
vor meinem zaghaften Schritt
da ich kam um Abschied zu nehmen trotz all meines Wissens,
der Furcht und Verzweiflung vor dem Morgen,
und die Geschichte meines Flusses mit mir nahm
wie ein Wanderer seine schwere Buerde tragen mag.
Die Wurzeln umfingen mich mit Sanftmut,
gedankenlose Haende ins Nachtgras verflochten,
aber die Wasser tasteten nach mir und beruehrten mich
als wollten sie mich halten und nicht gehenlassen
auf diesem falschen Weg, aber ich...

Ich lehnte meinen mueden Kopf an die Rinde der Weide
und lauschte den sanften Wellen. Auf den Silberkaemmen
der Wasser trieben die verlorenen Seelen dem Land ihrer Liebe zu,
und wie gern haetten die Wasser mich getragen, aber
es wartet keine Liebe auf mich im Land der Toten
es wartet keine Liebe auf mich im Land der Lebenden
und so kann ich mit den Wellen nicht treiben
sondern muss meinen Weg suchen ueber die staubige Erde.
Die Wasser aber erzaehlten mir meine Geschichte
und die alte Weide weinte mit mir,
denn am Ende des gewaehlten Weges wartet Dunkelheit,
und die Zeichen, geschrieben in Staub,
verkuenden Leid.
Die Wasser baten mich zu bleiben, Weidenfinger streiften mein Haar;
Nachtgras schlang sich um meine Finger
und der Wind sang von den Zaubern meines Waldes
aber ich
durfte der Stimme meines Herzens nicht mehr lauschen,
war doch der Weg fuer mich gewaehlt ohne zurueck.
Geh nicht, sagte der Fluss, geh nicht
und der Wind verlieh dem Wald eine Stimme
als weinten die Tiere und Blumen um mein Gehen,
als schlage mein Schritt Wunden ins Herz der Baeume,
aber ich
verbarg meine Augen vor den Augen der Nacht.

Du laesst zurueck was Du bist, so sagten die Wasser,
fuer immer getrennt von den Inseln der Ruhe inmitten des Sturms,
von den geheimnisvollen Orten der Nacht,
wo Einhoerner streifen unter Sternenhimmeln,
wo spielerische Seide Dich fluechtig beruehrt
wenn Geschoepfe der Magie Deinen Weg kreuzen, ungesehen,
hier im Herzen Deiner Seele,
im Herzen Deines Traums,
wenn aber die harte Hand der Menschen diese Welt beruehrt
hast Du sie verloren fuer alle Zeit;
Deine Naechte werden leer und farblos sein
Und Du kannst nicht mehr zurueck ins Land Deines Sterns.
die glaesernen Bruecken der Traeume werden zerspringen
und der Waechter am Tor wird Dich nicht kennen,
Du kannst das Buendel Deines Leides nicht in seinen Armen lassen
behuetet wie ein Kind, wenn Du die goldenen Pfade betrittst.
Magie wird fliehen aus Deiner Welt
und nichts wird bleiben als fluechtige Erinnerung
wie an einen vergessenen Traum.
Trage nicht Dein Herz zu den Haenden der Menschen,
die Dein Vertrauen brechen, gedankenlos...

Und flehentlich erhobene Haende faechelten Wind in den Baeumen,
der Schrei eines Wolfes, der weiss er sieht den letzten Mond,
das Lied eines Schwans, der in Liebe stirbt,
der Tanz des Einhorns vor den Haeschern der Nacht,
aber ich
ich schlief auf den alten Wurzeln ein letztes Mal
und der traurige Gesang des Windes leitete mich in den Morgen,
ein goldener Himmel weinte Traenen aus Licht,
und der letzte Stern der Nacht verblasste nicht
sondern fiel...
Aber ich sah nicht, wie meine Sterne fielen,
sah nicht meine Blueten welken
noch die Blaetter der Baeume, beraubt ihres Gruens,
sah nicht meine Traeume zu Asche zerfallen und verwehen,
sah nicht die Regenwolken am Horizont.
Denn als ich erwachte, lag ich in Deiner Hand
und Deine Finger
schlossen sich
sacht


___________________________________________________________________

Friends part forever   
    wild geese lost in clouds

Ich werde euch nie vergessen...
                                               Summerwind

-----------------------------------------------------------------------------



Moorcock (Elric, 27. Jun 1996, 16:52:50):
Also, wenn irgendwer zur rechten des Vaters (JRRT) im Fantasy-Himmel zu sitzen
kommen sollte, dann ist das ja wohl Michael J. Moorcock. Der war naemlich
wirklich mal innovativ (wenn seine beste Zeit auch wohl eher in den 50er/60er
Jahren anzusiedeln ist.
Raymond E. Feist habe ich mal angelesen, fand ihn damals nicht so
faszinierend, weil in seiner Welt die Unterscheidung zwischen "gut" und
"boese" etwas zu leicht faellt. Ist aber schon laenger her; vielleich sehe ich
das ja jetzt anders. 
Als persoenliche Empfehlung moechte ich den Namen Steven Karl Zoltan Brust
nennen, der (fuer mich) momentan beste Schreiberling. Bei ihm einsteigen kann
man am besten mit der Vlad Taltos Serie, bestehend aus den Buechern: Jhereg,
Yendi, Teckla, Taltos,
Phoenix, Athyra und Orca. Protagonist der Reihe ist der "sorcerer, assassin
and some-time witch" Vladimir Taltos, ein "Easterner", der in einem Reich
lebt, das von - rein physiologisch gesehen - Elben-aehnlichen Wesen, genannt
"humans" bevoelkert wird. 
"Dragaerans have always been confused about who the humans are..."
Vlads Vater hat die Ersparnisse seines Lebens dafuer aufgewendet, die Familie
in das "Adelshaus" Jhereg einzukaufen (diese Haeuser sind normalerweise eine
menschliche - sprich, dragaerische - Angelegenheit, nur das Haus Jhereg, mehr
oder weniger identisch
mit Mafia + Angehoerige, verkauft seine Titel. Vlad hasst Dragaerer und ist
Meuchelmoerder geworden, damit er sich wenigstens dafuer bezahlen lassen kann,
wenn er sie umbringt.
Die Welt ist ausgesprochen klasse beschrieben, mit viel Geschichte,
Gebraeuchen und kulturspezifischen Witzen (die dann auch wirklich lustig
sind!!). Die Frage "was sind Goetter" kreuzt auf (und wird nicht beantwortet),
auch nicht, als Vlad irgendwann von
seiner Schutzgoettin Verra einen Mordauftrag erhaelt ("say, how did you come
to be called Demon-Goddess anyway..."), den diese hinterher bereut, als Vlad
sich, ziemlich zornig, aber auch ziemlich veraengstigt (klasse beschrieben in
Phoenix) vor ihrem Thro
n stehend ueber die Konsequenzen des Mordes beschwert.
Alles in allem eine hervorragende Serie mit klasse Geschichten in einer sehr
weit und tief durchueberlegten Welt (die Welt ist in einer Rollenspielrunde
entstanden).
Auch die anderen Buecher von Brust lohnen sich sehr, es wuerde aber die
ohnehin schon arg strapazierte Geduld der werten LeserInnen uebermaessig
beanspruchen, diese auch noch aufzufuehren. Erwaehnen moechte ich lediglich
"To Reign in Hell", was den Krieg
der Engel aus soziologisch-psychologischer Perspektive neu erzaehlt und einige
Luegen und Halbwahrheiten in der Bibel (die Geschichte schreiben immer die
Sieger) aufdeckt - abgefahrenst - und Agyar, welches einem recht ausgenudelten
Genre wieder Leben ein
haucht - ebenfalls sehr seltsam. Gemeinsam ist allen Buechern Brusts eine
gewisse Ironie, Liebe zur Sprache, Detailversessenheit und eine hervorragende
Beschreibung von Ritualmagie. 
All seine Schriften sind bisher nur in englischer Sprache erschienen, die
meisten sind allerdings problemfrei im Buchhandel zu beziehen.

-----------------------------------------------------------------------------



Re: Moorcock (Elric, 27. Jun 1996, 16:57:39):
~#! rn=Elric rt=835887170
~#! tid=835887170
hmm, vielleicht sollte ich Klammern auch mal wieder schliessen...
Fuer einen idiotensicheren Editor in der MPA!
Elric.
++

-----------------------------------------------------------------------------



Re: Midkemia (Moppi, 27. Jun 1996, 18:10:30):
~#! rn=Li rt=835864137
~#! tid=835864137
Hallole, ichoechte hierzu noch bemerken, dass es ein prima Spiel zu diesem
Buch gibt.Es heisst 'Betrayal at Krondor' und ist ein wirklich gutes
Rollenspiel.Naja vielleicht wird etwas zuviel gemetzelt, aber  dadurch geht
der Adventure_charakter des Spiels noch lange nicht verloren.

Moppi, der Gruesse von Schnatterinchen und Pittiplatsch sendet

-----------------------------------------------------------------------------



Knuddelmausbichtip (Semira, 27. Jun 1996, 18:46:35):
Also mein momentaner Favorit besteht aus 4 Teilen (wovon jeder um die 900
Seiten guten Lesestoff umfasst):

Tad Williams
- Der Drachenbeinthron
- Der Abschiedsstein
- Die Nornenkoenigin
- Der Engelsturm

Mag gar nichts ueber den Inhalt verraten, denn wo sollt ich anfangen, wo
aufhoeren...aber lest einfach mal rein und lasst Euch fesseln und fangen und
in eine andere Welt entfuehren. Jedenfalls ist alles dabei, was das Herz des
Fantasy-Freundes begehrt :))))

*begeistertweiterles*

Semira

-----------------------------------------------------------------------------



Re: Midkemia (Wurzel, 27. Jun 1996, 21:33:25):
~#! rn=Li rt=835864137
~#! tid=835864137
ok, feist schreibt recht nett. der vergleich mit tolkien hinkt trotzdem.
jeder autor, der von seinem verlag ordentlich gepusht werden soll, wird mit
tolkien verglichen (klar nur fantasy-autoren), und der vergleich hinkt bei
allen. und zwar auf allen vorhandenen fuessen.
das besondere ist bei tolkien der hintergrund, z.b. die ausgearbeitete
sprache. und dass keiner sich die sechzig jahre abmuehen moechte, kann man
natuerlich auch verstehen.... :)
wurzel

-----------------------------------------------------------------------------



Re: Re: Midkemia (Dhojakt, 28. Jun 1996, 00:33:40):
~#! rn=Li rt=835864225
~#! tid=835864137
Fuer tf-benutzer geht das auch mit /quote -S -dsend '<file>
Nur mal so angemerkt, Khidar.

-----------------------------------------------------------------------------



Re: Knuddelmausbichtip (Ancalagon, 28. Jun 1996, 13:47:12):
~#! rn=Semira rt=835893995
~#! tid=835893995
Moin erstmal!
Also, ich muss semira recht geben, die serie ist prima. ich hab sie auf
englisch gelesen und konnte gar nicht mehr aufhoeren. Nur das Ende ist etwas
enttaeuschend.... sorry semira, aber ich musste meinen senf einfach
dazugeben....
Herzlichst knudelnd,
                                                   Ancalagon
                                           Draco knuddellensis major

-----------------------------------------------------------------------------



Re: Re: Knuddelmausbichtip (Boing, 28. Jun 1996, 13:50:21):
~#! rn=Ancalagon rt=835962432
~#! tid=835893995
Das Ende ist aber nur enttaeuschend, weil es das Ende ist ... haette ruhig
noch ein paar Baende weitergehen koennen. :)
  Boing

-----------------------------------------------------------------------------



Re^3: Knuddelmausbichtip (Ancalagon, 28. Jun 1996, 14:00:06):
~#! rn=Boing rt=835962621
~#! tid=835893995
moin wieder!
Boing du hast recht! es hat den Anschein als haette ihm jemand auf die Finger
getreten und gesagt: " Noch 100 Seiten, und dann ist Schluss!" :)
Allerdings hab ich irgendwo gehoert, dass Williams selber eigentlich nur ne
trilogie schreiben wollte, und bei Band 3b :) dann endgueltig abgwuergt 
hat.....
Was eigentlicxh schade war....
Nochmals knuddelnd,
                                            Ancalagon
                                  Draco knuddellensis major

-----------------------------------------------------------------------------



Re: Moorcock (Wurzel, 28. Jun 1996, 20:43:10):
~#! rn=Elric rt=835887170
~#! tid=835887170
in bezug auf moorcock, okay, habe ich auch genossen und verschlungen.
was mich vielmehr inspiriert, ist diese sache mit wie heisst der mensch?
brust? mal vormerken, kenne ich nicht. noch nicht.
ich freue mich ueber diesen aktuellen tip, feist ist ja auch schon etwas
laenger her (ok, in deutsch glaube ich erst kurze zeit erhaeltlich).
noch was zu englisch: fantasy wird in deutschland per definitionem als
trivialliteratur (und damit minderwertig) angesehen, ergo kommen normal nicht
die faehigsten uebersetzer zum einsatz. dementsprechend mies ist dann oft
auch das ergebnis (besonders uebel z.b. bei Stephen Donaldson, meinem
immer noch-lieblingsautor). wer auch nur annaehernd englisch kann, sollte
mal versuchen die originale zu lesen. ein bemerkenswertes erlebnis, wenn
auch nur manchmal.

wurzel

-----------------------------------------------------------------------------



Re: Abschied (Woody, 29. Jun 1996, 00:23:15):
~#! rn=Summerwind rt=835886834
~#! tid=835886834

"Adieu", sagte er...
"Adieu", sagte der Fuchs. "Hier ist mein Geheimnis. Es ist ganz
einfach: man sieht nur mit dem Herzen gut. Das Wesentliche ist fuer
die Augen unsichtbar."
   "Das Wesentliche ist fuer die Augen unsichtbar", wiederholte der
kleine Prinz, um es sich zu merken.
   "Die Zeit, die du fuer deine Rose verloren hast, sie macht deine
Rose so wichtig."
   "Die Zeit, die ich fuer meine Rose verloren habe...", sagte der
kleine Prinz, um es sich zu merken.
   "Die Menschen haben die Wahrheit vergessen", sagte der Fuchs. "Aber
Du darfst sie nicht vergessen. Du bist zeitlebens fuer das verant-
wortlich, was du dir vertraut gemacht hast. Du bist fuer deine Rose
verantwortlich..."
   "Ich bin fuer meine Rose verantwortlich...", wiederholte der
kleine Prinz, um es sich zu merken.
-----

Summy... Ich werde nie aufhoeren, Dich zu sehen.


Dein kgF...
         Woody

-----------------------------------------------------------------------------



Re: Moorcock (Li,  1. Jul 1996, 12:25:42):
~#! rn=Elric rt=835887170
~#! tid=835887170
Okok, dann sitzt eben Moorcock rechts, und Feist zu Tolkiens Fuessen. Was die
Unterscheidung zwischen Gut und Boese angeht, stimme ich dir zu, da hat man es
nicht schwer. Aber muss Fantasy deswegen schlecht sein, nur weil von Anfang an
festeht, wer die guten und wer die Boesen sind? 
War ja bei Tolkien auch nicht anders...
Li (kennt kaum Fantasy, in der Gut und Boese verwischt/nicht zu erkennen sind)

-----------------------------------------------------------------------------



Re: Re: Midkemia (Li,  1. Jul 1996, 12:33:11):
~#! rn=Moppi rt=835891830
~#! tid=835864137
Oh, wirklich eins der Besten Fantasy-Computerspiele, die ich gespilet habe.
Eins der wenigen, in denen man seine Handlungen fast voellig FREI bestimmen
kann.
tolle Athmospaere, und ich welchem Computerfantasyspiel wird nicht gemetzelt?
Das Spiel, wie ein Buch in Kapitel unterteilt, spielt ueberigens nach Band 4.
Drehbuch des Spieles: R. Feist!
Li

-----------------------------------------------------------------------------



Re: Re: Midkemia (Li,  1. Jul 1996, 12:36:13):
~#! rn=Wurzel rt=835904005
~#! tid=835864137
Der Vergleich mit Tolkien hinkt immer, hab ich doch in meinem Artikel auch
gesagt, oder nicht? Jedenfalls ist bei feist der vergleich mit tolkien nicht
ganz so laecherlich, als wenn man Hohlbein mit Tolkien vergleichen wuerde.
(oder David Eddings, dessen Auge Aldurs Spitze war, aber der Rest???)
Li

-----------------------------------------------------------------------------



Re: Re: Moorcock (Li,  1. Jul 1996, 12:52:39):
~#! rn=Wurzel rt=835987390
~#! tid=835887170
Wow, ich hab Mordants Not von Donaldson auf Deutsch  VERSCHLUNGEN, kann mich
deshalb gar nicht daran erinnern, dass die Uebersetzung so schlecht war?!? 
Oder galt das mehr fuer Covenant, das war wirklich nicht besonders toll
uebersetzt.
IMHO ist Mordants Not mit das Beste, was auf Deutsch an Fantasy erschienen ist

-----------------------------------------------------------------------------



Re: Re: Moorcock (Elric,  1. Jul 1996, 13:37:04):
~#! rn=Li rt=836216742
~#! tid=835887170
Muss Fantasy schlecht sein, nur weil von Anfang an feststeht, wer die Guten
und wer die Boesen sind?
Eine wahrhaft philosophische Frage. Nun, meine Einstellung dazu ist, dass eine
Geschichte im Prinzip darunter leidet, enn "Gut" und "Boese" von vornherein
feststehen, weil solche Kategorien, wenn Personen zugeordnet, diese
entmenschlichen.
Das Gegenargument dazu ist, dass es sich ja um eine Fantasy-Gesschichte
handelt, und dass in einer Fantasywelt die Wesessn verdammt noch mal nicht
menschlich sein muessen. Dazu wiederum sage ich, dass der Autor aber
menschlich ist, und dass es eine
ziemlich grosse Leistung ist, Konzepte wie Gut und Boese, die mit menschlicher
Natur nicht viel zu tun haben (hoehoe), ueberzeugend 'rueberzubringen. Tolkien
schafft's, was auch daran liegt, dass seine Buecher ziemlich maerchenartig
sind 
(die normalmensschlichsten Charaktere im LotR sind die Hobbits und nicht
irgendwelche Menschen). Feist schafft's meiner Meinung nach nicht. Brust
umgeht das Problem, indem er zwar un-menschliche Charaktere beschreibt, aber
darin keinen Grund sieht, diesen
gleich irgendwelche Wertungen aufzudruecken. Oft tritt bei ihm der Charakter
von Personen dadurch zutage, wie besagte Person auf eine bestimmt Situation
RE-agiert (nicht: "ich bin machtgierig und boese, deshalb will ich die Welt
entweder besitzen oder
vernichten" sondern eher "wenn mein Gegner zuerst zuschlaegt, koennte alles
vorbei sein, also muss ich schneller sein, auch wenn ich nicht ganz sicher
bin, ob er ueberhaupt zuschlagen will"). Dadurch schukeln sich Konflikte hoch,
in denen man Gut und 
Boese vergeblich sucht (bis auf eine gewisse Sympathie mit dem ich-Erzaehler,
den es in vielen von Brusts Buechern gibt). 
Auch der gute Moorcock kriegt's nicht ganz gebacken: Er behauptet zwar immer,
dass Chaos und Ordnung nichts mit Gut und Boese zu tun haben, aber kann diese
Behauptung in seinen Geschichten nicht ganz umsetzen. Chaos ist, wenn nicht
immer haesslich
und feindselig, dann doch immer irgendwie sinister. Seine Eternal Champions
nieten reihenweise Chaoswesen um und selbst Elric, der ja Chaot ist
(eigentlich), wendet sich gegen das Chaos und bekaempft es mit seinen eigenen
Mitteln (Sturmbringer,die Drachen
Als Fazit: je unwirklicher die Geschichte ist, je weniger man sich mit den
Charakteren identifiziert, desto mehr Gut-und-Boese vertraegt sie. Genauer: je
mehr ssich der/die Lesende mit einem Charakter identifizieren soll, desto
schwieriger ist es, diesem 
ohne komplette Verflachung unmensschliche Qualitaeten glaubhaft zuzuordnen. 
U.A.W.G.,
Elric.

-----------------------------------------------------------------------------



Re: Re: Moorcock (Wurzel,  1. Jul 1996, 19:52:47):
~#! rn=Li rt=836216742
~#! tid=835887170
fantasy, wo gut und boese nicht so eindeutig festgelegt sind?
da koennte ich beispielsweise tanith lee empfehlen... ist aber sicher eher
die ausnahme.
wurzel

-----------------------------------------------------------------------------



Re^3: Moorcock (Lug,  2. Jul 1996, 02:45:30):
~#! rn=Li rt=836218359
~#! tid=835887170
Moin,

zu Donaldson: Trotz der so amuesanten wie vernichtenden Kritik von D.
Langford, halte ich die beiden Weissgold-Zyklen fuer grandiose Fantasy. Aber
die Mordand Reihe ging mir nur noch auf die Nerven. Diese "heldin" ist doch
wohl das unwahrscheinlichste seit dem Omo-Knoten. Wenn sie einmal mit ihrem
gehirn anstelle ihres Unterleibes denken wuerde, waere sie ja vielleicht noch
glaubhaft. Aber sowas? WUERG!

Persoenliche Meinung

Lug

-----------------------------------------------------------------------------



Re: Re: Moorcock (Yendi,  2. Jul 1996, 12:56:54):
~#! rn=Li rt=836216742
~#! tid=835887170

Bei Tolkien steht von Anfang an fest, wer die Guten und wer die Boesen sind?
Naja, bei Hobbits und Ringgeistern mag das stimmen, die sind recht einfach
gehalten. Aber verrat mir doch mal, ob Boromir gut oder boese ist? 
Oder Gollum? Oder Denethor? Oder der kleine Orkscout, der bei der Verfolgung
der Hobbits seinen grossen Soldatenkollegen umbringt?
War Grima Schlangenzunge am Ende des letzen Bandes boese, als er Saruman
toetet?

Nicht zu vergessen, dass Aragorn stellenweise abweisend und herrisch wirkt,
mal ganz davon abgesehen, dass mir nicht wohl ist bei der Bemerkung, dass
die Blutlinie der Numenorer verwaessert wurde und die Nachkommen nur noch
wenig laenger als gewoehnliche Menschen lebten... 

War Frodo immer noch edel und gut, als er den Ring nicht vernichten wollte?

Ja, die Sympathien sind bei Tolkien klar verteilt, aber die Rollen lassen
einiges an Grautoenen zu, sodass die Unterscheidung gut/boese m.E.n. nicht
immer eindeutig zu faellen ist.


-----------------------------------------------------------------------------



Re^3: Moorcock (Li,  3. Jul 1996, 10:15:19):
~#! rn=Yendi rt=836305014
~#! tid=835887170
Meiner Meinug doch: boromir war eindeutig "gut" (muessen wir jetzt erstmal gut
definieren?), das gleiche gilt fuer Denethor. Beide wurden zwar durch Stolz
verfuehrt(wie uebrigens viele Dunedain). Frodo war ebenfalls ganz klar gut,
denn sonst haette er den Ring gleich nach Bruchtal, als er die ganze
Geschichte kannte, fuer sich beansprucht! Er wurde halt nur durch den(ganz
klar boesen) Ring korrumpiert und verlor zum SChluss seinen frein Willen. Das
ganze gilt natuerloich noch mehr fuer Gollum, der auch gut war! Gollum wurde
zwar durch nicht kontrolierbares Verlangen nach dem Ring geleitet, aber selbst
nach so langer Zeit konnte der Ring Gollum nicht vollstaendig in seine Gewalt
bringen(Ich erinnere an das "streitgespraech" zwischen smeagol und Gollum, das
Sam belauschte). Ausserdem verleiht der ring ganz eindeutig seinem Traeger
Faehigkeiten nach seinen Anlagen. Gut, Gollum hat Deagol umgebracht, seine
Familie ausspioniert, aber war das wirklich Gollum oder der Wille oder die
Faszination des Rings?
Orks, als von Morgoth pervertiert gezuechtete Wesen, sind natuerlich boese, da
er sie in seinem sinne gezuechtet hat.
Grima ist boese. Man muss ja immer das ganze Leben sehen, und Grima hat sein
ganzes Leben lang fuer seinen eigenen vorteil gelogen, betrogen, spioniert,.
Der Mord an Saruman war ja wohl eher eine Verzweiflungstat.
Was die Verwaesserung des Numenorblutes angeht, so haben wir Deutsche
(Schweizer, Oesterreicher) sicherlich eine etwas andere Reaktion als
Englaender, das erinnert immer an die Rassenlehre der Nazis.
Aber bei Tolkien ist das Fakt: die Numenorer haben als Belohnung fuer ihre
Taten u.a. ein laengeres Leben bekommen, und Nachkommen mit kurzlebigen
Menschen werden halt nicht so alt wie ihr numenorisches Elternteil. (Aber was
hat das mit gut und boese zu tun?).
Und das Aragorn herrisch und abweisend wirkt, hat doch nichts damit zu tun,
dass er gut oder boese ist. Gut oder boese definiert sich nach den Taten,
nicht wie einer aussieht.
Naja, vieleicht sollten wir das Thema hier mal beenden, vieleicht mailst du
mir ja mal, wenn du noch weiter darueber diskutieren moechtest?
Li
P.S. Uebrignes, die Vorgehensweise hier im MUD: Wenn man boese monster toetet,
wird man gut, lehne ich im RL(und auch in der Fantasyliteratur) aufs
allerschaerfte ab. Wer jemenden toete, weil er schlecht, boese, ein Verbrecher
oder was auch immer ist, wird nicht gut, sondern stellt sich langsam auf eine
Stufe mit dnen, die er verurteilt.

-----------------------------------------------------------------------------



Re^4: Moorcock (Acrimon,  3. Jul 1996, 11:44:26):
~#! rn=Li rt=836381719
~#! tid=835887170

Das ist richtig - wer Moerder toetet, stellt sich auf eine Stufe mit diesen.
Man musz andere Wege finden, um Moerder von ihren Taten abzuhalten.

Im Uebrigen kann Fantasyliterataur, die nicht zwischen Boese und Gut
unterscheidet, gar nicht lesenswert sein.
Denn der Mensch ist in seinem innersten Wesen doch gut - und das ist immer so,
auch wenn der Mensch sein Innerstes unterdrueckt und im unbemerkten
Widerstreit mit dem Innersten der Seele boese Taten und Gedanken fuehrt.
Der Mensch identifiziert sich also mit dem Guten, und wenn der Gute eine
kraeftige Portion an Idealismus aufbringt - umso besser.
(PS: Der wahre Idealismus ist hier gemeint: Nicht der, der sich ein Ziel
festsetzt, sondern der, der nach dem Ziel sucht.)
In einem Buch, in dem das Gute des Helden verwaessert ist und der Held
manchmal gute Taten vollbringt und manchmal Schlechte, ohne sie zu bereuen,
kann man sich nur teilweise mit dem Helden identifizieren.
Ueberwiegen gar die schlechten Taten, dann hofft der Leser auf einen Sieg der
"Gegner".

Klar ist es nicht realistisch, aber wollen wir das etwa?

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re^5: Moorcock (Wurzel,  3. Jul 1996, 19:17:13):
~#! rn=Acrimon rt=836387066
~#! tid=835887170
nein, ich fange jetzt nicht schon wieder einen glaubenskrieg mit acrimon an.
auch wenn es in den fingern juckt... :)

wurzel

-----------------------------------------------------------------------------



Re^6: Moorcock (Li,  4. Jul 1996, 08:54:35):
~#! rn=Wurzel rt=836414233
~#! tid=835887170
*kicher* Genaus das gleiche hab ich auch gedacht! :-)
Aber dennoch: Ich behaupte, dass der Mensch im Innersten weder gut noch boese
ist, sondern "neutral" und das sich jeder entscheiden kann, was und wie er
wird
Aber so einfach ist es nicht: nicht jeder, der einen anderen Menschen toete,
ist deshalb gleich boese, und nicht jeder, der "gute Taten" begeht, ist auch
gut.
Li (ist schon gespannt auf Acrimons Antwort zum Thema toeten)

-----------------------------------------------------------------------------



Re^5: Moorcock (Pampers,  4. Jul 1996, 11:45:53):
~#! rn=Acrimon rt=836387066
~#! tid=835887170
Ohje, Acrimon!

> Im Uebrigen kann Fantasyliterataur, die nicht zwischen Boese und Gut
>unterscheidet, gar nicht lesenswert sein.
Wer entscheidet das? Du?
Meine Lieblingsfantasyfigur ist KANE von Karl Edward Wagner...
Richtig schoen boese, fies und gemein... und ungeheuer lesenswert.... 
>Denn der Mensch ist in seinem innersten Wesen doch gut
Oh Mann... Deinen Glauben moecht ich haben...
Oder besser doch nicht.... :-)
Wer sagt, dass das so ist? 
Und wer definiert "gut"???
>Ueberwiegen gar die schlechten Taten, dann hofft der Leser auf einen Sieg der
>"Gegner"
Acrimon, du wirst irgendwann lernen muessen, zwischen Wahrheiten und
individueller Wahrheit zu unterscheiden.... Ich bin dieser "Leser", von dem Du
schreibst, naemlich nicht. Bloss weil es Dir so geht, heisst das nicht, dass
es allen so gehen muss....

Ehrlich gesagt, mir sind die meisten Fantasyhelden viel zu suess... kriegt man
ja Karies von... BAEH!
Gruss,
 Pampers. Gemein. Hinterhaeltig. Arrogant.


-----------------------------------------------------------------------------



Re^6: Moorcock (Highlander,  4. Jul 1996, 12:28:29):
~#! rn=Pampers rt=836473553
~#! tid=835887170
Pampers:
> Acrimon:
>> Im Uebrigen kann Fantasyliterataur, die nicht zwischen Boese und Gut
>> unterscheidet, gar nicht lesenswert sein.
>Meine Lieblingsfantasyfigur ist KANE von Karl Edward Wagner...
> Richtig schoen boese, fies und gemein... und ungeheuer lesenswert.... 

Aeh, Pampers, Du widers[richst ihm gar nicht. Und das wolltest Du doch, oder?
*grins*
Aber boese Charaktere koennen wirklich sehr interessant sein - bei Dragonlance
ist auch Raistlin der interessanteste Charakter, finde ich. Oder Dalamar,
dessen Aktionen wegen der Situation eher gut sind, der aber auch black robe
ist.
Raistlin ist bestimmt _nicht_ zu suess :>
   HrT

-----------------------------------------------------------------------------



Re^5: Moorcock (Elric,  4. Jul 1996, 17:29:30):
~#! rn=Acrimon rt=836387066
~#! tid=835887170
Oh Mann, Acrimon... 
Ich bin schwer versucht, das, was Du da geschrieben hast, einfach stumpf als
Provokation einzuordnen. Wenn der Artikel von mir waere, waere es Satire,
allerdings waere mir beim zweiten Lesen der gedanke gekommen, das zu einer
guten Satire ein wenig Subtilitaet gehoert, und die vermisse ich bei Deinem
Artikel voellig.
Ich werde mir also Muehe geben, den Artikel so Ernst wie moeglich zu nehmen.
*Selbstbeherrschung an*
Ich nehme an, dass der Autor des Bezugsartikels ein Anhaenger der sog. "High
Fantasy" ist, repraesentiert in den oberen Klassen durch Titel von J.R.R.
Tolkien, in den unteren durch Produkte wie Terry Brook's "Shannara-Zyklus" 
(eines der uebelsten Machwerke seit Drachenlanze) und der gesamte Auswurf von
Wolfgang Hohlbein. Der erstgenannte war klasse (ist r immer noch), und zwar
wegen 
des bisher in vergleichbarer Literatur bisher unerreichten Detailreichtums und
der Verknuepfung der Geschichten mit einer Weltgeschichte, die hervorragend
aufgebaut ist, und zwar gerade deswegen, weil hinter der Kreation dieser
Weltgeschichte nicht die
Absicht steckte, einen Roman zu schreiben, sondern weil diese Geschichte
vorerst in muehevoller Kleinarbeit als Selbstzweck konzipiert wurde. 
In einer solchen Welt faellt es sehr schwer, Konzepte, die nicht
High-Fantasy-kompatibel sind, unterzubringen; und es wuerde sicherlich auch
keine besonders gute Geschichte dabei herauskommen.
Wenn der/die geneigte LeserIn jedoch einmal den Blick auf das Gros der
Identifikationsfiguren - und vor allem der feindbilder!! - im High
Fantasy-Subgenre wirft, wird hoffentlich klar, wie jaemmerlich flach sowohl
Protagonisten als auch Antagonisten 
geraten sind. Als Protagonisten haben wir haeufig a) einen Frodo-Verschnitt
(das mag ein Zauberlehrling, ein junger Ritter, jede (noch) relativ machtarme
Figur sein) b) eine Vaterfigur a la Gandalf (bei Terry Brooks ist es der
unertraeglich perfekte 
Druide Allanon, in dem sich saemtliche Faehigkeiten der Istari uns die der
Waldlaeufer des Nordens vereinen, kombiniert mit der moralischen Integritaet
Franz von Assisis) c) einen leicht unterlegenen Freund des Hauptprotagonisten
a la Sam Gamgee.
Dazu kommen diverse Freunde und Helfer.
Die Feindbilder sind ebenfalls sehr einfach. Wichtigstes Element ist immer ein
boeser Zauberer, der seine Armeen von blutruenstigen Schergen losschickt, um
sich die Welt untertan zu machen. 
*gaehn*
Als ich zwoelf war, konnte ich mich auch noch mit Hohlbeins Protagonisten
identifizieren; aber mit dem Abklingen der Pubertaet hat meine Faszination
fuer strahlende Helden ziemlich schnell nachgelassen. 

Ob das jetzt aggressiv genug war?
Hoffentlich.
ICH WILL FLAMES!!!
Elric. Im Ernst.
++

-----------------------------------------------------------------------------



Re^6: Moorcock (Grimmborn,  4. Jul 1996, 18:38:34):
~#! rn=Elric rt=836494170
~#! tid=835887170

Ihr habt alle das Prinzip nicht verstanden. Wenn man ernsthaft und erfolgreich
mit anderen diskutieren will muss man das in einem konstanten System tun. Es
hat keinen Zweck einen blauen Apfel dazu bringen zu wollen rot zu werden indem
man ihm von roten Rosen erzaehlt. 
Daher, was das "gut-sein" des Menschen betrifft, das kann man systemimmanent
leicht widerlegen: Im alten Testament (1. Mose, oder fuer die Katholen:
Genesis) steht "Das Trachten des Menschen ist boese von Jugend an", hab meine
Bibel nicht dabei, daher kann ich die Stelle nicht angeben, aber das sagt der
HERR im Anschluss an die Sintflut.
So, und wer behauptet jetzt noch, dass der Mensch "eigentlich" gut ist?

Nebenbei, mich langweilen "platte" Seiten immer, das Leben ist kaum schwarz
oder weiss, es ist fast ausschliesslich grau. Und ihr irrt, wenn ihr sagt, bei
Tolkien seien die Seiten klar und eindeutig den Figuren zugeordnet, eigentlich
jeder "gute" Charakter muss kaempfen, und nicht alles was die "Boesen"
anfangen ist schlecht und verderblich (Smeagol). Aber ich gerate ins
plaudern...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^6: Moorcock (Lug,  4. Jul 1996, 18:53:07):
~#! rn=Pampers rt=836473553
~#! tid=835887170
Moin,

Kane? Ist der in Deutschland endlich mal vollstaendig aufgelegt? Bisher musste
man sich die zensierte Stelle, ja immer in einem vergriffenen Heyne Sammelband
suchen.

Das englische Original empfehlend

Lug

-----------------------------------------------------------------------------



Re^6: Moorcock (Wurzel,  4. Jul 1996, 20:11:36):
~#! rn=Elric rt=836494170
~#! tid=835887170
als beispiel fuer eine relativ gut gelungene hauptfigur, die so gar nicht
dem klischee, das elric angesprochen hat, empfehle ich thomas covenant,
genannt "the unbeliever". entspricht uebrigens auch dem klischee von acrimon
nicht :)
fuer diejenigen, die die buecher von donaldson nicht kennen, ganz kurz:
thomas covenant ist leprakrank. in einem leprosorium lernt er muehevoll,
mit seiner krankheit umzugehen, die seine nerven absterben laesst. von
seiner umwelt erntet er nur ablehnung. durch ein anfangs auch fuer ihn
undurchschaubares geschehen gelangt er in eine ihm fremde welt, in der
er als der prophezeite held und retter der menschheit begruesst wird.
das unmoegliche geschieht: seine lepra bzw. die auswirkungen der krankheit
gehen zurueck. was macht er draus? etwas fuer das genre eher untypisches:
die junge frau, die ihn begruesst hat und ihm die ersten schritte in der
welt zeigt, wird von ihm vergewaltigt. das fantasy-sprengende daran ist in
meinen augen, dass er nach wie vor der erwartete held sein soll, und es ihm
niemand so richtig uebel nimmt (ausser er sich selbst).
genug davon, wie es weitergeht, kann jeder in den sechs baenden selbst
lesen. auf jeden fall ist thomas covenant einer der ungewoehnlichsten helden,
den die fantasy bis heute hervorgebracht hat. und ich habe bis heute kein
klischee und keine schublade gefunden, wo er reinpasst.

wurzel

-----------------------------------------------------------------------------



Re^6: Moorcock (Li,  8. Jul 1996, 08:41:46):
~#! rn=Elric rt=836494170
~#! tid=835887170
Flames auf so einen Artikel? nicht von mir!
Li (reagiert auf das Wort hohlbein wie ein Stier auf einen Torero mit
wedelnder Capa)

-----------------------------------------------------------------------------



Re^7: Moorcock (Li,  8. Jul 1996, 08:47:32):
~#! rn=Wurzel rt=836503896
~#! tid=835887170
Hmm, die vergewaltigung nimmt ihn keiner uebel? Das hab ich zwar anders in
Erinnerung, aber naja. Was du noch erwaehnen solltest, ist, das Covenant nicht
an die Realitaet der Welt glaubt, in die er versetzt wird. (Deshalb auch die
Vergewaltigung aus Wut, das Zulassen der Zerstoerung einer ganzen
Waldsieldung: Ist ja eh nicht echt).
Also zumindestens im ersten Band ist(bzw. verhaelt sich) Covenant wie ein
richtiges Arschloch, und ist damit ein wirklich ungewohnlicher "Held".

-----------------------------------------------------------------------------



Meine Lebensgeschichte (Toeter, 10. Jul 1996, 12:46:34):
Hi,
in Zeiten wo die Helden der Jugend ihre Wechseltage bekommen und die Rebellen
von einst staatlich gesicherte Rente beziehen waechst das Verlangen nach
tradiertem und althergebrachtem aus der Zeit des Sturm und Dranges. Nach lang-
jaehriger Entwicklungshilfe einer gewissen Person - nennen wir sie Svalois
Schmittelgruber - sind Fragmente dessen gefunden worden, was in Uebereinstim-
mung mit den alten Schriften gemeinhin als 'Das Hydratoeterlied' bezeichnet 
wird. Der Bestimmung nach entstammt dieses von einigen mit dem Pur-Porc-Zyklus
(auch bekannt als die Wurstmastersage) in Verbindung gebrachte Schriftstueck 
den Ruinen einer blau-weissen Lebensmittelkette. Ein Blick auf die Kulturseite
des WWW, Literarische Texte::Gedichte mag dies belegen.
   Toeter
PS: Alles ohne Sinn :)

-----------------------------------------------------------------------------



Neulich, im Internet... (Yendi, 24. Jul 1996, 13:00:59):


(vielleicht sollte das eher nach schmarrn oder witze)

Aus de.rec.buecher, von stefan.schiller@rphc1.physik.uni-regensburg.de
 
 
Und wo ich schon mal beim Schreiben bin, hier noch schnell, was ich 
grad beim Durchblaettern vom 'Fussballkrieg' wiederentdeckt hab - 
sozusagen als Signaturequoteersatz :
 
-------------------------------------------------------------------
 
Gebet von Koq, Fuehrer des Stammes der Grikuas, vor der 
Schlacht mit den Afrikaandern im Jahre 1876:
 
 
                        Gott!
           Trotz zahlreicher Gebete an Dich
         verlieren wir staendig unsere Kriege.
  Morgen werden wir neuerlich in eine Schlacht ziehen,
         die man in der Tat gross nennen kann.
       Wir benoetigen ganz dringend Deine Hilfe,
       und daher will ich Dir etwas anvertrauen:
  Diese morgige Schlacht wird keine leichte Sache sein,
     in der wird man Kinder nicht brauchen koennen.
          Daher habe ich eine Bitte an Dich:
         Sende uns nicht Deinen Sohn zu Hilfe.
                     Komm selber.
 


Nett, nicht? Ja, da kommt man ins Gruebeln...



-----------------------------------------------------------------------------



Re: Die Made! (Cauno,  5. Aug 1996, 10:50:04):
~#! rn=Catweazle rt=838723955
~#! tid=838723955
[Verlegt von anzeigen, Cauno,  5. Aug 1996, 10:49:27]:

Habs gefunden.

Hinter eines Baumes Rinde
wohnt die Made mit dem Kinde.

Sie ist Witwe, denn der Gatte,
den sie hatte, fiel vom Blatte.
Diente so auf diese Weise
einer Ameise als Speise.

Eines Morgens sprach die Made:
"Liebes Kind, ich sehe grade,
drueben gibt es frischen Kohl,
den ich hol. So leb denn wohl!
Halt, noch eins! Denk, was geschah,
geh nicht aus, denk an Papa!

Also sprach sie und entwich. -
MAde junior aber schlich
hinterdrein; und das war schlecht!
Denn schon kam ein bunter Specht
und verschlang die kleine fade
Made ohne Gnade. Schade!

Hinter eines Baumes Rinde
ruft die Made nach dem Kinde ...


gefunden in Das grosse Heiz Erhart Buch,    C. No


-----------------------------------------------------------------------------



Neulich, in der UNIcum: (Yendi, 12. Aug 1996, 14:23:10):

Ein schoener Aphorismus von Thomas Romanus Boekelmann:

"Nicht jeder, der in der Tinte sitzt,
 sollte auch zur Feder greifen."



-----------------------------------------------------------------------------



Re: Neulich, in der UNIcum: (Cauno, 12. Aug 1996, 14:24:10):
~#! rn=Yendi rt=839852590
~#! tid=839852590

Erinnert mich an so einen T-Shirt-Spruch:

"Das Leben ist Scheisse,
 aber manchmal muss man sich durchbeissen."


-----------------------------------------------------------------------------



Tod einer Stadt von Frank Herbert (Muadib, 12. Aug 1996, 19:21:09):
halloechen,

wer die twilight-zone storys liebte fuer den hab 
ich einen tip:
  Tod einer Stadt von FRank Herbert *ja der von DUNE*
  erschienen im Heyne-Verlag *neuerscheinung*
das buch enthaelt 30 short-storys, alle angesiedelt
im bereich des fantastischen scifis
geschrieben wurden die storys von 1952 bis 1985 fuer 
die allbekannten heftchen wie astounding stories
oder 
startling stories, amazing etc
die stories sind groesstenteils lesenswert obwohl auch 
einige sehr schwache dabei sind
sondertip die story Froesche und Forscher ;)

empfehlung:  lesen

bis zum naechsten buch

 muadib *marcel fuer arme*


-----------------------------------------------------------------------------



Zeit der Graeber von Bjoern Jagnow (Muadib, 12. Aug 1996, 19:21:57):
Lange habe ich mit mir gerungen, ob ich berichten sollte
ueber das Buch "Die Zeit der Graeber" von Bjoern Jagnow.
Nun habe ich mich dazu entschlossen, die Rolle Hiobs wahrzunehmen
fuer alle Buecherliebhaber und Kenner der Welt des Rollenspiels "Das
Schwarze Auge".
Denn eben in dieser Welt spielt das im Heyne-Verlag erschienene "Buch".
Kurz zum Inhalt:
 Am Ende des aventurischen Jahres herrscht an fuenf Tagen der Namenlose
 Gott, Widersacher der Zwoelfgoetter, in Aventurien.
 Zu dieser Zeit bleiben die Aventurier zuhause und beten.
 Doch Narena und Wulfen gehen gerade zu dieser Zeit auf einen heiligen
 Boronsanger, einen Friedhof fuer nicht DSA-Kenner.
 Und dort nimmt das Unheil seinen Lauf.

Nun sollte eigentlich die Inhaltsangabe das Unheil beschreiben, doch ist
das eine geringe Aufgabe im Vergleich zum literarischen Unheil das der
Autor verbreitet.
Seine Charactere sind so schwach gestaltet, dass sie an eine duenne
Fischblase erinnern, durchsichtig, unangenehm riechend und nur zum 
wegschmeissen geeignet.
Dies trifft auf das gesamte Werk zu.
Irgendwo hat der Autor wohl mal aufgeschnappt, dass das Durchbrechen der
Einheit von Zeit und Raum ein beeindruckendes Stilmittel sind, und ebenjenes
versucht.
Jedoch ist Bjoern Jagnow kein Joyce, nicht mal annaehernd.
Sein Versuch stilgemaess zu glaenzen endet mit einem unsinnigen Debakel
verworrener Handlungsstraenge, der ohnehin duerftigen Handlung.
Auch das Mittel des Gedankenfluss verwendet der Autor sporadisch und
verursacht damit das, was eigentlich die Handlung schaffen sollte:
Entsetzen und Grauen.

Insgesamt lohnt es sich auf keinen Fall dieses Buch zu kaufen,
ist es doch zu dick um als Tuerstopper zu dienen, zu leicht fuer 
einen Briefbeschwerer und die Blaetter sind zu hart als Toilettenpapier.
Lesen sollte man es auf gar keinen Fall, ausser man empfindet eine
kranke Freude daran, wertvolle Minuten seines Lebens zu vergeuden
und sich die Laune zu verderben.

Nun sind es ja doch ein paar Zeilen geworden, welche Verschwendung
laesst sich doch der Inhalt dieser Besprechung einfach zusammenfassen:


  VORSICHT VOR DEM BUCHE !! 

-----------------------------------------------------------------------------



Das Silmarillion von J.R.R. Tolkien (Muadib, 12. Aug 1996, 19:23:02):
> Eru war da, der Eine, der in Arda Illuvatar heisst; und er
 schuf erstens die Ainur, die Heiligen, Sproesslinge seiner
 Gedanken; und sie waren bei ihm, bevor irgend andres
 erschaffen war. Und er sprach zu ihnen, sie Melodien lehrend,
 und sie sangen vor ihm, und er war froh. Lange aber sangen sie 
 nur jeder fuer sich allein oder zu wenigen, waehrend die anderen
 lauschten, denn jeder verstand von Illuvatars Gedanken nur
 jenen, aus dem er selber stammte, und nur langsam lernten sie
 auch ihre Brueder verstehen. Doch indem sie hoerten, verstanden
 sie besser, und es wuchsen Einklang und Harmonie. <

Doch lange bleibt sie nicht erhalten, die Harmonie, die am Anfang
des Silmarillions steht.
Denn John Ronald Reuel Tolkien entfuehrt den Leser schnell in die
Geschichte des Ersten Zeitalters der Welt.
Er weiss zu berichten von den Elben, den Menschen und den Naughrim,
den Zwergen, im gemeinsamen doch uneigem Kampf gegen Morgoth, den Dunkeln 
Herrscher, der die Schar der Ainur im Zorn verliess und fortan das Boese 
ueber die Welt bringt.
Doch nicht nur gegen Morgoth und sein Gezuecht, den Drachen, Orks und
Balrogs, kaempfen die Kinder der Welt sondern auch gegen sich selbst und
ihre Schwaeche.
Leidenschaft, Wahnsinn, Stolz, Treue,  all diese Eigenschaften bestimmen
die Geschichte der Welt, die von Tolkien akribisch genau, doch auch mit
ungestuemer poetischer Kraft beschrieben wird.
Der Leser wird mit gerissen in die Geschicke der Welt, er bedauert den
Stolz Feanors, fasziniert beobachtet er die Entstehung von Sonne und
Mond, voll Ruehrung beobachtet er die Geschicke von Beren und Luthien
und hilflos muss er schliesslich zusehen wie Morgoth und sein erster Diener 
Sauron mit dem Untergang Gondolins auch das Ende des ersten Zeitalters 
besiegelt.

Das Buch 'Das Silmarillion' behinhaltet jedoch nicht nur die 'Quenta
Silmarillion' sondern auch die kleineren Lieder 'Ainulindale', 
'Valaquenta', 'Akallabeth' und die Geschichte von den Ringen der
Macht und dem Anfang des Dritten Zeitalters.

Die Sprache Tolkiens ist in diesem Werk von besonderer epischer Kraft
kombiniert mit milder Poesie, die den Lesegenuss noch weiter hebt als
Tolkiens bekanntestes Werk "Der Herr der Ringe", das Rote Buch der Westmark.

Es empfiehlt sich direkt nach dem Silmarillion das Buch ueber den 
Ringtraeger zu lesen, ist der Leser dann doch eingeweiht und erfuellt von 
den Mythen und Legenden, auf denen Tolkiens Welt fusst und die auch das 
Verstaendnis fuer "Der Herr der Ringe" entscheidend verbessert.

Kurz "Das Silmarillion" ist eine absolut lesenswerte, packende
und ja sogar traumhafte Lektuere, ein Lichtblick im Alltag,
und mitunter unangenehme Selbsterkenntnis.

Das mir vorliegende Exemplar ist erschienen in der Reihe "Greif-Buecher"
des Klett-Cotta Verlages und besitzt die ISBN-Nummer: 3-608-958041.
Der Preis ist mir nicht gelaeufig, aber er ist es wert.

  

-----------------------------------------------------------------------------



mr. stitch  ein film (Muadib, 12. Aug 1996, 19:23:51):
hallo liebe mitmenschen,

mister stitch ist zwar kein kinofilm, sondern
eine videoproduktion, die mir in die haende fiel aber denoch ...
seid gewarnt !

die hauprollen in diesem film der MEGABOOM PRODUCTION (jaha der
name ist programm, aber seid wann bedeutet BOOM SCH..... ?)
spielen rutger hauer (mein gott was wurde aus dem bladerunner-star)
und wil weasle wheaton bekannt aus startrek und der newsgroup
alt.wesley-crusher.die.die.die ( ehemals lesenswert)
nun zur story: doktor wankirgendwas versaut seine volkshochschul-
patchworkhausaufgabe und naeht statt eines kissens ein superstarkes,
superintelligentes juengelchen zusammen (tja pech rutger)
der bengel ist ziemlich perfekt bis auf die tatsache dass er aus
flicken von 88 menschen besteht und keine genitalien hat (gottseidank)
nun beginnt der knabe sich an die tode seiner bestandteile zu erinnern
und just in diesem moment erfaehrt der zuschauer, dass das flickwerk
ein superkillerprodukt eines durchgeknallten militaers ist
begleitet von einer minilovestory entflieht der bursche, kommt wieder
zurueck und ermordet sich, seine schoepfer und seinen nachfolger sowie
alle daten mit nervengas   die WELT ist gerettet ....
die regie fuehrt ein herr avaray ( nicht tex avery )

der film hat, um ihn wenigstens ein bischen zu loben, einige schwaechen
der rest ist einfach nur mist, den selbst ein ed wood abgelehnt haette.
rutger hauer in der rolle des doktors erinnert an dr. dr. best nur nicht
ganz so lebendig un wil wheaton als monster ... nun ... naja er 
kann sich freuen, dass  man ihn durch die maske eigentlich nur durch
das verraeterische doppelkinn erkennt, so hat er vielleicht nochmal
eine chance eine rolle zu bekommen ( ich wuerd ihn gern mal als
ronald mcdonald sehen)
mein tip: lieber texas docsnyder sehen, das ist noch feingeistig gegen
diese zelluloidverschwendung


muadib *kennt aber auch gute filme und buecher*

-----------------------------------------------------------------------------



Re: Das Silmarillion von J.R.R. Tolkien (Caradhras, 17. Aug 1996, 07:23:02):
~#! rn=Muadib rt=839870582
~#! tid=839870582
               Guggs ihr Nichtfroesche

Da muss ich doch auch gleich mein Tuempelwasser dazu schreiben. :-)
Teilweise muss ich Muadib Recht geben, teilweise auch ziemlich
unrecht. 
Recht geben muss ich ihm insoweit, dass das Silmarillion absolut
lesenswert ist. Nicht ganz zustimmen kann ich ihm in seinem
verallgemeinertem Lob des Silmarillions. Eigentlich handelt es
sich dabei nur um eine Sammlung von Aufsaetzen, die von Christopher
Tolkien ( J.R.R.Ts Sohn) in Zusammenarbeit mit Guy Gavriel Kaye
bearbeitet wurden, um der grossen Nachfrage nach mehr Hintergrund-
geschichten der Altvorderenzeit gerecht zu werden.
Sicher ist es empfehlenswert, sogar sehr empfehlenswert, den Herrn
der Ringe vor dem Silmarillion zu lesen, aber wenn ihr euch durch
die ersten 100 Seiten des HDR durchkaempfen musstet, wenn euch nur
an reiner Action etwas liegt, wenn euch Zusammenhaenge der Geschichte
Mittelerdes, der background der Welt Tolkiens, nicht interessiert,
dann ist wohl das Silmarillion nichts, aber auch gar nichts fuer
euch. Dort tauchen sehr viele Namen auf und es ist wirklich nicht
leicht zu lesen und vor allem sich nicht leicht zu merken. Lange
nicht in der Breite des HDR angelegt, dafuer eher in der Tiefe
der Zeiten, dient es vielmehr der Klarstellung vieler Fragen der
Vergangenheit, der Verdeutlichung mancher 'Evolutions'prozesse
in Mittelerde und auch maerchenhaften Geschichten ueber Leid,
Trauer und Glueck, wie zB die Geschichte von Beren und Luthien
Tinuviel, von Tuor und Idril oder die Geschichte der Kinder Hurins,
narn i hin hurin.

Alles in allem sehr empfehlenswert fuer alle, die sich fuer
Maerchen, Geschichten, Hintergrund und Geschichtchen interessieren,
aber nichts fuer Leute die auf reine, immerwaehrende Spannung
waehrend des Lesens bestehen.

      tschuess     
    Caradhras Barazinbar - das Rothorn aus Mittelerde
       zur Zeit in Geheimmission als Goldfrosch unterwegs


-----------------------------------------------------------------------------



Re: Zeit der Graeber von Bjoern Jagnow (Li, 19. Aug 1996, 11:00:05):
~#! rn=Muadib rt=839870517
~#! tid=839870517
Hmm, klingt wie eine Hohlbein-Rezension...
Li

-----------------------------------------------------------------------------



Hilfe zu den Lemmingen gesucht! (Engywuck, 19. Aug 1996, 19:03:55):
Hallo Leute!
Ich sitze zur Zeit an den Lemmingen. Und zwar nicht denen von Aurora, sondern
an diesem Computerspiel. Und zwar sogar noch der ersten Ausgabe davon...
Das Problem ist, dass ich nun bei einem Level angekommen bin, wo ich nicht
mehr weiterweiss. Vielleicht findet sich ja hier ein gewiefter Spieler, der
sich etwas auskennt?
Also, das fragliche Level hat den Code: GMONLNHIHN (Level 28, Rate Taxing)

Falls da jemand Tips zu hat: Nur her damit!

Engy, langsam am verzweifeln...

-----------------------------------------------------------------------------



In Gedenken an Rio Reiser (Schrumpfi, 23. Aug 1996, 22:32:15):
Land in Sicht, singt der Wind in mein Herz die lange Reise ist vorbei
Morgenlicht weckt meine Seele auf, ich lebe wieder und bin frei
Und die Traenen von gestern wird die Sonne trocknen
und die Spuren der Verzweiflung wird der Wind verwehn
und die durstigen Lippen wird der Regen troesten
und die laengst verloren geglaubten, werden von den toten auferstehn.

Schrumpfi trauert um Rio Reiser

-----------------------------------------------------------------------------



Re: In Gedenken an Rio Reiser (Schrumpfi, 26. Aug 1996, 02:11:55):
~#! rn=Schrumpfi rt=840832335
~#! tid=840832335
Weil ich immer wieder gefragt werde: Rio Reiser ist am Dienstag den 21.08
gestorben. Angeblich an Herz-Kreislaufversagen. Genaueres weiss ich aber
leider auch nicht.
Schrumpfi

-----------------------------------------------------------------------------



Re: In Gedenken an Rio Reiser (Snuggle, 28. Aug 1996, 09:49:58):
~#! rn=Schrumpfi rt=840832335
~#! tid=840832335
schoeoeoen

Snuggle, wartet drauf, dass Rio und Tamara wiederkommen.

-----------------------------------------------------------------------------



Re: Re: In Gedenken an Rio Reiser (Har, 28. Aug 1996, 10:12:54):
~#! rn=Snuggle rt=841218598
~#! tid=840832335
Was hat denn Tamara mit Rio Reiser zu tun???

Har (sich wundernd)

-----------------------------------------------------------------------------



Re^3: In Gedenken an Rio Reiser (Snuggle, 31. Aug 1996, 21:46:53):
~#! rn=Har rt=841219974
~#! tid=840832335
Danz, nicht die hiesige.

alles klar?

Snuggle :-)
,

-----------------------------------------------------------------------------



Buchkritik (Guybrush,  1. Sep 1996, 16:19:38):
Jetzt will ich auch mal wieder ein Buch vorstellen. Und: Es ist WEDER ein
Fantasybuch, NOCH ein SF-Buch.
Dies nur dazu angemerkt, falls es Euch wieder ueberkommen sollte, Eure
spezielle Meinung zu diesem Stueck Liteartur bekannt zu geben: Vielleicht
waere es sinnvoll anstelle diverser geschmacklicher Vorzuege ueber bestimmte
Autoren einfach einen vorzustellen, der Euch besser gefaellt ;)

Das Buch, viele von Euch werden es schon kennen und leider habe ich es auch
nicht in der englischen Originalfassung, welche besser sein soll, heisst:

Die Letzten ihrer Art
von Douglas Adams und Mark Carwardine

Den ersten Autor kennt Ihr ja sicher, der zweite gibt dem Buch eigentlich nur
den Hintergrund ;)

Es geht um aussterbende Tierarten und wer Douglas Adams kennt, kann sich
vorstellen, dass es durchaus kein langweiliges Buch ist. Durch seinen eigenen
Stil versteht er es aber, so meine Ansicht, dem Leser zu veranschaulichen,
warum es um mehr geht, als nur ein bestimmtes kleines oder groesseres Tierchen
irgendwo auf einer einsamen Insel zu retten, von welchem vorher ohnehin keiner
etwas gehoert hat. Im Gegensatz zu vielen Greenpeace- oder BUND
Veroeffentlichungen macht er dies aber nicht auf dem Weg des "Betroffenseins",
sondern baut unterschwellig eine Beziehung des Lesers zu dem jeweiligen Tier
auf, indem er es oft genug mit seinen menschlichen Beobachtern vergleicht.
Aber ich will hier anstelle von noch mehr Geschwafel einfach mal zwei Stellen
zitieren, welche meiner Meinung nach ganz gut charakterisieren, was das Buch
lesenswert macht.

"Man kann sich also vorstellen, was passiert, wenn eine Festlandsart auf eine
Insel eingeschleppt wird. Das ist, als wuerde man Al Capone, Dschingis-Khan
und Rupert Murdock auf der Isle of Wight einschleppen - die Einheimischen
haetten keine Chance."

".....
Bis zu diesem Moment hatten die Menschen nicht wirklich auf die reihe
bekommen, dass ein Tier einfach aufhoeren konnte zu existieren. Es war, als
haetten wir bis dahin nicht begriffen, dass etwas, das man toetet, einfach
nicht mehr da sein wuerde. Endgueltig. Nachher, in diesem Fall nach dem
Aussterben des Dodo, ist man trauriger und klueger."

hoffentlich


Tja, das sind zwei Textstellen, die mir aufgefallen sind. Es gibt sicher noch
viele weitere. 
Es gibt auch sicher sonst noch viel zu dem Buch zu sagen, aber ich war schon
in der Schule nicht der grosse Literaturkritiker und wer eine andere Meinung
hat, darf sie gerne fuer sich behalten ;)
Hm, ich kann nur sagen: Lest das Buch, es ist es wert, auch wenn's kein SF-
oder Fantasybuch ist ;)

Guybrush, versucht sich mal kulturell

P.S.: Erspart mir bitte Verbesserungen an meiner Kritik in der MPA, wenn's
Euch nicht passt: ne mail tut's :)

-----------------------------------------------------------------------------



Re: Buchkritik (Bendeigid,  2. Sep 1996, 12:08:53):
~#! rn=Guybrush rt=841587578
~#! tid=841587578
Ich kann Guy nur zustimmen: Ein hervorragends, eindringliches Sachbuch, das
gar kein Sachbuch ist, sondern sich mehr wie ein lustiger Roman liesst.

Meine Lieblingsstelle in dem Buch:

(Es geht um einen Giftschlangenexperten in Australien, der zum Thema "was tun
bei Schlangenbissen?" interwiewt wird. Er hasst schlangen :) )

"Gibt es eigentlich irgendein giftiges Tier, dass sie moegen?"
"Gab's mal. Aber sie hat mich verlassen!"

:))
Z'par Servu,
         Bendeigid

-----------------------------------------------------------------------------



Re: Buchkritik (Ancalagon,  4. Sep 1996, 17:53:45):
~#! rn=Guybrush rt=841587578
~#! tid=841587578
Moin erstmal
Also, ich kann Guy's empfehlung nur voll unterstuetzen. Ein echt klasse Buch.
KNuddels,
                                                 Ancalagon
                                            Draco knuddellensis major

-----------------------------------------------------------------------------



Re: Re: Buchkritik (Semira,  9. Sep 1996, 21:56:15):
~#! rn=Ancalagon rt=841852425
~#! tid=841587578
und ich unterstuetz mal gleich mitz, auich wenn ich die stelle ueber diese
komisch voegel am liebsten hab, bei denen es mit den lockrufen net so recht
klappt...
Sie: komm und hol mich!
Er: wo bist Du?
Sie: komm und hol mich!
Er: wo bist Du?
Sie: komm und hol mich!
Er: wo bist Du?
Sie: komm und hol mich!
Er: ach fick dich doch ins knie...

opder so aehnlich...jedenfalls ist dieses Buch einfach nur ein muss

Semira

-----------------------------------------------------------------------------



Re^3: Buchkritik (Caradhras,  9. Sep 1996, 22:06:40):
~#! rn=Semira rt=842298975
~#! tid=841587578
Aha, der Buchausschnitt hoert sich aber sehr interessant an.

Opppps, wo hab ich nur die Ironie her? :)

             Rothorn Caradhras
PS: Also ein Buch, das ich nie lesen werde, wenn das weite
   Strecken so geht

-----------------------------------------------------------------------------



ein Gedicht (Jariel, 10. Sep 1996, 01:18:38):

TREUE           (Erich Fried)

Es heisst:
Ein gebrochenes Versprechen
ist ein gesprochenes 
Verbrechen

Aber kann nicht
ein ungebrochenes Versprechen
ein ungesprochenes
Verbrechen sein?


Dazu wuerde mich mal Eure Meinung interessieren.

Jariel

-----------------------------------------------------------------------------



Re: ein Gedicht (Acrimon, 10. Sep 1996, 13:41:11):
~#! rn=Jariel rt=842311118
~#! tid=842311118
> Ein gebrochenes Versprechen
> ist ein gesprochenes Verbrechen

Ja, das ist eindeutig.

> Aber kann nicht
> ein ungebrochenes Versprechen
> ein ungesprochenes Verbrechen sein?

hmm, ein ungebrochenes Versprechen kann sein: ein gehaltenes Versprechen, oder
ein noch zu haltendes Versprechen (zeitbedingt).
Ich wuerde sagen, das hat nichts zu sagen, ob mit dem Versprechen ein
Verbrechen begangen wird; das haengt von etwas Anderem ab, aber nicht davon,
ob man sein Versprechen gebrochen hat.

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re: Re: ein Gedicht (Grimmborn, 10. Sep 1996, 14:12:09):
~#! rn=Acrimon rt=842355671
~#! tid=842311118

Acrimon, versuch mal zu lesen: es geht um ein ungeSProchenes Verbrechen, nicht
um ein ungeBrochenes.

Ein ungesprochenes Verbrechen (unausgesprochenes Verbrechen?) ist ipso eo ein
tatsaechliches Verbrechen, es ist lediglich nicht gesprochen. Anders
ausgedrueckt, es scheint sich um etwas negativ besetztes ("Verbrechen") zu
handeln.
Demgegenueber steht das ungebrochene Versprechen, allgemein gilt es als
Tugend, ein Versprechen zu halten. Demnach handelt es sich um einen
Widerspruch.
Wie aber ist dieser Widerspruch zu loesen? Es gibt zwei Moeglichkeiten: einmal
nach einem negativ besetzten gehaltenen Versprechen zu suchen oder aber ein
positives Verbrechen auszumachen. Kann also ein gehaltenes Versprechen negativ
sein? Im allgemeinen ist das in unserem Kulturkreis nicht der Fall. Ein
Versprechen mag noch so toericht und riskant sein, es zu brechen gilt als
ehrlos. Sicher ist eine Situation vorstellbar, in der es besser ist, ein
gegebenes Versprechen nicht zu halten, aber ein Geschmack der Ehrlosigkeit
bleibt, die dann lediglich durch den Mut, sich dieser Ehrlosigkeit
auszusetzen, ausgeglichen wird. Zusammenfassend scheint also dieser Weg zu
keiner Loesung zu fuehren.
Nun also die zweite Moeglichkeit: Kann es ein "positives" Verbrechen geben?
Die Frage ist so alt wie die menschliche Morallehren, meist werden Verbrechen
fuer eine im jeweiligen System "gute" Sache positiv, d.h. nicht als Verbrechen
dargestellt. Nun kann man sich fragen, inwieweit die Tat dann noch ein
Verbrechen ist. Ueberhaupt ist der Verbrechensbegriff schwierig, ich neige
dazu, den Begriff "Verbrechen" systemimmanent zu sehen, eine Tat, die also mit
den Regeln des Systems uebereinstimmt ist kein Verbrechen (und daher gut),
wenn sie nicht mit den Regeln uebereinstimmt (also ein Verbrechen ist), ist
sie per se nicht gut. Damit fuehrt auch dieser Weg zu keiner Loesung des
Widerspruchs.

Damit kann ich die in dem Gedicht (Spruch?) gestellte Frage klar mit "nein"
beantworten.
Ich hoffe, damit die Mehrheit der Leute hier von Seelenqualen befreit gekonnt
zu haben.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^3: ein Gedicht (Acrimon, 10. Sep 1996, 14:27:26):
~#! rn=Grimmborn rt=842357529
~#! tid=842311118
Du hast schon recht, Grimmborn.

Jedoch bedenke: Eine Tat gilt im einen System als unrelevant, in einem anderen
System als Wohltat, und in wieder einem anderen System als Verbrechen.
Meistens jedoch gleichen sich die unterschiedlichen Systeme ein wenig
aneinander an, und was vom einen System als Verbrechen gesehen wird, hat doch
eine gewisse Wahrscheinlichkeit, auch von einem anderen System eher als
Verbrechen denn als Wohltat gesehen zu werden.
Dies liegt aber nicht an der Abhaengigkeit der Systeme voneinander (die es,
wenn ueberhaupt, nur im geringen Masze gibt), sondern eher daran, dasz alle
Systeme versuchen, das "beste" System zu sein, sich der Wahrheit und dem Sinn
moeglichst anzunaehern.
Da jedes System die Wahrheit aus einer anderen Blickrichtung betrachtet,
erkennt auch jedes System die Wahrheit anders, stellen sich entsprechend
unterschiedliche Ziele vor, die sie erreichen wollen.
Da Systeme nicht das Ultimative (im eigenen Sinne) sind, weil sie sich alle
nur auf dem Weg zu ihrem Ziel (und nicht AN ihrem Ziel) befinden, gibt es in
jedem System Luecken (und seien sie auch noch so klein).
Daher ist eine Tat, die mit den Regeln des Systems uebereinstimmt, noch nicht
unbedingt "gut" - nicht unbedingt im eigenen System, als auch erst recht nicht
in anderen Systemen.
Also ist eine Tat, die man im guten Sinne begeht, noch nicht unbedingt eine
Wohltat - es kann auch ein unerkanntes oder ungesprochenes Verbrechen sein.

Es gibt trotzdem einen Trost:
Bei Gott zaehlt der gute Wille mehr als der tatsaechliche Erfolg.

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re^4: ein Gedicht (Anatol, 10. Sep 1996, 14:40:57):
~#! rn=Acrimon rt=842358446
~#! tid=842311118

Interessant finde ich diesbezueglich, was passiert, wenn ein System ein
anderes uebernimmt und Taten, die zur Zeit des alten Systems vollbracht
wurden, der neuen Bewertung unterwirft.

Froh, dass er nie dienstlich schiessen musste,
Anatol


-----------------------------------------------------------------------------



Intelektuelle Scheisse... (Rantanplan, 10. Sep 1996, 14:51:32):
Oki ich gebs zu, der Titel war unabdingbar...

Also zusammen mit der ueberschrift Treue bei dem Gedicht, 
verstehe ich es so, dass der zweite Vers besagen will,
Das der Treuebruch schon vor dessen Aussprache, sozusagen
im Kopf beginnen kann, und das Verbrechen (hier die Untreue),
nicht ausgeprochen (ausgeuebt) werden muss, um als solches
bereits potentiell existent zu sein.

Aber gefallen haben mir die Verse ueberhaupt gar nie nicht,
ich fands ziemlich schlecht...

-----------------------------------------------------------------------------



Re^5: ein Gedicht (Fyt, 10. Sep 1996, 18:19:22):
~#! rn=Anatol rt=842359257
~#! tid=842311118

Sehr interessanter Gesichtspunkt. Dummerweise ist das hierzulande
schon so normal, dass man das fuer normal haelt.

Fyt, auch froh aus dem gleichen Grund.

-----------------------------------------------------------------------------



Re^5: ein Gedicht (Spindel, 10. Sep 1996, 19:44:01):
~#! rn=Anatol rt=842359257
~#! tid=842311118
Du hast natuerlich recht, wenn Du sagst, dass hier Taten in einem alten
System neuen Bewertungen unterworfen werden. Niemand wurde zur Zeiten
der DDR wegen Schuessen an der Grenze verurteilt. Aber die heute verur-
teilten haben das Pech(?), dass der Schiessbefehl niemals Einzug in die
Gesetzte der DDR gefunden hat. Das konnte er auch gar nicht, da er damit
im eklatanten Widerspruch zur Menschenrechtserklaerung gestanden haette, mit
der sich auch die DDR einverstanden erklaert hat. Aber genau wegen Ver-
stosses gegen diese Erklaerung wurden heute hochrangige DDR-Offiziere zu
langjaehrigen Freiheitsstrafen verurteilt. Und wenn ich ehrlich bin, dann
bin ich doch recht froh, dass es mal LEute getroffen hat, die zwar fuer
die Befehle zustaendig waren aber nicht am Abzug standen.  
Letztendlich ist alles eine Frage der Politik, und die Verurteilten haben 
schon recht, wenn sie das Urteil politisch nennen.
Letztendlich hbe ich aber auch keine Ahnung von der Sache, da ich kein Jurist
bin und mein Wissen nur aus der Presse habe.
  Spindel

-----------------------------------------------------------------------------



Re^4: ein Gedicht (Li, 11. Sep 1996, 10:40:41):
~#! rn=Acrimon rt=842358446
~#! tid=842311118
Hmm ,wie waere es mit einer Philosophen-Gilde?
Li (kichert)

-----------------------------------------------------------------------------



Re: ein Gedicht (Stahldorn, 11. Sep 1996, 12:06:41):
~#! rn=Jariel rt=842311118
~#! tid=842311118
Hmm. Mal ganz banal.
Wenn ein Mord ein Verbrechen ist, und ich verspreche jemandem, dessen
unliebsamen Feind zu ermorden, und tu das dann auch, dann habe ich mein
Versprechen nicht gebrochen (also ungebrochenes Versprechen) und ich hab ein
Verbrechen begangen (und zwa ein ungesprochenes, schliesslich hab ich das
Opfer nicht zu Tode geredet).
Lieg ich da falsch? :)

STAHL.

-----------------------------------------------------------------------------



Doug Adams (Hobo, 11. Sep 1996, 14:28:30):
Uebrigens heisst das Buch: "Die Letzten ihrer Art" auf englisch "Last chance
to see".

Nur mal so .... aehm, gut isses wirklich :)

    HOBO

-----------------------------------------------------------------------------



Re: Doug Adams (Hate, 12. Sep 1996, 08:42:41):
~#! rn=Hobo rt=842444910
~#! tid=842444910
Gut ist es nur in der Originalfassung, da in der Deutschen so einige Fotos
fehlen.

Hate.

-----------------------------------------------------------------------------



Re^5: ein Gedicht (Acrimon, 12. Sep 1996, 14:54:51):
~#! rn=Li rt=842431241
~#! tid=842311118
Sehr gute Idee!
Bin ich dafuer!
Wer schreibt die Philosophengilde?

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Ein Gedicht (Alboin,  3. Okt 1996, 22:10:10):
weils so schoen und traurig ist, mal wieder ein Gedicht von mir:

   Christiane

Es stand ein Sternlein am Himmel,
Ein Sternlein guter Art;
das taet so lieblich scheinen
So lieb und so zart!

Ich wusste seine Stelle
Am Himmel, wo es stand;
Trat abends vor die Schwelle
Und suchte, bis ich's fand;

Und blieb dann lange stehen,
Hatt' grosse Freud' in mir,
Das Sternlein anzusehen;
Und dankte Gott dafuer.

Das Sternlein ist verschwunden
Ich suche hin und her,
wo ich es sonst gefunden,
Und find' es nun nicht mehr.

   Matthias Claudius (seiner Tochter gewidmet, die sehr jung verstarb)

-----------------------------------------------------------------------------



Wenn - (Bronwyn,  6. Okt 1996, 21:48:10):
Wenn du den Kopf behalten kannst, waehrend alle um dich her den ihren
verlieren und es auf dich schieben,
wenn du dir vertrauen kannst, waehrend alle an dir zweifeln und du dabei auch
ihre Zweifel verstehst;
wenn du warten kannst und nicht vom Warten ermuedest, oder belogen wirst und
nicht zur Luege greifst,
gehasst wirst, ohne dich dem Hass hinzugeben, dabie nicht zu milde
dreinblickst noch zu klug redest:

Wenn du traeumen kannst - ohne Traeume zu deinem Herren zu machen:
Wenn du denken kannst - ohne Gedanken zu deinem Ziel zu machen;
wenn du Triumph und Katastrophe begegnen kannst und diese beiden Hochstapler
gleich behandelst:
wenn du es ertragen kannst, die Wahrheit, die du gesagt hhast, von Schuften
verdreht zu hoeren, um eine Falle fuer Toren daraus zu machen,
oder die Dinge zerbrochen zu sehen, denen du dein Leben gegeben hast,
und dich zu buecken und sie mit abgenutzem Werkzeug wieder aufzubauen:

Wenn du einen Stapel aus deinen Gewinnen machen und sie auf ein Mal, alles
oder nichts, riskieren kannst,
und verlieren und wiedre beim Anfang anfangen und nie auch nur ein Wort ueber
deinen Verlust sagst;
wenn du dein Herz, Nerv und Sehne zwingen kannst, dir zu gehorchen, wenn es
sie langst nicht merh gibt 
und so durchzuhalten, wenn nichts mehr in dir ist ausser dem 
Willen, der ihnen sagt:"Haltet durch!"
Wen du mit Menschenmengen reden kannst, ohne die Tugend zu verlieren oder
neben Koenigen gehen kannst - doch den "common touch" nicht verlierst,
wenn dich weder Feinde noch liebevolle Freunde verletzen koennen, wenn alle
auf dich zaehlen, aber keiner zu sehr;
wenn du die erbarmungslose Minute fuellen kannst mit sechzig vollen Sekunden
eines Langstreckenlaufs,
gehoert dir die Erde und alles, was darauf ist und - was mehr ist - du wirst
ein Man sein, mein Sohn!

Rudyard Kipling

-----------------------------------------------------------------------------



Re: Wenn - (Bronwyn,  6. Okt 1996, 21:53:08):
~#! rn=Bronwyn rt=844631290
~#! tid=844631290
sorry for Typos und dass ich das ganze nicht nur auf 
Maenner bezogen wissen will, versteht sich wohl von selbst.

-----------------------------------------------------------------------------



Ich stand auf der Strasse (Engywuck,  8. Okt 1996, 17:34:16):

Ich stand auf der Strasse, und ich war allein,
da sah ich dich, ich wollte bei dir sein.

Doch du gingst vorueber, und ich hatte kein Glueck,
und ich hoffte, vielleicht kommt sie zurueck.

Und da geschah das Wunder, ein Blick von ihr zurueck,
Augen voller Sehnsucht, sie suchten das Glueck.
                                                    
Noch am gleichen Abend war ich nicht mehr allein,
und die Frau, die vorbeiging, wollte bei mir sein.

Doch als ich ihre Hand nahm, fiel es mir gleich ein,
ein Ring an ihrem Finger, sie muss verheiratet sein.

F|r mich war sie tabu, ich wollte ehrlich sein.
Ich sagte es ihr, doch sie war ganz allein.
                                                
Warum muss es so sein, sie kuesste mich,
und wir umarmten uns, Gefuehle mussten raus.

Der Tanz auf dem Vulkan, ich weiss, es ist verboten.
Der Tanz auf dem Vulkan, Liebe die verbrennt.

Der Tanz auf dem Vulkan, dem Himmelszelt entgegen.
Eine Wolke aus Sehnsucht fliegt ueber das Tal.
                                                       
Und der Vogel schweigt, seine Fluegel sind leer.
Und der Vogel fliegt - weit |ber das Meer.

Auf dem Vulkan - sind wir zwei allein.
Er ist nicht dabei, das ist uns ganz egal.

Kleiner Vogel, flieg, flieg durch die Welt.
Kleiner Vogel, kleiner Vogel, kleiner Vogel, flieg.
Kleiner Vogel, flieg.
                                         
Kleiner Vogel, flieg, flieg durch die Welt.
Kleiner Vogel, kleiner Vogel, kleiner Vogel, flieg, flieg, flieg.

Grosser Vogel auch, grosser Vogel auch.
Kleiner Vogel, mittlerer Vogel, groauch.er Vogel, alle Vgel.

Vogel, Vogel, flieg.
Kleiner Vogel flieg, flieg, flieg, flieg, flieg, flieg.
                                                        

-----------------------------------------------------------------------------



Gedicht (Asmodis,  8. Okt 1996, 18:57:19):
Dieses Gedicht nenne ich 'Die Grosse Leere':




































































































Ende.

-----------------------------------------------------------------------------



Re: Gedicht (Anatol,  8. Okt 1996, 19:04:47):
~#! rn=Asmodis rt=844793839
~#! tid=844793839


Also das Versmass um Zeile 12-14 laesst stark zu wuenschen uebrig...
Am besten, Du ueberarbeitest es nochmal, oder? ;-)

Anatol


-----------------------------------------------------------------------------



Re: Re: Gedicht (Caradhras,  8. Okt 1996, 19:05:57):
~#! rn=Anatol rt=844794287
~#! tid=844793839
Also ich fand das 'Ende' am besten, so transzendental und trotzdem
willensfest in seiner Aussage.

-----------------------------------------------------------------------------



Re^3: Gedicht (Engywuck,  8. Okt 1996, 20:57:11):
~#! rn=Caradhras rt=844794357
~#! tid=844793839

Also sowas ist schon uuuuuuuuuuuralt.
Kennt jemand das 4'33'' von John Cage?

Engy*

-----------------------------------------------------------------------------



Re^4: Gedicht (Asmodis,  8. Okt 1996, 20:58:29):
~#! rn=Engywuck rt=844801031
~#! tid=844793839
Hmm, nee, kannte ich nicht, aber alles ist schon irgendwie
mal dagewesen :)

-----------------------------------------------------------------------------



Re^5: Gedicht (Rantanplan,  9. Okt 1996, 09:44:04):
~#! rn=Asmodis rt=844801109
~#! tid=844793839
Yep Engy hat recht, 4'33'' Stille, na ja, wems gefaellt ;-))


-----------------------------------------------------------------------------



Re^6: Gedicht (Grimmborn,  9. Okt 1996, 13:35:16):
~#! rn=Rantanplan rt=844847044
~#! tid=844793839

Es gibt (auch von John Cage) das Stueck 'Silence', das etwa aehnlich ist (der
Pianist raucht glaub ich zwei Zigaretten) und rund eine halbe Stunde dauert.
Bei der Urauffuehrung ist der Pianist fast gelyncht worden...
Das waren noch Zeiten (50er Jahre), als man das Publikum noch aus der Reserve
locken konnte. *seufz*

Grimmborn der Atheist


-----------------------------------------------------------------------------



Spruch des Monats (Hate,  9. Okt 1996, 13:37:34):
"Seien wir realistisch, versuchen wir das Unmoegliche."
                                 Der Praesident der Kubanischen Nationalbank
                                 1959-64

-----------------------------------------------------------------------------



Re^6: Gedicht (Asmodis,  9. Okt 1996, 13:59:39):
~#! rn=Rantanplan rt=844847044
~#! tid=844793839
Hmm, na gut, ich kenne das aus einer Star Trek - Folge, da hat Data
so ein Gedicht geschrieben :)

-----------------------------------------------------------------------------



Re: Re: Gedicht (Stahldorn,  9. Okt 1996, 14:56:24):
~#! rn=Anatol rt=844794287
~#! tid=844793839

Das reimt sich aber schoen!

STAHL.

-----------------------------------------------------------------------------



Re^7: Gedicht (Jariel,  9. Okt 1996, 21:30:06):
~#! rn=Grimmborn rt=844860916
~#! tid=844793839
Erinnert mich an das Gedicht der Glocke im luftleeren Raum.

Da ja der Schall nicht fortgeleitet wird, ergibt sich eine neuartige
Gedichtsform des spannungsgeladenen Schweigens, die durch ihre
schnoerkellose Kuerze und leichte Einpraegsamkeit besonders im
Schulunterricht rasch neue Freunde gewonnen hat.


-----------------------------------------------------------------------------



Imaginaerer Lebenslauf (Torfdueng, 11. Okt 1996, 22:39:01):
Erst eine Kindheit, grenzenlos und ohne
Verzicht auf Ziel. O unbewusste Lust.
Auf einmal Schrecken, Schranke, Schule, Frohne
und Absturz in Versuchung und Verlust.

Trotz. Der Gebogene wird selber Bieger
und raecht an andern, dass er erlag.
Geliebt, gefuerchtet, Retter, Ringer, Sieger
und Ueberwinder, Schlag auf Schlag.

Und dann allein im Weiten, Leichten, Kalten.
Doch tief in der errichteten Gestalt
ein Atemholen nach dem Ersten, Alten...

Da stuerzt Gott aus seinem Hinterhalt...

Rilke

-----------------------------------------------------------------------------



Tom Reamy (Lyserg, 14. Okt 1996, 16:36:34):
Neulich gelesen in "San Diego Lightfoot Sue", einer Kurzgeschichte von Tom
Reamy:

This all began about ten years ago in a house at the top of a flight of
rickety wooden stairs in Laurel Canyon. It might be said there were two
beginnings, though the casual sorcery in Laurel Canyon may have been the cause
and the other merely the effect 
if you believe in that sort of thing.

-----------------------------------------------------------------------------



The state of decay ! (Rantanplan, 15. Okt 1996, 16:14:49):
THE STATE OF DECAY !

Ein Drama in null Akten.

(Aehnlichkeiten mit lebenden oder verwesten Personen sind volle
Absicht.) 

Die Hauptdarsteller:

R.-Ein dummer Hund
K.-Ein Tigerenten herstellender Magier
G.-Ein haupsaechlich leidender Magier
E.-Ein mudbekannter Paedophiler
A.-Eine mudbekannte Nymphomanin
T.-Ein dunkler Typ
B.-Ein zuckersuesser Spiesser
D.-Ein saudummer Mudder von besonderer Qualitaet
P.-Ein schlecht riechender Magier
N.-Eine Kroete
*.-Irgendein Erzmagier
R1 + R2- Ein supercooles Mudderseherpaar


An einem beliebigen Tage im Mud MG.



[Allgemein:E.] Ein ganz toller Spruch zur Begruessung, weil man hebt 
[Allgemein:E.] sich ja von der Masse ab.
[Allgemein:B.] Das ist aber mein ganz toller Spruch zur Begruessung !!!
[Allgemein:G.] Is das oeeeede hier.
[Allgemein:D.] Ich hab ein Hydrahorn !
[Allgemein:A.] Ohhh zeig mal...
[Allgemein:D.] Jajaja gerne, darfst auch mal anfassen.
[Allgemein:E.] Ich hab auch eins
[Allgemein:Diverse andere Mudder] ICH AUCH !!!
[Allgemein:K.] MUDDER...
[Allgemein:R. singt eine Textzeile aus einem Lied das ehh kein Schwein kennt.]
[Allgemein:T.] DOCH !
[Allgemein:K.] DOCH !
[Allgemein:R.] Ooops ausser den beiden.
[Allgemein:D.] Ohhh N. ich will Dich gerne RL mal anfassen, weil 
[Allgemein:D.] ich bekomme ehh keine ab, egal wie plump ich es versuche,
[Allgemein:D.] dabei bin ich echt ein ganz netter Mensch.
[Allgemein:R.] AU !
[Allgemein:N.] RUHE D.
[Allgemein:D.] Ich ignoriere alles und bagger dumm weiter, R. hat uebrigens
[Allgemein:D.] verkuemmerte Genitalien, diverse Geschlechtskrankheiten 
[Allgemein:D.] (Tausende weitere "Beleidigungen" auf diesem niveau)
[Allgemein:E.] Nivea ! (Scherz am Rande) (haha)
[Allgemein:*.] Wir haben ein Problem mit dem GD, wir muessen mal eben
[Allgemein:*.] Rebooten...
[Allgemein:N-Mudder] NEIN !
[Allgemein:M-Mudder] JA !
(n + m) irgendwelche ganzzahligen Werte.
[Allgemein:P.] FRESSEN FICKEN FERNSEHEN !
[Allgemein:R.] Sowieso !
[Allgemein:G. hat keinen GV.]
[Allgemein:D. haette gerne welchen tut aber mal so als ob er der Hengst ist]
[Allgemein:A.] Mein Ehemann (Ich hab auch mal einen Abbekommen) findet mich zu
[Allgemein:A.] (dumm/dick/frigide/oder irgendwas halt)
[Allgemein:E.] Ich nicht, komm zu mir !
R1 ruft: RRRRRRRRR222222222222222222222222222222222222 !
R2 ruft: RRRRRRRRR111111111111111111111111111111111111 !
R1 ruft: RRRRRRRRR222222222222222222222222222222222222 !
R2 ruft: RRRRRRRRR111111111111111111111111111111111111 !
[Allgemein:R1.] RRRRRRRRR222222222222222222222222222222222222 !
[Allgemein:R2.] RRRRRRRRR111111111111111111111111111111111111 !
[Allgemein:R1 hatte heute supertollen supercoolen Sex mit R1]
[Allgemein:R2 grinst supertoll und supercool]
[Allgemein:Alle anderen sind total neidisch und bewundern R1 und R2 !]
[Allgemein:P.] R2 ist ein schwuler Analstricher !
[Allgemein:R. lacht.]
[Allgemein:K. nickt.]
[Allgemein:G. seufzt.]
[Allgemein:N. macht auch irgendwas.]
[Allgemein:B. fummelt irgendwie an N. rum]
[Allgemein:D. + E. machen gleich mit.]

Undsoweiter undsofort so geht es tagaus, tagein...

Neveeeeeer endiiiing stoooooory...

Ran*

-----------------------------------------------------------------------------



Re: The state of decay ! (Fyt, 15. Okt 1996, 16:21:52):
~#! rn=Rantanplan rt=845388889
~#! tid=845388889

R. ist in dem Stueck aber entschieden zu gut weggekommen.

F.

-----------------------------------------------------------------------------



Re: Re: The state of decay ! (Schrumpfi, 16. Okt 1996, 04:02:03):
~#! rn=Fyt rt=845389312
~#! tid=845388889
Naja R ist ja auch der superueberblickende Antimudder der jederzeit aufhoeren
kann.
Oder?

Therapie fuer R: spielpause mindestenszweiwochenohnediversezweities
S.

-----------------------------------------------------------------------------



Werbung mal anders (Yantro, 24. Okt 1996, 19:23:37):

[6] Was verbirgt sich hinter Kelly-Songs? - von Ulrich Stamm

Musik, was verbirgt sich
hinter den Zeilen?

am Beispiel der "Kelly Family"

In unserer beliebten Reihe : "Musik, was verbirgt sich hinter den Zeilen?"
nehmen wir heute die Kelly Family mit ihrem HIT
"An Angel" unter die Lupe.

Sicher haben sie sich auch schon gefragt, WAS um Himmels Willen dieser kleine
blonde Junge da singt. Es ist sicherlich f|r Kinder schwer,
wenn sie zweisprachig aufwachsen und sich in smtlichen Umstnden des Lebens f|r
eine von beiden Sprachen entscheiden m|ssen, schwerer
ist es, wenn der junge Blondling aber im schwersten Stimmbruch ist und
Unverstndliches krchzt.

Nach langen Recherchen und 1.000 fachem Hren des Songs "An Angel", sowie dem
Herausfiltern |berfl|ssiger Nebengerusche wie Musik
und Background-Chor, ist es uns gelungen, die eigentlichen Textzeilen zu
restaurieren:

An einem morgen wach ich auf
und ich stehe auf dem Schlauch,
denke nach, was fllt mir ein?
Ich wollt so gern ein Engel sein....

Whrend durch den Wald ich geh,
tut mir mein rechter Fuss so weh,
da komm ich an eine Schlucht
und denke "springen wr' ne Wucht"

Sometimes I wish I were an angel,
sometimes I wish I could fly,
sometimes I wish I were an angel,
dann wr's mit mir noch nicht vorbei.

Whrend ich hinunterfall,
und ein letztes Liedchen lall,
schau ich wehm|tig hinauf
und dann schlag ich auch schon auf..

Sometimes I wish I were an angel,
sometimes I wish I could fly,
sometimes I wish I were an angel,
dann wr's mit mir noch nicht vorbei....

Ulrich Stamm


Dieses und noch viel mehr zu finden unter:

http://ernie.mi.uni-koeln.de/ZYN!/

dem Besten, was es je gegeben hat...

Yantro

uuuuuuuuunnnd nicht vergessen: 

RiesenMegaSuperGeilerTraditionsStammtisch in Koeln am 

                    3. Januar 1997 !!!!

Anmelden bei mir per Mail an mich! Siehe dazu auch meine eigens geschaffene
Prollseite:

       http://www.uni-koeln.de/~ari03/gelage.html

Denn nix ist schoener als Feiern in bester Gesellschaft !!!

-----------------------------------------------------------------------------



Wieder mal nen Tag verschenkt (Schrumpfi, 25. Okt 1996, 23:25:23):
Ein neuer Tag beginnt, auf der Suche nach dem Sinn, dem Sinn in meinem Leben
doch ich kann ihn nicht finden.
Wars das schon, kann das alles sein? Was kommt danach, wann ists vorbei?
Wer kennt die Antwort auf diese Frage?
Die Tage vergehn, nichts passiert, nichts ist geschehn und es rebelliert in
den Falten meines Hirns in den Ecken meiner Seele.
Wieder mal nen Tag verschenkt, wieder mal nen Tag verschenkt.
Die Tage vergehn, nicht passiert, nichts ist geschehn und es rebelliert in den
Falten meines Hirns, in den Ecken meiner Seele.
Ich hab naechtelang gezecht mich ins Koma gesoffen, oft gezielt, doch nie
getroffen, ich weiss wie es ist der Arsch zu sein.
Wieder mal nen Tag verschenkt...

Vom wem das Lied ist sag ich besser nicht, aber ich fuehl mich grad so.
Schrumpfi

-----------------------------------------------------------------------------



Re: Wieder mal nen Tag verschenkt (Yantro, 28. Okt 1996, 14:05:13):
~#! rn=Schrumpfi rt=846278723
~#! tid=846278723
Schrumpfi, dass ist feige, wenn man nihct dazu steht, dass man die Boesen
Onkelz mag :) Also ich steh dazu!

Yantro

-----------------------------------------------------------------------------



Re: Re: Wieder mal nen Tag verschenkt (Schrumpfi, 28. Okt 1996, 21:23:13):
~#! rn=Yantro rt=846507913
~#! tid=846278723
ich mag sie ja nicht. Ich find nur das eine oder andere Lied ganz nett.
S.

-----------------------------------------------------------------------------



Re^3: Wieder mal nen Tag verschenkt (Jasper, 29. Okt 1996, 12:01:41):
~#! rn=Schrumpfi rt=846534193
~#! tid=846278723
aber einige lieder sind ganz nett
'...und wenn wir einmal engel sind, dann fick ich dich im fliegen...'

Jasper, summend wenn er es koennte.

-----------------------------------------------------------------------------



Die Umbenennung des deutschen Volkes (Grimmborn,  4. Nov 1996, 00:03:39):
[Verlegt von allgemeines, Boni,  3. Nov 1996, 14:44:56]:


Das deutsche Volk wird umbenannt
noch vor den naechsten Wahlen
bis dahin ist es abgebrannt
vom staendigen Bezahlen.

Getreulich zahlt der kleine Mann
die Steuern und die Miete
und zahlt, solang er zahlen kann,
die Schulden und Kredite.

Er zahlt dei Telekom und Post,
fuers Parken, fuers Bestatten,
fuer Aufschwung West, fuer Abschwung Ost,
demnaechst auch fuers Begatten.

Die Preise steigen eklatant,
die Preise - nicht die Loehne.
Das deutsche Volk wird umbenannt
in Zahlemann und Soehne.




-----------------------------------------------------------------------------



Finger Weg ! (Beelzebub,  6. Nov 1996, 19:39:04):
Mahlzeit !
Dies ist eine Warnung an alle, die wie ich die ersten 4 Danzig-CDs besitzen
und diesen Gesang, der irgendwo zwischen Elvis und Satan liegt, einfach
lieb(t)en.
Lasst die Finger vom 5. Teil !!!
Glenn macht naemlich, seitdem er seine alte Belegschaft gefeuert hat, einen
auf
Industrial, womit ich nicht sagen will, dass ich Industrial nicht mag -
Nine Inch Nails und vor allem Die Krupps sind ja schliesslich saugeil.
Auf Backaciddevil - so heisst der 5. Teil - sind nicht nur die Gitarren so
dermassen
verstimmt, so dass man glaubt Nirvana sind am Ende ihres Konzerts und
zerkloppen grad
die Instrumente, sogar der Gesang ist groesstenteil bis zur Unkenntlichkeit
verzerrt,
womit der eigentliche Grund, sich ne Danzig-CD zu kaufen dahin is.
Lediglich die Single-Auskopplung "Sacrifice" kann einigermassen ueberzeugen,
der Rest duempelt Drucklos und langweilig vor sich hin.
Somit ist Danzig fuer mich DER Absteiger des Jahres - sogar vor Metallica :)

Beelzebub trauert Songs wie "How the Gods kill" oder - *seufz* - "Sistinas"
hinterher

-----------------------------------------------------------------------------



Re: Finger Weg ! (Zardoz,  7. Nov 1996, 08:41:36):
~#! rn=Beelzebub rt=847305544
~#! tid=847305544
Danzig war eh nur gut, als er noch Saeger der Misfits war :)


Ciao Zardoz

-----------------------------------------------------------------------------



Re: Re: Finger Weg ! (Engywuck,  7. Nov 1996, 12:15:51):
~#! rn=Zardoz rt=847352496
~#! tid=847305544
Danzig ist Zardoz-Musik? Damit hat der Titel dieses Artikels seine vollste
Berechtigung ;)

Engy* - weiss schon mal, welche Musik er NICHT kauft

-----------------------------------------------------------------------------



Re^3: Finger Weg ! (Acrimon,  7. Nov 1996, 14:35:51):
~#! rn=Engywuck rt=847365351
~#! tid=847305544
Zardoz wohnt doch gar nicht in Danzig (sondern in Koeln).
Oder ... wohnt er doch in Danzig, aber studiert in Koeln?

-----------------------------------------------------------------------------



Gedicht (Acrimon, 11. Nov 1996, 20:55:51):

Dies ist ein Gedicht
mehr auch nicht.

Dieses ist die zweite Strophe,
leider eine ziemlich doofe.

Und dies ist der Schlusz
von dem ganzen Stusz.


(Naja, -> schmarrn)
Acrimon

-----------------------------------------------------------------------------



More Than Words (Tryfan, 18. Nov 1996, 10:55:03):
        Saying 'I Love You'
        Is not the words I want to hear from you
        It's not that I want you
        not to say, but if you only knew

        How easy it would be
        To show me how you feel
        More than words
        Is all you have to do to make it real
        Then you wouldn'thave to say
        That you love me, 'cos I'd already know

        What would you do
        If my heard was torn in two
        More than words to show you feel
        That your love for me is real

        What would you say
        If I took those words away
        Then you couldn't make things new
        Just by saying 'I Love You'

        Now that I've tried to
        Talk to you and make you understand
        All you have to do
        Is close your eyes and just reach out your hands

        And touch me, hold me close
        Don't ever let me go
        More than words
        Is all I ever needed you to show        Is all I ever needed you to
show
        Then you wouldn't have to say
        That you love me, 'cos I'd already know


-----------------------------------------------------------------------------



Re: More Than Words (Torfdueng, 19. Nov 1996, 19:18:26):
~#! rn=Tryfan rt=848310903
~#! tid=848310903
Pfff.. das ist nicht von Tryfan , sonder von EXTREAM (argh, schrei, kreisch)

Allso Extream die alten Sesselpuper konnt ich noch nie ab, und so richtig
Extream sind die auch nich...

Aber zugegeben , netter Text und Musi :)

TD

-----------------------------------------------------------------------------



Re: Re: More Than Words (Tryfan, 19. Nov 1996, 20:14:53):
~#! rn=Torfdueng rt=848427506
~#! tid=848310903
Jau Torfdueng hat Recht. Der Text ist von Extreme 1990 auf ihrem 
Pornographity -oder so aehnlich- Album erschienen.
Das Extreme bei ihnen ist wohl ihre Bandbreite, da sie auf einer
CD von amerikanischen Schlagerschnultzen ueber caribische Einfluesse bis
hin zu krachenden Hardrocksongs alles vertreten haben. Der Song 
'More than Words' ist ein wirklich schoenes Gitarrenstueck mit 
wohlgemerkt akustischer Gitarrenbegleitung. Bekannt aus MTV u.ae.
duerfte wohl das Stueck '(If you don't like it) get the Funk out'
sein, ein Hardrockstueck mit funkygen Blaesereinlagen.
Pornographity waere beinahe wegen anruchigr Texte auf dem Index
gelandet. In Amerika musste die Scheibe mit einem Warnaufkleber 
verkauft werden, soviel ich weiss. Kann man das glauben bei dem
Text von 'More than Words'? Egal, mir ging es nur um den Text,
um nichts anderers. Deshalb verzeiht mir bitte, dass ich niht angegeben
habe, woher ich ihn hatte.
   Tryfan

-----------------------------------------------------------------------------



Re: More Than Words (Lug, 20. Nov 1996, 02:27:37):
~#! rn=Tryfan rt=848310903
~#! tid=848310903
Soso,

Lug troestet Tryfan.

-----------------------------------------------------------------------------



Weihnachtsmann (Xeeran, 27. Nov 1996, 16:40:19):

Gibt es den Weihnachtsmann?


1.  Keine bekannte spezielle Gattung Rentier kann fliegen.
Aber es gibt 300.000 Spezies von lebenden Organismen, die
noch klassifiziert werden muessen, und obwohl es sich dabei
hauptsaechlich um Insekten und Bakterien handelt,schliesst
dies nicht mit letzter Sicherheit fliegende Rentiere aus.
(Die nur der Weihnachtsmann bisher gesehen hat.)


2.  Es gibt zwei Milliarden Kinder (Menschen unter 18) auf
der Welt. Da aber der Weihnachtsmann (anscheinend) keine
Moslems, Hindu, Juden und Buddhisten beliefert, reduziert
sich seine Arbeit auf etwa 15 Prozent der Gesamtzahl - das
sind 378 Millionen Kinder (lt. Volkszaehlungsbuero). Bei
einer durchschnittlichen Kinderzahl von 3.5 pro Haushalt
ergibt das 91.8 Millionen Haeuser. Wir nehmen an, dass in
jedem Haus mindestens ein braves Kind lebt.


3.  Der Weihnachtsmann hat einen 31-Stunden-Weihnachtstag,
bedingt durch die verschiedenen Zeitzonen, wenn er von
Osten nach Westen reist (was logisch erscheint). Damit
ergeben sich 822.6 Besuche pro Sekunde. Somit hat der
Weihnachtsmann fuer jeden christlichen Haushalt mit braven 
Kindern 1/1000 Sekunde Zeit fuer seine Arbeit: Parken, 
aus dem Schlitten springen, den Schonstein runterklettern,
die Socken fuellen, die uebrigen Geschenke unter dem 
Weihnachtsbaum verteilen, alle uebriggebliebenen Reste
vom Weihnachtsessen vertilgen, den Schonstein wieder rauf-
klettern und zum naechsten Haus fliegen. 

Angenommen, dass all diese 91.8 Millionen Stops gleich-
maessig auf der Erde verteilt sind (was natuerlich, wie
wir wissen, nicht stimmt, aber als Berechnungsgrundlage 
koennen wir dies akzeptieren), erhalten wir nunmehr 1.3 km 
Entfernung von Haushalt zu Haushalt, eine Gesamtentfernung von
120.8 Millionen km, nicht mitgerechnet die Unterbrechnungen
fuer jene Dinge, die jeder von uns (mindestens) einmal am
Tag erledigen muss, zuzueglich Essen usw. Das bedeutet, dass
der SChlitten des Weihnachtsmannes mit 1040 km pro Sekunde
fliegt, also der 3000fachen Schallgeschwindigkeit. Zum
Vergleich: Das schnellste von Menschen gebaute Fahrzeug
auf der Erde, der Ullysses Space Probe, faehrt mit
laecherlichen 43.8 km pro Sekunde. Ein gewoehnliches
Rentier schafft hoechstens 23 km pro _Stunde_.


4.  Die Ladung des Schlittens fuehrt zu einem weiteren
hoechst interessanten Effekt. Angenommen, jedes Kind
bekommt nicht mehr als ein mittelgrosses Lego-Set (ca. 1 kg),
dann hat der Schlitten ein Gewicht von 378.000 Tonnen
geladen, nicht mitgerechnet den Weihnachtsmann selbst, der
uebereinstimmend als uebergewichtig beschrieben wird. 

Ein gewoehnliches Renntier kann nicht mehr als 175 kg ziehen.
Selbst bei der Annahme, dass ein _fliegendes Rentier_
(siehe Punkt 1) das Zehnfache des normalen Gewichts ziehen
kann, braucht man fuer den Schlitten nicht acht oder gar
zwoelf Rentiere - man braucht 216.000 Rentiere. Das erhoeht
das Gewicht - den Schlitten selbst nicht einmal eingerechnet -
auf 410.000 Tonnen. Nochmals zum Vergleich: Das ist mehr als
das vierfache Gewicht der Queen Elizabeth.(*)

(*) Die hier angesprochene Queen Elizabeth ist nicht die 
Monarchin des Empire, Schwiegermutter von Lady Di, sondern
der legendaere Luxusdampfer.


5.  410.000 Tonnen bei einer Geschwindigkeit von 1040 km/s
erzeugen einen ungeheuren Luftwiderstand - dadurch werden
die Rentiere aufgeheizt, genauso wie ein Raumschiff, das
wieder in die Erdatmosphaere eintritt. Das vorderste Paar
Rentiere muss dadurch eine Mende Energie von 16,6 Trillionen
Joule absorbieren. Pro Sekunde! Jedes!

Anders ausgedrueckt: Sie werden augenblicklich in Flammen
aufgehen, das naechste Paar Rentiere wird dem Luftwiderstand
preisgegeben, und es wird ein ohrenbetaeubender Knall erzeugt.

Das gesamte Team von Rentieren wird innerhalb von 5/1000 Se-
kunden vaporisiert. Der Weihnachtsmann wird waehrenddessen
einer Beschleunigung von der Groesse des 17.500fachen Erdbe-
schleunigung ausgesetzt. Ein 120 kg schwerer Weihnachtsmann
(was der Beschreibung nach laecherlich wenig sein muss) wuerde
an das Ende seines Schlittens genagelt - mit einer Kraft von
20.6 Millionen Newton.


6.  Damit kommen wir zum Schluss: Wenn es den Weihnachtsmann
irgendwann einmal gegeben hat, so muss er, bevor er die
ersten Geschenke gebracht hat, tot gewesen sein.


(Aus "TIP - Das Berlin Magazin 25/96")

In diesem Sinne: Einen schoenen 1. Advent .... vergesst Weihnachten! ;)

Jariel (laesst Weihnachten dieses Jahr ausfallen)

-----------------------------------------------------------------------------



Re: Weihnachtsmann (Qitess, 27. Nov 1996, 18:22:21):
~#! rn=Xeeran rt=849109219
~#! tid=849109219

die frage und den text von TIP - Das blafasel

gibt es schon ewig und ich habe ihn mindestens 5 mal als email geschickt
bekommen. :)

QI   WEISS dass es den weihnachtsmann gibt.

*

-----------------------------------------------------------------------------



Re: Weihnachtsmann (Zardoz, 28. Nov 1996, 08:42:33):
~#! rn=Xeeran rt=849109219
~#! tid=849109219
ARGL! Bitte nicht jedes Jahr den gleichen Weihnachtsmannartikel!!!!

Ciao Zardoz

-----------------------------------------------------------------------------



Re: Re: Weihnachtsmann (Yantro, 28. Nov 1996, 08:43:00):
~#! rn=Qitess rt=849115341
~#! tid=849109219

So wie das Christkind jedes Jahr meint, dass es uns belaestgen soll, so
scheint es, muss ich jeden November diesen Artikel lesen... uebelst, sag ich
nur :(

-----------------------------------------------------------------------------



Re: Re: Weihnachtsmann (Har, 28. Nov 1996, 10:28:00):
~#! rn=Zardoz rt=849166953
~#! tid=849109219
ARGL! Nicht jedes Jahr das "Nicht jedes Jahr den selben
Weihnachtsartikel"-Geschreie!

Har (grinsend)

-----------------------------------------------------------------------------



re weihnachtsmann (Hefe, 28. Nov 1996, 12:45:41):
Also, ich kannte den artikel noch nicht und fand ihn wirklich koestlich !!

-----------------------------------------------------------------------------



Re^3: Weihnachtsmann (Boing, 28. Nov 1996, 14:02:52):
~#! rn=Yantro rt=849166980
~#! tid=849109219
Neenee ... Du musst ihn gar nicht lesen! :) Da Du diesen Artikel sehr
genau zu kennen scheinst, haette Dir schon bei den ersten paar Zeilen
auffallen koennen, dass Du ihn nicht mehr sehen willst. Danach weiterzu-
lesen ist reiner Masochismus. :)
  Boing

-----------------------------------------------------------------------------



Re^4: Weihnachtsmann (Cauno, 28. Nov 1996, 14:04:13):
~#! rn=Boing rt=849186172
~#! tid=849109219
Immerhin hatte ich jetzt endlich die Gelegenheit, ihn mir rauszupasten, damit
ich endlich auch andere damit nerven kann.

C. No

-----------------------------------------------------------------------------



Re^3: Weihnachtsmann (Anatol, 28. Nov 1996, 14:11:08):
~#! rn=Yantro rt=849166980
~#! tid=849109219

Ich empfinde das alljaehrliche Auftreten eines Artikels als weit 
weniger belaestigend als beispielsweise so manchen beleidigenden Artikel eines
gewissen Koelner Magiers oder mein arrogantes Geschreibsel.

Anatol


-----------------------------------------------------------------------------



Re: Weihnachtsmann (Asmodis, 28. Nov 1996, 19:41:10):
~#! rn=Xeeran rt=849109219
~#! tid=849109219
Hmm, du hast dabei nicht bedacht, dass der Weihnachtsmann nicht allein
arbeitet, sondern Hilfe von seinen Bruedern und Vettern erhaelt.
(seine eigentlichen Mitarbeiter, die Elfen, fertigen zusammen mit
Mama Claus (die Mutter von Santa Claus), ja nur die Geschenke an)

Und er hat viiiiiele Geschwister und Vettern ... :)

-----------------------------------------------------------------------------



Re: Re: Weihnachtsmann (Hardil, 29. Nov 1996, 08:24:54):
~#! rn=Asmodis rt=849206470
~#! tid=849109219

Asmodis schrieb:

>Und er hat viiiiiele Geschwister und Vettern ... :)


Heisst das nicht 'Zweities' ?

-Hardil.

-----------------------------------------------------------------------------



Re^4: Weihnachtsmann (Yantro, 29. Nov 1996, 08:25:18):
~#! rn=Anatol rt=849186668
~#! tid=849109219
Stuemmt... ich mag Bendeigids Artikel auch nicht, Anatol :)

-----------------------------------------------------------------------------



Re: Re: Weihnachtsmann (Tasha, 29. Nov 1996, 18:25:31):
~#! rn=Asmodis rt=849206470
~#! tid=849109219

Mama Claus? Ist die ein Fake oder woher der seltsame Name?

Tasha im roten Maentelchen

-----------------------------------------------------------------------------



Re^3: Weihnachtsmann (Asmodis, 29. Nov 1996, 20:43:34):
~#! rn=Tasha rt=849288331
~#! tid=849109219
Der Weihnachtsmann heisst Santa Claus, also ist Claus der Nachname und
die Mutter vom Weihnachtsmann heisst Mama Claus.

Alles Kloar ?

-----------------------------------------------------------------------------



Re^4: Weihnachtsmann (Grimmborn, 29. Nov 1996, 20:44:32):
~#! rn=Asmodis rt=849296614
~#! tid=849109219

...und die Gattin von Santa Claus heisst Mary Christmas.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^5: Weihnachtsmann (Asmodis, 29. Nov 1996, 20:45:38):
~#! rn=Grimmborn rt=849296672
~#! tid=849109219
Noe, der ist nicht verheiratet. Wer haelt es auch mit jemandem aus, der
so dick ist, grade mal eine Woche im Jahr arbeitet und sooo nen Bart
hat ??? :)

-----------------------------------------------------------------------------



Ode an das Morgengrauen (Sunflower,  4. Dez 1996, 13:59:35):

hier mal ein kleiner Gedichtsversuch von mir, der etwas anders ist, als die
hirnlosen Dinger von frueher.

1989 habe ich mein Vaterland verloren,
stand da ohne Ziel,
verlor all meine Traeume, all mein Gefuehl,
doch dann ward ich wiedergeboren.

MorgenGrauen hiess das Zauberwort,
da fand ich neue Freunde und einen Sinn,
auch Liebe und so manch anderes Ding,
ein wahrlich schoener Ort.

Doch meine Zeit schien gekommen,
viele Feinde schuf ich mir,
durch mein Generve ward ich schlimmer als ein Tier,
all meine Traeume schienen zerronnen.

Aber dieser Ort, er gefiel mir sehr,
all die Abenteuer, all die Leute,
all die Regionen, all die Freunde,
wirklich, ohne MorgenGrauen war mein Leben leer.

Ich fasste einen Entschluss und ward wieder da,
ohne Zaubertraenke, ohne Geld,
doch ich fand neue Freunde in dieser Welt,
denn ich war lieb und unscheinbar.

Und nun programmiere ich hier,
in einem lustigen Gespann,
es regiert Witzigkeit und Fun,
und das gefaellt mir.

Viele gehen einen zur Hand,
kein hass mehr, kein gernerve mehr,
denn es gefaellt mir hier zu sehr,
und so sag ich stolz: MorgenGrauen neues Vaterland.


                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re: Ode an das Morgengrauen (Patryn,  4. Dez 1996, 14:06:19):
~#! rn=Sunflower rt=849704375
~#! tid=849704375
na wenn das nix ist, eine lobeshymne aufs MG...weiter so ;)

------
patryn

-----------------------------------------------------------------------------



Re: Re: Ode an das Morgengrauen (Hardil,  5. Dez 1996, 14:29:11):
~#! rn=Patryn rt=849704779
~#! tid=849704375

Also ich finde das etwas extrem gewagt. Jedenfalls die These, dass einem eine
virtuelle Welt ein 'Vaterland', was auch immer das sei, ersetzen kann.
Putzig hingegen ist Sunflowers indirekte These, die BRD sei fuer ihn nur die
Uebergangsstufe von der DDR zum MG gewesen.
Hihi. Weiter so, Deutschland! :)

-Hardil.

-----------------------------------------------------------------------------



Re^3: Ode an das Morgengrauen (Fyt,  5. Dez 1996, 20:47:56):
~#! rn=Hardil rt=849792551
~#! tid=849704375
War es nicht irgendwie so?

Fyt.

-----------------------------------------------------------------------------



ACHTUNG..... WENN SIE NICHT 18 SIND, DANN KLICKEN SIE "q" !!! (Yantro,  5. Dez 1996, 20:54:13):
Halloele, 

hab ich in einer netten Newsgroup gefunden und ich find das einfach zum
schreien komisch:

WARNUNG, es ist nicht so gaaaanz harmlos... wer beim Lesen erotischer
Stories schnell rot werden sollte, der sollte einfach "q" machen...
























                     Die Vanillekaltschale
                     =====================
  Ernie und Bert lagen nebeneinander in ihren bekanntlich schmalen und
separaten Betten. Der Nachbar warf einen Schuh. Ernie konnte nicht
einschlafen.
 
  Dann war die Sesamstrasse zuende.
 
"Beeert?" quengelte Ernie in bekannter Manier, "Bert, die bloeden
Kameraleute sind endlich weg."
 Bevor Bert antworten konnte, war Ernie schon aufgestanden. Er ging ueber
die quietschenden Bohlen zu Berts Bettchen hinueber. Quietsch, quietsch,
quietsch.
  Plumps. Ernie hatte sich schraeg ueber Bert fallen lassen; ein Bein noch
auf dem Fussboden abgestuetzt, weil das Lotterlager nicht breit genug war
und weil er so seine Geschlechtsteile besonders weit offenlegte. Wie diese
Geschlechtsteile aussehen, sei an dieser Stelle noch nicht verraten; nur
soviel sei gesagt, dass sie sich auch bei Muppets ungefaehr vorn zwischen den
Beinen befinden.
"Kuess mich" stoehnte Bert.
Ernie versuchte es. Wie schon oft mussten die beiden Freunde feststellen,
dass ihre breiten, festen Muender zum Kuessen sehr schlecht geeignet waren.
Mehr als ein spitzes Bussi wurde es einfach nicht.
Ernie liess von Berts gelbem Mund ab und begann, an seinem Ohr zu knabbern.
"Mehr!" stoehnte Bert; Schauer liefen an seinem Rueckgrat aus glasfaser-
verstaerktem Polyester auf und ab. Mit seiner zarten roten Filzzunge
versuchte Ernie, in Berts Ohr einzudringen. Es gelang nicht, und wer schon
einmal gesehen hat, wie die Ohren von Ernie und Bert geformt sind, weiss auch
warum. "Haetten die uns nicht ein bisschen sexier konstruieren koennen?",
dachte Ernie noch, bevor er endlich die Wirkung davon spuerte, dass er sich
mit seinem ganzen Gewicht an Bert drueckte: Ein Teil seines immer noch im
Unklaren liegenden Geschlechts hatte sich mit einem Plopp aufgerichtet.
"Chchchchchchr" kicherte Ernie, wie es uns aus vielen Sesamstrassenfolgen
bekannt ist, nur diesmal aus schierer Lust.
  Er sog noch staerker an Berts Ohr. Bert bog sich vor Geilheit so nach
oben, dass sein schmaler Hintern zehn Zentimeter ueber der Matratze in der
Luft herumzitterte.
 "Hmmmmm!" "Oooooooh!" "Aaaaaahhhhh" "Chchchchchchr"
 
  RATSCH.
 
  "Scheisse," sagte Ernie, "schon wieder abgegangen."
  Er spuckte Berts Ohr neben das Bett.
  "Macht nichts, Ernie-Schatz," sagte Bert, "du weisst doch, dass sie dieses
mit Klettband angebracht haben fuer die Folgen, in denen es abgeht. Nimm das
andere, aber bitte, bitte schnell!" Auch bei Bert ragte der entsprechende
Teil der Anatomie inzwischen steil auf.
 
  Die Ohren sind naemlich bei Muppets besonders erogene Zonen.
 
  Waehrend Ernie und Bert weiter schmusen, saugen und stoehnen, wollen wir
einstweilen das Geheimnis ihrer Geschlechtsteile lueften.
  Ernie und Bert sind Zwitter. Jeder von ihnen hat einen wunderschoenen
samtigen Schniebel und eine Venusmuschel, die zwar nicht feucht wird, um
die Hand der PuppenspielerIn nicht zu beschlabbern, aber statt dessen
hinreissend gleitend-seidig ist.
  Als Jim Henson damals Ernie und Bert entwarf, dachte er daran, nach
USA-Sitte auch eine parallele Serie fuer Erwachsene daraus zu machen. Das
scheiterte aber daran, dass den Erwachsenen Ernies Gekicher zu sehr auf den
Keks ging. Die geilen Riesenschniebel sind den beiden Freunden von dieser
Planung geblieben. Venusmuscheln haben alle Handpuppen sowieso.
 
  Ernie lag inzwischen immer noch mit Absicht so ueber Bert, dass er sein
eigenes Geschlecht, gross und geil wie das eines Ebers und eines Schweins im
Weltall zusammen, an Berts Huefte machtvoll auf und ab reiben konnte ---
aber Berts zuckender, zartgelber Schniebel und seine vor Erregung hellgruen
anlaufende Liebesmuschel kriegten nichts ab.  Ernie war ein bisschen sado,
was wir natuerlich schon laengst alle daher wissen, wie er tagsueber mit
Bert umgeht.
 
  "AAAAAAAHHHHHHRRRRGGGGGG!" roechelte Ernie, als er kam und Bert von oben
bis unten vollspritzte. Ihr koennt euch das Gefuehl nicht vorstellen,
gleichzeitig einen Orgasmus zu haben, der in Wellen durch den ganzen Bauch
zieht wie bei einer Frau (berichtigt mich, wenn ich mich irre), und einen,
der ganz auf wenige samtige Zentimeter konzentriert ist wie bei einem Mann.
 
  "Typisch," dachte Bert, als Ernie von ihm herunterrutschte und hechelnd
mit einem Krach auf dem Fussboden landete, "und was ist mit mir?"
 
  "Bitte, Ernie," stoehnte er, liess sich seinerseits auf den Fussboden
fallen und draengte sich an seinen Freund.
  Ernie ruehrte sich nicht. Sein Keuchen wurde ein bisschen langsamer.
 
  "Warum mussten sie mir bloss so einen gemeinen Kerl an die Seite stellen,"
dachte Bert, "da muss ich wohl doch gleich den Doppelstecker-Super-Kombi-
Saugvibrator rauskramen, den mir Schlemihl letztens verkauft hat. ---
Verdammt, morgen wird die Garderobistin wieder schimpfen, weil sie denkt,
ich haette mir eine ganze Schuessel Vanillekaltschale ueber den Bauch
gekippt. "
 
  KEUCH. Keuch. keuch. Atem. atem. SCHNARCH.
  Mist. Jetzt war Ernie auch noch eingeschlafen. Verliebt, aber frustriert
drueckte Bert sich an ihn. Er liebte das Gefuehl von Ernies weichem, filzig
lauwarmem Bauch auf seinem. Aber warum konnte der Kerl nicht anstaendig mit
ihm schlafen?
 
  "Ach Bert, du bist der beste Bert der Welt," fluesterte Ernie, der auf
einmal zu schnarchen aufhoerte, "ich wollte deine Liebe nur ein bisschen
auf die Probe stellen. Komm her, Schatz, jetzt lassen wir die Puppen richtig
tanzen. Hier auf dem Fussboden, der ist gross genug."
Dann holten sie zwei Latex-Kondome aus dem Nachtschraenkchen, konvertierten
sie nach Postscript, damit sie laenger wurden, rollten sie genuesslich ueber
ihre Schniebel und steckten sich in einer Weise ineinander, die uns fuer
immer verborgen bleiben wird.
 
Ihre vierfacher Orgasmus ueberflutete sie genau in dem Moment, in dem der
Nachbar endlich den zweiten Schuh warf.
 
======== Abschlussmusik: "Der die das, wer wie was..." ===============

Yantro

-----------------------------------------------------------------------------



Weihnachten (Grimmborn, 19. Dez 1996, 19:00:06):
Eine kleine Geschichte zur Weihnacht

Die achtjaehrige Virginia O'Hanlon aus New York wollte es ganz genau wissen. 
Darum schrieb sie an die Tageszeitung "Sun" einen Brief:

"Ich bin acht Jahre alt. Einige von meinen Freunden sagen, es gibt keinen
Weihnachtsmann. Papa sagt, was in der 'Sun' steht ist immer wahr. Bitte sagen
Sie mir: Gibt es einen Weihnachtsmann? - Virginia O'Hanlon"

Die Sache war dem Chefredakteur Francis P. Church so wichtig, dass er selber
antwortete - auf der Titelseite der "Sun":

"Virginia,
Deine kleinen Freunde haben nicht recht. Sie glauben nur, was sie sehen; sie
glauben, dass es nicht geben kann, was sie mit ihrem kleinen Geist nicht
erfassen koennen. Aller Menschengeist ist klein; ob er nun einem Erwachsenen
oder einem Kind gehoert. Im Weltall verliert er sich wie ein winziges Insekt.
Solcher Ameisenverstand reicht nicht aus, die ganze Wahrheit zu erfassen und
zu begreifen.
Ja, Virginia, es gibt einen Weihnachtsmann. Es gibt ihn so gewiss wie Liebe
und Grossherzigkeit und Treue. Weil es all das gibt, kann unser Leben schoen
und heiter sein. Wie dunkel waere die Welt, wenn es keinen Weihnachtsmann
gaebe! Es gaebe dann auch keine Virginia, keinen Glauben, keine Poesie - gar
nichts, was das Leben erst ertraeglich machte. Ein Flackerrest an sichtbarem
Schoenen bliebe uebrig. Aber das Licht der Kindheit, das die Welt ausstrahlt,
muesste verloeschen.
Es gibt einen Weihnachtsmann. Sonst koenntest Du auch den Maerchen nicht
glauben. Gewiss, Du koenntest Deinen Papa bitten, er solle am Heiligen Abend
Leute ausschicken, den Weihnachtsmann zu fangen. Und keiner bekaeme ihn zu
Gesicht - was wuerde das beweisen? Kein Mensch sieht ihn einfach so. Das
beweist gar nichts. Die wichtigen Dinge bleiben meistens unsichtbar. Die
Elfen, zum Beispiel, wenn sie auf Mondwiesen tanzen. Trotzdem gibt es sie. All
die Wunder zu denken - geschweige denn sie zu sehen, das vermag nicht der
Kluegste auf der Welt. Was Du auch siehst, Du siehst nie alles.
Du kannst ein Kaleidoskop aufbrechen und nach den schoenen Farbfiguren suchen.
Du wirst einige bunte Scherben finden, nichts weiter. Warum? Weil es einen
Schleier gibt, der die wahre Welt verhuellt, einen Schleier, den nicht einmal
alle Gewalt auf der Welt zerreissen kann. Nur Glaube und Poesie und Liebe
koennen ihn lueften. Dann wird die Schoenheit und Herrlichkeit dahinter auf
einmal zu erkennen sein. 
'Ist das denn auch wahr?' kannst Du fragen. Virginia, nichts auf der ganzen
Welt ist wahrer und nichts bestaendiger. Der Weihnachtsmann lebt, und ewig
wird er leben. Sogar in zehnmal zehntausend Jahren wird er da sein, um Kinder
wie Dich und jedes offene Herz mit Freude zu erfuellen. Frohe Weihnacht,
Virginia.
Dein Francis P. Church"

(Der Briefwechsel zwischen Virginia O'Hanlon und Francis P. Church stammt aus
dem Jahr 1897. Er wurde ueber ein halbes Jahrhundert bis zur Einstellung der
"Sun" im Jahre 1950 alle Jahre wieder zur Weihnachtszeit auf der ersten Seite
der Zeitung abgedruckt.)


Euch allen ein frohes und schoenes Weihnachtsfest!

Grimmborn der Atheist


-----------------------------------------------------------------------------



Re: Weihnachten (Guybrush, 19. Dez 1996, 19:02:43):
~#! rn=Grimmborn rt=851018406 rg=kultur
~#! tid=851018406
Hm, wenn ich Dich nicht kennen wuerde Grimm_i_, wuerd ich Dich jetzt glatt
gern haben und knuddeln ;)

Guybrush, glaubt wieder an den Weihnachtsmann :)

-----------------------------------------------------------------------------



Re: Re: Weihnachten (Wurzel, 19. Dez 1996, 19:06:12):
~#! rn=Guybrush rt=851018563 rg=kultur
~#! tid=851018406
grimmi hat sich geoutet - er ist gar kein atheist!

wurzel glaubt an keinen weihnachtsmann.

-----------------------------------------------------------------------------



Re: Die Frauen ... (Methedras,  2. Jan 1997, 18:25:29):
~#! rn=Methedras rt=852225752 rg=kultur
~#! tid=852225752
Wer weiss, woher der Text des vorherigen Artikels stammt?

-----------------------------------------------------------------------------



Re: Re: Die Frauen ... (Asmodis,  2. Jan 1997, 18:27:13):
~#! rn=Methedras rt=852225929 rg=kultur
~#! tid=852225752
Aus deiner Feder ? :)

-----------------------------------------------------------------------------



Re^3: Die Frauen ... (Cauno,  2. Jan 1997, 18:27:44):
~#! rn=Asmodis rt=852226033 rg=kultur
~#! tid=852225752
Aus deinem Keyboard, meintest du wohl ...

-----------------------------------------------------------------------------



Re^4: Die Frauen ... (Caradhras,  2. Jan 1997, 18:29:41):
~#! rn=Cauno rt=852226064 rg=kultur
~#! tid=852225752
Nein, nicht aus meiner Feder, kleiner Tip:
Ist nur die Uebersetzung eines ziemlich alten und fast allen hier
bekannten Liedes.
                            Caradhras

-----------------------------------------------------------------------------



Nur noch partiell Frauen ... (Caradhras,  2. Jan 1997, 21:09:35):
Lasst uns aus den Bechern der Freude trinken,
die von Schoenheit umkraenzt sind,
und die fluechtige Zeit
berausche sich an der Lust.
Lasst uns von dem suessen Rausch trinken,
den die Liebe beschert,
denn dieses Auge
herrscht allmaechtig ueber das Herz...
Lasst und trinken, der Liebe werden beim Trinken
noch heissere Kuesse zuteil.

Mit euch kann ich meine Zeit
gelassen verbringen,
alles auf Erden ist sinnlos,
was nicht Genuss ist.
Lasst uns geniessen, vergaenglich und fluechtig
sind die Freuden der Liebe;
sie sind eine Blume, die erblueht und verwelkt,
derer man laenger sich nicht erfreuen kann.
Lasst uns geniessen, uns laedt ein feuriges und
schmeichlerisches Wort dazu ein!

                   Caradhras

-----------------------------------------------------------------------------



Re: Nur noch partiell Frauen ... (Ronda,  3. Jan 1997, 11:00:00):
~#! rn=Caradhras rt=852235775 rg=kultur
~#! tid=852235775
Hmm, koennte Bellmann sein? - obwohl der eigentlich deftigeres hatte =;)

Ronda... denkt an nette Sauflieder ...

-----------------------------------------------------------------------------



Re: Nur noch partiell Frauen ... (Jimdigriz,  3. Jan 1997, 12:35:44):
~#! rn=Caradhras rt=852235775 rg=kultur
~#! tid=852235775

Is das Gebirge verliebt ?? ;)

Die Edelstahlratte

-----------------------------------------------------------------------------



Re: Re: Nur noch partiell Frauen ... (Caradhras,  3. Jan 1997, 14:22:24):
~#! rn=Jimdigriz rt=852291344 rg=kultur
~#! tid=852235775
Nein.
Nur Musikverliebt. Music was my first love...

Aufloesung: Der Text von 'Nur noch partiell...' stammt aus La Traviata,
erster Akt (Verdi)

-----------------------------------------------------------------------------



Re: Die Frauen ... (Qitess,  3. Jan 1997, 17:41:40):
~#! rn=Methedras rt=852225752 rg=kultur
~#! tid=852225752


La donna e mobile
mal pium al ve-hento
muta d'accento
e di pensier

-GROEHL- :)

QI singt fast so gut wie lutschi :)


-----------------------------------------------------------------------------



Eine Erinnerung (Wanderer,  5. Jan 1997, 18:07:30):
Etwas fragmentarisch, wie Erinnerung oftmals ist:

Auf dem Platz, an dem Bunnen,
Wo das Wasser so klar,
Ward ich einst eines Hauches
Ihrer Schoenheit gewahr.

Auf dem Platz, an dem Bunnen
Gab sie mir ihren Rat,
Gab mir Kraft fuer den Weg,
Dem entgegen ich trat.

Jener Platz, jener Brunnen
Hat sie lang nicht geseh'n,
Doch der Hauch Ihrer Schoenheit dort,
Er wird nicht vergeh'n.

Auf dem Platz, an dem Bunnen
In Erinnrung so klar,
Bin ich stets eines Hauches
Ihrer Schoenheit gewahr.

-----------------------------------------------------------------------------



Zwei Koenigskinder (Acrimon,  5. Jan 1997, 19:28:48):

Es waren zwei Koenigskinder,
die hatten einander so lieb.
Sie konnten zusammen nicht kommen,
das Wasser war viel zu tief,
das Wasser war viel zu tief.

"Ach Liebster, koenntest du schwimmen,
so schwimm doch herueber zu mir!
Drei Kerzen will ich anzuenden,
und die sollen leuchten zu dir,
und die sollen leuchten zu dir."

Das hoert eine falsche Nixe,
die taet, als wenn sie schlief:
sie taet die Kerzlein ausloeschen,
der Juengling ertrank so tief,
der Juengling ertrank so tief.

Es war an eim Sonntag-Morgen,
die Leut waren alle so froh;
nicht so die Koenigstochter,
die Augen saszen ihr zu,
die Augen saszen ihr zu.

"Ach Mutter, herzliebste Mutter,
mein Kopf tut mir so weh!
Darf ich nicht gehn spazieren
an dem Strand von der rauschenden See,
an dem Strand von der rauschenden See?"

Die Mutter ging nach der Kirche,
die Tochter hielt ihren Gang;
sie ging so lang spazieren,
bis sie einen Fischer fand,
bis sie einen Fischer fand.

"Ach Fischer, liebster Fischer,
willst du verdienen grosz Lohn,
so wirf dein Netz ins Wasser
und fisch mir den Koenigssohn,
und fisch mir den Koenigssohn!"

Er warf das Netz ins Wasser,
es ging bis auf den Grund,
er fischte und fischte so lange
bis er den Koenigssohn fand,
bis er den Koenigssohn fand.

Sie schlosz ihn in ihre Arme
und kueszt seinen bleichen Mund:
"Ach Muendlein, koenntest du sprechen,
so waer mein jung Herze gesund,
so waer mein jung Herze gesund!"

Was nahm sie von ihrem Haupte?
Eine goldene Koenigskron:
"Sieh da, du wohledler Fischer,
hast dein verdienten Lohn,
hast dein verdienten Lohn!"

Sie schwang sich um ihren Mantel
und sprang wohl in den See:
"Gut Nacht, mein Vater und Mutter,
ihr seht mich nimmermehr,
ihr seht mich nimmermehr!"

Da hoert man Glocken laeuten,
da hoert man Jammer und Not:
hier liegen zwei Koenigskinder,
die sind alle beide tot,
die sind alle beide tot!


(Volksmund aus dem 15. Jahrhundert)


Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



De potzik Mann ! (Qitess,  6. Jan 1997, 10:58:55):

Hier nun etwas fuer unsere Friesen und alle, die es werden wollen: 
 
 
 
De potzik Mann

Dear lewwet nons en Mann ip Lunn,
De taalt de heele Dai.
He stinn - deaet kiid keen Mensk verstunn -
Tu taalen uun lung Wai.
He taalt ark Karkfink, de dear kuemm,
Met jaan, tau, tree, schtjuur, fiuw.
En kuemm dear nons en Diuw verbid,
Dann taalt he uk de Diuw.
He taalt uk alle Stoetter dear
Van Rott en Hinn en Katt,
So dat he innemens sletten wear
En roelleket as man watt.
De froagerst, wearom taalt he dann
Alle Dai uun Koll en Hett ?
Miin Kinn, he wear en potzik Mann !
Deaet's alles, wat ik wett !



uut : Miin Urgrossvaddern un ik   (James Kruess)











Und hier nun die (hoffentlich richtige) Uebersetzung :


Der putzige Mann

Es lebte einst ein Mann auf der Insel,
Der zaehlte den ganzen Tag.
Er stand - das konnte kein Mensch verstehn - 
Zaehlend in der Langen Strasse.
Er zaehlte jeden Kirchenfinken, der da kam,
Mit eins, zwei drei, vier, fuenf.
Und kaeme einst der Teufel vorbei,
Dann zaehlte er auch den Teufel.
Er zaehlte auch alle [Stoetter] da
Von rechts und hinten und [oben ?],
So dass er irgendwann zittrig war
Und abgekaempft wie nur was.
Du fragst, warum zaehlte er denn
Alle Tage in Kaelte und Hitze ?
Mein Kind, er war ein putziger Mann !
Das ist alles, was ich weiss !     
      
      
Es gibt auch noch eine Uebertragung ins Hochdeutsche, die sich reimt :


Der komische Alte


Es war einmal ein alter Mann,
Der zaehlte ohne Ruh,
Er zaehlte dies, er zaehlte das,
Er zaehlte immerzu.
Er zaehlte Kaefer, Spatz und Wurm,
So eins, zwei, drei und vier.
Und trottete ein Stier vorbei,
Dann zaehlte er den Stier.
Er zaehlte auf der Wiese gar
Die Blumen und das Gras,
So dass er abends zittrig war
Und muede wie nur was.
Du fragst mich, warum zaehlte er
Bei Regen, Sonn' und Wind ?
Weil er ein bisschen komisch war.
Mehr weiss ich nicht, mein Kind !



QI - ist heute auf dem Kultur-trip gen Norddeutschland !      


-----------------------------------------------------------------------------



Re: Re: Die Frauen ... (Caradhras,  6. Jan 1997, 12:28:46):
~#! rn=Qitess rt=852309700 rg=kultur
~#! tid=852225752
Sehr gut, La donne e mobile... Aus Rigoletto (auch Verdi)

Woher ihr die Melodie kennt? Ganz einfach: Wer ab und zu Werbung kuckt und
mal die Schoko-Crossies dabei gesehen hat ("Ach wie verfuehrerisch sind
Schokocrossies..." (oder so)), datt is datt Lied.

            Caradhras - hollereidulljoe

-----------------------------------------------------------------------------



Re: Re: Die Frauen ... (Yendi,  6. Jan 1997, 13:21:32):
~#! rn=Qitess rt=852309700 rg=kultur
~#! tid=852225752

Hmpf!

Ich kann ja kein Italienisch, aber das muesste trotzdem "La donna" mit "a"
heissen, weil's sonst ja auch "sono mobile" waere...
Eventuell ist das "a" verschluckt, also "La donn'e mobile".
Mal sehen, ob ich den text noch auf die Reihe kriege:

 La donna e mobile, qual' piume al vento,
 muta d'accento e di pensiero,
 sempre una amabile, leggiadro viso,
 in pianto e riso e mensogniero.
 La donna e mobil', qual piume al vento,
 muta d'accento e di pensier'.

 E sempre misero chi a lei s'affida,
 chi la confida mal cauto il core.
 Pur mai non sentesi felice apieno,
 chi su quel seno non liba amore.
 La donne e mobil', qual piume al vento,
 muta d'acceeeeeeeeeeento, e di pensier'.

Hmmm... da fehlen natuerlich die Akzentzeichen. Egal, ist vermutlich sowieso
gespickt mit Rechtschreibfehlern. Irgendein Italiener anwesend?


-----------------------------------------------------------------------------



Frauen (Aergerlich,  7. Jan 1997, 14:46:13):
Aeh also ich halts da eher mit JBO:
"Ka Alde ka G'schrei"
...

-----------------------------------------------------------------------------



Re^3: Die Frauen ... (Caradhras,  7. Jan 1997, 18:09:26):
~#! rn=Yendi rt=852553292 rg=kultur
~#! tid=852225752
Klar, hast recht, Yendi, war ein Tippsfehler... aber da gibts ja
andere, die auch genug machen. *grins*

-----------------------------------------------------------------------------



Re^3: Nur noch partiell Frauen ... (Highlander,  8. Jan 1997, 11:13:14):
~#! rn=Caradhras rt=852297744 rg=kultur
~#! tid=852235775
... and it will be my last!
  HrT

-----------------------------------------------------------------------------



Re: Frauen (Highlander,  8. Jan 1997, 11:15:37):
~#! rn=Aergerlich rt=852644773 rg=kultur
~#! tid=852644773
He, kommst Du aus Erlangen oder Umgegend? :>  Kannst am
Donnerstag zum Stammtisch kommen :>
   HrT (sich fragend, woher Aergerlich sonst JBO kennen wuerde)

-----------------------------------------------------------------------------



 JBO (Aergerlich,  8. Jan 1997, 14:17:55):
ALso ICH komme, wie man schnell sieht, wer den Befehl finger benutzt, aus dem
schoenen Halle/S.
ICH kenne JBO, weil ich ein Indie- Fan bin, unddiverse andere Sachen hoere,
als den TECHNO- Scheiss, der heutzutage die Hitparaden bestimmt.
Aergerlich, sich auch als "Sterne- Fan " outend :-)

-----------------------------------------------------------------------------



Re:  JBO (Qitess,  9. Jan 1997, 09:04:40):
~#! rn=Aergerlich rt=852729475 rg=kultur
~#! tid=852729475
man hoert kein techno in den hitparaden. das was man da hoert ist ein
widerliches gemisch aus diversen musik-stilen.

QI - die gerne auch mal *puren* tekkno hoert.


-----------------------------------------------------------------------------



Re: Zwei Koenigskinder (Li,  9. Jan 1997, 09:42:50):
~#! rn=Acrimon rt=852488928 rg=kultur
~#! tid=852488928
Gut, das es die Rechtschreibreform gibt, danach wird das "ss/sz" nach einem
kurzen Vokal "s" geschrieben, so das (!) der Streit, ob man nud Dass oder Dasz
schreibt, wegfaellt...

-----------------------------------------------------------------------------



Lummerland ! (Qitess,  9. Jan 1997, 09:56:53):

Eine Insel mit zwei Bergen

Eine Insel mit zwei Bergen
           und dem tiefen weiten Meer
Mit viel Tunnels und Geleisen
           und dem Eisenbahnverkehr
Nun, wie mag die Insel heissen ?
           Ringsherum ist schoener Strand.
Jeder sollte einmal reisen
           in das schoene Lummerland !                    
           

Eine Insel mit zwei Bergen
           und dem Photoatelier.
In dem letzten macht man Bilder,
           auf dem ersten 'dullijoeh!'.
Diese Breiten, diese Tiefen,
           diese Hoehen sind bekannt
Und man spricht von den Motiven 
           auf dem schoenen Lummerland !
 
 
Eine Insel mit zwei Bergen
           und dem Fernsprechtelephon.
Waehlt man nur die richtige Nummer,
           klappt auch die Verbindung schon.
"Hallo, hier ist falsch verbunden!"
           "Wollen Sie sich jetzt beschwer'n?"
"Nein, warum? Das kann passieren!"
           "Also dann, auf Wiederhoer'n!"


Eine Insel mit zwei Bergen
           und der Laden von Frau Waas.
Hustenbonbons, Alleskleber,
           Regenschirme, Leberkaas,
Koerbe, Huete, Lampen, Wuerste,
           Blumenkohl und Fensterglas,
Lederhosen, Kuckucksuhren,
           und noch dies und dann noch das.



( erster Teil gesungen von Lukas dem Lokomotivfuehrer)
(zweiter Teil gesungen von Herrn Aermel, Untertan)(?)
(dritter Teil gesungen von Koenig Alfons, dem Viertel-vor-Zwoelften)
(vierter Teil gesungen von Frau Waas)





QI

-----------------------------------------------------------------------------



Fuer Qitess... und wer sonst noch drauf steht :-) (Yantro,  9. Jan 1997, 10:04:15):

Hi, 

ich hab mal ein altes Werk ausgegraben, was ich eigentlich schon fuer
verschollen gehalten habe... und wer kann nicht behaupten, dass er das
Original in der Schule gehasst hat? :-)


Dae Oelkuenning
(Wie dae Kuennings Pitter Wuerm foer sing Oel soek)

Wae krueff su spaet en der Naach oem de Tuerm?
Et ess dae Pitter, hae soek noh Wuerm.
Hae haelt e Emmerche ungerm Aerm
Un secher haelt singe Klein dae Scherm.

"Sach, Jung, wat steiht Dir de Angs im Geseech?"-
"Suehs do dae Schutzmann hinge em Leech?
Dae Schutzmann, Vatter, dae schriev uns op"!
"Jeck,  Jung, dar ess en Moeschepopp!"

"Leev Kaelche, kumm met en de Blech!
Do wors de letzte Zigg ze frech.
Maench Rutaug haess de gefange em Rhing
Un keimol hatt's de ne Angelsching!"

"Och Vatter, mi Vatter, do hoeoesch et doch och, 
Dae Schutzmann, dae schnapp mich un braengk mich en't Loch!"-
"Bliev raeuhig, raeaech dich floeck widder av!
Do falle bloss welke Blaedder erav."

"Na, Klein, wells do net met mer gon?
Ming Fraulueck jetz allt om Doerpel ston, 
Ming Doeoechter, glaeuv et, sin all e As.
Se schrieve de Knoellcher! Et freut sich de Kass!"

"Och Vatter, mi Vatter, jo suehs do dann net
De Politesse, en ganz grosse Schwitt?"-
"Jo, Jung, bess stell, ich ben doch net schael.
Dat sin e paar Nuettcher met enem Kaeael!"

"Ich schnappe dich, mich reiz dingem Ahl sie Gehalt, 
Un kuess de net wellich, dann maach ich dich kalt!"- 
"Och Vatter, mi Vatter, jetz han mer genog, 
Ich han bal fuffzig Wuermcher em Doch!"

Dae Vatter schoett sich, hae laeuf wie der Wind.
Hae draegt singe Emmer, dae Scherm un dat Kind.
Gloecklich doheim, verhaeut hae dae Krott.
E Loch wor em Emmer, de Wuerm wore fott!


Yantro

-----------------------------------------------------------------------------



Noch mehr Wuermer (Qitess,  9. Jan 1997, 10:13:25):

Is'n Waermsche
               mid'm Schaermsche
                                 unner'm Aermsche
                                                  uff'm Taermsche.

Kommt'n Staermsche -

Waerft des Waermsche 
                     mid'm Schaermsche 
                                       unner'm Aermsche
                                                        vom Taermsche.    

QI - kann des verschtehn :)


-----------------------------------------------------------------------------



Re: Re: Zwei Koenigskinder (Asmodis,  9. Jan 1997, 14:18:29):
~#! rn=Li rt=852799370 rg=kultur
~#! tid=852488928
Was fuer ein Streit? Es war doch immer eindeutig, wann man das, und wann 
man dass schreiben muss. Ich hatte damit nie Probleme!


-----------------------------------------------------------------------------



Re: Re: Zwei Koenigskinder (Acrimon,  9. Jan 1997, 15:10:00):
~#! rn=Li rt=852799370 rg=kultur
~#! tid=852488928
Gluecklicherweise macht die Rechtschreibreform keine solche Verschlechterung,
wie Du sie anscheinend verstanden haben willst.
So leid es mir fuer dich tut - aber auch in Zukunft wird die deutsche Sprache
noch halbwegs verstaendlich bleiben!

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Hmpf (Sunflower,  9. Jan 1997, 16:13:20):
Was ist nur mit der guten alten Musik los ? Damals als noch die Beatles
spielten, aber die kennt ja keiner mehr. Nein heute nur noch Techno und alles
scheint
auch noch auf der Queen Welle zu reiten. Nehmen wir Dune oder diese (Die
meinen Namen gelaut hat) Bluemchen. 

Ich lege mir lieber die alten Vinyl Platten auf und hoere Beatles oder Queen
und auch paar alte Hosen oder Aerzte Lieder.

Bluemchen, fuer die Bommerlunder immer noch der Megahit ist

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



note MUSI (Gralkor,  9. Jan 1997, 17:03:28):
Ja da muss ich mich der Blume anschliessen!
Obwohl sich Dune ja viel Muehe gegeben haben, der Song ist oki, aber die 
anderen Songs, da wuerde sich Freddy im Grab umdrehen!

Ansonsten, Beatles sind nicht mein Geschmack, aber wuerde ich jedem
Technoschrott vorziehen.
Ansonsten Die Aerzte sind saugut, auch wenn die neue haarige Platte zK ist.
Dafuer hat die Terrorgruppe ne Spitzenscheibe abgeliefert.
(Gruss an die Kelly- Fans)
Ansonsten :"Forever JBO"
Bye ICH :-)

-----------------------------------------------------------------------------



Re: note MUSI (Sunflower,  9. Jan 1997, 17:05:39):
~#! rn=Gralkor rt=852825808 rg=kultur
~#! tid=852825808
ja die neuen Platten von DAE und DTH sind scheisse :)

Der Song ueber die KF von TG steht leider auf den Index :(


Sunflower, die in Koeln vergessen hat: SCHIFFE VERSENKEN zu spielen

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re: note MUSI (Yantro,  9. Jan 1997, 17:11:25):
~#! rn=Gralkor rt=852825808 rg=kultur
~#! tid=852825808

ich weiss nicht, wie man behaupten kann, dass das Dune-Cover von 'who wants to
life forever' ok ist.... es ist billig und die stimme ist kraftlos und
gelangweilt. Das schlimmste ist aber, dass Dune dem song mit dem wegfall der
Zeile 'who dares to love forever, when love must die!' die KERNAUSSAGE
genommen haben. Man koennte auch sagen, dass sie den Song nihct gerallt haben,
aber das ist von solch primitiven Technohirnen auch nicht zu erwarten.

Das ganze QueenDanceTraxx-album ist zum kotzen, wenn man die originale liebt
und ich wart auf den tag, an dem ich zB mal DJBoBo begegne... ich bin naemlich
immer bewaffnet ;-)

Nur um zu zeigen, dass ich kein reiner Technohasser bin will ich bemerken,
dass das Coveralbum 'dragon attack', auf dem sich diverse Hardrocker bei Queen
bedienen, auch schrott ist... einzig Lemmy roulez, aber der Mann ist ja auch
selber ein Kult. 

Yantro

-----------------------------------------------------------------------------



Re: Re: note MUSI (Sunflower,  9. Jan 1997, 17:16:24):
~#! rn=Yantro rt=852826285 rg=kultur
~#! tid=852825808
JA, ich habe mir heute das Video von Bluemchen angesehen. Das sowas ueberhaupt
noich gespielt wird..., ausserdem fand ich die Verkleidung als Freddy M. mehr
als geschmacklos. 

Das einzigste was ich mir von diesem ganzen Dune-Bluemchen Zeugs reinziehe
(bei mir heisst das schlichtweg Babyrave (dieser Miles gehoert auch dazu)) ist
Marc Snow und seine Musik, ist ja wahrlich KULT.



                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^3: note MUSI (Gralkor,  9. Jan 1997, 17:31:39):
~#! rn=Sunflower rt=852826584 rg=kultur
~#! tid=852825808
Also ich bin der Meinung, dass man NIEMALS Originale covern sollte, schon
garnicht
Sachen, die einer total anderen Musikrichtung angehoeren, denn das klingt
nicht,
obwohl mir wie gesagt das Stueck von DUNE ganz gut gefaellt.
Noch was anderes. Der Rhein ist tot steht auffm Index????
Ich habe die Single zu Hause.
Der Song ins musiktechnisch Mist, aber der Text ist gut ( und ausserdem gabs n
T- Shirt dazu)
Deshalb: Toetet die Kellyfamily!!!!!!!!
Gralkor, die NDW- Cover hassend

-----------------------------------------------------------------------------



Re^3: note MUSI (Gralkor,  9. Jan 1997, 17:33:44):
~#! rn=Sunflower rt=852826584 rg=kultur
~#! tid=852825808
Robert Miles ist ja auch S*******!!!! 
Aber sein Vater  hat super gute Sachen gemacht:
z B: "Music was my first love"
Musikfan Gralkor

-----------------------------------------------------------------------------



Re^4: note MUSI (Sunflower,  9. Jan 1997, 17:34:28):
~#! rn=Gralkor rt=852827499 rg=kultur
~#! tid=852825808
ja, soweit ich weiss ist das Ding bei Erscheinen auf dem Index gelandet.

Naja, ich vermute trotzdem das die BundesPruefstelle das Lied auch dauernd
hoert :)

MUDDER aller Laender vereinigt euch gegen die Kelly Family !!

Sunflower die erstmal ein Spendenpaket mit Shampoo und Haarscheren pakt und es
dann nach Koeln schickt.

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re: Re: note MUSI (Acrimon,  9. Jan 1997, 18:30:23):
~#! rn=Yantro rt=852826285 rg=kultur
~#! tid=852825808
'who wants to life forever'
'who dares to love forever, when love must die!'
...
Bloede Doppeldeutigkeiten mit Gefuehlstendenzen zum Pessimismus und
Vorspiegelung falscher Tatsachen!

Grausig!

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re^3: note MUSI (Anatol,  9. Jan 1997, 18:31:56):
~#! rn=Acrimon rt=852831023 rg=kultur
~#! tid=852825808

Halleluja.


-----------------------------------------------------------------------------



Re^4: note MUSI (Wurzel,  9. Jan 1997, 18:51:13):
~#! rn=Anatol rt=852831116 rg=kultur
~#! tid=852825808
ich weiss nicht was ihr fuer probleme habt...
in den siebziger jahren wurde aufgehoert, gute musik zu machen. danach kamen
hoechstens noch vereinzelte ausnahmen, aber die grosse masse ist schrott.
merkt man u.a. daran, dass heute pausenlos gecovert wird, auf eigene ideen
kommt wohl keiner mehr... jimi hendrix ist tot, janis joplin ist tot, jim
morrison ist tot, und mir ist auch schon ganz schlecht...

wurzel legt jetzt muddy waters auf :) (der ist leider auch schon tot :( )

p.s. man koennte denken, nur tote musiker sind gute musiker, aber da gibt es
     ja noch clapton...

-----------------------------------------------------------------------------



Zwei Koenigskinder (Hefe,  9. Jan 1997, 20:37:56):
War das nicht so :

Es waren zwei Koenigskinder,
die hatten einander so lieb.
Sie konnten zusammen nicht kommen,
denn er kam immer zu frueh !
:-)
Hefe

-----------------------------------------------------------------------------



Re: Zwei Koenigskinder (Dieder,  9. Jan 1997, 21:37:52):
~#! rn=Hefe rt=852838676 rg=kultur
~#! tid=852838676
Korrektur:

Es waren zwei Koenigskinder,
die hatte in der Liebe Mueh,
sie konnten zueinander nicht kommen,
denn er kam immer zu frueh.

;))

Dieder

-----------------------------------------------------------------------------



Gourmet (Dieder,  9. Jan 1997, 21:40:21):
Und noch ein Verslein von der EAV:

Der Gourmet gern Trueffel speist,
und nachher wie ein Bueffel sch... *zensiert, piep*

Dieder

-----------------------------------------------------------------------------



Re^3: Zwei Koenigskinder (Li, 10. Jan 1997, 08:24:28):
~#! rn=Acrimon rt=852819000 rg=kultur
~#! tid=852488928
Auch wenn du es nicht glauben willst: Dass bzw. dasz hinter einem komma wird
zu das!
Troeste Dich, mir gefaellt es auch nicht...
Li

-----------------------------------------------------------------------------



Re: Hmpf (Li, 10. Jan 1997, 08:30:40):
~#! rn=Sunflower rt=852822800 rg=kultur
~#! tid=852822800
*Nostalgie an*
Ach ja, waren das noch Zeiten als es noch Leute wie Led Zeppelin, Golden
Earring, New Model Army, Police, Fisher-Z und Sisters of Mercy gab...
*Nostalie off*
Aber im Ernst, grade in der TEKKKNo-Welle (zumindestens das, was man so im
Radio hoert) scheint alles nur noch gecovert zu werden, faellt den Leuten
nichts eigenens mehr ein?
Dazu faellt mir ein, das heute anscheinend in allen musikrichtungen nur noch
gecovert wird, als nichts fuer ungut, Tekkno Fans..
Li (Erinnert sich mit Grausen an die Cover Versionen von "Because the night"
und "Who want's to live forever" )

-----------------------------------------------------------------------------



Re: Re: Hmpf (Har, 10. Jan 1997, 09:52:00):
~#! rn=Li rt=852881440 rg=kultur
~#! tid=852822800
Mann seid ihr alle edel, gebildet und ihr habt auch alle einen soooo tollen
Geschmack! Und das koennt ihr alle auch noch so raushaengen lassen. Das
Gefasel hier erinnert  mich an die Restaurantkritiken eines Edelgourmets der
seine Ueberheblichkeiten im Zeitmagazin verbreitet - 80% aller Weine sollten
sowieso in den Abfluss geschuettet werden und 99% aller Musik gleich
hinterher...und Pommes-Sosse-Majo gibt es in Zukunft genauso wenig wie
schlechte Remixes, dann wird die Welt sicherlich besser und 
schoener fuer alle!

Har

-----------------------------------------------------------------------------



Re: Re: Hmpf (Qitess, 10. Jan 1997, 09:56:20):
~#! rn=Li rt=852881440 rg=kultur
~#! tid=852822800
ich kann mich hars meinung nur anschliessen.

als ich angefangen habe, diese diskussion zu lesen, ist es mir bald
hochgekommen.

aber was solls. jedem das seine, und har und mir die einsicht ;)

qi :)

-----------------------------------------------------------------------------



Re^3: Hmpf (Sunflower, 10. Jan 1997, 11:52:17):
~#! rn=Qitess rt=852886580 rg=kultur
~#! tid=852822800
Neulich, sprich heute habe ich mir mal wieder Geschwisterliebe und Jenseits
von Eden (die Aertze-Version reingezogen) sowie paar alte Elvis Schnulzen und
die
Dinger sind weit aus besser als irgendso ein Tekkno geleier, wo einen ehh nach
2 Minuten die Ohren schmerzen. 

Hmm Qitess dir ist was hochgekommen ? du hast doch nicht etwa die 80% der
Weine getrunken die man wegschuetten kann ?

Sunflower

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Rechtschreibreform (Ringor, 10. Jan 1997, 14:36:48):
~#! rn=Li rt=852881068 rg=kultur
~#! tid=852488928
Soweit ich das verstanden habe, wird es zwar nach der Reform kein dasz mehr
geben. Aber eine Unterscheidung zwischen das und dass bleibt
selbstverstaendlich noch.

Nur eben als dass und nicht dasz. Was das nun bringen soll, ist allerdings
eine andere Frage ...

Ringor. Ist gegen die Reform.

-----------------------------------------------------------------------------



Re: Rechtschreibreform (Oetti, 10. Jan 1997, 19:32:48):
~#! rn=Ringor rt=852903408 rg=kultur
~#! tid=852488928
Soso !

Raider heist jetst Twichs, zonszt aentert sich nichs.

DEr obige Satz war zwar entgegen aller Rechtschreibregeln, aber die
Aussage an sich sollte ruebergekommen sein, so what ?

Will sagen puristet ihr nur Deutschtuemelnd rum, ich kann mich mit der
Reform zwar ueberhaupt nicht anfreunden, aber im Prinzip, solange ich
nich Buecher lesen kann, isses mir egal, ausserdem les ich ehh lieber
in Englisch...

Zur Musik...

ICh perseonlich finde Aerzte und Hosen aehlich Kommerzialisiert wie Kellys
oder
Bed & Breakfast. Und ich mag keine Pauschalverdammnis fuer eine Stilrichtung,
es
gibt im Bereich, House-Techno genauso gelegentliche Highlights wie im
Deutschen
Schlager (FREMMMMMMMMMMMMDEEEEEEEEEEEE ODER FREUUUUUUUUUUUNDE)

Wer Musik nach dem Namen oder Aussehen der Interpreten einordnet hat meiner
unbescheidenen Meinung nach nicht viel dsavon verstanden.
Mozart oder Beethoven haben genauso Scheisse produziert wie Dieter Bohlen oder
Queen. Jeder hat mal nen kreativ guten oder schlechten Tag nur manche halten
nen konstant hohen Level, und das ist dann auch noch Geschmackssache.

Und ueberhaupt, innovative Musik gab es doch seit jeher mehr oder minder
nur auf den kleinen Labels und nicht den majors...

GRuss

Oe*

-----------------------------------------------------------------------------



Re: Re: Rechtschreibreform (Acrimon, 10. Jan 1997, 19:36:44):
~#! rn=Oetti rt=852921168 rg=kultur
~#! tid=852488928
Wenn Du nicht selbst gemeint haettest, man haette keine Muehe mit Lesen ohne
Rechtschreibregeln, dann haettest Du in Deinem Artikel sicherlich nicht wieder
zur Rechtschreibung zurueckgewechselt, Oetti :-)

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re^5: note MUSI (Schrumpfi, 12. Jan 1997, 11:03:34):
~#! rn=Wurzel rt=852832273 rg=kultur
~#! tid=852825808
Iiiiieh Clapton *wuerg*
Also die achtziger Jaehrchen waren mit der Mukke auch ganz ok. Jimi Hendrix
pah! Janis Joplin pah! Alles Hippieschrott ;-)
Schrumpfi steht da eher mehr auf die haertere Abteilung der siebziger Jahre.
(Nein, nicht die Sex Pistols!)

-----------------------------------------------------------------------------



Re^3: Hmpf (Li, 13. Jan 1997, 10:08:23):
~#! rn=Har rt=852886320 rg=kultur
~#! tid=852822800
Meine Guete!
Muss man tatsaechlichg jedesmal *ironie on* *off* dabei schreiben, damit auch
jeder kapiert, wies gemeint ist?

Li

-----------------------------------------------------------------------------



Re^4: Hmpf (Acrimon, 13. Jan 1997, 15:04:15):
~#! rn=Li rt=853146503 rg=kultur
~#! tid=852822800
Woher soll man denn bitteschoen wissen, ob Du das, was Du geschrieben hast,
nicht ernst meinst?

Acrimon, der Rote Ritter wundert sich ueber notorische Luegner.

-----------------------------------------------------------------------------



Re: Hmpf (Hardil, 13. Jan 1997, 16:42:50):
~#! rn=Sunflower rt=852822800 rg=kultur
~#! tid=852822800


Aaaaah! Argl!
Queen, das sind doch Faschos!
Darwinistische Moechtegernmusiker!

Uuuups, da stand ja Milam^H^H^H^H^HBluemchen als Absender drunter.

Vergesst es.

-Hardil. Braucht keine Perlen vor die Saeue zu streuen.

-----------------------------------------------------------------------------



Rechtschreibreform die zwote (Aranya, 14. Jan 1997, 16:19:14):
Also. Als erstes: Die Rechtschreibreform betrifft nur das offizielle
Geschreibsel.
Wie ihr schreibt, ist voellig egal.

Das dass nach dem Komma wenn es NICHT durch welches ersetzt werden kann,
wird statt mit Esszet nun mit Doppel-S geschrieben.
Das hat den einfachen Grund, dass ein Esszet in Zukunft nach 
einem kurzen Vokal als Doppel-S geschrieben wird.

Ansonsten aendert die Reform ungefaehr 0.5% der Regeln, was IMHO zu wenig ist.
Ja, ich liebe die deutsche Sprache auch und wuerde mich als Sprachpurist 
bezeichnen. Aber ihr schreibt ja auch nicht mehr Brod und Thuer. Das wurde
1901 abgeschafft.
Ansonsten: Wendet Euch vertrauensvoll an Euer Kultusministerium. Die schicken
Euch die Unterlagen zur Rechtschreibreform.

Aranya
      hat die Nase voll von diesen quengelnden konservativen Intellektuellen

-----------------------------------------------------------------------------



Re: Rechtschreibreform die zwote (Oetti, 14. Jan 1997, 16:22:36):
~#! rn=Aranya rt=853255154 rg=kultur
~#! tid=853255154
Ich bin fuer eine Radikalreform der REchtschreibung, dergestalt, dass man
das Alphabet auf einen Buchstaben reduziert, obeiger Text saehe dann so aus:

rrr rrr rrrrr, rrrr rrr rrr rrrrr rrrrrrrr rrr rrrrr rrrrrrrrrr rrrrrrrrr.
Rrrrr rrrr rrrrr rrrr rr rrr.

Ist doch praktisch, damit bekamen die meissten Texte viel mehr Sinn, als
vorher (I bet), und es gaeb keine misseverstaendnisse und Kriege mehr.

Ich bin dafuer !

Oe*

-----------------------------------------------------------------------------



Re: Re: Rechtschreibreform die zwote (Cauno, 14. Jan 1997, 16:39:28):
~#! rn=Oetti rt=853255356 rg=kultur
~#! tid=853255154
Rrr rrrrrrrrrrrr rrr Rrrrrr.

Heisst: Ich unterstuetze den Antrag.

C. No ;-)

-----------------------------------------------------------------------------



Re: Re: Rechtschreibreform die zwote (Engywuck, 14. Jan 1997, 16:46:10):
~#! rn=Oetti rt=853255356 rg=kultur
~#! tid=853255154
Also Moment... Wenn ich das richtig sehe, haettest Du in dem Fall auch noch
gravierende Kommaregelaenderungen durchgefuehrt! Das geht nun wirklich zu
weit.

-----------------------------------------------------------------------------



Re: Re: Rechtschreibreform die zwote (Acrimon, 14. Jan 1997, 17:40:01):
~#! rn=Oetti rt=853255356 rg=kultur
~#! tid=853255154
Rrrrr rrrrrrrrr rrrrr rr Rrrrr!

Rrrrrrr, rrr Rrrr Rrrrrr

-----------------------------------------------------------------------------



Re^3: Rechtschreibreform die zwote (Schlips, 14. Jan 1997, 18:21:45):
~#! rn=Cauno rt=853256368 rg=kultur
~#! tid=853255154

Iii iiii.

Iiiiii ;)

-----------------------------------------------------------------------------



Re^4: Rechtschreibreform die zwote (Asmodis, 14. Jan 1997, 19:14:08):
~#! rn=Schlips rt=853262505 rg=kultur
~#! tid=853255154
Mmmm mmmm mmmmmm mmm

-----------------------------------------------------------------------------



Mal so... (Grimmborn, 14. Jan 1997, 20:47:10):
Also, das, was mich am meisten bei der Rechtschreibereform stoert sind die
Diskussionen darueber von Leuten, denen man beim ersten Satz schon anmerkt,
dass sie keine Ahnung haben, worueber sie diskutieren.
Man muss sich bewusst machen, was Sprache und Schrift eigentlich sind bzw.
sein sollen: Mittel zur Kommunikation. Und in einer Zeit, in der man durchaus
zu recht von "Globalisierung" und "Internationalisierung" sprechen kann ist
durchaus auch ein Kriterium die Erlernbarkeit durch Fremde. Nein, ich bin kein
Espandrillo (oder wie die Leute aus Sperantesien heissen), aber ein wenig
Konsequenz in der Sprache schadet nicht. Und erst recht nicht in der Schrift
(um die es ja geht). Es ist ziemlich billig mit Einzelbeispielen zu
polemisieren, weil dann jeder sofort "gewohnt" mit "gut" verwechselt. Ich bin
voellig fuer die Reform, was dann allgemein als unsinnig empfunden wird setzt
sich eh nicht durch, immerhin gab es auch mal die Schreibweise "Kautsch".

Was die Musik angeht, das ist doch die gleiche Diskussion wie die ueber die
unterschiedlichen Computerbetriebssysteme (naja, fast zumindest): "Meine
Sandfoermchen sind aber schoener und bunter als Deine." Mir doch egal was
andere Leute hoeren und gut finden solange ich bei mir hoeren kann was ich
will...
Nur zu Oetti muss ich noch kommentieren, dass natuerlich Beethoven schlechte
Sachen geschrieben hat. Unglaublich schlechte sogar. Ein Paradebeispiel fuer
schlechte, ungemein populaere Musik ist die "Overtuere 1812". Und dennoch, die
beste Musik, die meiner Meinung nach je geschrieben wurde ist das
Violinkonzert von Beethoven. Die Nachwelt misst letztlich an den Highlights,
nicht an den Schatten. Irgendwie auch troestlich...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Mal so... (Sushi, 14. Jan 1997, 21:18:44):
~#! rn=Grimmborn rt=853271230 rg=kultur
~#! tid=853271230
Neeee, Herr Grimmborn, 
so nun aber nicht... "Kommunikation" setzt gegenseitiges Verstehen voraus. Das
kann aber durch gewisse Zweideutigkeiten gestoert werden, wie sie m.E.
beispielsweise die neue Kommaregelung erzeugen kann.

Dass Du die Reform unterstuetzt ist ja sehr lobenswert im Sinne einer
staatstragenden allgemeinen geistigen Gesundheit Deinerseits, aber die Gruende
dafuer wuerde ich schon gerne erfahren. In langen Jahren als Lehrer an eine
"privaten Foerderschule" (vulgo: Nachhilfe) bin ich einer erklecklichen Anzahl
offensiver Analphabeten begegnet. Denen wird es auch nichts helfen, dass man
da/3 jetzt mit ss schreibt, weil sie das zugrundeliegende Prinzip immer noch
nicht verstehen. Ergo: Warum genau befuerwortest Du die Reform? Bloss, weil
"Reform" sprechsprachlich mit Fortschritt gleichgesetzt wird? Um Deine Liebe
zum Kalauer zu befriedigen: "Fortschritt heisst, dass Schlechtes sich
schneller durchsetzt".

Und zur Musik/OS-Debatte: LinuX ist besser als Beethoven und alle Win95-Power
User sind Schafficker. Jawohl! 

Oder war es umgekehrt?

Sushi - $.02end.

-----------------------------------------------------------------------------



Stralsund - oh du Schoene... (Flinx, 15. Jan 1997, 09:35:12):


Es gibt gute und schlechte Orte zum Leben und zum Studieren. Und es gibt
Stralsund.


Sonntag in Stralsund                                   12.01.97


Sonntag in Stralsund.
  Die Worte allein sind Verderben.
  Sonntag in Stralsund.
  La solche Worte von einer Klippe fallen, und sie erreichen nie 
Boden. Sie stuerzen nur durch die Leere auf fuenf Uhr am grauen
Nachmittag zu.
  Sonntag in Stralsund. Wie man ihn auf irgendeine Weise ueber-
steht.
  La die Gabglocken laeuten. Zieh Dir die Bettdecke ueber die 
Ohren. Hoer das Zischen der verrottenden Buesche vor deinem 
Fenster, wenn der traege Wind sie durchfaehrt. Lausch den leeren 
Straen vor deinem Haus, die darauf warten dich zu verschlingen,
wenn du dich vor Mittag hinauswagst. Spuer, wie der Nebel seine 
nasse Flanellzunge unter die Fensterbruestung schiebt, Ziegeldaecher 
beleckt, waehrend seine Massigkeit vor Langeweile tropft.
  Sonntag, dachte ich. Stralsund. Die Kneipen am Nachmittag fest
verschlossen. Die Filme im schaebigen Kino uralt und laengst gesehen.
Nichts zu tun, als vieleicht die Wildkatzen im Stadtzoo anstarren, die
Geier, die aussehen, als waeren sie, mit Leim bedeckt, in die Kiste 
des Lumpensammlers gefallen. Am Sund entlanglaufen, das nebel-
graue Wasser betrachten. Durch die alten Gassen wandern, den
sund-farbenen Himmel sehen.
  Nein, dachte ich wild, bleib im Bett, weckt mich bei Sonnen-
untergang, gebt mir Abendbrot, steckt mich wieder ins Bett, gute
Nacht, alle zusammen !
  Aber ich wankte hoch, ein Held, unter den vernichtenden Hieb
des Sonntags, rasierte mich und betrachtete zu Mittag in leichter
Panik den bevorstehenden Tag aus dem Augenwinkel.
Da lag er, ein verlassender Korridor voller Stunden, gefaerbt wie 
die Oberseite meiner Zunge an einem trueben Morgen.
Selbst Gott mute von solchen tagen, in noerdlichen Landen,
gelangweilt sein. 
Stralsund ! Du groes totes Ungetuem von einer Stadt ! dachte 
ich, als ich von meinem Fenster aus auf die beschneite, berute
Leiche blickte. Hier ist eine Muenze fuer deinen Mund !
  Dann oeffnete ich die Tuer und trat hinaus in den ganzen verbrech-
erischen Sonntag, der mich erwartete.


Flinx, nach einer Kurzgeschichte von Ray Bradbury

-----------------------------------------------------------------------------



Re:Stralsund (Flinx, 15. Jan 1997, 09:37:24):

Hiermit reiche ich ne handvoll "ss" bzw "sz"(ganz nach belieben) nach.

Flinx

-----------------------------------------------------------------------------



Re: Stralsund - oh du Schoene... (Dune, 15. Jan 1997, 13:57:59):
~#! rn=Flinx rt=853317312 rg=kultur
~#! tid=853317312
Moin!
Wer hat eigentlich hier den Kurs angeboten "Gedichte schreiben leicht
gemacht"? Oder woher kommt es, dass hier ploetzlich so viele meinen Gedichte
zum Niederknien schreiben zu muessen.
BITTE AUFHOEREN

-----------------------------------------------------------------------------



Re: Re: Stralsund - oh du Schoene... (Qitess, 15. Jan 1997, 14:16:18):
~#! rn=Dune rt=853333079 rg=kultur
~#! tid=853317312
wozu gibt es denn sonst den kultur-kanal?
sollen wir immer nur ueber bereits geschriebene jahrhundertwerke unserer
begnadeten schriftsteller diskutieren ?

qi liest gerne gedichte.

-----------------------------------------------------------------------------



Re: Re: Stralsund - oh du Schoene... (Acrimon, 15. Jan 1997, 14:28:30):
~#! rn=Dune rt=853333079 rg=kultur
~#! tid=853317312
Die Kultur-Rubrik ist doch zum Gedichteschreiben da, und ich lese sie gerne

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re: Re: Stralsund - oh du Schoene... (Methedras, 15. Jan 1997, 17:21:27):
~#! rn=Dune rt=853333079 rg=kultur
~#! tid=853317312
Tja, Dune, dafuer gibt es den wunderschoenen Befehl:
'bestelle kultur ab' oder 'unsubscribe kultur'.

Wenn Du dem, was hier geschrieben wird, nicht das kleinste abgewinnen
kannst oder dir wenigstens denken kannst, dass es einigen hier
ziemlich bis noch viel mehr gefaellt, dann hast Du hier sowieso
nichts verloren.

              tschuess        
        Caradhras - dem fast alles hier gefaellt

-----------------------------------------------------------------------------



Re: Mal so... (Schrumpfi, 16. Jan 1997, 01:42:32):
~#! rn=Grimmborn rt=853271230 rg=kultur
~#! tid=853271230
Hab ich Dir nicht verboten Dich ueber Musik und Politik zu aeussern? ;-)
Haste ja sowieso keine Ahnung von. ;)
Schrumpfi kriegt Spontanakne wenn sie nur an Schillers gute Freunde denkt.

-----------------------------------------------------------------------------



Re: Re: Mal so... (Anatol, 16. Jan 1997, 01:47:03):
~#! rn=Schrumpfi rt=853375352 rg=kultur
~#! tid=853271230

Also die Akne hat sich bei mir eher bei der Musik gebildet, mit der er
besonders hartnaeckig-verschlafene Faelle zu wecken pfegt *jodel*.

Anatol (war SEHR schnell wach) ;-)


-----------------------------------------------------------------------------



Re^3: Mal so... (Schrumpfi, 16. Jan 1997, 02:03:24):
~#! rn=Anatol rt=853375623 rg=kultur
~#! tid=853271230
Oh, oh, Du aermster, ich kenn das. Vor allem dann, wenn ich um 5:00 Morgens
mit ungefaehr 9 Promille heim komm und der gute Grimmborn weckt mich um 11:00
liebevoll mit Musik auf. Aber ich hab Rache geschworen, eines Tages fessel und
knebel ich ihn und dann spiel ich ihm 5 Stunden Nick Cave vor! Ha! Die
Jodelmusik kenn ich auch zur Genuege, ich Depp hab ihm erzaehlt, dass meine
Mutter mich immer mit Oesterreichischer Volksmusik geweckt hat. Kann ich
ahnen, dass er sowas hat?? Haetts mir allerding denken koennen :)
Schrumpfi sinnt auf Rache.

-----------------------------------------------------------------------------



Re^4: Mal so... (Oetti, 16. Jan 1997, 12:25:05):
~#! rn=Schrumpfi rt=853376604 rg=kultur
~#! tid=853271230
Solange Grimmborn, "Goethes Erben" nicht einlegt ist mir auch
sein Jazzaltsaxophontenorsopranfloetenorchester recht...;-))

Oe*

-----------------------------------------------------------------------------



Re^5: Mal so... (Grimmborn, 16. Jan 1997, 15:12:42):
~#! rn=Oetti rt=853413905 rg=kultur
~#! tid=853271230
Interessant wie ich hier geoutet werde und versuchsweise der Laecherlichkeit
preisgegeben werden soll. :-)
Ja, ich hab eine CD "In der Heimat", die hat schon diverse gute Dienste
geleistet. Kann ich dafuer wenn Schrumpfi so fertig ist dass sie nichtmal
Groenemeyer wecken kann? Dann muss man halt groessere Kaliber auffahren.
Ausserde ist nichts so schoen wie jemanden, der voellig verschlafen ist, zu
wecken, wenn man selber putzmunter ist. Und, meine allerliebste Schrumpfi,
fuer Nick Cave musst Du mich ncht fesseln, das solltest Du wissen. Auch nicht
fuer den Rest von dem, was Du gerne hoerst, vorrausgesetzt es ist nicht zu
laut. Naja, vielleicht mache ich eine Ausnahme fuer einen gewissen Herrn L.,
den ich aus Ruecksicht auf Deinen Ruf hier nicht naeher spezifizieren will.
Goethes Erben sind klasse, aber ich kann natuerlich nicht von jedem, der
Punkrock fuer die Krone der musikgeschichtlichen Entwicklung haelt Geschmack
erwarten. Und "Jazzaltsaxophontenorsopranfloetenorchester"? Sollte ich
tatsaechlich Oetti mal die Koelner Saxophonmaffia vorgespielt haben? Mutig von
mir, haette ich mir gar nicht zugetraut...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^6: Mal so... (Schrumpfi, 16. Jan 1997, 15:38:36):
~#! rn=Grimmborn rt=853423962 rg=kultur
~#! tid=853271230

Wer haelt hier Punkrock fuer die Krone der musikgeschichtlichen Entwicklung?
Ich bestimmt nicht. Ich hoer gern Punkrock aber fuer die Krone der
musikgeschichtlichen Entwicklung halte ich noch immer Dark Wave. Kannst ruhig
schreiben wer der gewisse Herr mit L ist. ich steh zu meiner Limahl-Phase,
jawoll! :-)
Immer noch besser als Groelemeyer.
Schrumpfi gibt sogar zu, dass ihr Rod Steward immer noch gefaellt. *out*

-----------------------------------------------------------------------------



Re^7: Mal so... (Oetti, 16. Jan 1997, 15:39:57):
~#! rn=Schrumpfi rt=853425516 rg=kultur
~#! tid=853271230
Ich schliesse mich dem Dark-Wave an...

Punk ist zu laut auffe dauer, und ausserdem, alles was Punk ist ist sowieso
von den Sex Pistols ;-))))

Oe*

-----------------------------------------------------------------------------



Re^8: Mal so... (Schrumpfi, 16. Jan 1997, 16:06:33):
~#! rn=Oetti rt=853425597 rg=kultur
~#! tid=853271230
AAAAAAAAAAAAH! Oetti Du bist doof und stinkst! 
Schrumpfi kann die Sex Pistols nicht ab. Naja, fast nicht.

-----------------------------------------------------------------------------



Re^9: Mal so... (Raecher, 16. Jan 1997, 16:07:59):
~#! rn=Schrumpfi rt=853427193 rg=kultur
~#! tid=853271230
Punkrock ist doch tot. Die letzte Reste wurde 79' zu Grabe getragen.

Raecher


-----------------------------------------------------------------------------



Gedicht :) (Sunflower, 16. Jan 1997, 16:08:04):
Ein Gedicht ueber einige Zustaende:

Ihr habt kein Brot,
Kein Arbeitsplatz, kein Leben.
Ihr denkt Auslaender sind Schuld an der Not,
und denen wollt ihr es jetzt geben.

Ihr wollt Deutsche sein,
euch gehoert das Land.
Ihr lasst keine Auslaender rein,
steckt Asylantenhaeuser in Brand.

Ein Deutsches Reich wollt Ihr,
Und euren Fuehrer wollt Ihr wiederhaben.
Doch eurer Fuehrer ist nicht hier,
der ist laengst begraben.

So waehlt Ihr einen neuen,
damit er fuer euch denkt.
Ihr fuehlt euch als seine Getreuen,
denen er seine Aufmerksamkeit schenkt.

So zieht Ihr durch die Lande,
zuendet Haeuser an und macht Krach.
Fuehlt euch wunderbar stark in eurer Bande,
doch alleine seid Ihr schwach.

Deutschland den Deutschen das wollt Ihr,
um das zu erreichen wollt Ihr nicht ruhn, sondern bleibt alle wach
wollt keine Auslaender hier,
ach Leute, denkt doch einmal N A C H.



                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^9: Mal so... (Har, 16. Jan 1997, 16:08:32):
~#! rn=Schrumpfi rt=853427193 rg=kultur
~#! tid=853271230
Ich finde Darkwave scheisse, deshlab seid ihr alle doof und ich kann euch
nicht leiden!

Har (mag Vibrators und zwar nicht die mit denen candy.jpg spielt)

-----------------------------------------------------------------------------



Noch'n Gedicht (Oetti, 16. Jan 1997, 16:11:47):

Endzeitanglophile Homozygoten terrorisieren 
Tranquillizer-geschaedigte Hausfrauen durch
dauernders degeneriertes Kopulieren.

Dumm das, denken diverse Dichter, doch es Reimt sich.

Na dann ist ja alles klar !

-----------------------------------------------------------------------------



Re^10: Mal so... (Grimmborn, 16. Jan 1997, 18:02:36):
~#! rn=Har rt=853427312 rg=kultur
~#! tid=853271230
Interessant, und was machst Du mit den Vibratoren? Anal, oder gibts da noch
Moeglichkeiten, von denen meine Spiesservorstellung nicht mal traeumen kann?
;-)

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^10: Mal so... (Schrumpfi, 18. Jan 1997, 16:41:09):
~#! rn=Raecher rt=853427279 rg=kultur
~#! tid=853271230
Bloedsinn. Es gibt genug gute Punkrockbands die erst in den 80zigern oder gar
in den 90zigern gegruendet wurden. Ich denke da nur an OI POLLOI oder SLIME
oder RAZZIA oder CONFLICT ect ect.
S.

-----------------------------------------------------------------------------



Re^10: Mal so... (Schrumpfi, 18. Jan 1997, 16:52:41):
~#! rn=Har rt=853427312 rg=kultur
~#! tid=853271230
Ich kann Dich auch nicht leiden, obwohl ich Deine Musik ganz gut find, aber
das geb ich nicht zu ;-)
Schrumpfi

-----------------------------------------------------------------------------



Re^11: Mal so... (Wurzel, 18. Jan 1997, 16:56:26):
~#! rn=Schrumpfi rt=853602069 rg=kultur
~#! tid=853271230
guter punkrock? ist das nicht eine contradictio in adiectio ? (oder so
aehnlich, mein latein ist schon was laenger her :)

wurzel

-----------------------------------------------------------------------------



Re^12: Mal so... (Sushi, 18. Jan 1997, 17:20:29):
~#! rn=Wurzel rt=853602986 rg=kultur
~#! tid=853271230
Das ist doch relativ... Wenn man The Exploited und The Offspring vergleicht
oder auch Skrewdriver und Sham 69, dann gibt es schon "guten" und "schlechten"
Punkrock... 

Sushi - muskalisch senfend

-----------------------------------------------------------------------------



Re: Gedicht :) (Yendi, 20. Jan 1997, 10:09:35):
~#! rn=Sunflower rt=853427284 rg=kultur
~#! tid=853427284

*seufz*
Dieser penetrant triviale Aufruf zu Eigenverantwortung, Toleranz und
Naziresistenz gewinnt leider nicht durch die kunstlose aeussere Form.

Bluemchen, wenn Du uns schon soziale Binsenweisheiten mit dem Holzhammer
einpruegeln willst, nimm wenigstens einen huebscheren Hammer, ja?

YTY,
    empfiehlt die Lektuere des Werner-Schneyder-Interviews im FAZ-Magazin.


-----------------------------------------------------------------------------



Re: Gedicht :) (Li, 20. Jan 1997, 10:13:06):
~#! rn=Sunflower rt=853427284 rg=kultur
~#! tid=853427284
netter Appell, aber gewisse Leute wollen oder koennen nicht denken.
Li (weiss nicht, ob sie nicht wollen, oder nicht koennen)

-----------------------------------------------------------------------------



Kurzgeschichte (Yantro, 24. Jan 1997, 10:29:40):

Hi, wieder mal hab ich was nettes gefunden, was ich nicht verschweigen
will....

(Arcimon, wenn ich schon wieder eine christliche Mail von Dir kriegen sollte,
dann bist Du tot!)


WIE MAN EINEN AAL TOETET
==========================

Der 12 jaehrige Jonny war fuer sein Alter sehr neugierig. Von seinen Klassen-
kameraden hat er mal was von einem Jungen gehoert, der einem Maedchen den
Hof machte. Nun fragte er sich, wie man sowas anfaengt. Deshalb fragte er
seine Mutter.

Anstatt es ihm richtig zu erklaeren, schlug sie ihm vor, sich hinter dem
Vorhang zu verstecken, da seine Schwester Nancy Besuch von ihrem Freund
Mike erwartete. Am naechsten Morgen fragte ihn die Mutter, was er denn
gelernt hatte. Zur Antwort bekam sie folgendes :

"Nancy und Mike haben eine ganze Weile da gesessen und geplaudert. Aber
dann hat Mike fast das ganze Licht ausgemacht, und die Beiden fingen an
sich zu umarmen und zu kuessen. Ich glaube Nancy ist schlecht geworden,
denn er fuhr ihr mit der Hand unter ihre Bluse, um nach ihrem Herzen zu
fuehlen, genauso, wie es der Onkel Doktor immer macht. Er war aber nicht
sogut wie der Onkel Doktor, denn er hatte Schwierigkeiten das Herz zu
finden und fummelte eine ganze Weile herum.
Ich glaube, dann ist ihm auch schlecht geworden, denn beide fingen
ploetzlich furchtbar an zu stoehnen und zu seufzen. Da sie nicht laenger
sitzen konnten, legten sie sich auf das Sofa. Dann bekam sie Fieber, Ich
weiss es genau, denn sie sagte sie waere unheimlich heiss --- und dann fand
ich heraus, warum den Beiden so schlecht war : Ein grosser Aal muss in
Mike's Hose gekrochen sein. Er sprang heraus und stand fast senkrecht in
die Hoehe. Er war mindestens 20 cm lang ! Ehrlich ! Jedenfalls hatte Mike
ihn gepackt, damit er nicht fort konnte. Als Nancy den Aal sah, bekam
sie Angst. Ihre Augen wurden ganz gross, ihr Mund stand weit offen, und
sie rief den lieben Gott. Sie sagte, dass dies der groesste sei, den sie je
gesehen haette. Wenn sie wuesste, dass unten im See noch viel groessere sind !
Jedenfalls war Nancy sehr mutig, und versuchte den Aal zu toeten, indem
sie ihm in den Kopf biss. Ploetzlich machte Nancy ein komisches Geraeusch
und liess ihn gehen. Ich glaube, dass der Aal zurueck gebissen hatte. Dann
schnappte Nancy ihn und hielt ihn ganz fest, waehrend Mike eine Art
Muschel aus der Tasche holte. Diese stuelpte er dem Aal ueber den Kopf,
damit er nicht beissen konnte. Nancy legt sich auf den Ruecken und
spreizte die Beine. Mike legt sich auf sie. Anscheinend wollten sie den
Aal zwischen sich zerquetschen, aber der Aal kaempfte wie ein Verrueckter,
und Mike und Nancy aechzten und stoehnten. Sie kaempften so hart, dass
beinahe das ganze Sofa ungefallen waere. Nach einiger Zeit lagen dann
beide still auf dem Sofa.
Mike stand auf, und siehe da, der Aal war tot. Ich weiss das ganz genau,
denn er hing so lasch da, und die Innereien hingen heraus. Nancy und
Mike waren zwar sehr muede, aber sie kuessten und umarmten sich trotzdem.
Und dann kam der grosse Schock ! Der Aal war gar nicht tot; er lebte
noch ! Er sprang hoch, und fing wieder an zu kaempfen. Ich glaube Aale
sind wie Katzen - sie haben 9 Leben.

Diesmal sprang Nancy auf und versuchte ihn zu toeten, indem sie sich auf
ihn setzte. Nach einem 15 minuetigen Kampf war er endlich tot, denn Mike
zog ihm das Fell ueber die Ohren, und spuelte es im Klo herunter."
__________________________

Also viel Spass beim Aale toeten :-)


Yantro :-)

-----------------------------------------------------------------------------



Re: Kurzgeschichte (Sunflower, 24. Jan 1997, 12:17:13):
~#! rn=Yantro rt=854098180 rg=kultur
~#! tid=854098180
*grins*


Mich taete jetzt nur interessieren was die Mutter zu Ihrem Sohne sagt :)


                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re: Kurzgeschichte (Acrimon, 24. Jan 1997, 15:54:16):
~#! rn=Yantro rt=854098180 rg=kultur
~#! tid=854098180
Hab ich Dir schon jemals eine christliche Mail geschrieben, Yantro?

Im Uebrigen fand ich die Geschichte ganz gelungen.

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re: Re: Kurzgeschichte (Beelzebub, 24. Jan 1997, 16:08:36):
~#! rn=Acrimon rt=854117656 rg=kultur
~#! tid=854098180
Eine christliche Mail ? Mir auch eine bitte :)

Beelzebub ist nach Humor ]:-)

-----------------------------------------------------------------------------



Re: Re: Kurzgeschichte (Atoz, 24. Jan 1997, 18:51:42):
~#! rn=Acrimon rt=854117656 rg=kultur
~#! tid=854098180
Hey Acrimon droh ihm doch nicht so ;)

Atoz

-----------------------------------------------------------------------------



Goethes Faust (Sunflower, 27. Jan 1997, 11:55:25):
Also als ich mal neulich meine alten Schulsachen durchstoeberte, stiess
ich auf folgende Arbeit ueber den Osterspaziergang (vielleicht kapieren
jetzt die Leute wie bloed ich bin :) )

Aufgabe: Aeussern Sie sich zum Inhalt und zur Form des Osterspaziergangs.

Antwort:

Er ist von Goethe, und Faust macht diesen Spaziergang nach einer langen und
harten Nacht.
Es ist nicht real, denn es wuerde keiner freiwillig, bei einen
Osterspaziergang oder wenn er zur Schule geht, usw., ein Gedicht aufsagen und
dann auch noch so ein langes) Faust erfreut sich der Natur, er sieht den
Fruehling, dass sich der Winter zurueckzieht und ueberall das Leben erwacht:
"Aus dem hohlen, finsteren Tor Dringt ein buntes Gewimmel hervor"

Goethe will mit diesem Gedicht, die Leser aufmuntern zu lernen ( wer aber
liest schon freiwillig so ein Gedicht ?)

Merke: Faust ist sehr schlau, denn er merkst, dass die Wiese gruen ist, aber
noch keine Blumen wachsen. Goethe will erreichen, dass die Menschen wieder zur
Kirche gehen und sich dieser anvertrauen. "Aus der Kirche ehrwuerdiger Nacht.
Sind sie alle ans Licht gebracht."

Form: Es reimt sich, ist in der Szene "vor dem Tor" hineingebracht wurden. Das
Gedicht ist sehr, sehr lang und ist von Goethe

--- Auf die Aufgabe gabs 10 Punkte und ich habe sogar 2 bekommen :)

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re: Goethes Faust (Wurzel, 27. Jan 1997, 18:52:35):
~#! rn=Sunflower rt=854362525 rg=kultur
~#! tid=854362525
einen dafuer, dass es aus goethes faust ist, aber wofuer den anderen?

-----------------------------------------------------------------------------



Unvollendet (Sunflower, 28. Jan 1997, 14:16:03):

Ich frage mich warum ich bin,
was ich hier mache,
wo liegt in meinen Leben der Sinn,
und warum ich lache.

Ich weiss es nicht,
ich will es auch nicht wissen,
ich bin nur ein kleiner wicht.
und keiner wird mich je vermissen.

Sollte es wirklich so einfach gehen,
der Welt den Ruecken zuwenden,
nie mehr zuruecksehen,
auf einer einsamen Insel mein Leben beenden.

In Ruhe das Leben geniessen,
fern von Gewalt, fern von Krach, 
liegend auf gruenen Wiesen,
an einem gurgelnden Bach.

Im gruenen grase traeumen,
von einer neuen Welt,
von besseren Menschen, von besseren Leuten,
in der es mir gefaellt.

                    Unvollendet

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



kultur oder witze? (Li, 30. Jan 1997, 11:38:50):
Da ich nicht weiss, ob ich Gedichte von H.E. lieber hier oder in Witze
veroeffentlichen soll, versuche ich es mal hier:

Zwei Balladen

I
Es war einmal ein altes Sch1oss.
Und Kunibert, so hiess der Boss.
Er hatte Maegde, hatte Knechte
und eine Frau - das war das Schlechte!

Ihr Mund war breit, ihr Hals war lang,
und es klang schrecklich, wenn sie sang.
Da zielte er mir Korn und Kimme
und Wut auf sie - das war das Schlimme!

Es machte bumm ! - (natuerlich laurer!) -
dann fiel sie um. - Zum Himmel schaut er
und spricht, das Auge voll Gewaesser.
"Vielleicht singt sie dort oben besser? "


2
Es war einmal ein stolzer Ritter,
der wurde beim Turnier bloss Dritter.
Das ging dem Armen derart nah,
dass man ihn lebend nicht mehr sah.

Er starb am siebenzehnten Maien -
an einem warmen Tag - im Freien.
Er wollte niemand bei sich haben,
so musste er sichselbst begraben. -


Li (schiebt noch ein Leerzeichen zwischen sich und selbst)

-----------------------------------------------------------------------------



Re: kultur oder witze? (Ancalagon, 31. Jan 1997, 11:47:37):
~#! rn=Li rt=854620730 rg=kultur
~#! tid=854620730
Knuddels!
Also, Ich finde, dass die Werke von heinz Erhardt nur in vorgetragener Form
ihren ganzen Wert darbieten koennen!!!
Jawoll!
                       Ancalagon

P.S.: Bin gern beriet einige dieser wereke in karlsruhe vorzutragen. *grins*

-----------------------------------------------------------------------------



Re: Re: kultur oder witze? (Grimmborn, 31. Jan 1997, 11:49:05):
~#! rn=Ancalagon rt=854707657 rg=kultur
~#! tid=854620730
Nein, Du faengst bitte nicht an, hier .wav-Dateien mit vorgelesenen Gedichten
zu posten... ;-)

GdA

-----------------------------------------------------------------------------



Re^3: kultur oder witze? (Ancalagon, 31. Jan 1997, 12:03:44):
~#! rn=Grimmborn rt=854707745 rg=kultur
~#! tid=854620730
Knuddels!
Hmmm, Grimmi, keine schlechte Idee.....
Wie macht man das? :)
Und in Karlruhe kann ja jeder der will, weghoeren...... :)
Bis denne,
                                     Ancalagon
                              Draco knuddellensis major

-----------------------------------------------------------------------------



Re^3: kultur oder witze? (Fyt, 31. Jan 1997, 17:38:45):
~#! rn=Grimmborn rt=854707745 rg=kultur
~#! tid=854620730

Hm, haette aber was ;-)

Fyt.

-----------------------------------------------------------------------------



Boehse Onkelz: E.I.N.S (Sunflower,  6. Feb 1997, 15:32:28):
Nachdem ich mir das Album reingezogen habe (danke annihilator) muss
ich sagen die Scheibe ist genial. Nicht das was man von den Onkelz gewoehnt
ist in Bezug auf Heilige Lieder (musikalischer Stil) sondern genial.
Musik pur. Die Instrumentals sind spitze und die Gitarrenriffs, 1 A fuer
die Ohren. 
Und die Texte wie die gegen "Hosen" und gegen die Kirche, spiegeln auch
zur Zeit die Meinungen wieder.

Mein Tip reinhoeren oder noch besser: KAUFEN

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re: Boehse Onkelz: E.I.N.S (Yantro,  6. Feb 1997, 15:35:26):
~#! rn=Sunflower rt=855239548 rg=kultur
~#! tid=855239548

Sorry, wenn ich das so hart sagen muss, aber die Onkelz sind gegenueber
frueher richtige komerzielle Weicheier geworden... Nichts geht ueber die
Altwerke wie "Wir ham noch lange nicht genug", usw.... 

Ich meine nicht die URaltwerke... Tuerkenfotze war mir vor allem musikalisch
zu unausgefeilt :) (Look, there's ironie)

Yantro

-----------------------------------------------------------------------------



Re: Re: Boehse Onkelz: E.I.N.S (Sunflower,  6. Feb 1997, 15:37:40):
~#! rn=Yantro rt=855239726 rg=kultur
~#! tid=855239548
Mag sein Yantro, aber so einen Kommerziellen scheiss fuer die neuen Aerzte und
Hosen Alben ist es noch lange nicht.

Und ein Schmaus fuer die Ohren ist die neue allemal.

Sunflower, kennt auch: hee du kleiner scheisser, hoer mal zu, wir sind die
Onkelz und wer bist du.

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^3: Boehse Onkelz: E.I.N.S (Schrumpfi,  7. Feb 1997, 03:25:20):
~#! rn=Sunflower rt=855239860 rg=kultur
~#! tid=855239548
Die Hosen haben sich schon immer eher als kommerziell verkauft, nur sind soe
es nicht. Wenn ich mir die Texte reinziehe, grade auf der neuen, dann haben
die schon Sinn. Sie sind auch politisch nicht so unausgreift wie zum Beispiel
Sascha.
Nix gegen die Hosen.
S.

-----------------------------------------------------------------------------



Re^4: Boehse Onkelz: E.I.N.S (Sunflower,  7. Feb 1997, 03:29:29):
~#! rn=Schrumpfi rt=855282320 rg=kultur
~#! tid=855239548
hi suese (schwester) sascha ist politisch ? Hosen waren fuer mich zu zeiten
von "Wort zum Sonntag", 1000 Gurende und Alex (achja und Bommerlunder) gut,
aber heute sind sie scheisse

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^5: Boehse Onkelz: E.I.N.S (Schrumpfi,  7. Feb 1997, 03:34:23):
~#! rn=Sunflower rt=855282569 rg=kultur
~#! tid=855239548
Wieso sind sie Scheisse? Damals zu Zeiten von Rote Rosen und Unter Falsche
Flagge waren sie typisch funpunk und so. Jetzt sind sie
gesellschaftskritischer als je zuvor (Wobei sie das schon vorher waren) und
die Musik hat sich auch gebessert. Aber die urwerk Orange Platte ist auch ganz
nett.
Schrumpfi die olle Duesseldorferin ;-)

-----------------------------------------------------------------------------



Re^6: Boehse Onkelz: E.I.N.S (Sunflower,  7. Feb 1997, 03:38:06):
~#! rn=Schrumpfi rt=855282863 rg=kultur
~#! tid=855239548
rote rosen waen aber fans von DTH :-)

ich habe auch nix gegendie alten scheiben, aber die Opium fuers Volk, ich
weiss nicht, die Texte und die Musik reissst mich nicht vom Hocker. (wenn ich
da an Poizei SA-SS oder Deutschland muss sterben von Slime denke..achja das
waren eziten)

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^6: Boehse Onkelz: E.I.N.S (Schrumpfi,  7. Feb 1997, 03:38:13):
~#! rn=Schrumpfi rt=855282863 rg=kultur
~#! tid=855239548
Achso ja, zu den Onkelz wollt ich ja auch noch was senfen: Die schauen nur was
sich besser verkauft, frueher war halt Tuerkenfotze und Skinhead, Skinhead
besser verkauft und jetzt die unpolitische Masche aber dabei noch
Gesellschaftkritisch. Ich muss gestehen, ich hoer sie auch gerne und find auch
die neue Platte gut aber wenns geht, sollte man denen kein Geld geben, denn
das sind Oportunisten.
Ausserdem sind sie hoch Frauenfeindlich.
S.

-----------------------------------------------------------------------------



Re^7: Boehse Onkelz: E.I.N.S (Sunflower,  7. Feb 1997, 03:40:37):
~#! rn=Schrumpfi rt=855283093 rg=kultur
~#! tid=855239548
ich bin auch frauenfeindlich :-))

na und brieftauben waren auch mal extrem rechts, es haben halt nich alle ne
weisse weste wie Aerzte und Hosen..

Sunflower hat ja nicht mal ne weise weste.

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^7: Boehse Onkelz: E.I.N.S (Schrumpfi,  7. Feb 1997, 03:40:53):
~#! rn=Sunflower rt=855283086 rg=kultur
~#! tid=855239548
Kannst doch Slime nicht mit den Hosen vergleichen. :)
S.

-----------------------------------------------------------------------------



Re^8: Boehse Onkelz: E.I.N.S (Sunflower,  7. Feb 1997, 03:41:48):
~#! rn=Schrumpfi rt=855283253 rg=kultur
~#! tid=855239548
ok HOsen sind gegenueber Slime totale weicheier....


Sunflower, hasst die Leute die bei Jaegermeister anzufangen mitzussingen

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^8: Boehse Onkelz: E.I.N.S (Schrumpfi,  7. Feb 1997, 03:41:54):
~#! rn=Sunflower rt=855283237 rg=kultur
~#! tid=855239548
Brieftauben sind eh Scheisse und die Aerzte ne billige Kopie von den Hosen ;-)
S.

-----------------------------------------------------------------------------



Re^9: Boehse Onkelz: E.I.N.S (Sunflower,  7. Feb 1997, 03:43:50):
~#! rn=Schrumpfi rt=855283314 rg=kultur
~#! tid=855239548
hmpf: jedenfalls haben die Aerzte uns gesagt wie Spock mit Vornamen heisst und
leider wie Teenagerliebe und Ich weiss nicht ob es liebe ist haetten die Hosen
nicht mitbekommen.

Aber ich steh nunmal auf Hosen und Aerzte(bis vor Opium fuersd VColk/Planet
Punk) und auf Slime undauf Onkelz, brieftauben, terrorgrupope




                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^9: Boehse Onkelz: E.I.N.S (Schrumpfi,  7. Feb 1997, 03:44:41):
~#! rn=Sunflower rt=855283308 rg=kultur
~#! tid=855239548
*pruust*
Ein kleiner Jaegermeister war nicht gern allein, drum lud er sich zum
Weihnachtsfest, 10 andere Jaegermeister ein.
9 kleine Jaegermeister wollten gerne erben, damit es was zu erben gab, musste
einer sterben.
8 kleine Jaegermeister fuhren gerne schnell, 7 furhn nach Duesseldorf und
einer fuhr nach Koeln.
....
Hoehoe, aber warum die damit die goldene gemacht haben, versteh ich auch
nicht.
S.

-----------------------------------------------------------------------------



Re^10: Boehse Onkelz: E.I.N.S (Schrumpfi,  7. Feb 1997, 03:45:47):
~#! rn=Schrumpfi rt=855283481 rg=kultur
~#! tid=855239548
Campino versteht es uebrigens auch nicht. 
S.

-----------------------------------------------------------------------------



Re^10: Boehse Onkelz: E.I.N.S (Sunflower,  7. Feb 1997, 03:46:14):
~#! rn=Schrumpfi rt=855283481 rg=kultur
~#! tid=855239548
/kick * schrumpfi aehh xcall schrumpfi->disconnect

ich kann dieses bloede und kommerzielle lied nicht mehr hoeren, wie alles von
der Opium fuers Volk..naja die pseudo punker/inen hoeren nun mal sowas, es ist
ja von en Hosen und Hosen gleich Punker...tstst

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^11: Boehse Onkelz: E.I.N.S (Schrumpfi,  7. Feb 1997, 03:48:23):
~#! rn=Sunflower rt=855283574 rg=kultur
~#! tid=855239548
Die Hosen sind Punker! :-)
Klar haben die Hosen viel Pseudo-Publimum aber das sind dann halt die Leute
die eh nur beim Bommerlunder, Jaegermeister und Und die Jahre ziehen ins Land
(Wie heisst eigentlich das lied? :) )
mitsingen, bzw mitgroehlen.
S.

-----------------------------------------------------------------------------



Re^12: Boehse Onkelz: E.I.N.S (Sunflower,  7. Feb 1997, 03:50:28):
~#! rn=Schrumpfi rt=855283703 rg=kultur
~#! tid=855239548
ich groehle auch bei Boimmerlunder mit und bei alles nur aus liebe (eine
bestimme muddrin anschau die mich ignoriert, nein nicht du huepfer) bist zur
Kauf mich gingen die Hosen noch aber dann ? und die Onkel haben eigentlich mit
mehren alben beweiesen das sie besser als aerzte und Hosen sind, mag sein das
Onkelz mit eins kommerzieller geworden sind , aber so wie Hosen und Aerzte
glaub ich nicht !!!

Und brieftauben sind geill :-)

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re: Boehse Onkelz: E.I.N.S (Lug,  7. Feb 1997, 03:50:42):
~#! rn=Sunflower rt=855239548 rg=kultur
~#! tid=855239548
Moin,

sehe ich ueberhaupt nicht so. Die Lyrics sind weinerlich bis zum Anschlag, und
wo sind die tollen Riffs? Alles ziemlich billig. Tip: Nicht kaufen.

Lug

-----------------------------------------------------------------------------



Re^3: Boehse Onkelz: E.I.N.S (Li,  7. Feb 1997, 08:31:39):
~#! rn=Sunflower rt=855239860 rg=kultur
~#! tid=855239548
Also ich muss immer grinsen, wenn jemand sagt: Derundder ist nicht
kommerziell...
Leute seht der Wahrheit ins Gesicht: Jeder, der ne Platte/CD ist kommerziell!
Oder glaubt ihr etwa, das es Leute/Bands gibt, die eine CD NUR aufnehmen, weil
sie etwas haben, dass sie UNBEDINGT der Menschheit mitteilen muessen?
Wohl kaum!
Also Die alten Onkelz, die alten hosen, U2 als sie noch keiner kannte, auch
BAP (kennt noch jemand das grosse Schubidu?) waren und sind immer kommerziel
gewesen.
Li (grinst sich eins, wenn Bands und/oder Fans (besonders in der  Indie-Ecke)
auf nichtkommerzialitaet pochen)

-----------------------------------------------------------------------------



Re^11: Boehse Onkelz: E.I.N.S (Grimmborn,  7. Feb 1997, 10:48:35):
~#! rn=Sunflower rt=855283574 rg=kultur
~#! tid=855239548
Fass meine Schrumpfi an und Du faengst Dir eine...
Ausserdem sind die Hosen Punk, das kann man an der bunten Hose vom Campino
sehen, und an der Frisur, jawohl. Ausserdem kommen sie aus Duesseldorf, da
kommt alles Schlechte her, und Punk ist schlecht. Genauso wie Alt"bier". Nur
Schrumpfi ist nicht schlecht, sondern suess, aber sie stammt ja auch aus
Mettmann und wohnt jetzt ein Oesterreich, selbst das ist noch ein Aufstieg.
Und ueberhaupt, es gibt keine suessere, echte Punkerin als Schrumpfi, auch
wenn sie Nick Cave mag, der naemlich kein Punker ist. Dafuer ist seine Musik
gelegentlich wirklich ein Ohrenschmaus, was man von Punk keinesfalls behaupten
kann. Man mag Punk gut oder schlecht finden, aber "Ohrenschmaus" ist was
voellig anderes, und ich glaube, Punkmusiker waeren ziemlich sauer, wenn Du
ihre Musik als solchen bezeichnest.
Ohrenschmaus ist beispielsweise Astor Piazolla, aber wer kennt den schon?

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^12: Boehse Onkelz: E.I.N.S (Yantro,  7. Feb 1997, 10:57:23):
~#! rn=Grimmborn rt=855308915 rg=kultur
~#! tid=855239548

Hmm ich will ja nicht unken, aber ich kann mich sehr gut an ein Interview
erinner, was Campino mal nach dem (inzwischen vorletzten) Livealbum gegeben
hat und da sagte er deutlichst: "Wir machen keinen Punk und werden nie welchen
machen!!! Wir machen HappyMetal...." :-)

Yantro.

-----------------------------------------------------------------------------



Re: Boehse Onkelz: E.I.N.S (Zorro,  7. Feb 1997, 11:05:19):
~#! rn=Sunflower rt=855239548 rg=kultur
~#! tid=855239548
Jau Sunflower ich hab immer gewusst, dass du keine "Rote Socke" bist :) 
Gib es zu Du stehst natuerlich nur auf die alten Onkelz Songs ... wie
Fussball und Gewalt ... Frankreich '84 ... Mexico ...

Gruss Z*

-----------------------------------------------------------------------------



Re^12: Boehse Onkelz: E.I.N.S (Gralkor,  7. Feb 1997, 11:42:28):
~#! rn=Schrumpfi rt=855283703 rg=kultur
~#! tid=855239548
Hi!
Au die Frage von Schrumpi zurueckzukommen:) "Bis zum bitteren Ende"
Ich finde die Jaegermeister auch doof, wer ordentliche Sauflieder hoeren will,
sollte sich mal die Platte von Tom Angelripper reinziehen( ein guter Tag oder
so aehnlich hiess die)
Ich fand die Opium fuers Volk eigentlich ganz toll( besser als die Kauf mich
auf jeden FalL!)
Die beste Platte wahr wirklich bis zum bitteren Ende (die Live)
Ansonsten, die Onkelz finde ich irgendwie doof!
Sonst habt ihr Recht!!!

GRUESSINGS 
Gralkor

-----------------------------------------------------------------------------



Re: Boehse Nazis: E.I.N.S (Hardil,  7. Feb 1997, 11:47:51):

Ich finde es sehr seltsam, wie schnell Nazis hier wieder per Persilschein
gesellschaftsfaehig gemacht werden. Es kann sein, dass diese Gruppe
musikalisch nettes Material hat, aber sie bietet sich den Alt- und Neunazis
als Identifikationsmittel an, und sollte deswegen ausserhalb jeglicher
Diskussion stehen.
Diverse medienwirksame Beteuerungen, man wolle vom Fascho-Image weg, und
Veranstaltungen zusammen mit Buendnisgruenen sollen doch nur erreichen, den
Boykott, den die meisten guten Plattenlaeden durchfuehren, wieder
wegzubekommen.

Und fuer mich ist jeder, der solche Worthuelsen nachplappert oder ernsthaft
behauptet, die Onkelz haetten nichts mehr mit Rechtsfanatismus und Faschos zu
tun, ein _typischer Deutscher_. Tut mir leid.

-Hardil.
******************************************
Meine Freunde sagen mir, ich soll mit ihnen gehn.
Sie schlagen die Faschisten und ficken das System (Aeronauten)
******************************************

-----------------------------------------------------------------------------



Re: Re: Boehse Nazis: E.I.N.S (Zorro,  7. Feb 1997, 11:54:00):
~#! rn=Hardil rt=855312471 rg=kultur
~#! tid=855312471
Aber wieso interessiert dich denn die einstellung der leute ...
Es geht doch um die Musik und da hat sich ihre Einstellung deutlich 
geaendert ...

Gruss Z*

-----------------------------------------------------------------------------



Re^3: Boehse Nazis: E.I.N.S (Sunflower,  7. Feb 1997, 12:37:24):
~#! rn=Zorro rt=855312840 rg=kultur
~#! tid=855312471
Har: Onkelz waren rechts, na und, die Briefttauben waren es auch. Wenn
ich mir von alten Onkelz Platten die Lieder anhoere, erkenne ich zwar nur
wenig Nationalismus, aber von der Musik her die sie machten, ist doch klar das
irgendwelche Idioten (mit so einem Sonnenrad aufn Hemd oder sonstwo) dazu
rum"huepfen" muessen, aber ich bin der Meinung seit Heilige Lieder haben sich
die Onkelz enorm verbessert. Und wer Ihre Lieder anhoert, kann auch ein wenig
Deutschlandverarschung raushoeren.

Grimmborn: Warum darf ich nicht die susse Schrumpfi anfassen. Ich behaupte ja
nicht das Duesseldorf schlecht sei, ich trinke ja auch Alt, es ist immer noch
besser als dieses Koelsch. Aber Schrumpfi wohnt ja nun in Oesterreich und
versuesst die Umgegebung. Aber es ist ja im Punk so aufgebaut: ein kleiner
Mitlaeufer faengt mit den Aerzten/Hosen an (gerade jetzt wo ehh die neuen nur
im Radio laufen). Und wenn er denn haerter hoeren will kauft er sich halt ne
SLIME Scheibe. Und dann gehoert er dazu, es ist ja in gegen das System zu
sein. Aber Onkelz ist ein teil fuer sich, ok die Lieder sind nicht so suess
wie Schrumpfi, aber immerhin find ich die neue EINS besser, als die Letzten
Hosen und Aerzte Scheiben (obwohl ich ein Aerzte Fan bin) aber das ist nur
meine suesse bescheidene Meinung. Und wir haben ja noch Meinungsfreiheit,
solange kein hate da ist, oder haben wir sie dann auch noch ? naja gehoert ja
nicht hierher

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^4: Boehse Nazis: E.I.N.S (Grimmborn,  7. Feb 1997, 13:08:24):
~#! rn=Sunflower rt=855315444 rg=kultur
~#! tid=855312471
Das ist ganz einfach: Weil Du meine suesse Schrumpfi nicht anfassen darfst,
das darf ausser mir eh nur Zardoz, und auch das nur, weil sie mit ihm
verheiratet ist. Wo kaemen wir denn da hin, wenn jeder nach eigenem Gutduenken
meiner suessen Schrumpfi... also wirklich, das geht nicht, definitiv.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Looking for Richard (Grimmborn,  7. Feb 1997, 13:21:16):
Hmm, ich hab gestern "Looking for Richard" gesehen (im Original). Lasst euch
warnen und die Finger von dem Film. Al Pacino sagt gleich zu Beginn, dass
amerikanische Schauspieler nicht Shakespeare spielen koennen, und der Rest des
Filmes dient eigentlich nur noch dazu, dieses statement zu untermauern. Da
gibt es sehr viel bessere, shakespearebezogene Filme.

Grimmborn der Atheist hat deswegen auch noch die Stunksitzung im TV verpasst.

-----------------------------------------------------------------------------



Re: Looking for Richard (Wurzel,  7. Feb 1997, 18:43:36):
~#! rn=Grimmborn rt=855318076 rg=kultur
~#! tid=855318076
ich werde mir ihn trotzdem anschauen... ich habe schon viele gute und 
schlechte shakespearefilme gesehen, aber noch nicht richard III (traut sich
da keiner dran?). und da es anscheinend in deutschen theatern immer mehr aus
der mode kommt, klassiker zu spielen... immer nur rsc ist auf die dauer arg
teuer :)

wurzel frisst alles, was nach shakespeare riecht :)

-----------------------------------------------------------------------------



Re^12: Boehse Onkelz: E.I.N.S (Har,  7. Feb 1997, 19:44:01):
~#! rn=Grimmborn rt=855308915 rg=kultur
~#! tid=855239548
Grimmborn Grimmborn, das ich Dir einmal zustimme - Piazolla ist wirklich ein
Ohrenschmaus :)

Har (Punkrockend)

P.S.: No Ironie!

-----------------------------------------------------------------------------



Re: Re: Boehse Nazis: E.I.N.S (Acrimon,  8. Feb 1997, 18:26:38):
~#! rn=Hardil rt=855312471 rg=kultur
~#! tid=855312471
Ich kenne die Onkelz nicht und kann daher weder etwas Positives noch etwas
Negatives darueber behaupten.
Auch ueber ihre politische Einstellung kann ich daher nichts behaupten.
Aber mir scheint, Du bezeichnest jeden, der sich mit Rechtsfanatikern und
Faschisten identifiziert,
als "typischen Deutschen".
Nunja, typisch bin ich zwar nicht, aber deutsch, und froh darum, und ich wehre
mich zutiefst gegen die Behauptung, Deutschsein habe _irgendetwas_ mit
Rechtsfanatikern und Faschisten gemeinsam!

Acrimon, der Rote Ritter (deutsch).

-----------------------------------------------------------------------------



Re^3: Boehse Nazis: E.I.N.S (Wurzel,  8. Feb 1997, 18:30:49):
~#! rn=Acrimon rt=855422798 rg=kultur
~#! tid=855312471
hm.
die aussage, dass du froh darum bist, deutsch zu sein, entlarvt dich.
warum bist du froh darum? doch nur, weil du das fuer etwas besseres haeltst
als das "nichtdeutsche"... und das ist genau, was einen nationalisten
kennzeichnet. natuerlich gehoert noch was anderes dazu, aber das ist doch
der kern.

wurzel

-----------------------------------------------------------------------------



Re^4: Boehse Nazis: E.I.N.S (Acrimon,  8. Feb 1997, 18:56:10):
~#! rn=Wurzel rt=855423049 rg=kultur
~#! tid=855312471
Nun, mir geht es hier gut, warum sollte ich also nicht froh sein?
Wenn ich ehrlich bin, will ich nicht in Uganda oder Afghanistan oder einem
anderen Buergerkriegsland oder hocharmem Land oder in einem Land mit solcher
eigennuetziger Regierung, die man mancherorts sieht, geboren worden sein.
Du kannst Dir sicher denken, dasz mir diese Leute leid tun und ich die dortige
Situation gerne besser saehe und daher auch oefter an Hilfsorganisationen
spendiere.
Dasz ich in Deutschland geboren worden bin, dafuer kann ich nichts, und das
macht mich auch nicht besser, aber gerade darum bin froh darum, denn hier geht
es mir gut, und ich kann Beduerftigere daran teilhaben lassen, und ich kann
versuchen, gewisse Ungerechtigkeiten und Unterschiede aus der Welt zu
schaffen. (Was bestimmt schwierig wird, da ich kein Politiker bin, aber einen
gewissen Teil kann ich doch dazu beitragen.)

Acrimon, der Rote Ritter glaubt, dasz die Menschheit es schaffen kann, ohne
Kriege zusammen zu leben.

-----------------------------------------------------------------------------



Re^4: Boehse Nazis: E.I.N.S (Mahatmu,  8. Feb 1997, 20:41:06):
~#! rn=Wurzel rt=855423049 rg=kultur
~#! tid=855312471
Neee - einfach weil da ein gewisser Nationalstolz reinspielt.
D.h. man fuehlt sich besser als Deutscher,
weil man meint, das es einem in anderen Staaten nicht so
gut ginge oder man nicht diese Vergangenheit (die ist ja
nun nicht NUR schattenbehaftet) hat etc.
Das hat dann aber nix damit zu tun, das man 'besser' ist.

Aber ich kann ja auch mal pauschalisieren, hm ? Die
Oesterreicher, denen ich begegnet bin, waren ja auch was
besseres als die Deutschen, denn sie waren nur arme Opfer.
Gluecklicherweise bin ich der Meinung, dass die zwei Exemplare
eher die Ausnahme waren.

kleiner Bruder is watching you

-----------------------------------------------------------------------------



Re^4: Boehse Onkelz: E.I.N.S (Schrumpfi,  8. Feb 1997, 22:30:08):
~#! rn=Li rt=855300699 rg=kultur
~#! tid=855239548
Da fallen mir einige Bands ein, die nicht kommerziell sind. OI POLLOI zB.
S.

-----------------------------------------------------------------------------



Re^13: Boehse Onkelz: E.I.N.S (Schrumpfi,  8. Feb 1997, 22:31:52):
~#! rn=Yantro rt=855309443 rg=kultur
~#! tid=855239548
HA! Er hat Dich reingelegt! ;-)
Schrumpfi die olle Punkrockerin

-----------------------------------------------------------------------------



Re: Re: Boehse Nazis: E.I.N.S (Schrumpfi,  8. Feb 1997, 22:34:02):
~#! rn=Hardil rt=855312471 rg=kultur
~#! tid=855312471
*applaudier* Sag ich doch. Alles nur ein Werbegag.
Schrumpfi traut den Onkelz nicht ueber den Weg.

-----------------------------------------------------------------------------



Re^4: Boehse Nazis: E.I.N.S (Schrumpfi,  8. Feb 1997, 22:37:07):
~#! rn=Sunflower rt=855315444 rg=kultur
~#! tid=855312471
Baeh Altbier. Huch, hab das ich gesagt? *erbleich*
Hmm, Grimmborn, Zardoz und Yantro haben mich wohl bekehrt. ;-)
Schrumpfi outet sich als Koelschtrinkerin.

-----------------------------------------------------------------------------



Re^3: Boehse Nazis: E.I.N.S (Schrumpfi,  8. Feb 1997, 22:39:27):
~#! rn=Acrimon rt=855422798 rg=kultur
~#! tid=855312471
das war ja klar, dass DU ne gute Diskussion ueber Musik wieder mal mit Deinem
Mist versauen musst.
Schrumpfi (earth)

-----------------------------------------------------------------------------



Re^4: Boehse Nazis: E.I.N.S (Sushi,  9. Feb 1997, 11:05:43):
~#! rn=Schrumpfi rt=855437967 rg=kultur
~#! tid=855312471
Kinners, wie waere es, wenn Ihr dem Thread mal einen anderen Namen gebt? Als
ich die Boehsen Onkelz gehoert habe, hoerte "man" die sicher nicht wegen der
Texte und die standen im Plattenschrank neben White Noise, Skrewdriver, den 4
Skins oder Sham69 -- und da gehoeren sie auch hin.
Was ein Haufen nie der Pubertaet entwachsener Spinner allerdings mit einer
Diskussion ueber Nation, Stolz und Chauvinismus zu tun haben sollen, wissen
wohl nur Wurzel und Acrimon.

Was fuer ein eigenartiger Morgen.

Sushi - Ex-Scooterboy

-----------------------------------------------------------------------------



Piazolla (Socrate,  9. Feb 1997, 16:20:34):
Tach zusammen!
   Ich bin einerseits ein wenig erstaunt, dass es hier wirklich auch Leute
gibt die Astor Piazolla hoeren; aber natuerlich auch erfreut. Aber ich denke,
dass ueber Piazolla zu sprechen indem man seine Musik einen "Ohrenschmaus"
nennt, ihm nicht gerecht wird. Gute Musik (wozu P. selbstredend gehoert)
sollte gerade nicht leicht eingaengig sein, sondern Aufmerksamkeit erfordern.
Diesen Anspruch hat Piazolla ja auch selber gehabt. Schliesslicht hat ja
absichtlich Tango gespielt der nicht tanzbar ist, wofuer er
er ja auch hinreichend kritisiert wurde.
Und ich haette auch gedacht, dass Piazollas Musik eine gewisse Gelassenheit
erzeugt, die dafuer sorgt, sich nicht gleich ueber mehr oder weniger
Kleinigkeiten aufzuregen (oder Grimmborn?).
Gruss
Socrate

-----------------------------------------------------------------------------



Re^5: Boehse Nazis: E.I.N.S (Anatol,  9. Feb 1997, 22:54:39):
~#! rn=Mahatmu rt=855430866 rg=kultur
~#! tid=855312471

Ich schliesse mich Acrimon frech an, ich bin auch froh, ein Deutscher zu
sein... und froh darueber, dass ich nicht ganz unter den Bruecken geboren
wuerde. Ich kann hier studieren, geniesse gewissen Rechtsschutz, muss beim
Arzt derzeit nichts bezahlen (... bis die Kronen drankommen) - dieses 'Glueck'
geniesst nur eine Minderheit der Erdenbevoelkerung.

Das hat mit Nationalstolz oder -bewusstsein absolut nichts zu tun.

Anatol


-----------------------------------------------------------------------------



Re^6: Boehse Nazis: E.I.N.S (Schrumpfi,  9. Feb 1997, 22:56:15):
~#! rn=Anatol rt=855525279 rg=kultur
~#! tid=855312471
Ich waer aber lieber ne Hollaenderin. Die geniessen mehr Sozialstaat als
Deutschland und Oesterreich zusammen.
Schrumpfi weder stolz noch froh eine Deutsche zu sein.

-----------------------------------------------------------------------------



Re^7: Boehse Nazis: E.I.N.S (Wurzel,  9. Feb 1997, 22:57:04):
~#! rn=Schrumpfi rt=855525375 rg=kultur
~#! tid=855312471
und sie duerfen ungestraft kiffen :)

-----------------------------------------------------------------------------



Re^8: Boehse Nazis: E.I.N.S (Schrumpfi,  9. Feb 1997, 22:58:17):
~#! rn=Wurzel rt=855525424 rg=kultur
~#! tid=855312471
Naja, das darf man in manchen Bundeslaendern der Bundesrepublik auch. Im
Gegensatz zu Oesterreich wo man noch wegen ein paar Gramm eingeknastet wird :(
S.

-----------------------------------------------------------------------------



Re^9: Boehse Nazis: E.I.N.S (Oetti, 10. Feb 1997, 15:07:45):
~#! rn=Schrumpfi rt=855525497 rg=kultur
~#! tid=855312471
Habt ihr jetzt alle nen Knall, es ist mir scheissegal, welcher Nationalitaet
ich angehoere,
Ich bin ich, und zufaellig Deutscher, na ja irgendwer hat irgendwann 
mal ne Grenze gezogen und gesagt hier ist Deutschland, und wer hier
geboren wird gehoert dazu, sozusagen Gruppenzwang oder 
Sippenhaft...

Aber Stolz und Froh, Glueck gehabt halt, und wenn ich dann lesen muss
die armen armen schwarzen Neger in der dritten Welt, aber ich
spende ja, weil denen soll es auch mal so gut gehen wie mir,
dann kommt mir die Galle hoch...

Bigott ist Bigott belibt Bigott...

Ich bin stolz ein Bergheimer zu sein !!!!!!!


-----------------------------------------------------------------------------



Re^10: Boehse Nazis: E.I.N.S (Sidolin, 10. Feb 1997, 15:28:24):
~#! rn=Oetti rt=855583665 rg=kultur
~#! tid=855312471
Ich bin froh ein kleines, widerliches, asoziales Arschloch zu sein. 

Wenigstens wirft mir keiner vor, ich sei ein netter Kerl. ;-)

Sidolin. Froh, dass er ein dach ueber dem Kopf hat und ein kaltes Pils im
Kuehlschrank. 

-----------------------------------------------------------------------------



Re^5: Boehse Nazis: E.I.N.S (Beelzebub, 10. Feb 1997, 19:31:50):
~#! rn=Acrimon rt=855424570 rg=kultur
~#! tid=855312471
Ich weiss garnicht, was ihr gegen diese Meinung habt... 
Acrimon schreibt doch, er ist FROH, in diesem (vergleichsweise) freiem Land
leben zu duerfen
und nicht, daeszet er STOLZ darueber ist...
Stolz kann man naemlich nur ueber etwas sein, was man selber geleistet hat,
und damit wuerde er sich ueber unsere auslaendischen Mitbuerger stellen. Tut
er aber nicht...

Huch, ich bin ja Acrimons Meinung ! Da muss ich aber nochmal schell mecker
]:-)
Wer wirklich glaubt, daeszet die Menschheit in Frieden leben kann muss extrem
naiv (oder gottesglaeubig (oder beides)) sein.
Die Menschen sind von Natur aus doof... 

Dieser Senf wurde produziert vom Ueberoberteufel Beelzebub
*asmodiszungerausstreck*

-----------------------------------------------------------------------------



Re^11: Boehse Nazis: E.I.N.S (Grimmborn, 10. Feb 1997, 20:50:59):
~#! rn=Sidolin rt=855584904 rg=kultur
~#! tid=855312471
Ich moechte dann noch mein (ebenso schwachsinniges) Scherflein zu der
Diskussion beitragen. Ich bekenne hiermit, dass ich STOLZ bin, ein SCHWEDE zu
sein. Kein europaeisches Land hat eine Gegend, die auch nur ansatzweise mit
der Schoenheit Lapplands zu vergleichen ist. Kein anderes Land hat eine
Monarchie, die so beliebt und anerkannt ist, dass nicht einmal die
Kommunisten, die zwar allgemein gegen die Monarchie sind, gegen die
Koenigsfamilie sind (nagut, die Daenen, aber die haben auch keine Kommunisten.
Keine nennenswerten jedenfalls). Kein anderes Land hat eine so schoene
Sprache, kein anderes Land so schoene Waelder, Seen und Berge. Kein anderes
Land hat so schoene kollektive Besaeufnisse, kein anderes Land... *schnueff*
*Fernweh hab*...

Das musste mal gesagt werden.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^12: Boehse Nazis: E.I.N.S (Wurzel, 10. Feb 1997, 20:53:14):
~#! rn=Grimmborn rt=855604259 rg=kultur
~#! tid=855312471
ich war zwar nie da, aber wenn ich mich recht erinnere, hat es in der schule
geheissen, dass lappland irgendwo im noerdlichen finnland zu suchen ist...
oder ist das doch schon zu lange her?

wurzel

-----------------------------------------------------------------------------



Re: Piazolla (Grimmborn, 10. Feb 1997, 20:54:15):
~#! rn=Socrate rt=855501634 rg=kultur
~#! tid=855501634
Tststs, ich finde, "Ohrenschmaus" ist durchaus flexibel in der Bedeutung. Fuer
mich ist auch Ligeti, Reimann, Kagel... Ohrenschmaus, zum Teil zumindest.
Piazolla hab ich erwaehnt, weil er zu der Zeit, als ich den Artikel
geschrieben habe, gerade im CD-player war. Also eher zufaellig.
Ich stimme voellig zu, dass Piazollas Musik... eine gewisse Gelassenheit
erzeugt. Du solltest mich mal ohne diese Gelassenheit erleben... ;-)

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^13: Boehse Nazis: E.I.N.S (Grimmborn, 10. Feb 1997, 20:56:38):
~#! rn=Wurzel rt=855604394 rg=kultur
~#! tid=855312471
Scheinbar. Lappland erstreckt sich ueber Finnland, Norwegen und Schweden
(noerdliche Teile). Es gibt eine schwedische Provinz(? ich weiss nicht, wie
man das auf deutsch bezeichnet), die Lappland heisst. Lappen (d.h. die Samen)
kommen auch ausserhalb Lapplands vor, in Schweden suedlich bis etwa
Haerjedalen. Aber Experte bin ich da auch nicht, die Landschaft ist jedenfalls
einmalig.

Grimmborn der Schwede

-----------------------------------------------------------------------------



Re^12: Boehse Onkelz: E.I.N.S (Qitess, 11. Feb 1997, 10:48:16):
~#! rn=Schrumpfi rt=855283703 rg=kultur
~#! tid=855239548
Ich haette mal 'ne Frage :

Hat von Euch schonmal jemand das Wort MUSIK gehoert ? 

Und dann noch eine :

Wer von Euch kennt Ella Fitzgerald ?

QI** - schluchzend

-----------------------------------------------------------------------------



Re^5: Boehse Onkelz: E.I.N.S (Li, 11. Feb 1997, 11:00:14):
~#! rn=Schrumpfi rt=855437408 rg=kultur
~#! tid=855239548
suesse S.!
du hast meine These nicht verstanden...
Jeder, der Musik fuer andere macht, ist kommerziell...
Li (Kann daher sowohl Oasis als auch Tasmin Archer geniessen)

-----------------------------------------------------------------------------



Re^6: Boehse Onkelz: E.I.N.S (Har, 11. Feb 1997, 13:00:35):
~#! rn=Li rt=855655214 rg=kultur
~#! tid=855239548
Hmm, ich mach manchmal acuh
Hmm, ich mache manchmal auch Musik fuer andere, wenn ich dann einen ganzen Tag
unterwegs binn, die ganzen Ploerren uas unserem Proberaum im dritten Stock hin
und her geschleppt habe und dann auf die Gage schaue, weiss ich, wie wenig
kommerziell das ist!

Har (weinerlich)

-----------------------------------------------------------------------------



Re^7: Boehse Onkelz: E.I.N.S (Har, 11. Feb 1997, 13:01:09):
~#! rn=Har rt=855662435 rg=kultur
~#! tid=855239548
argl - Fick-Terminal hier!

-----------------------------------------------------------------------------



Lalala ! (Oetti, 11. Feb 1997, 16:36:05):
Loblied Auf Die Zweisamkeit :

                               Und das ist die Einsamkeit
                                  Die mich geboren hat
                                Versucht ihr zu entkommen
                             Hab ich meine Hoffnung verloren
                          Ich schrie nach Liebe mich zu wrmen
                         Verlor ich meine Stimme und blieb stumm
                                   Ruhelos verurteilt
                                Trumte ich die Wahrheit
                                 Ergriff ich die Flucht
                                    Und fiel zu Boden

                                  Ich spre kein Glck
                                  Ich spre kein Glck
                                Kein Leben wchst in mir
                                  Ich spre kein Glck
                                      Ich bin mde
                                      Ich bin mde
                                      Ich bin mde

                               Verstrickt im Netz der Angs
                              Habe ich mich selbst erkannt
                                  Unfhig zu existieren
                       Bin ich nicht bereit mich selbst zu tragen
                         Lieg ich im Dreck der Gleichgltigkeit
                           Und lebe den Tod der Vergessenheit
                         Bin ich nur eine Kreatur der Langweile
                    Nur ein schlechter Witz in einem leeren Wartesaal

                               Ich trumte einst vom Leben
                               Und trumte einst von Liebe
                             Doch aus dem Leben wurde Flucht
                            Und aus Liebe wuchs die Angst...


-----------------------------------------------------------------------------



Re^12: Boehse Nazis: E.I.N.S (Lug, 11. Feb 1997, 20:28:56):
~#! rn=Grimmborn rt=855604259 rg=kultur
~#! tid=855312471
Moin,

also Grimmborn: Unfug!
Oldenburg ist viel besser!

Bis denn
Lug

-----------------------------------------------------------------------------



Re: Lalala ! (Fyt, 12. Feb 1997, 00:23:02):
~#! rn=Oetti rt=855675365 rg=kultur
~#! tid=855675365

Hm, und die Frage heisst: 'wieviele Umlaute fehlen?' oder wie oder was?

Fyt. *seufz*

-----------------------------------------------------------------------------



Wieder mal ne Storie (Yantro, 12. Feb 1997, 10:59:25):


Wieder mal so ein Stueck aus dem Netz... :) Viel Spass beim Lesen.

Betreff    : Die Geschichte des Sex
AutorIn    :
----------------------------------------------------------------------

 VORWORT

 Nie  hat Sex eine so grosse Rolle gespielt wie heute, nie zuvor haben
 sich  die  Menschen  so  sehr damit befasst.  Aber so schoen Sex sein
 kann  -  er  kann auch eine ganze Menge Probleme verursachen!  Es ist
 daher wichtig, durch Erziehung und Aufklaerung solche Schwierigkeiten
 zu  verhindern.   Wie?   Indem moeglichst viel ueber Sex geschrieben,
 gelesen und geredet wird.  Denn je mehr Menschen ueber Sex schreiben,
 lesen  oder  reden,  desto  weniger  Zeit  haben sie, sich mit Sex zu
 befassen.  Und dann haben sie auch keine Probleme!
 Wo  nahm  der        Sex seinen Anfang?  Was sind seine Geheimnisse?
 Wie hat er sich entwickelt?   Welche  Auswirkungen  hat  er  auf  die
 Gesellschaft  von  heute?   -  Keine  Ahnung!   Jetzt  wird  sich der
 geneigte Leser natuerlich Fragen, wozu wurde dieser Artikel verfasst?
 Ganz einfach:  Damit ihr ihn lest - und somit wenigstens zehn Minuten
 lang keine Probleme habt! -


 >>>   DIE GESCHICHTE DES SEX   <<<


 1. KAPITEL - WIE ALLES BEGANN

 Am  Anfang  schuf  der  Liebe  Gott Himmel und Erde, das Land und das
 Wasser,  und  die  Tiere.  Und dann schuf ER den Menschen nach seinem
 Ebenbild und nannte ihn Adam.
 Froehlich  hopste  Adam  durch den Garten Eden.  Tagelang.  Bis ihm
 langweilig  wurde.   "Lieber Gott", sagte er, "gibt es nichts anderes
 zu  tun  als  Froesche zu fangen und an Grashalmen zu kauen?  Gibt es
 keine Abwechslung?
 "Hm", meinte der Liebe Gott.  "Abwechslung?"
 Und  dann  entnahm  er  Adam  eine  Rippe  und  formte  daraus eine
 Gefaehrtin.  "Weisst du, was das ist?" fragte der Liebe Gott.
 "Lass    mich  raten", sagte Adam.  "Ah, ich weiss!  Etwas zum Essen!
 Das erste Rippenstueck der Welt!"
 Da  gab  ihm  der  Liebe  Gott  einen Stoss in die Seite und sagte:
 "Nein,  du  Schnoesel,  das  ist  ein Maedchen!  Ich nenne sie Sarah.
 Adam und Sarah - klingt das nicht gut?"
 "Ein bisschen zu juedisch", sagte Adam.
 "Na  und?"  meinte  der Liebe Gott.  "Ich habe die Araber doch noch
 gar nicht erschaffen!"
 Da ER aber nicht so sein wollte, taufte der Liebe Gott Sarah um und
 nannte sie fortan Eva.
 "So",        sagte ER dann, "jetzt lasse ich euch beide allein.  Tut euch
 keinen Zwang an.  Macht, was die Natur euch befiehlt!"
 Am naechsten Morgen fragte ER Adam:  "Na, was habt ihr gestern gemacht?"
 "Dumme  Frage",  sagte Adam.  "Was sollen wir schon gemacht haben -
 ein Mann und eine Frau, die nackt durch den Wald liefen?"
 "Ihr habt ...", sagte der Liebe Gott.
 "Richtig", sagte Adam, "Wir haben Froesche gejagt und an Grashalmen
 gekaut.  Und zwar gemeinsam!"
 Wieder  gab der Liebe Gott Adam einen Stoss in die Seite.  Und dann
 klaerte  ER  ihn  auf.  Ueber das Wunder des Lebens, ueber die Bienen
 und die Schmetterlinge ...
 Und  am  naechsten  Morgen  fragte  ER abermals, wie die vergangene
 Nacht verlaufen sei.
 "Oh, es war herrlich" sagte Adam.
 Der Liebe Gott laechelte.  "Erzaehl mir alles!"
 "Die Nacht war mild", berichtete Adam, "der Mond schien, wir sassen
 im Gras, und dann ..."
 "Na, komm schon, rede", sagte der Liebe Gott ungeduldig.
 "Dann jagten wir Bienen und kauten an Schmetterlingen!" sagte Adam stolz.
 "Jetzt  hoer  mal  gut  zu", sagte der Liebe Gott leicht irritiert,
 "der  Mensch  braucht Erfuellung.  Er braucht ein Verlangen, womit er
 jede  Minute seines Bewusstseins ausfuellen kann, er braucht Spannung
 und  Abwechslung.   Mit  anderern  Worten:  er braucht etwas, was das
 Leben lebenswert macht!"
 "Hast  du  gehoert,  Eva!" rief Adam erfreut.   "Der Liebe Gott will
 das Fernsehen erschaffen!"
 Aber  statt  dessen  erschuf  der  Liebe  Gott  den  Sex, der ueber
 tausende Jahre hinweg die Menschheit abends im Banne hielt.
 (Bis 1948, als der Liebe Gott dann doch das Fernsehen erschuf.) -


 2. KAPITEL - SEX IN DER STEINZEIT

 (Siehe "Die Sextechnik der deutschen Hausfrau")


 3. KAPITEL - SEX IM HEILIGEN LAND

 Spater,  unter den Nachkommen von Adam und Eva, erfreute sich der Sex
 groesster  Beliebtheit.  Die Leute hatten viel Spass dran, eine Menge
 Babys  wurden  geboren, die Menschheit wuchs und vermehrte sich.  Sex
 war  eine  Sache  fuer  jedermann  - fuer arm und reich, fuer alt und
 jung,  fuer gross und klein.  Sex war einfach zu lernen, machte immer
 wieder  Freude  und  bot  vielfaeltige  Moeglichkeiten.   Mit anderen
 Worten:  Die Menschheit war gluecklich.
 Bis  eines  Tages  ein Typ namens Moses vom Berg herunterkletterte,
 zwei  Steinplatten  mitbrachte  -  und  allen  gruendlich  den  Spass
 verdarb.


 4. KAPITEL - SEX IM ALTEN ROM

 Waehrend  Sex  im heiligen Land einen boesen Rueckschlag erlebte, war
 im  Alten  Rom  das  Gegenteil der Fall.  Nicht nur fand der Sex eine
 Bluetezeit,  er  wurde  auch  um  viele  neue  Ideen bereichert.  Die
 bekannteste  davon  war  der sogenannte "Gruppensex", der sich bis in
 die  heutigen  Jahre  erhalten  hat (siehe auch:  "Spiel und Spass im
 20.Jahrhundert").
 Ausserdem wurde im Alten Rom erstmals eine erfolgreiche Methode der
 Geburtenkontrolle  angewandt.  Man nannte sie "Zirkusspiele", und sie
 verringerte    vor   allem   die   Bevoelkerungszahl   der   Christen
 betraechtlich.   Die  Methode  war  todsicher,  allgemein beliebt und
 hatte nur eine einzige Nebenwirkung:  Fette Loewen.


 5. KAPITEL - SEX IM MITTELALTER

 Im  Mittelalter war nicht sonderlich viel los, was Sex betrifft.  Die
 Parole  lautete:   Einmal im Monat, moeglichst im Dunkeln.  Daher der
 Name:  "Das finstere Mittelalter".
 Vorbei  waren    die wilden, ausschweifenden Zeiten der Alten Roemer.
 An ihre Stelle waren die Alten Ritter getreten, edle Helden, die ihre
 Herzdamen  mit  Hoeflichkeit, Respekt und Zurueckhaltung behandelten.
 Das   nannte   man   "Ritterlichkeit".    Manche   nannten   es  auch
 "Interesselosigkeit".
 Sex  war im Mittelalter ebenso poetisch wie kompliziert und verlief
 ganz  anders,  als  wir es heute gewohnt sind.  In der Hochzeitsnacht
 nahm der Ritter seine Dame an die Hand, fluesterte ihr Minneworte ins
 Ohr,  kuesste ihren Schuh - und stuerzte dann in Aufwallung hoechster
 Leidenschaft hinaus, um einen Drachen zu toeten.
 Das  durften  natuerlich  nur    die  Verheirateten Ritter.  Verlobte
 Ritter  mussten  sich  sehr  zurueckhalten, da Sex vor der Ehe damals
 streng  verboten  war,  und durften den Drachen hoechstens verwunden.
 Noch strenger waren die Braeuche fuer die jungen Teenager-Ritter, die
 hoechstens  mal einen Drachen aus der Ferne beschimpfen durften, wenn
 sie Lust auf Sex verspuerten.
 Freilich  gab    es  auch  damals  schon  Ritter,  die das Toeten von
 Drachen  gar  nicht  als  sexy empfanden, sondern als unsportlich und
 grausam.   Sie fanden bald einen Ausweg:  Die sogenannten Kreuzzuege,
 wo sie statt der immer seltener werdenden Drachen lieber Tausende von
 Heiden toeten konnten.


 6. KAPITEL - SEX IN DER NEUEN WELT

 Im 17.Jahrhundert bestiegen etliche Pilger, die in ihrer Heimat wegen
 ihrer  religioesen  Ueberzeugung  verfolgt  wurden, ein Schiff namens
 "Mayflower",  und  segelten  in  die  neue  Welt,  auf der Suche nach
 Freiheit.   Da  es  eine  rauhe Ueberfahrt war, wurde der Sex an Bord
 fuer  die Pilger zu einem schlimmen Erlebnis.  Ihnen wurde uebel, sie
 uebergaben  sich  und  waren  wochenlang krank.  Aber das stoerte sie
 nicht  weiter,  da Sex an Land fuer sie genau dieselben Folgen gehabt
 hatte.
 Einmal  in  der  neuen  Welt  angekommen,  waren  die     Pilger sehr
 gluecklich.   Sie  konnten  jetzt glauben, was sie wollten und wurden
 nicht  mehr  wegen  ihrer  religioesen  Ueberzeugung verfolgt.  Statt
 dessen  hatten  sie endlich selber Gelegenheit, andere Menschen wegen
 ihrer  religioesen  Ueberzeugung  zu  verfolgen.  Es gab Hexenjagden,
 Teufelsaustreibungen  und  Geheimbuende  -  mit  anderen Worten:  Sie
 gruendetetn die Demokratie.
 Was  den  Sex    betrifft,  so hatten die Pilger davon eine aehnliche
 Auffasung  wie  die Ritter - nur mit dem Unterschied, dass die Pilger
 keine  Drachen toeteten, sondern Indianer.  Im uebrigen richtete sich
 ihr  Sexualleben  streng  nach den Geboten der Bibel.  Das Haus eines
 Nachbarn  mit  dessen Frau zu entehren war undenkbar.  Dazu gab es ja
 schliesslich die Scheune.


 7. KAPITEL - SEX IM ROKOKO

 Im  Rokoko  fand  der  Sex seine groesste Bluete.  Die Menschen waren
 lebensfroh  und verspielt, neue Formen des Sex wurden entwickelt, wie
 zum Beispiel das "Schaeferspiel" (siehe "Sex in Wald und Wiese"), und
 die  Kaiser  und Koenige gingen mit gutem Beispiel voran.  Den Rekord
 stellte  Kaiserin Maria Theresia auf, die 16 Kinder hatte.  Mit Recht
 nannte   man   sie   die   "Landesmutter".    Es   ist   jedoch   ein
 weitverbreiteter  Irrtum, ihren Gemahl Kaiser Franz als "Landesvater"
 zu  bezeichnen.   Dieser  Titel gebuehrt vielmehr einem italienischen
 Gastarbeiter namens G.G.Casanova.



 8. KAPITEL - SEX IN DER VIKTORIANISCHEN ZEIT

 In der viktorianischen Zeit gab es keinen Sex.



 9. KAPITEL - SEX HEUTE

 Adam, der inzwischen in den Himmel gekommen war, stand am Fenster und
 beobachtete die Erde.  "Oh du lieber Gott!" sagte er.
 "Ja?", sagte der Liebe Gott, "hast du mich gerufen?"
 "Nein",  erwiderte Adam, "ich habe nur geseufzt.  Siehst du, was da
 unten vor sich geht?  Oh du lieber Gott."
 Der Liebe Gott sah hinab und seufzte ebenfalls.  "Oh ich!"
 "Schau  mal,  was die da treiben!" fuhr Adam fort.  "Die luesternen
 Maenner!   Und  die  verworfenen  Frauen, die ihren Koerper zu Markte
 tragen!  - Wie heissen sie doch gleich ...  ?"
 "Gruene Witwen", sagte der Liebe Gott.
 "Und diese Buecher und Filme ..."
 "Ich  weiss,  ich weiss", nickte der Liebe Gott traurig.  "Oh Adam,
 ich  hatte  mir  das  alles ganz anders vorgestellt.  Ich glaube, ich
 muss denen da unten wieder mal eine Lehre erteilen!"
 "Das glaube ich auch", meinte Adam.  "Vielleicht so eine wie damals
 in  Aegypten!  Da hast du in jedem Heim den erstgeborenen Sohn zu dir
 genommen!"
 "Nein,  das  waere  keine  Strafe",  sagte  der  Liebe  Gott.     "Im
 Gegenteil  - die meisten Familien wuerden sich freuen, wenn ich ihnen
 ihre missratenen Baelger wegnehmen wuerde."
 "Dann     schicke  eine  deiner  beruehmten  Plagen  ueber sie herab",
 schlug Adam vor.  "In Aegypten haben sie Wunder gewirkt!"
 "Habe    ich  schon  versucht.      Letzten  Mittwoch  habe  ich einen
 Heuschreckenschwarm   losgejagt.   Und  was  ist  passiert?  Die armen
 Tiere sind an der giftigen Industrieluft eingegangen!"
 Da  stiess  Adam  dem    Lieben   Gott  in die Seite.  "He, ich hab's!
 Mach's   doch   wie   damals   mit   der  Arche  Noah!   Trommle  die
 anstaendigsten  und  besten  Menschen zusammen und verfrachte sie auf
 ein  Schiff.   Und dann lass es vierzig Tage regnen und ertraenke den
 Rest der Menschheit ..."
 "Hm",     gruebelte der Liebe Gott, doch dann schuettelte er den Kopf.
 "Nein,  das  funktioniert  nicht.  So viele Menschen dicht aneinander
 gedraengt  auf einem Schiff - und das vierzig Tage lang!  Denk an die
 Kreuzfahrten im Mittelmeer.  Der Liebe Gott allein weiss, was sich da
 alles tut.  Und ich weiss!  Also hat es keinen Sinn.
 "Dann bleibt uns wohl nichts anderes uebrig als zu beten", sagte Adam.
 "Du hast leicht reden", sagte der Liebe Gott ...


 10. KAPITEL - SEX HEUTE ABEND

 Nein. Bitte heute abend nicht. Ich habe solche Kopfschmerzen ...

(Ende)

_______________________

Yantro :-)

-----------------------------------------------------------------------------



Re^13: Boehse Nazis: E.I.N.S (Sunflower, 13. Feb 1997, 09:09:21):
~#! rn=Lug rt=855689336 rg=kultur
~#! tid=855312471
Liebe Leute, Freunde, Landsleute, FeindInnen und die die es werden wollen.

Ich habe den ganzen Quatsch gelesen den Ihr hier verbochen habt und moechte
hier nun meine Meinung kundtun:

Einfach so ueber die Onkelz zu urteilen ohne sich das Album anzuhoeren
find ich laecherlich. Nur weil irgendwer irgendwann gesagt hat: Die Onkelz
sind rechts. Das sind Faschos..... Mag sein das sie es frueher waren.
Aber Leute hoert euch doch erstmal was von den Onkelz an und urteilt spaeter
(schrumpfi und noch einige andere, ich weiss das ihr das album euch mal
reingezogen habt, aber ihr seid ja nur ein paar wenige)

Zu eurem Nationalstolz:

Seit wann haben den die Deutschen einen Nationalstolz ? Deutschland gibt es
seit ca 1880. Davor waren es doch nur kleine Fuerstentuemer und jeder
war stolz ein Buerger seines Fuerstentums zu sein. Und auch nach 1880 war
es doch nicht besser. Und dann kam ein Herr Schinkelgruber und sagte
ich bin euer Fuehrer nun wird alles besser. Wir hatten ein Deutsches Reich.
Na toll. Und was war im Deutschen Reich ? Nur weil einige nen anderen Glauben
hatten oder nicht aus Deutschland kamen, wurden sie gejagt, gefoltert
und vergast. Und das nennt Ihr Nationalstolz ? *paaahhh* das ich nicht lache.
Der einzige Grund auf dieses Land stolz zu sein, ist tot: Ludwig Erhardt, das
war der einzige (vielleicht neben Adenauer) der was fuer das Deutsche Volh
aehh Volk getan hat. Und ich bin nicht stolz ein Deutscher zu sein,
durch das was bis 1945 hier andauerter und das was unser hochgeschaetzter Herr
Kohl und seine Mannen heute machen.
Das ist meine bescheidene Meinung. nicht mehr und auch nicht weniger

Sunflower, sieht auf die Uhr und denkt . o O (16 Tage)

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^14: Boehse Nazis: E.I.N.S (Grimmborn, 13. Feb 1997, 15:01:18):
~#! rn=Sunflower rt=855821361 rg=kultur
~#! tid=855312471
Es gibt Deutschland, ein deutsches Nationalgefuehl, erst seit 1880? Mein
lieber Junge, da hast Du aber in Geschichte ganz gewaltig nicht aufgepasst.
Natuerlich gab es die sprichwoertliche deutsche Kleinstaaterei, aber dennoch
haben sich die Leute primaer (halt gegen Auslaender) als Deutsche gesehen.
Klar, einem Duesseldorfer gegenueber sage ich, ich bin Koelner, einem Ami
dagegen, ich bin Deutscher. Deutschland hatte seine groesste Ausdehnung um
1245(!), bis runter nach Sizilien. Die Bewegung des Vormaerz, die in die
Revolution 1848 muendete, war eine massiv nationalistische Bewegung. Und, und,
und. Weiteres siehe Geschichtsbuecher, ich bin da nun wirklich keine
Koryphaee.

Grimmborn der Atheist ist sowieso Schwede...

-----------------------------------------------------------------------------



Re^15: Boehse Nazis: E.I.N.S (Fyt, 13. Feb 1997, 18:19:10):
~#! rn=Grimmborn rt=855842478 rg=kultur
~#! tid=855312471

Hm, kleine Berichtigung, Deutschlands groesste Ausdehnung faellt m.E.
sehr wohl in die Zeit nach 1880 *hust*

Fyt.

-----------------------------------------------------------------------------



Re^16: Boehse Nazis: E.I.N.S (Grimmborn, 13. Feb 1997, 18:43:56):
~#! rn=Fyt rt=855854350 rg=kultur
~#! tid=855312471
Wovon auch immer Du redest, aber die Ausdehnung von 1942 war wohl kleiner als
die von 1245 (und da war das Reichsgebiet, nicht lediglich besetzt). Aber wie
auch immer: Sizilien ist doch eine viel lohnendere Gegend als der russische
Schlamm, oder? ;-)

GdA

-----------------------------------------------------------------------------



Re^17: Boehse Nazis: E.I.N.S (Fyt, 13. Feb 1997, 19:24:33):
~#! rn=Grimmborn rt=855855836 rg=kultur
~#! tid=855312471

Wovon auch immer ich rede: ein vorsichtiger Blick in meinen Atlas suggeriert
mir, das die besetzten Gebiete groesser als das Heilige Roemische Reich
deutscher Nation waren, und zwar um einiges... egal, nicht dass ich dem
Verdacht ausgesetzt werde, dass mir an den Grenzen von 42 was laege...

Fyt.

PS: Es gibt uebrigens auch in Russland *wunderschoene* Gegenden.

-----------------------------------------------------------------------------



Re^18: Boehse Nazis: E.I.N.S (Grimmborn, 13. Feb 1997, 20:09:48):
~#! rn=Fyt rt=855858273 rg=kultur
~#! tid=855312471
Ich werd den Teufel tun mich ueber Geographie zu streiten, ich habe Erdkunde
nach der 10 abgewaehlt... Mir hat jemand das mit 1245 erzaehlt und ich habs
nachgeplappert, ich weiss ja nichtmal wirklich, ob Sizilien auch dazu
gehoerte. Wenn ich Grossmachtphantasien haben will denke ich an Schweden, zu
der Zeit, als die Ostsee ein schwedisches Binnenmeer war. ;-)

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^19: Boehse Nazis: E.I.N.S (Wurzel, 14. Feb 1997, 21:18:16):
~#! rn=Grimmborn rt=855860988 rg=kultur
~#! tid=855312471
das war die zeit, als schwedische soeldner brandschatzend, pluendernd und
vergewaltigend durch die lande gezogen sind und dabei neue foltermethoden
ausprobiert haben (z.b. den beruechtigten "schwedentrunk"). nicht unbedingt
etwas, worauf man stolz sein muesste...

wurzel

-----------------------------------------------------------------------------



Re^20: Boehse Nazis: E.I.N.S (Lug, 15. Feb 1997, 01:01:52):
~#! rn=Wurzel rt=855951496 rg=kultur
~#! tid=855312471
Moin,

naja. So fand das braune Gold des Emslandes erstmalig Anwendung. Und damit
foltern und vergiften die bis heute.

Lug

-----------------------------------------------------------------------------



Re^20: Boehse Nazis: E.I.N.S (Grimmborn, 17. Feb 1997, 16:28:01):
~#! rn=Wurzel rt=855951496 rg=kultur
~#! tid=855312471
Och, das kann man doch so nicht sehen... Das war halt der Zeitgeist, und die
schwedischen Soldarten haben ja nur Befehle befolgt und ihre Pflicht getan,
nicht wahr? Und die anderen Leute jener Zeit waren auch nicht viel besser, nur
unkreativer, aber sie haben dann ja von den Schweden gelernt...

Aber in einem solltest Du mir zustimmen: Darauf "muesste" man ebenso stolz
sein wie man auf den Rest stolz sein "muesste", der in dieser Rubrik zum
stolzsein angeboten wurde.

Grimmborn der stolze Atheist

-----------------------------------------------------------------------------



Re^21: Boehse Nazis: E.I.N.S (Wurzel, 17. Feb 1997, 18:20:32):
~#! rn=Grimmborn rt=856193281 rg=kultur
~#! tid=855312471
ok, grimmborn, dem kann ich zustimmen, mit den implikationen :)
stolz bin ich auf das, was ich selbst geleistet habe. nicht mein vater oder
meine mutter, auch nicht eine ganze menge von leuten, von denen ich die
meisten sowieso nicht kenne (das sogenannte volk).

wurzel

-----------------------------------------------------------------------------



23:20 h (Qitess, 19. Feb 1997, 11:53:47):
  23:20 h


       Die Nacht
       
       ... Nacht ...
       
       dunkle Zeit
       
       umschlingst
       verschlingst
       behuetest
       wachst
       
       sternklar
       wolkenverhangen
       neblig
       
       weisser Laternenpunkt
       
       Mondsichel
       
       kugelmondbeschienene Szenarien
       
       lauschst
       rauschst
       stoehnst
       und verhoehnst
       spuckst Tiere aus
       und Menschen
       ... verschlingst sie wieder
       
       Auto faehrt vorueber
       Menschen lacht vorbei
       
       wo ?
       
       oben ?
       unten ?
       
       Himmel
       Wasser
       Nacht
       Regen
       
       Nachtregen
       
       Nebeltropfen
       
       - ich habe kalte Fuesse -
       
       kurzer Blick
       Augenblick
       
       Ferne ?
       Naehe ?
       
       Nacht
       Die Nacht
       dunkle Zeit
       
       mondbeschienen
       Sternenstunden
       Einsamkeit
       
       
       
                                      QI**
                                      
                                           Mai '95       
                       
                

-----------------------------------------------------------------------------



Hyperion (Jimdigriz, 19. Feb 1997, 20:11:17):
Hallo,

hier mal ein Buchtip von mir:
 Hyperion & Das Ende von Hyperion
 von Dan Simmons, Heyne-Verlach

Ein Cyberpunk-Roman, eine Weltraumschlachten-Story, eine Heldengeschichte, ein
Horror-Buch,
eine Hommage an den Dichter John Keats, und und und

und vor allem trotzdem genial, nicht wirr, spannend, faszinierend,
voll origineller Ideen, technisch und logisch nicht unglaubwuerdig
(sagen wir fast)

Der erste Teil ist noch relativ harmlos, und deutet auf einen
Abschluss am Ende des Buches hin, doch dann wird kaum
eine Frage geloest und im zweiten Teil kommt alles
ganz ganz anders. 

Viel Spass,
 Jim DiGriz

-----------------------------------------------------------------------------



Re: Hyperion (Highlander, 20. Feb 1997, 11:19:15):
~#! rn=Jimdigriz rt=856379477 rg=kultur
~#! tid=856379477
Hm. Meinungssache :>
Vielleicht war ich ja nur nicht in der richtigen Stimmung, als ich es
gelesen hab, aber ich fand's relativ langweilig und verwirrend.
Allerdings hab ich Lord Fouls Fluch damals auch bei der Haelfte abge-
brochen, weil's mir langweilig erschien - und den Rest dann am
Stueck verschlungen :>
Nein, Hyperion und den Nachfolger hab ich beide
ganz gelesen.  Aber: Nicht zuviel auf meine Meinung geben - selber mal
reinschauen :>
  HrT, der grade {Daughter,Servant,Mistress} of the Empire durchhat :>

-----------------------------------------------------------------------------



mal wieder ein Buchtip von mir (Alboin, 21. Feb 1997, 15:27:24):
Wer mich kennt, weiss eigentlich, dass ich mich nicht gerne an Dingen
orientiere, die kommerziell ausgeschlachtet werden. Trotzdem kann ich das Buch
'Fraeulein Smillas Gespuer fuer den Schnee', dessen Verfilmung gerade in den
Kinos laeuft, aber bestimmt niemals so gut wie das Buch ist, waermstens
empfehlen.
Im Buch geht es kurz gesagt um die Aufklaerung eines Mordfalles, dessen Spur
uns bis nach Groenland fuehrt. Waehrend die Geschichte von Anfang bis Ende
spannend bleibt, ist das buch nicht auch zuletzt wegen des brillianten
Erzaehlstills Peter Hoegs interessant. So geht es in diesem Buch auch um
unkonventionelle Lebenseinstellungen, Liebe und ist ausserdem mit
wissenschaftlich-philosphischen Intermezzos gewuerzt. Also am besten ihr
schaut selbst mal rein, ich kam jedenfalls von dem Buch schlecht los und hatte
es in zwei tagen ausgelesen.
Alboin

-----------------------------------------------------------------------------



Re: Hyperion (Yendi, 24. Feb 1997, 13:06:49):
~#! rn=Jimdigriz rt=856379477 rg=kultur
~#! tid=856379477

"Hyperion" und "The Fall of Hyperion" sind brilliant. Eine phantastische
Geschichte (oder im ersten Teil eher eine Sammlung von Schicksalen), die
ueberzeugend, mitreissend und wortgewaltig erzaehlt wird.
Hach, allein die Stelle, wo ein Offizier in der Ausbildung die Schlacht bei
Agincourt miterlebt, bei der ein paar hundert vollgepanzerte Franzosen auf die
britischen Bogenschuetzen zugallopierten und zerrieben wurden:
"Horses went down and screamed, riders were thrown and screamed, and Khassad 
 was out and screamed, swinging his mallet like a madman", oder so aehnlich;
ich hab das Buch gerade nicht zur Hand.

Simmons kann sowohl wunderbar trocken und lakonisch sein, als auch sprachlich
aus dem Vollen schoepfen: Einer meiner Lieblingsautoren, und diese beiden
Buecher wuerden sicher einen Platz in meiner "Buecher fuer die Insel"-Kiste
erhalten.  Zumindest sollte man sie mal gelesen haben.

Hat irgendjemand Hyperion auf deutsch _und_ englisch gelesen, und kann ein
Urteil ueber die Uebersetzung abgeben?


Yendi,
       faehrt jetzt nach Haus und schmoekert ein wenig.

-----------------------------------------------------------------------------



bore (Jasper,  6. Mar 1997, 03:14:39):
finger grim
Grim Reaper the Dwarf Texas Ranger
Level: 86  Age: 147d 11h 11m 40s
He leads the dwarf race.
He leads the ranger guild.
Last on: Wed Mar  5 17:08:56 1997 ( 11h 4m 11s ago)
Arena score: 1573
Best kill: A Red Dragon - 369905 xp (solo)
           4th circle samurai Tokata rest here - 2280879 xp (party)
Plan:

        ULTRA VIOLENT

        I'll smash your fucking face,
        It's such a fuckin' disgrace.

        I'll kick it fuckin' in,
        It's such a fuckin' sin.

        I'll gouge your fuckin' eyes,
        I'll make you fuckin' die.

        I'll make you fuckin' silent,
        I'm fuckin' ultra violent.

        I'll kick your fuckin' head,
        'Til you're fuckin' dead.

        I'll make you fuckin' cry,
        Make you fuckin' die.

        I'll crack your fuckin' face,
        Hit it with a fuckin' mace.

        I'll make you fuckin' silent,
        I'm fuckin' ultra violent.


-----------------------------------------------------------------------------



Weils so schoen zu meinem Namen passt. (Sidolin, 12. Mar 1997, 10:57:00):
          Ein schoener Tag...
          -------------------

          Persil Megaperls
          Bube, Dame, Hoerig
          Schlagerparade auf WDR 4
          der Nachbar, mit dem es mit sauberen Glaesern klappt

          Warsteiner Pils
          Nullnull - und in Bad und WC ist alles ok
          die Produkte von Schneekoppe
          Lucky Strike Lights

          Vita Buerlecithin
          Klosterfrau Melissengeist
          BRAVO TV
          Zaubertraum Barbie

          Mountain Bikes
          24teilige Steckschluesselsaetze
          jetzt noch weisser
          und natuerlich alles sauber und diskret.


-----------------------------------------------------------------------------



Re: Weils so schoen zu meinem Namen passt. (Yendi, 12. Mar 1997, 15:17:25):
~#! rn=Sidolin rt=858160620 rg=kultur
~#! tid=858160620

Werbesprueche sind sehr flexibel einsetzbar.
Wer kennt das Brettspiel "Civilization" von Avalon Hill, auf deutsch von WDS?

Wir haben letztens zu dritt gehirnstuermt, um einem Civi-Fanatiker einen
schoenen T-Shirt-Spruch zu schenken. Auf dem T-Shirt sind vorne die
Farbvergroesserungen der drei Zivilisationskarten
"Metallverarbeitung (gibt einen Bonus bei Gefechten)",
"Weben (Schiffe duerfen ein Feld weiter fahren)" und
"Astronomie (erlaubt Seefahrt ueber das offene Meer)".

Drueber steht "Von fuehrenden Kretern empfohlen:", und drunter
"...dann klappts auch mit dem Nachbarn!"

Auf der Rueckseite steht "Vertrauen ist gut, <Metallverarbeitung> ist
besser!Damit sie auch morgen noch kraftvoll zuschlagen koennen!"

Weitere in die engere Wahl gekommene Werbesprueche waren
"Wir machen den Weg frei."
"Wir geben ihrer Zukunft ein Zuhause"
"Vorsprung durch Technik"
etc. pp.


-----------------------------------------------------------------------------



Re: Re: Weils so schoen zu meinem Namen passt. (Hardil, 13. Mar 1997, 13:36:48):
~#! rn=Yendi rt=858176245 rg=kultur
~#! tid=858160620

Jau. Civi als Brettspiel ist auch was schoenes. Obwohl wir ja meistens mit dem
deutschen Brett und den englischen COuntern spielen, denn die WDS-Counter sind
ja echt nicht das gelbe vom Ei.

Aber 1830 ist noch besser, gell Sido ?

-Hardil.

-----------------------------------------------------------------------------



This savage freedom (Sushi, 19. Mar 1997, 16:16:49):
It's the age of CVs
Contract to contract
And my stress levels rise
This is a job for life
(There are no jobs for life)
I am forced to a decision
I am forced to the other side
I can see a way out of here

Placards of prophets
And great leaders of men
Personality cults
All over again

(But) we'll build shrines for our
Loved ones
We'll burn fires and lights
And we'll talk of the old ways
To find new ways that might ...
... They just might

In the villages and hills
On the tundra and ice
To the forests of Kauai
In the paddies of rice
By the lakes on the plains
To the great mountain range
Love the land and its people
I can see a way out

With the hours that we kill
And the dreams that we hide
Of alternative life styles
This savage freedom I love


-----------------------------------------------------------------------------



money is not our god (Sushi, 19. Mar 1997, 16:17:22):
Money is not our God

Nine-tenths of a law that is sick is possession
Life expressed in matter is a blasphemy
Success defined by acquisition stinks
So busy trying to make a living we forget about living
So busy trying to make a living I forget about life

The best thing I found in life are my birthrights
The green fields mean more to me than a brand-new car
Will you swap your hi-fi for a clear blue sky?
Will you part with your shares for God's clean air?
Is your answer yes or no to these painful truths?
I said is your answer yes or no to these painful truths?

Do you grovel to your master?
Do you like to be a dog?
First things first - repeat to yourself -
Money!
Money is not our God

(It's mine)
The best things in life are free! (Mine)
I own the beach and the blazing sunset! (Mine)
I own the waves and the fresh air! (Mine)
I drink the milk of the stars and this beautiful moment
Say to yourself - all these things are mine!

Money Money Money
Money is not our God


Sushi

-----------------------------------------------------------------------------



ST sind die Besten (Yantro, 27. Mar 1997, 15:59:14):
		"JUST ANOTHER LOVE SONG"
         (lyrics by Mike Muir and Rocky George)


  Well I just had to turn off the radio
  But not before I heard thirteen songs about love in a row
  Well I don't know what the next song's gonna be
  But I know how the words are gonna go
  They'll be singing "Oh baby, baby, baby, baby, baby, baby I love you so"
  So won't everybody sing along cause her comes just another love song

  I need you like I need a hole in my head
  I need someone to steal my money and wish I were dead
  I need someone to always put me down
  And everywhere I go she wants to hang around

  Do you really even think dreams come true
  Do you really even think you'll find something wonderful and new
  Do you really even think someone's waiting for you
  Do you really even thiink that love is near
  Do you really even think it's me dear
  Do you really even think I want to hear-but I still say
  I won't fall in love today

  I need a chick who's got expensive taste
  Who's not afraid of whose money she wastes
  You expect me to buy you a diamond ring!
  Well I suspect I'll buy you not a thing!

  Well I could tell you you're the only one I love
  And how your eyes sparkle like the stars above
  And that I carry a picture of you in my heart
  And as long as we live we'll never be apart
  And that you're the most important person in my life
  But I can't handle a girlfriend, how am I gonna handle a wife

  Love-hate love-hate love-hate love-hate love-hate love-hate love-hate love-hate
  I love, love, love to hate you but I'd hate, hate, hate to love you

  I could promise all my love to you
  But that would take me only a second or two
  And if you're waiting to be my one and only
  You're gonna find out what it's like to be awfully lonely
  Your song was alright for awhile-But now your tune's gone out of style

  You want to cuddle and hug all night
  But I'm going out with my friends tonight
  And I don't need someone to act like my mother
  I already have one-I don't need another

  But she sure looks fine
  After a bottle of wine
  And she's out of sight
  When my mind's not right
  And I'll promise you anything dear


-----------------------------------------------------------------------------



Buchtip (Sidolin,  3. Apr 1997, 17:05:05):
Ein Buchtip von mir:

James HAWES: A white Merc with Fins.

Ein SEHR geniales Buch ueber einen
vor-dem-dreissigsten-Geburtstag-schisshabenden Typen, der sich seinen
Jugentraum erfuellt und eine Bank knackt.

Fuer alle Leute zwischen 25 und 30 absolut wichtig. :-)

Sidolin. Lacht heute noch ueber das Buch. :-)

-----------------------------------------------------------------------------



Re: Buchtip (Wurzel,  3. Apr 1997, 19:43:57):
~#! rn=Sidolin rt=860079905 rg=kultur
~#! tid=860079905
darf ich das dann nicht mehr lesen, wenn ich schon ueber 40 bin? oder was?

-----------------------------------------------------------------------------



Re: Re: Buchtip (Sidolin,  4. Apr 1997, 10:48:30):
~#! rn=Wurzel rt=860089437 rg=kultur
~#! tid=860079905
Selbstverstaendlich darfst Du. Es ist IMHO noch kein Gesetz in der BR
Deutschland gueltig, dass gewisse Lektuere AB einem bestimmten Alter
verbietet.
Das gibts nur umgekehrt. :-)

Sidolin.

-----------------------------------------------------------------------------



Buchtip (Cerebus,  6. Apr 1997, 21:48:11):
Ein Buchtip fuer die Zeit, wenn mal nicht gemuddet wird:

Microserfs

von D. Coupland

Keine Ahnung, ob es das schon in deutsch gibt, ich habe es mir in den staaten
auf englisch gekauft. Handelt von einer Gruppe von Microsoft-Programmierern,
die eine eigene kleine Firma aufmachen - und nebenher entdecken, dass sie im
Grunde kein Leben haben.. Sehr gut geschrieben, viele kleine und grosse
Anspielungen auf die Nerd- und Geek-Welt, einige tiefschuerfende
philosophische Gedanken.. Gute Ferienlektuere!!!
Ich bin uebrigens auch an Kommentaren interessiert, wenn es jemand schon
gelesen haben sollte..

cerebus

-----------------------------------------------------------------------------



First Vision of Yaghestan (Achakzai,  8. Apr 1997, 10:50:49):
First Vision of Yaghestan

Where no autobahn leads to
and Normalia's noise is unheard,
beyond the sands of ignorance
an ancient land survived on Earth
Majestic mountains guard your peace,
keeping away a restless world
that spins 'round faster everyday,
you show this age another way

Refrain: Across the miles, through concrete and steel,
         your call has reached me now, I feel,
         Your light invades my teenages days
         to guide me out of this dull
place[A[D[D[D[[[C[C[C[Cday[D[D[D[D[C[C[C[Cs[B

Once Vitalteanian praised your splendour,
wearing freedom in their hair,
travelling towards timeless wisdom
beneath your skies so clear and fair
To follow them in my own way,
this now will lead me day by day,
to fly beyond philistine bore
and find the beauty I adore

Refrain: Across the miles...

Barren mountains, verdant valleys,
morning dew in fairy light,
rustic figures dignifiedly moving,
all in all a magic sight
And somewhere by a highland stream,
wthin fields of flourishing green,
your wild son waits as I arrive
and we'll ascend to Other Life

Refrain: Across the miles...

(c) 1994 by Yadgar Hafiz Achakzai

-----------------------------------------------------------------------------



The Journey (Achakzai,  8. Apr 1997, 11:04:46):
The Journey

1. Wake up, my friend, the time has come
   to ride our dream towards the sun
   Resignation grows stronger and stronger,
   come with me, don't wait any longer
   The bikes are waiting packed in the backyard,
   get up and let us start!

   Starry February night,
   the Eastern light not yet in sight,
   but[A[A[C[C[C[C[C[Cloudy[B[B[D[Din the mild and tender air
   a hunch of springtime everywhere

Refrain: That change of heart has meant to me
         the end of all nostalgic sorrow,
         we'll plant a tree of mankind's hope
         in the country of tomorrow!

2. Dawn sees us far out of town
   travelling kings without a crown
   Lands and cities pass our view,
   there is no time for us to stay,
   the gentle humming of the wheels
   will be with us day by day

Refrain: That change of heart...

3. And there will be the veterans,
   grieving for old long-haired time,
   asking us to where we're going
   and what vision we've in mind;
   Utopia's flame is passed on now,
   if you're open, why don't you join?
   The measure's not your generation,
   the White Bird, she will fly again!

Refrain: That change of heart...

4. 4000 miles of pain and fun,
   now sweating under desert sun,
    in the plain ahead we see
   the custom house, of adobe
   Beyond the turnpike future waits
   and a lifetime's work to be done;
   one day the country's name's a sign
    for a better world to come

Refrain: That change of heart...

(c) 1990 by Yadgar Hafiz Achakzai

-----------------------------------------------------------------------------



Fluss (Achakzai,  8. Apr 1997, 11:14:53):
1. Fluss, du fliesst in alter Weise
   durch dein programmiertes Tal
   in zeitloser Deutschlandreise
   so schoen und ueberregional

Refrain: Toene fliessen wie ein Strom den Fluss hinauf,
         Stroeme steuern diesen neuen Tonverlauf...

2. Du kennst Burgen und Ruinen,
   Spiegelglas und Edelstahl,
   Wir, wir bauen auf Platinen
     und wir denken digital

Refrain: Toene fliessen wie ein Strom...

3. Fluss, man lebt an deinen Seiten
   und macht dich zum Wechselstrom
   Du erzaehlst von alten Zeiten,
   Wellen spiegeln sich in Chrom

Refrain: Toene fliessen wie ein Strom...

4. Fluss, du fliesst in alter Weise
   durch dein programmiertes Tal
   in zeitloser Deutschlandreise,
   so schoen, und ueberregional

(c) 1980 by Rheingold

-----------------------------------------------------------------------------



Fluss 2 (Achakzai,  8. Apr 1997, 11:19:23):
Alternativ-Strophe zu "Fluss":

Du kennst Tadschiks und Paschtunen,
Salzseewind und Gletscherschnee,
Wir, wir hausen in Kommunen
und wir schlucken LSD!

Kultig, wa??

-----------------------------------------------------------------------------



Buchtip (Magnus, 18. Apr 1997, 11:11:39):
Auch ich moechte ein schoenes Buch empfhelen, besonders fuer diejenieresse an
Indien und dem asiatischen Raum allgemein haben.

Vikram Seth, Eine gute Partie, erschienen bei Heyne als Tb.

Es handelt sich um eine Familiensaga aus dem Indien der spaeten 40er
Jahre, sehr detailreich und weitschweifig geschrieben, aber sehr
lesenswert.

ca 1600 Seiten

Have fun

-----------------------------------------------------------------------------



filmkritik (Wurzel, 18. Apr 1997, 19:36:27):
romeo und julia

eine mit wenigen ausnahmen sehr gute adaption. die story ist ins ausgehende
20. jahrhundert uebertragen, und man spuert shakespeares zeitlosigkeit an
allen ecken und enden. die "montague boys" rauschen mit ihrem schlitten
durch die gegend und treffen an einer tanke auf die capulets (genial: tybalt
mit schmalzlocke, silberbeschlagenen westernstiefeln und nach django-manier
bewaffnet gegen die kurzgeschorenen montagues mit hawaiihemden...) 
ein lichtblick auch mercutio, der interessanter weise von einem schwarzen
gespielt wird, auf der anderen seite nur logisch, denn als verwandter des
prinzen, der hier "captain prince", der schwarze polizeichef ist, muss das
wohl so sein...
die story ist natuerlich vorgegeben, aber die bilder dazu sind genial. etwas
unpassend fand ich die unflexible handhabung der sprache. wenn jemand mit
einer 44er magnum in der hand von seinem schwert spricht, empfinde ich das
als eher unpassend. ganz im sinne von shakespeare haette man daraus "waffe"
machen koennen, und es waere dadurch nichts verloren gegangen. solche stellen
gab es einige, die meisten fielen aber nicht weiter auf.
resumee: fuer fans ein muss (aber die waren eh schon drin), fuer alle anderen
sehr sehenswert. ausser fuer puristen natuerlich...

wurzel

-----------------------------------------------------------------------------



Romeo & Juliet (Cerebus, 18. Apr 1997, 20:30:26):
Noch ein Nachtrag zu Romeo&Juliet:
In der Tat ein sehr netter, schneller, cooler Film. Der Soundtrack ist imho
ebenfalls sehr zu empfehlen, eine tolle Mischung aus allen moeglichen
Richtungen (Pop, Disco, Indie, etc.). Hat mir so manche Autofahrt ueber
Ami-Highways versuesst...:-))

cerebus

-----------------------------------------------------------------------------



Re: Romeo & Juliet (Cauno, 21. Apr 1997, 12:37:23):
~#! rn=Cerebus rt=861388226 rg=kultur
~#! tid=861388226
Meine Schweste war auch bereits drin und hat sich die CD geholt.
Die enthaelt sogar eine Spur mit CD-ROM, nur haben die idioten, die das
geschrieben haben, einen Fehler im Setup gelassen.

C. No

-----------------------------------------------------------------------------



Frontbericht (Yantro, 22. Apr 1997, 20:38:29):
 Halloele, 
eigentlich ist das jetzt mehr ein Bericht zum Thema "Was passiert, wenn man
neugierig ist", aber naja....

Angefangen hat das alles damit, dass ich heute Karten fuer SW 3 bestellt habe
im einem Koelner Grosskino. Da herauskommend denk ich an nichts boeses und
schaue mich um. Nebenan ist das Gebaeude von EinsLive (ehemals WDR1, ein
Radiosender) und ich denk mir, was ist das denn fuer ein Auflauf da vor der
Tuer und schleiche mich mal rueber... 
Angekommen merke ich, dass ich mich wohl nicht unter Erwachsenen aufhalte,
denn ich kann immer noch alles sehen. Ich frag also mal dumm und hoere mit
Staunen "Caught in the Act ist doch da"..... naja... erstmal meine Taschen
durchwuehlt und was gesucht, was ich in einer geballten Hassaktion dieser
BoyGroup an den Schaedel schmettern kann, aber nix dabei. Beim Gedanken an
meine anderen Plaene fuer den Nachmittag macht sich langeweile breit und so
bleib ich mal da und schau mir das Theater an.

Beim Eintreffen der 2 Luxusautos hab ich mich dann mal an die Absperrung
gemischt, denn da wars schoen warm und eng und da in jedem von uns ja auch ein
kleiner Belgier steckt, dacht ich mir, dass ich mich mal was bedraengen lasse
;). Der Spass war aber nur kurz, wenn ich auch schon nach 2 Minuten von
weinenden Maedels umgeben war, die alle Trost suchten (und sich gegenseitig
fanden, entzueckend). Dann begann die Warterei. Irgendwann sollten die da auch
wieder rauskommen. Nach ner Stunde wurde es dann doch was doof und ich trinke
mal nen Kaffee im Kino. Nach dem Kaffee heisst es, dass die Jungs immer noch
in dem Gebaeude sind, aber ich Wolfsschlau denk, das kann nicht sein und mit
poeser Elternmine zu einem der Securitymenschen. Der grinst mich an und
meinte, dass es da so einen Unterirdischen Gang zu VIVA gaebe, ich also mal da
rueber und mir einen gegrinst, denn keiner kam mit. 

Leider war die Freude was zu frueh, denn bei VIVA wars voller als beim Radio.
Ich also mich wieder in ne Ecke gesetzt und die Histerie genossen, mit der
sich diese Huehner ohne Grund, aber voller Motivation an die Absperrung
draengen.
Schliesslich und endlich heisst es, dass die Sendung zuende ist und ich denk
mir, da, wo die Nobelautos stehen, da muessen auch Stars sein und bin runter
in die Garage. Die Idee hatte ich nicht alleine und das war alles andere als
zu Freuden des alleine da postierten Waechters. Der holte sich erstmal Hilfe
und haengte mehrere Ketten quer. Irgendwann war der Zeitpunkt erreicht, als
die zeite Reihe nichts mehr von der ersten sah und da erlebte ich das totale
Chaos. Im Liefereingang des Hauses geht eine Tuer auf und INSTINKTIV reissen
sich 50 Arme hoch, alle mit Fotoapparaten und Album und CD und Plueschtier in
EINER Hand (komische Haende haben BoyGroupFans schon) und ein
Blitzlichtgewitter brandet los... innerhalb von einer Minute wird ein ganzer
Film verheizt! Maedchen fallen sich weinend in die Arme oder groehlen
Liebesschwuere. Der Pfoertner, der aus der Tuer kam, wird sicher noch seinen
Enkeln davon erzaehlen :)

Die Massen draengen sich schliesslich immer enger und die inzwischen auch
eingetroffene Polizeistreife grinst breiter als Catweazle beim Loeschen
stoerender Charaktere. Wieder geht die Tuer auf, wieder werden Bilder wie wild
verschossenund wieder gibt es einen gluecklichen Chauffeur mehr auf dieser
Welt. Bei dieser Aktion kommt es dann in der ersten Reihe auch zum ersten
Astmaanfall und zu 2 weiteren Kreislauffreudespruengen, aber alles kein
Problem... der Securityman hat schliesslich ahnung und da er weiss, dass VIVA
keinen Sani hat, zuckt er nur mal mit der Schulter und dreht ab :)

Schliesslich kommt dann doch ein RW und der hatauch alle Hand zu tun. Die Boys
sind endlich angekommen und das Chaos bricht aus... heisse feuchte Koerper
schmeissen sich vor und auf Autos und scheiben werden fast eingeschlagen...
Plueschtiere werden geworfen, um dann ueberfahren zu werden, genauso wie der
linke Fuss eines Maedels (was stellt die den auch da hin). Direkt neben mir
sackt auch eine zusammen und ich ueberlege mir, ob ich sie beatmen soll ( ;)
), oder ob ich mit einem gezielten Tritt den IQ in Deutschland etwas anhebe.

Fazit der ganzen Sache... Keine hat die Jungs richtig gesehen, 8
Kreislaufzusammenbrueche, ein Dicker Fuss, eine Astmaleiche und ein Meer von
Traenen..... Ach wie schoen ist doch die Welt.

Yantro von der Front.

-----------------------------------------------------------------------------



Gene Roddenberrys Asche (Grimmborn, 23. Apr 1997, 18:00:27):
~#! on=Yendi ot=861706878 og=schmarrn


Sacht maaal...

... Gene Roddenberry will sich doch jetzt im All begraben lassen. 
(Oder sagt man "beraumen"?) Hab ich gelesen, steht angeblich im Testament. 
Seine Asche, oder jedenfalls ein Teil davon, soll also eingedost und von 
einer Rakete in die Umlaufbahn geschossen werden. War ja letztens so ein 
Unternehmertyp in der Zeitung mit nem Bild von so einer Mini-Urne, 
lippenstiftgross, das Teil. Vielleicht war die Asche ja auch schon in 
dieser spanischen Flugzeugrakete drin, ich hab da nicht so aufgepasst.

Jedenfalls, ich bin da so ins Gruebeln gekommen...
Gene Roddenberry war ja der Erschaffer von "Raumschiff Enterprise".
Tolle Serie, hat ja Generationen von Fernsehern, also Fersehzuschauern,
also uns halt, fuer die Raumfahrt begeistert. Unendliche Weiten, und so.
Wahrscheinlich haben die meisten Astronauten schon seit fruehester Kindheit
davon getraeumt.

So, und jetz stellt euch mal vor: Da schraubt irgend so ein amerikanischer
Weltraumheld an einem dummen Satellitensonnensegel rum, und dann geht ihm
mit einem Mal die Asche von Gene Roddenberry durch den Kopp, mit so ungefaehr
500 Kilometern pro Sekunde.
Das hinterlaesst schon einen bleibenden Eindruck, so eine Begegnung mit dem 
Idol der Kindertage...

Da muesste sich der gute Gene eigentlich im Grab umdrehen.
Wenn er denn eins haette.


Naja.
War ja nur so ne Idee von mir.
Ich geh dann jetz StarTrek gucken...


   Yendi



-----------------------------------------------------------------------------



Re: Gene Roddenberrys Asche (Lacrimosa, 23. Apr 1997, 19:01:54):
~#! rn=Grimmborn rt=861811227 rg=kultur
~#! tid=861811227
Ja die urne schwebt dort oben jetzt rum, und landet im Gehirn von dem Ami
und der schreibt das Drehbuch zu Star Trek - The next Deep Voyager Generation
oder so. Wer weiss das schon.

Lacrimosa, der 'classic' (tos) am besten findet.
,

-----------------------------------------------------------------------------



Mal ne Frage... (Engywuck, 26. Apr 1997, 19:33:15):
...kennt sich hier jemand mit dem Spiel "Evocation" aus? Bisher bin ich ueber
das erste Bild noch nicht hinausgekommen. Fuer nen kleinen Tip waere ich doch
echt dankbar...

Bye, Engy*

-----------------------------------------------------------------------------



ebend gelesen (Lacrimosa, 28. Apr 1997, 11:24:26):

Dies irae, dies illa
Solvet saeclum in favilla
Teste David cum Sybilla

Quantus tremor est futurus
Quando iudex est venturus
Cuncta stricte discussurus...

-----------------------------------------------------------------------------



Runrig vor Aufloesung? (Lug, 16. Mai 1997, 22:20:20):
Moin,

da ich weiss, dass einige Runrgi Fans hier sind: Donnie Munro steigt nach 22
Jahren aus. Es soll 3 Abschiedskonzerte in Schottland im Sommer geben. Ob das
die Band aufloest, war nicht in Erfahrung zu bhringen. Quelle: The New
Scotsman.

Schnueff
Lug

-----------------------------------------------------------------------------



Re: ebend gelesen (Anthea, 17. Mai 1997, 00:44:11):
~#! rn=Lacrimosa rt=862219466 rg=kultur
~#! tid=862219466
klingt irgendwie nach Carmina Burana.... gruebel... wo habe ich denn den
kompletten text? soll ich den posten? :)

-----------------------------------------------------------------------------



Black Metal (Lug,  7. Jun 1997, 02:07:27):

Moin,

fuer die Freunde haertere Toene (wer das nicht fuer Kultur haelt, hat selber
Schuld) hier 2 Anspieltips:

1) Die neue Emperor "Anthems to the Welkin at Dusk". Perfekter norwegischer
Krach. Wer gedacht hat, dass sich "Tales of the Nightside Eclipse" nicht mehr
steigern liesse, darf sich positiv getaeuscht sehen. Zu komplett ueberladenen
Stuecken gesellt sich nun noch Struktur. Ueberrraschend ruhige Klaenge stehen
im Wechsel zur Emperor-typischen Raserei. Grandios.

2) Dimmu Borgir "Enthrone Darkness Triumphant". Wer Emperor mag wird auch von
diesen Norwegern begeistert sein. Glasklare Kompositionen, die Haerte, Stille,
Laerm und Gefuehl vereinen. Anhoeren.

Lug

-----------------------------------------------------------------------------



Horst Horstmann (Lug, 15. Jun 1997, 05:49:40):
Moin,

heute ein Zitat eines grossen deutschen Dichters:

"Tage sind eigentlich wie Naechte. Nur nicht so spaet!"
             Onkel Hotte

Gruss
Lug

-----------------------------------------------------------------------------



Re: Horst Horstmann (Caradhras, 16. Jun 1997, 17:05:27):
~#! rn=Lug rt=866346580 rg=kultur
~#! tid=866346580
Is' das derjenige, welcher auch immer in der Deutsche Bundesbahn-
Werbung auftaucht? 'Hotte? Du in Hamburg??'

                Bergchen Caradhras

-----------------------------------------------------------------------------



Re: Re: Horst Horstmann (Grimmborn, 16. Jun 1997, 18:54:20):
~#! rn=Caradhras rt=866473527 rg=kultur
~#! tid=866346580
Nein, das ist was sexistisches. Du weisst schon, "Holz vor der Hotte haben"...

GdA

-----------------------------------------------------------------------------



Re: Re: Horst Horstmann (Lug, 16. Jun 1997, 19:36:03):
~#! rn=Caradhras rt=866473527 rg=kultur
~#! tid=866346580

Lieber Cara,

da Du in der suedlichen Finsternis haust, kannst Du nicht wissen, dass es sich
um Onkel Hotte handelt (alias Oliver Kalkhofe). Das hat nix mit der *#!-DB AG
zu tun ;)

Gruss
Lug

-----------------------------------------------------------------------------



Re^3: Horst Horstmann (Hobo, 17. Jun 1997, 13:04:14):
~#! rn=Lug rt=866482563 rg=kultur
~#! tid=866346580
Kalkofe hat ueberigens auf Premiere ne Sendung, nennt sich Kalkofes
Mattscheibe, tut das, was Kalke immer macht (ueber andere herziehen) und
laeuft unverschluesselt (!) um 20:00 am Sonntag plus Wiederholung am Montag
oder Dienstag.

Falls es jemand noch nicht wusste.....

Aehm, ja, und ist ueberigens sehenswert.
Vince, Mua, wann ist die naechste Kalke-Nacht?

Hobo

-----------------------------------------------------------------------------



Re^4: Horst Horstmann (Stahldorn, 17. Jun 1997, 13:15:10):
~#! rn=Hobo rt=866545454 rg=kultur
~#! tid=866346580
Aehm... ich wusste nicht dass der noch was anderes macht, als die Mattscheibe?

STAHL.

-----------------------------------------------------------------------------



Re^5: Horst Horstmann (Boing, 17. Jun 1997, 13:16:48):
~#! rn=Stahldorn rt=866546110 rg=kultur
~#! tid=866346580
Er ist im Radio taetig, unter anderem als 'Onkel Hotte' beim Berliner
Radiosender Fritz. Ausserdem hat er noch ein paar CDs als Onkel Hotte
rausgebracht.
  Boing

-----------------------------------------------------------------------------



Re^6: Horst Horstmann (Taz, 17. Jun 1997, 13:19:00):
~#! rn=Boing rt=866546208 rg=kultur
~#! tid=866346580
Jupp, jeden Sonntag von 1200-1400 auf Fritz (kommt auch ueber Satellit).

Anakin.

-----------------------------------------------------------------------------



Re^7: Horst Horstmann (Hobo, 17. Jun 1997, 13:22:20):
~#! rn=Taz rt=866546340 rg=kultur
~#! tid=866346580
Ausserdem ist er mit dem Fruehstyxradio auf Tour dieses Jahr....

Hobo

-----------------------------------------------------------------------------



Re^8: Horst Horstmann (Rantanplan, 17. Jun 1997, 13:24:21):
~#! rn=Hobo rt=866546540 rg=kultur
~#! tid=866346580
Ueber Satellit aber nur wenn man nen ADR (Astra-Digital-Radio) tauglichen
empfaenger hat fuer Fritz.

Und zusaetzlich macht der noch "Kalkofes letzte Worte" in der TV-Spielfilm,
die kann man aber auch auf der
WWW-Seite von TV-Spielfim (http://www.tvspielfilm.de) lesen.

Oe*

-----------------------------------------------------------------------------



Re^9: Horst Horstmann (Lug, 17. Jun 1997, 17:47:48):
~#! rn=Rantanplan rt=866546661 rg=kultur
~#! tid=866346580

Aehem,

Kalkofe ist unter anderm: Onkel Hotte, Guergen der Ferkelwaemser, Himself in
der Mattscheibe und vieles mehr. Wo? Natuerlich im Fruehstyxradio von FFN
(Niedersachsen). Sorry Leute, aber Radio Fritz ist nur Zweitververter, auch
wenn jetzt einige geschockt sein moegen. Darum gibts auch nen kostenlosen
Katalog mit dem Programm des Fruehstyxradios bei:
Fruehstyradio
Mailorder
Postfach 15 02 91
28092 Bremen
Fax: 0421-380 80 70

Da gibts neben Onkel Hotte CD's auch noch die Kalk und Welk CD (mit mehreren
Figuren aus dem Schaffen von Oliver kalkhofe und Oliver Welke, u.a. auch
Mattscheibe), dazu noch Niedersaechsische Spezialitaeten, wie Guenther der
Treckerfahrer, Frieda und Annelise, DIe Arschkrampen etc. von Dieter
Wischmeyer, dem Gruender des Fruehstyxradios. Kalki kam erst spaeter als
Praktikant hinzu. Wenn die Gerschichte interessiert, der sollte das Booklet
der 3-CD Droehnung lesen, der letzten Sonntagmorgensendung. Das erklaert warum
es in bayern Aufstaende gab als nur eine einzige Episode gesendet wurde, ein
Intendant ueber die Sendung stolperte, wer es machte und wie es zustande kam.
Pech fuer die Vertreter der radio Fritz Theorie. Aber Ihr hattet eh Pech, habt
naemlich nie das Ganze Fruehstyxradio zu hoeren gekriegt, ich glaube den
kleinen Tierfreund ham sie Euch noch gegoennt, oder? Das ist uebrigends
Wischmeyer.

Soooosiehdas aus! *Goebel*
Lug.

-----------------------------------------------------------------------------



Computerfreaks Teil 1 (Dhojakt, 18. Jun 1997, 01:33:55):
So, ich hab mal nen alten Artikel aus der MC ausgegraben, weil der aber etwas
laenger ist, hab ich ihn dreigeteilt.
Khidar.

***** Computerfreaks - nach Johannes Leckenbusch *****
Dass sie was im Kopf haben, die Computerleute, wird jeder zugestehen. Ob
aber einer, der naechtelang am Bildschirm hockt, statt ins Wirtshaus oder
zum Tanzen zu gehen, da oben ganz richtig ist, wird von den lieben
Mitmenschen gern bezweifelt. Fachkollegen bezeichnen manche Mitbrueder als
Hacker, die mangels Kontaktfaehigkeit den Umgang mit dem elektronischen
Gegenueber anderen Menschen vorziehen. Sie sind aber sehr wohl gesellig, und
am Computerstammtisch wird auch alljaehrlich gefragt, wer mit wem zum
Skifahren verreist. MC beleuchtet ihr naechtliches Treiben.
"Unermesslich vielfaeltig sind die Arten der Erdenwesen. Daraus aber ragt
der Mensch hervor, der die Sprache erfunden hat, die so vielseitig ist, dass
man keine zwei findet, welche ein und dieselbe sprechen." - Prof. Ungruen.
Hier will ich von den Spezies der Computerfreaks berichten, deren Sitten
sehr eigenartig sind (mit Erlaeuterung aller belangvollen Fremdworte). Wer
von den Computerfreaks kein eigenes System laufen hat, wer nicht tief in der
Hardware wuehlt, gilt bei ihnen wenig (So ist auch meine Situation unter
ihnen sonderbar, weil ich meinen Computer nicht selbst gebaut habe). Sie
werden beherrscht von dem Gedanken, jedes technische Problem loesen zu
koennen, und das mit Leichtigkeit und in kurzer Zeit. (Ein System ist alles,
was keines hat, Hardware das, was beim runterfallen klappert, und Software
das, wovon man logisch erklaeren kann, warum es nicht funktioniert. Nicht zu
verwechseln mit dem Problem, herauszufinden, warum man sie nicht zum
Funktionieren bringt, diese Frage ist ungeloest.) Sie sammeln (meist
abgekupferte, in Ausdruck, den ich hier nicht naeher erlaeutern will)
Software, aber den Meisten bedeutet die hoehere Software wenig. Ihre Domaene
sind die Bits und Bytes, die Controller und schnellen RAM's. Viele wollen
grosse Geschaefte machen, wozu sie sich persoenlich ausersehen fuehlen. In
der Regel sind sie Einzelkaempfer, wiewohl sie auf eine gewisse Art
zusammenhalten. (Bits und Bytes sind das, was zwischen Soft- und Hardware
steht, Controller und RAM's unterscheiden sich nicht: schwarze Kaefer mit
einer geradzahligen Anzahl in Doppelreihe angeordneter spitzer
Drahtfuesschen).

***** Familienleben und Stammtisch *****
Manchmal haben sie puritanische Neigungen, zum Beispiel hinsichtlich
hoechstqualitativer Disketten, deren Label (Etikett) sie, wenn ueberhaupt,
nur zart in jungfraeulicher Bleistiftschrift entweihen (wodurch ich schon
mal eine mir ueberlassene Diskette irrtuemlich geloescht habe - aber das ist
eine andere Story). (Ich nehme an, sie wissen, was ein Bleistift ist.
Disketten sind schwarze Scheiben, auf denen angeblich etwas in magnetischer
Schrift geschrieben ist, was aber unsichtbar und manchmal aus unbekannten
Gruenden auch mit dem Computer nicht zu lesen ist. Wenn man sie knickt, auf
Magnete oder in die Sonne legt, wird man ohne Kommentar umgebracht.)
Die Beziehung der Computerfreaks zum anderen Geschlecht wirft einige Fragen
auf, vergleichbare gibt es hoechstens bei HIFI-Enthusiasten, die um
groessere Boxen kaempfen, und das Recht, sie nicht hinter dem Vorhang
verstecken zu muessen. Doch es ist anders, sie breiten ungehindert ihre
Platinen und IC's in der Wohnung aus - weiss der Teufel, warum Eva das
zulaesst. Verstehen tut sie nichts davon. Vielleicht aber gerade deshalb,
denn die Frauen klagen die Maenner wegen allerlei unvernuenftiger Dinge an,
zum Beispiel weil sie Kriege fuehren, verhindern tun sie doch nur, was sie
verstehen. Jedenfalls sind Leute, die solche Annoncen aufgeben: "Wegen
Heirat Computersystem zu verkaufen", keine ganzen Maenner. Wenn
Computerfreaks zusammenkommen, dann nicht ohne meterlange, gefaltete
Listings (das sind Papierfahnen, die von einem graesslich ratternden
sogenannten Drucker ausgespieen werden, welche am Computer haengen. Das ist
uebrigens der Grund, warum der Rest der Familie nachts nicht schlafen kann
und diese dunklen Ringe unter den Augen hat - abgesehen davon, dass
Computerfreaks zwischen 23 und 2 Uhr morgens auffallend viele Telefonanrufe
oder Besuche erhalten, falls sie nicht um dieselbe Zeit beim Stammtisch
sind). Sie haben auch grosse Kisten bei sich, in denen sie sich Buecher,
Geraete oder irgendwelche Platinen mitbringen. Sie lieben es
ausserordentlich, sich etwas Gedrucktes mitzubringen. (Platinen sind so
Brettla (schwaebisch: fuer gedruckte Schaltung, Platine) mit Leiterbahnen
darauf, auf ihnen befinden sich die schon beschriebenen Kaefer, wobei es vor
allem wichtig ist, wie duenn und eng die Leiterbahnen (die silbrigen
Striche) sind, das nennt man Packungsdichte und es ist sehr wesentlich, weil
der Computer daraus besteht.) Dabei wechseln innerhalb eines Clubs oder
Stammtisches die Standards - frueher fachsimpelte man ueber
Kasetteninterfaces (da hoerte man es sehr schrill zirpen, wie von einer
Grille, die die Schallmauer durchbricht), dann ueber grosse, spaeter ueber
kleine Diskettenlaufwerke. (Sie muessen sich die Masze 8 und 5 1/4 Zoll
merken, wenn sie mitreden wollen. In die Laufwerke schiebt man die genannten
schwarzen Scheiben und sucht die Ursache dafuer, dass man sie nicht lesen
kann.)


-----------------------------------------------------------------------------



Computerfreaks Teil 2 (Dhojakt, 18. Jun 1997, 01:34:31):
***** Das treibt sie an *****
Typischerweise werden grosse Projekte ins Auge gefasst, die nie realisiert
werden (sowas duerfen sie aber nicht laut sagen!), dennoch gibt es einen
eindeutigen und ueberraschenden Fortschritt, denn diese Projekte bauen ja
auf den frueheren Projekten auf. Man kann das nicht verstehen, wenn man
nicht einsieht, dass in der Computerei vor Allem der abstrakte Entwurf
zaehlt. Die Philosophie des Computerfreaks ist in gewisser Weise durch Prof.
Ungruens Satz zu charakterisieren: "Nichts ist langweiliger als ein
Programm, dass endlich fehlerfrei laeuft". Das muss wohl auch auf die
Hardware zutreffen. Sie haben ein sehr grosses Talent, diesen traurigen
Zustand nie eintreten zu lassen, aber sie glauben, dass sie permanent mit
aller Kraft versuchen, diese Situation zu ueberwinden. Sie unterhalten sich
in einer Weise, dass ein gewoehnlicher Sterblicher bei jedem zweiten Wort
nicht weiss, wo er nachschlagen koennte - es ist ja auch nicht sicher, dass
sie sich gegenseitig verstehen. Wenn drei sich unterhalten, kann mindestens
einer nicht ganz folgen, weil er sich mit einem anderen Spezialgebiet
befasst. Mit grosser Leidenschaft diskutieren si ueber Programmiersprachen,
deren Compiler sie sammeln (und auswendig wissen, wie schnell dieselben
uebersetzen), aber man kann davon ausgehen, dass sie keine einzige dieser
Sprachen wirklich beherrschen (wenn doch, handelt es sich gewiss um BASIC
oder FORTRAN), ausgenommen natuerlich die Assemblersprache ihres Prozessors
(sie gruppieren sich immer um Prozessoren). (So viele Begriffe - also
Compiler sind Programme, die Programmiersprachen in andere
Programmiersprachen uebersetzen, was ungeheuer nuetzlich ist, vor allem,
weil man ja auch die Compiler in irgend einer Sprache schreiben muss - aber
das ist vielleicht zu hoch. Mit Assemblern (die auch uebersetzen) macht man
Programme fuer den Menschen unleserlich, woraus die Computerfreaks eine
ausgedehnte Freizeitbeschaeftigung schoepfen. Sie versuchen vor allem, die
Programme aus der Maschinensprache wieder rueckzuuebersetzen, um bequemer zu
sehen, wie miserabel sie geschrieben sind und sie anschliessend grundlegend
zu verbessern (manchmal tun sie das auch, ohne die Programme
rueckzuuebersetzen, sie denken also direkt in der Logik der Maschine, was
grosse Askese erfordert, von ihnen aber lustvoll erlebt wird). Ein Prozessor
ist das, was eigentlich die ganze Arbeit tut, falls der Computer doch mal
funktionieren sollte.)

***** Das sind ihre Sprachen *****
Bei den Programmiersprachen gibt es Modestroemungen, die ungefaehr mit den
Jahreszeiten wechseln. Man bevorzugt esoterisches wie "C" oder "LISP" bzw
handfestes (FORTRAN, COBOL), aber eigentlich gibt es fuer jede Sprache
(PL/1, FORTH) jemanden, der alles uebrige als Quatsch abtut. Was sich gemein
und wichtig macht, wie ADA, ist schon nicht mehr interessant. Und PASCAL -
also wenn sie mich fragen, es wird viel zu wenig verstanden... Uebrigens
gibt es innerhalb einer Programmiersprache mehr Dialekte als zwischen Zella
Mehlis und der Hauptstadt, woran man die kulturelle Vielfalt dieser Seite
unserer Zivilisation ablesen kann. Bisweilen kommt es vor, dass sie ueber
geheimnisvolle Dinge in homerisches Gelaechter ausbrechen (nicht mitzulachen
ist ein Zeichen mangelnder Intelligenz), zum Beispiel ueber einige
Assemblerstatements oder die Schaltung eines Datenseparators - ihre Zunft
scheint eine neue Art von Komik zu kreieren. (Hier muss ich passen - Witze
kann man nicht erklaeren, auch nicht Computerwitze - man versteht's halt
oder eben nicht!) So ist ihr Gebiet alles andere als trocken, es lebt,
System und Software, die nicht laufen wollen, sind eine spannendere
Herausforderung als ein Dschungelabenteuer. Es waere auch voellig verfehlt,
sie als Fachidioten oder einseitige Tueftler anzusehen... Ihre Interessen
scheinen so vielfaeltig, ihre Vorlieben so unterschiedlich zu sein wie die
Sitten verschiedener Voelker.


-----------------------------------------------------------------------------



Computerfreaks Teil 3 (Dhojakt, 18. Jun 1997, 01:35:01):
***** Ordnung: Chaos mit System *****
Haeufig haben sie auch sonst einen ausgefallenen, gehobenen Geschmack, was
Kunst, Musik, Literatur betrifft, eine Neigung zum Surrealismus oder
Kubismus (vor allem bei den Gehaeusen) ist nicht selten, dagegen findet man
kaum Gartenzwerge. Auffaellig ist die in hoeherem Sinne bestehende
Aehnlichkeit ihrer Wohnungen und Zimmer. Diese sind niemals unpersoenlich,
wie vielleicht bei Technokraten oder bei Angestellten. Manche sammeln
Antiquitaeten, zum Beispiel Volksempfaenger oder Kernspeicher. Im Umfeld
findet man LASER-Freaks. Natuerlich herrscht im engeren Aufenthaltsbereich
die Technik vor: Man sieht in jedem Fall einen oder mehrere Bildschirme
(eventuell auch alte Fernseher), diverse Tastaturen und aeltere Essensreste
herumliegen. Vorzugsweise stecken irgendwo Platinen. Je nach Temperament ist
alles Drahtige hinter Frontpaneels verborgen (die anderen Frontplattenfreaks
sind die HIFI-Enthusiasten) oder es schlingen sich lianengleich
Kabelpipelines durchs ganze Zimmer. Die Regale an den Waenden reichen
grundsaetzlich nicht aus, um die Ordner mit Disketten und Handbuechern zu
fassen, auf dem Tisch und am Boden sieht man weitere Stapel, dazu Platinen
(mit oder ohne Kaefer, haeufig offenbar nur teilweise besetzt), Vorraete an
Draht und Papier, Loetkolben, Oszilloskope und, daran kann man sie eindeutig
von den Radiobastlern und Amateurfunkern unterscheiden: Drucker.
Irgendwelche geoeffneten, demontierten oder aber im Aufbau (oder in beiden
Stadien gleichzeitig) befindlichen Geraete sind angezeigt. In extremen
Faellen gleicht das Gelaende einem Kampfgruppenuebungsplatz im Endstadium,
es tuermen sich mehrere Monatsschichten Zeitschriften, Buecher,
Schraubenzieher, Unterhosen, Bohrmaschinen, Feilen, Gehaeusebauteile,
Einkaufsbeutel und Geraete nicht unter der 1000-M-Klasse zu einem Dschungel,
in dem staendig etwas gesucht wird (vorzugsweise banales Werkzeug wie
Schraubenzieher, dessen Verlust die Arbeit stundenlang aufhaelt).

***** Ringen um Perfektion *****
Es ist fuer den Unverstaendigen schwer zu begreifen, woran sie eigentlich
arbeiten. Befragt man sie, so erhaelt man uebrigens detaillierte und
geduldige Auskunft darueber, dass sie an etwas arbeiten, was die
unabdingbare Voraussetzung fuer ein anderes Vorhaben ist, das vielleicht
seinerseits nur Mittel (zu welchem???) Zweck ist. Nie findet man sie mit
etwas Endgueltigem beschaeftigt, ja es scheint die Essenz ihres gesamten
Strebens zu sein, dass sich alles im Fluss befindet. Vielleicht hat ihr
Hobby ueberhaupt keinen Zweck, und ist somit das Edelste ueberhaupt, sie
arbeiten unermuedlich fuer etwas, das sie nie erreichen, dem sie nicht
einmal nahekommen, ein Zustand endloser Glueckseligkeit! Ihr Wissen ist
immens, sie beherrschen unzaehlige Kniffe, deren Sinn einem Uneingeweihten
verschlossen bleibt, vor allem aber veraendern und verbessern sie
Betriebssysteme und Geraete. (Betriebssysteme sind das, worueber sich Laien
am Computer am Meisten aergern, weil es sie hindert, zu erreichen, was sie
eigentlichg wollen, als sie sich an die Tastatur setzten.) Staendig kaempfen
sie gegen den Mangel an Perfektion, die sie doch nie erreichen. Scheinbare
Perfektion vertuscht den Umstand, dass alles in der Computerwelt
unvollkommenes Menschenwerk ist. Was dem Normalbuerger an seiner
Stromrechnung als boeser Auswuchs der Computerei erscheint, ist ja nur die
Unfaehigkeit beamteter Programmierer - aber das versteht die Oeffentlichkeit
nicht, dass der Computer ein reines, unschuldiges Werkzeug ist, dem wir nur
nicht gewachsen sind, weil wir nicht praezise genug denken koennen, um ihn
anzuweisen. Es ist ueberhaupt kein Problem, in einer Zehntelsekunde durch
einen unbedachten Tastendruck das Werk von Stunden, Tagen oder gar Monaten
zunichte zu machen. Es erstaunt, dass oft Computer und Programme fuer teures
Geld verkauft werden, die niemals vollstaendig funktionieren. Immer gibt es
Spezifikationen, die unerfuellt bleiben, die Anzahl nichterfuellter
Eigenschaften ist groesser als das menschliche Vorstellungsvermoegen. Man
fragt sich, was geschaehe, waere all das vollkommen. Vielleicht darf dieser
Zustand einfach nicht eintreten, weil es dann nichts mehr zu gruebeln
gaebe...


-----------------------------------------------------------------------------



Re: Computerfreaks Teil 3 (Murkes, 20. Jun 1997, 09:43:50):
~#! rn=Dhojakt rt=866590501 rg=kultur
~#! tid=866590501
Ich hasse ellenlange dreiseitige Artikel!
Grimmborn, walte deines Amtes
Nein nicht die Artikel davor, sondern meinen...
. Murkes

-----------------------------------------------------------------------------



Liedtext (Grimmborn, 20. Jun 1997, 13:19:09):
Hier mal ein Beispiel fuer das Niveau von... ja, was ist es? Fun Punk? Schwer
zu sagen. Die typos sind original, nicht von mir.

Julia und die Raeuber
---------------------

Blut Blut Reuber Saufen Blut
Raub und Mort und
Ueberfal sind gut Hoch
fom galgen klingtes fom
galgen klingtes Raub
und Mort und Uber
fal sint gut
(Subway to Sally)

Grimmborn der Atheist
P.S. Ja, Zardoz, Du bekommst die Platte wieder...

-----------------------------------------------------------------------------



Re: Liedtext (Kartoffel, 21. Jun 1997, 12:04:40):
~#! rn=Grimmborn rt=866805549 rg=kultur
~#! tid=866805549

Hmm Grim*, schau doch mal ,was bei dem Lied zu dem Thema (Text/Musik) steht,
da wirst Du dann feststellen, dass da 'trad.' steht :)
Und zu den Typos: Ich find die passen ziemlich gut zum Alter der Saengerin des
Liedes (sehr viel aelter als 7 duerfte die der Stimme nach nicht sein).

Kartoffel - findet das Lied absolut genial (und nicht nur das)

-----------------------------------------------------------------------------



Re: Re: Liedtext (Wurzel, 22. Jun 1997, 02:54:15):
~#! rn=Kartoffel rt=866887480 rg=kultur
~#! tid=866805549
und alt ist das auch... das mit dem "trad." stimmt wohl, ich kenn das noch
als kinderlied, und das war lange bevor jemand was mit dem wort punk 
anfangen konnte :)

wurzel

-----------------------------------------------------------------------------



Fruehstyxradio (Lug, 25. Jun 1997, 02:58:08):

Gerade erinnert mich Grauwolf an einen Dialog zwischen Guergen und Kurt:

Guergen: "Aeh, deine Hose ist auf und da haengt was raus."

Kurt: " Kopp zu Totgeburt! Das ist der Wurm. Er will frei sein, er will
atmen!"

Blubbernd
Lug

-----------------------------------------------------------------------------



Fuer einen gelangweilten Caradhras (Lug, 26. Jun 1997, 01:57:52):

Besitz stirbt,
Sippen sterben,
du selbst stirbst wie sie;
doch Nachruhm
stirbt nimmermehr,
den der Wackre gewinnt.

Besitz stirbt,
Sippen sterben,
du selbst stirbst wie sie;
eins weiss ich,
das ewig lebt:
Des Toten Tatenruhm.

Aus den Havamal (Lieder des Hohen = wohl Odin gemeint?) in der Genzmer
"Nachdichtung". Uebersetzung kann man das nicht nennen, aber schoen.

Lug

-----------------------------------------------------------------------------



Nun fuer Caradhras (Lug, 26. Jun 1997, 02:11:56):

Uebersetzungen nordischer Literatur:

Snorra-Edda:

G. Neckel, Die juengere Edda (Duesseldorf 1966).
->Naja, recht veraltet
Snorri Sturluson. Prosa-Edda. Altislaendische Goetterdichtung. Uebersetzung
und KOmmentar von A. Haeny (zuerich 1990).
-> Modern, aber der Uebersetzer hat ein paar sehr eigenwillige Ansichten.

Lieder-Edda

F. Genzmer, Die Edda (5. Aufl., 1984 Koeln).
-> Nachdichtung. Sprachlich sehr schoen, aber keine genaue Uebersetzung.

A. Haeny, Die Edda (Zuerich 1987).
_> Siehe oben.

Und:

Snorri Sturluson, Gylfaginning. Texte. Uebersetzung, Kommentar von G. Lorenz
(Darmstadt 1984).
-> Die mythologisch besonders wichtigen "Taeuschungen Gylfi's", einem Teil der
Snorra-Edda, in einer hervorrangen Ausgabe. Ein grosser Fundus an
weiterfuehrender Literatur. Waermstens empfohlen.

P.S.: Es gibt noch von mir eine Einfuehrung in die Nordische Mythologie von
mir. Naja.

Gruss
Lug

-----------------------------------------------------------------------------



Und nochwas (Lug, 26. Jun 1997, 02:16:30):

Fuer Uebersetzungen von nordischer Saga-Literatur, empfiehlt sich nach wie vor
ein Blick in die (recht alte) Sammlung Thule. Hoechste zeit fuer eine
Neubearbeitung und Uebersetzung des Materials (ich nicht ;).

Lug

-----------------------------------------------------------------------------



Re: Und nochwas (Caradhras, 26. Jun 1997, 02:23:53):
~#! rn=Lug rt=867284190 rg=kultur
~#! tid=867284190
*huepf* *traeller* Mal suchen gehen...
Dafuer wird mein naechstes Rezept fuer Fischsuppe a la Andi aeeeeeh
Caradhras dann Dir gewidmet werden... perfekt ist sie noch nicht,
also die Fischsuppe... vor allem die Knoblauchmayonaisse will noch
nicht so gelingen wie sie soll.

        Bergchen Caradhras *huepf*     

-----------------------------------------------------------------------------



Re: Re: Und nochwas (Har, 26. Jun 1997, 09:46:49):
~#! rn=Caradhras rt=867284633 rg=kultur
~#! tid=867284190
Kknoblauchmayonnaise....ganz einfach mit einem elektrischen Kuechenhilfsmitte,
dasss ich fuer DM 28.- im Mediamarkt (stark!) erworben habe...bei Fragen ->
Mail


Har

-----------------------------------------------------------------------------



Re: Und nochwas (Grimmborn, 26. Jun 1997, 15:46:04):
~#! rn=Lug rt=867284190 rg=kultur
~#! tid=867284190
Zitat Lug:
P.S.: Es gibt noch von mir eine Einfuehrung in die Nordische Mythologie von
mir. Naja.

Naja, fuer eine Einfuehrung in deutsche Sprache und Satzbau hats dannn
offensichtlich nicht gereicht. :-)

Grimmborn der Atheist ist fast 1500 Jahre weiter, bestaunt allerdings immer
wieder, was Linguisten alles rauskriegen. Man muesste mehr Zeit haben...

-----------------------------------------------------------------------------



Re: Re: Und nochwas (Lug, 26. Jun 1997, 19:17:17):
~#! rn=Grimmborn rt=867332764 rg=kultur
~#! tid=867284190
Na und?

Die Einfuehrung ist orthographisch korrekt. Was hier steht ist egal.

ZUck
Lug LUg lUg luG

-----------------------------------------------------------------------------



Re^3: Und nochwas (Grimmborn, 26. Jun 1997, 19:39:21):
~#! rn=Lug rt=867345437 rg=kultur
~#! tid=867284190
Jepp, besser haette ich das auch nicht ausfuehren koennen:
Was von Lug hier steht ist egal.

Grinsend,
          Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^4: Und nochwas (Lug, 26. Jun 1997, 20:35:14):
~#! rn=Grimmborn rt=867346761 rg=kultur
~#! tid=867284190

Also ich wuerde sogar sagen:

Scheiss die Wand an! Das ist mir doch egal. Sowas von egal ist das sogar ;)

Kurt zitierend
Lug

-----------------------------------------------------------------------------



Jam Seite (Wulfere, 28. Jun 1997, 06:03:03):
Na hier ist eine Traumseite, aber dafuer brauchst du
'RealAudio'

*  http://eyes.jeffdell.com/real.html

Hippiefreak Wulfere

-----------------------------------------------------------------------------



Picket Fences (Guldukat,  1. Jul 1997, 18:16:40):

Hallo Picket Fences Fans!

Picket Fences laeuft wieder auf schrott 1 und zwar hat schrott 1 kurzfristig
pacific drive abgesetzt (werktags 1600) und zeigt stattdessen jetzt die 4.
staffel (alles neue folgen)
GD

-----------------------------------------------------------------------------



Re: Picket Fences (Asmodis,  1. Jul 1997, 21:39:11):
~#! rn=Guldukat rt=867773800 rg=kultur
~#! tid=867773800
Find ich gut, pazific drive war ja das Letzte, Picket Fences kann
man sich wenigstens anschauen :)

-----------------------------------------------------------------------------



Hmm... (Grimmborn,  2. Jul 1997, 10:49:11):
After a while you learn the subtle difference
Between holding a hand and chaining a soul,
And you learn that love doesn't mean security,
And you begin to learn that kisses aren't contracts
And presents aren't promises
And you begin to accept your defeats
With your head up and your eyes open,
With the grace of a woman, not the grief of a child,
And you learn to build all your roads
On today because tomorrow's ground
Is too uncertain.  And futures have
A way of falling down in midflight,
After a while you learn that even sunshine burns if you get too much.
So you plant your own garden and decorate your own soul, instead of waiting
For someone to bring you flowers.
And you learn that you really can endure...
That you really are strong,
And you really do have worth
And you learn and learn
With every goodbye you learn.
                -- Veronic Shoffstall, "Comes the Dawn"

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Re: Picket Fences (Cauno,  2. Jul 1997, 13:41:35):
~#! rn=Asmodis rt=867785951 rg=kultur
~#! tid=867773800
Nur leider nicht um die Zeit. Ich hab die Serie sehr gemocht.
Aber wenn Sch*.1 denkt, jeder guckt anscheinend nur ihren Sender und kriegt
somit jede Programmaenderung gleich mit, dann koennen sie mich mal.
Ich nehms ihnen immer noch uebel, was sie mit Star Trek anstellen.

Davon abgesehen zeigen die sowieso erst noch die drei Folgen, die sie bisher
verschlampt hatten. Dann kommt die 4. Staffel.

Schade um die Serie, aber ohne mich.

C. No

-----------------------------------------------------------------------------



Re: Picket Fences (Catweazle,  2. Jul 1997, 19:51:14):
~#! rn=Guldukat rt=867773800 rg=kultur
~#! tid=867773800
Cool, Picket Fences war Klasse.
hast Du ne Idee, _warum_ PD abgesetzt wurde (hab nie ne Folge gesehen).

YTC

-----------------------------------------------------------------------------



Re: Re: Picket Fences (Guldukat,  2. Jul 1997, 23:18:09):
~#! rn=Catweazle rt=867865874 rg=kultur
~#! tid=867773800
Noe, keine ahnung, aber wahrscheinlich waren die quoten zu schlecht, mal
schauen was die so hatten. ich hab auch nie ne episode gesehen, sondern
gestern beim zappen auf picket fences gestossen und war von schrott 1 genauso
enttaeuscht, dass das so ploetzlich ins programm genommen wurde (dadurch hab
ich die erste haelfte der neuen episode verpasst).
nun, die gestrige episode war jedenfalls wieder einfach nur sahne, zach hat
gewissensbisse wegen des getoeteten schwans und geht in die kriche zum beten,
da fangen seine haende an zu bluten, die priester denken, es waere ein stigma,
und zach denkt er waere jesus und beginnt andere leute zu segnen, die kids des
dorfs laufen ihm hinterher (wie bei leben des prian)
einfach cool! ;)
naja, die senden jetzt einen monat lang die 4 staffel (und wie cauno schon
gesagt hat, die letzten 3 episoden der 3. staffel,die auch noch nicht in
deutschland gezeigt wurden.)

scheiss schrott 1!!!!!
GD

-----------------------------------------------------------------------------



Re^3: Picket Fences (Conall,  3. Jul 1997, 01:31:18):
~#! rn=Guldukat rt=867878289 rg=kultur
~#! tid=867773800
Huhu,

eigentlich bin ich ja auch Fan von Picket Fences. Fuer amerikanische Serien
mit ungewoehnlich liberalen Tendenzen versehen. Allerdings beim Theismus und
der ghrundsaetzlich negativen Darstellung des Atheismus, kommt mir doch die
Galle hoch ;)

Gruss
Conall

-----------------------------------------------------------------------------



Re^4: Picket Fences (Guldukat,  3. Jul 1997, 12:59:08):
~#! rn=Conall rt=867886278 rg=kultur
~#! tid=867773800
dann haettest du die dienstagsepisode schauen muessen. in anbetracht der
moeglichkeit, dass zach jesus ist, wird dem sheriff naemlich erstmalig klar,
dass er in wirklichkeit die frage nach dem glauben immer verdraengt hat und in
wirklichkeit atheist ist!

-----------------------------------------------------------------------------



Re^4: Picket Fences (Cauno,  3. Jul 1997, 13:00:39):
~#! rn=Conall rt=867886278 rg=kultur
~#! tid=867773800
Na, so positiv stellen die den Theismus aber auch nicht dar.
Wenn ich daran denke, wie sich die beiden Dorfpfaffen immer die Schaedel
einschlagen - es sei denn es geht wirklich darum, die Kirche zu beschuetzen
...
Und gerade diese Extremfaelle zeigen, wie bescheuert die Amis sein muessen -
wenn die wirklich so sind, was ich fast schon glaube.

Was Pacific Drive angeht: Ich hab mal versehentlich fuenf Minuten von der
Serie gesehen. Ich kann mir also denken, warum sie jetzt nicht mehr laeuft.
Nach einer Einleitung, die man schon von diversen Seifenopern kennt, kam dann
ein Vorspann, der ein paarmal das Serienloge abbildete. Danach konnte man
eindeutig sehen, das die Serie komplett im Studio entstanden sein musste - und
wohl mit einer Videokamera gefilmt war. Dementsprechend sah das Meterial aus
...

Mir hats gereicht, um weiterzuflippern.

C. No

-----------------------------------------------------------------------------



Re^5: Picket Fences (Conall,  4. Jul 1997, 01:45:58):
~#! rn=Cauno rt=867927639 rg=kultur
~#! tid=867773800
Hm,

pruegelnde Priester ja, aber sieh Dir die vermittelten Werte in der Familie
an, bisher jedenfalls. Die Tochter hatte Zweifel, aber die Begruendung war
arm. Sie war zornig auf ihren Gott, aber nicht wirklich atheistisch. Schade
Gul, das ich keinen Videorekorder hab und um 16.00 Uhr nicht vorm Fernseher
sitzen kann. Die Dienstag Folge haette mich maechtig interessiert ;) Der
Sheriff ein Atheist? Endlich mal Format ;)
Zaunige Gruesse
Lug

-----------------------------------------------------------------------------



Re^3: Picket Fences (Guldukat,  7. Jul 1997, 20:14:50):
~#! rn=Guldukat rt=867878289 rg=kultur
~#! tid=867773800
quoten

in d.r.tv.misc hat jemand mal die quoten gepostet:

> Pazific Drive    0,38           4,7%        (Montag,    30.6.)
> Picket Fences    0,56           7,1%        (Dienstag,   1.7.)
> Picket Fences    0,55           7,9%        (Mittwoch,   2.7.)
> Picket Fences    0,65           8,6%        (Donnerstag, 3.7.)
> Picket Fences    0,84          10,8%        (Freitag,    4.7.)

nun pazific drive war wohl wiklich ziemlich mies ...
gd

-----------------------------------------------------------------------------



Re^4: Picket Fences (Lug,  8. Jul 1997, 01:30:59):
~#! rn=Guldukat rt=868299290 rg=kultur
~#! tid=867773800
Moin,

und wenn die P.F. rechtzeitig angekuendigt haetten, dann waere die Quote wohl
noch besser. S.HI.T 1 angrummelnd.

Lug

-----------------------------------------------------------------------------



Re^5: Picket Fences (Li,  8. Jul 1997, 10:23:01):
~#! rn=Lug rt=868318259 rg=kultur
~#! tid=867773800
Rechteitige Ankuendigungen auf den Privaten?
Das glaubst du doch wohl nicht oder? Die Mischen und wechseln ihr Programm
doch so, wie sie grade Lust haben. Ich habe einmal eine Folge Roseanne
gesehen, da wurde die ganze Famlie von einen Tag auf den anderen 5 Jahre
juenger, weil ploetzlich, voellig ohne Ankuendigungen, wieder die alten Folgen
liefen...
Li 

-----------------------------------------------------------------------------



Re^4: Picket Fences (Grimmborn,  8. Jul 1997, 10:54:12):
~#! rn=Guldukat rt=868299290 rg=kultur
~#! tid=867773800
Quote=Qualitaet?
Da solltest Du aber lieber nochmal drueber nachdenken...

Grimmborn der Atheist hat einen s/w-Fernseher. Ohne Kabel, ohne Schuessel.

-----------------------------------------------------------------------------



Re^5: Picket Fences (Lug,  9. Jul 1997, 02:00:57):
~#! rn=Grimmborn rt=868352052 rg=kultur
~#! tid=867773800

Also im Vergleich zu Tits-on-bikes (oderwieauchimmerderQuatschhiess) ist
Picket Fences ein Serienmeisterwerk. Nagut, auch im Vergleich mit anderen
Serien.

Eine Pulle Old Smuggler schwenkend
Lug

-----------------------------------------------------------------------------



Re^6: Picket Fences (Cauno,  9. Jul 1997, 12:36:22):
~#! rn=Li rt=868350181 rg=kultur
~#! tid=867773800
Diese Kreiswiederholungen kennt man ja schon von M.A.S.H. auf PRO7 (frueher
mal) und Kabel 1 (jetzt) - Die neueste Staffel ist zu Ende, also zeigt man
wieder die ersten Folgen. Grade bei den Comedyserien hat sich das inzwischen
eingebuergert.

Was mich bisher am meisten angestunken hat, war eine Aktion von Kabel 1:
Die wiederholten naemlich Donnerstags abends den fuenfteiler von James
Micheners "Space". Die ersten beiden hab ich gesehen, als ich den dritten
gucken wollte, kam auf einmal eine boese Ueberraschung: Da lief auf einmal ein
so grottenschlechter Abenteuer/Horrorfilm, dass sogar der
Hardcore-Trashfilmfan das Kotzen gekriegt haette (nicht wegen der Szenen,
sondern wegen der Handlung).
Am naechsten Tag (man geht ja wie ueblich in die Uni) erfahre ich von meiner
Mom, dass am Morgen in der eigentlich en Wiederholung wieder "Space" gesendet
wurde!. Und trotz Videorecorder konnte ich mir die Teile in den Wind
schreiben.

Ein Erklaerung hierfuer haben wir immer noch nicht gefunden. Und Kabel 1 zu
fragen ist sicher nicht gerade aufschlussreich.

C. No

-----------------------------------------------------------------------------



Aus dem Irischen: (Lug, 11. Jul 1997, 01:19:14):

Edward Lysaght (1763-1810), Kate of Garnavilla

Have you ever been in Garnavilla, or have you seen in
Garnavilla the gay young girl of the golden locks, my
sweetheart, Kate of Garnavilla?

She's whiter than the swan on the pool, or the snow on the
crest of the bending bough; her kiss is sweeter than the dew
on the rose, my sweetheart, Kate of Garnavilla.

Her song is more tuneful than the blackbird or thrush, or
the nightingale on the willow bough; like a ship in sail on
the mistless wave I see my sweet in Garnavilla...

Echt uebel. Schuld ist Dancer, der die Fernsteuerung kontrolliert!
Lug

-----------------------------------------------------------------------------



Was kymrisches (d.h. aus Wales): (Lug, 11. Jul 1997, 01:26:11):
Aus dem kymrischen Epos Goddoddin, dem Dichter Aneirin (ca. 7 Jh.)
zugeschrieben, in der Uebersetzung von K. H. Jackson:

The warriors arose together, together they met, together
they attacked, with single purpose; short were their lives,
long the mourning left to their kinsmen. Seven times as
many English they slew; in fight they made women widows,
and many a mother with tears at her eyelids...

Jaja, nehmt Euch das zu Herzen, Trves!
Lug

-----------------------------------------------------------------------------



Zephyr gewidmet! (Lug, 11. Jul 1997, 01:41:28):
Wie man Raumbeschreibungen anders gestalten koennte, demonstriert Tadhg Dall O
hUiginn (1550-91), einem der besten klassisch-irischen Dichter:

The Praise of Fermanagh

The paradise of Ireland is Fermanagh, the peaceful fruitful
plain, the land of bright dry smooth fields, in form like the
shores of Heaven.

The cry of her waves is heavenly music, golden flowers on
her land, a honeyed vision is the sweetness of her streams,
and the tresses of her wood bowed down.

Smooth glens above tilled plains, blue brooks above the
glens; a wood of yellow nuts beyond the flowers, a golden
plumage of leaves enfolding it.

It is enough to take all fever from a man - the brownness
of her branches, the blue of her waters, the redness of her
leafage, the brightness of her clouds; heavenly is her soil
and her sky.

Like the songs of Paradise through the plaintive sweet blue-
welled land is the sound of her pure sandy streams mingles
with the angelic voice of her birds.

Indeed, no tongue can tell half her beauty, the land of
tender curly crops, of shallow brooks; what is it but the
true paradise of Ireland? ...

Auch von Kenneth H. Jackson uebersetzt. Typisch uebrigends die Darstellung des
Landes als Frau. In Irland auch heute noch eine gelaeufige Konvention.

Lug

-----------------------------------------------------------------------------



Wichtel in der Nacht (Lug, 11. Jul 1997, 23:37:02):

Lamyra wollte diesen Text ja verhindern. Frauen eben. Darum sei dieses Werk
Horst Horstmanns, welches den deutschen Schlager revolutionierte, ihr
gewidmet:

Wichtel in der Nacht (Nach der Melodie Strangers in the Night)

Wichtel in der Nacht
Einsame Seelen, tun sich in zu enge Hose quaelen
Wichtel in der Nacht
Sind klein und so allein
Wichtel in der Nacht
Ham rote Muetzen, ertrinken oft sogar in Regenpfuetzen
Oder man tritt drauf, weil man sie gar nicht sieht
Wichtel in der Nacht
Sie wollen Frauen, tun sich allerdings dann doch nicht trauen
Fragen sie halt nie, gehen ihnen bis zum Knie
Bleiben dann allein die Nacht von Schnauzbarttraegern ausgelacht
Wichtel in der Nacht
Sind zwar gescheiter, brauchen an der Bar aber 'ne Leiter
Tun erst furchtbar cool und kippen dann vom Stuhl
Wichtel in der Nacht
Sind klein und mickrig, geben nie ein' aus
Sind aeusserst knickrig
Kaufen sauren Wein und kippen Suesstoff rein
Wichtel in der Nacht
Mit langen Baerten, kacken ohne Scham in Vorstadtgaerten
Wichtel sind so klein und manchmal auch gemein
Wenn sie sich schon nicht sofort erhaengen
Wollen wenigstens sie sich den Kopf zusengen
Saufen und sind froh, enden auf dem Klo
Kotzen sich die Seele raus und gehen dann allein nach Haus
Wichtel in der Nacht
Ham kurze Beine, die Welt is' aber gross voll dummer Schweine
Drum bleiben sie im Wald und werden einsam alt

Naja, so ist das nuneinmal

[Grunzlaute und Rotztoene von Onkel Hotte]

Soooosihddas aus
Lug

-----------------------------------------------------------------------------



Ein Gedicht, zwo, drei! (Yendi, 14. Jul 1997, 10:07:15):


Hans Georg Stengel

   Extempore

   Wo man hobelt, kraeht kein Hahn,
   grober Klotz ist halb gewonnen.
   Was sich neckt, ist alt getan,
   wie gebettet, so zerronnen.

   Blindes Huhn sieht mehr als zwei,
   steter Tropfen kommt von oben,
   Aug um Aug verdirbt den Brei,
   Ende gut ist aufgeschoben.

   Gottes Muehlen beissen nicht,
   keine Rose hat zwei Seiten,
   wenn sie auch die Wahrheit spricht.
   Guter Rat kruemmt sich beizeiten.

   Frisch gewagt, faellt selbst hinein,
   unrecht Gut will Weile haben.
   Morgenstunde hoehlt den Stein,
   wer zuletzt lacht, liegt begraben.




-----------------------------------------------------------------------------



Und noch eins! (Yendi, 14. Jul 1997, 11:19:52):



Ingrid Kuehn
  
      Kanalisation

      Wenn er auch sonst sich nicht mehr findet -
      der zwischenmenschlich gute Ton,
      ist eines doch, was noch verbindet -
      naemlich die Kanalisation.

      Was muehvoll sucht man zu gestalten,
      in all den Kommunalregionen,
      kann subterrarisch sich entfalten,
      weil starke Kraefte in ihr wohnen!

      Die sanitaere Reinlichkeit
      laesst leichter sich wohl klaeren
      als aller Leut Parteienstreit
      und andres Volksbegehren.
     
      Hier laufen die Ideen zusammen
      von unterschied(t)lichster Natur,
      gleich welchem Hirne sie entstammen
      sie fliessen auf derselben Spur!


Also: Das naextemal, wenn man sich ueber die Umgangsformen im MUD aergert:
Scheiss drauf, das verbindet!   :)


-----------------------------------------------------------------------------



Bier bleibt Bier (Dieder, 15. Jul 1997, 23:27:33):
Bauchige b|rgerliche bayrische Bier-Brauer brauen bestdndig bestens bekanntes
bayrisches Bier,
besonders beliebtes billiges Bed|rfnis br|derlichen Beisammenseins
bierfreundlicher Bajuwaren.
Blo_ bvswillige Banausen behaupten bekanntlich, berauschendes Bier beherrsche
Bayern, bereits
begreiflicherweise bodenlose Besdufnisse, begr|ndete Bier-Bduche, beraube
barmherzige Br|der
bitter benvtigter Brotnahrung, bringe bvses Blut. Besagte Beleidigung
bestreiten biedere
Besserwisser. Belebendes Bier bereitet berauschende, begl|ckende,
bacchantische Belustigung,
bewerkstelligt breites B|ndnis bierfreudiger Bevvlkerung, beschafft
Bier-Brauern bleibende
Beschdftigung bis bedauernswerter baldiger Beerdigung. Bevor brauchbare
Beweise bekannte
beleidigende Behauptungen bestdtigen, bleibt bayrische Bevvlkerung bravourvs
beim beseligenden
Becher besten bayrischen Bieres.

-----------------------------------------------------------------------------



Re: Bier bleibt Bier (Dieder, 15. Jul 1997, 23:28:03):
~#! rn=Dieder rt=869002053 rg=kultur
~#! tid=869002053
sorry fuer Umlaute und Formatierung... cut&paste versagt :(

-----------------------------------------------------------------------------



Re: Bier bleibt Bier (Gralkor, 16. Jul 1997, 10:37:40):
~#! rn=Dieder rt=869002053 rg=kultur
~#! tid=869002053
Ne, Bayern sind DOOF und stinken, ausserdem (MEIST) unsympatisch, und BIER
koennen die NICHT brauen.

Gralkor, etwas gegen Leute, die suedlich des Weisswurstaequators leben, habend

-----------------------------------------------------------------------------



Re: Re: Bier bleibt Bier (Grimmborn, 16. Jul 1997, 11:34:36):
~#! rn=Gralkor rt=869042260 rg=kultur
~#! tid=869002053
Du hast was gegen diese Leute?
Cool, gib mir doch mal nen Tip. Ich suche schon ewig nach einem geeigneten
Gegenmittel...

GdA

-----------------------------------------------------------------------------



CD (Cerebus, 16. Jul 1997, 16:15:16):
Nur mal so am Rande:

Es gibt eine sehr geniale CD mit allen Remixen des Lieds "Themenlaeden" von
den Sternen. Unbedingt mal anhoeren!

Cerebus

-----------------------------------------------------------------------------



Weil Dancer was dagegen hat: (Lug, 18. Jul 1997, 01:06:47):

Partet Lovers

There is a youth comes wooing me; oh King of Kings,
may he succeed! would he were stretched upon my breast,
with his body against my skin.

If every thing were as I wish it, never should we be far
divided, though the hint is all too little, since he does not
see how the case is.

It cannot be, till his ship comes home, a thing most pitiful
for us both; he in the east and I in the west, so that our
desires are not fulfilled again.

K. H. Jackson, der es aus dem Gaelischen uebersetzt hat, weisst das gedicht
Isobel, Graefin von Argyll zu (15. Jh.). Baeh eine Campbell oder was?

;)
Lug

-----------------------------------------------------------------------------



Gedicht (Sunflower, 18. Jul 1997, 01:09:21):
War schonmal da, aber fuer die neueren:
Ein Gedicht ueber einige Zustaende:

Ihr habt kein Brot,
Kein Arbeitsplatz, kein Leben.
Ihr denkt Auslaender sind Schuld an der Not,
und denen wollt ihr es jetzt geben.

Ihr wollt Deutsche sein,
euch gehoert das Land.
Ihr lasst keine Auslaender rein,
steckt Asylantenhaeuser in Brand.

Ein Deutsches Reich wollt Ihr,
Und euren Fuehrer wollt Ihr wiederhaben.
Doch eurer Fuehrer ist nicht hier,
der ist laengst begraben.

So waehlt Ihr einen neuen,
damit er fuer euch denkt.
Ihr fuehlt euch als seine Getreuen,
denen er seine Aufmerksamkeit schenkt.

So zieht Ihr durch die Lande,
zuendet Haeuser an und macht Krach.
Fuehlt euch wunderbar stark in eurer Bande,
doch alleine seid Ihr schwach.

Deutschland den Deutschen das wollt Ihr,
um das zu erreichen wollt Ihr nicht ruhn, sondern bleibt alle wach
wollt keine Auslaender hier,
ach Leute, denkt doch einmal N A C H.



                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Buch (Lug, 18. Jul 1997, 01:12:14):

Kenneth Hurlstone Jackson, A Celtic Miscellany. Penguin Classics. ISBN 0 1 4
044.247 2


-----------------------------------------------------------------------------



Re^3: Bier bleibt Bier (Caradhras, 18. Jul 1997, 08:59:55):
~#! rn=Grimmborn rt=869045676 rg=kultur
~#! tid=869002053
Ey, Teefrosch, was hast Du gegen mich??
Ich weiss, wohl nix effizientes. :)

         Caradhras - im tiiiiefsten Bayern suedlich der Donau

-----------------------------------------------------------------------------



Re: Gedicht (Pampers, 18. Jul 1997, 10:08:00):
~#! rn=Sunflower rt=869180961 rg=kultur
~#! tid=869180961
Ach Sunflower.
Musst Du Deine Pseudobetroffenheit wirklich jedem auch noch ein zweites Mal
einhaemmern?
Muss wirklich alle 5 Minuten gesagt werden, wass eh jeder weiss?
Musst Du wirklich immer was sagen, auch wenn Du nichts zu sagen hast?
Kannst Du nicht einfach wenigstens von Zeit zu Zeit mal fuer kurze Zeit die
KLappe halten?

Pampers. ignoriere Sunflower. ignoriere sunflower.news. /gag *Sunflower*

-----------------------------------------------------------------------------



mal wieder ein gedicht (Sunflower, 18. Jul 1997, 14:10:22):
Ich liege hier in einer Gasse,
neben mir noch eine Flasche Bier,
oh wie ich dieses Land hasse,
ich bleib nicht laenger hier.

Ich bring mich um,
dann hab ich keine Sorgen mehr,
keiner noergelt mehr an mir rum,
oh wie wuensche ich mir das so sehr.

Endlich bei Satan sein,
alles hinter mir lassen,
dann fuehl ich mich auch nicht mehr so klein,
kaum hab ich's gedacht, beginnt er schon meine Hand zu fassen.

Er fuehrt mich fort von hier,
weit weit entfernt von diesem Ort,
so reisen wir,
von hier fort.

Ich seh alles genau vor mir,
die vielen Stunde auf Jobsuche,
meinen Freund das Bier,
und das eine Tolkien Buche.

Dann seh ich sie - die Frau die ich mochte,
sie hat mich verlassen,
oh wie mein Herz damals pochte,
von da an begann ich mich selbst zu hassen.

Doch das alles ist nicht mehr,
Nie wieder Alk - nie wieder Omas Kartoffelbrei,
seh nie wieder das schoene blaue Meer,
es ist alles vorbei.


Dann kommen wir schon an,
in der Hoelle - meinen kleinem Reich,
hier unten verspuere ich soetwas wie Fun,
meine Knie sind auch nicht mehr so weich.

Hier habe ich meine Ruhe und geniesse das Dasein,
Hier hab ich alles was ich brauche,
bin nie wieder allein,
und sinniere ueber mein Leben waehrend ich eine rauche.

(c) 1997 Sunflower

                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re: mal wieder ein gedicht (Hardil, 18. Jul 1997, 14:26:50):
~#! rn=Sunflower rt=869227822 rg=kultur
~#! tid=869227822
Grimmborn,

such Dir aus, ob Du das Gedicht nach Schmarrn oder Muell verlegst.
Aber verleg es, denn nach Kultur gehoert sowas ja wohl nicht. Da revoltieren
ja saemtliche Geschmacksnerven.

-Hardil. 

-----------------------------------------------------------------------------



Re: mal wieder ein gedicht (Amaryllis, 18. Jul 1997, 14:30:42):
~#! rn=Sunflower rt=869227822 rg=kultur
~#! tid=869227822
waaaaaaah

kannst du ned mal den 2. Vers in die Realitaet umsetzen?

Ama*, extrem genervt

-----------------------------------------------------------------------------



Re: Re: mal wieder ein gedicht (Gast2, 18. Jul 1997, 17:16:29):
~#! rn=Amaryllis rt=869229042 rg=kultur
~#! tid=869227822
Wenn Euch sein Schmarrn stoert, dann bestellt doch Kultur ab.
Ist doch wohl ziemliche Geschmackssache, was in so ein paar
Knittelversen drinstehen soll oder nicht.

Gloin ... der von Pampers im Dummsabbeln locker ausgestochen wird.

-----------------------------------------------------------------------------



Re: mal wieder ein gedicht (Chaodyn, 20. Jul 1997, 20:38:44):
~#! rn=Sunflower rt=869227822 rg=kultur
~#! tid=869227822
irgendwie bedauerndswert, dieser mensch

------
patryn, mitfuehlend, bedauernd, bemitleidend, beleidigend

-----------------------------------------------------------------------------



Auch mal n Gedicht. (Alete, 21. Jul 1997, 09:31:37):

If love's a sweet passion, why does it torment?
If a bitter, oh tell me, whence comes my content?
Since I suffer with pleasure, why should I complain
Or grieve at my fate when I know 'tis in vain?
Yet so pleasing the pain is, so soft is the dart
That at once it both wounds me and tickles my heart.

(wahrscheinlich von Thomas Betterton)


-----------------------------------------------------------------------------



Re: Re: mal wieder ein gedicht (Grimmborn, 21. Jul 1997, 10:02:52):
~#! rn=Hardil rt=869228810 rg=kultur
~#! tid=869227822
Im Prinzip juckts mich schon deutlich in den Fingern, aber ich sehe mich nicht
als kompetent an, zu entscheiden, wes Kultur ist und was nicht. Solange ich es
fuer moeglich halte, dass Leute existieren, die sowas wirklich fuer Kultur
halten, verlege ich das nicht.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: mal wieder ein gedicht (Yendi, 22. Jul 1997, 14:18:15):
~#! rn=Sunflower rt=869227822 rg=kultur
~#! tid=869227822

 
    Oh would sae pow'r the giftie gi'e us
    To see oursels as others see us,
    It would frae mony a blunder free us
    And foolish notion.
 
(Aeh -- Thomas Burnes? *gruebel*)


-----------------------------------------------------------------------------



Zitate (Yendi, 24. Jul 1997, 16:25:20):

Also nochmal, fuer die Windeltraeger unter uns...

Isaac Asimoc, "Foundation"-Trilogie:
"Violence is the last resort of the incompetent."
 
Jerry Pournelle:
"Because only the incompetent wait until the last before using it."
 

-----------------------------------------------------------------------------



Re: Zitate (Lug, 24. Jul 1997, 23:59:32):
~#! rn=Yendi rt=869754320 rg=kultur
~#! tid=869754320

Tja Yendi,

der Unterschied liegt darin, das Asimov Intelligenz besitzt. Pournelle dafuer
ein ultrarechter ist.

Tjae

Lug

-----------------------------------------------------------------------------



Re^3: mal wieder ein gedicht (Gralkor, 25. Jul 1997, 11:26:51):
~#! rn=Grimmborn rt=869472172 rg=kultur
~#! tid=869227822
IHR habt doch ALLE nen Hack weg.
Wer meint, das ist Kulur, soll das Ding lesen, und gut finden, wer nicht,
solls lesen, und ruhig sein, wer meint, seinen Kommentar dazu ablssen zu
muessen, soll das auch tun, aber wer meint, die Zeitung VOLLMUELLEN zu
muessen, soll DAS bitte SEIN lassen !!!

Gralkor, genervt

-----------------------------------------------------------------------------



Re^4: mal wieder ein gedicht (Pampers, 25. Jul 1997, 11:31:16):
~#! rn=Gralkor rt=869822811 rg=kultur
~#! tid=869227822
> Aber wer meint, die Zeitung VOLLMUELLEN zu muessen, soll DAS bitte SEIN
lassen !!!

Kennst Du das Sprichwort mit dem Glashaus?

Pampers. Steinewerfer.

-----------------------------------------------------------------------------



Re^5: mal wieder ein gedicht (Hardil, 25. Jul 1997, 13:56:32):
~#! rn=Pampers rt=869823076 rg=kultur
~#! tid=869227822

Heisst das nicht: 

Wer im Hoersaal sitzt, sollte nicht nach Schweinen werfen?

Pampers. Sag mal was.

-----------------------------------------------------------------------------



Re^6: mal wieder ein gedicht (Engywuck, 25. Jul 1997, 18:33:37):
~#! rn=Hardil rt=869831792 rg=kultur
~#! tid=869227822
Nein nein nein.

Wer im Hoersaal sitzt, soll nicht mit Scheinen werfen.

Wer im Schlachthaus sitzt, soll nicht mit Schweinen werfen.

So ist das, 
      Engy*

-----------------------------------------------------------------------------



Alamannenausstellung (Lug, 25. Jul 1997, 22:10:03):

Moin,


nach dem heutigen Besuch der Alamannenausstellung in Stuttgart kann ich die
dortige Ausstellung durchaus empfehlen. Sie ist definitiv nicht so ueberladen,
wie die FRankenausstellung. Ein paar mehr erklaerende Tafeln, wuerden sicher
auch dem Laien helfen, aber wer archaeologisch interessiert ist, sollte
reinsehen und mind. 3-4 h Geduld mitbringen.

Gruss

Lug

-----------------------------------------------------------------------------



Re: Alamannenausstellung (Lug, 25. Jul 1997, 22:12:06):
~#! rn=Lug rt=869861403 rg=kultur
~#! tid=869861403

Aeh,

ignoriert die Typos! Ich hatte wenig Schlaf ;)

Lug

-----------------------------------------------------------------------------



Re^7: mal wieder ein gedicht (Rantanplan, 28. Jul 1997, 22:40:23):
~#! rn=Engywuck rt=869848417 rg=kultur
~#! tid=869227822
Was jetzt kommt ist sicher keine Kultur ;-)))

Weil ich so betroffen sein tu
schreib ich ein Gedichtelein
Einzig was ich brauch dazu
Ist ein irre schlechter Reim

So schreib ich ach wie schlecht die Welt
wie garstig doch mein Seelenleid
dann fuehl ich mich gleich wie ein Held
und zeig mental bescheidenheit

Oe*

P.S.: Stimmt es eigentlich, dass NAzis rechts sind, hab ich letztens in den
St. Pauli Nachrichten gelesen...

-----------------------------------------------------------------------------



Re^8: mal wieder ein gedicht (Lug, 29. Jul 1997, 00:53:57):
~#! rn=Rantanplan rt=870122423 rg=kultur
~#! tid=869227822

St.Pauli Nachrichten? Ist das wie die FAZ nur aus Hamburg?

Lug

-----------------------------------------------------------------------------



Re^7: mal wieder ein gedicht (Cauno, 30. Jul 1997, 11:15:23):
~#! rn=Engywuck rt=869848417 rg=kultur
~#! tid=869227822
Das heisst:
Populanten von Domizilen mit transparenter fragiler Aussenstruktur sollten
sich von der Umfunktionierung von gegen Deformation resistenter Materie zu
Wurfprojektilen distanzieren.

Auch nach der neuen (nun doch gecancelten) Rechtschreibung.

C. No


-----------------------------------------------------------------------------



Re^8: mal wieder ein gedicht (Acrimon, 30. Jul 1997, 14:13:04):
~#! rn=Cauno rt=870254123 rg=kultur
~#! tid=869227822
Kleiner Hinweis: Bei den Nachrichten genauer zuhoeren!
Die Rechtschreibung ist nicht gecancelt, sondern lediglich in nur *einem*
Bundesland ein wenig *aufgeschoben*.

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



kulturgut (Sunflower, 31. Jul 1997, 01:43:09):
Auferstanden aus Ruinen (Nationalhymne der DDR)

Auferstanden aus Ruinen
Und der Zukunft zugewandt,
La  uns dir zum Guten dienen,
Deutschland, einig Vaterland.
Alte Not gilt es zu zwingen,
Und wir zwingen sie vereint,
Denn es mu  uns doch gelingen,
Da  die Sonne sch/n wie nie
 ber Deutschland scheint,
 ber Deutschland scheint.

Gl^nck und Frieden sei beschieden
Deutschland, unserm Vaterland.
Alle Welt sehnt sich nach Frieden,
Reicht den V/lkern eure Hand.
Wenn wir br^nderlich uns einen,
Schlagen wird des Volkes Feind!
La t das Licht des Friedens scheinen,
Da  nie eine Mutter mehr
Ihren Sohn beweint,
Ihren Sohn beweint.

La t uns Pfl^ngen, la t uns bauen,
Lernt und schafft wie nie zuvor,
Und der eignen Kraft vertrauend,
Steigt ein frei Geschlecht empor.
Deutsche Jugend, bestes Streben,
Unsres Volks in dir vereint,
Wirst Du Deutschland neues Leben,
Und die Sonne sch/n wie nie
 ber Deutschland scheint,
 ber Deutschland scheint.



                    --=== bluemchen ===--

-----------------------------------------------------------------------------



Re^9: mal wieder ein gedicht (Lug, 31. Jul 1997, 01:43:39):
~#! rn=Acrimon rt=870264784 rg=kultur
~#! tid=869227822

Tja Acrimon,

warum sollte einer diese Nachricht genau lesen? Die Reform kennt ja auch kaum
einer. Ich zitiere nochmal diesen F.D.P. Abgeordneten:

"Ich bin gegen die reform, weil ich Schiffahrt weiterhin mit drei f schreiben
will."

Alles klar?
Lug

-----------------------------------------------------------------------------



Re^10: mal wieder ein gedicht (Cauno, 31. Jul 1997, 10:48:48):
~#! rn=Lug rt=870306219 rg=kultur
~#! tid=869227822
Ausserdem hiess es in den Nachrichten wirklich, die Rechtschreibreform sei
gestorben. Genauso wie die Steuerreform. Wobei man da immer noch auf irgendwas
hoffen soll ... Ich frag mich langsam, wozu die Typen eigentlich ihr Geld
kriegen ...

C. No

-----------------------------------------------------------------------------



Re^11: mal wieder ein gedicht (Lug,  1. Aug 1997, 16:03:35):
~#! rn=Cauno rt=870338928 rg=kultur
~#! tid=869227822
Moin,

spes saepe fallit, aber die Finanzminister werden den Abgeordneten wohl mal
dringend die Kosen fuer einen Stopp der Rechtschreibreform mitteilen muessen.
Das kaeme naemlich schweineteuer. Ausserdem ensteht dann das Problem, wie man
die dringend benoetigten Veraenderungen dann durchsetzt. Stueckchenweise? Na
toll.

Lug

-----------------------------------------------------------------------------



Re^12: mal wieder ein gedicht (Fyt,  4. Aug 1997, 13:50:06):
~#! rn=Lug rt=870444215 rg=kultur
~#! tid=869227822

Dringend benoetigte Veraenderungen? Sorry, Lug, dass ich Dir nicht ganz
folgen kann, es sei denn, Du meintest 'dringend notwendige Veraenderungen
im Bildungssystem, das nicht mehr in der Lage ist, den Kindern Grundlagen
im Lesen, Schreiben (und Rechnen) beizubringen'.

Nur *dazu* braucht man keine Rechtschreibreform nach dem Motto: Ach was,
unsere Kinder koennen 8*12=96 nicht mehr ausrechnen, dann definieren wir
Muplika... ach was... 'Mal-nehmen' einfach als was, wo vorne zwei Sachen
reinkommen und hinten eine raus und haben bei der Gelegenheit auch noch die
Biologie der Wirbeltiere mit erschlagen...

Fyt.

-----------------------------------------------------------------------------



Re^13: mal wieder ein gedicht (Hardil,  5. Aug 1997, 11:29:47):
~#! rn=Fyt rt=870695406 rg=kultur
~#! tid=869227822
Recht so, Fyt.
Und die Sache mit den Kosten sehe ich auch nicht so. Auch wenn die Verlage
gross 
herumjammern, weil sie seit 1996 bereits auf die "neue" Schlechtschreibung 
umstellen - dafuer haben sie einen guten Reibach gemacht, weil sich viele
Deppen neue Lexika und aehnliches gekauft haben.
Was spricht denn dagegen, wenn die Verlage einfach fuer die umgestellten
Buecher wieder die alten Druckfilme herausholen? Wenig. Und das Geld, dass sie
in ihre Lektoren gesteckt haben, die die Buecher umgestellt haben:
Vielleicht gibts ja rueckwirkend ABM-Gelder. :-)

-Hardil. Froh, dass Hessen mal zu etwas zu gebrauchen sind.

-----------------------------------------------------------------------------



Re^6: mal wieder ein gedicht (Murkes,  9. Aug 1997, 09:46:05):
~#! rn=Hardil rt=869831792 rg=kultur
~#! tid=869227822
Das heisst richtig:
wer im Hoersaal sitzt soll nicht mit Scheinen werfen --  sondern sie fangen!

Murkes, verbessert Pampers.

-----------------------------------------------------------------------------



nochn film (Wurzel, 11. Aug 1997, 20:03:54):
wieder mal im kino gewesen...

hamlet von und mit kenneth branagh ist ein film speziell fuer freunde von
shakespeare. im gegensatz zur sonst ueblichen verstuemmelung des werks hat
kenneth branagh das komplette werk verfilmt, was sich in der laenge von
vier stunden niederschlaegt. dabei wird das ganze doch etwas dialog- bzw.
monologlastig, ist also trotz mord und totschlag kein actionstreifen :)
dafuer aber wunderschoen fotografiert. das ganze ist angesiedelt in einem
fiktiven daenemark des letzten jahrhunderts, wenn man den kostuemen glaubt.
der text ist aber unverfaelscht, wie es sich gehoert.
den hamlet spielt branagh selbst (natuerlich), und er hat das ganze zu einer
grandiosen selbstdarstellung gemacht. an manchen stellen erschien es mir zu
sehr aufgetragen, als habe er sich ein denkmal setzen wollen; an den stellen
waere etwas weniger sicherlich mehr gewesen. so aber bleibt der film hinter
branaghs meisterwerk henry v. zurueck, ist aber trotzdem ausgesprochen
sehenswert. leider war es trotz anderslautender ankuendigung eine deutsch
synchronisierte kopie, und so fiel die diskrepanz zwischen mundbewegungen
und gehoertem wort doch teilweise deutlich auf, jedenfalls bei der stark
ausgepraegten mimik von kenneth branagh. wir sind ja alle eher nuschelnde
us-schauspieler gewoehnt, wo das kaum eine rolle spielt...
in (kleinen) nebenrollen waren wieder eine menge von stars aufgeboten:
charlton heston, gerard depardieu, robin williams, richard attenborough, und
noch mehr, deren namen mir jetzt nicht mehr einfallen. die wichtigeren
nebenrollen waren natuerlich mit "richtigen" schauspielern besetzt, die kein
aas kennt :)
fazit: geschmackssache. mir hat der film sehr gut gefallen, aber das kann
durchaus an meinem verdrehten geschmack liegen :)

wurzel

-----------------------------------------------------------------------------



Re: nochn film (Grimmborn, 11. Aug 1997, 20:43:00):
~#! rn=Wurzel rt=871322634 rg=kultur
~#! tid=871322634
Langsam wirds mir wirklich peinlich, ich gebe immer Wurzel contra...

Also, ich hab Hamlet auch gesehen, gleich nachdem er angelaufen ist. Im
Original (angekuendigt und ausgefuehrt). Sprachlich und inhaltlich kann man
nicht meckern, aber das ist man bei Shakespeare ja nicht anders gewohnt. Und
die Bilder waren auch schoen bis schwuelstig-ueberladen, Geschmackssache, aber
mir hats durchaus gefallen.
Aber.
Wir leben im ausgehenden 20. Jahrhundert, mit einer riesigen Menge
Arbeitsloser. Ich kann mir einfach nicht vorstellen, dass es da nicht etliche
gaebe, die in der Lage sind, eine halbwegs anstaendige Filmmusik zu basteln.
Was Hamlet da bietet ist eine echte Zumutung, erst recht ueber diese Laenge.
Und das ist keine Geschmackssache. Wenn ich sage, den Soundtrack wuerden sich
nur Masochisten holen, ist das keine Polemik. So dermassen nichtssagend und
platt, das habe ich noch bei keinem B-Film erlebt. Wenn man den dann noch
synchronisiert sieht wuerde ich empfehlen: Oropax reinstecken, Story kennt man
eh, und man ist die deutsche Sprache (die trotz guter Uebersetzungen nie an
das schoene Shakespearean english rankommt) und vor allem die Musik los.
Sicher sind die ganzen Stars beeindruckend, aber das hat auch eine negative
Seite. Da das Niveau so unterschiedlich ist, fallen Leistungen, die man
woanders nicht bemerkt oder sogar gelobt haette, negativ auf, weil sie zu sehr
nach unten abstechen
Fazit: Brannaghs schlechtester Film bisher, wobei mein Favorit (mit Abstand)
"Much ado about nothing" ist. Und ich sicher nicht alle seiner Filme kenne.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Re: nochn film (Wurzel, 11. Aug 1997, 20:51:36):
~#! rn=Grimmborn rt=871324980 rg=kultur
~#! tid=871322634
tja, ich sach ja geschmackssache...
filmmusik mag ja in nichtssagenden streifen sinnvoll sein. in einem film, der
vom wort lebt, hat sie eigentlich nichts zu suchen. mich hat sie nicht nur
nicht gestoert, ich habe sie gar nicht gehoert... vielleicht war das ja ein
"feature" der deutschen fassung.
natuerlich bin ich mir nicht ganz sicher, alle filme von branagh zu kennen,
glaube aber schon mal einen gesehen zu haben, der mir weniger gefallen hat.
und selbst sein schlechtester film steht meiner meinung nach deutlich ueber
dem, was man normalerweise im kino geboten bekommt. normalerweise gibt es nur
wenige filme, die wenigstens schon im titel zum ausdruck bringen, was einen
erwartet: dumm und duemmer...
soll nicht heissen, es gaebe keine anderen schoenen filme. aber der schnitt
liegt doch arg weit unten.

wurzel

p.s. wenn grimmborn mir nicht widerspricht, habe ich immer irgendwie das
gefuehl, was falsch ausgedrueckt zu haben :)

-----------------------------------------------------------------------------



Re^3: nochn film (Grimmborn, 11. Aug 1997, 20:56:58):
~#! rn=Wurzel rt=871325496 rg=kultur
~#! tid=871322634
Ja, vielleicht bin ich bei Musik nur empfindlich, das kann sicher sein...
Aber wenn eine Filmmusik nicht mehr nicht auffaellt, sondern massiv stoert
(und mit der Meinung war ich nach der Vorstellung nicht ganz alleine), dann
ist das sehr schlecht. Und auch ein "Wortfilm" kann durch Musik gewinnen, im
Extremfall kann man da Opern nennen (Wagner waere ohne Musik deutlich
schlechter. Oder noch weniger ertraeglich, wie man will). Ich weiss nicht, was
man sonst im Kino geboten bekomt, ich gehe i.a. sehr selektiv ins Kino. Aber
ich sage ja, wenn die Musik nicht so nerven wuerde waere das ein sehr
passabler Film, dass der eine oder andere Schauspieler nicht so ideal spielt,
ist meist ein Thema fuer hinterher und faellt zumindest bei kleineren Rollen
nicht unmittelbar stoerend ins Gewicht.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^3: nochn film (Patryn, 11. Aug 1997, 21:00:28):
~#! rn=Wurzel rt=871325496 rg=kultur
~#! tid=871322634
also meine letzten 2 filme waren einmal:
 haudrauf mit jacki chan und
 schlemmermal fuer dinos II
nein: ich brauchte nicht nachdenken, wirklich empfehlenswert :)

------
patryn, fuer kultur

PS: schlemmermaHl, ich weiss :)

-----------------------------------------------------------------------------



Re^4: nochn film (Wurzel, 11. Aug 1997, 21:02:12):
~#! rn=Patryn rt=871326028 rg=kultur
~#! tid=871322634
auch eine art kultur... hab ich auch mal gesehen. waren zwar nicht die
gleichen titel, aber irgendwie doch die gleichen filme.

einmal reicht.

wurzel

-----------------------------------------------------------------------------



Re^4: nochn film (Murkes, 12. Aug 1997, 11:25:11):
~#! rn=Patryn rt=871326028 rg=kultur
~#! tid=871322634
Das nehme ich Dir glatt ab, Patryn :)
Passt irgendwie zu Dir...
Murkes, sich mal wieder meldend, damit Patryn sich nicht unbeachtet vorkommt.

-----------------------------------------------------------------------------



Re^5: nochn film (Patryn, 12. Aug 1997, 11:46:43):
~#! rn=Murkes rt=871377911 rg=kultur
~#! tid=871322634
unbeobachtung? biste etwa vom verfassungsschutz? *argl*

------
patryn, unter verfolgungswahn leidend

PS: ach ja, anaconda ist auch schon, noch weniger nachdenken, noch mehr
    spannung...ideal fuer leute wie mich und dich....oder dich und mich?
    wie sagt man das nur? da gabs doch son spruch mit nennen und esel
     *gruebel* hach herje, denken strengt halt doch zu sehr an :)

-----------------------------------------------------------------------------



Re^6: nochn film (Grimmborn, 12. Aug 1997, 12:14:25):
~#! rn=Patryn rt=871379203 rg=kultur
~#! tid=871322634
Nein, Schrumpfi war vom Verfassungsschutz. Deswegen ist sie jetzt ja auch
geloescht und gebanished...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^6: nochn film (Murkes, 12. Aug 1997, 13:42:21):
~#! rn=Patryn rt=871379203 rg=kultur
~#! tid=871322634
Naja, vielleicht heisst es auch: Fuer Leute wie Dich und nicht fuer mich?
Ach ja, ich unterscheide zwischen 'beachtet' und 'beobachtet'
Murkes (grinst Patryn an, werden wir je auf einen Nenner kommen...)

-----------------------------------------------------------------------------



Familiengeschichte revisited (Highlander, 26. Aug 1997, 12:39:12):
                       I.  Wie alles begann

"Tja, da sass ich nun. Hatte bei dieser Flut das Kaetzchen gefunden.
Konnte noch nicht mal richtig fauchen und sass da auf dem Inselchen,
mutterseelenallein. Offensichtlich war es auf dem Baumstamm angetrieben,
der da zwischen der Marke des hoechsten Wasserstandes und dem derzeitigen
Wasserpegel lag. Der Hoechststand war schon zwei Tage her, und so
jammerte das Kleine hungrig vor sich hin. Und ich wusste nicht, was tun.

Naja, so ging das nicht weiter. Ich musste das Kaetzchen wohl mitnehmen
und fuettern. Was mir gleich das naechste Problem brachte. Wie transpor-
tiert man ein kleines Kaetzchen, wenn man nur zwei Loewentatzen (absolut
nicht zum Festhalten geeignet), zwei "Haende" mit Adlerklauen und einen
Raubvogelschnabel (nur bedingt zum Festhalten geeignet, da spitz und/oder
scharf) hat? Gruebelnd kratzte ich mich erst mal am Kopf.

In meinen Taschen hatte ich auch nichts geeignetes dabei, also flog ich
erst mal zu meinem Horst und holte ein paar breite Leinenstreifen. Die
waren eigentlich fuer einen Sonnenschutz gedacht, aber in Abwesenheit
meines Transportkorbes, der grad bei dem Haendler stand, wo ich immer
wieder mal Sachen einkaufte, die man in der Wildnis nicht bekommt, hielt
ich diese Stoffstreifen fuer das beste, um das Kleine zu tragen. Wenn sich
jetzt jemand wundert - nun, ich mag zum Beispiel sehr gerne suesses Gebaeck,
und so was ist nur schwer zu erjagen. Magie hilft einem halt auch nicht
immer.

Aber sie kann einem schon helfen, wenn man keine Haende hat wie diese
bodengebundenen Rassen. Das zeigte sich, als ich wieder an der temporaeren
Insel ankam. Ein simpler Zauber zum Bewegen von Objekten und etwas Uebung,
schon kann man einen Knoten in einen Stoffstreifen machen. Nachdem ich das
Kaetzchen sicherheitshalber in Schlaf versetzt hatte, schob ich es in die
dadurch entstandene Haengematte, nahm den Knoten vorsichtig in den Schnabel,
weil ich lieber die Klauen frei habe beim Flug, und machte mich auf den
Heimweg.

Was mich wieder an den Anfang meiner Geschichte bringt. Da sass ich nun in
meinem Horst, das Kaetzchen vor mir liegend. Eltern hatte es wohl keine
mehr, und wenn, dann wusste ich nicht, wie ich sie finden sollte. Ach ja,
das Kaetzchen war uebrigens ein Tigerjunges, genauer gesagt ein Tigerjunge.
Ich verglich es mit kleinen Greifen und schaetzte mal, dass es schon Fleisch
fressen konnte, was mich doch ziemlich erleichterte. Das Problem war schon
mal geloest. Hm, aber Tiger sind Bodenlebewesen. Das vertraegt sich nicht
mit einem Greifenhorst, der hoch im Gebirge ist. Zum einen brauchte der
Kleine Platz zum Laufen und trainieren, zum anderen war er bestimmt nicht
so trittsicher wie eine Gemse oder so. Seufz. Das bedeutete einen Umzug,
zumindest zeitweise. Und ich hasse Umzuege. Aber ich fuehlte mich dazu
verpflichtet, den Kleinen aufzuziehen. Kam wohl davon, dass ich selber nicht
von meinen Eltern aufgezogen wurde, sondern von einem Drachen. Wenn ich mal
Zeit habe, erzaehle ich euch die Geschichte, aber es ist eine Geschichte
fuer eine andere Zeit, nicht fuer heute abend.

Langsam wurde das Kaetzchen wieder wach. Es rappelte sich auf (das ist gar
nicht so einfach, wenn man den Boden eines Greifenhorstes nicht gewohnt ist)
und ging ein paar Schritte. Allerdings tanzte es mehr hin und her und kam
dabei langsam vorwaerts - noch recht tapsig, was nach dem Schlafzauber
kaum anders zu erwarten war. Das brachte mich auf eine Idee. Schliesslich
brauchte der Kleine noch einen Namen. Fuer die Wahl eines Namen gibt es ja
viele verschiedene Gebraeuche. Da gibt's zum Beispiel einen Menschenstamm,
da waehlen die Leute ihren Namen selber, wenn sie alt genug sind, und ab
und an, wenn sie sich sehr aendern, aendern sie ihren Namen auch mal.
Andere wieder kriegen von ihren Eltern den Namen irgendeines beruehmten
Mitglieds ihrer Rasse. Bei uns Greifen liefert meistens eine Eigenschaft
oder ein Verhalten den Namen - unter Greifen heisse ich zum Beispiel GrayWing,
also GrauFluegel, weil eben meine Fluegelfedern grau sind, was selten genug
ist, um deswegen einen Namen vergeben zu koennen. Die Menschen nennen mich
anders. Fragt mich nicht, wieso sie nicht meinen Greifennamen nehmen, ich
weiss es nicht. Bei ihnen heisse ich, weil ich so weit oben im Gebirge
wohne, Highlander - Der aus dem Hohen Land. Na, immer noch besser als
FumbleClaw, wie eine Greifin heisst, die ich kenne. Sie hatte das Pech,
als sie noch klein war, oefter mal auf dem Boden ueber ihre eigenen Klauen
zu stolpern. Aber was rede ich da - ich wollte euch doch sagen, wie ich
den kleinen Tiger nennen wollte. Nun, seine tanzartigen, wenn auch
schwankenden, Schritte gaben mir den entsprechenden Hinweis. Wie sich
herausstellte, war es eine gute Wahl - er bewegt sich noch heute mit einer
taenzerischen Grazie, wie sie selbst bei Tigern selten ist. Ich beschloss,
den Kleinen Dancer, also Taenzer, zu nennen.

Oh, ich sehe, es ist schon spaet. Entschuldigt mich bitte, eine das Wasser
liebende Freundin hat mich zum Tee eingeladen. Zum Glueck kennt sie da
eine praktische Magie, die es mir moeglich macht, mich unter Wasser zu
bewegen und zu atmen wie ueber dem Wasser. Praktisch, wenn man als
Meerjungfrau Besuch von Lebewesen aus dem trockenen Reich bekommt. Ja,
wie gesagt, ich muss weg. Wenn ihr wollt, erzaehle ich euch gerne mal
mehr. Also, macht es gut, und einen schoenen Abend noch."

Der Greif, der seinen Kopf beim Erzaehlen auf die Vorderlaeufe gelegt
hatte, stand auf, streckte seine breiten Fluegel nacheinander aus und
schuettelte sich einmal kraeftig. Bevor er davonflog, drehte er sich
noch einmal um und grinste seine Zuhoerer auf Greifenart mit halboffenem
Schnabel an.

"He, und seid nicht so hart zu den Abenteurern, ja?"

Dann machte er einen Satz in den dunklen Abendhimmel und flog mit
gemaechlichen Fluegelschlaegen davon.

Ein Hobbitjunge warf ein grosses Holzscheit auf das Feuer und meinte: "Er 
weiss doch, dass die immer anfangen." Dann zog er einen Brotlaib aus dem
neben dem Feuer liegenden Rucksack, der selbst fuer einen ausgewachsenen
Hobbit viel zu gross war. "Noch jemand ein Stueck?"


-----------------------------------------------------------------------------



Liedwunsch (Yendi, 27. Aug 1997, 15:26:59):



Wohlan, auf vielfachen Wunsch zweier Herren,
zu singen auf die Melodie von "Lady in Black"
(ihr wisst schon: "She came to me one morning..."),


DAS MARZIPAN-LIED 
von Norbert & die Feiglinge.
============================

Ich ess so gerne Marzipan, 
es geht nichts ueber Marzipan,
ich denk den ganzen Tag daran, 
nur dafuer schlaegt mein Herz.

Ich ass grad einen Pelikan 
aus allerfeinstem Marzipan,
da ploetzlich durchfuhr meinen Zahn 
ein fuerchterlicher Schmerz:

Aaaaah....

Verdammt, da war ein Loch im Zahn, 
das kommt von zuviel Marzipan!
Ich rief sofort den Doktor an 
und sprach von meinem Leid.

Der Doktor war ein weiser Mann, 
man sah's ihm an der Brille an.
Er sagte nur:       "Na dann, 
machen sie den Mund mal auf und sagen sie mal

'Aaaaaaah...'"

Er murmelte "Mein lieber Schwan"
und irgendwas von "Schlendrian",
dann fing er gleich zu bohren an
mit furchtbarem Radau.

(im Hintergrund Bohrersirren)

Es tat zuerst fast gar nicht weh,
ich dachte "Kerl, was bist Du zaeh
und tapfer!", doch dann traf er einen 
Nerv und zwar genau...

AAAAAAAAAHH...

Oh bitte, Doktor, sei human,
ich hab doch keinem was getan!
Ich sage auch dem Marzipan
fuer alle Zeit Adee!

Er fuellte ihn mit Amalgam,
den Rest von meinem Backenzahn,
dann sagte er: "Na, junger Mann,
wo tut's denn jetzt noch weh?"

"Daaaaa..."  "Hier?"  "JAAAAAA!"

"Den muessen wir wohl ziehn, den Zahn.
 Ham wir noch 'nen Termin im Plan?
 Brigitte, klaeren sie das doch bitte
 mit dem jungen Herrn mal ab."

Das war die Zahnarzthelferin;
sie war so schoen, ich war ganz hin
und weg. Sie fragte zaertlich,
welche Blutgruppe ich hab.

"A..." "Und die Krankenkassen?" "AOK"

Das war ja fast wie im Roman!
Verliebt bin ich nach Haus gefahrn:
Sie hatte sich fuer meine 
Krankenkasse interessiert!

Seitdem verlier ich Zahn um Zahn,
ich ess noch vielmehr Marzipan,
weil jedes kleine Loch ein 
Wiedersehen garantiert.

Und wenn ich jetzt hier sitz und schrei,
dann ist das voellig einerlei,
ich leide gern, mein Leid ist
durch die Liebe motiviert!

Aaaaah...


Fuer die korrekte Wiedergabe des Texte wird keine Garantie gegeben, da ich
dieses Machwerk bisher noch nie im Original, sondern immer nur in der Version
eines Bekannten gehoert habe...



-----------------------------------------------------------------------------



3 Ravens (Yendi,  4. Sep 1997, 20:27:05):

Kennt jemand ein mittelalterliches Lied namens "The three Ravens"?
Es soll angeblich von diversen Folksaengern ausgegraben worden sein.

Der Text beginnt mit

"There were three ravens sat on a tree,
 lalilalalalila,
 they were as black as they might be
 with a lalalalala,
 and one of them said to his mate
 'And where shall we our break-fast take?'
 With a lalalalalalalalalala.

 Behold the lass in yon great field,
 lalilalalalila,
 where lies a knight slain und'r his shield
 with a lalalalala,
 and at his feet his faithful hound,
 the master guarding can be found...


Kann irgendwer mir den Text komplett zuschicken?

Danke!

YTY


-----------------------------------------------------------------------------



Computer poetry (Highlander, 12. Sep 1997, 13:09:46):
~#! on=Highlander ot=874062454 og=witze
If a packet hits a pocket on a socket on a port, and the bus is
interrupted as a very last resort, and the address of the memory
makes your floppy disk abort, then the socket packet pocket has an
error to report.


If your cursor finds a menu item followed by a dash, and the
double-clicking icon puts your window in the trash, and your data is
corrupted 'cause the index doesn't hash, then your situation's
hopeless and your system's gonna crash!

-----------------------------------------------------------------------------



More computer poetry (Highlander, 12. Sep 1997, 13:25:27):
If the label on the cable on the table at your house, says the
network is connected to the button on your mouse, but your packets
want to tunnel on another protocol, that's repeatedly rejected by the
printer down the hall, and your screen is all distorted by the side
effects of gauss, so your icons in the window are as wavy as a souse,
then you may as well reboot and go out with a bang, 'cause as sure as
I'm a poet, the sucker's gonna hang!


When the copy of your floppy's getting sloppy on the disk, and the
microcode instructions cause unnecessary risk, then you have to flash
your memory and you'll want to RAM your ROM. Quickly turn off the
omputer and be sure to tell your mom.


Nein, mehr habe ich auch nicht.
  HrT

-----------------------------------------------------------------------------



Babylon 5 (Guldukat, 22. Sep 1997, 22:35:10):
Die Videothek Atlantis in Recklinghausen hat jetzt babylon 5 auf englisch, die
ersten 2 1/2 staffeln

-----------------------------------------------------------------------------



Re: Babylon 5 (Cauno, 23. Sep 1997, 13:08:22):
~#! rn=Guldukat rt=874960510 rg=kultur
~#! tid=874960510
Jetzt erst? Hier in Koeln gabs den Pilotfilm bereits ein Jahr vor der
Erstsendung auf Pro 7, und kaufen kannst du fast saemtliche Serien im
Original, wenn du weisst, in welchem Geschaeft ...
Naja, vielleicht gibt es hier etwas mehr Konkurrenz auf dem Gebiet als
anderswo.

C. No

(Nein, ich hetze nicht gegen Recklinghausen!!!)

-----------------------------------------------------------------------------



Re: Re: Babylon 5 (Lug, 23. Sep 1997, 13:09:01):
~#! rn=Cauno rt=875012902 rg=kultur
~#! tid=874960510
Aeh,

was hat Recklinghausen denn mit Kultur zu tun?

Lug

-----------------------------------------------------------------------------



Re: Re: Babylon 5 (Guldukat, 23. Sep 1997, 19:09:36):
~#! rn=Cauno rt=875012902 rg=kultur
~#! tid=874960510
es geht ja gerade um das _nicht_ kaufen zu muessen, sondern fuer einen
laecherlichen betrag von DM 3 die cassetten _auszuleihen_, denn das ist es,
was eine videothek macht! ;-)

-----------------------------------------------------------------------------



Re: Re: Babylon 5 (Li, 24. Sep 1997, 09:40:51):
~#! rn=Cauno rt=875012902 rg=kultur
~#! tid=874960510
Kann man auch schon die 4.Staffel von B5 kaufen?
Li

-----------------------------------------------------------------------------



Re^3: Babylon 5 (Guldukat, 24. Sep 1997, 18:25:00):
~#! rn=Li rt=875086851 rg=kultur
~#! tid=874960510
Leider nein, die englischen kaufcasseten gehen bis mitte dritter staffel
(messages from earth ist die letzte episode) und kommen monatlich mit einer
cassette weiter raus (2 episoden).
geruechteweise sendet pro7 ab mitte oktober die ersten 3 staffeln als
wiederholung und im anschluss daran die 4.staffel (also januar)
gd

-----------------------------------------------------------------------------



der held (Wurzel, 29. Nov 1997, 13:33:40):
der held

intro: melodie vom deutschlandlied (punkversion)

du kommst dir furchtbar gut vor und ueber andere ziehst du her
nur weil du springerstiefel hast bist du noch lange nicht mehr

du traegst dein herz am rechten fleck, rechts ist dein gebot
braun sind deine gedanken, denn scheisse ist nicht rot
deine fahne weht stolz im wind, dein gegroehle ist laut
du siehst dich gern als grosser held doch bis jetzt hast du nur mist gebaut

oh du mein grosser held, der kleine kinder schlaegt und quaelt
der sich nur wie ein arschloch geben kann, bald bist du dran

und brennt ein asylantenheim verlierst du keine zeit
den scheiterhaufen zu entfachen das ist fuer dich ne kleinigkeit
und im schutz der dunkelheit da bist du ohne rast
da sieht man nicht dein arschgesicht und dass du keine haare hast

oh du mein grosser held...

dein kahler kopf ist voll mit dreck du bist manipuliert
dass du ein bloedes herdentier bist hast du noch nie kapiert
fuer den rest deines lebens bleibst du ein mieses schwein
dass du dumm und daemlich bist passt nicht in deinen kopf hinein

oh du mein grosser held...

die verlorenen soehne


-----------------------------------------------------------------------------



ich bin nicht du (Wurzel, 29. Nov 1997, 13:44:41):
ich bin nicht du

ihr denkt ihr koennt mich lenken in eure welt
aber wisst ihr wofuer ich lebe, wisst ihr was fuer mich zaehlt
ich hab nicht eure werte und ihr nicht mein gefuehl
ihr wisst nicht was ich brauche und ihr wisst nicht was ich will

du wirst mich nicht veraendern, nicht in tausend jahren
du wirst mich nicht veraendern, nicht mal im leichenwagen
du willst mich nicht verstehen, du hoerst mir nicht mal zu
ich bin nicht dein spiegel, ich bin nicht du

ihr werdet nichts erreichen wenn ihr mich kritisiert
ich entscheide fuer mich selbst und ich weiss was mit mir passiert
ich kaempf fuer meine welt, fuer gedankenideale
fuer die freiheit meiner lieder und fuer alles was ich sage

du wirst mich nicht veraendern...

die verlorenen soehne

-----------------------------------------------------------------------------



ZWERGENLIEDER (Qitess,  1. Dez 1997, 13:21:54):

Poch, poch, poch, mein Haemmerlein, 
Such mir Silber im Gestein!
Ob ich heut' noch etwas find' ?
Draussen weht der Abendwind
                              uebers weiche Moos.

Kleiner Troll vom hohen Wald,
Komm aus Deinem Felsenspalt!
Willst Du nicht die Elfen sehn,
Die im Sternenschimmer gehn
                               uebers weiche Moos?

Komm hervor und zeige dich
freundlich und verneige dich.
Ihre Elfenmelodie
Klingt so lieblich wie noch nie
                                  uebers weiche Moos.

Sollst von Herzen froehlich sein,
Tanz mit ihnen Ringelreih'n,
Aber folge ihrer Spur
Bis zur zwoelften Stunde nur
                               uebers weiche Moos!

Kleiner Troll vom hohen Wald,
Komm aus deinem Felsenspalt!
Willst Du nicht die Elfen sehn,
Die im Sternenschimmer gehn
                              uebers weiche Moos?

QI** 


-----------------------------------------------------------------------------



Re: ZWERGENLIEDER (Posco,  2. Dez 1997, 19:37:34):
~#! rn=Qitess rt=880978914 rg=kultur
~#! tid=880978914
Zwergenkrieger - los zackzack,
Hau dem ELf die Ruebe ab,
und du kicherst immer noch,
wenn du buddelst ihm ein Loch,
                              in dem weichen Moos.

Nichts fuer ungut, Dein Lied ist wirklich schoen,
aber ich konnte nicht widerstehen...

Posco (Knurt)


-----------------------------------------------------------------------------



Re: Re: ZWERGENLIEDER (Bottom,  3. Dez 1997, 18:32:06):
~#! rn=Posco rt=881087854 rg=kultur
~#! tid=880978914


 Schlachten habe ich viele geschlagen,
 Brauchte dazu nicht erst Muttern zu fragen!
 Den Weiberroecken war ich nicht abgeneigt,
 Habe es Feinden und Maegden gezeigt
                              hinter dem weichen Moos. 

 Komm, schoenes Maedchen, und folge mir,
 Heute will ich alles von dir!
 Zier dich nicht und lass mich ran, 
 Will zeigen Dir, was ich alles kann
                              auf dem weichen Moos.

 Wir wollen mehr als nur Lachen und Lustigsein, 
 Voellern und Zechen nur vom besten Wein!
 Ein lauschiges Plaetzchen lass uns suchen, 
 Brauchen keine grosse Reise zu buchen, 
                              uebers weiche Moos.

 So war es frueher, in meinen jungen Jahren,
 Zog die Maedels ab an gueldenen Haaren. 
 Heute bin ich alt und grau,
 Wenn ich in des Weihers silbernen Spiegel schau
                              inmitten des weichen Moos.

 Kommt in das Alter, in dem man sich zur Ruhe setzt,
 Der Sensenmann unerbittlich seine grosse Sichel wetzt,
 Ueber meine Rede moegt ihr Lachen oder Weinen,
 Bald gehoert auch ihr zu den Seinen
                              untern dem weichen Moos.

Bottom ;-)


-----------------------------------------------------------------------------



Re: Re: ZWERGENLIEDER (Qitess,  6. Dez 1997, 00:23:33):
~#! rn=Posco rt=881087854 rg=kultur
~#! tid=880978914
da kann ich nur eines sagen : 

K O E S T L I C H !!!

QI**

-----------------------------------------------------------------------------



Re^3: ZWERGENLIEDER (Qitess,  6. Dez 1997, 00:25:09):
~#! rn=Bottom rt=881170326 rg=kultur
~#! tid=880978914
und Bottom :
DAS is doof.
QI**

-----------------------------------------------------------------------------



schweisser (Wurzel,  7. Dez 1997, 11:33:25):
etwas sonntagmorgen-musik, geeignet saemtliche nachbarn in zorn zu versetzen,
kommt von der band "schweisser"...

warum machst du es dir so schwer 
schau dir doch die anderen an
mach dir keine hoffnungen denn irgendwann kriegen wir dich
irgendwann brichst du zusammen 
lange haeltst du das nicht durch

du wehrst dich, du leidest, du zappelst - wie lang noch
komm zu uns, vertrau mir und lass dich gehn
und nimm ein maul voll - tu's
na komm friss scheisse
beim ersten mal tuts noch weh doch bald gefaellt es dir

friss

wir zerbrechen deinen willen
wir zerstoeren deinen stolz
du bist nur ein einzelner
wir sind ein millionenheer

du wehrst dich...

schluck alles was wir sagen
schluck alles was wir tun
schlucke unsere exkremente
druecke dein gesicht hinein

du wehrst dich, du leidest, du zappelst - wie lang noch
komm zu uns, vertrau mir, komm zu uns - friss scheisse

friss



-----------------------------------------------------------------------------



Re: schweisser (Yendi,  8. Dez 1997, 11:32:59):
~#! rn=Wurzel rt=881490805 rg=kultur
~#! tid=881490805

Aeh -- heissen die "Schweisser" oder "Scheisser"?
Nur so zur Sicherheit...


-----------------------------------------------------------------------------



Re: Re: schweisser (Wurzel,  8. Dez 1997, 18:38:26):
~#! rn=Yendi rt=881577179 rg=kultur
~#! tid=881490805
schweisser mit w :) aktuelle cd: heiland, darauf ist auch das lied zu hoeren.

wurzel

-----------------------------------------------------------------------------



 Famous last words (Rantanplan,  9. Dez 1997, 23:00:06):

Yo !

Oetti wollte noch irtgendwas pathetisches loswerden:

You breaK MY back
You won'tbreak me
All is black
But I still see
Shut me down
Knock me to the floor
Shoot me up
Fuck me like a whore

Trapped under ice
comfortably cold
I've gone as low as you can go
Feel no remorse
No sense of shame
Tinme's gonna wash away all pain

I made a god out of blood
not superiority
I killed the king of deceit
now I sleep in anarchy

Sacrifice to the cause
turn your code into law
compensate to validate the loss
take a thief
and nail him to a corss

Gosel of rage
Faction of hate
Deviate from the absolute
Born of revenge
Raised on cement
Chaos create a government

Boah ehhh voll die Message (In case anyone gets it)

Oe*

-----------------------------------------------------------------------------



scheisser (Magnus, 10. Dez 1997, 18:55:24):
was hat das mit ultur zu tun?

-----------------------------------------------------------------------------



Re:  Famous last words (Helva, 12. Dez 1997, 21:15:08):
~#! rn=Rantanplan rt=881704806 rg=kultur
~#! tid=881704806
Ich bin ja so ungebildet... von wem ist denn der text?
Oder waren das oe** famous last words ;)
Helva heute mal wieder neugierig ;)

-----------------------------------------------------------------------------



Text des Monats (Yantro, 15. Dez 1997, 14:54:22):

Oh the snowflakes fell in silence
Over Belleau Wood that night
For a Christmas truce had been declared
By both sides of the fight
As we lay there in our trenches
The silence broke in two
By a German soldier singing
A song that we all knew

Though I did not know the language
The song was "Silent Night"
Then I heard my buddy wisper, 
"All is calm and all is bright"
Then the fear and doubt surrounded me
'Cause I'd die if I was wrong
But I stood up in my trench
And I begin to sing along

Then across the frozen battlefield
Another's voice joined in
Until one by one each man became
A singer of the Hymn

Then I thought that I was dreaming
For right there in my sight
Stood the German soldier
'Neath the falling flakes of white
And he raised his hand and smiled at me
As if he seemed to say
Here's hoping we both live
To see us find a better way

Then the devils's clock struck midnight
And the sky lit up again
And the battlefield where heaven stood
Was blown to hell again

But for just one fleeting moment
The answer seemed so clear
Heaven's not beyond the clouds
It's just beyond the fear

No heaven`s not beyond the clouds
It's for us to find it here.

("Belleau Wood" v. Garth Brooks)


Allen eine stille Weihnacht ohne Sorgen.

Yantro, immer noch weinend.

-----------------------------------------------------------------------------



Re: Text des Monats (Qitess, 15. Dez 1997, 15:13:33):
~#! rn=Yantro rt=882194062 rg=kultur
~#! tid=882194062
...(wenn ich koennte, muesste ich jetzt in halbsogrossen lettern
schreiben/fluestern)

und wenn ich nicht im cip-pool saesse, wuerde ich auch flennen.

QI** findet sowas schoen.

P.S.: um mal wieder auf den boden der tatsachen zurueckzukehren, finde ich es
eigentlich armselig von der menschheit, also auch von mir, ich will und kann
mich da nicht ausklammern, dass der gedanke an fremdes leid und fremde not
fast immer nur und da vermehrt zu weihnachten aufkommt. sollte man nicht
lieber auch mal mitten im schoensten 'un-besinnlichen' sommer daran denken,
dass es leute gibt, an die man denken sollte? ich finde es natuerlich schoen
und gut, dass im advent viel gespendet wird, aber die aktionen laufen auch den
rest des jahres. 

und jetzt entschuldigung, dass mein P.S. laenger als der artikel war.


-----------------------------------------------------------------------------



Around the Corner (Nomina, 17. Dez 1997, 19:47:56):
Around the Corner (by Henson Towne)

Around the corner I have a friend.
In this great city that has no end,
Yet the days go by and weeks rush on,
And before I know it, a year is gone.
And I never see my old friends face,
For life is a swift and terrible race,
He knows I like him just as well,
As in the days when I ran his bell.
And he rang mine if, we were younger then,
And now we are busy, tired men.
Tired of playing a foolish game,
Tired of trying to make a name.
<<Tomorrow>> I say <<I will call on Fred>>
<<Just to show that I'm thinking of him.>>
But tomorrow comes and tomorrow goes,
And distance between us grows and grows.
Around the corner! - yet miles away,
<<Here's a telegram, Sir>>
<<Fred died today.>>
And that's what we get and deserve in the end.
Around the corner, a vanished friend.

Nomina, immer noch ganz nachdenklich.

-----------------------------------------------------------------------------



Gedicht (Freund,  3. Feb 1998, 15:38:02):
~#! on=Claymore ot=886516219 og=allgemeines
Traeume des Vergessen wollens streifen mein Gehirm
Windung um Windung wird abgegrast
Keine will ausgelassen sein
Die kosequenz ist der Tod des Denkens

Jungfraeuliche Blicke huschen durch den Raum

Eigentlich bin ich noch zu Nuechtern um zu schreiben

Die Soccerspieler mit ihrem unmelodischem Geknalle
Stehen im krassen Gegensatz zur Musik
Doch keiner beschwert sich
Der Fluch des Individualismuses
Kommentarlos kann man stoeren

Wieviele Menschen werden noch gemordet
Ehe Mann erkennt das Krieg scheisse ist

Eigentlich sollte die Melodie meinen Verstand einlullen
Eigentlich sollte ich mit einer Dame hier sein

Wenn die Vorstellung nicht der Wahrheit entspricht tanzt auch keiner mehr

Man beluegt sich doch das ganze Leben lang nur um nicht einer Veraenderung
ausgesetzt zu sein die durch das echte Leben indizirt wird

Gewandet muss man weniger zahlen, aber was wenn das Geld zum Gewande fehlt

Inzwischen sind die Aufspielenden auf die Tanzflaeche gegangen, weil diese
immernoch vor leere Gaehnt!

Ich wuerde gerne tanzen , aber es wird wohl nicht gern` gesehen, oder?Wenn ich
tanze ist das Volk in meinem Ruecken, ich sehe es nicht
Sieht deswegen der Koenig sein Volke nicht??

Flaue Gespraeche ueber nichts wabern an mir vorueber
Nicht einmal die Lust aufzustehen ist vorhanden. Nichts, Gar nichts!

Ich war grad pissen, bei Aussentemperatur (-7C), ich denke ich muss auch
kacken, aber bei der Kaelte?

Alle stehen rum zucken ihre Leiber doch im Takt
Fehlt es dieser Welt an Mut?

Zaeh fliessen die Woerter aus meiner Feder
Will ich ueberhaupt noch schreiben
Das wo ich doch nicht mal weiss was ich morgen machen soll!!!

Ich sauf' jetzt fast jeden Tag, nichts zu tun, zu viel zu tun
Alles fuer'n Arsch, alles fuer die Katz,
Ich hab nie geglaubt das mich eine Frau so mit energie fuellen kann

Liege morgens wach und denke wieder so ein fuck Tag , der sich nur mit der
Illusion eines Computerspiels herum bringen laesst, weil ich nicht gleich
morgen anfangen will zu saufen

Noch eine Ziegarette, noch etwas Wein, was soll es sein??

Wenn ich mich umbringen wuerde, dann morgen, dann wuerde ich wenigstens
gluecklich mit 'ner Latte sterben

So gerne wuerde ich 20 Biere trinken, aber ich will nicht bei dieser Kaelte
pissen gehen. Fuck!

Zum glueck werden alle langsam besoffen, ich nicht

Ich denke nicht!!!!!

Tauschhandel, fuer einen Zug am Joind gibt man seinen Wein

Alle wollen in einen andere Welt, aber keiner schafft sie sich

Gluecklich ist der Glueckliche
Ungluecklich der Unglueckliche
Ich glaube es ist umgekehrt

Wie soll man denn die Welt veraendern wenn sie nicht zuhoert
Hoert ihr die Erde weinen?

Ist es der Lohn der arbeit saufen zu koennen um die arbeit zu vergessen

Irgent so ein scheiss hund bellt hier rum und mir traenen die augen vor rauch

Eigentlich muessten die Deutschen die Auslaender doch lieben
Sie brauchen sich nicht, sie koennen sich nicht mal mit ihnen unterhalten

Wenn du nur theoretisch leben willst, warum willst du dann real saufen?
Ist der alkohol die Missgeburt des denkens?

Irgentwann wird man den gehalt eines Buches nur an seiner Wortzahl messen!

Wird durch das Geld ein Bankier wertvoller als ein Kind?

Ich glaube ich bin betrunken genug um mich zu unterhalten


26.01.1998, im Acud (Mittelalterkonzert)   Claymore

-----------------------------------------------------------------------------



nachtrag (Freund,  3. Feb 1998, 15:38:17):
~#! on=Claymore ot=886516587 og=allgemeines
cih musste mich mal profilieren!! :)
nein ich , ach es musste einfach raus / ich wusste nicht das es eine rubrik
kultur gibt also sorry 
naechst mal dort , ihr werdet nicht mehr belaesstigt!

-----------------------------------------------------------------------------



Re: nachtrag (Hardil,  4. Feb 1998, 12:53:33):
~#! rn=Freund rt=886516697 rg=kultur
~#! tid=886516697

... aber schreib naechstens Zigarette ohne 'ie', dann kommt die Stimmung auch
besser rueber. :-)

-Konrad Duden

-----------------------------------------------------------------------------



nachtrag 2 (Claymore,  4. Feb 1998, 13:06:46):
tnx ich werd es beruecksichtigen 
haha duden!

endlich ein feld auf dem ich mich auslassen kann!!
bis denne

-----------------------------------------------------------------------------



 Schon etwas verstaubt.. (Zephyr, 12. Feb 1998, 23:24:11):
Auf Bitten eines vereinzelten Magiers ein schon etwas angestaubtes Stueck,
das fuer eine Boygroup geschrieben wurde, die sich irgendwie dann doch
nie zu singen getraut hat.
(Melodie: Lady in black)


Hydra in Black..

Sie senkte sich ins Tal herab,
der Startpunkt lag am Heldengrab,
die Koepfe schwirrten um sie rum, man konnte sie kaum sehn.
Ein Zaubrer sagt' mir wo sie stand
und dort ich sie auch wirklich fand.
Sie zischelte mich furchtbar an und zwang mich umzudrehn.

Ref.: Hyyyyyhyyyyyyhyyyyhyyyyyyhyyydraaaa,
hyyyyyhyyyhyyhyyyyyyhyyhyyydraaaaa..

Die Friedhofskneipe war nicht weit,
ich schaffte den Weg in kurzer Zeit,
Der Totengraeber starrte mich an - ein sehnsuechtiger Blick.
Das Knoblauchwasser tat mir gut,
ich schoepfte wieder neuen Mut.
Ich startete mein Wegescript und lief ins Tal zurueck.

Ref.: Hyyyyyhyyyyyyhyyyyhyyyyyyhyyydraaaa,
hyyyyyhyyyhyyhyyyyyyhyyhyyydraaaaa..

Dort traf ich dann den ersten Kopf,
nahm die Gelegenheit beim Schopf
und zueckte den Vollstrecker, haute tuechtig auf ihn ein.
Als er dann umfiel, mausetot,
mein Baumstamm gluehte dunkelrot.
Ich sprang kurz nach Nordwesten und brannt' den Stumpf ganz kurz und klein.

Ref.: Hyyyyyhyyyyyyhyyyyhyyyyyyhyyydraaaa,
hyyyyyhyyyhyyhyyyyyyhyyhyyydraaaaa..

Mit knapper Not kam ich davon,
3 Lebenspunkte - welch ein Hohn!
Doch liess ich mich nicht schrecken, sondern tankte wieder voll.
Zehn Koepfe noch, dann waers vorbei,
Ich hau den einen grad zu Brei.
Das Brennen klappte besser diesmal, ich fuehlte mich wirklich toll.

Ref.: Hyyyyyhyyyyyyhyyyyhyyyyyyhyyydraaaa,
hyyyyyhyyyhyyhyyyyyyhyyhyyydraaaaa..

Der letzte Kopf war endlich weg,
jetzt gings der Hydra an den Speck,
Ich pruegelte wild auf ihr rum doch Treffer waren rar.
Ein Kratzer hier, ein Kitzeln dort,
und ab und zu ein boeses Wort.
Doch irgendwann war es so weit, sie war dem Tode nah.
Ein letztes "zisch", dann fiel sie um.
Ich sprang vergnuegt um sie herum,
Die Ruestung zog ich sofort an, sie passte wunderbar.

Ref.: Hyyyyyhyyyyyyhyyyyhyyyyyyhyyydraaaa,
hyyyyyhyyyhyyhyyyyyyhyyhyyydraaaaa..


-----------------------------------------------------------------------------



Re:  Schon etwas verstaubt.. (Murkes, 13. Feb 1998, 20:46:44):
~#! rn=Zephyr rt=887322251 rg=kultur
~#! tid=887322251
Wirklich gelungen!
Die Hydra gab's zwar zu meinen Spielerzeiten noch nicht, aber diese Hymnde hat
mir gefallen.

Murkes

-----------------------------------------------------------------------------



Re: Re:  Schon etwas verstaubt.. (Key, 14. Feb 1998, 18:30:13):
~#! rn=Murkes rt=887399204 rg=kultur
~#! tid=887322251
Hmm haetten diese gewissen Boygroup sie doch singen sollen?

Danke Dir fuer die Arbeit daran C4, und sorry wenn die Maenner immer nen
Rueckzieher im letzten mom machen muessen :)

Key

-----------------------------------------------------------------------------



Re^3:  Schon etwas verstaubt.. (Lug, 14. Feb 1998, 20:08:49):
~#! rn=Key rt=887477413 rg=kultur
~#! tid=887322251
Aeh Key?

Coitus Interuptus?

zweifelnd
Lug

-----------------------------------------------------------------------------



Ein kleines Gedicht (Asmodis, 14. Feb 1998, 21:04:53):
  MORGENGRAUEN
Wiederum ein Tag verklang,
lautlos naht die Nacht,
mueder Sonnenuntergang
glueht in roter Pracht.
Dann kriecht Dunkel, schwarz und schwer,
ueber Feld und Wald,
und aus weiter Ferne her
Wolfsgeheul erschallt.

Hoch der Mond am Himmel zieht,
gross und rund und bleich;
Eine Kreatur entflieht
aus dem Totenreich
in das Leben dieser Nacht,
das so leer und schal.
Hat bisher nur eingebracht
Gier nach Blut - und Qual...

Etwas durch das Dunkel schleicht
und verbreitet Angst.
Ist es ein Vampir vielleicht?
Fragst du. Und du bangst.

Horch! Ein Ton, so wild und weh,
fordert, draengt und lockt.
Jeder Widerstand wird jaeh
gaenzlich abgeblockt.
Und in deiner Seele tief
streitet Schmerz mit Lust.
Was in dir so lange schlief,
wird sich jetzt bewusst...

Fahl und ohne Morgenrot
graut ein neuer Tag,
steigt empor aus Grab und Tod,
lichtet Feld und Hag;
laesst den Nebel sich verzieh'n,
der das Land vermummt.
Alle Schattenwesen flieh'n,
Und der Wolf verstummt.

Aber du, der gestern als
Mensch gefuehlt,gedacht,
bist ab heute ebenfalls
ein Geschoepf der nacht.

-----------------------------------------------------------------------------



Sabbat - Dreamweaver - the Fairest of them All! (Lug, 17. Feb 1998, 01:32:42):

...

Corn is the gold that
will shine in summertime,
leaves are the emeralds
you find in the spring.
At autumn they turn and
as copper the burn,
then fall like the diamonds
that bleak winter brings.

Martin Walkyier nach Brian Bates 'The Way of Wyrd'

-----------------------------------------------------------------------------



buecher (Wurzel, 21. Feb 1998, 16:11:04):
buchkritik - zwei schinken aus usa

eddings, polgara the sorceress

wer sich nur schwer von der welt belgaraths und seiner gefaehrten hat
trennen koennen, hat hier wieder etwas futter. wer belgarath nicht kennt,
braucht mit diesem buch nicht anzufangen. es ist im prinzip ein buch, um
die letzten luecken zu fuellen, die in den vorangegangenen 11 baenden noch
offengeblieben sind. von der aufmachung her im stil des vorletzten buches
(belgarath the sorceror), beantwortet es offen gebliebene fragen. nicht
dass vieles offen geblieben waere, aber man kann es ja mal versuchen, ob
sich nicht noch schnell ein paar dollar verdienen lassen... so kommen dann
allerdings doch ziemliche laengen zustande, denn eigentlich weiss man ja
doch schon lange alles wesentliche, und die geschichte wird nur noch mal
aus einer leicht veraenderten perspektive erzaehlt.
der echte fan liest das buch sowieso, alle anderen koennen sich eigentlich
das geld sparen. 

jordan/patterson, the world of robert jordan's the wheel of time

wem die zeit zu lang wird beim warten auf band 8, fuer den ist hier noch
mal kurz dargestellt, um was es eigentlich geht. nichts neues wird erzaehlt,
keine perspektiven aufgezeigt, nur bekanntes wiederholt. mit bildern in
einer - vorsichtig ausgedrueckt - kindlichen qualitaet versehen und inhaltlich
wohl nicht immer ganz dem in den buechern dargelegten entsprechend, war das
offensichtlich ein versuch, die gequaelt wartenden leser in der weihnachtszeit
von ueberfluessigen dollars zu trennen, ohne einen allzu grossen invest damit
zu verbinden. ich habe mir nicht die muehe gemacht, die bekannten karten der
bekannten welt zu zaehlen, die in dem band abgedruckt sind, teilweise kam es
mir vor als wenn auf jeder dritten seite eine solche karte gedruckt waere.
das teil war in usa schon sehr umstritten, deswegen erscheint mir fraglich,
ob es je in deutschland veroeffentlicht wird. wenn nicht, um so besser.

wurzel

-----------------------------------------------------------------------------



Matt Ruff liest (Bensonmam, 24. Feb 1998, 13:26:52):
Fuer alle diejenigen Matt-Ruff-Fans (von denen es hier ja doch (zumindest
wenn man sich die Namen einiger MG-Charaktere ansieht) mehrere zu geben
scheint), die vielleicht noch nicht selbst darauf aufmerksam geworden sind:
Matt Ruff tourt in Kuerze durch D/CH/A und stellt in Lesungen sein neues
Buch "G.A.S. - Die Trilogie der Stadtwerke" ("Sewer, Gas, Electric - The
Public Works Trilogy") vor.

Die Termine:

 1.3. Muenchen 
 3.3. Flensburg
 4.3. Kiel
 5.3. Braunschweig
 6.3. Bonn
 9.3. Aachen
11.3. Mannheim
12.3. Koeln
16.3. Bern
17.3. Freiburg
18.3. Stuttgart
19.3. Wien
20.3. Winterthur

J. Bensonmam

-----------------------------------------------------------------------------



Re: Matt Ruff liest (Wurzel, 24. Feb 1998, 19:47:40):
~#! rn=Bensonmam rt=888323212 rg=kultur
~#! tid=888323212
aeh, nur mal interessehalber... wer ist das?

-----------------------------------------------------------------------------



Deutsche Autoren (Yendi, 24. Mar 1998, 15:06:51):


Salvete!

Ich habe ein kleines Problem:
Vor ca. einem Jahrzehnt bin ich fuer ein Jahr
in die USA gefahren und habe dort angefangen,
englische Buecher zu lesen. Zuerst die Klassiker
wie Tolkien oder Shakespeare, spaeter alles, 
was irgendwie interessant aussah (und das war
hauptsaechlich SF & Fantasy).
Dabei entdeckte ich solche Autoren wie Steven
Brust, Douglas Adams, Roger Zelazny, Terry
Pratchett, Iain M Banks, Dan Simmons, Ray
Bradbury, Guy Gavriel Kay, Ursula K LeGuin etc.

Ihnen allen ist gemein, dass sie 
a) spannende Geschichten erzaehlen, die von
einem soliden Spannungsbogen getragen werden, 
b) plastische und interessante Protagonisten 
ins Feld fuehren, 
c) mich mit ihrer Sprachgewalt, ihrem Wortwitz,
generell ihrer Liebe fuer Sprache faszinieren
und
d) dumme logische Fehler vermeiden, die mich
sofort aus der Geschichte reissen und denken
lassen "Herrgott nochmal, da weiss er _wirklich_
nicht, wovon er schreibt! Er haette bloss
_einmal_ einen Mediziner/Botaniker/Physiker/
Linguisten/Schuhmacher/Reiter/Piloten/wasauchimmer
fragen muessen..."

Nun fragte mich vor kurzem eine amerikanische
Studentin, was ich ihr fuer deutsche Autoren
empfehlen koenne; sie wolle ihr Deutsch ueben
und sei sei die schlechten Uebersetzungen 
englischer Originale leid -- woraufhin ich zu
meiner Schande gestehen musste, dass ich vor
Jahren auf englischsprachige Autoren gestossen
bin und seitdem nur noch englische Originale lese.

Hier also meine Frage: Gibt es neben den schlaffen
Wortwichsern, den intellektuellen Weltschmerzlern,
den blutarmen Phrasendreschern a la Handke auch 
noch deutsche Literaten (ob modern oder seit 300 
Jahren tot sei egal), die mich mit einer Geschichte 
und deren Erzaehlung begeistern koennen?
Es muss nicht SF&F sein, aber es muss _gut_ sein!

*seufz*

Ich seh's schon kommen: ich werde selber zur Feder
greifen muessen...  ;)


Ratlos,
          Yendi



-----------------------------------------------------------------------------



Re: Deutsche Autoren (Zorya, 24. Mar 1998, 19:43:59):
~#! rn=Yendi rt=890748411 rg=kultur
~#! tid=890748411
Also aus dem SF & F Bereich kenn ich niemanden, da bin ich auch auf
Englische Originale angewiesen... Aber sonst gibts schon nen paar
gute. Bei den 'Klassikern' Goethe, Schiller, Lessing... wird sich
sicher was finden. Ansonsten waeren da noch Duerrenmatt, Mann...

Ach ja, doch, einen guten Fantasy-Roman (wenn mans denn so nennen mag)
gibts in der Tat. Einen der besten ueberhaupt: Krabat (von Preussler)
Bin mir zwar nicht 100% sicher, dass der original in deutsch geschrieben
wurde, aber definitiv nicht in englisch und die deutsche Version ist
grosse Klasse!

Ansonsten fiele mir noch Michael Ende ein, speziell Momo oder seine
Rattenfaenger-Bearbeitung... Hm, mehr komt so spontan nicht...

   Zorya

PS: Doch ich hab noch was:
Suesskind - Der Kontrabass
Suesskind - Das Parfuem

-----------------------------------------------------------------------------



Re: Re: Deutsche Autoren (Gloinson, 24. Mar 1998, 21:33:14):
~#! rn=Zorya rt=890765039 rg=kultur
~#! tid=890748411
Die Klassiker sind immer nett. Nimm einfach das Std.-Zeug aus dem Abitur,
bei dem die Leute auch nur kotzen, weil sie es lesen _muessen_.
Faust 1, Duerrenmatt "Der Richter und sein Henker" (welchiges bis zum
Ende spannend), den Grass, wenn mans 'wirrer' mag, Gerstaecker fuer
Abenteuer; ein paar Buecher von Holbein fuer Fantasy; Szameit, Steinmueller
fuer Kinder-SF ... och, soll doch selbst gucken:

http://gutenberg.aol.de/aut-li.htm := deutsche Klassiker
http://www.phil.uni-erlangen.de/~p2gerlw/ressourc/liste.html :=
  eine _riesige_ Liste von Links.

Have fun, Gloin.

-----------------------------------------------------------------------------



Re: Deutsche Autoren (Qitess, 25. Mar 1998, 15:11:06):
~#! rn=Yendi rt=890748411 rg=kultur
~#! tid=890748411
nun, Michael Ende ist toll, James Kruess, nicht zu vergessen Erich Kaestner,
dann ahetten wir da noch das uebliche wie Goethe, Schiller, Heine, Mann;
Guenther Grass wuesste ich jetzt nicht, ob das so Bingo is,... wen haetten wir
denn noch ??? Gustav Freytag, den guten ollen Kafka (Kicher), habe gehoert,
dass es einen Sf-autor namens Andreas Eschenbach oder so geben soll, ach ja -
Karl May haetten wir da noch, Anna Seghers waere mal n weiblicher Autor,
Theodor Fontane schreibt meines Erachtens auf deutsch, und ein weiterer
klassiker namens Schiller (haett ich doch fast vergessen), Max Frisch, Dieter
Thoma - nee, wie heisst denn der ??? jedenfalls Thoma stimmt, noch ne Frau :
Anette von Droste-Huelshoff (nach der benennt man sogar strassen, mit dem
GESAMTEN namen), Ernst von (oder nich von?) Moericke, Heinrich von Kleist,
(dieser fette da ... wie hiess der ... ) Duerrenmatt - Friedrich, Weber,
Hermann Hesse, Martin Walser, Christian Andersen faellt mir noch ein, Heinrich
Hoffmann von Fallersleben, Christian Morgenstern, Ibsen.. nee, der war nich
deutsch..., Immanuel Kant war nich so hauptberuflioch schriftsteller oder ?,
Hermann Loens, Theodor Storm,
... so langsam gehen mir die ideen aus ...
naja, was solls, reicht fuers erste... aber mal ehrlich, wenn ich mir so die
liste ansehe, dann gibt's da nicht soviel zu lesen bei, gibt es eigentlich
junge autoren, die keine 'schwere' literatur machen tun ? :) muss ja nicht
gleich n drei-groschen... da faellt mir ein : Baertholt bricht ...

QI** stoppt sich jetzt lieber selber - ES REICHT !

-----------------------------------------------------------------------------



Re: Re: Deutsche Autoren (Alboin, 26. Mar 1998, 15:17:45):
~#! rn=Qitess rt=890835066 rg=kultur
~#! tid=890748411
aehm heikles Thema. Deutschland gilt nun mal als Land der Dichter und Denker
und
nicht als Land der Fantasie. 
Wenn Du was in der richtung Spannung/Spass/Fantasie bei Deutschen Autoren
suchst, faellt mir neben den schon genannten Duerrenmatt, Ende, Kaestner noch
Ulrich Plenzdorf (Die leiden des Jungen W. - erinnert mich an den Faenger im
Roggen) und Gerd Prokop (Wer stiehlt schon Unterschenkel, Der Samenbankraub -
beides Detektivgeschichten aus dem 21.Jahrhundert)
Den Herrn Holbein wuerde ich wiederrum nicht emphelen, aber die Diskussion
hatten wir schon mal.. und Qitess: Hans Christian Andersen ist Daene.

Alboin
P.S. kein Tag ohne Typos - ich weiss

-----------------------------------------------------------------------------



Re: Re: Deutsche Autoren (Calum, 27. Mar 1998, 14:34:40):
~#! rn=Zorya rt=890765039 rg=kultur
~#! tid=890748411
> Ach ja, doch, einen guten Fantasy-Roman (wenn mans denn so nennen mag)
> gibts in der Tat. Einen der besten ueberhaupt: Krabat (von Preussler)
> Bin mir zwar nicht 100% sicher, dass der original in deutsch geschrieben
> wurde, aber definitiv nicht in englisch und die deutsche Version ist
> grosse Klasse!

Soweit ich weiss ist der Krabat von Preussler nur eine Nacherzaehlung;
das Original stamm von einem Tschechen (?), Karel irgendwas (Karel
Czapek wars nicht). Allerdings finde ich die Version von Preussler
wsentlich besser, habe sie auch schon x-mal gelesen.

Hmm, noch einen Tip: Das eine oder andere Buch von Hohlbein (aua,
nicht schlagen!) koennte ich noch empfehlen. Mein Favorit ist
"Midgard" (eigentlich ein Jugendbuch, inspiriert an der Edda),
und von den neueren Buechern ist "Das Netz" ganz gut (wenn man mal
davon absieht, dass der Verlag sich entbloeden musste, die Rueckseite
der Taschenbuchausgabe mit einer schwachsinnigen "Inhalts"angabe
zu verzieren, in der nicht einmal der Name der Hauptperson stimmt(!)).
Dann vielleicht noch "Die Rueckkehr der Zauberer" - ist von den
Dialogen her ganz gut gemacht. Der Rest von Hohlbein ist
bekanntlichermassen arge Geschmackssache...

 - Calum, hat sich jetzt als Hohlbein-Fan geoutet :-) -

-----------------------------------------------------------------------------



Re^3: Deutsche Autoren (Jimdigriz, 30. Mar 1998, 12:22:56):
~#! rn=Calum rt=891005680 rg=kultur
~#! tid=890748411
Uahhh,

Gloin und Calum haben den boesen
Ungenannten W.H. genannt. 
 \/ \/ \/
 /\ /\ /\
(Drei Kreuze)

Ich halt mich dan den Irren Weltraumproleten
(scheint ja leider eingestellt worden zu sein *schnueff*)

Aber ich kann auch was empfehlen:
Keinen Deutschen, aber einen Schweizer:
 Friedrich Glauser, ziemlich wahnsinnig wie er 
 schreibt. Buchtip: "Matto regiert"

Jim DiGriz

-----------------------------------------------------------------------------



Buecher (Murkes, 31. Mar 1998, 13:55:42):
Max Frisch (auch Schweizer) koennte ich noch empfehlen. Stiller, Homo Faber
oder Mein name sei Gantenbein sind ganz gut (wenn man sowas halt mag. Dann
fand ich Infanta von Bodo Kirchoff sehr gut -- ganz im Gegensatz zu seinen
anderen werken. Von kaestner sollte man Fabian lesen, welches wohl sein bester
Roman ist. Dannn habe ich gestern noch Kurzgeschichten von einem jungen Autor
namens Krauser gelesen, die ich sehr gut fand. Er hat auch einen Roman "Fette
Welt" geschrieben, der vielleicht  ebensogut ist? 
Ohje, alles voller Typos, ich hoer jetzt wohl besser auf. 
Murkes

-----------------------------------------------------------------------------



Re: Deutsche Autoren (Bensonmam, 31. Mar 1998, 16:35:10):
~#! rn=Yendi rt=890748411 rg=kultur
~#! tid=890748411
Also, ich bin ganz bestimmt kein Experte auf dem Gebiet SF, aber ich
hab trotzdem mal meine kleine Bibliothek nach Buechern deutschsprachiger
SF-Autoren hin untersucht, und das Ergebnis ist in der Tat SEHR mager:
Am staerksten vertreten waren noch Herbert Franke und Carl Amery; beide
sind auch ganz nett zu lesen; vor allem Frankes Geschichten sind meiner  
Ansicht nach sehr gut durchdacht.
Daneben hab ich noch eine Kurzgeschichtensammlung eines Michael
Morgenthal, dessen Titelgeschichte ("Garten zwischen Lebensbaeumen")
eine der romantischsten SF-Geschichten ist, die ich je gelesen habe.

Und sonst? Nix. Irgendwie scheint es mit der deutschsprachigen SF             
tatsaechlich nicht so rosig bestellt zu sein...

J. Bensonmam

-----------------------------------------------------------------------------



Re: Re: Deutsche Autoren (Gloinson, 31. Mar 1998, 16:47:57):
~#! rn=Bensonmam rt=891354910 rg=kultur
~#! tid=890748411
Das netteste an hoeherer deutscher SF sind noch die Steinmuellers ge-
wesen, aber Ostliteratur wurde in diesen Sparten von der Wende platt-
gemacht. -> 'Windschiefe Geraden'

Gloin

PS: Hssss. Jetzt muessen wir nur noch die passende Bibliothek aufmachen.

-----------------------------------------------------------------------------



Re: Re: Deutsche Autoren (Highlander,  1. Apr 1998, 14:17:48):
~#! rn=Bensonmam rt=891354910 rg=kultur
~#! tid=890748411
Du vergisst die alten - K.H.Scheer und so, allerdings ist der Stil der SF
halt inzwischen doch leicht anders. Ach ja, Dominik heisst der, der mir
bis grad nicht einfiel.
   HrT

-----------------------------------------------------------------------------



Weit in der Nacht (Puma,  2. Apr 1998, 01:17:41):



[Kultur:Novastorm] Stille ?
[Kultur:Therin]    Mein Schrei dringt durch die Stille der Nacht,
[Kultur:Puma]      "Orpheus, warte!"
[Kultur:Kadabra]   wr hat denn da wen umgebracht ??
[Kultur:Kadabra]   hoerst du wies schauriggrauslich lacht ??
[Kultur:Novastorm] Die Eulen da am Wegesrand,
[Kultur:Puma]      Blaetter knistern zwischen den Fingern
[Kultur:Kadabra]   nasser nebel wallt aus dem laube
[Kultur:Puma]      sonne faerbt blau
[Kultur:Novastorm] Verdammnis macht sich breit im Herzen,
[Kultur:Kadabra]   duesternis kriecht ins hirn
[Kultur:Novastorm] Die Finsternis verschlingt die Seele,
[Kultur:Kadabra]   dunkel drohet die erde mit erzen
[Kultur:Puma]      Die Biegung liegt fern
[Kultur:Novastorm] Die Kreuzung scheint nah,
[Kultur:Kadabra]   der weg verlor dich schon laengst
[Kultur:Novastorm] und doch... es leuchtet am Horizont.
[Kultur:Kadabra]   feurige roete
[Kultur:Puma]      der ruf des morgens
[Kultur:Therin]    aus Zeichen der Angst werden Zeichen der Hoffnung
[Kultur:Novastorm] aus Bildern des Grauens werden Skizzen des Guten,
[Kultur:Puma]      der erste wind ist kalt
[Kultur:Therin]    weht mir den kalten Schweiss vom Gesicht
[Kultur:Novastorm] und doch, er waermt Dein Herz!
[Kultur:Puma]      in erwartung des wunders
[Kultur:Novastorm] werden die Zeichen der Hoffnung neu verteilt.
[Kultur:Puma]      die zeit ueberholt mich
[Kultur:Kadabra]   und die eulen flattern gen osten
[Kultur:Novastorm] im Angesicht des Todes naehert sich die Wahrheit,
[Kultur:Kadabra]   und geht vorbei
[Kultur:Puma]      sehnsuechtig wende ich mich um
[Kultur:Novastorm] und spuere doch das Los der Ewigkeit,
[Kultur:Puma]      der aufgang ist jetzt nah
[Kultur:Puma]      das wichtigste bleibt zurueck
[Kultur:Novastorm] Im Innern jedoch bleibt das Gluehen,
[Kultur:Kadabra]   unter der asche wer weiss ?
[Kultur:Therin]    doch ich weiss, das Leben ist nur Uebergang
[Kultur:Novastorm] Verbindung zwischen den beiden Ebenen,
[Kultur:Therin]    der Tod die Erloesung, des Sterbens was bei der Geburt begann
[Kultur:Kadabra]   gestern und morgen und heute vergangen
[Kultur:Puma]      verbunden durch die erinnerung
[Kultur:Novastorm] der Schmerzen und des Wohlgefuehls, der Liebe und des
[Kultur:Novastorm] Hasses,
[Kultur:Puma]      fort mit den blaettern
[Kultur:Novastorm] hinweg mit dem Staube,
[Kultur:Puma]      ich habe die eule verscheucht
[Kultur:Novastorm] die jetzt hinter Dir fliegt,
[Kultur:Puma]      doch das rot wird mich retten
[Kultur:Novastorm] vor Frieden und Ruhe,
[Kultur:Puma]      vor luegen und kaelte
[Kultur:Novastorm] als Schutz vor dem Verderben,
[Kultur:Therin]    und so verklingt mein letzter Schrei ungehoert in der Stille.
[Kultur:Puma]      Stille


-----------------------------------------------------------------------------



Re: Weit in der Nacht (Yendi,  2. Apr 1998, 13:03:12):
~#! rn=Puma rt=891472661 rg=kultur
~#! tid=891472661
Goil! 
Da muss ich doch gleich nochmal Werbung machen fuer Poesiemeister;
bei sovielen talentierten Hobby-Poeten werden sich doch wohl noch Mitspieler
finden lassen koennen muessen...

Voila: 



******************************************************************
**********      Poesie-Meister  (Runde 41/42)           **********
**                                                              **
**********      Einsendeschluss: 24 April 1998          **********
******************************************************************

Liebe Mitspieler,
  
     Wenn alle Strophen Wahrheit werden
     die ihr gedichtet fuer dies Spiel
     dann haben wir schon bald auf Erden
     ein Uebermass an Gluecksgefuehl

Mit anderen Worten: Wow! Das wird ja wieder eine tolle Runde.
Eigentlich haetten es alle Fortsetzungen verdient, als Original zu
gelten. Aber wie das Leben so spielt, nur eine ist es. 
Also dann, auf ein erfolgreiches Analysieren! Es sind da einige
interessante Varianten bezueglich der Weiterfuehrung des Themas
dabei. Schwer fuer mich, mich nicht zu verplappern und indirekte
Hinweise zu geben. Hm!? :-), na macht mal...

In der naechsten Runde dreht es sich um die Probleme, die ein Kuenstler
so hat, um Geld zu verdienen. Vielleicht hat der Weise da eine
gute Idee.

Viele clevere Ideen
wuenscht Guenter

BTW: Ich habe im Formular unten noch einen Punkt "Diskussionsliste"
mit aufgenommen. Diese Idee geht auf einen Kommentar von Grablicht
in der Auswertung der 40 Runde zurueck. Wer also Interesse hat,
in einer Mailingliste ueber Poesiemeister zu diskutieren
(Auswertungen, Kommentare, eventuell auch Vorstellung eigener Werke
oder Infos zu Lyrik, etc...), der kann es mit anmerken.
Wenn genug Interessenten zusammenkommen, so wuerde ich
die technischen Fragen klaeren und wir koennten ueber unseren
Listserver so etwas einrichten. Ich moechte dies jedoch von der
Mailverteilung zu Poesie-Meister trennen, da in der poesie-l
inzwischen bereits eine Menge "Mitleser" erfasst sind, die vermutlich 
kein Interesse an weiterfuehrenden Diskussionen haben.
(Es ist natuerlich jeder eingeladen, sich zu beteiligen.)

******************************************************************
**********      Poesie-Meister: Einsendungen Runde 41   **********
******************************************************************

Vorgabe:

   Wenn Feigheit unser Tun nicht laehmte
   kein Mensch sich seiner Schwaeche schaemte
   wenn wir einander Waerme schenkten
   und den, der anders ist, nicht kraenkten

Fortsetzungen:

(1)
   dann koennten wir die Welt beleben
   die Freude aus der Taufe heben
   dann mit dem Feinde Freundschaft schliessen
   den Frieden gar mit ihm geniessen

(2)
   dann lebten wir im Paradeis
   denn jedermann, ob Kind, ob Greis
   ertauschte gegen Agonie
   Glueckseligkeit und Harmonie     

(3)
   Des Meisters Wort Gehoer dann faende
   und in Gedichten stuend am Ende
   nur noch eines: "Piep Piep Piep,
   der Guildo hat Euch alle lieb!"

(4)
   Waer Liebe unser einzig Streben
   dann koennten wir in Freundschaft leben
   und dass die Welt ein Jammertal
   waer' nicht mehr laenger unsre Qual

(5)
   Waer'n also alle so wie ich
   stets froehlich, freundlich, bruederlich
   dann waer das Wirtshaus niemals leer
   und Polizei, die braeucht's nicht mehr 

(6)
   Welch selten angewandte Tugend
   und stets ein Fremdwort fuer die Jugend,
   die selber sich im Wege steht,
   bis - mit dem Altern - sie vergeht.

(7)
   Wenn alle Menschen Baeume pflanzten
   Kanonen, Panzer jetzt zertanzten
   wenn's keine Armen gaeb, noch Reiche
   und alle teilten wir das Gleiche

(8)
   wenn die, so saengen oder kuessten
   mehr als die Tiefgelehrten wuessten
   und nicht mehr Zahlen und Figuren
   die Schluessel aller Kreaturen

(9)
   Wenn die, so singen oder kuessen
   mehr als die Tiefgelehrten wissen
   dann fliegt mit einem geheimen Wort
   dies ganze verkehrte Wesen fort.		

(10)
   wenn dieses kleine Wort nicht waere
   dann kaemen Tugenden zu Ehre
   die jeder aus den Buechern kennt
   ja wenn man tut und nicht nur denkt

(11)
   wenn die Vernunft das Tun bestimmte
   und nicht, ob dann die Kasse stimmte
   wenn jeder nur bescheiden waere
   und Machtgier nur ein Fremdwort waere

(12
   Wenn Fernsehn uns den Blick nicht truegte
   politisch nicht korrekt man luegte
   wenn wir mit Frau und Kind nicht zankten
   statt dessen uns auch mal bedankten

(13)
   Wenn Freundlichkeit kein Fremdwort waere
   von Anfang an Respekt man lehre
   wenn wir nicht so oft achtlos seien
   und uns von Gier und Neid befreien

(14)
   wenn keiner nach der Macht nur strebte
   ein jeder Mensch schoen massvoll lebte
   wenn sich das nur erreichen liesse
   dann wird die Welt zum Paradiese

(15)
   Wenn keine Seele Neid mehr spuerte
   und Hass die Zunge nicht mehr fuehrte
   wenn jeder liebte einen jeden
   das waere Eden.

(16)
   wenn Liebe unsre Losung wuerde
   und einer trueg des andern Buerde
   zum Teilen und Verzeihn bereit
   ja dann begaenn die NEUE Zeit.
       
(17)
   wenn Naechstenliebe Beispiel machte
   und man auch gegenseitig wachte
   so wuerden wir in schweren Stunden
   bestimmt Verbundenheit bekunden 

(18)
   Wenn Reiche dann die Armen stuetzten
   wir besser die Natur beschuetzten
   wenn Maechtige uns Arbeit goennten
   wir auch in Frieden leben koennten!

(19)
   Wenn wir das Woertlein "Achtung" kennten
   Und aufrecht uns're Schritte lenkten
   Die Welt waer rund und Eins und gut,
   Und uns fehlte nicht mehr der Mut.

(20)
   wenn wir aus scheuer Drangsal traeten
   uns ungezwungen lieben taeten
   anstatt zu wehren und zu streiten
   was gaeb' uns das fuer Moeglichkeiten?  

(21)
   Wenn wir dem anderen vertrauten
   und auf den guten Willen bauten
   dann koennte heute schon geschehen
   was wir so inniglich erflehen

(22)
   wenn wir den Leuten lauschen wuerden
   statt ihnen Worte aufzubuerden
   wenn endlich jeder jedem dankte
   kaem's kaum mehr vor, dass jemand zankte

(23)
   Wenn wir den Schwachen unterstuetzten
   dem Traurigen zur Freude nuetzten 	
   wenn wir dem Naechsten niemals fehlten
   und nicht den Lohn nach Talern zaehlten

(24)
   Wenn wir die Liebe wiederfaenden
   die eignen Fehler eingestaenden
   und  Worte waegten, die wir reden
   waer unsre Welt ein Garten Eden

(25)
   Wenn wir es nun zuwege braechten
   im Wortsinn evangelisch daechten
   und handelten, dann koennt's was werden
   dann waere Einigkeit auf Erden

(26)
   wenn wir nach unsrer Wahrheit strebten
   und wuerdevoll im Frieden lebten
   dann haetten wir auf alle Zeit
   das Menschenrecht der Menschlichkeit

(27)
   wenn wir nur lernten, uns zu schaetzen
   aufhoeren wuerden nur zu hetzen
   wenn wir der Liebe Wahn verstuenden
   dann koennten wir den Sinn ergruenden.

(28)
   Wenn wir von Neid und Hass uns trennten
   uns in die Augen sehen koennten
   wenn wir laechelten, von Zeit zu Zeit
   dann hiessen wir erst "Menschen"-heit

---------------------
ausser Konkurrenz:

   Wenn alle Fluesse aufwaerts floessen
   in ihre Quellen sich ergoessen -
   hier zeigt sich (leider, doch mit Klarheit)
   der Unterschied von Wunsch zu Wahrheit

******************************************************************
**********      Poesie-Meister: Vorgabe Runde 42        **********
******************************************************************

Vorgabe:

   Kuenstler, wollt ihr Geld verdienen -
   Und wer wollte dieses nicht? -
   Hoeret, was mir recht geschienen,
   Hoeret, was der Weise spricht:

Es sind diesmal 4 (VIER) Fortsetzungszeilen gefragt.

------------------------ CUT HERE (BEGIN) ------------------------

******************************************************************
**********       Teilnahmeformular Poesie-Meister       **********
******************************************************************
Bitte bis zum  24. April 1998 einsenden an: 
                                            gg@eris.in-chemnitz.de

******************************************************************
Name                : 
Pseudonym (optional): 
E-Mail              : 
************ Poesie-Meister Runde 41 *****************************

Ich tippe auf Fortsetzung Nr. ___

Einen Sonderpunkt vergebe ich an Fortsetzung Nr. ___     (*)

Meinungen und Kommentare:



(*) die Vergabe von Sonderpunkten ist freiwillig, bei Verzicht
    kann man jedoch auch selbst keinen Sonderpunkt erhalten

Ich bin interessiert an einer offenen Diskussionsliste zum
Poesiemeisterwettbewerb (ja/nein) : ___

************ Poesie-Meister Runde 42 *****************************

Vorgabe:

   Kuenstler, wollt ihr Geld verdienen -
   Und wer wollte dieses nicht? -
   Hoeret, was mir recht geschienen,
   Hoeret, was der Weise spricht:

Meine Fortsetzung (4 Zeilen) lautet:

...

Bitte nehmt auch folgende Person(en) in den Verteiler fuer
Poesie-Meister mit auf (jeweils Name + E-Mail):

******************************************************************

------------------------- CUT HERE (END) -------------------------

-- 
    _____________________________________________________________
  /                     http: www.in-chemnitz.de/~gg/index.html
 |  __                  Mail: gg@eris.in-chemnitz.de
  \__/ uenter Gehl      Tel:  +49 37207 51361






(Ooops, war doch laenger als erwartet... *hehe*)



-----------------------------------------------------------------------------



Re^3: Deutsche Autoren (Wurzel,  4. Apr 1998, 00:21:29):
~#! rn=Highlander rt=891433068 rg=kultur
~#! tid=890748411
good old handgranaten-herbert? nur was fuer hartgesottene vorgestern-freaks.
oder leute, die noch etwas zeit bis zum beginn der pubertaet haben. nein,
wenn es um sf oder fantasy geht, hab ich auf deutsch noch nichts tolles
gefunden... aber ansonsten gibt es eine menge guter deutscher autoren, von
denen nur kaum einer sowas schreibt. in deutschland hat sf/fantasy eben
mehr oder weniger automatisch den stempel "trivial" aufgedrueckt, oft auch
ohne betrachtung des inhalts.

wurzel

-----------------------------------------------------------------------------



Milli-Vanilli (Har,  5. Apr 1998, 12:55:21):
Warum spielen die gerade anlaesslich des Todes eines der beiden Vanillis
einen Song von denen, die haben doch eh nicht selbst gesungen *gruebel*

har

-----------------------------------------------------------------------------



Re^4: Deutsche Autoren (Highlander,  6. Apr 1998, 12:34:12):
~#! rn=Wurzel rt=891642089 rg=kultur
~#! tid=890748411
Ja, ich kenne den Spitznamen von KHS. Und bei PR fand ich ihn am Ende auch
unertraeglich, aber die zbV-Reihe war doch immerhin in sich schluessig und
im gleichen Stil geschrieben. Der allerdings wie gesagt recht martialisch
(nein, nicht marsianisch) ist.
KHS und Dominik sind auch nicht unbedingt so toll, aber immerhin Klassiker.
   HrT

-----------------------------------------------------------------------------



Optima online (Ratz, 11. Apr 1998, 16:54:35):
Hiho, hier einen aktuellen Artikel aus dem Spiegel.
Einige der Probleme dieser virtuellen Welt kommen mir sehr bekannt vor.
Viel Spass bei der Lektuere.

;Blutmoos fuer den Bettler ;Im Internet sind 65000 Bewohner einer kuenstlichen
Welt sich selbst ueberlassen - in einem Spiel, gemischt aus malerischem
Mittelalter und mOerderischem Horror. ;Jeden Tag spaehen die WeltenschOepfer
hinab auf das Gewimmel. Bunte Figuerchen hacken dort drunten mit Pickeln nach
Erz, Kaninchen hoppeln ueber die Fluren, doch die Waelder, leider, sind voller
zerstueckelter Leichen wie immer, und in den Staedten rufen die Leute schon
wieder zu Protestmaerschen auf gegen die Obrigkeit. ;Das ist "Ultima Online",
ein Inselreich im Internet, geschaffen von der texanischen Softwarefirma
Origin. Tagein, tagaus kommen Spieler aus aller Welt, waehlen sich fuer ein
paar Stunden ein und fuehren ihre kleinen Figuren spazieren. Viele leben hier
schon fast ein Jahr. ;Begonnen hat die Geschichte als ein grosser Versuch:
Kein Ziel, keine Aufgaben waren vorgegeben wie in anderen Spielen, nur eine
Lebenswelt im Computer. Origin hat ein malerisches Mittelalter aufgebaut mit
Staedten und Burgen, mit Tieren und prachtvollen Ungeheuern. ;Die Spieler
steuern ihre Figuren mit der Maus durch die weitlaeufige Szenerie, und wenn
einer auf die Idee kaeme, von einem Rand der Ultima-Welt zum andern zu laufen,
waere er zehn Stunden unterwegs. ;Dafuer ist aber selten Zeit, von den
Gefahren abgesehen. Jeder hat einen Beruf gewaehlt, und darin heisst es
fleissig sein. Der Jaeger klickt auf die Armbrust und dann auf das Reh, und
der Schneider klickt abwechselnd auf Nadeln, Ahlen und Lederflicken, bis er
ein neues Wams fertig hat. ;So klicken sie sich geduldig voran, denn alles
bringt Punkte. Die Software bucht sie nach komplexen Regeln auf verschiedene
Konten. An deren Stand laesst sich ablesen, wie die Spielstaerke der Figur
steigt. ;Inzwischen haben sich mehr als 60000 Siedler hier niedergelassen, und
die Netzrechner, die das Treiben verwalten, aechzen unter dem Andrang. Zu
Beginn genuegte eine Spielwelt fuer 4000 Bewohner. Nun sind es schon neun
Parallelwelten, auf verschiedene Rechnergruppen in den USA verteilt, und n
icht selten sind 12000 Spieler gleichzeitig zugeschaltet. ;Bei grossen
Auflaeufen kann es geschehen, dass einige Figuren erstarren, weil die Rechner
das Treiben nicht mehr bewaeltigen. Auch im Normalbetrieb machen sich immer
wieder Programmfehler bemerkbar, was die Spieler zunehmend verdriesst.
Immerhin zahlt jeder von ihnen zehn Dollar im Monat fuer den Zugang zu Ultima.
;Eines Tages, es war Mitte Dezember, rotteten sich an die hundert Spieler in
der Hauptstadt Britain zusammen. Die meisten waren zuvor in der Gastwirtschaft
gewesen, wo sie tuechtig auf die Humpen geklickt hatten
sie schwankten schon merklich. Auf einmal nestelten sich die ersten mit der
Maus ihre Kleider vom Leib, andere taten es nach, und bald liefen alle
entblOesst durcheinander, und wueste Sprechblasen erglimmten auf den
Bildschirmen. ;Das war die erste Nacktdemo in der Geschichte des Internet, und
seither kommt es immer wieder zu Ausschreitungen, nicht nur wegen der Technik.
Auch die Oekonomie der Spielwelt ist nicht ganz ausgereift. Es gibt tausend
Dinge zu kaufen, aber die Preise, die Origin willkuerlich festlegt, bringen
oft den Markt durcheinander. Immobilien waren lange Zeit so billig, dass
zuletzt kaum noch Flecken uebrigblieben, wo man ein Haus hinstellen konnte.
;Deshalb musste die Firma nun ueber Nacht die Preise verdoppeln, was erst
recht zu Unmut fuehrte. In der Zwischenzeit haben die Spieler aber bereits
eine eigene Stadt gegruendet, fuer die sie nun auch gleich das Stadtrecht
begehren, dazu die ueblichen Robotergarden, die bei GesetzesverstOessen
vollautomatisch einschreiten. Und vor allem eine Bank, damit der Handel in
Schwung kommt. Ohne Handel laeuft im Spiel wenig. Der Schneider kann seine
Kleider an die Mitspieler verkaufen, die ihre Figuren gern wie Anziehpuppen
ausstaffieren. Das Geld bringt er auf die Bank, wo es sicher verwahrt ist, und
wenn er genug beisammenhat, darf er sich ein Haeuschen kaufen. ;Dem Baecker
geht es nicht so gut. Weil die Programmierer, um das Fortkommen der Spieler zu
erleichtern, viele Nahrungsmittel deponierten, ist die Nachfrage nach Brot
bereits zusammengebrochen
die letzten paar Baecker, die es noch gibt, stehen vor dem Ruin. ;Bevor die
GOetter von Origin diese Welt aus dem Lehm der Programmiersprachen schufen,
hatte sich niemand an ein so grosses Spielwerk herangewagt: 38000 Monitore
muesste man aufeinandertuermen, um alle Einzelheiten des fiktiven
Ultima-Reichs auf einen Blick zu erfassen. ;Schon 1979 hatte Richard Garriott,
spaeterer Mitbegruender von Origin, ein Spiel dieses Namens herausgebracht,
dessen Teilnehmer damals noch jeder fuer sich allein spielten. Es folgte eine
ganze Serie
gerade kommt die neunte Folge heraus. Garriott ist darueber so reich geworden,
dass er sich gerade - in der Realitaet - eine Art Fabelschloss bauen laesst.
;In Ultima Online residiert er als Lord British, und frueher erschien er
gelegentlich vor den Volksmassen, um eine Rede zu halten. Heute kommt das kaum
mehr vor, denn die Firma muss alle paar Tage bei laufendem Betrieb die
Software reparieren, die Spielregeln anpassen und nebenher mOeglichst noch
neue Attraktionen einbauen, schliesslich wollen die Spieler Abwechslung.
;Langeweile ist das quaelendste Problem, vor dem sich die Teilnehmer
aengstigen. Nach ein paar Monaten haben die Bewohner von Ultima in der Regel
ein VermOegen angehaeuft und den Rang des Great Lord erreicht, hOeher geht es
nicht. Dann ziehen sie als steinreiche Wuerdentraeger durchs Land und
verfallen dem Truebsinn. Nicht wenige pfeifen auf die Gesinnungspunkte, die
sie zuvor muehsam erwirtschaftet haben, und fangen an, ihre Mitspieler
niederzumetzeln. ;Diese Gewohnheitskiller sind zu einer Plage geworden. Im
unwegsamen Gelaende nordOestlich der Stadt Minoc haben sie eine eigene Kolonie
gegruendet. Von dort aus fallen marodierende Horden ueber friedliche Siedler
her
wo sie gewuetet haben, bleiben Leichenfelder zurueck. ;Ruhe herrscht nur
innerhalb der Stadtgrenzen, wo die Robotergarden jedes Vergehen, und sei es
der Diebstahl einer Banane, mit der Hinrichtung der Spielfigur ahnden.
"Faschismus in den Staedten und draussen Chaos", analysierte das amerikanische
Magazin "Wired". Schon hat sich eine Buergerwehr zusammengetan, die
gelegentlich in die Todeszone hinauszieht, um ein paar Killer zu lynchen. Das
erbeutete Geld kommt einer Stiftung fuer die aermsten der Opfer zugute. In
diesen wirren Zeiten erscheinen die seltsamsten Gestalten. Ein Buesser in
Unterhose geht mit einer Kerze in der Hand durch die MonsterhOehlen und
predigt Frieden. Und vor den Banken erscheinen Oefters Gestalten in haerenen
Kutten, die dort Mahnwache halten. ;Nur wenige in dem Gewimmel sind noch so
mit sich im reinen wie Erik Krumm, ein ranghoher Magier aus Hagen. Krumm
wandelt unentwegt durch die Spielwelt, um Gutes zu tun. Sterbende heilt er
fuer ein "vergelt's Gott", und den Bettlern, meist sind es mittellose
Anfaenger, steckt er reichlich Goldstuecke zu oder etwas Blutmoos fuer eine
hilfreiche Tinktur. ;Krumm, der gute Mensch von Ultima, ist ein
mustergueltiger Rollenspieler. Menschen seines Schlages fuehlen sich in ihre
Figur ein bis zur Selbstaufgabe. Monate hat er damit verbracht, seinen Magier
nach und nach mit den nOetigen Faehigkeiten und Zauberspruechen auszuruesten.
Er hat die unzaehligen Wertetabellen gewaelzt, nach denen Gesundheit, Ansehen
und Spielstaerke berechnet werden, und er hat das pfundschwere Handbuch mit
dem Regelwerk studiert, bis er es beherrschte. Die Telefonrechnung pendelte
sich unterdessen bei rund 500 Mark im Monat ein, was unter deutschen
Online-Spielern durchaus ueblich ist. ;Manchmal kehrt Frohsinn ein. Guido
Kuester, ein Programmierer aus der Naehe von Detmold, hat erst kuerzlich in
der fiktiven Welt geheiratet. An die hundert Gaeste waren zur Hochzeit
erschienen, und Kuester, der im Spiel Lady Laurana heisst, zieht seither mit
einem Lord Sandor herum, den er seinen Ga
tten nennt. ;Solche Ehen kommen haeufig vor (obwohl sich die meisten Partner
im wirklichen Leben nie gesehen haben). In Ermangelung von Frauen
(geschaetzter Anteil: unter fuenf Prozent) heiraten die Maenner von Ultima
Online sich tapfer gegenseitig, wenn es dabei auch oft etwas rauh zugeht.
Kuesters Kumpane verlegten die Feier in eine MonsterhOehle. Waehrend der
Festreden tauchten dort immer wieder funkenstiebende Unholde auf, die von den
Gaesten routiniert abgeschlachtet wurden. ;Zu Kuesters Freunden zaehlt ein
Englaender, ein Musikant, der gelegentlich bei solchen Gelagen aufgeigt. Die
Musik hat im Ultima-Spiel die Macht, sogar Monster zu besaenftigen. Doch
machen sie wenige zu ihrem Beruf, denn der Verdienst ist schlecht, und wer
nicht fleissig uebt, indem er auf seine Instrumente klickt, bringt nur
MisstOene hervor. Dann kann es geschehen, dass - entsprechend den
programmierten Regeln - die eigenen Haustiere ueber den Barden herfallen.
;Seit langem stehen sich auf Ultima Online zwei Lager gegenueber. Viele
Rollenspieler waeren zufrieden, wenn man sie nur in ihrem historisierenden
Jargon ("Heil Euch, edler Magier, mich deucht, Ihr kommet von Minoc her") nach
Herzenslust palavern liesse. Die anderen sind auf Abenteuer und Krawall aus
sie rauben und morden. ;Origin hat versprochen, stets neue Aufgaben zu
erfinden, um auch diese den Leerlauf fuerchtende Kundschaft zu beschaeftigen,
kommt aber offenbar kaum noch dazu. Notfalls stellt die Firma dann wieder
irgendwo eine Hundertschaft Monster auf, und die Spieler duerfen sich ein
Weilchen erfrischen an all den Drachen, Rattenmenschen und beisswuetigen
Wasserspeiern. ;Ohne aufwendige Betreuung ist das digitale Gemeinwesen stets
in Gefahr, in Lethargie und Gewalt zu verdaemmern. Die vielen Softwarefirmen,
die derzeit Online-Spiele fuer jeweils Tausende von Teilnehmern entwickeln,
werden mit dieser Widrigkeit zu kaempfen haben. ;Unterdessen kuendigt sich
schon die naechste Generation von digitalen Spielwelten an: Im Sommer will die
Firma Segasoft ein Online-Spiel namens Ten6 (gesprochen "ten six") erOeffnen,
eine kriegerische Wirtschaftssimulation von gewaltigen Ausmassen. ;Die
Konflikte, die jetzt bei Ultima Online auftreten, duerften sich dann wie
Vorgeplaenkel ausnehmen: Ten6 hat Platz fuer eine Million Spieler. ;DER
SPIEGEL 16/1998 - Vervielfaeltigung nur mit Genehmigung des SPIEGEL-Verlags 

-----------------------------------------------------------------------------



Spruch der 25. Woche 1994 (Anatol, 26. Apr 1998, 10:39:11):
Das Lachen ist der Klang der Freiheit.


-----------------------------------------------------------------------------



es rauscht mal wieder im Blaetterwald .. (Alboin,  8. Mai 1998, 14:33:19):
Jo was ich mal empfehlen wollte, es gibt mal wieder ein neues 
satirsches Blaettchen fuer Leute die die zahnlose 'Titanic'
schon lange satthaben und sich mal wieder nach einer Zeitung
mit Biss und intellektuellem Stil a la Tucholsky sehnen:
Sie heisst Simpliccisimus. Fuer Leute die Ahnung von 
Geschichte haben werden wissen dass die Zeitung nun doch 
so neu ist, sondern bereits Anfang des Jahrhunderts als
Schrecken der Wilhelminischen Aera galt, aber im dritten 
Reich wieder eingestellt wurde. 
Und vieles der jetzigen Ausgabe erinnert auch an die damilige:
die Schrift, die rote Buldogge als Maskottchen usw.
Auch fuer die Oesis duerfte die Zeitung interessant sein, da ein 
Teil der Redaktion in Wien ist und dementsprechend auch
Themen aus Oesterreich zur Sprache kommen wie zB das Sissi-Jahr
(Komm ins Sissi-Land - der Eintritt bringt Dich um den Verstand!)
Ich kann nur jedem raten mal reinzuschauen, ich habe jedenfalls
lange nicht mehr so geschmunzelt und gelacht. Auch die Kosten
(4Maerker) sind meiner Meinung nach nicht zu hoch, denn geboten 
bekommt man da ziemlich viel.

Alboin
P.S. ehm orthographisch korrekt heisst es natuerlich:
Simplicissimus.
Auch sonst gilt: kein Tag ohne Typos ;)

-----------------------------------------------------------------------------



APOCALYPTICA II (Lug,  9. Mai 1998, 01:51:49):

Jaaaaaaa,

sie ist da: die neue Apocalyptica "Inquisition Symphonie" (nach dem
gleichnamigen Sepultura Song). Diesesmal nicht nur mit Metallica Songs,
sondern auch Sepultura, Faith No More und Eigenkompositionen, darunter das von
den Konzerten bekannte "Harmageddon". Was die vier Finnen da auf dem Cello
zusammenschraddeln ist mal wieder feinste Sahne. Duerfte wiederum neben den
Metallern den Klassikfreunden sehr gefallen. Dazu noch die wichtigsten
Metallica-Balladen, damit duerfte sie diesesmal mehr als 300000 Einheiten
absetzen.

Gehet hinaus und hoerte hinein, so Ihr denn Ohren habt.
Lug

-----------------------------------------------------------------------------



The day (Groo,  9. Mai 1998, 13:40:31):
my friend sayed
raise you head
so hard to belife,
that she is coming
back to me

-----------------------------------------------------------------------------



Das Erste mal (Flinx, 12. Mai 1998, 12:43:42):
Tach Ihrs.

Morgen werde ich zum erstenmal in die Rocky-Horror-Show gehen...
Dazu muesste ich wissen, ws ich nun alles mitnehmen muss und 
wann was wie benutzt wird. Kann mir mal einer Tips geben ?

Waere nett.

Flinx




-----------------------------------------------------------------------------



Re: Das Erste mal (Alboin, 12. Mai 1998, 13:09:04):
~#! rn=Flinx rt=894969822 rg=kultur
~#! tid=894969822
also ne Wasserpsritze fuer den Regen muesste Pflicht sein und 
wenn du mut hast dann zieh noch die reizwaesche Deiner Mutter/
Schwester an, am besten Schwarze.
Mehr faellt mir momentan nicht ein.
Alboin

-----------------------------------------------------------------------------



Re: Re: Das Erste mal (Rantanplan, 12. Mai 1998, 13:49:16):
~#! rn=Alboin rt=894971344 rg=kultur
~#! tid=894969822

Reiss latuernich, reis ist unabdingbar fuer die Rocky-Horror-Show.

Oe*

-----------------------------------------------------------------------------



Re^3: Das Erste mal (Rumata, 12. Mai 1998, 14:48:37):
~#! rn=Rantanplan rt=894973756 rg=kultur
~#! tid=894969822
Klopapier!

-----------------------------------------------------------------------------



Re^4: Das Erste mal (Flinx, 12. Mai 1998, 15:08:43):
~#! rn=Rumata rt=894977317 rg=kultur
~#! tid=894969822
WOZU brauch man zum Jof nochmal Klopapier ?!
Erklaerung waere nett :o)

Flinx. Verdutzt.

-----------------------------------------------------------------------------



Re^5: Das Erste mal (Papiertiger, 12. Mai 1998, 15:22:03):
~#! rn=Flinx rt=894978523 rg=kultur
~#! tid=894969822
Wenn Rocky ausgewickelt wird, dann.

Papiertiger, heute einzeilig.

-----------------------------------------------------------------------------



Re^6: Das Erste mal (Murkes, 12. Mai 1998, 15:25:18):
~#! rn=Papiertiger rt=894979323 rg=kultur
~#! tid=894969822
Feuerzeug oder Wunderkerzen gehoeren doch auch dazu, nicht?
Ausserdem braucht man eine Zeitung (Als Regendach).

Murkes

-----------------------------------------------------------------------------



Re: Das Erste mal (Jimdigriz, 12. Mai 1998, 15:27:44):
~#! rn=Flinx rt=894969822 rg=kultur
~#! tid=894969822
Hoi Flinx,

Erstmal viel Spass.

Wichtig ist: Regenschirm, Super Soaker/Wasserspritze, Reis
Dann das Kostuem, folgende Optionen:
 1. Goldener Slip und viel klopapier, zuerst sich in das Klopapier
   einwickeln lassen, du kriegst dann schon mit, wann Du Dich auswickeln
   musst. Achja, die Haare muessen dann auch blond sein. 
  => Rocky
2. Strapse, Ledermieder, moeglichst in Rot-Schwarz Kombinationen
  und moeglichst sexy (Frank, diverse)

Aber die Koenigsverkleidung ist natuerlich:
 - Weltraumuniform bestehend aus gold-beigem, Karo-gestepptem
   Kunstleder(?)Kleid, kurz und aermellos. 
 Es ist seitlich eigentlich offen und wird nur von einem
 (schwarzen?) breitem Band/Guertel gehalten. An den Schultern
 sitzen grosse, schwarze aufsaetze, schwer zu beschreiben.
 Als Frisur muss man per Haargummi einen neckischen
 Zopf basteln, der allerdings ganz oben am Kopf sein muss.
 schliesslich besorgt man sich noch die Spitze einer
 dreizinkigen Mistgaben, loetet in die mitte einen Korkenzieher, und
 an das Ende einen Pistolengriff an, und verchromt das ganze.
 
 Voila, alle werden ehrfuchrstvoll vor Riff-Raff in die Knie
sinken. 


Auch macht es grossen Eindruck wenn man die
"original" ziemlich obszoenen Zwischenrufe beherscht,
die vermutlich aus irgendeinem Skript stammen, im Film bzw. 
auch im Theater nicht direkt vorkommen. (muessen also aus
dem Publikum kommen), leider hab ich auch keine Quelle
dafuer. 

Ah doch grade entdeckt:
 ftp://ftp.leo.org/pub/rec/music/vocal/lyrics/uwp/r/rocky.horror/script.gz

Da ist auch ein Hinweis auf die Ausruestung.

I see you shiver with antici ..... {"SAY IT!"} pation!

Jim DiGriz.

-----------------------------------------------------------------------------



Rette sich, wer kann! (Yendi, 13. Mai 1998, 13:54:16):



Die Wurst des Verderbens


Es summen die Bienlein! Die Schnucke still aest!
Suess saeuselt des Schaefers Schalmei!
Doch horch! Da regt sich was! Hinter der Geest!
Die Gruetzwurst! Die Gruetzwurst ist frei!


Die Tiere ahnten's! Jetzt drehen sie durch!
Der Henne entschluepfet ein Ei!
Im Sumpfe ersaeufen sich Kroete und Lurch!
Die Gruetzwurst! Die Gruetzwurst ist frei!


Und brodelnd erscheint sie an Dorfes Rand!
Mit blutigem, graesslichem Schrei!
Ein Schatten von Uebelkeit faellt uebers Land!
Die Gruetzwurst! Die Gruetzwurst ist frei!


Schon stuerzt sie sich auf das Huenengrab!
Schon bricht es krachend entzwei!
Schon fetzt sie die ersten Daecher herab!
Die Gruetzwurst! Die Gruetzwurst ist frei!


Da kniet noch der Pfaff in der kleinen Kapell!
Da toent noch die Litanei!
Da wogt es und schwappt schon auf heiliger Schwell!
Die Gruetzwurst! Die Gruetzwurst ist frei!


Wie Feuersbrunst wuetet sie! Heult wie der Sturm!
Wie broeckelt die Konditorei!
Wie gnadenlos holt sie den Gloeckner vom Turm!
Die Gruetzwurst! Die Gruetzwurst! - Jetzt ist sie vorbei!


Berthold Bell

aus:
TITANIC, Jg. 1981, Bd. 8, S. 70 (= Ko-Li-Bri S. 2)



-----------------------------------------------------------------------------



Re: Re: Das Erste mal (Ronda, 13. Mai 1998, 20:33:59):
~#! rn=Jimdigriz rt=894979664 rg=kultur
~#! tid=894969822
Und Toast nicht vergessen! Daran erkennt man wahre Freaks! Na, wer weiss, wo
das vorkommt?

Beim Verfuttern von (args... wie hiess er noch??? Meatloaf halt...) sagt Frank
N Furter:A Toast, please!
... und irgendwo haben sie bei uns im Theater auch noch ein Kartenspiel auf
die buehne geworfen... 
Viel Spass jedenfalls!

Ronda

-----------------------------------------------------------------------------



Re^3: Das Erste mal (Papiertiger, 13. Mai 1998, 22:20:36):
~#! rn=Ronda rt=895084439 rg=kultur
~#! tid=894969822
Meatloaf heisst Eddie ("When Eddie said he didn't like his Teddy you knew he
was a no good kid...")

PdP

-----------------------------------------------------------------------------



Re^4: Das Erste mal (Grimmborn, 13. Mai 1998, 23:09:04):
~#! rn=Papiertiger rt=895090836 rg=kultur
~#! tid=894969822
Nein, Meatloaf heisst "Fleischklops".
Und der Toast, wie lautet dieser unsterbliche Satz?
"To absent friends!"

Grimmborn der Atheist hat das seit Ewigkeiten als ali

-----------------------------------------------------------------------------



Re^3: Das Erste mal (Jimdigriz, 15. Mai 1998, 16:26:24):
~#! rn=Ronda rt=895084439 rg=kultur
~#! tid=894969822

Wenn ich mich recht erinnere sagt er
sogar: "A toast... to absent friends", wobei
 Eddie dann ja gar nicht so sehr absent war. :))

JdG

-----------------------------------------------------------------------------



Re^4: Das Erste mal (Jimdigriz, 15. Mai 1998, 16:27:08):
~#! rn=Jimdigriz rt=895242384 rg=kultur
~#! tid=894969822

Oops,
 man sollte den Thread zuende lesen bevor
man schreibt, Grimmborn war wohl schneller....

JdG

-----------------------------------------------------------------------------



Re^4: Das Erste mal (Pake, 24. Mai 1998, 22:25:14):
~#! rn=Papiertiger rt=895090836 rg=kultur
~#! tid=894969822
und auf _gar_ _keinen_ fall (!), solltest du irgendwas anziehen, was du auch
spaeter noch mal tragen willst ;-)
ich hatte den fehler beim ersten besuch gemacht, und die reinigung meiner
sachen anschliessend war langwierig (und teuer...).

pake
(ps: mensch, wenn du das alles zum ersten mal erlebst, wird es echt spassig
:-)

-----------------------------------------------------------------------------



Re^5: Das Erste mal (Jasonrigid, 25. Mai 1998, 12:20:29):
~#! rn=Pake rt=896041514 rg=kultur
~#! tid=894969822
Das war vielleicht ein bisschen spaet, Pake, vermutlich musste der arme, ob
seiner hohen Reinigungsrechnung schon Konkurs anmelden *grins*

Jason Rigid

-> Schmarrn

-----------------------------------------------------------------------------



Re^4: Das Erste mal (Qitess, 28. Mai 1998, 14:58:03):
~#! rn=Jimdigriz rt=895242384 rg=kultur
~#! tid=894969822
Irgendwie seid Ihr krank...

QI** muss sich doch echt wundern

-----------------------------------------------------------------------------



Re^5: Das Erste mal (Atoz, 28. Mai 1998, 15:09:21):
~#! rn=Qitess rt=896360283 rg=kultur
~#! tid=894969822
Na solange DU die einzige Gesunde bist, sei doch froh

. o O (Einbildung ist auch eine Bildung, oder so...)
Atoz - immer krank, aber dabei gluecklich!

-----------------------------------------------------------------------------



Re^5: Das Erste mal (Jehova, 29. Mai 1998, 20:43:04):
~#! rn=Pake rt=896041514 rg=kultur
~#! tid=894969822
So schlimm ist die Reinigung auch nicht. Man muss diesen Mehl-Wasser-Mix nur
trocknen lassen und dann ausklopfen. Ach ja, wozu war das Mehl nochmal da ? :)

Bye, J*

-----------------------------------------------------------------------------



Re^6: Das Erste mal (Pake, 30. Mai 1998, 03:58:27):
~#! rn=Jehova rt=896467384 rg=kultur
~#! tid=894969822
versuch das mit den abklopfen mal bei ner wild/rauh-lederjacke *sigh*

pake (will jetzt bitte keine haemischen "selbst-schuld!" spottiraden hoeren
;-)

-----------------------------------------------------------------------------



Non-Specialization (Yendi,  3. Jun 1998, 21:35:37):

A human being should be able to change a
diaper, plan an invasion, butcher a hog, conn a
ship, design a building, write a sonnet, balance
accounts, build a wall, set a bone, comfort the
dying, take orders, give orders, cooperate, act
alone, solve equations, analyze a new
problem, pitch manure, program a computer,
cook a tasty meal, fight efficiently, die
gallantly. Specialization is for insects. 

Lazarus Long in Time Enough For Love.



-----------------------------------------------------------------------------



In memoriam... (Caradhras,  5. Jul 1998, 13:10:59):
In Erinnerung an alte Tage:

-----------------------------------------------------------------------
Absender: Fyt
An: Anatol
Cc: Kotzbrocken, Magicolli, Fels, Zephyr, Mars, Hardil, Keldorn, Monotoni
Datum: Fre,  7. Apr 1995, 14:06:41
Titel: Fw: MonsterEP V3
Weitergesendete mail, urspruenglich von: fyt
-----------------------------
Hydra                   320000          (Bambulko)
Vampir_(ohne_Ast)       80000           (Bernhard)
Steinbeisser(komplett)  40000           (Zephyr)
Eistitan                39248   38000   (Ryne)
Lich                    35500           (Bibo)
Balrog                  29359   29198   (Asmodis)
Arena                   28000           (Zephyr)
Ketos                   26040           (Asmodis)
Kristalldrache          24000           (Bambulko)
Eisgigant               23740   23195   (Caradhras)
Kristalldrache          23331           (Ryne)
Schlammdrache           23254           (Bambulko)
Herrscher_Dunkeldaem.   23214           (Ryne)
Vampir                  23000           (Bernhard)
Etwas                   22000           (Anatol)
Zerberus                21165           (Asmodis)
Goblinhexer             20860   15000   (Ryne)
Kretek                  20800           (Caradhras)
Woglinde                20700           (Anatol)
Glizermock              17653   17500   (Bambulko)
Schleimdrache           16560           (Ryne)
Hunnar_Rotbart          15500           (Bernhard)
Eisdrache               15310           (Ryne)
Goblindrache            14730           (Acrimon)
Anne                    14600           (Anakin)
Grabunhold              14500   9110    (Bibo)
Eisriese                14300   14136   (Caradhras)
Asmodis                 14230           (Bambulko)
Sensenmann              14000           (Caradhras)
Leibgardewaechter       13515           (Asmodis)
Dunkelelfen_Wache       13260           (Magicolli4)
Trollmops               13000   10891   (Bambulko)
Dunkelelfenwaechter     13000           ?
Leuchttroll             12150           (Ryne, Bambulko)
Schleimdrache           12000           (Anakin)
Goblinanfuehrer         11734 (?)       (Ryne)
Sumpfdrache             11352           (Ryne)
Gardewaechter           11000           (Fyt)
Schneeriese             10800   10288   (Caradhras)
Wuergertanne            10792           (Bambulko)
Katze_(Muehle)          10000           (Zephyr)
Sabberwarze             9876    9561    (Bambulko,Ryne)
Schlabbermurks          9650    9200    (Caradhras)
Erfahrene_Dunkeldaemon  9625            (Ryne)
Putzteufel              9431            (Bambulko)
Achtarmiger_Priester    9400            (Fyt)
Stahldrache             9270    9075    (Ryne, Bambulko)
Zwackelmann             9080            (Ardana)
Tausendfuessler         9000    4500    (Fyt)
Herkules                8630            (Snuggle)
Untier                  8569            (Asmodis)
Jaeger                  7776            (Magicolli)
Frostbeule              7449            (Ryne)
Orkhenker               7394            (Magicolli)
Eisbaer                 6608    6407    (Bambulko, Ryne)
Raudaemonen             6469            (Ryne)
Johanna_von_Orleans     6356    6312    (Snuggle)
Grosswesir_(Xanti)      6350    6170    (Fyt)
Masseur                 6200            (Asmodi)
Thorbold                6168            (Magicolli)
Eber_(wild)             6002            (Magicolli)
Hippe                   5937            (Fyt)
Spinne_(Moron)          5834    5690    (Fyt)
Rakorium                5800            (Anakin)
Mammut                  5706    5400    (Asmodis)
Eisbaer(Eiswueste)      5498            (Asmodis)
Eisprinzessin           5166            (Asmodis)
Entschleimer            5160            (Guybrush)
Orkanfuehrer            5015            (Ryne)
Riesennasenpopel        4788            (Guybrush)
Hobgoblin               4746    4506    (Fyt)
Dunkeldaemonen          4699            (Ryne)
Orkwaechter_(Leibwache) 4500            ?
Ork_(stark)             4500            (Anakin)
Gaernerin               4429            (Asmodis)
Haegar                  4343            (Snuggle)
Eisdaemonen             4322            (Ryn)
Steinbeiss_(mit&schw)   4240            (Asmodis)
Weihnachtsmann          4160    4055    (Asmodis)
Mime                    4160            (Asmodis)
Tentakelmonster         3991            (Ryne)
Steinbeisser(gef&schw)  3900            (Asmodis)
Polarfuchs              3808            (Asmodis)
Gletscherzunge          3785            (Asmodis)
Yeti                    3784            (Asmodis)
Wildsau                 3693            (Fyt)
Troll                   3673            (Ryne)
Fackelexperte           3656            (Magicolli)
Echsenwaechter_(Moron)  3625            (Bernhard)
Schattenfrau            3605(?) 2400    (Fyt)
Troll                   3500            ?
Goblin                  3496    3300    (Zephyr)
Priester_(Xanti)        3450    3268    (Fyt)
Elfenwaechter_(Glocken) 3358            (Fyt)
Tischler                3317            (Magicolli)
Orkpatrouille           3244            (Magicolli)
Schachkoenig            3240    2440    (Asmodis)
Daenischer_Koch         3160            (Bambulko)
Ratte_(Casinokeller)    3000            ?
Schneeball              2848            (Bambulko)
Ork_(Eingang)           2806            (Ryn)
Zwergenwaechter         2800            (Bambulko)
Schneeball              2768            (Ryn)
Uial_(Elfenkneipe)      2723            (Asmodis)
Bettler                 2712    882     (Fyt)
Kristallscherbenbeisser 2606            (Ryn)
Mecki                   2600            (Anakin)
Eisschlecker            2512            (Asmodis)
Luchs                   2490            (Magicolli)
Butler                  2460            (Magicolli)
Schattenmann            2450    1624    (Fyt)
Herr_Meier              2442            (Magicolli)
Popeye                  2327            (Snuggle)
Geier                   2243            (Magicolli)
Wilhelmine              2222            (Magicolli)
Charlie_Pinguin         2200            (Anakin)
Akolythin               2330    2110    (Fyt)
Killerpopel             2042    2004    (Caradhras)
Schrat                  2000    1970    (Anakin)
Luchs                   1930            (Asmodis)
Steinbock               1900            (Asmodis)
Rentier                 1879            (Asmodis)
Kleopatra               1806            (Snuggle)
Halbdunkeldaemonen      1740            (Ryne)
Biber                   1733            (Biber)
blubbernder_Loewenzahn  1720            (Magicolli)
Lichtdaemon             1674            (Bambulko)
Wirt_(Elfenkneipe)      1602            (Asmodis)
Titanwalze              1602    1587    (Bambulko, Ryne)
Tasmanischer_Teufel     1536            (Asmodis)
Zigeuner                1522            (Magicolli)
Orklager_(Drachenhort)  1518            (Fyt)
Schlange_(riesig)       1500            (Fyt)
Kareem_Fekesh           1466            (Fyt)
Steinbeisser_(kl&schw)  1406            (Asmodis)
Kuh                     1384            (Monotoni)
Nebenteufel             1302            (Asmodis)
Wolfsmensch             1208            (Fyt)
Garon                   1147            (Anatol1)
Eisschollenbeisser      1136            (Ryn)
Conan_der_Barbar        1126    1046    (Snuggle)
Wolpertingerin          1120            (Asmodis)
Feuersalamander         1120            (Asmodis)
Eisschollenbeisser      1113            (Bambulko)
Minenarbeiter           1058            (Asmodis)
Drachenbaby             1020            (Magicolli)
Kaenguin                999             (Asmodis)
Kampfblech              951             (Ryne)
LAG                     949             (Asmodis)
Schnabeltier            870             (Asmodis)
Skorpion                856 ;Gift       (Anatol)
Moewe                   856             (Magicolli4)
Wegelagerer             850             (Warlord)
Rennschnecke            802             (Asmodis)
Helix_Pomata            800     783     (Caradhras)
Kartoffelsalat          756             (Arty)
Zigeunerin              752             (Magicolli)
Chamaeleon              748             (Monotoni)
Vrais_Freuend_Faux      676             (Asmodis)
Nibelung                659             (Asmodis)
Ork_(schwach)           650             (Anakin)
Andy                    630     712     (Fyt)
Zweihaupt               620             (Warlord)
Architekt               600             (Anakin)
Schlange_(klein)        534     506     (Fyt)
Frosch_(suess_&_klein)  505             (Asmodis)
Willy_Wuehlback         475             (Snuggle)
Elster                  475     457     (Fyt)
Orkkoch                 472             (Magicolli)
Ente_(Nabla)            440             (Warlord)
Rank_Xerox              438             (Anatol)
Libelle                 385             (Asmodis)
Baer                    342             (Anatol)
Eichelhaeher            335     305     (Fyt)
Hase                    330             (Anatol)
Robin_der_Abklatsch     324             (Magicolli)
Daemonenfliege          314             (Bambulko)
Mittelspecht            303             (Magicolli)
Kroete                  260     220     (Caradhras)
Ren                     255             (Magicolli)
Frosch                  255             (Anatol)
Waldameise              250             (Fyt)
Hase                    250     210     (Fyt)
Rehbock                 235             (Fyt)
Wolf                    233             (Caradhras)
Versicherungsvertreter  225             (Magicolli)
Einsiedler              180             (Arty)
Schneehoernchen         175             (Magicolli)
Schattenmaus            167             (Magicolli)
Meise                   145     125     (Fyt)
Zwerg_(fett)            143             (Magicolli)
Fondil_Farin            138             (Asmodis)
Blattlaus               125             (Anatol)
Schneehuhn              116             (Magicolli)
Kaninchen               110     26      (Anatol)
Hornisse                104     103     (Anatol)
Spinne                  102             (Anatol)
Kakerlake               98      89      (Anatol)
Reh                     72      106     (Fyt)
Guybrush                69              (Guybrush)
Weisskehlchen           62              (Magicolli)
Ameise                  49      42      (Anatol)
Wespe                   40      36      (Anatol)
Schmetterling           23      18      (Anatol)
Wuestenfloh             4               (Anatol)
Schneewittchen          0 (?)           (Fyt)


-----------------------------------------------------------------------

      Gruss und Kuss *quak*

                Bergfrosch Caradhras

-----------------------------------------------------------------------------



Top1400 (Zarniya,  1. Sep 1998, 18:08:12):
Hi, 

fuer alle, die nicht genug kriegen koennen/wollen und sich auch bei der
schwachsinnigsten TopListe selbstbefriedigen nun der ultimative Surftip:

http://www.swr3.de/Start_ins_Wildall/countdown.html

Viel ... aeh... Spassssss

Zarniya

-----------------------------------------------------------------------------



Re: Top1400 (Anatol,  1. Sep 1998, 18:20:45):
~#! rn=Zarniya rt=904666092 rg=kultur
~#! tid=904666092
Peinlich daran ist nur, dass unter den Top 10 die Haelfte kurzlebiger
Ausschuss ist. Baaaeeeeh! :-)

Favorisiert #2, 
Anatol


-----------------------------------------------------------------------------



Re: Re: Top1400 (Boing,  2. Sep 1998, 10:15:40):
~#! rn=Anatol rt=904666845 rg=kultur
~#! tid=904666092
Mein Favorit kommt erst auf Platz 1372, und dazu ist der Titel noch
falsch geschrieben ... sowas ... ;)
  Boing

-----------------------------------------------------------------------------



Re^3: Top1400 (Hobo,  2. Sep 1998, 10:20:48):
~#! rn=Boing rt=904724140 rg=kultur
~#! tid=904666092
Das Beste ist einwandfrei auf Platz 69!

   Hobo

-----------------------------------------------------------------------------



Re: Re: Top1400 (Songoku,  4. Sep 1998, 12:39:54):
~#! rn=Anatol rt=904666845 rg=kultur
~#! tid=904666092
Bei mir ist die untere haelfte der liste etwas verschoben.
Beispiel This is hardcore von den Comedian Harmonists :)

-----------------------------------------------------------------------------



Re^4: Top1400 (Jimdigriz,  4. Sep 1998, 17:30:28):
~#! rn=Hobo rt=904724448 rg=kultur
~#! tid=904666092
Tag,

neinein, Hobo, auf Platz 1151 :-))

JdG

-----------------------------------------------------------------------------



Re^5: Top1400 (Siborit,  5. Sep 1998, 10:21:17):
~#! rn=Jimdigriz rt=904923028 rg=kultur
~#! tid=904666092
Die erste 5 Minuten und die letzte 3 Minuten sind okay Jim, aber ansonsten ist
1144 erheblich besser ;))

Siborit.

-----------------------------------------------------------------------------



Re^6: Top1400 (Jimdigriz,  9. Sep 1998, 14:12:17):
~#! rn=Siborit rt=904983677 rg=kultur
~#! tid=904666092
Hoi Sib,

tja das ist wohl dann doch persoenclihe 
Geschmacksachen.
Ich wuerde noch 236 recht weit vorne bewerten,
meine persoenliche Reihenfolge, der Titel waere:
 1151,236,419,33,5,954,491,1144,308

Ciao,
 JdG

-----------------------------------------------------------------------------



Re^7: Top1400 (Siborit,  9. Sep 1998, 22:58:18):
~#! rn=Jimdigriz rt=905343137 rg=kultur
~#! tid=904666092
Hoi Jim,

Meine Liste sieht sieht ein bisschen anderes aus. Hier kommt sie:

852, 1144, 419, 236, 491, 954, 5, 1151, 33 und zum Schluss 308.

Fuer die Vollstaendigkeit, auch nochmal einige andere Favoriten, die nicht in
der Liste auftauchen, aber doch zu meinen persoenlichen favoriten gehoeren:

- Shine on you craxy Diamond (part 2).
- Dogs
- Atom Heart Mother Suite
- Several species of small furry animals gathered together in a cave and
grooving with a pict (nur wegen den Titel eigentlich ;).


Ciao, Siborit . o 0 (und gleich geht das ---> schmarrn los ;)

-----------------------------------------------------------------------------



Sexual Relations (Dancer, 24. Sep 1998, 21:44:01):
Hi zusammen :)

Wer Lust hat, ein Preview des Dancefloor-Herbsthits "Sexual Relations" zu
hoeren, der kann sich auf unserer Webseite gerne eine MP3-Version downloaden.
Es geht in dem Lied um einen Staatsmann, der ein wenig vom Pfade der Tugend
abgekommen zu sein scheint... bzw. das Pech hatte, dass es jemand anderen
interessiert hat. :)

Und bevor einer 'Schleichwerbung, Schleichwerbung' unkt... nein, der Song ist
nicht von mir und ich bin auch nicht dran beteiligt. (Nein, und es geht in dem
Song auch nicht um mich!) Die Adresse ist: http://www.section8.de

Viel Spass,

Dancer


-----------------------------------------------------------------------------



fuer Acrimon #1 (Zarniya,  1. Okt 1998, 16:24:50):
READ BETWEEN THE LIES 

      Evangelist You Claim God Speaks Through You
      Your Restless Mouth Full Of Lies Gains Popularity
      You Care Not For The Old That Suffer
      When Empty Pockets Cry From Hunger 

      Penniless From Their Generosity
      Sharing Their Money To Quench Your Greed
      Searching For The Answer To Their Prayers
      The Cry Their Last Wish Of Need
      Save Me 

      His Spirit Lives And Breathes In Me
      The Almighty Transformed To Your Screen
      The Meanings Lost In Its Translation
      No Holy Words, Describe His Deception 

      You Say You'll Help Us Find The Lord
      Tell Me Preacher How Do You Know
      A Simple Quest For A Visible Savior
      To Lead Us Through Our Final Prayer
      Save Me 

      Send Your Donations
      Contribute To The Cause
      Luxuries
      Your Righteous Reward? 

      Praise The Lord, Praise God,
      Is What You Wish To Sell
      There Is No Heaven Without A Hell 

      Lead - Hanneman 

      In Your Minds Eye Could You Truly Believe
      That By Giving You Can Save Your Soul
      Could You Be So Naive!
      You Heal The Sick, Raise The Dead
      You Blind The Congregation
      With The Things You Say 

      Religious Blackmail A Deceit Of Trust
      That Death Will Come And All Will Be Lost: 

      Can You Hear The Serpents Call
      Look Deep In Those Deceiving Eyes
      Ignore The Writing On The Wall
      You Should Read Between The Lies 

      When Doubt Subsides His Honesty
      An Inquiry, Is It Blasphemy?
      Impure The Soul, Thats Made To Suffer
      No Sermons Left To Hide Or Cover
      An Empty Promise, Lie Unfulfilled
      To Steal A Dram Or Get It Killed
      They Claim Your Trip To Heavens Nearby
      You May Believe It, But Satan Wouldn't Lie 


Zarniya, Morgoth angrinsend

-----------------------------------------------------------------------------



fuer Acrimon #2 (Zarniya,  1. Okt 1998, 16:29:06):
JESUS SAVES 

      You Go To The Church, You Kiss The Cross
      You Will Be Saved At Any Cost
      You Have Your Own Reality
      Christianity
      You Spend Your Life Just Kissing Ass
      A Trait That's Grown As Time Has Passed
      You Think The World Will End Today
      You Praise The Lord,
      It's All You Say 

      Jesus Saves, Listen To You Pray
      You Think You'll See The Pearly Gates
      When Death Takes You Away 

      For All Respect You Cannot Lust
      In An Invisible Man You Place Your Trust
      Indirect Dependency
      Eternal Attempt Of Amnesty
      He Will Decide Who Lives And Who Dies
      Depopulate Satanas Rise
      You Will Be An Accessory
      Irreverence And Blasphemy 

      Lead - King 

      Jesus Saves, No Need To Pray
      The Gates Of Pearl Have Turned To Gold
      It Seems You've Lost Your Way 

      Lead - Hanneman 

      Jesus Saves
      No Words Of Praise
      No Promised Land To Take You To
      There Is No Other Way 

Zarniya, immer noch Morgoth angrinsend

-----------------------------------------------------------------------------



Re: fuer Acrimon #2 (Ark,  1. Okt 1998, 19:30:27):
~#! rn=Zarniya rt=907252146 rg=kultur
~#! tid=907252146
Wo is da der Zusammenhang? Haeme oder so? Naja, jedenfalls toll, dass
irgendwelche Grueppchen fuer uns denken ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Lie Metal (Acrimon,  1. Okt 1998, 19:43:38):
Hoert sich nach Metal an ... 

Hmm ... Satanisten, die sehen alles mit verdrehten Augen.
"Satan wuerde nicht luegen".... naja.

-----------------------------------------------------------------------------



Re: Lie Metal (Grimmborn,  2. Okt 1998, 11:09:35):
~#! rn=Acrimon rt=907263818 rg=kultur
~#! tid=907263818
Hmm, gabs nicht einen Begriff fuer zitieren ohne Quellenangaben? Ich meine,
ich haette da im Strafgesetzbuch mal sowas gelesen... ;-)

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Lie Metal (Urthona,  4. Okt 1998, 19:21:08):
~#! rn=Acrimon rt=907263818 rg=kultur
~#! tid=907263818
Ich bin auch kein Metalfreund, aber hier geht es um den text; alles gleich in
die Satanistenecke zu draengen ist genau das, was mich absolut ankotzt.

Und da schreiben solche Leute noch, dass man nicht auf ihrem allerheiligsten
rumtrampeln soll. Wieso denn nicht?

Urthona.

PS: Satan ist der Beste Freund der Kirche, ohne ihn waere das Geschaeft mit
dem Seelenverbl^H^H^H^H^Hfang niemals so lukrativ.

-----------------------------------------------------------------------------



Pu Paputzis? (Qitess,  9. Okt 1998, 17:30:38):
------------------------------------------------------------------------------
-


Die kluge Frau Januzis

In einer Stadt in Griechenland,
Da hinkte Frau Januzis
Mit einem Absatz in der Hand
Und fragte: "Puh papuzis?"
Es war zur sechsten Abendstund'
Und schon ein wenig duster.
Sie fragte:"Puh papuzis?" Und
Das heisst auf deutsch: Wo Schuster?

Sie ging auf einem Absatz nur,
Die arme Frau Januzis.
Es wurde langsam sieben Uhr.
Sie fragte:"Puh papuzis?"
Sie fragte, wo ein Schuster waer',
Zur Rechten oder Linken.
Sie musste weiter kreuz und quer
Die kleine Stadt durchhinken.

Doch fand sich, ach, kein Schuster fuer
Die arme Frau Januzis.
Sie ging umsonst von Tuer zu Tuer
Und fragte:"Puh papuzis?"
Es wurde neun, es wurde zehn,
Es wurde zappenduster.
Doch nirgends war ein Schild zu sehn
Von irgendeinem Schuster.

Am Ende war sie schrecklich matt,
Die arme Frau Januzis.
Sie fragte in der kleinen Stadt
Nicht weiter: Puh papuzis?
Sie setzte sich auf eine Bank,
Massierte sich die Beine,
Besann sich zehn Minuten lang
Und half sich dann alleine.

Sie nahm den zweiten Schuh, schwipp-schwapp,
Die kluge Frau Januzis,
Und riss auch dessen Absatz ab,
Als waer' sie ein papuzis.
Sie ging auf Sohlen weiter fort.
Und das verdenkt ihr keiner.
Denn gar kein Absatz (auf mein Wort)
Ist besser als nur einer !



------------------------------------------------------------------------------
--
aus: Mein Urgrossvater und ich
von James Kruess

QI** faellt das so gerade mal ein, weil auf Kreta auch in Griechenland ist.

P.S.: Pu heisst wirklich wo, paputzis aber eher S...Schuh ... ja.
      paputzis heisst schuh (denke ich...und 'bloeder editor' denke ich auch)


-----------------------------------------------------------------------------



Ein paar gute Gruende, Mann zu sein (Groo,  9. Nov 1998, 23:04:15):
Na was is
Sei Froh ein Mann zu sein
denn
Gruende, warum es wunderbar ist, ein Mann zu sein
>
> Telefongespraeche dauern nur 30 Sekunden.
>
> Du hast fundierte Kenntnisse ueber Autos und Panzer.
>
> Fuer 5-Tage-Urlaube benoetigst Du nur einen Koffer.
>
> Du musst nicht das Sexualleben Deiner Freunde beraten.
>
> Die Menschen-Schlangen vor dem Klo sind um 80% kuerzer.
>
> Alten Freunden ist es egal, ob Du zu- oder abgenommen hast.
--mehr--(24%) ANFANG
>
> Wenn Du durch TV-Programme zappst, brauchst Du nicht anhalten, wenn Du

> jemanden weinen siehst.
>
> Deine Orgasmen sind nicht vorgetaeuscht.
>
> Ein Bierbauch macht Dich fuer das andere Geschlecht nicht unsichtbar.
>
> Du brauchst Dir nicht den Rock festzuhalten, wenn Du eine Treppe
> hinaufgehst.
>
> Du musst nicht in einer Gruppe auf's Klo gehen.
>
> Du kannst morgens in 10 Minuten geduscht und fertig sein.
>
> Beim Sex mut Du  Dir keine Sorgen um Deinen Ruf machen.
>
> Deine Unterwaesche kostet DM 15,- im Dreierpack.
>
> Du brauchst Dich nicht halsabwaerts rasieren.
>
> Es macht niemandem etwas aus, wenn Du 34 Jahre alt und noch nicht
> Wenn Du durch TV-Programme zappst, brauchst Du nicht anhalten, wenn Du

> jemanden weinen siehst.
>
> Deine Orgasmen sind nicht vorgetaeuscht.
>
> Ein Bierbauch macht Dich fuer das andere Geschlecht nicht unsichtbar.
>
> Du brauchst Dir nicht den Rock festzuhalten, wenn Du eine Treppe
> hinaufgehst.
>
> Du musst nicht in einer Gruppe auf's Klo gehen.
>
> Du kannst morgens in 10 Minuten geduscht und fertig sein.
>
> Beim Sex mut Du  Dir keine Sorgen um Deinen Ruf machen.
>
> Deine Unterwaesche kostet DM 15,- im Dreierpack.
>
> Du brauchst Dich nicht halsabwaerts rasieren.
>
> Es macht niemandem etwas aus, wenn Du 34 Jahre alt und noch nicht
> verheiratet bist.
>
> Du kannst 90 % Deiner Zeit nach dem Aufstehen an Sex denken!!
>
> Dir sind drei Paar Schuhe mehr als genug.
>
> Du kannst Dein T-Shirt einfach ausziehen, wenn Dir heiss ist.
>
> Du brauchst Deine Wohnung nicht jedesmal zu putzen, wenn Besuch kommt.

>
> Die Mechaniker der Auto-Werkstatt beluegen Dich nicht.
>
> Du kannst mit einem Freund ohne ein Wort zu sagen stundenlang
> fernsehen,ohne zu
> denken "er ist sauer auf mich".
>
> Du kennst nur einen Gemuetszustand.
>
> Du kennst mindestens 30 Moeglichkeiten, eine Bierflasche zu oeffnen.
>
> Du kannst mit gespreizten Beinen sitzen, ohne darueber
nachzudenken,was du
> gerade anhast
>
> Du bekommst fuer die gleiche Arbeit mehr Geld.
>
> Es gibt immer einen TV-Kanal, auf dem Sport kommt.
>
> Die TV-Fernbedienung gehoert Dir alleine.
>
> Die Leute schauen Dir nicht in den Ausschnitt, wenn Du mit Ihnen
sprichst.
>
> Du kannst einen Freund besuchen, ohne ihm ein Geschenk mitzubringen.
>
> Du kannst Kondome kaufen, ohne dass sich der Verkaeufer Dich nackt
> vorstellt.
>
> Neue Schuhe tun Deinen Fuessen nichts an.
>
> Pornofilme sind fuer Dich gemacht.
>
> Dass Dir eine Person nicht sympathisch ist, heisst noch lange nicht,
dass
> du Dir Sex mit ihr nicht vorstellen kannst.
> Mit 400 Millionen Spermien pro Schuss koenntest Du theoretisch die
> Weltbevoelkerung verdoppeln.


cu oetzi

Na wenn das nicht ein paar Gruende sind :)
Groo

-----------------------------------------------------------------------------



Re^4: Stammtisch in Ddorf verlegen? (Rantanplan, 10. Nov 1998, 02:04:59):
~#! rn=Cymonk rt=910652514 rg=treffen
~#! tid=910386881
Ich bestehe darauf, dass ich Orgasmen vortaeuschen kann !! ;-))
Ich bestehe darauf, dass ich Orgasmen vortaeuschen kann !! ;-))
Ich bestehe darauf, dass ich Orgasmen vortaeuschen kann !! ;-))


Oe*

-----------------------------------------------------------------------------



Re^5: Stammtisch in Ddorf verlegen? (Grimmborn, 10. Nov 1998, 11:13:30):
~#! rn=Rantanplan rt=910663499 rg=kultur
~#! tid=910386881
"Wie taeuscht ein Schwuler einen Orgasmus vor?" "Er kippt warmen Joghurt ueber
den Ruecken des anderen."

GdA

-----------------------------------------------------------------------------



Re: Maenner-WG (Dieder, 10. Nov 1998, 12:27:44):
~#! rn=Grimmborn rt=910697275 rg=kultur
~#! tid=910697275
Hmm, netter Text, nur - irgendjemand hat sich bei mir immer beschwert, wenn
ich solche Texte einfach nur reingepastet habe, ohne die Umlaute und Scharf-S
*grins Acrimon* umzuwandeln... *kicher*
wer das wohl war??? :-)

Dieder, grinsend.

-----------------------------------------------------------------------------



"gruebel" ich hab sie drin gelassen weil ich sie bei mir sehen konnte (zu meiner verwunderung zugegebenermassen). aber da eh nach witze sollte mach ichs halt neu. (Grimmborn, 10. Nov 1998, 12:35:29):
~#! rn=Dieder rt=910700864 rg=kultur
~#! tid=910697275

Grimmborn der Atheist

-----------------------------------------------------------------------------



these days (Gorog,  2. Dez 1998, 00:34:06):
Mal ne kleine Anmerkung, wer nette hausgemachte "Rock-Music" (wenn man das so
nennen darf) mag. Der solle sich ne Karte oder mehrere fuer die aktuelle Fury
Kneipen-Tour besorgen. Lohnt sich auf jedenfall, nicht nur wegen dem
zusaetzlichen Streichquartett.

Gorog war gerade da und wollte eigentlich gar nicht weg.

-----------------------------------------------------------------------------



Weihnachten (Grimmborn, 23. Dez 1998, 15:59:43):
Und hier wieder, in einer zufaelligen Rubrik, die Weihnachtsgeschichte:

Eine kleine Geschichte zur Weihnacht

Die achtjaehrige Virginia O'Hanlon aus New York wollte es ganz genau wissen. 
Darum schrieb sie an die Tageszeitung "Sun" einen Brief:

"Ich bin acht Jahre alt. Einige von meinen Freunden sagen, es gibt keinen
Weihnachtsmann. Papa sagt, was in der 'Sun' steht ist immer wahr. Bitte sagen
Sie mir: Gibt es einen Weihnachtsmann? - Virginia O'Hanlon"

Die Sache war dem Chefredakteur Francis P. Church so wichtig, dass er selber
antwortete - auf der Titelseite der "Sun":

"Virginia,
Deine kleinen Freunde haben nicht recht. Sie glauben nur, was sie sehen; sie
glauben, dass es nicht geben kann, was sie mit ihrem kleinen Geist nicht
erfassen koennen. Aller Menschengeist ist klein; ob er nun einem Erwachsenen
oder einem Kind gehoert. Im Weltall verliert er sich wie ein winziges Insekt.
Solcher Ameisenverstand reicht nicht aus, die ganze Wahrheit zu erfassen und
zu begreifen.
Ja, Virginia, es gibt einen Weihnachtsmann. Es gibt ihn so gewiss wie Liebe
und Grossherzigkeit und Treue. Weil es all das gibt, kann unser Leben schoen
und heiter sein. Wie dunkel waere die Welt, wenn es keinen Weihnachtsmann
gaebe! Es gaebe dann auch keine Virginia, keinen Glauben, keine Poesie - gar
nichts, was das Leben erst ertraeglich machte. Ein Flackerrest an sichtbarem
Schoenen bliebe uebrig. Aber das Licht der Kindheit, das die Welt ausstrahlt,
muesste verloeschen.
Es gibt einen Weihnachtsmann. Sonst koenntest Du auch den Maerchen nicht
glauben. Gewiss, Du koenntest Deinen Papa bitten, er solle am Heiligen Abend
Leute ausschicken, den Weihnachtsmann zu fangen. Und keiner bekaeme ihn zu
Gesicht - was wuerde das beweisen? Kein Mensch sieht ihn einfach so. Das
beweist gar nichts. Die wichtigen Dinge bleiben meistens unsichtbar. Die
Elfen, zum Beispiel, wenn sie auf Mondwiesen tanzen. Trotzdem gibt es sie. All
die Wunder zu denken - geschweige denn sie zu sehen, das vermag nicht der
Kluegste auf der Welt. Was Du auch siehst, Du siehst nie alles.
Du kannst ein Kaleidoskop aufbrechen und nach den schoenen Farbfiguren suchen.
Du wirst einige bunte Scherben finden, nichts weiter. Warum? Weil es einen
Schleier gibt, der die wahre Welt verhuellt, einen Schleier, den nicht einmal
alle Gewalt auf der Welt zerreissen kann. Nur Glaube und Poesie und Liebe
koennen ihn lueften. Dann wird die Schoenheit und Herrlichkeit dahinter auf
einmal zu erkennen sein. 
'Ist das denn auch wahr?' kannst Du fragen. Virginia, nichts auf der ganzen
Welt ist wahrer und nichts bestaendiger. Der Weihnachtsmann lebt, und ewig
wird er leben. Sogar in zehnmal zehntausend Jahren wird er da sein, um Kinder
wie Dich und jedes offene Herz mit Freude zu erfuellen. Frohe Weihnacht,
Virginia.
Dein Francis P. Church"

(Der Briefwechsel zwischen Virginia O'Hanlon und Francis P. Church stammt aus
dem Jahr 1897. Er wurde ueber ein halbes Jahrhundert bis zur Einstellung der
"Sun" im Jahre 1950 alle Jahre wieder zur Weihnachtszeit auf der ersten Seite
der Zeitung abgedruckt.)


Ich wuensche allen ein frohes und gesegnetes Weihnachtsfest!

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Weihnachten (Paltum, 23. Dez 1998, 18:01:41):
~#! rn=Grimmborn rt=914428783 rg=kultur
~#! tid=914428783
und was beweist es, dass der chefredakteur von sun behauptet es gebe den
weihnachtsmann ? => GAR NIX :-)

-----------------------------------------------------------------------------



Re: Re: Weihnachten (Grimmborn, 23. Dez 1998, 18:04:49):
~#! rn=Paltum rt=914436101 rg=kultur
~#! tid=914428783
Immerhin ist die Zeitung 1950 eingestellt worden.
Und ueber die gleichnamige Rechnerfirma decken wir zum Fest der Liebe und
Versoehnung einen Mantel des Schweigens...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Weihnachten (Acrimon, 23. Dez 1998, 22:00:19):
~#! rn=Grimmborn rt=914428783 rg=kultur
~#! tid=914428783
argh, wird dieser idiotische Mist denn jedes Jahr gepostet...
Phantasie ist gut, aber
- die Realitaet der Phantasie unterzuordnen, noch dazu wenn
- diese "Phantasie" gar nicht die eigene Phantasie ist, sondern
- eine von Werbefirmen willkuerliche Verballhornung im Kitsch-Stil ist,
ist eine absolute Unverschaemtheit und ethisch nicht zu vertreten.

Sich von auszen mit Phantasien anderer Leute zuschuetten zu lassen, hat nichts
mit echter Phantasie zu tun. Denn Phantasie bedeutet: *SELBST* sich etwas
ausdenken.
Und Kindern Luegengeschichten zu erzaehlen, die auszerdem leicht durchschaubar
sind, und ihnen noch dazu von "offizieller" Seite zu bestaetigen, dasz diese
Luegengeschichten wahr waeren, halte ich fuer ein ethisches Verbrechen
hoechsten Grades. Denn man programmiert dadurch die "Erkenntnis" vor, dasz
alle Menschen fast immer luegen, und das fuehrt zu schlimmen Depressionen...
Dasz es wahrheitsliebende Menschen gibt, glauben die naemlich nicht mehr.

Hoffentlich kommt dieser Mist von dem Sun-Chefredaktuer nicht naechstes Jahr
schon wieder.

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re: Re: Weihnachten (Grimmborn, 23. Dez 1998, 23:32:02):
~#! rn=Acrimon rt=914450419 rg=kultur
~#! tid=914428783
[ ] Du hast verstanden worum es in diesem Text geht.
Naja, naechstes Jahr bekommst Du bestimmt wieder eine Chance...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Re: Weihnachten (Kellybundy, 28. Dez 1998, 02:40:10):
~#! rn=Acrimon rt=914450419 rg=kultur
~#! tid=914428783
 'Denn man programmiert dadurch die "Erkenntnis" vor, dasz alle Menschen fast
immer luegen, und das fuehrt zu schlimmen Depressionen'

Hihi. Da sprach der Experte! Gott ist also ein ethisches Verbrechen, sieh an
]:)

Dumpfbeutel

-----------------------------------------------------------------------------



Re: Re: Weihnachten (Daria, 29. Dez 1998, 15:34:45):
~#! rn=Acrimon rt=914450419 rg=kultur
~#! tid=914428783
Ich muss dich leider korrigieren, Acrimon.
Luegengeschichten hin oder her...
Aber Kinder WOLLEN einfach bis zu nem bestimmten Alter an Christkind etc.
glauben. Denn: 
Mein Onkel fand auch, man koenne Kinder doch nicht anluegen. Also hat er
meiner Kusine gesagt, der Nikolaus, den gaebs nicht, die Geschenke sind von
den Eltern. (meine Kusine ist 5).
Am 6.12. hat er ihr die Geschenke gegeben, und sie haben ein paar Lieder
gesungen.
Und als meine Kusine ins Bett musste hat sie noch gefragt 
"Aber heute nacht kommt doch der richtige Nikolaus"?

Auch entlarvte Kaufhausnikolaeuse koennen an diesem Glauben nicht ruetteln.
ISt doch klar: Der Nikolaus hat nicht so viel Zeit, dass er in jedem Kaufhaus
stehen kann. Da kommen Kinder von ganz allein drauf.

Und wenn sie dann irgendwann rauskriegen, dass es doch keine Nikolaus gibt,
sind sie Stolz, dass sie schon so "gross" sind, und sind nicht sauer auf die
Eltern oder so ein Bloedsinn. 

Daria

-----------------------------------------------------------------------------



Re^3: Weihnachten (Acrimon, 29. Dez 1998, 17:23:09):
~#! rn=Daria rt=914945685 rg=kultur
~#! tid=914428783
Bring bitte nicht alles durcheinander!
Rate mal, was Weihnachten fuer ein Fest ist?
Ohne Christkind geht da nix.
Und das Christkind ist auch keine Luegengestalt.
Der "Weihnachtsmann" dagegen sehr wohl.
Geschenke sind zwar nett und schoen und auch ueblich, gehoeren aber nicht
unbedingt zum Weihnachtsfest.
Der "Weihnachtsmann" jedenfalls hat absolut NICHTS mit Gott, dem Christkind
oder dem echten Weihnachten zu tun.

Mir ist schon klar, dasz Atheisten sich da gerne selbst in Luegen verwickeln,
obwohl sie wissen, dasz sie Luegen verbreiten ...

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re^4: Weihnachten (Daria, 29. Dez 1998, 17:29:50):
~#! rn=Acrimon rt=914952189 rg=kultur
~#! tid=914428783
Also meiner Meinung nach ist es kein grosser Unterschied ob man den Kindern
erzaehlt, dass der Weihnachtsmann die Geschenke bringt oder das Christkind.
Die Geschenke im allgemeinen haben nix mit Weihnachten und der Geburt Jesu zu
tun, egal wer sie bringt.

Im uebrigen ist der Weihnachtsmann eigentlich nur eine Abwandlung des Hlg.
Nikolaus (im englischen Santa Claus, der heilige Nikolaus).

Seien wir doch ehrlich: Auch das Christkind (*blinzel nach Nuernberg*) ist bei
dem Kommerz zu einem Rauschgoldengelchen verkommen. Welches Baby koennte auch
die ganzen Geschenke tragen?

Daria

-----------------------------------------------------------------------------



Re^5: Weihnachten (Acrimon, 29. Dez 1998, 17:53:17):
~#! rn=Daria rt=914952590 rg=kultur
~#! tid=914428783
Warum erzaehlt man nicht einfach die Wahrheit:
Dasz die Menschen sich an Weihnachten untereinander Geschenke schenken, weil
sie die Geburt Jesu (=Christkind) feiern wollen.
Dann gibt es diesbezueglich keine Widersprueche mehr.
Und Weihnachten soll ja wahrlich nicht das Fest der Luegen sein...

Dasz Kommerz zum Kitsch und zum Taeuschen und Verfaelschen tendiert, ist ja
nix Neues, und es ist nicht nur an Weihnachten so.
Gibt es ueberhaupt noch eine Insel, wo man noch nicht vom Kommerz ueberrannt
wird?

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re^6: Weihnachten (Jiddu, 29. Dez 1998, 22:57:07):
~#! rn=Acrimon rt=914953997 rg=kultur
~#! tid=914428783
Wer schenkt denn an Weihnachten um die Geburt Jesu zu feiern?! Ich kenn nicht
einen einzigen.
Jiddu.

-----------------------------------------------------------------------------



Re: Re: Weihnachten (Qitess,  3. Jan 1999, 16:45:57):
~#! rn=Acrimon rt=914450419 rg=kultur
~#! tid=914428783
seufz. der weihnachtsmann ist im uebrigen keine erfindung einer
beruehmt-beruechtigten suessgetraenkeherstellers, sondern eine veraenderung
einer sitte. von der rot/weissen firma kommt lediglich das rot/weisse outfit
und der schoene lange rauschebart. bevor der ausschlaggebende werbefeldzug
stattfand gab es durchaus den brauch weihnachten zu feiern, und es gab
allerdings bereits den weihnachtsmann (den brauch des weihnachtsmanns). und
der weihnachtsmann war einst sankt niklaus, ein heiliggesprochener, der den
braven kindern ( bzw den armen kindern) zu seiner zeit nette kleinigkeiten wie
aepfel nuesse etc geschenkt hat (heimlich). ihm zu ehren findet der brauch
noch zum namenstag statt und zu weihnachten, der geburt von jesus, denn dort
wurde auch mal geschenkt (heilige 3 koenige an jesus). im laufe der vielen
jahre ist der weihnachtsmann entstanden, der eben zu weihnachten die geschenke
brachte. nichtsdestotrotz ist der weihnachtsmann keine erfindung von
coca-cola. von denen hat er nur sein rot-weisses outfit. aber das habe ich
bereits gesagt.

QI** hat grad leider keine moeglichkeit den bericht nochmal zu lesen und auch
eventuelle rechtschreibfehler zu untersuchen.

-----------------------------------------------------------------------------



Re^3: Weihnachten (Qitess,  3. Jan 1999, 16:49:26):
~#! rn=Qitess rt=915381957 rg=kultur
~#! tid=914428783
ja, was ich dann noch sagen wollte:
ich finde es viel schlimmer zu sagen, dass das christkind die geschenke
bringt. das ist naemlich tatsaechlich falsch. erstens ist das christkind, das
angeblich die geschenke bringt immer als engeliges persoenchen dagestellt, und
also kann es gar nicht das christkind (also jesus) sein, und zweitens ist das
christkind jesus, und wurde selber beschenkt.
naemlich
QI**

-----------------------------------------------------------------------------



Re^6: Weihnachten (Anatol,  3. Jan 1999, 18:08:52):
~#! rn=Acrimon rt=914953997 rg=kultur
~#! tid=914428783
Jemand, der sein Kind nie anluegt, Fragen unter Umstaenden oft mit "Das
verstehst Du noch nicht." abhandelt, Jemand, der nicht weiss, wie wichtig
Phantasie fuer Kinder ist, ... sollte die Erziehung dem Ehepartner ueber-
lassen.

So es denn einen gibt,
Anatol


-----------------------------------------------------------------------------



coke (Householder,  3. Jan 1999, 18:14:57):
Waaaas ? Die Farbe kommt von coca cola ?? ich dachte immer die farbe kaeme
daher, dass nikolaus ein bischof war und immer so klamotten anhatte naja
wieder was dazugelernt 
HH => blond

-----------------------------------------------------------------------------



Re^6: Weihnachten (Wurzel,  4. Jan 1999, 20:11:07):
~#! rn=Acrimon rt=914953997 rg=kultur
~#! tid=914428783
kaese, weihnachten hat mit jesus nix zu tun. die wintersonnenwende hat man
schon lange vorher gefeiert, bevor man was von diesem orientalischen zeug
gehoert hat. die christen haben das fest nur umgedeutet, um es vor ihren
eigenen karren zu spannen.

wurzel

-----------------------------------------------------------------------------



Re^7: Weihnachten (Acrimon,  5. Jan 1999, 22:02:34):
~#! rn=Anatol rt=915386932 rg=kultur
~#! tid=914428783
> Jemand, der sein Kind nie anluegt,
der respektiert das Kind, gibt ihm Sicherheit und Geborgenheit.
> Fragen unter Umstaenden oft mit "Das verstehst Du noch nicht." abhandelt,
das ist das genaue Gegenteil und genauso schlimm wie anluegen.
Besser: entweder versuchen, eine richtige Erklaerung zu geben, oder sagen "Das
weisz ich selbst nicht", oder vielleicht auch nur einen Teil erklaeren. Wenn
das Kind mehr wissen will, fragt es schon.
Aber auf keinen Fall luegen oder sagen "Du bist zu bloed".
> Jemand, der nicht weiss, wie wichtig Phantasie fuer Kinder ist,
der sollte die Erziehung dem Ehepartner ueberlassen.

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re: coke (Acrimon,  5. Jan 1999, 22:03:56):
~#! rn=Householder rt=915387297 rg=kultur
~#! tid=915387297
Schau dir mal einen Bischof an. Die sind *nicht* rot-weiss.

-----------------------------------------------------------------------------



Re^7: Weihnachten (Acrimon,  5. Jan 1999, 22:08:34):
~#! rn=Wurzel rt=915480667 rg=kultur
~#! tid=914428783
"Weih-Nachten" wird zum Zeitpunkt der Wintersonnwende gefeiert, weil es
aufkeimende Hoffnung nach der Geburt Christi symbolisiert.
Schlichte Zeitpunkte ohne sonstige Hintergruende zu feiern finde ich reichlich
doof.

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re^8: Weihnachten (Anatol,  6. Jan 1999, 11:20:44):
~#! rn=Acrimon rt=915574114 rg=kultur
~#! tid=914428783
Ich finde auch so manches, was sich der christliche Glaube alles erlaubt
(voellig unabhaengig davon, ob roemlisch-katholisch, evangelisch-lutherisch,
acrimon-fundamentalistisch oder sonstwas) auch reichlich doof. Getan wird
es trotzdem. Na und?

Anatol

PS: Ach ja, Acrimon - wie definierst Du "luegen"? :o)


-----------------------------------------------------------------------------



Re^9: Weihnachten (Grimmborn,  6. Jan 1999, 11:40:37):
~#! rn=Anatol rt=915621644 rg=kultur
~#! tid=914428783
Ich finde auch so manches, was sich allgemein erlaubt wird (voellig
unabhaengig davon, ob religioes, politisch, kulturell oder sonstwo) auch
reichlich doof. Getan wird es trotzdem. Na und?

> PS: Ach ja, Acrimon - wie definierst Du "luegen"? :o)
Argh, frag ihn nicht. Sonst sind wir ganz schnell wieder in einer
Ironie-Diskussion.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Re: coke (Key,  6. Jan 1999, 16:36:38):
~#! rn=Acrimon rt=915573836 rg=kultur
~#! tid=915387297
Also langsam reichts doch, oder? Wir haben alle diese "Feiertage" ueberstanden
und fertig.

Uebrigens wenn ich mich recht erinnere waren Rot, Lila und aehnliches die
Farben der reichen, und damals haben sich wohl auch die lieben Bischoefe damit
geschmueckt, um zu zeigen wie toll sie sind :)
Naja und echtes weiss ... koennte man evtl als weisse Weste deuten ... oder
auch als Zeichen von Reichtum, denn wieviele konnten sich damals schon Persil
Color leisten?

Key

-----------------------------------------------------------------------------



Re^7: Weihnachten (Kellybundy,  6. Jan 1999, 17:39:48):
~#! rn=Wurzel rt=915480667 rg=kultur
~#! tid=914428783
Meines Wissens war am 24. Dezember die Geburt des Mithras. Ist auch keine neue
Taktik der christlichen Kirchen, heidnische Feiertage zu uebertuenchen... (zB
Helloween/Allerheiligen ist nach dem keltischen Kalender Jahresende)

Blondie, senfend

-----------------------------------------------------------------------------



Re: Re: coke (Kellybundy,  6. Jan 1999, 17:41:28):
~#! rn=Acrimon rt=915573836 rg=kultur
~#! tid=915387297
Doch, mit Ke5tchup und mayo, schoen durchgegrillt.... *schmatz*

Bloe^ndie

-----------------------------------------------------------------------------



Re^9: Weihnachten (Catweazle,  7. Jan 1999, 09:00:22):
~#! rn=Gast1 rt=915668935 rg=kultur
~#! tid=914428783
Aehm, woher hast Du dieses Wissen?
Das klingt interessant und ich wuerd mir da gerne was zu ansehen.

Anyway, ich stimme Euch natuerlich vollkommen zu, und zwar jedem von Euch :)

Yours truly,
     Catweazle

-----------------------------------------------------------------------------



Re^9: Weihnachten (Kellybundy,  7. Jan 1999, 13:50:57):
~#! rn=Gast1 rt=915668935 rg=kultur
~#! tid=914428783
Tach Lug :)

Bloe^ndie

-----------------------------------------------------------------------------



Re^10: Weihnachten (Grimmborn,  7. Jan 1999, 22:56:23):
~#! rn=Kellybundy rt=915717057 rg=kultur
~#! tid=914428783
Ich erinnere nochmal dran, dass ich prinzipiell alle Artikel, die von Gaesten
sind, unabhaengig vom Inhalt loesche. Auch wenn sie von Lug sind. Weils
diesmal aber interessant war ist der Artikel in muell gelandet.

Grimmborn der Zensist

-----------------------------------------------------------------------------



gibts hier Bratscher? (Kellybundy, 14. Jan 1999, 01:35:28):
Ein Bekannter von mir sucht haenderingend Bratscher fuer 'sein' Orchester
(A-Orchester).
Ich weiss, dass das sehr schwammig ist (im Moment), aber ich moechte mal ganz
dezent vorfuehlen.


KellyBundy

-----------------------------------------------------------------------------



Re^8: WICHTIG !!!!!!!!! (Kellybundy, 14. Jan 1999, 01:37:38):
~#! rn=Kellybundy rt=916277360 rg=anzeigen
~#! tid=916140896
aerks ich meine natuerlich: Resonanz waere nett, und vielleicht waere das
besser in Anzeigen aufgehoben...

Blondie, einen Editor anargelnd


-----------------------------------------------------------------------------



Re^9: WICHTIG !!!!!!!!! (Grimmborn, 14. Jan 1999, 03:21:41):
~#! rn=Kellybundy rt=916277858 rg=kultur
~#! tid=916140896
Nicht anzeigen. Das gehoert nach witze.
Schliesslich gings um Bratscher...

Warum heisst die Bratsche Bratsche? 
Weil es "bratsch" macht wenn man drauftritt.

Grimmborn der Atheist. Minibratschist. Oder so.

-----------------------------------------------------------------------------



Re^10: WICHTIG !!!!!!!!! (Kellybundy, 14. Jan 1999, 13:08:34):
~#! rn=Grimmborn rt=916284101 rg=kultur
~#! tid=916140896
Naja Bratscherwitze scheinste zu kennen, das qualifiziert Dich schon mal :)

Naja das Problem ist, dass mein Bekannter vom Bratschen viel Ahnung hat, von
Compis usw weniger, Er meint, wenn er pfeift, sind alle, die ne Bratsche ihr
Eigen nennen online, so laeuft das natuerlich nicht... Deswegen weiss ich
nicht was ich noch an Daten rueberschieben soll, er will selbst mit den
Betreffenden (Betroffenen? :P) reden... 

Bloe^Hndie, zumindest Intellenzmaessig fuer Bratsche qualifiziert und auf
Resonanz hoffend

-----------------------------------------------------------------------------



Re^11: WICHTIG !!!!!!!!! (Guildo, 14. Jan 1999, 14:17:08):
~#! rn=Kellybundy rt=916319314 rg=kultur
~#! tid=916140896
>Bloe^Hndie, zumindest Intellenzmaessig fuer Bratsche qualifiziert und auf
>Resonanz hoffend

Auf Resonanz hoffen Bratscher i.a. vergeblich!

Guildo (auch Bratscher)

-----------------------------------------------------------------------------



Re: Re: coke (Augra, 21. Jan 1999, 19:35:13):
~#! rn=Acrimon rt=915573836 rg=kultur
~#! tid=915387297
richtig, ist ja auch keine pommes-schuessel.

Augra, senft.

-----------------------------------------------------------------------------



23 Adler (Dieder, 29. Jan 1999, 16:07:44):
23 Adler fliegen
ueber einen dunklen Forst.
23 Adler kehren
muede heim zu ihrem Horst.

23 Adler loeschen
in der Kneipe ihren Dorst.
23 Adler schwanken
groehlend heim zu ihrem Horst.

23 Adlern ist Sex
mit dem andern Geschlecht worst.
23 Adler kuscheln
sich doch lieber in ihrn Horst.

23 Adler blinzeln
in den Blitz von Photo Porst.
23 Adler haengen
schoen gerahmt im Haus von Horst.

23 Adler nehmen
Kurs nach Sueden, Suedsuedorst
23 Adler schreiben
Afrikarten heim zum Horst.

23 Adler spielen
abends gerne Stille Porst
und der letzte piekst beim Fluestern
Loecher in das Ohr von Horst.

23 Adler klopfen
vom Betonstabstahl den Rorst
23 betonieren
den Jahr2000 Dauer-Horst.

22 Adler segeln
Nr. 23 morst
"3 stop und stop 20 Adler"
kehren heim zu ihrem Horst.

Oh siehst du 23 Adler
trampen, - sei kein Widerporst
nimm sie mit in deinem Wagen
weit ist noch der Weg zum ...


Dieder
(Autor unbekannt)

-----------------------------------------------------------------------------



23 Adler (Dieder, 16. Feb 1999, 15:55:25):
23 Adler fliegen
ueber einen dunklen Forst.
23 Adler kehren
muede heim zu ihrem Horst.

23 Adler loeschen
in der Kneipe ihren Dorst.
23 Adler schwanken
groehlend heim zu ihrem Horst.

23 Adlern ist Sex
mit dem andern Geschlecht worst.
23 Adler kuscheln
sich doch lieber in ihrn Horst.

23 Adler blinzeln
in den Blitz von Photo Porst.
23 Adler haengen
schoen gerahmt im Haus von Horst.

23 Adler nehmen
Kurs nach Sueden, Suedsuedorst
23 Adler schreiben
Afrikarten heim zum Horst.

23 Adler spielen
abends gerne Stille Porst
und der letzte piekst beim Fluestern
Loecher in das Ohr von Horst.

23 Adler klopfen
vom Betonstabstahl den Rorst
23 betonieren
den Jahr2000 Dauer-Horst.

22 Adler segeln
Nr. 23 morst
"3 stop und stop 20 Adler"
kehren heim zu ihrem Horst.


Und nun die Moral
(und ein kl. Gruss an verehrte Vorturner):

Oh siehst du 23 Adler
trampen, - sei kein Widerporst
nimm sie mit in deinem Wagen
weit ist noch der Weg zum ...

Gefunden in den News.

Dieder

-----------------------------------------------------------------------------



Dead Can Dance: Emmeleia (Yendi, 25. Feb 1999, 20:19:01):
Hat irgendwer den Text von "Emmeleia" von Dead Can Dance?
Kann mir wenigstens jemand einen Tip geben, was fuer eine _Sprache_ das ist?

Ratlos,
        Yendi



-----------------------------------------------------------------------------



Re: Dead Can Dance: Emmeleia (Anatol, 25. Feb 1999, 21:47:09):
~#! rn=Yendi rt=919973941 rg=kultur
~#! tid=919973941
Im Booklet zu "Into the Labyrinth" ist der Text zu Emmeleia nicht
abgedruckt. Duerfte schwer werden... Hinsichtlich Sprache koennte vielleicht
Lug weiterhelfen, auch wenn sich das alles andere als keltisch anhoert :o).

Hoert nicht viel, aber DCD ist dabei,
Anatol


-----------------------------------------------------------------------------



Re: Re: Dead Can Dance: Emmeleia (Yendi,  1. Mar 1999, 15:14:37):
~#! rn=Anatol rt=919979229 rg=kultur
~#! tid=919973941
OK, auf die Idee, im CD-Heftchen nachzuschauen, bin ich denn _doch_ schon
gekommen, Anatol. Vielen Dank auch.

*grmpf*

YTY



-----------------------------------------------------------------------------



Re^3: Dead Can Dance: Emmeleia (Anatol,  1. Mar 1999, 15:16:11):
~#! rn=Yendi rt=920301277 rg=kultur
~#! tid=919973941
Weiss ich, dass Du die CD hast? :)

No offense meant,
Anatol


-----------------------------------------------------------------------------



Bohemian Rapsodie (Songoku,  4. Mar 1999, 12:20:42):
Hat jemand den text dieses doch sehr unbekannten liedes ?
Sayonara.

-----------------------------------------------------------------------------



Re: Bohemian Rapsodie (Zarniya,  4. Mar 1999, 12:23:55):
~#! rn=Songoku rt=920550042 rg=kultur
~#! tid=920550042
ja... soll ich ihn pasten oder mailen?

Zarniya

-----------------------------------------------------------------------------



Re: Bohemian Rapsodie (Muadib,  4. Mar 1999, 12:24:17):
~#! rn=Songoku rt=920550042 rg=kultur
~#! tid=920550042
hi,

haste mal unter http://www.lyrics.de nachgeschaut ? 

gruss

muadib

-----------------------------------------------------------------------------



Re: Re: Bohemian Rapsodie (Songoku,  9. Mar 1999, 12:12:00):
~#! rn=Muadib rt=920550257 rg=kultur
~#! tid=920550042
tnx

-----------------------------------------------------------------------------



Cyber-Art-Projekt (Philou,  9. Mar 1999, 14:18:08):
Hallo liebe Kunstfreunde !

F|r ein Cyber-Art-Projekt suche ich noch Teilnehmer. Ihr koennt Euch
auf der Homepage www.jogoart.bogw.de orientieren. Gern genommen werden
Einsendungen zum Thema "Schilder aus aller Welt"

Also wer von Euch was originelles in seiner Sammlung hat, bitte
einschicken !!!

Danke Euer Philou


-----------------------------------------------------------------------------



Re: Cyber-Art-Projekt (Ronda,  9. Mar 1999, 20:42:26):
~#! rn=Philou rt=920989088 rg=kultur
~#! tid=920989088
<werbung> Philou untertreibt ein wenig ;)

a) hat er geniale Seiten mit wunderbaren Bildern!
(wer sich also die Seiten nicht anschaut, ist selbst schuld :) )
b) sind die Bilder im Original noch viiiiiiel besser!
(wenn man sich zu nem Tee bei ihm zuhaus einlaedt :) )
c) macht er mal eben ne Ausstellung - Eroeffnung ist am 17. April in Linnich
(in der Naehe von Aachen)
(deshalb sollte man sich mal http://www.jogoart.bogw.de/indexaus.html
ansehen!)

</werbung>

Wer also ein klitzekleines bisschen Spass an schoenen Bildern hat - es waere
supergenial, wenn noch ein paar mit nach Linnich kommen wuerden ;) *rotfl...
Philou erschlaegt mich sicher, wenn er das liest...*
Tschuess bis hoffentlich in Linnich,

Ronda

Ps: Danach futtern beim Spanischen Vereinsheim in Aachen, Philou?

-----------------------------------------------------------------------------



Re: Dead Can Dance: Emmeleia (Rantanplan, 11. Mar 1999, 20:56:11):
~#! rn=Yendi rt=919973941 rg=kultur
~#! tid=919973941
ICh schau mal nach Yendi...

Oe*

-----------------------------------------------------------------------------



Re: Re: Cyber-Art-Projekt (Qitess, 15. Mar 1999, 17:10:44):
~#! rn=Ronda rt=921012146 rg=kultur
~#! tid=920989088
superklasse *lach*
ich hab mir mal die bilder angeschaut. besonders interessant fand ich ja die
titel der bilder.
und irgendwie musste ich an einen zoobewohner denken, der auch mal ne
ausstellung bekommen hat :)
*kicher*
QI* erfreut sich immer wieder koeniglich an kunst :)

-----------------------------------------------------------------------------



Subway to Sally (Kartoffel,  9. Apr 1999, 01:17:52):

Ich bin zur Zeit voellig dem Subway Fieber erlegen...
Wer Metal kombiniert mit mittelalterliche Elementen mag muss sich die
_unbedingt_ mal antun:

Aktuelles Album: Hochzeit (derzeit auf Tour damit)

Aeltere Alben: Album 94 (noch ganz anders...)
               MCMXCV
               Foppt den Daemon
               Bannkreis

'Toffel - war letzte Woche in Essen aufm Konzert und wird im Juni in Krefeld
sein

P.S.: http//www.subwaytosally.com

-----------------------------------------------------------------------------



Was Lyrisches (Asmodis,  9. Apr 1999, 06:41:00):
Ode an Spot

Felice Catus ist eine taxonomische Nomenklatur,
ein endothermischer Vierfuessler, fleischfressend von Natur,
Deine Seh-, Geruchs- und Gehoersinne sind umfassend,
und zu deinem Jagdgeschick und deiner natuerlichen Verteidigung passend.

ich bin fasziniert von deinem vielfaeltigen, schnurrenden Ton,
eine einzigartige Entwicklung von Katzenkommunikation
durch die du deine prinzipielle, hedonistische Vorliebe unterstreichst,
wodurch du ein rythmisches Streicheln deines Felles aus Zuneigung erreichst.

Ein Schwanz ist wesentlich fuer dein akrobatisches Talent,
du waerst nicht so geschmeidig, fehle sein Gewicht am anderen End.
Und nutzt du ihn nicht zur Fortbewegung unter gewissen Konditionen,
so dient er dir haeufig zum Ausdruck deiner Emotionen.

Oh Spot, die komplexen Verhaltensweisen, die man an dir sieht,
suggerieren eine kognitive Vielfalt auf grossem Gebiet.

Und aus wenn du nicht fuehlen kannst, Spot, und ein Streuner bist,
sehe ich dich als meinen Gefaehrten an, der ein wahrer Freund ist.

-----------------------------------------------------------------------------



Re: Subway to Sally (Grimman,  9. Apr 1999, 19:02:02):
~#! rn=Kartoffel rt=923613472 rg=kultur
~#! tid=923613472
ALSO,zu Subway muss ich sagen Thumbs up!
waren schon immer geil,die Foppt Den Daemon ist meiner meinung nach mit die
beste Scheibe von denen
Wer interesse an solcher Musik hat , sollte auch mal Richthofen (haerter mit
weniger dudelsack und Geigen)
oder Letzte Instanz (sehr gut,Cello und Geige und aus Dresden)


MBIMG,GrimMna
MBIMG,GrimMan (uebt das mit dem Namen noch ...)

-----------------------------------------------------------------------------



Re: Was Lyrisches (Jimdigriz,  9. Apr 1999, 19:49:12):
~#! rn=Asmodis rt=923632860 rg=kultur
~#! tid=923632860
Hija,

Schon sehr schoen, was sich Data da ausgedacht hat,
hier gleich mal die Originalversion (die Uebersetzung 
ist ja gar nicht mal schlecht):

Ode to Spot

Felus Catus is your taxonomic nomenclature.
An endothermic quadruped, carnivorous by nature.
Your visual, olfactory, and auditory senses
Contribute to your hunting skills and natural defenses.

I find myself intrigued by your sub vocal oscillations.
A singular development of cat communications.
That obviates your basic hedonistic predilection
For a rhythmic stroking of your fur to demonstrate affection.

A tail is quite essential for your acrobatic talents.
You would not be so agile if you lacked its counterbalance.
And when not being utilized to aid in locomotion,
It often serves to illustrate the state of your emotions.

Oh Spot, the complex levels of behavior you display
Connote a fairly well developed cognitive array.
And though you are not sentient, Spot, and do not comprehend,
I none the less consider you a true and valued friend.

JdG.

-----------------------------------------------------------------------------



Ausstellungseroeffnung (Ronda, 11. Apr 1999, 14:46:13):
Hi,
da sich Philou wahrscheinlich nicht trauen wird, Werbung in eigener Sache zu
machen, mach' ichs halt ;)
Am naechsten Samstag, 17. April findet in der Naehe von Aachen eine
Ausstellungseroeffnung statt.
*grins* Ich denk' mal, Ihr seid auch eingeladen - Philou malt wie ich finde
klasse Bilder, auf seinen WWW-Seiten findet Ihr neben weiteren Infos zur
Ausstellungseroeffnung auch viele Bilder:
http://www.jogoart.bogw.de/indexaus.html
Aber ich finde, die Bilder sehen in Originalgroesse und "live" noch wesentlich
besser aus als im Web.
Daher: wer Spass an Kunst hat - auf nach Linnich!
Tschuess,

Ronda

Ps: Wer noch Fragen zur Ausstellung hat, schreibt einfach an Philou@MG oder an
mich.

-----------------------------------------------------------------------------



Re: Subway to Sally (Qitess, 13. Apr 1999, 14:45:15):
~#! rn=Kartoffel rt=923613472 rg=kultur
~#! tid=923613472
ich empfehle fuer metal plus mittelalter eigentlich In Extremo.
Auch ganz klasse.
etwas schwerer sind dann auch noch haggard, die haben sich an ernste musik
plus metal gewagt.

QI**

-----------------------------------------------------------------------------



Re: Re: Subway to Sally (Grimman, 13. Apr 1999, 14:48:33):
~#! rn=Qitess rt=924007515 rg=kultur
~#! tid=923613472
Habe auch was neues gehoert :
Dimmu Borgir , extrem schnelle Double-Base und harte Texte!
Wer mehr Spass will und trotzdem nicht auf Geige und Floete verzichten
will,dem kann ich nur Mutabor empfehlen
Lustige Texte (deutsch,die Band ist aus Berlin)und gut zum abhopsen ...


MBIMG ,GrimMan , mal wieder Musik hoerend ...

-----------------------------------------------------------------------------



Re^3: Subway to Sally (Cymonk, 14. Apr 1999, 18:32:53):
~#! rn=Grimman rt=924007713 rg=kultur
~#! tid=923613472
hiho,

kurz nur als hinweis:

bevor sich jemand an dimmu borgir oder haggard versucht:
erstere haben eine art von 'kommerziellem' black metal etabliert
und haggard merkt man black metal roots auch noch an.
also vorsicht: nicht jedermans geschmack :)
zum thema in extremo faellt mir noch ein:
wer auf unplugged mittelalterliche musik steht, sollte
corvus corax antesten...
die haben auch noch ein nebenprojekt namens 'tanzwut'
wer auf rammstein gesang mit aehnlich daemlichen texten
und synthi arpeggios und drums, zusaetzlich aber mit
dudelsack und schalmeien steht sollte die 'mal antesten.
zu einigen songs kann man prima abzappeln
vorrausgesetz: man ist allohol berauscht und achtet nicht
so auf die texte :)

cy

-----------------------------------------------------------------------------



Re^4: Subway to Sally (Beelzebub, 15. Apr 1999, 16:07:55):
~#! rn=Cymonk rt=924107573 rg=kultur
~#! tid=923613472
Mahlzeit ]:-)

Also Haggard hat mit Black Metal ja nu garnix zu tun.
Die erste EP (ja, die kenn ich auch) is naemlich Death Metal und recht
unboese. Und was Haggard jetzt machen is ne Trilogie ueber Nostradamus.
Und aus Muenchen kommen die auch noch ]:-) 

Beelze* (ja, nennt mich Klugscheisser)

P.S. Subway to Sally sind echt saugeil. Is wissenschaftlich bewiesen.

-----------------------------------------------------------------------------



Re^3: Subway to Sally (Grimman, 15. Apr 1999, 17:54:48):
~#! rn=Grimman rt=924007713 rg=kultur
~#! tid=923613472
Mehr oder genaueres ...
Dimmu Borgir: Hab mir heute die 'Spiritual Black Dimensions' zugelegt ...
HAAAAAAAMMER!! Mehr sag ich nicht ...

MBIMG 
GrimMan 

-----------------------------------------------------------------------------



Re^4: Subway to Sally (Angus, 15. Apr 1999, 18:49:59):
~#! rn=Grimman rt=924191688 rg=kultur
~#! tid=923613472

Dimmu Borgir: Yeesss :) Da faellt eine Soundwand auf Dich nieder ;)
Wer's 'lyrischer' mag, der sollte sich mal die neue
Amorphis reintun... (einfach schoeeeen :))

Fuer alle die dem Schwermetall was abgewinnen koennen und
vielleicht mal nach HH kommen: Erste Adresse ist der
Headbanger's Ballroom am Fischmarkt, da gibt's
fuer jeden Geschmack mal was (Donnerstag ist uebrigens
Black-Death-Gothic-Metal angesagt...)!
Programm gibts unter www.monster-productions.com
Mittelalter-Nacht (mit Met umsonst) war diesen Monat
leider schon :)

  - Angus (heute Abend mal wieder ein Bierchen im Bangers trinken)

-----------------------------------------------------------------------------



Re^5: Subway to Sally (Cymonk, 15. Apr 1999, 20:08:07):
~#! rn=Beelzebub rt=924185275 rg=kultur
~#! tid=923613472
yep, beelze* hast ja recht ;)))
hab' da was verwechselt...

cy neigt sein haupt

-----------------------------------------------------------------------------



Re: Re: Subway to Sally (Kartoffel, 15. Apr 1999, 23:42:57):
~#! rn=Qitess rt=924007515 rg=kultur
~#! tid=923613472
Jupp, In Extremo sind auch ziemlich klasse!

'Toffel - mag besonders Ai vis lo lop

-----------------------------------------------------------------------------



Re^3: Subway to Sally (Grimmborn, 16. Apr 1999, 13:37:19):
~#! rn=Kartoffel rt=924212577 rg=kultur
~#! tid=923613472
Ich gebe ja zu, dass StS ganz amuesant ist, aber muss es immer dieser
Negerjazz sein? Ich empfehle da aktuell die "Laengste Single der Welt" von
WOlfgang Petry. Und wer ueber diesen Kuenstler die Nase ruempft sollte sich
mal dessen Verkaufszahlen angucken, da kann (in .de) weder Michael Jackson
noch die Stones oder sonstwer mithalten.

Grimmborn bricht eine Lanze fuer die Kultur

-----------------------------------------------------------------------------



Re^4: Subway to Sally (Zarniya, 16. Apr 1999, 13:42:37):
~#! rn=Grimmborn rt=924262639 rg=kultur
~#! tid=923613472
Falsch Grimmborn,\


Garth Brooks verkauft mehr als alle anderen und ist, da er ja einen Cowboyhut
traegt, nach Aussage eines Fachmenschens aus der Beratung Koeln eh ein
Faschist und Rassist... 

Fakten? Inzwischen ueber 90 Millionen CDs verkauft, vier mal diamant
bekommen... nur die Beatles sind besser, aber die koennen sich nicht mehr
wehren ;)

Wer mehr wissen will? --> www.garthworld.de

Marc

-----------------------------------------------------------------------------



Re^4: Subway to Sally (Grimman, 16. Apr 1999, 18:19:50):
~#! rn=Grimmborn rt=924262639 rg=kultur
~#! tid=923613472
Wir waren aber eigentlich mehr so am diskutieren,was diese Musik (NEGERJAZZ??
Wie kommst du da drauf??) angeht ... Wolfgang Petry und seine verkaufszahlen
in Ehren,aber der passt nu wirklich nicht ins Gebiet Subway bis iIn Extremo
und Dimmu Borgir , oder?

MBIMG , GrimMan , hoert trotzdem Dimmu!

-----------------------------------------------------------------------------



Re^5: Subway to Sally (Grimmborn, 16. Apr 1999, 18:38:58):
~#! rn=Grimman rt=924279590 rg=kultur
~#! tid=923613472
Es ging, soweit ich das sah, um gute Musik. Und da wollte ich laessig Wolfgang
Petry ins Spiel bringen, als Beitrag zum Thema.

Zum Begriff "Negerjazz" frage bitte Dein Geschichtsbuch. Das hier ist
"kultur", nicht "kindergarten". ;-)

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^6: Subway to Sally (Grimman, 16. Apr 1999, 19:13:24):
~#! rn=Grimmborn rt=924280738 rg=kultur
~#! tid=923613472
Naja,fuer mich ist Negerjazz dann doch eher dieser HipHop/Rap-Kram ... daher
die Frage ...

GrimMan

-----------------------------------------------------------------------------



Re^7: Subway to Sally (Amaryllis, 16. Apr 1999, 19:15:08):
~#! rn=Grimman rt=924282804 rg=kultur
~#! tid=923613472
ich glaub du verwechselst das mit dem recht verunglimpfenden wort "Negerbeat"
- der eigentlich NegerJAZZ hingegen ist vieeeeeel aelter , und meiner Meinung
nacht echt genial :-)

Das kleine Feechen

-----------------------------------------------------------------------------



Re^8: Subway to Sally (Grimman, 16. Apr 1999, 19:16:29):
~#! rn=Amaryllis rt=924282908 rg=kultur
~#! tid=923613472
Na gut,ich geb mich geschlagen

GrimMan , einzeilend und dazulernend :)

-----------------------------------------------------------------------------



Re^8: Subway to Sally (Hight, 16. Apr 1999, 19:34:16):
~#! rn=Amaryllis rt=924282908 rg=kultur
~#! tid=923613472
wie du so richtig sagst gefaellt dir das *g* aber ueber geschmack laesst sich
numal nicht streiten 

hight

-----------------------------------------------------------------------------



Re^4: Subway to Sally (Qitess, 20. Apr 1999, 15:12:48):
~#! rn=Cymonk rt=924107573 rg=kultur
~#! tid=923613472
Also, ich glaube , bin mir aber net ganz sicher, dass In Extremo eintmals aus
Corvux Corax hervorgegangen sind, bzw. dass sie sich lediglich umbenannt
haben. Bitte um Aufklaerung dieses Umstandes.

:)
QI**

-----------------------------------------------------------------------------



Re^4: Subway to Sally (Qitess, 20. Apr 1999, 15:14:39):
~#! rn=Grimmborn rt=924262639 rg=kultur
~#! tid=923613472
Grimmborn bricht eine Lanze fuer die Kultur.
Soso. Fuer welche Kultur denn?
QI**findet, dass Wolle Petri Heil nichts in diesem Thread zu suchen hat...:)
*

-----------------------------------------------------------------------------



Re^5: Subway to Sally (Grimmborn, 20. Apr 1999, 23:55:34):
~#! rn=Qitess rt=924614079 rg=kultur
~#! tid=923613472
Im Gegensatz zu mir solltest Du Dich wohl besser zum Thema Kultur nicht
aeussern, gelle?

Grimmborn der Atheist und Vertreter feiner Lebensart

-----------------------------------------------------------------------------



Re^6: Subway to Sally (Engywuck, 22. Apr 1999, 00:23:14):
~#! rn=Grimmborn rt=924645334 rg=kultur
~#! tid=923613472
Also, wem diese Radaumucke nich zusagt, dem empfehle ich hier mal ganz
zwanglos einen Besuch auf
http://www.netcologne.de/~nc-meyerpe2/tk/ownmidid.html

Viel Spass...

Engy*

-----------------------------------------------------------------------------



Re: Subway to Sally (Wurzel, 23. Apr 1999, 01:10:48):
~#! rn=Kartoffel rt=923613472 rg=kultur
~#! tid=923613472
war diese woche in muenchen auf dem konzert, war genial... allerdings hat
der tontechniker die ersten sechs lieder gebraucht, um halbwegs guten sound
zu erreichen. danach war fast wie auf den platten, nur halt wesentlich
lauter, eigentlich schade.

die jungs (und frau schmitt) sind noch laenger unterwegs, wer
die gelegenheit hat, sollte unbedingt reinhoeren. wer nicht halb taub
ist und es auch nicht werden will, sollte ohrstoepsel mitnehmen, es hilft :)

wurzel

-----------------------------------------------------------------------------



Re: Re: Subway to Sally (Kartoffel, 23. Apr 1999, 01:27:11):
~#! rn=Wurzel rt=924822648 rg=kultur
~#! tid=923613472
Hmm, zu sagen, dass Subwy live is wie auf den Platten...
Die Alben sind genial, aber live sind sie noch mal so gut.
Und laut... naja, n bissl Ohrenpfeifen hatt ich auch, aber das war am
naechsten Tg weg, nich wie bie Maiden letztes Jahr, wo ich noch drei Tage was
davon hatte ;)

'Toffel - freut sich auf den 17.6. (Subway in Krefeld in der KuFa)

-----------------------------------------------------------------------------



Re^5: Subway to Sally (Branwen, 28. Apr 1999, 15:27:10):
~#! rn=Qitess rt=924613968 rg=kultur
~#! tid=923613472
HI ;)
Etwas verspaetet, aber immerhin, muss ich jetzt auch mal was loswerden...
Also, In Extremo haben mitnichten etwas mit Corvus Corax zu tun.
Corvus Corax und Tanzwut sind das.
Ich kann mich noch gut an Zeiten erinnern, als In Extremo in Frankfurt auf der
Zeil spielten und um die paar Mark froh waren, die sie da bekommen haben. Zu
dieser Zeit habe ich auch durch meine Schwester die Jungs persoenlich
kennengelernt ;)

Ja, ausserdem: Subway rulez!
Als ich vor einigen Jahren(ja, ist auch schon ne ganze Weile her, so etwa 4
Jahre, schaetz ich) zum ersten Mal ein Tape mit Subway-Sound in die Finger
bekam, konnte ich kaum jemanden ueberreden, sich das mal ernsthaft
anzuhoeren....
Noch viel weniger war es moeglich, wen mit auf ein Konzert zu nehmen...
Tja, irgendwann kam die Wende, das kann ich nicht genau nachvollziehen, aber
auf einmal sind diese netten Potsdamer 'in', weiss der Henker, warum....
Live sind Subway absolut obergenial und wer sie noch nicht gesehen hat, der
Musik aber grundsaetzlich nicht abgeneigt ist, der sollte unbedingt auf ein
Konzert gehen.
Live sind sie wirklich absolut unschlagbar und nicht mit den CDs zu
vergleichen. Die sind zwar auch prima, aber es gibt wohl kaum eine Band, die
es schafft, live eine solche Stimmung zu entfachen!

So, das Wichtigste hab ich jetzt mal von mir gegeben....

Viele Gruesse an alle Juenger und solche, die es werden wollen!
Branwen

-----------------------------------------------------------------------------



Re^6: Subway to Sally (Beelzebub, 29. Apr 1999, 13:46:12):
~#! rn=Branwen rt=925306030 rg=kultur
~#! tid=923613472
Und uebrigens: wer S.t.S. live antesten will ohne dafuer zu blechen:
am 9. oder 10. Mai (weiss nich mehr genau)spielen sie auf der Osnabruecker
Maiwoche. Ebenfalls am 9. oder 10. (halt am andern Tag) spielen uebrigens
J.B.O.
(auch lustig)

Beelze ]:-)

-----------------------------------------------------------------------------



Re^7: Subway to Sally (Beelzebub, 29. Apr 1999, 13:48:10):
~#! rn=Beelzebub rt=925386372 rg=kultur
~#! tid=923613472
Parallel dazu findet am 9.5 natuerlich auch noch Kaffetrinken bei Mutti statt;
man muss schon Prioritaeten setzen koennen ]:-)

nochmal Beelze ]:-)

-----------------------------------------------------------------------------



William Horwood (Alboin, 14. Jun 1999, 20:12:16):
Jo auf Empfehlung wollte ich mal wieder ein Fantasie-Buch lesen,
und zwar William Horwood: Wolves of Time beide Baende

Nu sehe ich hier gerade, dass es schon deutsche Ausgaben davon gibt.
Deshalb meine Frage: ist man mit der Uebersetzung gut bedient oder sollte ich
mir wirklich (mit meinen durchschnittlichen Englisch-Kenntnissen) das Original
zulegen?

Alboin

-----------------------------------------------------------------------------



Re: William Horwood (Hate, 14. Jun 1999, 20:40:24):
~#! rn=Alboin rt=929383936 rg=kultur
~#! tid=929383936
Wenn Du was lernen willst, nimm das original. Die Uebersetzungen sind meistens
eher schlecht als recht. Und wenn Du dann schon dabei bist, kauf dir die
Buecher entweder bei buecher.de oder amazon.de. Dort bekommst Du sie im
Original am guenstigsten.

Hate.

-----------------------------------------------------------------------------



Re: Re: William Horwood (Wurzel, 14. Jun 1999, 22:02:52):
~#! rn=Hate rt=929385624 rg=kultur
~#! tid=929383936
normalerweise ist es so, dass fantasy in deutschland unter trivialliteratur
faellt und daher nur miese billiguebersetzer dran arbeiten. diese idee mit
den einfachen schubladen, in die man sowas stecken kann, ist allerdings in
den angelsaechsischen laendern nicht so verbreitet, deswegen gibt es gute
bis sehr gute fantasy-literatur dort (natuerlich nicht alles, das meiste ist
wirklich schrott). horwood kenne ich jetzt aktuell nicht, aber gerade dann
wuerde ich es auf jeden fall im original lesen. durch die uebersetzung wird
es naemlich bestimmt verhunzt.

wurzel

-----------------------------------------------------------------------------



Re: William Horwood (Caillean, 15. Jun 1999, 08:56:51):
~#! rn=Alboin rt=929383936 rg=kultur
~#! tid=929383936
jedes buch solltest du im original lesen, v. a. fantasy
deine englisch profitiert nur:)

-----------------------------------------------------------------------------



Re: Re: William Horwood (Nevok, 15. Jun 1999, 08:59:53):
~#! rn=Caillean rt=929429811 rg=kultur
~#! tid=929383936
deine englisch wirde bessere aber deine deutsch wirde anscheinende schlechtere
*lacht*
nix fuer ungut, Caillean ;)

-----------------------------------------------------------------------------



Re^3: William Horwood (Caillean, 15. Jun 1999, 09:02:33):
~#! rn=Nevok rt=929429993 rg=kultur
~#! tid=929383936
naja, klugschwaetzer, hier isses im gegensatz zu den USA grad 8.59 , nich
bloss 2 uhr nachts, und ich hab noch net geschlafen....

aber ich wollts immer schon mal schreiben: heul doch!

-----------------------------------------------------------------------------



Re^4: William Horwood (Nevok, 15. Jun 1999, 09:05:29):
~#! rn=Caillean rt=929430153 rg=kultur
~#! tid=929383936
s oeh hmmmmm beschwer ich mich? noe
ich nehm dich eher auf den arm
ausserdem isses hier schon 3.....aber das is wohl zu schwer zu rechnen....
naja...kannste nix machen....etwas chaos braucht wohl jeder mensch...nu aber
schluss, das is kultur und dort sollten schlussendlich auch  artikel
drinstehen die diesem etikett gerecht werden..also die letzten 3 bitte nach
schmarrn oder so ;)

nevok, der seinen letzten deutschen kaffee trinkt und dann wohl auf
amerikanische Mischungen umsteigen muss....ihgitt pfui baeh

-----------------------------------------------------------------------------



Re: William Horwood (Bendeigid, 15. Jun 1999, 11:12:57):
~#! rn=Alboin rt=929383936 rg=kultur
~#! tid=929383936
Hi Alboin (und alle Interessierten),

von Horwood ist unter anderem auch die "Duncton"-Serie, und ich hab sie in
Englisch gelesen. Das liegt zum einen daran, dass die Uebersetzungen der
meisten auslaendischen Fantasyliteraten grottenschlecht ist, in diesem Fall
aber natuerlich schlicht auch daran, dass es sie nicht als deutsche
Ubeersetzung gibt :)
Ich kenne die Wolves of Time nicht, kann aber sagen, dass Horwood ein
ausgefeiltes Englisch schreibt. Mit eher duerftigen Englischkenntnissen wird
das sicher kein Spass. Wenn Du aber was lernen willst, dann tus Dir im
Original an, es wird sich todsicher lohnen.

Z'par Servu,
               Bendeigid, der Horwood mal gefragt hat, warum es Duncton nicht
fuer den Normalleser in Deutsch gaebe, worauf Horwood in grauenhafter
Handschrift fragt: So, das gibts nicht in deutsch? wusste ich nicht... ;))

-----------------------------------------------------------------------------



Re: Re: William Horwood (Boing, 15. Jun 1999, 12:10:19):
~#! rn=Bendeigid rt=929437977 rg=kultur
~#! tid=929383936
Den ersten Band der Duncton-Reihe gibt's auch auf Deutsch, und da kam
mir die Uebersetzung recht gut vor. 
  Boing

-----------------------------------------------------------------------------



Re^3: William Horwood (Bendeigid, 15. Jun 1999, 16:38:05):
~#! rn=Boing rt=929441419 rg=kultur
~#! tid=929383936
Jup, stimmt.
Allerdings ist das auch der einzige, der von insgesamt 6 Baenden uebersetzt
ist. Damals machte Klett-Kotta die neue "Abteilung" Fantasy auf, und im Zuge
dessen haben sie u.a. auch den ersten Band (gut) uebersetzen lassen. Da wusste
aber auch keiner, warum sie die Nachfolger nicht uebersetzen liessen.

Z'par Servu,
           Bendeigid, der gerne wuesste, wer da die Rechte dran hat...

-----------------------------------------------------------------------------



Re^4: William Horwood (Acrimon, 15. Jun 1999, 19:03:21):
~#! rn=Bendeigid rt=929457485 rg=kultur
~#! tid=929383936
Wenn im englischen Original viele Redewendungen verwendet werden, dann
versteht man die mit mittelmaeszigen Englisch-Kenntnissen jedenfalls nicht. Da
ist dann eine mittelmaeszige deutsche Uebersetzung besser...

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Re^5: William Horwood (Nevok, 15. Jun 1999, 19:04:11):
~#! rn=Acrimon rt=929466201 rg=kultur
~#! tid=929383936
gerade dadurch, dass man selbige Redewendungen liest erweitert man seinen
passiven und zum Teil auch aktiven Wortschatz ungemein...von daher...

-----------------------------------------------------------------------------



Re^6: William Horwood (Householder, 15. Jun 1999, 19:19:48):
~#! rn=Nevok rt=929466251 rg=kultur
~#! tid=929383936
durch das erraten von einigen redewendungen bekommt man erst das
sprachgefuehl, um von seinem mittelmaessigen sprachkenntnisstand
hinfochtzukommen :-)

-----------------------------------------------------------------------------



Re^7: William Horwood (Nevok, 15. Jun 1999, 19:22:17):
~#! rn=Householder rt=929467188 rg=kultur
~#! tid=929383936
wobei da auch manchmal recht interessante sachen zum vorschein kommen
Dumbass is kein bloedes hinterteil sondern ein dummer esel (vom lateinischen
asinus=esel kommend)
ob man sich nu beleidigt fuehlt weil man arsch oder esel genannt wurde bleibt
einem selbst ueberlassen, kommt im extremfall aber aufs gleiche raus... ;)

-----------------------------------------------------------------------------



Subway in Krefeld (Kartoffel, 15. Jun 1999, 22:40:24):
Fuer Kurzentschlossene:

Am Donnerstag (18.6.) sind Subway to Sally in Krefeld in der Kulturfabrik,
also nischt wie hin :))

~Toffel 

Blut, Blut, Raeuber saufen Blut
Raub und Mord und Ueberfall sind gut
Hoch vom Galgen klingt es
Hoch vom Galgen klingt es
Raub und Mord und Ueberfall sind gut

-----------------------------------------------------------------------------



Re^5: William Horwood (Bendeigid, 16. Jun 1999, 09:06:05):
~#! rn=Acrimon rt=929466201 rg=kultur
~#! tid=929383936
Ueberszetzt mal einer diezsen Artikel fuer mizs?

Bendeigid, der nichts von mittelmaessigen Uebersetzungen haelt. Wenn man in
solchen "Uebersetzungen" noch Anglizismen findet, die man woertlich
rueckuebersetzen muesste, dann aber voellig anderen Sinn erhaelt... pfui! Das
nimmt mir den Spass an solchen Buechern, wenn auch der Inhalt noch so gut ist.

-----------------------------------------------------------------------------



Re: Re: William Horwood (Helva, 27. Jun 1999, 14:24:38):
~#! rn=Hate rt=929385624 rg=kultur
~#! tid=929383936
Amazon.de hat auch den Vorteil, dass Du waehlen kannst, ob Du per Kreditkarte,
per Bankeinzug oder per Euroscheck zahlen moechtest. Paranoid wie ich bin,
habe ich letztens per Euroscheck bezahlt, und es hat voellig problemlos
geklappt. Meine Buecher haetten im normalen Buchhandel 23 DM das Stueck
gekostet, so habe ich kanpp 13 DM je Buch bezahlt.

Helva

-----------------------------------------------------------------------------



Konzerttip (Kartoffel, 22. Jul 1999, 12:10:41):
      F E U E R T A N Z F E S T I V A L
in Duesseldorf im Stahlwerk (Ronsdorfer Strasse) am 8.8.99

                      Mit:
               Subway to Sally
                  In Extremo
             The Inchtabokatables


Also: Ohren vorgluehen und nix wie hin!

'Toffel -bekennende Sally-Juengerin

-----------------------------------------------------------------------------



Re: Zwangspause (Miezes Artikel) (Guildo, 22. Jul 1999, 14:18:32):
Da ich in seher.urlaub nicht schreiben darf:
Mich wuerde interessieren, was ihr denn da so singt (nicht dass ich Zeit
haette mir das anzuhoeren, aber einfach interessehalber mal).

Gruss,
Guildo

-----------------------------------------------------------------------------



Re: Konzerttip (Lug, 28. Jul 1999, 02:42:31):
~#! rn=Kartoffel rt=932638241 rg=kultur
~#! tid=932638241

Ist ja ganz nett,

aber in 2 Wochen ist WWWWWAAAAACCCCKKKKEEEENNNNNN!

Das Metal Open Air schlechthin... und Subway und In Extremo sind auch da...

Lug

-----------------------------------------------------------------------------



Re: Re: Konzerttip (Almdudler,  2. Aug 1999, 17:10:05):
~#! rn=Lug rt=933122551 rg=kultur
~#! tid=932638241
antworte

-----------------------------------------------------------------------------



Re^3: Konzerttip (Lug,  4. Aug 1999, 00:26:11):
~#! rn=Almdudler rt=933606605 rg=kultur
~#! tid=932638241

worauf?

,

-----------------------------------------------------------------------------



Literaturtips gesucht! (Foobar,  4. Sep 1999, 12:36:52):
Hallo Kameradinnen und Kameraden.

Hat einer von Euch mal Empfehlungen fuer gute Fantasy-Buecher?

Ich meine: Gibt es noch was anderes lesenswertes ausser Tolkien, Pratchett und
Feist?

U.A.w.g.

Foobar (liest gerne, wenn er nicht gerade metzelt)

-----------------------------------------------------------------------------



Re: Literaturtips gesucht! (Sublime,  4. Sep 1999, 12:38:24):
~#! rn=Foobar rt=936448612 rg=kultur
~#! tid=936448612
Da gaebs noch was ;) Faellt zwar mehr in die Sparte Science Fiction
aber hat durchaus was reizvolles. Ich meine, Frank Herbert's Dune und die
5 folgenden Baende. Ist sehr interessant, gut zu lesen und gut durchdacht.

Subl

-----------------------------------------------------------------------------



Re: Literaturtips gesucht! (Wim,  4. Sep 1999, 12:41:12):
~#! rn=Foobar rt=936448612 rg=kultur
~#! tid=936448612
Stephen R. Donaldson - Lord Fouls Bane, The Illearth War, The Power That
Preserves
Dave Duncan - The Seventh Sword
Guy Gavriel Kay - The Fionavar Tapestry
Melanie Rawn - Dragon Prince, The Star Scroll, Sunrunner's Fire
  - The Ruins of Ambrai, Mageborn Traitor
Tad Williams - The Dragonbone Chair, Farewell Stone, To Green Angel Tower

nur mal so, was mir auswendig einfaellt...

Wim, mit den 1200 Fantasybuechern ;)


-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Foobar,  4. Sep 1999, 12:41:34):
~#! rn=Sublime rt=936448704 rg=kultur
~#! tid=936448612
Ich schon wieder!

Danke fuer den Tip, aber ich meinte dann doch eher die 'klassiche' Fantasy,
wie sie auch in den von mir im ersten Artikel genannten Buechern vorherrscht.

Foobar

-----------------------------------------------------------------------------



Re^3: Literaturtips gesucht! (Ark,  4. Sep 1999, 12:48:34):
~#! rn=Foobar rt=936448894 rg=kultur
~#! tid=936448612
Also, was im Moment bei mir nicht zu uebertreffen ist, ist George Martin:
A Game of Thrones und weiter A Clash of Kings

Ist klassische Fantasy, sehr gute Charakterausarbeitung und eigentlich toller
Plot, Intrigen, Politik, etc., alles eben was mir gefaellt.
Wie sagen die Amikritiker? A MUST-Read!


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Literaturtips gesucht! (Yaren,  4. Sep 1999, 12:59:55):
~#! rn=Foobar rt=936448894 rg=kultur
~#! tid=936448612
pratchet is 'klassische fantasy'? *wunder*

Yaren.

-----------------------------------------------------------------------------



Re^4: Literaturtips gesucht! (Foobar,  4. Sep 1999, 13:29:04):
~#! rn=Yaren rt=936449995 rg=kultur
~#! tid=936448612
Etwa nicht? ;o)

Foobar

-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Apsu,  4. Sep 1999, 14:01:40):
~#! rn=Sublime rt=936448704 rg=kultur
~#! tid=936448612
Sehr gut aber ziemlich zaeh und langatmig manchmal. Sicher nicht jedermanns
Geschmack.

-----------------------------------------------------------------------------



Re: Literaturtips gesucht! (Grimman,  4. Sep 1999, 17:09:36):
~#! rn=Foobar rt=936448612 rg=kultur
~#! tid=936448612
Ist zwar auch nicht klassisch, und nicht Fantasy im herkoemmlichen Sinne, aber
ich kann die 'Hexer von Salem' Reihe von Hohlbein (baut auf dem Cthulhu-Mythos
auf) empfehlen, ist zwar nur deutsch, aber dennoch gut (IMHO).

GrimMan , sonst eher Shadowrun lesend

-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Grimmborn,  5. Sep 1999, 13:32:06):
~#! rn=Grimman rt=936464976 rg=kultur
~#! tid=936448612
Argh, nicht schon wieder einen Holbeinhasser-thread...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^3: Literaturtips gesucht! (Foobar,  5. Sep 1999, 13:53:08):
~#! rn=Grimmborn rt=936538326 rg=kultur
~#! tid=936448612
Um den Thread zu vermeiden, kannst Du kurz den Argumentationsverlauf des
letzten zusammenfassen?

Foobar - neugierig

-----------------------------------------------------------------------------



Re^4: Literaturtips gesucht! (Wurzel,  5. Sep 1999, 16:06:58):
~#! rn=Foobar rt=936539588 rg=kultur
~#! tid=936448612
wer den cthulhu-mythos sucht, sollte h.p. lovecraft lesen.
zu hohlbein faellt mir eigentlich nur eins ein: wer pro jahr zwanzig oder
mehr buecher schreibt, kann eigentlich nur entweder ein sammelpseudonym sein
oder herzlich wenig sorgfalt auf seine buecher verwenden.
ansonsten: siehe die tips von wim, die ich noch ergaenzen moechte um david
eddings, der sehr "klassische" fantasy schreibt, allerdings nicht so ganz
bierernst ist dabei. derzeit neunzehn buecher wenn ich keins uebersehen habe.
erwaehnenswert auch robert jordan, der eine sehr schoen ausgearbeitete welt
hat (allerdings auch ein problem damit, endlich auf den punkt zu kommen).
momentan acht buecher, noch immer kein ende in sicht.
janny wurts' "curse of the mistwraith" kommt gerade als deutsche uebersetzung
auf den markt, lesenswert auf jeden fall.

ach, bei den buecherzahlen nicht verwirren lassen: seit die amerikanischen
verlage die praxis aufgegeben haben, jedes buch gnadenlos auf 300 seiten
zu kuerzen, sind die geschaeftstuechtigen deutschen verlage auf die tolle
idee gekommen, ein amerikanisches original in zwei oder drei stuecken auf
den markt zu werfen. frueher musste man fuer die originalausgabe in der regel
mehr ausgeben als fuer die uebersetzung, heute kann man dagegen sogar daran
sparen.

wurzel

p.s. wenn mehr lesetips gebraucht werden, kann ich mal anfangen zu stoebern.
ich weiss zwar ohne zu zaehlen nicht, ob ich mehr oder weniger als wims 1200
fantasybuecher habe, aber eine recht ordentliche sammlung ist es auf jeden
fall :)

-----------------------------------------------------------------------------



Re^5: Literaturtips gesucht! (Foobar,  5. Sep 1999, 16:29:30):
~#! rn=Wurzel rt=936547618 rg=kultur
~#! tid=936448612
Hoi!

Schon mal besten Dank fuer die Tips, das sollte fuers naechste Jahr reichen
:o)

BTW, was ist eigentlich von Terry Brooks zu halten? Ich kenn nur seine Star
Wars Romane und fand die etwas flach in der Charakterauspraegung.

Foobar - kauft Buecher

-----------------------------------------------------------------------------



Re^6: Literaturtips gesucht! (Anatol,  5. Sep 1999, 16:50:34):
~#! rn=Foobar rt=936548970 rg=kultur
~#! tid=936448612
Terry Brooks ist imho derjenige, der die Shannara-Saga verbrochen hat
und ich teile (unabhaengig von etwaigen hier spielenden Namensvettern)
Foobars Auffassung und wuerde sogar soweit gehen zu behaupten, dass
nicht nur die Charaktere lieblos, sondern auch die Story ziemlich 
unausgeschmueckt ist. Wer Tolkien wegen seiner Blumhaftigkeit nicht
mochte, wird in Brooks' Shannara das absolute Gegenstueck finden - und
vermutlich auch damit nicht gluecklich werden.

half penny,
Anatol


-----------------------------------------------------------------------------



Re: Literaturtips gesucht! (Kartoffel,  5. Sep 1999, 19:40:47):
~#! rn=Foobar rt=936448612 rg=kultur
~#! tid=936448612

L.E. Modesitt Jr. kann ich waermstens empfehlen, hat ne Reihe ueber Order-
(mir faellt kein passendes deutsches Wort dafuer ein, Ordnung trifft es nicht
richtig) und Chaosmagie geschrieben, sehr stimmig und gut konstruiert, gute
Prise Humor dabei.

1.Band: Magic of Recluce
2. Band: Towers of Sunset
3.Band: Magic Engineer
4. Band: Order War
5. Band: Death of Chaos
6. Band: Fall of Angels
7. Band: Chaos Balance
Bis hier hab ich sie gelesen, es ist keine durchgehende Reihe in dem Sinn, es
sind Zeitspruenge drin, aber im Zusammenhang wird halt nach und nach anhand
von verschiedenen Charakteren die Geschichte dieser Welt abgehandelt.
Danach weiss ich noch von 2 Baenden:
8. Band: White Order
9. Band: Colours of Chaos


Dringende Pflichtlektuere ist natuerlich Robert JOrdan mit der Wheel of Time
Reihe.

Wers rasant mag: 
Terry Goodkind mit der Reihe Sword of Truth, ich hatte beim Lesen teilweise
das Beduerfnis immer schneller zu lesen, weil ich den Eindruck hatte, die
Geschichte rennt mir davon. Ist anscheinend in einigen Teilen an Wheel of Time
angelehnt. 

Momentan les ich David Eddings mit der Belgariad- bzw. Malorean-Saga, wunder
voll maerchenhaft geschrieben.

Hmm, bei maerchenhaft faellt mir dann noch Tad Williams mit der
Drachenbeinthron-Reihe ein.

Hmm, ich glaube, das sollte erstmal reichen :))

'Toffel

-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Yendi,  6. Sep 1999, 10:55:13):
~#! rn=Kartoffel rt=936560447 rg=kultur
~#! tid=936448612
(NB:Modesitt klingt nach dem dritten Band immer gleich.)

ANZURATEN:
Zumindest der erste Band der "Wizard of Earthsea"-Tetralogie von

   Ursula K LeGuin: The Wizard of Earthsea.

Ferner: Fast alles von Steven Brust ist Fantasy, unter anderem seine 
Vlad-Taltos-Serie und die beiden Hommagen (Hommages?) an Alexandre Dumas'
Musketiere, "The Phoenix Guards" und "500 Years After". Bombastische Sprache.

Ausserdem:
   Guy Gavriel Kay: A Song For Arbonne   und
                    The Lions of Al-Rassan
Letzteres hat zwar keine Magie mehr, ist aber m.E.n. eines der besten Buecher,
die ich je gelesen habe.

   Mervin Peake: Gormenghast
   Glen Cook: The Annals of the Black Company  (mit Einschraenkungen)
   William Goldman: The Princess Bride
   Roger Zelazny: The Amber Chronicles
   Emma Bull: War for the Oaks

Und wenn ich Dich fuer gute SF begeistern kann:

   Iain M Banks: The Player of Games
                 Use of Weapons
   Dan Simmons: Hyperion
   Orson Scott Card: Ender's Game
                     Speaker for the Dead
   Frank Herbert: Dune (nur den 1. Band!)
   Douglas Adams: The Hitchhiker's Guide to the Galaxy



So, mehr faellt mir jetzt auf leeren Magen nicht ein.
Ich werde mal einen Blick in meinen Buecherschrank werfen und nachbessern.

YTY



-----------------------------------------------------------------------------



Re^3: Literaturtips gesucht! (Bendeigid,  6. Sep 1999, 13:44:12):
~#! rn=Yendi rt=936615313 rg=kultur
~#! tid=936448612
uuuuh, Mervin Peakes "Gormenghast" kann ich nur empfehlen; ein selten gutes
Buch (genaugenommen sinds 3)
AAber: Man sollte wissen, dass das 3. unvollendet ist, und Peake im Irrenhaus
gestorben ist, waehrend er daran schrieb. Ich meine, wer das liesst, der
sollte sich ziemlich sicher ueber seine Gefuehlswelt sein, denn das ist
zeitweise voellig abgedreht und nicht leichtverdaulich. Aber genial, da gibts
nichts!

Wer mehr auf klassische Sagenfantasy steht, dem sei Gillian Bradshaw
empfohlen. Artussage mal wieder. 
Brooks ist in der Tat nur seicht, und, um den "Hohlbein-Thread" aufzufrischen,
der ist sogar noch seichter ;)

Z'par Servu,
          Bendeigid, hat keine 1200 Buecher :((

-----------------------------------------------------------------------------



Re^4: Literaturtips gesucht! (Apsu,  6. Sep 1999, 17:37:57):
~#! rn=Bendeigid rt=936625452 rg=kultur
~#! tid=936448612
Nein-kein Hohlbein-Thread! :) Einige ganz alte Sachen von Hohlbein fand ich
prima (Enwor-Zyklus z.B.) 
*rumsenf*

-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Ark,  6. Sep 1999, 18:56:37):
~#! rn=Kartoffel rt=936560447 rg=kultur
~#! tid=936448612
Huch, Kartoffel hat recht, Tad Williams ist unbedingt zu empfehlen, diese
Geschichte um die drei Schwerter hat echt was, auch wenn Tryfan meint, nach
den ersten Kapiteln weiss man schon was passiert. Naja, nicht umsonst laufen
hier viele mit den Namen herum, z. B. Padreic, Ineluki, Morgenes, um nur
einige zu nennen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Literaturtips gesucht! (Streawkceur,  6. Sep 1999, 20:39:15):
~#! rn=Ark rt=936644197 rg=kultur
~#! tid=936448612
Hm... wie waers mit Alan Deam Foster, dessen "Bannsaenger"-Zyklus sich in den
Troy-Questen hier (z.B. Hexerquest) widerspiegelt, oder sein "Eissegler"
(Icerigger), auf dem die Polarstadt Moulokin basiert? Nett sind auch seine
Kurzgeschichten, z.B. der Band "Der Metrognom".
Barbara Hambly (die Gefaehrtin des Lichts, und "Die Mutter des Winters") hat
mir auch sehr gut gefallen - scheint selten gelesen zu werden, ich hab noch
keinen Namen aus den Buechern hier im MUD gefunden...

rr (outet sich hiermit als Leser von - shocking - deutschen Uebersetzungen :-)

-----------------------------------------------------------------------------



Re^4: Literaturtips gesucht! (Grimman,  6. Sep 1999, 20:43:13):
~#! rn=Streawkceur rt=936650355 rg=kultur
~#! tid=936448612
Hmmm .. ich hab da noch was, was ich immer sehr gerne im Bus lese, also auch
eher trivial ;)
Von David Ferring die Konrad-Trilogie, angesiedelt in der Warhammer-Welt und
daher von der Welt her ziemlich ausgearbeitet.
Mir hats gefallen ...

GrimMan , scheinbar doch eher ein einfacher Kerl ;)

-----------------------------------------------------------------------------



Re^4: Literaturtips gesucht! (Muadib,  6. Sep 1999, 20:48:29):
~#! rn=Streawkceur rt=936650355 rg=kultur
~#! tid=936448612
neben den den vielen tips pro einen kontra, um mein gewissen
zu beruhigen: lest NICHTS von bjoern jagnow, dann doch lieber 
buchstabensuppe kochen und sich auf die wesentlich anregendere 
lektuere freuen

gruss

muadib (ja mit einem d und keinem apostroph - basta)

-----------------------------------------------------------------------------



Re^4: Literaturtips gesucht! (Ark,  6. Sep 1999, 20:48:35):
~#! rn=Streawkceur rt=936650355 rg=kultur
~#! tid=936448612
Ok, war auch witzig, aber ich steuere noch etwas bei, Raymond Feist und
Midkemia. Eigentlich alles, was so auf dem Markt von ihm dazu zu haben ist,
ist lesenswert, besonders "die andere Sicht" des Spaltkriegs (ist das die
deutsche Uebersetzung von Riftwar? klingt richtig) in den drei Buechern mit
Janny Wurts. Fand ich spannend. Alle verschlungen. Auch hier viel Politik,
Intrigen und Mord :-) Legenden, ein paar Drachen, Daemonen, etc.
Was will man mehr ?


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^5: Literaturtips gesucht! (Ark,  6. Sep 1999, 20:50:56):
~#! rn=Ark rt=936650915 rg=kultur
~#! tid=936448612
Okok, ich sehe, ich hab schon vergessen, was der erste Artikel enthielt, sorry
:-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^6: Literaturtips gesucht! (Zarniya,  7. Sep 1999, 07:57:13):
~#! rn=Ark rt=936651056 rg=kultur
~#! tid=936448612
Hmmm mich wundert, das Silvana noch nicht das kultige Weel of Time empfohlen
hat, was in Fachkreisen ja als DER grosse Klassiker nach den Ringen gilt.
Ansonsten wuerd ich Pratchet auch nicht als Klassisch bezeichnen, aber wenn
man Fun-Fantasy mag, dann sollte man unbedingt auch mal einige Buecher aus der
Xanth-Welt von Piers Anthony testen, oder aber Robert Asprins Daemonensaga. 
Wer echte klassische Literatur kennt, der sollte man zu Tom Holt greifen, der
einem einen vollkommen neuen Einblick in zB die Nibelungen gibt, oder aber in
griechische Mythen. 
Robert Rantkin (schreibt der sich so?) kenn ich nur aus gewaltigen Lobesreden
von Zardoz, scheint ein wenig der Meister des running gags zu sein und ist
wohl auch im Humor sehr skuril.

Marc

-----------------------------------------------------------------------------



Re^7: Literaturtips gesucht! (Boing,  7. Sep 1999, 10:21:26):
~#! rn=Zarniya rt=936691033 rg=kultur
~#! tid=936448612
Robert Rankin ist tatsaechlich ziemlich skuril, allerdings kann man ihn
wohl weniger zu Fantasy einordnen sondern mehr zu SF. Lesenswert ist
er auf alle Faelle (wenn man auf Rosenkohl steht).
  Boing

-----------------------------------------------------------------------------



Re^8: Literaturtips gesucht! (Hobo,  7. Sep 1999, 12:55:57):
~#! rn=Boing rt=936699686 rg=kultur
~#! tid=936448612
Wem Robert Rankin gefaellt, der schaut sich auch die Simpsons an *schuettel*

  Hobo

-----------------------------------------------------------------------------



Re^7: Literaturtips gesucht! (Anatol,  7. Sep 1999, 13:06:30):
~#! rn=Zarniya rt=936691033 rg=kultur
~#! tid=936448612
Das beruehmte Wheel of Time hat gewissermassen Achsbruch erlitten. Der
siebte Band war teilweise schon etwas langatmig, mit wenig "Action" und
viel zu sehr ausgeschmuecktem politischen Geplaenkel, der achte Band, 
der vor kurzem herauskam und inzwischen als Paperback erhaeltlich ist,
ist in meinen Augen ein weiterer Tiefstrekord - viel Blubb und Bla, die
Kernhandlung wird - im ohnehin nicht gerade dicken Buch - vernachlaessigt.
Entweder bereitet sich Jordan auf ein hypergeniales Finale in Band IX 
oder X vor, oder er wird ganz einfach alt. Ich befuerchte letzteres.

Anatol


-----------------------------------------------------------------------------



Re^8: Literaturtips gesucht! (Boing,  7. Sep 1999, 13:42:07):
~#! rn=Anatol rt=936709590 rg=kultur
~#! tid=936448612
Band 9 oder 10? Ich habe gehoert die Reihe waere auf mindestens 13
Baende ausgelegt, auf das hypergeniale Ende kann man also wohl noch
ne Weile warten ... ;) Aber etwas steigern duerfte er sich tatsaechlich
mal wieder.
  Boing

-----------------------------------------------------------------------------



Re^9: Literaturtips gesucht! (Rumata,  7. Sep 1999, 14:01:49):
~#! rn=Boing rt=936711727 rg=kultur
~#! tid=936448612
Gibts irgendwo 'ne FAQ zu dem thema?

-----------------------------------------------------------------------------



Re^10: Literaturtips gesucht! (Muadib,  7. Sep 1999, 14:21:32):
~#! rn=Rumata rt=936712909 rg=kultur
~#! tid=936448612
um mal populistisch zu sein: RANKIN RULES

-----------------------------------------------------------------------------



Re^9: Literaturtips gesucht! (Bendeigid,  7. Sep 1999, 14:22:48):
~#! rn=Boing rt=936711727 rg=kultur
~#! tid=936448612
Hm, ich muss den Zorn der Goettergattin herausfordern, aber die Aussage kann
man nicht stehenlassen. 
Robert Rankin habe ich gelesen (in der Tat auf Empfehlung des Daemons), und
ich hab mich schimmelig gelacht. In Englisch, wohlgemerkt, ich hab keine
Ahnung, wie die Uebersetzungen vermurkst werden. Und NEIN, ich hab noch NIE
Simpsons geguckt, bin aber sicher, dass ich es hassen wuerde.
Tom Holt.... ich verstehe nicht, wieso der Klassisch sein soll. Er ist
urkomisch, und ich wuerde ihn (fast) mit Pratchett gleichsetzen. Er schreibt
ein wenig anderen Stil, auf jeden Fall mit Praedikat "sollte man gelesen
haben".

Z'par Servu,
              Bendeigid

-----------------------------------------------------------------------------



Re^10: Literaturtips gesucht! (Zarniya,  7. Sep 1999, 14:28:11):
~#! rn=Bendeigid rt=936714168 rg=kultur
~#! tid=936448612
Hi nochmal, 

ich sagte nicht, dass Holt klassisch ist, sondern, dass er klassische Themen
verarbeitet. So gibt es von ihm Versionen des Fliegenden Hollaenders, vom
NibelungenRing, von der Kreuzrittersaga und der Suche nach dem heilgen Gral
und die Verarbeitung einiger griechischen Sagen. Wenn man die originale nicht
kennt, dann ist natuerlich der Spass auch nicht ganz so gross.

Marc

-----------------------------------------------------------------------------



Re^11: Literaturtips gesucht! (Bendeigid,  7. Sep 1999, 14:36:25):
~#! rn=Zarniya rt=936714491 rg=kultur
~#! tid=936448612
right! Zustimmung!

Z'par Servu,
           bendeigid

-----------------------------------------------------------------------------



Re^9: Literaturtips gesucht! (Apsu,  7. Sep 1999, 15:00:06):
~#! rn=Hobo rt=936708957 rg=kultur
~#! tid=936448612
Nix gegen die Simpsons! *daumen hochhalt*

-----------------------------------------------------------------------------



Re: Literaturtips gesucht! (Angus,  7. Sep 1999, 15:59:56):
~#! rn=Foobar rt=936448612 rg=kultur
~#! tid=936448612
Meine Tips:
Michael Moorcock - Elric von Melnibone / Corum
Fred Saberhagen - Das Buch der Schwerter
... vor allem letzteres ;) ... und das erste auch ... oder so.
   Angus.

-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Quengistu,  7. Sep 1999, 16:27:59):
~#! rn=Angus rt=936719996 rg=kultur
~#! tid=936448612
Um auch mal einen anderen deutschen Autoren als Hohlbein (der mir im uebrigen
auch nicht gefaellt) zu nennen:
Hans Bemmann "Stein und Floete"

Ich habe das Buch vor etwa 10 Jahren gelesen, und inzwischen ist es mit
Sicherheit als Taschenbuch erschienen. Es ist keine richtige "Sword &
Sorcery"-Fantasy, sondern eher ein Maerchen, dafuer ist der Hauptcharakter
nicht so flach wie die meisten Fantasy-Helden.

Gruss, Queng*

-----------------------------------------------------------------------------



Re^10: Literaturtips gesucht! (Ark,  7. Sep 1999, 18:32:44):
~#! rn=Bendeigid rt=936714168 rg=kultur
~#! tid=936448612
Wieso, Homer rules, oder? :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Literaturtips gesucht! (Firehawk,  7. Sep 1999, 19:42:44):
~#! rn=Quengistu rt=936721679 rg=kultur
~#! tid=936448612
Ich weiss nich, warum das bis jetzt nicht genannt wurde, aber der
'Deathgate'-Zyklus von Margaret Weis und Tracy Hickman gehoert immer noch zu
meinen Lieblingsbuechern, das Magiesystem und seine Aufspaltung ist sehr
interessant und die einzelnen Buecher gehen gut ineinander ueber und bilden so
eine grosse Geschichte.

Firehawk

-----------------------------------------------------------------------------



Re^4: Literaturtips gesucht! (Grimmborn,  7. Sep 1999, 21:12:40):
~#! rn=Firehawk rt=936733364 rg=kultur
~#! tid=936448612
> ...und die einzelnen Buecher gehen gut ineinander ueber und bilden so
> eine grosse Geschichte.

aka "Bis Du endlich weist wie es ausgeht steht Dein Rechner im Pfandhaus."

GdA

-----------------------------------------------------------------------------



Re: Literaturtips gesucht! (Lug,  7. Sep 1999, 21:19:54):
~#! rn=Foobar rt=936448612 rg=kultur
~#! tid=936448612

Stephen R. Donaldson.

Lug

P.S.: Noe, ich les nicht die 39 anderen Artikel zuerst...

-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Lug,  7. Sep 1999, 21:21:14):
~#! rn=Wim rt=936448872 rg=kultur
~#! tid=936448612

Hm,

Wim? Wieso bei Kay nicht Tigana?
HAEH?
Lug

-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Sublime,  7. Sep 1999, 21:21:20):
~#! rn=Lug rt=936739194 rg=kultur
~#! tid=936448612
Man, da hat Foobar aber wat' losgetreten ;)

Subl, staunend ueber die angeballte Ladung von Papier.

-----------------------------------------------------------------------------



Re^3: Literaturtips gesucht! (Wurzel,  7. Sep 1999, 21:22:37):
~#! rn=Sublime rt=936739280 rg=kultur
~#! tid=936448612
jeder, der mud spielt, haelt sich naturgemaess auch fuer einen fantasy-
experten. ist also nicht weiter verwunderlich :)

-----------------------------------------------------------------------------



Re^5: Literaturtips gesucht! (Lug,  7. Sep 1999, 21:23:41):
~#! rn=Wurzel rt=936547618 rg=kultur
~#! tid=936448612
Hm Wurzel,

zu Chtulhu sollte man NUR Lovecraft lesen...
Seine Nachfolger allen voran dieser Brite sind SCHROTT.

Lug

P.S.: Shubb Niggurath the Goat with a thousand young...

-----------------------------------------------------------------------------



Re^7: Literaturtips gesucht! (Lug,  7. Sep 1999, 21:25:15):
~#! rn=Anatol rt=936550234 rg=kultur
~#! tid=936448612

Zu Terry Brooks und aehnlichem Murks (z.B. Nancy "Kotz" Springer) empfehlen
sich die wundervoolen David Langford Rezensionen in alten White Dwarf
Ausgaben...

Lug

-----------------------------------------------------------------------------



Re^7: Literaturtips gesucht! (Lug,  7. Sep 1999, 21:29:16):
~#! rn=Zarniya rt=936691033 rg=kultur
~#! tid=936448612

Wheel of Time? Welche ernstzunehmenden Fachkreise (nicht die Blurb Autoren)
wuerden den wirklich mit tolkien vergleichen? Bei Robert Jordan faellt man
unter das Gesetz der Serie, aber er ist sowohl eine stilisitsche als auch
erzaehlerische Niete.

Lug
(Jaja, ich warte auch auf den naechsten Band)

-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Tarina,  7. Sep 1999, 21:34:00):
~#! rn=Lug rt=936739194 rg=kultur
~#! tid=936448612
Donaldson wurde glaube ich auch noch nicht genannt. Aber er ist (m.E.)
auch nicht uneingeschraenkt empfehlenswert.
Ich habe seine Buecher zum Teil hintereinander gelesen und war doch ein wenig
angenervt von den sich staendig wiederholenden Jammersequenzen darin.

Tarina

-----------------------------------------------------------------------------



Re^8: Literaturtips gesucht! (Lug,  7. Sep 1999, 21:36:48):
~#! rn=Lug rt=936739756 rg=kultur
~#! tid=936448612

Hm,

bisher hat niemanden Gene Wolfes Book of the New Sun erwaehnt. Der erste Band
auf deutsch heisst unheilschwanger Der Schatten des Folterers (The Shadow of
the Torturer). Ein wirklich ungewoehnliches Konzept (inklusive antropophagie)
paart sich mit literarischer Kompetenz. Ein echter Stilist. Wer kann sollte
das Original lesen...
Lug

-----------------------------------------------------------------------------



SAGA (Lug,  7. Sep 1999, 21:44:00):

So,

da letztlich fast alle Geschichten schon erzaehlt wurden:
Die wissenschaftliche Buchgesellschaft (etwas teurer auch bei Diederichs zu
haben) legt derzeit diverse islaendische Sagas (Soegur) in neuer Uebersetzung
vor. Damit wird die seit Jahrzehnten vergriffene Sammlung Thule endlich
ersetzt. Fuer den Anfaenger empfehlen sich die "Islaendischen Vorzeitsagas",
die "Grettis-Saga" und auch die "Laxdaela-Saga". Fortgeschrittenen koennen
sich auch an Maerchen(Luegen)-Sagas oder Islaendischen Antiken Sagas
ergoetzen. Bei den Vorzeitsagas befindet sich uebrigends eine KL fuer
Nibelungen ;)

Lug

P.S.: Einer der Baende ist bei der WBG bereits vergriffen (wenn einer
irgendwann mal die ganzen Meter Baende im Regal haben will). Falls einer der
WBG beitreten moechte oder ueber mich bestellen -> Mail an mich ;)

-----------------------------------------------------------------------------



Re: SAGA (Nevok,  7. Sep 1999, 21:51:46):
~#! rn=Lug rt=936740640 rg=kultur
~#! tid=936740640
Also mal ganz langsam Herr Lug, so von wegen Schuster bleib bei Deinen Leisten
und so. Nordische Sachen, schoen und gut..aber lass Odin nen guten Mann sein
und halte Dich an die richtigen Goetter und empfehl gefaelligst was
gescheites.
Irische Sagen sind blutig, nicht fuer Kinder und nett zu lesen. Man kriegt
nette Waffen Ideen raus (Gibts schon ne Gae Bulga oder wie sich das Ding
schreibt? ja das komische Ding das Xena versucht zu werfen). Ausserdem sind
die Helden ganz nett, man denke nur an..CuChulainn respketive CuuChuulainn
falls der Hausexperte mir richtig ueber die Mangelnden Zusatzzeichen
hinweggeholfen hat...und natuerlich einen netten Gott names Lugh Lambasa...dem
wir den Feiertag Lughnasad oder fuer die Christen unter uns Lichtmess zu
verdanken haben...

Just my two cents

Nevok

-----------------------------------------------------------------------------



Re: Re: SAGA (Lug,  7. Sep 1999, 21:55:20):
~#! rn=Nevok rt=936741106 rg=kultur
~#! tid=936740640
Fehlerkorrektur:
Gae Bolga. Lug (Lugh ist Neuirisch (igitt)) Samildanach oder Lamfhada (wer
kommt auf Lambada?), Lichtmess habt ihr Katholen als am 1. August?

Sowas
Lug

-----------------------------------------------------------------------------



Re^3: SAGA (Lug,  7. Sep 1999, 21:56:56):
~#! rn=Lug rt=936741320 rg=kultur
~#! tid=936740640
Aeh,

ich hab da eben nen Typo produziert, in einem irischen Wort: Wer ihn findet
kriegt nen Sonderdruck meines neuesten Opus ;)

Drohend
Lug

-----------------------------------------------------------------------------



Re^4: SAGA (Rani,  7. Sep 1999, 21:57:48):
~#! rn=Lug rt=936741416 rg=kultur
~#! tid=936740640
seit wann ist also ein irisches wort?

Rani

-----------------------------------------------------------------------------



Re^3: SAGA (Nevok,  7. Sep 1999, 21:58:12):
~#! rn=Lug rt=936741320 rg=kultur
~#! tid=936740640
he jefe, kusch.......Du hast mich gezwungen das zu schreiben ich wollts Dir
ueberlassen.....aber ne, man is n netter Kerl und schreibt den Schotter
rein....und verhaspelt sich prompt. Is wie wenn man allein vorm Tor
steht....der ball geht ueberall hin nur net ins Tor, passiert ;)
Also Lugh wasweisichwer und der Feiertag stimmt....kann aber auch anders
heissen ;)

-----------------------------------------------------------------------------



Re^5: SAGA (Lug,  7. Sep 1999, 21:58:56):
~#! rn=Rani rt=936741468 rg=kultur
~#! tid=936740640

Das wars nicht Rani, das war einer von meinen Trademark Typos...
Lug

-----------------------------------------------------------------------------



Re^5: Literaturtips gesucht! (Firehawk,  7. Sep 1999, 21:59:58):
~#! rn=Grimmborn rt=936738760 rg=kultur
~#! tid=936448612
Pffft, bei 7 Buechern wird man noch nicht arm, ausserdem gefaellt mir das
besser, als kurze Geschichten, die ewig durchhetzen.

Firehawk

-----------------------------------------------------------------------------



Re^3: SAGA (Muadib,  7. Sep 1999, 22:50:48):
~#! rn=Lug rt=936741320 rg=kultur
~#! tid=936740640
wars nich lamfada anstatt lamfhada ?

-----------------------------------------------------------------------------



Re^4: SAGA (Lug,  7. Sep 1999, 22:53:20):
~#! rn=Muadib rt=936744648 rg=kultur
~#! tid=936740640
Fast. Das h muss schon nach dem m ran ;)
Aber ich lass das mal gelten ;)
Lug

-----------------------------------------------------------------------------



Re: Re: SAGA (Cuchullin,  8. Sep 1999, 01:04:52):
~#! rn=Nevok rt=936741106 rg=kultur
~#! tid=936740640
Ich bin mir durchaus bewusst, dass die Rechtschreibung meines Namens 
etwas zu wuenschen uebrig laesst, aber so wird zumindest an EIN Buch
von Hohlbein erinnert, das nicht ganz fuerchterlich schlecht ist...

Cuchullin - an seinem Guertel zerrt das Gewicht eines Wurfeisens


-----------------------------------------------------------------------------



Re^6: Literaturtips gesucht! (Grimman,  8. Sep 1999, 01:43:37):
~#! rn=Lug rt=936739421 rg=kultur
~#! tid=936448612
Nur kurz : Hiess das nicht Shu'ubb Nigurath?

GrimMan , ist sich allerdings nicht ganz sicher

-----------------------------------------------------------------------------



Re^8: Literaturtips gesucht! (Apollonia,  8. Sep 1999, 09:08:26):
~#! rn=Anatol rt=936709590 rg=kultur
~#! tid=936448612
Hmmm, kann es sein, dass Du da ein bisschen hinterherhinkst?? Mittlerweile
sind mehr als 20 Baende erschienen (in der englischsprachigen Originalausgabe
gibt's m.W. alle)... und meine ganz persoenliche Meinung: Ich find die klasse.

-----------------------------------------------------------------------------



Re^8: Literaturtips gesucht! (Apollonia,  8. Sep 1999, 09:12:10):
~#! rn=Anatol rt=936709590 rg=kultur
~#! tid=936448612
Also, nur ums nochmal zu erwaehnen, ich bezog mich da natuerlich auf die
deutschsprachigen Ausgaben (von wegen 20 Baende)... :)

-----------------------------------------------------------------------------



Re^9: Literaturtips gesucht! (Anatol,  8. Sep 1999, 09:30:56):
~#! rn=Apollonia rt=936781930 rg=kultur
~#! tid=936448612
Tja, S"u/3e, das ist Dein Problem ;o). Ich bezog mich auf die englische
Ausgabe - und dort ist man erst bei Band 8 und noch laengst nicht am
Ende (wie bereits jemand geschrieben hat, ist das auf etwa 13 Baende
(nicht nur 10, aber inzwischen halte ich das fuer nicht-so-toll)
ausgelegt). Die Diskrepanz englisch-deutsch ruehrt wohl daher, dass
irgendein schlauer Mensch merkte, dass man einen Originalband, 
der selbst ueber Importeur fuer unter 25.- DM zu haben ist, uebersetzt
viel gewinntraechtiger verkauft, wenn man 2 1/2 deutsche Baende (die
einzeln natuerlich guenstiger sind als ein englischer Band ;)) daraus
macht.

Anatol


-----------------------------------------------------------------------------



Re: Literaturtips gesucht! (Wanderer,  8. Sep 1999, 11:10:01):
~#! rn=Foobar rt=936448612 rg=kultur
~#! tid=936448612
Ich vermiss bei dem ganzen noch den Namen Andrzej Sapkowski.

-----------------------------------------------------------------------------



Re^10: Literaturtips gesucht! (Pampers,  8. Sep 1999, 12:52:37):
~#! rn=Anatol rt=936783056 rg=kultur
~#! tid=936448612
Suesse? Wieso Suesse? Ich dachte, Du schreibst an Apollonia?

Pampers. Weiss was suess ist. Und was nicht.

-----------------------------------------------------------------------------



Re^8: Literaturtips gesucht! (Wurzel,  8. Sep 1999, 19:09:39):
~#! rn=Lug rt=936739756 rg=kultur
~#! tid=936448612
au weia. weer bitteschoen sind hier die "ernstzunehmenden fachkreise"? wie
qualifiziert man sich dafuer? gehoere ich schon dazu oder wim mit 1200
buechern? wieviel muss man gelesen haben, oder geschrieben?
wie heisst der reich-ranicki der fantasy, und wo wird seine fernsehshow
ausgestrahlt?
zur eigentlichen frage: man kann auch aepfel mit birnen vergleichen. man
stellt eben unterschiede fest. tolkien hat insgesamt 60 jahre an seinen
buechern geschrieben, das kann man von keinem anderen autor erwarten.
robert jordan hat auf seine eigene art sehr vielversprechend angefangen, jetzt
sind ihm aber offensichtlich die ideen ausgegangen. kann man ihm zum vorwurf
machen, dass er mit seiner arbeit geld verdienen will? tolkien hatte das
nicht noetig.

wurzel

-----------------------------------------------------------------------------



Re^7: Literaturtips gesucht! (Cymonk,  9. Sep 1999, 01:43:23):
~#! rn=Grimman rt=936755017 rg=kultur
~#! tid=936448612

weder noch, dieser aeussere gott heisst: shub niggurath

btw: wer sich mit den buechern des mythos auseinandersetzt, wird
darauf stossen, dass diese bezeichnung irrefuehrend ist, da die uebersetzung
eigentlich 'dunkles junges' heisst.
da hat sich so ein depp 'nen lapsus geleistet, als er das necronomicon
aus dem arabischen uebersetzt hat.... :))

cy

das ist nicht tot, was ewig liegt, bis dass die zeit den tod besiegt

-----------------------------------------------------------------------------



Re^8: Literaturtips gesucht! (Nevok,  9. Sep 1999, 02:19:32):
~#! rn=Cymonk rt=936841403 rg=kultur
~#! tid=936448612
voll aus dem Kontext raus.....
da faellt mir nur n Famous Last Word ein.....
This scroll is useless, it has 'Hastur, Hastur, Hastur' written all over
it....


Nevok, der findet dass das Unaussprechliche auch unaussprechlich bleiben
sollte....

-----------------------------------------------------------------------------



Re^4: Literaturtips gesucht! (Apsu, 10. Sep 1999, 15:07:46):
~#! rn=Wurzel rt=936739357 rg=kultur
~#! tid=936448612
Noe ich nicht, aber SF-experte :)

-----------------------------------------------------------------------------



Re: Re: SAGA (Apsu, 10. Sep 1999, 15:10:52):
~#! rn=Nevok rt=936741106 rg=kultur
~#! tid=936740640
Nordische sagen sind nicht blutig? pfffffft!

-----------------------------------------------------------------------------



Re^3: SAGA (Nevok, 10. Sep 1999, 15:16:58):
~#! rn=Apsu rt=936976252 rg=kultur
~#! tid=936740640
Im Vergleich zu den Irischen Sagen sind die Nordischen Kindergartenlektuere...

-----------------------------------------------------------------------------



Re^3: Literaturtips gesucht! (Helva, 12. Sep 1999, 15:36:01):
~#! rn=Quengistu rt=936721679 rg=kultur
~#! tid=936448612
Aussserdem enthaelt Bemmanns "Stein und Floete" wohl eine der ergreifendsten
und wunderschoensten Liebesgeschichten uberhaupt....
Helva

-----------------------------------------------------------------------------



Re: Literaturtips gesucht! (Helva, 12. Sep 1999, 16:42:25):
~#! rn=Foobar rt=936448612 rg=kultur
~#! tid=936448612
Also, nach dem Kramen in meiner Raritaetenkiste ist mir noch ein Klassiker in
die Haende gefallen:

Leslie Barringer 
mit seinem "Neustrischen Zyklus".
Der dritte und schoensten (auch der letzte soweit ich weiss, "Die scheue
Leopardin" ist zum ersten Mal 1948 veroeffentlicht worden.
Ist wirklich wunderschoen allerdings-obwohl der Autor ebenfalls Brite
ist-voellig anders als Tolkien.
Ob das Buch noch erhaeltlich ist, weiss ich nicht, es wurde vor Jahren in der
Fischer Bibliothek der klassischen Abenteuer (das waren diese blauen Buecher)
herausgebracht.

Als Orientierungshilfe noch meinen eigenen Geschmack : Die "Terrys" mag ich
alle nicht, dafuer aber Tolkien (wer eigentlich nicht?), Robert Jordans erster
Band zumindest (die anderen kenne ich nicht), ach so, an "ironischer Fantasy"
bevorzuge ich die Artussage im Licht T.H. White.
Helva

-----------------------------------------------------------------------------



Re^4: Literaturtips gesucht! (Nevok, 12. Sep 1999, 17:09:36):
~#! rn=Helva rt=937150561 rg=kultur
~#! tid=936448612
ergreifend? und wunderschoen?
um da mal die comedy factory zu zitieren

SIND WIR ETWA MAEDCHEN???

Ne mal ganz im Ernst, also das waere nich unbedingt etwas womit ich ein Buch
anpreisen wuerde, fuer sowas gibts ja die ganzen Cora, Julia und was weiss ich
Buecher/Hefte/Druckmedien am Kiosk mit muskuloesen Maennern und
leichtbekleideten Frauen...

Nevok, der findet dass die schoenste Liebesgeschichte die ist, die man selber
erlebt und wogegen alles andere nur konkurenzlos erblasst

Grats an Boing uebrigens, geniesse Deine letzten Tage als Junggeselle :)

-----------------------------------------------------------------------------



Re^5: Literaturtips gesucht! (Helva, 12. Sep 1999, 21:11:51):
~#! rn=Nevok rt=937156176 rg=kultur
~#! tid=936448612
Als Tip, Nevok:
Probier mal finger helva , vielleicht findest Du da die Antwort auf Deine
Frage.
Uebrigens sind mir die von Dir zitierten Heftchen voellig unbekannt, und mein
vorurteilsbeladenes Hirn sagt mir, dass da gaaanz bestimmt keine richtigen
Liebesgeschichten drinstehen...anders als bei "Stein und Flote" *G*
Helva-heute Streiterin fuer Romantik ;)

-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Yendi, 13. Sep 1999, 11:20:58):
~#! rn=Helva rt=937154545 rg=kultur
~#! tid=936448612
Jaaa! "The Once And Future King" von T H White!
The Wart Rulez!
Wie hiess das noch? "Rex Quondam RexQue Futuris"?
Egal...


YTY


-----------------------------------------------------------------------------



Re^8: Literaturtips gesucht! (Lug, 14. Sep 1999, 23:42:43):
~#! rn=Cymonk rt=936841403 rg=kultur
~#! tid=936448612
Tjae,

in der deutschen Uebersetzung von "lie" geht voellig die Doppeldeutigkeit
floeten...

Tssend
Lug

-----------------------------------------------------------------------------



Re^4: SAGA (Lug, 14. Sep 1999, 23:43:43):
~#! rn=Nevok rt=936976618 rg=kultur
~#! tid=936740640
Nevok?

Du liest die falschen Sagas...

Lug

P.S.: Hm, ich sollte Elora nen Blutadler proggen lassen... oder will Tilly?

Lug

-----------------------------------------------------------------------------



Re: Re: Literaturtips gesucht! (Lug, 14. Sep 1999, 23:45:45):
~#! rn=Helva rt=937154545 rg=kultur
~#! tid=936448612

Aeh?

T. H. White ist "ironische Fantasy?"
Oeh...

Bah Humbug
Lug

-----------------------------------------------------------------------------



subkultur, diesmal mit umlauten (Montanus, 27. Sep 1999, 22:16:43):
Freitag abends im Stadion. Ein Erlebnisbericht.

Nichts ist mehr so, wie es mal war. Die Frauen, die Autos, und vor allem der
Fussball. Aber als Optimist gibt man ja die Hoffnung nie auf, und so machte
ich mich mal wieder auf den Weg ins Bruchwegstadion. Seit dem Stadionumbau vor
drei Jahren hat der Name ja nicht mehr volle Daseinsberechtigung, und
inzwischen klopft der FSV Mainz 05 ja auch fast jede Saison mal an der Tuer
ins Oberhaus an, um dann typischerweise meistens am letzten Spieltag gegen
hergelaufene Teams aus Wolfsburg und anderen Staedten auf der falschen Seite
des Rheins (sprich Westpolen) zu verkacken.
In dieser Saison standen fuer den selbsternannten Aufstiegsgeheimfavoriten
immerhin schon 3 Puenktchen nach 5 Spieltagen auf dem Konto, und die wurden
durch schmeichelhafte Unentschieden gegen Weltmeistertruppen wie Offenbach"
oder Chemnitz" erkaempft. In dieser Situation konnte nur eines retten: ein
Heimspiel gegen Hannover 96.

Exkurs: Es gibt Vereine, die graben sich metertief ein, wenn sie nur von
weitem den Hannoveraner Teambus sehen. Fragt mal Uwe Mannherz, Volker Heiss
oder mich, warum der VfL Bochum im Pokal kein Heimspiel haben will, solange 96
noch im Lostopf ist.

Schon auf dem Weg zum Stadion war klar: mehr als etwa 200 schwarz-weiss-gruene
Fans hatten zum Glueck kein Einreisevisum bekommen. Oder wussten die meisten
im Vorhinein, wie sich das Spiel entwickeln wuerde und hatten auf die weite
Anreise verzichtet? Oder hat 96 gar nur so wenig Fans? Eigentlich war es egal,
und die beiden netten jungen Herren, die sich in der Kassenschlange hinter mir
verirrt hatten, bekamen doch noch (nachdem ich gewartet hatte, bis sie fast
dran waren) von mir den guten Tip, dass die Kasse fuer Gaeste-karten direkt
vor dem Gaesteblock sei. Das waren sie anscheinend nicht gewohnt. Wenn man
sonst nur nach Herzlake, Salzgitter oder Schloss Neuhaus faehrt, koennen einen
die Wunder der Grossstadt ja schon ueberwaeltigen.

Zum Spiel gibt es nicht viel zu sagen. Statt mit schwarzen Perlen wie im
letzten Jahr, als Ado, Asamoah und Babacar fuer die Zonis spielten, traten die
Klappspatengesichter aus Schroederland dieses Jahr mit einer Balkanelf an.
Ivankovic, Kobylanski, Milosanevic, Ballverstolperovic und Co.  das liess das
Herz des Mainzer Fussballfans hoeher schlagen. 
Dann gings los, schwache erste 45 Minuten mit einem Pfostentreffer fuer 96 und
zwei ganz guten Chancen fuer Mainz, die Joerg der Held Sievers zunichte
machte. Am meisten beschaeftigt: der Linienrichter auf Hannoveranischer Seite,
der etwa 10mal den Arm samt Fahne wegen Abseits heben musste.
Pause, Hupfdolls, Wiederanpfiff.
Sirious Din-Mohammadi schnappt sich im Mittelfeld den Ball, schickt Gustav
Policella steil, der ist schneller als alle und schiebt aus 20 Metern den Ball
Sievers durch die Beine ins Tor. Ein Kullerball. Schoener gings nimmer, nach
49 Minuten. Nur noch 41 Minuten warten. Denn viel kam nicht mehr. Mainz
haemmerte noch einmal durch Hock gegen den Torpfosten, Svennie Demandt
Fussballgott hatte auch noch gute Chanen, und Hannover blieb harmlos. Aber das
war ja zu erwarten, besonders, nach dem Scooter" Blank, der einzige auch nur
ansatzweise fussballspielende Trikottraeger der Gaeste, ausgewechselt wurde.

Liebe Hannoveraner: ihr duerft wiederkommen. So oft ihr wollt. Am besten zu
allen restlichen 14 Heimspielen von 05. Wie jedes Jahr wart ihr ein perfekter
Aufbaugegner, ein Punkte-lieferant. Es ist halt doch manches noch so, wie es
schon immer war.



-----------------------------------------------------------------------------



Re: subkultur, diesmal mit umlauten (Alboin, 28. Sep 1999, 08:02:39):
~#! rn=Montanus rt=938470603 rg=kultur
~#! tid=938470603
lach* 
Hupfdolls = cheerleaders, das muss ich mir merken :-)

Alboin

-----------------------------------------------------------------------------



Re: Re: subkultur, diesmal mit umlauten (Yendi, 28. Sep 1999, 11:23:26):
~#! rn=Alboin rt=938505759 rg=kultur
~#! tid=938470603
"Schmidteinander" war vor Deiner Zeit, ja?

*g*

YTY



-----------------------------------------------------------------------------



Re^3: subkultur, diesmal mit umlauten (Alboin, 28. Sep 1999, 11:30:59):
~#! rn=Yendi rt=938517806 rg=kultur
~#! tid=938470603
pah, ich bin auch ohne Glotze gluecklich!

Alboin

-----------------------------------------------------------------------------



Nachruf auf MZB (Bendeigid, 28. Sep 1999, 15:11:57):
Hallo liebe Fantasyfreunde, es gibt eine Traurige Nachricht:

Marion Zimmer-Bradley, die Grande Dame der Fantasy, ist tot.

Sie erlitt am Dienstag, 22.9. einen Herzinfarkt und starb an dessen Folgen am
darauffolgenden Samstag.
Marion Zimmer-Bradley begann ihre Karriere mit Geschichten ueber den Planeten
der blutroten Sonne, Darkover, zu dem sie in den folgenden jJahren etliche
Romane in nicht zwingend chronologischer Reihenfolge schrieb. Die grosse
Fangemeinde nutzte diesen Hintergrund, um selber Geschichten und Episoden zu
schreiben, die MZB in etlichen Sammlungen herausgab.
Sie war besonders interessiert an der charakterlichen und emotioalen
Entwicklung ihrer Charaktere, weniger an viel "Action". 
Ihr bekanntestes Werk ist sicherlich "Die Nebel von Avalon", eine
herausragende Nacherzaehlung der Artussage. Ebenso ihre Schilderung des
Troianischen Krieges in "Die Feuer von Troja" duerften vielen bekannt sein.
MZB schrieb jedoch auch Science-Fiction Romane ("Reise ohne Ende", "Die Jaeger
des Roten Mondes" etc.), die allerdings ebenso weniger auf technische Bereich
als vielmehr auf emotionale Entwicklungen zielen.

Im Randbereich zwischen Science-Fiction und Fantasy siedelt der
"Darkover-Zyklus", der sich besonders in Amerika, aber auch in Europa einer
grossen Fangemeinde erfreut. 
Sie war aufgrund einiger provozierender Handlungen in ihren Buechern
("Trapez", "Der Verbotene Turm") ein wenig bei sogenannten strengen
Moralaposteln verrufen und galt auch lange als "Vorzeigeemanze". In diese
Rolle wollte sie sich jedoch niemals draengen lassen, sonder stand zu einer
Gleichberechtigung der Geschlechter. Dies kommt in ihren Werken auch deutlich
zm Ausdruck.



Bendeigid

-----------------------------------------------------------------------------



Re: Nachruf auf MZB (Tarina, 28. Sep 1999, 16:21:35):
~#! rn=Bendeigid rt=938531517 rg=kultur
~#! tid=938531517

Mein erstes Buch (der verbote Turm) von MZB hab ich 1981 gekauft. Und danach
konnte ich nicht mehr aufhoeren, ihre Buecher zu kaufen. Als sie 'die Nebel
von Avalon' herausbrachte, nannte ich schon mehr als 10 Buecher von ihr mein
eigen.

Auch hier im Mud hat sich ihre Spuren hinterlassen. Wer haette sich nicht
schonmal ueber die Banshee geaergert (oder ist sogar an ihr gestorben).
Auch Ya-Maenner, Katzenwesen und Kyrris stammen aus der Welt der MZB.
Und ohne die Matrixen der Leronis waere das Morgengrauen zumindest meiner
Meinung nach ein gutes Stueck aermer.

Schade, dass sie nun keine weiteren Buecher mehr schreiben kann.

Tarina

-----------------------------------------------------------------------------



ebm, industrial, techno ... (Cymonk, 28. Sep 1999, 20:16:39):
hiho,

wen es interessiert und wem ab und an oben genannte musik stile
aus den speakern um die ohren droehnen:

http://www.mp3.com/cymoteccyclone

cy

p.s. der naechste song wartet nur noch auf die instant play codierung 
     kann sich also nur noch um wenige stunden handeln :)

-----------------------------------------------------------------------------



Re: Nachruf auf MZB (Lug, 28. Sep 1999, 23:31:52):
~#! rn=Bendeigid rt=938531517 rg=kultur
~#! tid=938531517

Endlich eine gute Nachricht. Kein weiterer Schund mehr a la Darkover und den
Mist von Avalon kann sie auch nciht mehr ausbauen. Hatte schon Sorge sie
koennte noch mehr Sagenstoff verhunzen.

Eine Riesin wird keine Traene fuer die Schachtel weinen. Mag Hel behalten, was
Hel hat.

Erfreut
Lug

-----------------------------------------------------------------------------



Re: Re: Nachruf auf MZB (Rumata, 29. Sep 1999, 10:18:25):
~#! rn=Lug rt=938561512 rg=kultur
~#! tid=938531517
Momentmal, die letzten Darkovers waren eh' nicht von ihr...
Rumata

-----------------------------------------------------------------------------



Re^3: Nachruf auf MZB (Bendeigid, 29. Sep 1999, 10:21:37):
~#! rn=Rumata rt=938600305 rg=kultur
~#! tid=938531517
doch, waren sie.... es sei denn, du meinst die Anthologien, die sie nur
herausgegeben hat..
An den feuern von Hastur war von ihr, und Asharras Rueckkehr auch. 

Bendeigid

-----------------------------------------------------------------------------



Re: Re: Nachruf auf MZB (Yendi, 29. Sep 1999, 12:03:08):
~#! rn=Tarina rt=938535695 rg=kultur
~#! tid=938531517
Nichts fuer ungut, aber Banshees gab es schon ein ganzes Weilchen _vor_ MZB...

YTY


-----------------------------------------------------------------------------



Re^3: Nachruf auf MZB (Tarina, 29. Sep 1999, 16:43:00):
~#! rn=Yendi rt=938606588 rg=kultur
~#! tid=938531517
mag sein, dass es banshees auch vorher gab. Aber die waeren sicherlich nicht
Modell fuer die Banshee auf dem Pass vor Neskaya.


-----------------------------------------------------------------------------



Re^4: Nachruf auf MZB (Wurzel, 29. Sep 1999, 16:45:24):
~#! rn=Tarina rt=938623380 rg=kultur
~#! tid=938531517
stimmt, der name ist natuerlich nicht geschuetzt.
laut gary gygax ist eine banshee eine boesartige untote elfin, deren gesang
allein schon reicht, um einen normalmenschen zu toeten...
mzb hat wohl nur den namen geklaut, den rest dazu erfunden.

wurzel

-----------------------------------------------------------------------------



Re^4: Nachruf auf MZB (Tarina, 29. Sep 1999, 16:47:04):
~#! rn=Tarina rt=938623380 rg=kultur
~#! tid=938531517
mir war auch so, als wenn die 'urspruenglichen' banshees etwas anderes waren,
als die von mzb... aber dummerweise hatte ich nix vernuenftiges zum
nachschlagen da.

tarina

-----------------------------------------------------------------------------



Re^5: Nachruf auf MZB (Nevok, 29. Sep 1999, 17:07:36):
~#! rn=Tarina rt=938623624 rg=kultur
~#! tid=938531517
fragt mal Lug nach Banshee
Banshees gehoeren meines Wissens zur irischen/keltischen mythologie.....ich
meine auch bei macbeth was von einer banshee gelesen zu haben, wer den ruf der
banshee hoert wird bald sterben oder so......

Nevok

-----------------------------------------------------------------------------



Re^6: Nachruf auf MZB (Anatol, 29. Sep 1999, 17:20:55):
~#! rn=Nevok rt=938624856 rg=kultur
~#! tid=938531517
Rein theoretisch treiben sich - nach Lug - im Kloster von Sula hier
Banshees rum... weibliche Sidhe... :o) Allerdings tun die weder singen
noch sind sie furchtbar toedlich.

Anatol - hat MZB gern gelesen


-----------------------------------------------------------------------------



Re^6: Nachruf auf MZB (Wurzel, 29. Sep 1999, 17:23:29):
~#! rn=Nevok rt=938624856 rg=kultur
~#! tid=938531517
es gibt natuerlich noch andere (be-)deutungen. fuer die trekkies unter uns:
www.ussbanshee.org :) dann gibt es fuer mopedfahrer noch die yamaha banshee,
fuer militaristen das mcdonnell f2h banshee kampfflugzeug, fuer computeristen
die banshee grafikkarte usw... aber was man immer wieder findet, ist der
beruehmte "howl of the banshee", der das blut gefrieren laesst.

wurzel

-----------------------------------------------------------------------------



Re^7: Nachruf auf MZB (Nevok, 29. Sep 1999, 17:42:50):
~#! rn=Wurzel rt=938625809 rg=kultur
~#! tid=938531517
Also, um mal saemtliche Klarheiten zu beseitigen...MZB hat die Banshee NICHT
erfunden, Gary Gygax auch nich. Hier mal die etwas ausfuehrlichere Erklaerung
The bean-sidhe (woman of the fairy) may be an ancestral spirit appointed to
forewarn members of certain ancient Irish families of their time of death.
According to tradition, the banshee can only cry for five major Irish
families: the O'Neills, the O'Briens, the O'Connors, the O'Gradys and the
Kavanaghs. Intermarriage has since extended this select list. ;
Whatever her origins, the banshee chiefly appears in one of three guises: a
young woman, a stately matron or a raddled old hag. These represent the triple
aspects of the Celtic goddess of war and death, namely Badhbh, Macha and
Mor-Rioghain. She usually wears either a grey, hooded cloak or the winding
sheet or grave robe of the unshriven dead. She may also appear as a
washer-woman, and is seen apparently washing the blood stained clothes of
those who are about to die. In this guise she is known as the bean-nighe
(washing woman). 
Although not always seen, her mourning call is heard, usually at night when
someone is about to die. In 1437, King James I of Scotland was approached by
an Irish seeress or banshee who foretold his murder at the instigation of the
Earl of Atholl. This is an example of the banshee in human form. There are
records of several human banshees or prophetesses attending the great houses
of Ireland and the courts of local Irish kings. In some parts of Leinster, she
is referred to as the bean chaointe (keening woman) whose wail can be so
piercing that it shatters glass. In Kerry, the keen is experienced as a "low,
pleasant singing"
in Tyrone as "the sound of two boards being struck together"
and on Rathlin Island as "a thin, screeching sound somewhere between the wail
of a woman and the moan of an owl". 
The banshee may also appear in a variety of other forms, such as that of a
hooded crow, stoat, hare and weasel - animals associated in Ireland with
witchcraft.

Alles klar?

Nevok

-----------------------------------------------------------------------------



Re^4: Nachruf auf MZB (Highlander, 30. Sep 1999, 06:53:06):
~#! rn=Bendeigid rt=938600497 rg=kultur
~#! tid=938531517
Ups. Weisst Du zufaellig die englischen Namen von denen? Koennten das
Exile's Song und The Shadow Matrix sein?
  HrT, mag "frei uebersetzten" (lies neu erfundenen) Buchtitel

-----------------------------------------------------------------------------



Re^8: Nachruf auf MZB (Bendeigid, 30. Sep 1999, 06:55:08):
~#! rn=Nevok rt=938626970 rg=kultur
~#! tid=938531517
Super, Nevok!
Da wir jetzt ueber den "richtigen" Ursprung der Banshee oder von mir aus auch
des Begriffs Bean-Sidhe aufgeklaert sind, folgt hier der Folstaendigkeit
halber die Erklaerung fuer die Banshee von MZB, deren Vertreterin hier im MG
ihr (erfolgreiches :)) Unwesen treibt.
Im Darkoverzyklus, den Lug bereits so zerrissen hat, landet ein Raumschiff mit
irdischen Auswanderern auf Darkover. Genaugenommen ists eine Bruchlandung, und
so ziemlich alle technischen Errungenschaften gehen dabei zum Teufel.
Reparatur ist praktisch undmoeglich, da Darkover kaum Metalle besitzt. 
Unter den an Bord befindlichen Auswanderen  befanden sich u.a. solche irischen
Ursprungs, zum Teil wohl mit Ahnungen ihrer Sagenhostorie.
Auf einigen hohen Gebirgspaessen Darkovers leben grosse, blinde, flugunfaehige
vogelaehnliche Wesen, die mit Hilfe ihres Waermesinns und eines
ohrenbetaeubenden Schreis jagen. Ihr Schrei ist so grausam anzuhoeren, dass
"einem das Blut in den Adern gefriert". 
Nun, da sowas u.a. den Bean-Sidhes der keltischen/irischen Mythologie
nachgesagt wurde, lag die Entscheidung nahe, diesen namenlosen Viechern den
Namen Banshee zu geben.
Tja, und eine davon hat es mit verwandetn Eigenschaften halt auch in
MorgenGrauen verschlagen, und da hockt sie nun auf dem Kilghardpass und jagt
dumme Zauberer und hilflose Abenteurer. :)

Z'par Servu,
       Bendeigid

-----------------------------------------------------------------------------



Mantikore (Yendi, 30. Sep 1999, 12:22:05):
Um mal von MZB und Klageweibern wegzukommen:

Hat irgendjemand Informationen, Literatur, Hinweise jedweder Art zu
Mantikoren/Manticoras/... oder der Ethymologie dieses Namens?

Dankend,
         Yendi


-----------------------------------------------------------------------------



Re: Mantikore (Apsu, 30. Sep 1999, 13:22:12):
~#! rn=Yendi rt=938694125 rg=kultur
~#! tid=938694125
http://www.pantheon.org ?

-----------------------------------------------------------------------------



Kann sein das dieser Buchtip schon mal kam... (Nevok,  2. Okt 1999, 20:42:01):
Fuer Leute die den Film 'The Matrix' moegen ein Buch das zu diesem Film
gehoert....

Simulacra and Simulation (The Body, in Theory : Histories of Cultural
Materialism) 
von
Jean Baudrillard, ist ins Englische von Sheila Faria Glaser uebersetzt worden
der ganze Spass kostet als Paperback hier 15.95$ 

es ist ein philosophisches Buch das von der Unterscheidung zwischen Realitaet
und.....naja am besten eben 'Simulation and Simulacra' handelt.
Ich hab bei einem Freund gelangweilt reingeschaut und war dann ne Stunde
gefesselt und hab gleich darauf meine Bestellung bei Amazon aufgegeben, das
Buch sollte Dienstag spaetestens da sein. Ich hoffe mal, dass der Rest nicht
furchtbarer Schwachsinn ist und ich nen geldverschwendenden Tip abgegeben
habe. Falls jemand aehnliche Buecher empfehlen kann, mail an mich ;)

Nevok, der sein Regal mal wieder mit nicht-Uni-Buechern aufstocken muss.

-----------------------------------------------------------------------------



Re^7: Nachruf auf MZB (Helva,  3. Okt 1999, 19:21:52):
~#! rn=Wurzel rt=938625809 rg=kultur
~#! tid=938531517
Fuer die etwas aelteren unter uns gab's da mal 
"Siouxie&the Banshees".
Mit wavigen Gruessen heute mal-helva-

-----------------------------------------------------------------------------



Re^8: Nachruf auf MZB (Wurzel,  4. Okt 1999, 19:00:03):
~#! rn=Helva rt=938978512 rg=kultur
~#! tid=938531517
fuer die aelteren? hm, dafuer ist das noch viel zu neu :)

wurzel aus der gruft

-----------------------------------------------------------------------------



Re^6: Nachruf auf MZB (Lug,  5. Okt 1999, 23:49:53):
~#! rn=Nevok rt=938624856 rg=kultur
~#! tid=938531517

Nagut,

zum 100sten Mal zum Thema Banshee:

Woertlich heisst das Ban-sidhe = Frau-Sidhe(Elf). In der modernen irischen
Folklore sind sie dann zu so einer Art Todes Faery mutiert. Die kuendigen mit
ihrem Heulen den Tod eines Verwandten an.

Die Schreibung Banshee ist eine Anglisierung, weil Englaender zu bloede sind
um Irisch zu schreiben.

Alles klar?
Lug

*GENERVT*

-----------------------------------------------------------------------------



Re^8: Nachruf auf MZB (Lug,  5. Okt 1999, 23:54:22):
~#! rn=Nevok rt=938626970 rg=kultur
~#! tid=938531517

the triple aspects of the Celtic Goddess of War and Death?

Bodb, Macha, Morrigain (altirische Schreibung)?

Wer saugt sich so einen Quatsch aus denm Fingern? Aus drei Figuren mach eine,
sehr plausibel, dachte nur Xsten machen sowas.


Unfug schreiend
Lug

-----------------------------------------------------------------------------



Ausstellungen (Lug,  6. Okt 1999, 00:16:21):

Tachgen,

ich moechte noch einmal auf 2 Ausstellungen hinweisen:

1) Die Karolinger Ausstellung in Paderborn.

Sehr empfehlenswert. Gut gemacht,  mischt historisches mit archaeologischem
und versammelt einige nette Prunkstuecke, z.B. Ormside Bowl, Runenkaestchen,
Kaestchen von Essen-Werden, diverse wichtige Handschriften, Fuerstengrab von
Beckum etc. Um das Zeug zu sehen muss man sonst weit fahren.

2) Ueber allen Fronten in Oldenburg

Kleinere Ausstellung aber sehr gut gemacht (nein, ich wars nicht).
Beschaeftigt sich mit den Fernkontakten des Nordwestens mit dem Sueden von den
Roemern bis zu Karl dem Grossen (sogenannt). Versammelt ebenfalls interessante
Stueck, wie die silberne Parademaske aus Kalkriese (dem Ort der
Varusschlacht), diversen Graeberfeldern, den Weser Runenknochen mit dem Schiff
etc.


Wer naehere Infos braucht gehe ins Netz oder maile mir...

Unglaeubigst
Lug

-----------------------------------------------------------------------------



Re: Ausstellungen (Daria,  6. Okt 1999, 14:47:07):
~#! rn=Lug rt=939168981 rg=kultur
~#! tid=939168981
Du hast die wichtigsten Ausstellungsstuecke vergessen: Das Lorscher Evangeliar
und der Proserpina Sarkopharg.

Daria hat Fuehrungen durch die Ausstellung gemacht.
(Mein Lieblingsstueck is die Gregortafel Lug)

-----------------------------------------------------------------------------



Re: Ausstellungen (Cirdan,  6. Okt 1999, 21:29:22):
~#! rn=Lug rt=939168981 rg=kultur
~#! tid=939168981
Tagix,

was heisst hier Karl der Grosse (sogenannt)?
Der war wirklich gross, ueber 1,80. Das war in der damaligen Zeit ne ganz
schoene Schnitte (auch wenn er fuer mich ein dummes Arschloch war).
Und Kalkriese steht zwar unter dem dringenden Verdacht, Ort der Varusklopperei
zu sein, aber 100pro ist bisher noch *kein* Ort als Gebiet der Varusschlacht
ausgemacht worden. Punkt.

Cirdan, steht sowieso mehr auf Venus von Willendorf

-----------------------------------------------------------------------------



Re: Re: Ausstellungen (Ronda,  8. Okt 1999, 14:28:11):
~#! rn=Daria rt=939221227 rg=kultur
~#! tid=939168981
*grins*
Dann koennen wir uns ja notfalls als Touristen-Fuehrer bewaehren, Daria...
Wen's also nach Paderborn treibt - auch da gibts Mudder ;)

Ronda *hat grad zwei Touries fuer die Ausstellung da...*

-----------------------------------------------------------------------------



Re: Re: Ausstellungen (Lug, 13. Okt 1999, 01:57:39):
~#! rn=Daria rt=939221227 rg=kultur
~#! tid=939168981

Bah Humbug!

Das kann man anders sehen
Lug

-----------------------------------------------------------------------------



Re: Re: Ausstellungen (Lug, 13. Okt 1999, 01:58:35):
~#! rn=Cirdan rt=939245362 rg=kultur
~#! tid=939168981

FALSCH

Es ist Kalkriese. Da gibt es inzwischen NULL Zweifel.

Mommsen hatte eben Recht.
Lug

-----------------------------------------------------------------------------



Barbar, Germane, Arier (Lug, 15. Okt 1999, 01:06:35):

ist der Titel der gleichnamigen Aufsatzsammlung die der Germanist Klaus von
See verfasst hat. Der Untertitel "Die Suche nach der Identitaet der Deutschen"
weist dann die weitere Richtung. Jeder der sich mal mit Nationalkitsch oder
Pseudoesoterikgermanenspinnern rumaergern musste, wird sich wohl angenehm bei
der Lektuere unterhalten, denn von See ist der Aufraeumer...

Um Medelssohn-Bartholdy zu zitieren:
Zehntausend Teufel sollen doch alles Volksthum holen...

In diesem Sinne
Lug

-----------------------------------------------------------------------------



Paderborn (Magnus, 15. Okt 1999, 18:01:52):
Die Austellung ist ja gut bestueckt, aber voellig amateurhaft organisiert. Man
denken nur an den Austellungsort des Evangeliars. Keine Hinweisschilder in der
Stadt, sich widersprechende Landkarten, allein auf Effekthascherei
ausgerichtete Praesentation.

Alle in allem: Ein grosser Schlag .... knapp daneben

Magnus.

-----------------------------------------------------------------------------



Phule wieder da? (Zarniya, 25. Okt 1999, 12:04:09):

Hi, 

ich hab gehoert, dass es endlich einen dritten Teil von Phules Companie geben
soll... aber die Amazon-Kritiken sind grottenschlecht.... hat schon einer von
euch das Buch?

Nebenbei... Robert ist sicher ein alter Hase im Autorengeschaeft, aber ich
denke, das ist was sehr alt:

itel: Phules Company 3
                       Autor: Asprin, Robert; 
                       Erscheinungsjahr: 1900
                       ISBN: 0-09-920171-2

                       Preis: DM 27.32, OES 192.23, SFR 22.51,

Marc

-----------------------------------------------------------------------------



Chorkonzert (Alcina, 25. Okt 1999, 12:58:43):
Hallo Freunde und Freundinnen des gepflegten Chorgesangs,

am Samstag, dem 13.11.99 gibt der TASK (Thueringischer Akademischer Singkreis)
in Dresden in der Frauenkirche ein Konzert. Das genaue Programm kenne ich
leider noch nicht, aber vermutlich werden Werke von J.S. Bach, Ligeti, Nystet,
G. Gabrieli, J. Rheinberger und Paleastrina gesungen. Ausserdem wird noch
Johannes Unger (Leipzig) an der Orgel zu hoeren sein (das ist der Mensch, der
national und international die Orgelpreise abraeumt). Alles in allem ein zu
empfehlender Kulturtip. Und ich sing da auch im Chor - ich hoffe, das schreckt
Euch jetzt nicht ab! :)

Notiert Euch schonmal den 13.11.99 in Eurem Kalender!

Gruss Alcina


-----------------------------------------------------------------------------



In Extremo (Kartoffel, 26. Okt 1999, 22:40:38):
Hoi,

In Extremo Fans schon mal den Videorekorder programmieren:
Montag 1.11. 20.00 Uhr auf Viva2 (2Rock)
Das letzte Einhorn im Interview und das neue Video gibts zu sehen.

'Toffel singt: Eiris sazun idisi...

-----------------------------------------------------------------------------



Re: In Extremo (Lug, 27. Okt 1999, 01:16:29):
~#! rn=Kartoffel rt=940970438 rg=kultur
~#! tid=940970438
 Sabei faellt mir ein, Subway to Sally nehmen derzeit eine Livescheiblette
auf. Wer zum Konzert geht, kann sich in eine Namensliste eintragen. Noe, ich
habs nicht getan in Leer...

Sazun hera duoder
Lug

-----------------------------------------------------------------------------



Re: Chorkonzert (Ender, 27. Okt 1999, 15:41:28):
~#! rn=Alcina rt=940849123 rg=kultur
~#! tid=940849123
Wie wird der Studentenpreis sein?
Ich weiss, dass Frauenkirche, immer noch nen Aufschlag hat, so dass ein
Student sich dass normalerweise nicht leisten kann.
Was heisst nicht leisten kann, aber es schon immer etwas teuer dort.

-----------------------------------------------------------------------------



Re: Re: Chorkonzert (Alcina, 27. Okt 1999, 19:06:45):
~#! rn=Ender rt=941031688 rg=kultur
~#! tid=940849123

das kann ich nicht genau sagen, da die Vereinbarungen immer anders sind. Es
kann sein, dass der Eintritt frei ist und eine Kollekte gesammelt wird, es
kann aber auch sein, dass es KOnzertkarten gibt. Ich erkundeige mich nochmal.

Gruss Alcina


-----------------------------------------------------------------------------



Re: Re: In Extremo (Sublime, 31. Okt 1999, 00:23:15):
~#! rn=Lug rt=940979789 rg=kultur
~#! tid=940970438
Vielleicht auch noch wichtig, dass Subway to Sally jetzt bei
einem anderen Label unter Vertrag sind. Ich weiss aber leider
grade nicht, wie das Teil heisst ;))) Ich blaetter morgen mal
in der Visions rum, fuer alle die ihre Platten gerne bei den
Firmen direkt ordern ;)

Subl

-----------------------------------------------------------------------------



Re^3: Chorkonzert (Lug,  3. Nov 1999, 01:35:24):
~#! rn=Alcina rt=941044005 rg=kultur
~#! tid=940849123

Kollekte? Der Eintritt liegt bei 1-3 Unterlegscheiben...


Klerikal
Lug

-----------------------------------------------------------------------------



literatur (Alboin, 23. Nov 1999, 11:00:48):
Weils hier ziemlich oede aussieht, moechte ich Euch mal wieder etwas
empfehlen. Die Anglistiker werden ihn sicher kennen als Vertreter der
englischen Romantik. Die Rede ist von Samuel Taylor Coleridge. 
Neulich hatte ich das Glueck in einem Antiquariat eine alte Ausgabe
(eng./deutch) seine des Gedichtes  'The Rime of ancient mariner' zu erstehen.
Es ist etwas zu lang um hier zu veroeffentlichen. Es geht um einen Seemann der
aus Langeweile den einzigen Begleiter des Schiffes, einen Albatros schiesst.
Die Reise, die zuvor unter gutem Vorzeichen stand, wird nun zum Alptraum. Der
Dichter beschreibt das mit so plastischen Worten, das man die Handlung
gespenstisch vor seinen Augen erlebt. Man kann kaum Glauben, das Coleridge vor
dem Erscheinen des Gedichtes nie einen Schiffsreise unternommen hat. 
Auch die anderen Gedichte von ihm sollen sehr schoen sein. Wie die Helden in
seinen Werken, so hatte Coleridge ebenfalls ein tragisches Leben: 2
Gescheiterte Beziehungen, Krankheit und Opiumsucht, die ihm nach anfaenglichem
Zuwachs den Verlust seiner Phantasie brachte. 

Alboin, der alle Leseratten gruesst

-----------------------------------------------------------------------------



Re: literatur (Yendi, 23. Nov 1999, 11:53:19):
~#! rn=Alboin rt=943351248 rg=kultur
~#! tid=943351248
Wer jetzt nicht durch die Antiquariate tingeln will, um den "Ancient Mariner"
preiswert aufzutreiber, der kann ja mal in Douglas Adams "Dirk Gently's
Holistic Detective Agency" reinschauen, das ist naemlich eine kleine Hommage
an dieses Werk und zitiert Auszuege.

Yendi murmelt
"In Xanadu did Khublai Khan
 A stately pleasure dome decree,
 Where Ankh, the sacred river ran
 Through caverns, measureless to man,
 Down to a sunless sea."


-----------------------------------------------------------------------------



Re: literatur (Wurzel, 23. Nov 1999, 22:10:09):
~#! rn=Alboin rt=943351248 rg=kultur
~#! tid=943351248
gescheiterte beziehungen, krankheit und sucht ergeben fuer dich schon ein
"tragisches leben"? dann frag mal rum, wieviele tragische gestalten das mud
bevoelkern :) schaetze mal ueber die haelfte...

wurzel

-----------------------------------------------------------------------------



Re: literatur (Kadabra, 23. Nov 1999, 22:41:31):
~#! rn=Alboin rt=943351248 rg=kultur
~#! tid=943351248
Weh mir Frevler, dass ich schoss
den Unglcksvogel Albatros ...

Donald Duck in der Uebersetzung von Frau Dr. Fuchs

kadabra (grinsend)

-----------------------------------------------------------------------------



Re: Re: literatur (Kadabra, 23. Nov 1999, 22:48:53):
~#! rn=Yendi rt=943354399 rg=kultur
~#! tid=943351248
richtig, aber das ist nicht der ancient mariner, sondern eben Kubla Khan ;)
kadabra (klugscheissend ;)))

-----------------------------------------------------------------------------



Re: literatur (Lug, 24. Nov 1999, 01:07:31):
~#! rn=Alboin rt=943351248 rg=kultur
~#! tid=943351248

Zu erwaehnen waere auch noch die ca. 20 min Vertonung von Iron Maiden auf der
Powerslave LP. Fasst den Text n ett zusammen, wie Coleridges Randnotizen...


Laermend
Lug

-----------------------------------------------------------------------------



ausstellung (Alboin, 24. Nov 1999, 18:00:46):
Obwohl Chemnitz nicht gerade kulturell viel zu bieten hat, gibt es hin und
wieder kuenstlerische Leckerbissen. Bis zum 20.02. 2000  laeuft hier noch die
Edvard Munch Ausstellung in den Staedtischen Kunstsammlungen von Chemnitz
(Adr. Theaterplatz 1, vom Bahnhof leicht zu finden). Der Eintritt kostet, so
viel ich weiss, schlappe 4DM. Leider kam ich selbst noch gar nicht zum Besuch,
aber es wurde mir gesagt, dass auch Werke dabei sind, die sonst nirgends oder
nur sehr selten der Oeffentlichkeit zugaenglich gemacht werden. Wer daran
interessiert ist und evtl. einen Schlafplatz sucht kann sich bei mir melden.

Alboin

-----------------------------------------------------------------------------



The Unam Choir (Anatol, 24. Nov 1999, 22:54:18):

                    The University of Namibia
                            presents
                         The Unam Choir

Wer wissen moechte, welche Sprachen in Namibia gesprochen werden oder
sich dafuer interessiert, ob und wie ein namibianer Universitaetschor
so klingen koennte, wenn er einen kleinen musikalischen Ausflug durch 
die Folklore Namibias und Afrikas macht - oder ganz einfach wiedermal
NICHT ins Kino moechte, kann dies tun, wenn auch nur in:

             KOELN                     Freitag, 26.11.
             BRAUNSCHWEIG              Sonntag, 28.11.
             BREMEN                    Mittwoch, 1.12.

Musikalisch bietet der Chor ein recht grosses musikalisches Spektrum:
Vom Zulu-Regengesang bis zum Englisch/Deutschen Choral (auch DAS wird
in Namibia gesprochen - kolonialisiert und so...) ist alles dabei. Da
selbst das sonst recht traege Osnabruecker Auditorium ziemlich Regung
zeigte, MUESSEN sie gut sein.

Der,  dem die musikalischen Genuesse dann doch nicht  gefallen haben, 
weiss dann zumindest, dass auch die  Toechter Namibias verdammt suess
aussehen koennen. >:^)

Hingehen lohnt sich,
Amatol


-----------------------------------------------------------------------------



Re: The Unam Choir (Ronda, 25. Nov 1999, 08:32:46):
~#! rn=Anatol rt=943480458 rg=kultur
~#! tid=943480458
... ja, ja, Anatol, und bei den suessen Namibischen Toechtern haste gleich an
Amor gedacht und mit "Amotol" unterschrieben, gell?

-> schmarrn!

Ronda

-----------------------------------------------------------------------------



Mathematik zum anfassen (Salandrion, 25. Nov 1999, 19:40:32):
Fuer alle die Zeit finden bis Sonntag Abend zur Uni-Gh Paderborn zu kommen,
findet im Audimax die Ausstellung von Prof. Beutelsbacher von der Uni Giessen
in Paderborn statt.

Die Ausstellung soll jedermensch mathematische Inhalte ohne abschreckende
Formalismen verstaendlich machen. Die Ausstellung soll uebrigens spaeter
einmal ein MAthematikmuseum in Giessen werden.

Wer mehr zur Ausstellung wissen moechte, findet Infos dazu unter
http://www.die-fachschaft.de. Bzw. Infos zum Museum findet Ihr unter
www.math.de .

Gruesse Salandrion Funkenreiter

-----------------------------------------------------------------------------



klassik (Wurzel, 25. Nov 1999, 20:59:39):
nicht jeder mag klassische musik. aber der trick ist wie mit fadem essen:
manchmal wird es erst durch gewuerze geniessbar. habe heute zufaellig eine
variante entdeckt, die mir auch gefaellt. das san francisco symphony
orchestra spielt klassiker von metallica, zusammen mit der band :)
recht neue live-scheibe, die gut abgeht. 2 cds, die man sich gut anhoeren
kann. tip: reinhorchen :)

wurzel

-----------------------------------------------------------------------------



Re: klassik (Boing, 26. Nov 1999, 08:34:31):
~#! rn=Wurzel rt=943559979 rg=kultur
~#! tid=943559979
In diesem Zusammenhang gibt es auch das Konzert fuer Symphonieorchester
unt Rockgruppe, irgendwann in den 70er jahren mit Deep Purple und dem
Londoner Symphonieorchester (dieses koenigliche teil, weiss den genauen
namen nicht mehr) in der Albert Hall eingespielt. Ist auch sehr nett. :)
Das 'unt' oben ist natuerlich ein 'und', scheiss Untersuche-Wahn ...
  Boing

-----------------------------------------------------------------------------



Re: ausstellung (Alboin, 26. Nov 1999, 10:35:51):
~#! rn=Alboin rt=943462846 rg=kultur
~#! tid=943462846
noch was wichtiges zur Ausstellung:
sie ist ausser montags von 11-21 Uhr geoeffnet.

Alboin

-----------------------------------------------------------------------------



Re: Re: klassik (Lug, 28. Nov 1999, 02:44:56):
~#! rn=Boing rt=943601671 rg=kultur
~#! tid=943559979

Vergiss Deep Purple. Nimm einfach eine der drei letzten Therion Scheiben.#


Knapp
Lug

-----------------------------------------------------------------------------



Nordische Mythologie (Lug,  3. Dez 1999, 01:12:11):

Nachdem ich durch Berge von Nazischeisse gewatet bin, fand sich sogar was
sinnvolles, jedenfalls sieht es manierlich und serioes aus, auf den ersten
Blick:

http://www.pitt.edu/~dash/mythlinks.html

Das geht nicht unter www. sondern hier hin, weils KUltur ist, Grimmi...

Lug

-----------------------------------------------------------------------------



Re: Nordische Mythologie (Sublime,  3. Dez 1999, 18:51:09):
~#! rn=Lug rt=944179931 rg=kultur
~#! tid=944179931
Hmm, das heisst wohl, das die meisten Infos ueber
Nordische Mythologie nur Nazischeisse sind ? Waer
irgendwie erschreckend, aber vielleicht gibt ja
norwegen.de oder norway.com was her (ist ja ne
Moeglichkeit) ;=)

Kampf dem Faschismus
Subl

-----------------------------------------------------------------------------



Re: Re: Nordische Mythologie (Grimmborn,  3. Dez 1999, 18:56:48):
~#! rn=Sublime rt=944243469 rg=kultur
~#! tid=944179931
Mir ist nicht ganz klar, wieso sich die Mythologie mehr auf Norwegen
konzentrieren soll als beispielsweise auf Schweden, Daenemark oder (Kandidat
#1, eigentlich) Island. Von Grossbritannien und diversen Inseln dazwischen
ganz zu schweigen.

Kampf den Radfahrern
Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Re: Nordische Mythologie (Lug,  9. Dez 1999, 00:36:58):
~#! rn=Sublime rt=944243469 rg=kultur
~#! tid=944179931
 Haengt von der Site ab.

Dampf dem Dumpfismus
Lug

-----------------------------------------------------------------------------



Re: Re: literatur (Rantanplan, 10. Dez 1999, 05:01:11):
~#! rn=Yendi rt=943354399 rg=kultur
~#! tid=943351248
Falsch Yendi, 
Es heist:
In Xanadu did Kublai Khan
pleasuer dome eeeeeeerrrrrrrrrrrrrrrrrrect
moving at one million miles an hour usw...

FGTH

-----------------------------------------------------------------------------



OT: industrial dance (Bendeigid, 23. Dez 1999, 08:34:33):
~#! on=Cymonk ot=945905068 og=allgemeines
hiho,

just off-topic:

es gibt einen neuen song von cymotec cyclone zum downloaden!

wer also auf industrial dance steht, sollte 'mal reinhoeren,
vielleicht gefaellt's!

der neue track 'flucht' ist vom style her 'trance meets ebm'.

wer also zum beispiel auf bands wie 'funker vogt' steht,
der wird nicht enttaeuscht...

gruss,
      cy

http://mp3.com/cymoteccyclone

p.s. die wiederholung von 'wer also' ist bitte als rethorisches mittel
     zu klassifizieren! :))

-----------------------------------------------------------------------------



Wieso sitzten eigentlich auf so vielen Weihnachtsbaeumen kleine Rauschegoldengel? (Nevok, 23. Dez 1999, 16:23:09):

Es begab sich im Jahre des Herrn 1831, am 23. Tag des Monats Dezember. Der
Weihnachtsmann hatte einen fuerchterlich schlechten Tag. Die Geschenke waren
noch nicht fertig, die Elfen und Kobolde, die  eigentlich helfen sollten,
hatten von einer neumodischen Einrichtung gehoert und probierten sie gerade
aus. Die Englaender hatten sie erfunden, "strike" hie sie und nach zuschlagen
war ihm auch gerade zumute. Von den neun Rentieren waren zwei krank, drei
schwanger und der Rest unauffindbar. Als er sich eine Tasse Tee zur
Entspannung genehmigen wollte, liess der Weihnachtsmann die Tasse fallen und
hatte jetzt einen erklaerungsbeduerftigen Fleck auf seinen Beinkleidern, der
noch dazu mittlerweile scheulich kalt war. Und genau in diesem Augenblick kam
ein kleiner Engel zu ihm, einer, der in diesem Jahr zum ersten Mal dabei war
und die Sache mit dem Streik irgendwie verpasst hatte. Hinter sich her zog
dieser Engel einen voellig verkrueppelten und windschiefen Weihnachtsbaum und
fragte mit quengeliger Stimme : "Du, Weihnachtsmann, sag mal, was soll ich
denn jetzt mit diesem Baum machen??" ....;

In diesem Sinne

Bah Humbug!

Nevok

-----------------------------------------------------------------------------



Liederabend mit Christoph Pregardien (Tenor) (Alcina,  9. Jan 2000, 23:07:51):

Hi Leuts,

morgen (Montag, 10.01.00) singt um 19.30 Uhr Christoph Pregardien, der dieses
Wocenende einen Meisterkurs fuer Gesang in Halle a.d. Saale gegeben hat, einen
Liederabend im Freylinghausensaal der Franckeschen Stiftungen in Halle - ein
Konzertbesuch, der sich auf jeden Fall lohnt!

Alcina - Pregardien-Fan


-----------------------------------------------------------------------------



Re: Liederabend mit Christoph Pregardien (Tenor) (Alcina,  9. Jan 2000, 23:13:17):
~#! rn=Alcina rt=947455671 rg=kultur
~#! tid=947455671

kleiner Nachtrag: 

weitere Informationen (Konzerte u.v.a.m.) gibts unter der Adresse:

http://www.pregardien.de

Gruss Alcina - mag nicht mehr aussschliesslich tiefe Baesse :)

-----------------------------------------------------------------------------



Re: Re: Liederabend mit Christoph Pregardien (Tenor) (Perishan, 11. Jan 2000, 14:58:27):
~#! rn=Alcina rt=947455997 rg=kultur
~#! tid=947455671
Nicht mehr nur Baesse?

Mist.

Perishan - tiefer Bass.

-----------------------------------------------------------------------------



Re: Re: Liederabend mit Christoph Pregardien (Tenor) (Lug, 12. Jan 2000, 03:17:19):
~#! rn=Alcina rt=947455997 rg=kultur
~#! tid=947455671

Hm?

Kauf Dir die letzte Emperor CD, das hilft gegen sowas.

LAERMEND
Lug

-----------------------------------------------------------------------------



Re^3: Liederabend mit Christoph Pregardien (Tenor) (Alcina, 12. Jan 2000, 11:19:25):
~#! rn=Lug rt=947643439 rg=kultur
~#! tid=947455671

Du Kulturbanane, Lug!


-----------------------------------------------------------------------------



Re^4: Liederabend mit Christoph Pregardien (Tenor) (Lug, 12. Jan 2000, 23:22:28):
~#! rn=Alcina rt=947672365 rg=kultur
~#! tid=947455671

Hm?

Teutsche kauft teutsche Bananen!

Tsstsend
Lug

-----------------------------------------------------------------------------



Re^5: Liederabend mit Christoph Pregardien (Tenor) (Grimmborn, 13. Jan 2000, 01:04:25):
~#! rn=Lug rt=947715748 rg=kultur
~#! tid=947455671
Jepp, aber erst wollen wir unsere Kolonieen wiederhaben. Und die
Wiedervereinigung in den Grenzen von 1245.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^6: Liederabend mit Christoph Pregardien (Tenor) (Lug, 13. Jan 2000, 02:11:23):
~#! rn=Grimmborn rt=947721865 rg=kultur
~#! tid=947455671
Hm?

Unfug, es lebe der Seperatismus!

Viva la Revolucion
Lug

-----------------------------------------------------------------------------



Re^7: Liederabend mit Christoph Pregardien (Tenor) (Bubba, 13. Jan 2000, 17:45:25):
~#! rn=Lug rt=947725883 rg=kultur
~#! tid=947455671
Es heisst Separatismus!
Es heisst "Viva la Junta"!
Es heisst Klugscheisser!


-----------------------------------------------------------------------------



Re^8: Liederabend mit Christoph Pregardien (Tenor) (Lug, 16. Jan 2000, 03:28:06):
~#! rn=Bubba rt=947781925 rg=kultur
~#! tid=947455671

Hihi,

es kommt die gebuehrende Antwort:

MIR DOCH EGAL!

AidKG!
Lug

-----------------------------------------------------------------------------



Re^6: Liederabend mit Christoph Pregardien (Tenor) (Yendi, 17. Jan 2000, 17:09:14):
~#! rn=Grimmborn rt=947721865 rg=kultur
~#! tid=947455671
"Fuer ein Doitschland in den Grenzen von 1248 -- Jerusalem bleibt unser!",
ja?

*grins*

Yendi


-----------------------------------------------------------------------------



Re^7: Liederabend mit Christoph Pregardien (Tenor) (Grimmborn, 17. Jan 2000, 19:14:47):
~#! rn=Yendi rt=948125354 rg=kultur
~#! tid=947455671
Sizilien. Was will ich mit Jerusalem? Viel zuviel Aerger.

GdA


-----------------------------------------------------------------------------



Re^8: Liederabend mit Christoph Pregardien (Tenor) (Anatol, 17. Jan 2000, 19:18:09):
~#! rn=Grimmborn rt=948132887 rg=kultur
~#! tid=947455671
Und mit der Mafia willst Du gluecklich werden? :) Pate Grimmborn... ;)

Anatol - Wuuuuuuuuah ;)


-----------------------------------------------------------------------------



Re^9: Liederabend mit Christoph Pregardien (Tenor) (Grimmborn, 17. Jan 2000, 19:20:57):
~#! rn=Anatol rt=948133089 rg=kultur
~#! tid=947455671
Hee, die Mafia krieg ich unter Kontrolle, mit der kann man reden, aber bei den
fanatischen Arabern und Israeli? Da ist doch alles zu spaet...

Grimmborn "will jemand noch den Kosovo?" der Atheist

-----------------------------------------------------------------------------



Re^10: Liederabend mit Christoph Pregardien (Tenor) (Anatol, 17. Jan 2000, 19:22:27):
~#! rn=Grimmborn rt=948133257 rg=kultur
~#! tid=947455671
Aber Versprecher und Versprechen kosten Dich unter Umstaenden 
so Dinge wie "kleiner Finger" oder so. Und wer tippt Dir dann q, a, y, 1 
und die linken Sondertasten, wenn Dir der fehlt? :)

Anatol ;)

-----------------------------------------------------------------------------



Re^11: Liederabend mit Christoph Pregardien (Tenor) (Grimmborn, 17. Jan 2000, 19:24:37):
~#! rn=Anatol rt=948133347 rg=kultur
~#! tid=947455671
Das kann ich immer noch mit dem rechten kleinen Finger machen.
Diese Moeglichkeit habe ich nicht, wenn ich mit einem Bus in die Luft geflogen
bin.

GdA

-----------------------------------------------------------------------------



Re^12: Liederabend mit Christoph Pregardien (Tenor) (Anatol, 17. Jan 2000, 19:26:15):
~#! rn=Grimmborn rt=948133477 rg=kultur
~#! tid=947455671
Unbestaetigten Geruechten zufolge sind zum Harfespielen dann wieder
alle zehn Fingerchen da. Aber wie gesagt, unbestaetigt. Und ausserdem,
Du als Grimmborn der Atheist... vergessen wir das ;)

Anatol


-----------------------------------------------------------------------------



Re^13: Liederabend mit Christoph Pregardien (Tenor) (Grimmborn, 17. Jan 2000, 19:30:15):
~#! rn=Anatol rt=948133575 rg=kultur
~#! tid=947455671
Ich kann nicht Harfe spielen. Und wenn mir beim Geigenspiel der linke kleine
Finger fehlt, hab ich vielleicht endlich mal genug Druck, die zweite Lage
sicher zu lernen.

Grimmborn "Paganini war ein Stuemper" der Atheist

-----------------------------------------------------------------------------



Re^14: Liederabend mit Christoph Pregardien (Tenor) (Ronda, 17. Jan 2000, 19:31:37):
~#! rn=Grimmborn rt=948133815 rg=kultur
~#! tid=947455671
Du meinst also, Paganini waere viel besser geworden, wenn er sich mit der
mafia angelegt haette?
Coole These, findet

Ronda

-----------------------------------------------------------------------------



Re^14: Liederabend mit Christoph Pregardien (Tenor) (Anatol, 17. Jan 2000, 19:32:45):
~#! rn=Grimmborn rt=948133815 rg=kultur
~#! tid=947455671
Du haettest Dir halt eine Bratsche kaufen sollen, da waere das nie
aufgefallen...

Anatol


-----------------------------------------------------------------------------



Re^15: Liederabend mit Christoph Pregardien (Tenor) (Grimmborn, 17. Jan 2000, 19:34:27):
~#! rn=Anatol rt=948133965 rg=kultur
~#! tid=947455671
Da wuerde auch das Fehlen eines Fingers nicht weiter ins Gewicht fallen. 

KV550 faengt uebrigens mit einem halbtaktigen Bratschensolo an. Das live zu
hoeren ist ziemlich lustig...

Grimmborn der Atheist tut Butter aufs Brot, nicht auf die Geige

-----------------------------------------------------------------------------



Re^14: Liederabend mit Christoph Pregardien (Tenor) (Ender, 18. Jan 2000, 06:53:25):
~#! rn=Grimmborn rt=948133815 rg=kultur
~#! tid=947455671
Die Zweite Lage kannst du nicht sicher?
Stumeper

Ender

-----------------------------------------------------------------------------



Re^16: Liederabend mit Christoph Pregardien (Tenor) (Guildo, 18. Jan 2000, 09:30:19):
~#! rn=Grimmborn rt=948134067 rg=kultur
~#! tid=947455671
Ach was, der Anfang von KV550 ist so piano, dass da eh keiner die Sechzehntel
in der Begleitung hoert. Andererseits, vielleicht ist das auch Vertauschung
von Ursache und Wirkung, und man hat sich nur schon daran gewoehnt, sie nicht
zu hoeren, weil sie eben in der Bratsche liegen, und Bratscher ja bekanntlich
keine Sechzehntel spielen koennen!?
Viel lustiger ist doch noch das Bratschensolo i n der Durchfuehrung vom 4.
Satz der C-Dur-Sinfonie von Bizet; da hab ich schon Bratscher komplett
aussteigen sehen. :)

Gruss,
GdB (Guildo der Bratscher)

P.S. Erfreulich, dass wir in diesem Thread (nach Jerusalem und Mafia)
wenigstens wieder halbwegs on topic sind.

-----------------------------------------------------------------------------



Re^15: Liederabend mit Christoph Pregardien (Tenor) (Grimmborn, 18. Jan 2000, 10:42:36):
~#! rn=Ender rt=948174805 rg=kultur
~#! tid=947455671
Ich kenne keinen Geiger, der die zweite Geige wirklich mag. Und fast keinen,
der sie nicht vermeidet wenn es geht und nichts ins Schleudern geraet, wenn er
sie mal eben schnell vom Blatt spielen muss.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^17: Liederabend mit Christoph Pregardien (Tenor) (Grimmborn, 18. Jan 2000, 10:44:26):
~#! rn=Guildo rt=948184219 rg=kultur
~#! tid=947455671
Jepp, ich hab das Bratschensolo in der "Henkel trocken" Sinfonie auch erst
bemerkt, als ich es in der Partitur gefunden hatte...

Und um Bratscher aussteigen zu sehen brauchts keinen Bizet. 
Themenwechsel: Wenn Du drei Hoerner vierstimmig spielen hoeren willst (an
einer unisono Stelle), empfehle ich die Koelner Oper, wenn Wagner gegeben
wird.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^18: Liederabend mit Christoph Pregardien (Tenor) (Yendi, 18. Jan 2000, 14:57:09):
~#! rn=Grimmborn rt=948188666 rg=kultur
~#! tid=947455671
Das Phaenomen kannst Du in jeder Grundschulmusikstunde am Beispiel von
Blockfloeten verfolgen, und zwar fuer lau und umme, da brauchst Du nicht in
die Koelner Oper zu gehen.
Ausserdem klingen Waldhoerner meist derart schwammig, dass man sowieso nicht
sagen kann, auf welchen Ton die jetzt gezielt haben.

Yendi
      duckt sich hinter seine Trompete


-----------------------------------------------------------------------------



Re^17: Liederabend mit Christoph Pregardien (Tenor) (Lug, 19. Jan 2000, 00:16:41):
~#! rn=Guildo rt=948184219 rg=kultur
~#! tid=947455671

On Topic? Ist das ein Pizzabelag? Da faellt mir wieder die Mafia ein...


Lug

-----------------------------------------------------------------------------



Re^16: Liederabend mit Christoph Pregardien (Tenor) (Ender, 19. Jan 2000, 08:37:53):
~#! rn=Grimmborn rt=948188556 rg=kultur
~#! tid=947455671
Ja, hmm, 2. Geige ist doch sowieso Blattspiel.
Aber du meintest scher die 2. Lage.
aber klar, ich hatte einen ;) vergessen in dem Artikel.
Das die 2. Lage so unbeliebt ist, liegt wohl daran, dass an
Hochschulabgaengern, die besten Solisten werden(haben kein Problem mit der 2.
Lage) die naechsten Orchesterspieler, die anderen alle Kaffehausmusiker oder
Lehrer. D.h. als Schueler bekommt man zu 90 prozent jemanden als Lehrer, der
mit der 2. Lage nicht so vertraut war, wie seine besseren Komilitonen. Das
vererbt sich auf die naechste Schuelergeneration.
Uebrigens, habe ich beobachtet, dass diejenigen, die fuer Geige zu
mittelmaessig waren, sich oft mit der Bratsche anfreunden und dann Bratsche
studieren um zu studieren. Das ist kein Zufall.
Ender

-----------------------------------------------------------------------------



Re^17: Liederabend mit Christoph Pregardien (Tenor) (Anatol, 19. Jan 2000, 10:00:19):
~#! rn=Ender rt=948267473 rg=kultur
~#! tid=947455671

Gaebe es eine personifizierte Interpunktion, wuerde sie Dich
wegen Vergewaltigung erfolgreich der Strafverfolgung aussetzen.

Anatol

-----------------------------------------------------------------------------



Re^18: Liederabend mit Christoph Pregardien (Tenor) (Ender, 19. Jan 2000, 14:46:36):
~#! rn=Anatol rt=948272419 rg=kultur
~#! tid=947455671
Oh, hmm, das versteh ich jetzt nicht, kannst du mir das erklaeren Komma?

Ender

-----------------------------------------------------------------------------



Re^18: Liederabend mit Christoph Pregardien (Tenor) (Yendi, 19. Jan 2000, 16:06:10):
~#! rn=Anatol rt=948272419 rg=kultur
~#! tid=947455671
JA!
Das war wieder der Original-Anatol!

*grins*

Yendi


-----------------------------------------------------------------------------



Auch mal nen Spruch (Amaryllis, 26. Jan 2000, 01:45:05):
Nimm mich einfach als einen von diesen Affen, die zur Drehleier tanzen.
Wirf mir eine Muenze rueber.
Meine einzige Richtung ist der Himmel, und die Erde ist mein Bett.
Wir warten auf Dich, wie alle hier, solange, bis die Zeit uns erloest.

Milla: "Ruby Lane"

Amaryllis (aus aktuellem Anlass)

-----------------------------------------------------------------------------



Re: Auch mal nen Spruch (Bubba, 26. Jan 2000, 12:07:55):
~#! rn=Amaryllis rt=948847505 rg=kultur
~#! tid=948847505

Versteh ich nicht.
Erklaert mir den letzten Artikel jemand?

Bubba - kulturinteressiert


-----------------------------------------------------------------------------



The letter (Amaryllis, 27. Jan 2000, 01:54:39):
Ich habe gesucht.
Lange gesucht. Das, was ich suche, ist an diesem Ort nicht zu finden. 
Deswegen werde ich diesen Ort verlassen.
Es wird zu viel fuer mich.
Zu viel zu tragen, zu viel, um es weg zu stecken. 
Weint mir nicht nach.
Du auch nicht, Mutter. Wo mein Weg jetzt hinfuehrt, kann ich nicht sagen. Ich
wollte nur sein und leben.

Glaenzen vielleicht auch. Dieses Leben war Schmerz und Zwang. Jetzt bin ich
frei. Wenn ich jetzt gehe, bin ich bereit dazu.

Und ich kann mich an nichts erinnern, von all den Dingen, die ich ein Leben
lang zu vergessen suchte. 

PS: Bevor ich gehe, wuerde PS: Bevor ich gehe, wuerde ich Dich gerne noch
einmal sehen. Ich werde das nicht tun, weil allein Dein Anblick es wert waere,
zu bleiben. Aber ich seh' Dich spaeter. An einem anderen Ort. Einem besseren. 

Macy Gray: Ausschnitt aus : " The Letter "

Amaryllis . o O (wie recht diese Zeilen doch haben, insbesondere der Anfang)

-----------------------------------------------------------------------------



Der Magier, das arme Schwein... (Yendi, 28. Jan 2000, 12:34:30):


Ein kleines Sonett fuer unsere Programmierknechte,
frei nach dem "Zauberkuenstler" von Max-Hermann Neisse:


Der Magier
==========

Er ist sehr traurig.  Alle Dinge laufen
nach seinem Wunsch und Willen -- und dies ist
doch nur ein sinnlos Spiel und eitel List
und heisst, sein Kind- und Spieler-Sein verkaufen!

Es kann ihn nie ein "Seltsam!" ueberraschen,
denn alles haelt er stets in seiner Hand:
Er hat die Hydra auf dem Freundschaftsband
und holt sich Gold und Killstups aus den Taschen.

Und bleibt sehr traurig: denn vor ihm steht ja
das MUD als Code und  reizlos ungeschminkt,
und ist fuer ihn nie mehr ein Raetsel da...

Er weiss, wie alles luegenhaft sich baut,
und nichts bleibt, wenn der Cursor nicht mehr blinkt,
als ein Gehirn, dem vor dem  MorgenGraut.



YTY



-----------------------------------------------------------------------------



Re: Der Magier, das arme Schwein... (Ark, 28. Jan 2000, 14:42:50):
~#! rn=Yendi rt=949059270 rg=kultur
~#! tid=949059270

Der Magier
==========

Er ist sehr fleissig, unermuedlich. Alles, was er schafft,
ist schoen und gut. Was ihm fehlt ist die Spielerschaft,
die sich lobend aeussert, auch kritisiert, doch gerecht ist,
nicht meckert und pikiert ihn anmault und seine Muehe frisst.

Was hat er nicht alles in seiner Hand: Monster, Kaefer, Knuddelband.
Und ist doch willig zu zeugen vieles neu, auf dass der Spieler sagt:
'Mainer Troy!'
Es ist nicht einfach zu genuegen des Mobbes Lust, und oft ist es
auch einfach sehr viel Frust.
Doch eines ist es sicher nicht: ein Trauerjob mit wenig Licht.

Der Code, der bleibt, so das Backup will. Das Lob, 's muss kommen,
sonst haelt er inne, bleibt ganz still.
Und wenn er einmal motzig ist, weil einer ihm auf die Schnauze haut,
so helft ihm, auf dass er wiederkommt, sobald der MorgenGraut.

Frei nach einem unbekannten "Kuenstler", der eh nicht dichten kann :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Chorkonzert in Goslar (Alcina,  4. Feb 2000, 15:19:24):

Hi Leuts,


morgen (Samstag, 5.2.00) gibt der Thueringische Akademische Singkreis (bloeder
Name, aber guter Chor) in der Neuwerkkirche in Goslar um 20 Uhr ein
Chorkonzert. Wer noch nichts vorhat und der klassischen Musik nicht ganz
abgeneigt ist, wird den Konzertbesuch nicht bereuen.

Am Sonntag (uebermorgen) ist der Kammerchor nocheinmal im Gottesdienst in der
katholischen Jacobikirche um 10.30 Uhr zu hoeren.


Alcina - packt schonmal die Bachmotetten ein.


-----------------------------------------------------------------------------



check this (Catweazle, 24. Feb 2000, 08:45:24):
I have a spelling checker
It came with my PC
It plane lee marks four my revue
Miss steaks aye can knot sea.
Eye ran this poem threw it,
Your sure reel glad two no.
Its vary polished in it's weigh
My checker tolled me sew.
A checker is a bless sing,
It freeze yew lodes of thyme.
It helps me right awl stiles two reed,
And aides me when aye rime.
Each frays come posed up on my screen
Eye trussed too bee a joule
The checker pour o'er every word
To cheque sum spelling rule.
Be fore a veiling checkers
Hour spelling mite decline,
And if were lacks or have a laps,
We wood be maid to wine.
Butt now bee cause my spelling
Is checked with such grate flare,
Their are know faults with in my cite,
Of non eye am a wear.
Now spelling does knot phase me,
It does knot bring a tier.
My pay purrs awl due glad den
With wrapped words fare as hear.
To rite with care is quite a feet
Of witch won should be proud.
And wee mussed dew the best wee can,
Sew flaws are knot aloud.
Sow ewe can sea why aye dew prays
Such soft ware four pea seas.
And why I brake in two averse
By righting want too pleas.
---
Unknown

-----------------------------------------------------------------------------



Hoerspiele (Catweazle,  1. Mar 2000, 14:21:06):
Der kleine Hobbit:
http://msnhomepages.talkcity.com/arcade/joe-hoerspiele/
Herr der Ringe:
http://home.talkcity.com/EaselSt/herrderringe/

Und ne uebersicht ueber diverses:
http://msnhomepages.talkcity.com/LyricLn/hoerspiele/download.html

Have fun,

  YTC

-----------------------------------------------------------------------------



A Grazing Mace (Yendi, 28. Mar 2000, 15:06:03):
Sung to the tune of "Amazing Grace":

A grazing mace, how sweet the sound
that felled my foe for me!
I bashed his head, he struck the ground,
and thus came victory.

My mace has taught my foes to fear,
that mace my fear relieved.
How precious did my mace appear, when
I my mace received.

Through many tourneys wars and fairs,
I have already come,
My mace has brought me safe thus far,
my mace will bring me home.

The King has promised good to me,
his word my hope secures.
I will his shield and weapon be,
when he gives me my spurs.

And when my mace my foeman nails,
that mortal strife shall cease,
And we'll possess within our pale,
a life of joy and peace.

A grazing mace, how sweet the sound
that flattened a wretch like thee!
Whose head is flat, that once was round,
done in by my mace...and me!

A grazing mace, how sweet the sound
that smites a foe like thee.
You're left there lying on the ground,
you've left the field for me!



-----------------------------------------------------------------------------



Wacken Festival 2000 (Lug,  2. Apr 2000, 04:30:54):
Moin,

sind ja einige Mudder dabei und einige wollen vielleicht hin. Darum mal das
aktuelle Programm:

THIN LIZZY (UK/USA) 
      feat.: John Sykes / Scott Gorham / Tommy Aldridge / Darren Wharton /
Marco Mendoza

    DORO (D/USA) - VENOM (UK) - einzige Show!

    ICED EARTH (USA) - CRADLE OF FILTH (UK)

         OVERKILL (USA) - TESTAMENT (USA)

    ANNIHILATOR (CAN) - MORBID ANGEL (USA)

  ZAKK WYLDE4S BLACK LABEL SOCIETY (USA)

 

ANCIENT (N), ANGEL WITCH (UK), ARMORED SAINT (USA), ARTILLERY
(DK), BLACK SWEDEN (S), BREAKER (USA), DARK AGE (D), DARK AT
DAWN (D), DERANGED (S), ENGINE (USA), FREEDOM CALL (D), GAMMA
RAY (D), GRIM REAPER (UK) - Reunion!, HADES (USA), HEIR APPARENT
(USA) - einzige Show!, HYPOCRISY (S), IMMOLATION (USA), JACOB4S
DREAM (USA), KNORKATOR (D), LABYRINTH (I), LATE NITE ROMEO (D),
LIEGE LORD (USA) - Reunion!, LIZZY BORDEN (USA), LOCK UP (UK/S),
MARDUK (S), NIGHTMARE (F), NIGHTWISH (FIN), OKTOBER 31 (USA), PAIN
(S), PINK CREAM 69 (D), PRAYING MANTIS (UK), QUEEN CHANTAL /
Sexhow (D), ROYAL HUNT (DK), SAMSON (UK), SAVAGE (UK),
SENTENCED (FIN), SKEW SISKIN (D), SOLSTICE (UK), SQUEALER (D),
STEEL ATTACK (S), TOM ANGELRIPPER (D), TWISTED TOWER DIRE
(USA), UMBRA ET IMAGO (D), VADER (PL)


Laerrrrmmm
Lug

-----------------------------------------------------------------------------



Re: Wacken Festival 2000 (Angus,  2. Apr 2000, 12:11:37):
~#! rn=Lug rt=954642654 rg=kultur
~#! tid=954642654
Sieht so aus, als waer's mal wieder Pflicht...
bei dem Billing!
Hoffentlich klappts diesmal auch mit der
Einhaltung des Ablaufplans ;-)

See You in Wacken - Rain or Shine!
- Angus denkt.oO( wo hab ich bloss die Regenkombi...)

-----------------------------------------------------------------------------



Re: Re: Wacken Festival 2000 (Bubba,  3. Apr 2000, 14:05:38):
~#! rn=Angus rt=954670297 rg=kultur
~#! tid=954642654

---Nachtrag---

Lug hat vergessen zu erwaehnen, dass dieses Jahr Wolle Petri als 'special
guest' gewonnen werden konnte!

Volle Droehnung
Bubba

-----------------------------------------------------------------------------



Re^3: Wacken Festival 2000 (Lug,  4. Apr 2000, 01:48:42):
~#! rn=Bubba rt=954763538 rg=kultur
~#! tid=954642654

Nee,

ich hab vergessen zu erwaehnen, das die Verhandlungen mit SAVATAGE weit
gediehen sind. Aus Bathory wird dieses Jahr leider nix, aber vielleicht
naechstes Jahr.

Updatend
Lug

-----------------------------------------------------------------------------



Re: Wacken Festival 2000 (Rantanplan,  6. Apr 2000, 19:47:51):
~#! rn=Lug rt=954642654 rg=kultur
~#! tid=954642654
Yo Lug, 
Yo Lug, 
Umbra et Imago haben eine sehenswerte Bhnenshow, die hngen gepiercte Mdels an
den Brustwarzen auf
das mag daran liegen, dass sie aus Karlsruhe sind...;)

Oe*

-----------------------------------------------------------------------------



Re: Re: Wacken Festival 2000 (Anatol,  6. Apr 2000, 21:56:39):
~#! rn=Rantanplan rt=955043271 rg=kultur
~#! tid=954642654
Oe> das mag daran liegen, dass sie aus Karlsruhe sind...;)

Wer - Umbra et Imago oder die gepiercten Maedels? 

Anatol

-----------------------------------------------------------------------------



Re^3: Wacken Festival 2000 (Nevok,  6. Apr 2000, 21:59:13):
~#! rn=Anatol rt=955050999 rg=kultur
~#! tid=954642654
naja sagen wir's mal so........die Info ueber die Buehnenschau ist 'on need to
know basis."

Nevok who definitely DIDN'T need to know THAT

-----------------------------------------------------------------------------



Re: Re: Wacken Festival 2000 (Lug,  7. Apr 2000, 04:05:24):
~#! rn=Rantanplan rt=955043271 rg=kultur
~#! tid=954642654

Umbra et Imago? Sind die dabei? Seh ich mir eh nicht an...

Mir doch egal wer seine Geschlechtsteile wo hinhaengt...
Lug

-----------------------------------------------------------------------------



WACKEN UPDATE (Lug, 15. Apr 2000, 03:14:26):

WACKEN OPEN AIR (neueste Update):

ACHTUNG: NEUES BAND UP-DATE !!!

                                     

                    THIN LIZZY (UK/USA) 
      feat.: John Sykes / Scott Gorham / Tommy Aldridge / Darren Wharton /
Marco Mendoza

            DORO (D/USA) - VENOM (UK) - einzige Show!

             ICED EARTH (USA) - STRATOVARIUS (FIN)

       OVERKILL (USA) - TESTAMENT (USA) - RHAPSODY (I)

            ANNIHILATOR (CAN) - MORBID ANGEL (USA)

   GAMMA RAY (D) - NIGHTWISH (FIN) - SIX FEET UNDER (USA)

           ZAKK WYLDE4S BLACK LABEL SOCIETY (USA)

 

 
AGATHODAIMON (D), ANCIENT (N), ANGEL WITCH (UK), ARMORED SAINT (USA),
ARTILLERY (DK), BLACK SWEDEN (S), BREAKER (USA), DARK AGE (D), DARK AT DAWN
(D),
DEMON (UK), DERANGED (S), DESPERADOS (D), ENGINE (USA), FREEDOM CALL (D),
GASKIN (UK), GRIM REAPER (UK) - Reunion!, HADES (USA), HEIR APPARENT (USA) -
einzige Show!, HYPOCRISY (S), IMMOLATION (USA), JACOB4S DREAM (USA), KNORKATOR
(D), LABYRINTH (I), LATE NITE ROMEO (D), LIEGE LORD (USA) - Reunion!, LIZZY
BORDEN
(USA), LOCK UP (UK/S), MARDUK (S), MOB RULES (D),  NIGHTMARE (F),  OKTOBER 31
(USA), PAIN (S), PINK CREAM 69 (D), PRAYING MANTIS (UK), QUEEN CHANTAL /
Sexshow
(D), RAISE HELL (S), ROYAL HUNT (DK), SAMSON (UK), SAVAGE (UK), SENTENCED
(FIN),
SKEW SISKIN (D), SOLSTICE (UK), SPIRITUAL BEGGARS (S), SQUEALER (D), STEEL
ATTACK (S), TOM ANGELRIPPER (D), TWISTED TOWER DIRE (USA), UMBRA ET IMAGO (D),
VADER (PL), VANISHING POINT (AUS)
sowie der Gewinner des LOBO - Newcomer - Wettbewerb "FRDGG Band
2000" vom DINO Verlag.


See You in Wacken - Rain or ...
Lug

-----------------------------------------------------------------------------



Voelkerkundliche Ausstellung "Nigeria in Form und Farbe" (Cisou,  7. Jul 2000, 20:33:49):

Seit gestern ist in der Voelkerkundlichen Sammlung Marburg die Ausstellung:

Nigeria in Form und Farbe - Alltag und Hardwerk

zu besichtigen. Eine andere Ethnologin und ich haben sie mit ca. 20
Studierenden konzipiert und realisiert und gestern abend mit viel Erfolg
eroeffnet.
Zu sehen sind Exponate, die in mehreren langjaehrigen Feldforschungen in ganz
Nigeria von verschiedenen Ethnien erworben werden konnten.
Eine Reise durch das Land der Hausa, Fulbe, Nupe und der Yoruba bietet einen
Einblick in Handwerkstechniken und Erzeugnisse dieser Ethnien. Einige
Kultgegenstaende der Maenner-Geheimbuende sind ebenfalls zu betrachten.

Fuehrungen nach Vereinbarung unter der Tel-Nr. 06421-2823749 oder 2822199.
Fuer weitere Auskuenfte stehe ich gerne zur Verfuegung und freue mich auf
jeden einzelnen Besucher/Besucherin.

Cisou

-----------------------------------------------------------------------------



Re: Voelkerkundliche Ausstellung "Nigeria in Form und Farbe" (Ronda,  7. Jul 2000, 21:24:11):
~#! rn=Cisou rt=962994829 rg=kultur
~#! tid=962994829
Klasse - klingt spannend ;-)

Nur vielleict solltest Du uns einen Tipp geben, nach wem wir am Telefon fragen
sollen - oder weiss da jeder am anderen Ende, wer Cisou ist?

Ronda

Ps: Solln wir nicht einfach eine Spontanparty in Marburg machen und das
Voelkerkundemuseum bevoelkern? ;-)

-----------------------------------------------------------------------------



Re: Re: Voelkerkundliche Ausstellung "Nigeria in Form und Farbe" (Cisou,  8. Jul 2000, 11:31:02):
~#! rn=Ronda rt=962997851 rg=kultur
~#! tid=962994829
Aehm, ja, Cisou kennt da tatsaechlich niemand, besser is das auch ;).

Es reicht aber, nach der Zustaendigen fuer die Sammlung zu fragen, dann werd
ich angepingt.
Aber ich verrat einfach noch die Adresse: Kugelhaus/ Kugelgasse 10, 1. Stock,
in den Raeumen des Fachgebietes Voelkerkunde.

Auf BesucherInnen wartende Cisou

PS Opsala, Ronda, Party in Maburg? Na wenn das nicht einen Sturm an Flames
ausloest :-))).

-----------------------------------------------------------------------------



Re^3: Voelkerkundliche Ausstellung "Nigeria in Form und Farbe" (Atoz,  8. Jul 2000, 11:47:32):
~#! rn=Cisou rt=963048662 rg=kultur
~#! tid=962994829
ach was, wir muessen die Staenkerer ja nicht einladen ;)
Aber Party hoert sich gut an, da ich im Moment auch nur noch 3 statt 4
Vollbeschaeftigungen habe ;)

Gruss, Atoz 

-----------------------------------------------------------------------------



Re^4: Voelkerkundliche Ausstellung "Nigeria in Form und Farbe" (Lug, 21. Jul 2000, 01:13:10):
~#! rn=Atoz rt=963049652 rg=kultur
~#! tid=962994829

Nigeria interessiert mich wie tote Ameisen, aber zur Party kaem ich wohl...

Lug

-----------------------------------------------------------------------------



Re^5: Voelkerkundliche Ausstellung "Nigeria in Form und Farbe" (Holz, 23. Jul 2000, 01:54:55):
~#! rn=Lug rt=964134790 rg=kultur
~#! tid=962994829
Hallo lieber Lug,
Es freut mich, dass Du dich fuer Ameisen interessierst, ich selbst habe
das gleiche Hobby.
Vielleicht koennten wir mal welche Tauschen ? Ich hab schon recht viele
Praeparate, manche auch doppelt.

mit formicidaphilen Gruessen,
Holz

-----------------------------------------------------------------------------



Neulich auf #userfriendly (Catweazle,  3. Aug 2000, 15:21:22):
<Srrilyan> Okay, that one was overconstructed. I'll do better next time.
<Yohimbe> Sirilyan: you stretched, big time.
<Yohimbe> Sirilyan: Leanne appalled's material in no way fits Ms Shocked's
          fan base.
<Sirilyan> Give her time. I'm sure that in a few years she'll be right up
           there with people as admired as Joyce Astounded and Minnie
           Devastated.
<Yohimbe> Sirilyan: As Grrrrrl singers get ever more specialized, I think
          back to the halcyon days of yester year with such mass appeal
<Yohimbe> artists and Desiree Generic and Carolyn ChickSinger
<Sirilyan> Man, I haven't heard someone talk about Desiree Generic for years.
           I loved Debut Dance Single - it was probably the best song from
           "Self-Titled First Album".
<Yohimbe> Carolyn ChickSingers work was under appreciated. "Men Suck" was an
          anthem for ..... minutes.
<dayan> not to mention Debut Dance Single (Hip-Hop Remix) and Obligatory
        Ballad (Desiree's Theme)
<Sirilyan> I think Obligatory Ballad was the last waltz at all my high
           school's dances.
<dayan> heh.
<Yohimbe> Sirilyan: that and Power Ballad by Hair Band.
<dayan> followed shortly by Annual Tear-jerking Graduation Song?
<Sirilyan> Yeah, but lately I'm getting back into the upbeat stuff. Anyone
           have a mp3 of Catchy Dance Track by Goofy Urban Duo?
<dayan> no, but i have Mysteriously Popular Eurotrash Single here.
<Yohimbe> Sirilyan: I think I have Poorly Done Remake by Out of Original
          Ideas
<Sirilyan> No, you're confusing that with Poorly Done Remake (Club Remix) by
           Misguidedly Think It's Retro.
<dayan> not to mention the Poorly Done Remake cover by WASPy Teen Idol
<Yohimbe> Sirilyan: Didn't WASPy Teen Idol also do Obligatory Ballad ?
<Sirilyan> Which actually isn't bad, especially compared to Song About Beer
           And Fscking by Ska Band.
<dayan> or Anti-Establishment Anthem by Hardcore Punk Band.
<Subucni> n.p. - ostentatiously morose, by brit-pop monolith
<Yohimbe> If we are discussing that kind of stuff Genre Rehash by
          Obstentatious Trend Follower needs to be mentioned.
<dayan> my personal favorite, though, has to be Where The Fsck Are My Wife,
        Dog, and Truck? by Obtuse Country Lunkhead.
<Subucni> have we covered "looped female wailing" by anonymous house
          conglomerate yet?
<dayan> Subucni: i think that's the b-side to Mysteriously Popular Eurotrash
        Single
<Yohimbe> I dont think anyone has mentioned the classics like "Wailing About
          things I can't Change" by John Folksinger yet
<Sirilyan> Jay: Or Exact Same Song They've Been Doing For Years But Now It's
           On MTV And Thus Sucks by Band That Had Hit Single.

<Subucni> what about "irate and political" by rock/rap crossover act?
<Subucni> "puzzling genre resurrection" by nine guys with no fashion sense
          was also a contender
<Yohimbe> or Fifteenth Redo of our Big Hit by 70's Rock Dinosaur
<dayan> or Life In The Ghetto by Suburban White Boy Posse.
<Subucni> oh, that's always a fave
<Sirilyan> Theme To Movie (Movie's Theme) by Washed-Up Rock Band.
<Subucni> and who could forget, "Violent Misogynist" by Random Rapper?
<Yohimbe> Subucni: Random Rapper's other one "Completely Incoherent" was
          better
<Subucni> which always blends swimmingly with "what pot, officer?" by new-age
          touring hippie attraction
<dayan> Yohimbe: personally, i liked Random Rapper's hit single Love (Bitchez
        And Hoez Ain't Nuthin But Shit).
<Yohimbe> dayan: I found that one derivative of Random Other Rapper's
          "Hate (Hoez and Bitches)"
<Subucni> and who could forget, "you can't possibly comprehend my angst" by
          that seminal goth act, hand*staple*forehead ?
<Yohimbe> I've always liked Singer Who Would Like to Be Called a Diva's
          version of "Wailing really high and complicated"
<Yohimbe> I bet we could get all of these on a Television Schlock Music
          Publishers Compilation album.
<dayan> Yohimbe: called Golden Hits, no doubt.

-----------------------------------------------------------------------------



Re^5: Voelkerkundliche Ausstellung "Nigeria in Form und Farbe" (Cisou,  4. Aug 2000, 23:22:29):
~#! rn=Lug rt=964134790 rg=kultur
~#! tid=962994829
Versteh ich, Lug, dass Dich Nigeria nich so interessiert.
Da kaem doch eher Ghana in Frage, denn bei den Ashanti gibts noch heute ein
sakrales Koenigtum.

Die Elster - heut mal inspirativ

-----------------------------------------------------------------------------



Re^6: Voelkerkundliche Ausstellung "Nigeria in Form und Farbe" (Grimmborn,  4. Aug 2000, 23:34:32):
~#! rn=Cisou rt=965424149 rg=kultur
~#! tid=962994829
Dafuer muss er nicht so weit weg. Sowas hat letzten Endes der Vatikanstaat
auch.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Neue Cradle of Filth (Lug, 19. Sep 2000, 19:43:54):

Moin,

Cradle Fans angeschnallt, mit der neuen CD kommt ein echter Hammer auf Euch
zu. Wollte ich nur schonmal ansagen ;)

LAERM
Lug

-----------------------------------------------------------------------------



Re: Neue Cradle of Filth (Cymonk, 19. Sep 2000, 21:30:02):
~#! rn=Lug rt=969385434 rg=kultur
~#! tid=969385434
yup,

und ich harre erwartungsvoll des 28.11:
cradle inner zeche bochum ...

CyMosh :)

-----------------------------------------------------------------------------



Re: Re: Neue Cradle of Filth (Zarniya, 20. Sep 2000, 14:36:41):
~#! rn=Cymonk rt=969391802 rg=kultur
~#! tid=969385434
Sicher, dass das die neue Suicidal Tendencies schlaegt? DAS ist ein Hammer...
ganz zu schweigen von der neuen Infectious Grooves.....

Marc

-----------------------------------------------------------------------------



Re^3: Neue Cradle of Filth (Lug, 23. Sep 2000, 04:03:06):
~#! rn=Zarniya rt=969453401 rg=kultur
~#! tid=969385434

Die neue Suicidal ist ja ganz nett, kommt aber an Lights, Camera, Revolution
wirklich nicht ran. Cradle ist auch kaum zu vergleichen, fuer mich aber
deutlich besser.

Antwortend
Lug

-----------------------------------------------------------------------------



Spruch der Woche (Dieder, 14. Okt 2000, 21:28:38):
Huhu,

schade, dass diese Rubrik leer ist - frueher schrieb doch Grimmi hier ab und
an nen "Spruch der Woche" rein...

Nagut, versuch ichs auch mal. Hier ein Zitat, das angeblich von Tschechov
stammt:

"Man(n) (? :-)) fuerchte den Bock von vorne, das Pferd von hinten, und das
Weib von allen Seiten."

Dieder, weise nickend.

-----------------------------------------------------------------------------



Heute mal ein Gemaelde ;-) (Vanion,  5. Nov 2000, 17:15:38):
http://www.lostinspace.de/

V* findet's nett.

-----------------------------------------------------------------------------



Animes bei VOX - morgen gehts los ;-) (Vanion,  5. Nov 2000, 17:39:02):
So, heute bin ich mal in Sachen Kultur unterwegs ;-)

Da es eine Rubrik TV nicht gibt, muss diese mal herhalten.

Im Herbst zeigt VOX in Zusammenarbeit mit der dctp japanische Animationsfilme
(Animes).

Auftakt der Reihe macht am Montag, den 06.11.00 um 00:10 Uhr die dt.
Erstausstrahlung des Films 'Bubblegum Crisis: Born to Kill' von Akiyama
Katsuhito in der Originalfassung mit deutschen Untertiteln.

Wie koennen uns im Laufe des Herbstes noch ueber Ausstrahlungen von 'Neon
Genesis Evangelion' (Termin noch unbekannt), 'Tekken - die eiserne Faust'
(verm. am 29.11.) und 'Macross' und 'Macross II' (verm. im Rahmen einer
grossen Anime-Filmnacht am 1.12.) freuen.

Ob noch andere Sendungen laufen, ist mir derzeit nicht bekannt.

Also erzaehlt mir nicht, ihr haettet es nich gewusst *g*

Viel Spass und seht nich die ganze Nacht fern *g*

V*

-----------------------------------------------------------------------------



Re: Animes bei VOX - morgen gehts los ;-) (Vanion,  5. Nov 2000, 17:43:06):
~#! rn=Vanion rt=973442342 rg=kultur
~#! tid=973442342
zu NGE:
Leider kenne ich den Termin nicht. Die Website der dctp (www.dctp.de) hat noch
keinen Sendeplan fuer die 46. KW ausgegeben :(

V*, wartet auch drauf (videokasettenauspackend)

-----------------------------------------------------------------------------



Re: Re: Animes bei VOX - morgen gehts los ;-) (Gorog,  5. Nov 2000, 17:46:12):
~#! rn=Vanion rt=973442586 rg=kultur
~#! tid=973442342
Feine Sache dass. Beim letzen mal hab ich nur die schlechten mitbekommen....
Aber ich denke Bubblegumcrisis und NGE werden das wieder wett machen. 
Gorog hofft diesesmal wach zu bleiben...


-----------------------------------------------------------------------------



Re: Animes bei VOX - morgen gehts los ;-) (Sango,  5. Nov 2000, 17:48:08):
~#! rn=Vanion rt=973442342 rg=kultur
~#! tid=973442342

Neon Genesis Evangelion kommt dirket im Anschluss an Bubblegum Crisis, also ab
dem 27.11.2000. WEr sich naeher informieren will sollte mal bei
http://www.vox.de/programm/anime.html vorbeischauen, da sind alle Termine
drauf.

-----------------------------------------------------------------------------



Re: Re: Animes bei VOX - morgen gehts los ;-) (Sango,  5. Nov 2000, 17:51:28):
~#! rn=Sango rt=973442888 rg=kultur
~#! tid=973442342
Und dann nochmal ein kleiner Nachtrag zu Macross 2 und Kite (laeuft auch im
Rahmen des Anime-Programms). Sowohl Macross 2 als auch Kite sind Deutsche
Premieren, die gibt es bisher nicht mal auf Video oder DVD (bzw. gibt es sie
dann wohl jetzt).

Sango

-----------------------------------------------------------------------------



Kinotip (Montanus,  9. Nov 2000, 21:57:34):

Naja, es ist nicht unbedingt ein Kinotip.
Aber wer schon immer mal Padreic live auf der Kinoleinwand erleben wollte, dem
sei der Streifen "Girls United" empfohlen.
Er spielt da zwar nicht unter seinem echtebn Namen, sondern unter einem
Kuenstlernamen mit, aber das Gesicht und das Benehmen, und vor allem die
Pullover waren so unverwechselbar... :-)

-Montanus

-----------------------------------------------------------------------------



Re: Kinotip (Grimmborn, 10. Nov 2000, 00:17:54):
~#! rn=Montanus rt=973803454 rg=kultur
~#! tid=973803454
Titelrolle?

GdA

-----------------------------------------------------------------------------



Re: Kinotip (Lug, 10. Nov 2000, 02:37:38):
~#! rn=Montanus rt=973803454 rg=kultur
~#! tid=973803454

Welcher Schwachkopp, sieht sich denn freiwillig so einen Scheiss an? Da reicht
die Vorschau, um den film zu kennen...

Irritiert
Lug

-----------------------------------------------------------------------------



Re: Re: Kinotip (Montanus, 10. Nov 2000, 15:42:59):
~#! rn=Grimmborn rt=973811874 rg=kultur
~#! tid=973803454
Na ja beinahe.
Ich sag mal "Moechtegern-Hauptrolle", dann passt noch besser. ;-)

MdK

-----------------------------------------------------------------------------



Hmmm.... (Humni, 11. Nov 2000, 02:07:33):
ich weiss nicht, wer sich noch an den Musikgeschmack von gewissen Leuten
in Briselang erinnert..

aber seit Montag hat eine der dort gehoerten Bands ne neue CD draussen,
naemlich JBO.

Nur mal als Tip, ich find sie naemlich trotz fehlendem guten Tag zum sterben
sehr gut.

CU Humni
(der gerade keine bessere Rubrik fand ;-) )

-----------------------------------------------------------------------------



Re: Hmmm.... (Vanion, 11. Nov 2000, 12:36:06):
~#! rn=Humni rt=973904853 rg=kultur
~#! tid=973904853
a) Das 'Ein guter Tag zum Sterben' fehlt kann man verkraften, solange es das
naechste mal wieder dabei is *g*
Vielleicht dann mal 'Ein Hippiger Tag zum Sterben' *g* 

b) Kultur is schon das richtige Wort (wenn man den einen oder anderen Track
ausser Acht laesst *g*) dafuer

V*, findet die CD echt jofig

-----------------------------------------------------------------------------



cd des monats (Gnome, 13. Nov 2000, 23:34:09):
hi!

da es wirklich viele CDs gibt und wirklich viel gutes darunter ist, moechte
ich hier an dieser stelle jeden monat eine cd-empfehlung abgeben, die in
meinen augen sehr gut ist und die es zumindest wert ist, dass man mal
reinhoert... :)

here we go:

band/artist: 'no doubt'
 name of cd: 'return of saturn'

kurzbeschreibung: sehr flippig, new-pop-style, teilweise melancholisch,
                  aber auch melodisch-schnell.

anspieltips: 'ex-girlfriend', 'marry me', 'comforting lie', 'dark blue'

gnOme

-----------------------------------------------------------------------------



Re: cd des monats (Linflas, 14. Nov 2000, 11:38:56):
~#! rn=Gnome rt=974154849 rg=kultur
~#! tid=974154849
Och :( 
Und ich dachte meine CD-Tips aus -a waeren die einzigen :(. Wie dem auch sei,
drum schreib ich das nun auch in die mpa.
Aus Erinnerungszwecken hier nochmal die vom Oktober:
Radiohead - Kid A

Und die CD des Monats November ist: *tadaaaaa*
Bjork - Selmssongs (Soundtrack Dancer ...)

Und wieso?

Na, zugegeben, entweder man liebt sie oder man hasst sie, aber dieses (leider
recht kurze) Album ist mehr als nur Bjork. Es ist genial :)
Oder wem koennte man es sonst zutrauen typische Musical-Sounds mit
elektronischem Jazz zu verbinden?
Die Platte ist ein auf und ab der Emotionen, staendige welchsel des Rhytmus
und Drehungen und Wendungen im Songbild verleiten zum konzentrierten hoeren.
Und wenn man glaubt der Song sei vorbei, kommt noch ein Knaller hinterher :)
Wunderbar!

grinsend, Linf*

-----------------------------------------------------------------------------



www.sfhbs.com (Montanus, 15. Nov 2000, 17:05:44):

Schaut selber mal rein:

The World Famous Society for Future Husbands of Britney Spears

kein weiterer Kommentar noetig. ;-)


-----------------------------------------------------------------------------



Re: www.sfhbs.com (Montanus, 15. Nov 2000, 17:11:38):
~#! rn=Montanus rt=974304344 rg=kultur
~#! tid=974304344

Einen guten Kandidaten hab ich schon gefunden (in der Liste der Mitglieder):

             Name & Email
                                               Personal Stats
              
                 Michael
                                                
                                                   28 Years Old
              
                 minews@gmx.de
                                                
                                                   5 Feet 7 Inches Tall
              
                 Heidelberg / Germany
                                                
                                                   Not Specif Pounds

             Qualifications

              
                 I wouldn't touch her, I just want her money

-----------------------------------------------------------------------------



Re: Re: www.sfhbs.com (Gnome, 15. Nov 2000, 23:48:41):
~#! rn=Montanus rt=974304698 rg=kultur
~#! tid=974304344
die 'hatemail of the week' ist aber auch gut:

...more intelligent and definitely more beautiful women out there than
this dumb, talentless, fake blonde.

kann mich da nur anschliessen... hehe :)

gnOme

-----------------------------------------------------------------------------



Re: www.sfhbs.com (Niete, 16. Nov 2000, 11:03:11):
~#! rn=Montanus rt=974304344 rg=kultur
~#! tid=974304344

danke fuer die adresse! werd mich mal gleich eintragen...


-----------------------------------------------------------------------------



Wenn jemand Interesse an Literatur im Cyberspace hat... (Zook, 16. Nov 2000, 23:02:08):
... dann ist heute ein netter Artikel in der FAZ:

  FAZ Nr. 267 vom 16. November 2000, S. 62:
  Sebastian Domsch: Mit dem Bauchladen unterm Schwarzen Brett mitten in
  Utzbach

Ne ganze Reihe von Links mit Literatur im Internet. Wie gesagt,
wer Interesse hat, kann es sich mal anschauen. Allerdings habe
ich mich gefragt, ob es diese Seite nicht auch online geben
sollte...

Zook.

-----------------------------------------------------------------------------



Re: Re: cd des monats (Lug, 17. Nov 2000, 02:50:24):
~#! rn=Linflas rt=974198336 rg=kultur
~#! tid=974154849

CD des Monats?

Da gibts soviel: Children of Bodom oder Cryptopsy waeren Anwaerter, aber ich
empfehle: Cradle of Filth - Midian. Die perfekte Mischung aus Haerte,
Atmosphaere und Boesartigkeit.

Lug

-----------------------------------------------------------------------------



Re^3: cd des monats (Cakey, 23. Nov 2000, 16:00:40):
~#! rn=Lug rt=974425824 rg=kultur
~#! tid=974154849

Ich kann da Lug nur zustimmen, das Teil is echt klasse.

Cakey

-----------------------------------------------------------------------------



Mal was auf Englisch, daher in der Rubrik Kultur (Montanus, 28. Nov 2000, 13:54:26):
World news:  UN FOCUSES ON TURMOIL IN AMERIJKANISTAN

      After two decades in which social and financial inequalities
widened amidst unsustainable speculative development, the country of
Amerijkanistan held presidential elections this week.
      The two leading candidates were both drawn from a tiny elite, both
spent vast sums on propaganda, and both have claimed victory. Experts on
Amerijkanistan recall the history of violent revolution, civil war and
more recent political violence and
assassinations, resignations, impeachments, sexual scandals and
corruption in this emergent republic, and recommend that the UN
supervise its elections until the country stabilizes.
      "It is struggling to emerge from years of political polarization
and turmoil" said a World Trade Organization spokesperson, "and its
long-suffering people deserve oursupport."
     "One side of the country declared results before voting had
finished in another part" he explained. Moreover, he went on to spell
out that the southern province of 'Floridalandia,' in which the
leadership struggle is being fought, is run by the brother of one of the
candidates, whose father had previously ruled the entire country, having
risen through his control of the nation's intelligence/security
apparatus. Their family is based in a part of the country in which
secessionist feelings have long run strong and which was only
incorporated into Amerijkanistan after a border war.
      Experts on Amerijkanistan argue that the UN should go in to run
education programs, disarm the population, relieve the malnutrition and
environmental problems caused by adherence to a staple diet of cheese
and burgers, democratize the police forces and above all halt the
further development of war machinery.
   "This country has used dangerous weapons in the past and often
threatened to do so again. But with our help, modernization, and a
stress on human development, it may have a more stable future and join
the ranks of the civilized international community" he said.


-----------------------------------------------------------------------------



Re^4: cd des monats (Cymonk,  1. Dez 2000, 03:42:40):
~#! rn=Cakey rt=974991640 rg=kultur
~#! tid=974154849
aber gegenueber dem vorgaenger zu straight ... *grunz*

cy

-----------------------------------------------------------------------------



CD des Monats? (Linflas,  4. Dez 2000, 02:25:55):
Nunja, es ist Weihnachtszeit und die Plattenfirmen ueberspuelen den Markt mit
Musik.
Aber was davon kann sich sehen, oder besser hoeren lassen?

Die Antwort ist so einfach wie erschuetternd:

NICHTS!

Also ist der Tip des Monats eine gute Scheibe aus diesem Jahr:
Tourist von St Germain!
Jazzmusik im modernen Anzug.

Viel Spass :)

Linf*

-----------------------------------------------------------------------------



Re: CD des Monats? (Qitess,  4. Dez 2000, 10:52:22):
~#! rn=Linflas rt=975893155 rg=kultur
~#! tid=975893155
tja, deswegen ist derartiges auf dem kanal...aeh nein, der rubrik 'kultur'
jemand ist der meinung, dass alles, was jetzt gerade auf den markt gekommen
ist, nicht hoerenswert sei.
nunja, jeder hat doch seinen eigenen geschmack, oder nicht? ich fuer meinen
teil finde ' jazzmusik im modernen anzug ' extrem wenig hoerenswert. dagegen
bin ich durchaus gluecklich ueber die nummer-eins-scheibe von den beatles.

ich liebe derartige kritiken...es gibt nichts gutes ausser meinen eigenen
geschmack :)

HERRLICHST!

QI**   mag auch 'Die neue Rock-Weihnachts-CD' und 'Die schoensten
Weihnachtsmelodien von Andre Rieu'. 

HOCH LEBE DIE VIELFALT!


-----------------------------------------------------------------------------



Re: Re: CD des Monats? (Linflas,  5. Dez 2000, 14:13:29):
~#! rn=Qitess rt=975923542 rg=kultur
~#! tid=975893155

Was ist Andre Rieu?

Linflas, unwissend, voellig, sich diese Frage erlaubend.


-----------------------------------------------------------------------------



Re^3: CD des Monats? (Daria,  5. Dez 2000, 14:16:19):
~#! rn=Linflas rt=976022009 rg=kultur
~#! tid=975893155
Das is so ne Schmalzbacke mit Locken, der meint er koennte gut Geige spielen. 
Quasi Richard Claydermann mit Geige. So in der Art.

Daria schaemt sich nicht, den zu kennen.

-----------------------------------------------------------------------------



Re^4: CD des Monats? (Zarniya,  5. Dez 2000, 14:36:04):
~#! rn=Daria rt=976022179 rg=kultur
~#! tid=975893155
Also da muss ich Claydermann mal in Schutz nehmen... er hat naemlich nie, im
Gegensatz zu diesem mittelklassegeiger, behauptet, dass er auf Konzerten
Wunderheilungen vollbracht hat... Rieu erzaehlt sowas!

Marc

-----------------------------------------------------------------------------



Re^5: CD des Monats? (Grimmborn,  5. Dez 2000, 21:01:29):
~#! rn=Zarniya rt=976023364 rg=kultur
~#! tid=975893155
Ich hab nix gegen Rieu. Dass er vor rund zwei Jahren in Koeln eine Stradivari
ersteigert hat hat einem zwar fast das Herz gebrochen, aber immerhin hat den
Anstand besessen sie wieder zurueckzugeben...

GdA

-----------------------------------------------------------------------------



Re^6: CD des Monats? (Wurzel,  5. Dez 2000, 21:54:26):
~#! rn=Grimmborn rt=976046489 rg=kultur
~#! tid=975893155
muss ich mich jetzt outen, weil ich den typ nicht kenne?
aber egal, cds des monats gibt es eh so viele wie es cd-kaeufer gibt...

wurzel

-----------------------------------------------------------------------------



Re^7: CD des Monats? (Montanus,  5. Dez 2000, 21:55:52):
~#! rn=Wurzel rt=976049666 rg=kultur
~#! tid=975893155

nach Adam und Riese ist das falsch.
Denn auf jeden CD-Kaeufer kommen pro Jahr 12 Monate.
Also gibt es, davon ausgehend, dass auch in jedem Monat eine Cd des Monats
bestimmt wird, pro Jahr 12mal soviele CDs des Monats als wie CD-Kaeufer.

-PP

-----------------------------------------------------------------------------



Re^8: CD des Monats? (Linflas,  5. Dez 2000, 22:27:23):
~#! rn=Montanus rt=976049752 rg=kultur
~#! tid=975893155
Also soweit sollte das nun wirklich nicht gehen....

Und waehrend ihr hier weiterrechnet wie viele CD-Kaeufer und CD's des Monats
und Zuschauer beim kaufen einer CD des Monats gibt, hoere ich weiter Musik :)

Linflas, mit dem Fuss wippend.

-----------------------------------------------------------------------------



Re^9: CD des Monats? (Qitess,  5. Dez 2000, 22:29:05):
~#! rn=Linflas rt=976051643 rg=kultur
~#! tid=975893155
...und ich bin jetzt gluecklich, dass doch noch wenigstens eine klitzekleine
diskussion entstanden ist :)

DooBiDoo....
QI**

-----------------------------------------------------------------------------



WeihnachtsCD (Zarniya,  6. Dez 2000, 12:48:41):
Hi, 

mal was besinnliches, wenn auch amerikanisches... 

Wer so ein richtig gutes amerikanisches Weihnachtsalbum haben oder verschenken
will, der ist mit "Garth Brooks & the magic of Christmas" gut bedient. Es sind
alle Klassiker drauf, aber eben in neuer Tonqualitaet und Garth hat wirklich
eine hervorragende Stimme, was ich von 90% aller anderen Weihnachtsalben nicht
behaupten kann.

Marc

-----------------------------------------------------------------------------



Re: WeihnachtsCD (Zarniya,  6. Dez 2000, 12:50:03):
~#! rn=Zarniya rt=976103321 rg=kultur
~#! tid=976103321
achja... wer Weihnachten nicht so besinnlich haben will oder aber seine Oma
vergraulen, dem empfehle ich mein persoenliches Album des Jahres, die neue
Suicidal Tendencies.

Marc

-----------------------------------------------------------------------------



Re: Re: WeihnachtsCD (Foobar,  7. Dez 2000, 01:41:29):
~#! rn=Zarniya rt=976103403 rg=kultur
~#! tid=976103321
Hey, meine Oma steht auf Suicidal Tendencies...

Foobar

-----------------------------------------------------------------------------



This is not A test... (Gnome,  8. Dez 2000, 00:26:12):
...this is reality!

unter diesem motto werfen wir mal den ganzen "weihnachts-gefuehls-dudel-
einmal-im-jahr-muss-man-ja-was-schenken-kram" ueber bord, sehen von
meinen linflas- und qitess-plagiaten ab und wenden uns der scheibe des
monats zu, die ohne zweifel waere:

group/artist: limp bizkit
name of album: chocolate starfish and the hot dog flavored water

kurzkritik: fred durst & co. haben mal wieder zugeschlagen! sehr gutes
            crossover zwischen hip hop, metal und melodik. kommt aber
            nicht ganz an den kult-vorgaenger "significant other"
            heran. aber allein das intro ist nen hammer, wenn auch
            etwas kurz.

anspieltips: "livin' it up", "the one", "i'll be ok"

interessantes: so wie das aktuelle album heisst, wollten sie sich zuerst
               als gruppe nennen. der titelsong von MI:2 "take a look
               around" ist natuerlich auch drauf.

till next year!

gnOme

-----------------------------------------------------------------------------



Tip des Tages (oder Nacht, wie man will) (Foobar, 10. Dez 2000, 02:42:47):
telnet blekko.com

Dann den Befehl "starwars" absetzen -> Episode IV als ASCII-Film - supergeil
:o)

Gruss,

     Foobar

-----------------------------------------------------------------------------



Re: Tip des Tages (oder Nacht, wie man will) (Maystorm, 10. Dez 2000, 12:56:41):
~#! rn=Foobar rt=976412567 rg=kultur
~#! tid=976412567
Wer macht sich _diese_ Arbeit?

Aber gut gemacht und witzig ist es allemal!
--
Maystorm, der blutigste aller Anfaenger

-----------------------------------------------------------------------------



cymotec airplay (Cymonk, 10. Dez 2000, 23:22:20):
hiho,

wer auf electro/ebm im stil von ECO, :wumpsuct:, das ich steht und
im raum essen zuhause ist, sollte am sonntag abend um 18.04 radio
essen einschalten (102, 02 Mhz- Kabel: 92,15 Mhz).
dort stelle ich in einem kurzen interview den gerade
frisch erschienenen sampler 'counterbalance vol.1'
(http://www.inception-records.com) und mein projekt
'cymotec' vor.
mein track 'flucht v.2', der opener der compilation,
wird auch zu hoeren sein.

gruss,
cy

p.s.
achja, die sendung heisst 'gothic- radio'
http://www.gothic-radio.de

-----------------------------------------------------------------------------



Re: cymotec airplay (Arath, 10. Dez 2000, 23:26:31):
~#! rn=Cymonk rt=976486940 rg=kultur
~#! tid=976486940
aeh, nur eine Frage...

den letzten Satz - kann man den auch auf Deutsch uebersetzen? Jedes zweite
Wort is englisch :)

scnr :)
Arath, englisch koennend aber was gegen solche Saetze habend :)

-----------------------------------------------------------------------------



Re: Tip des Tages (oder Nacht, wie man will) (Catweazle, 11. Dez 2000, 08:27:58):
~#! rn=Foobar rt=976412567 rg=kultur
~#! tid=976412567
Hut, alt.
http.//www.asciimation.co.nz

YTC

-----------------------------------------------------------------------------



Fussball ist auch Kultur (Montanus, 11. Dez 2000, 15:22:26):
------------------------------------------------------------
Kick It: Wozu brauchen Schwaben Fussball?
------------------------------------------------------------

Warum es bundesweit betrachtet durchaus gerecht zu nennen ist, wenn der VfB
Stuttgart mal wieder in die Zweite Liga verschwinden wuerde. 

 Von Katrin Weber-Kluever 

Landsmannschaftlich betrachtet hat die Bundesliga Luecken. Es gibt keinen
Holsteiner Verein, was schon deshalb tragisch ist, weil es niemals anders war
und niemals anders sein wird. Noerdlich von Hamburg gedeihen nur so
verschrobene Koerperertuechtigungen wie Handball. 

Es gibt auch keinen saechsischen Verein in der Bundesliga, aber in Sachsen
gibt es immerhin Fussballtradition und also auch Hoffnung. Gerade gibt es auch
keinen fraenkischen Verein. Aber das wird sich garantiert bald aendern, was
schoen fuer Nuernberger ist, weil sie ausser Fussball und
Lebkuchen nicht viel haben, woran sie sich freuen koennen. 

Im Ruhrgebiet gibt es gleich drei Bundesligavereine, was Sinn macht, weil es
hilft, den Malochermythos am Leben zu halten und man sich schliesslich ueber
irgendetwas ja definieren muss. Ein Verein in Berlin ist auch vernuenftig,
denn jede Hauptstadt sollte einen haben. Aber: Wozu brauchen Schwaben
Fussball? Sie haben eh alles im Ueberfluss und genug zu tun: Geld zaehlen,
dicke Autos fahren, Haeuser
bauen. Fussball und der VfB dienen da bestenfalls der Zerstreuung. 

 Feist und fett auf der Haupttribuene 

Natuerlich gibt es Schwaben, die Fussball sehr lieben, jene beispielsweise,
die am Sonnabend im Parkstadion bitterlich in ihre roten Schals geweint haben
wegen der Niederlage des VfB Stuttgart. Aber es gibt vor allem Schwaben, die
sich feist und fett auf der Haupttribuene niederlassen, nur um von dort ihre
eigene Mannschaft zu beleidigen. 

Dieses griesgraemige, gelangweilte Haupttribuenenkeifen beherrschen Schwaben
wie sonst nur Anhaenger von Bayer Uerdingen. Einstmals. Wie weit es mit dem
kleinen Club aus Krefeld dann gekommen ist, weiss man ja. 

Bei Uerdingen war die Angelegenheit allerdings immer ueberschaubar: Die
blieben schoen zu Hause und meckerten unter sich. Bei den Schwaben zu Hause
aber ist die Laune so runter, dass ihr Stadion immer halb leer ist. Kein
anderes Bundesligastadion ist auch nur annaehernd so schlecht ausgelastet. 

Keine Ironie, keine Zuneigung, keine Hoffnung 

Also fallen die Schwaben andernorts ein, um schlechte Laune zu verbreiten. Das
machen sie so gnadenlos, dass es einen am Sinn des Fussballs zweifeln laesst,
am Guten im Menschen sowieso. 

Schwaebische Fussballunterhaltung geht naemlich so: Drei Schwaben sitzen auf
der Haupttribuene, gerade ist die zweite Halbzeit angepfiffen und der
Ausgleich fuer den VfB gefallen. Da sind die Schwaben kurz baff und schweigen
beleidigt. Dann kommt der vierte Schwabe vom Wuerstchenholen
und fragt: "Was passiert?" Sagt einer: "Ausgleich geschossen." Fragt die
Bratwurst: "Wer?" Sagt ein anderer: "Ganea." Sagt die Bratwurst: "Der Blinde."

Das ist keine Spur ironisch, da steckt kein Hauch Zuneigung drin, von stillem
Glueck oder einem Funken
Hoffnung ganz zu schweigen. So sind Schwaben. Sie haetten sich einen Abstieg
wirklich verdient.

------------------------------------------------------------
(C) SPIEGEL ONLINE - 10. Dezember 2000, 16:57

Den Artikel erreichen Sie im Internet unter der URL
http://www.spiegel.de/sport/fussball/0,1518,107154,00.html



-----------------------------------------------------------------------------



Re: Re: cymotec airplay (Cymonk, 16. Dez 2000, 00:13:38):
~#! rn=Arath rt=976487191 rg=kultur
~#! tid=976486940
hiho,

was hast du gegen den satz 'achja, die heisst 'gothic-radio'' ???

nun, genauso, wie im IT bereich gibt es im musikgeschaeft
'fachausdruecke', die sich aus dem englischen im deutschen
eingebuergert haben ... 

wobei ich dir mit einschraenkungen zustimme: ich sage auch
immer 'rechner' statt dieses neuomodischen wortes 'computer'! :)

TERMINAENDERUNG:
die sendung findet am mittwoch, dem 20.12.2000 um 20.00 statt!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

gruss,
cy

-----------------------------------------------------------------------------



Re^3: cymotec airplay (Arath, 16. Dez 2000, 17:38:47):
~#! rn=Cymonk rt=976922018 rg=kultur
~#! tid=976486940
Sorry, ich meinte den letzten Satz vor dem PS:
"mein track 'flucht v.2', der opener der compilation,
wird auch zu hoeren sein."

Also da schuettelts mich, sorry.
Koennte man doch auch locker
"Mein Stueck xyz, das erste (Eroeffnungsstueck, wie auch immer) dieser
Zusammenstellung/bla/Platte/wieauchimmer, wird auch zu hoeren sein."

Arath

PS: Ja ich weiss, dass die deutschen Uebersetzungen in vielen Faellen nicht
sehr geglueckt sind, und das mag auch hier teilweise zutreffen. Und ich weiss
auch, dass das Englische in Fachsparten wie dieser Musik, IT-Branche o.ae.
weit vertreten ist und seine Berechtigung hat. Aber es hat alles seine Grenzen
und es geht auch anders :)

-----------------------------------------------------------------------------



Re^4: cymotec airplay (Wurzel, 16. Dez 2000, 18:34:48):
~#! rn=Arath rt=976984727 rg=kultur
~#! tid=976486940
es ist schon immer so gewesen (und wird auch so bleiben), dass man
sprache auch als mittel der differenzierung benutzt. jede wissenschaft -
auch die, die ich eher als pseudowissenschaften bezeichnen wuerde - benutzt
diesen mechanismus, um ihresgleichen zu identifizieren und sich gegenueber
den nichtwissenden abzugrenzen. man kann so schoen unter sich bleiben.
das faengt an mit dem medizinerlatein, aber auch betriebswirte, philosophen
oder physiker bekommen das ganz gut hin. in der it-branche ist es eben
vor allem englisch angehaucht, bei den musikern war es mir jetzt neu (aber
nicht ueberraschend).

wer sowas mal in ebenfalls krasser form erleben will, muss nur mal als
unbedarfter auf einen mudstammtisch gehen. oder, da das vielen hier recht
schwer fallen duerfte, jemanden mitbringen und sich hinterher anhoeren,
dass da nur mord und totschlag ruebergekommen sind, der rest war bahnhof.

wurzel

-----------------------------------------------------------------------------



Re^4: cymotec airplay (Yendi, 20. Dez 2000, 17:15:15):
~#! rn=Arath rt=976984727 rg=kultur
~#! tid=976486940
Tja, mit Mediziner-Latein hoert sich das wenigstens beeindruckend an.
Ich sass mal in einer Kneipe und hoerte, dass sich der Mensch mit Gipsarm am
Nebentisch "die Ulna fraktiert" hat... *grins*

YTY


-----------------------------------------------------------------------------



Dragon Magazine (Yendi, 22. Dez 2000, 15:20:33):
Ich frage mich gerade, ob es das deutsche "Dragon"-Magazin von TSR noch gibt..
Wer weiss mehr?

YTY


-----------------------------------------------------------------------------



Re: Dragon Magazine (Panic, 22. Dez 2000, 16:02:55):
~#! rn=Yendi rt=977494833 rg=kultur
~#! tid=977494833
jo im Bonner Comic-Laden gibts das noch

-----------------------------------------------------------------------------



cd des monats (Gnome,  6. Jan 2001, 17:28:58):
moin!

und natuerlich haben wir auch im neuen jahrtausend (ja, ich hoer ja schon
auf :) eine cd des monats.
diesmal haben wir etwas fuer freunde des old-school-hip-hop:
de la soul is back!

artist/band: de la soul
name of album: art official intelligence: mosaic thump

kurzbeschreibung: fette beats, einfallsreiche zum teil bekannte melodien,
                  songs zum mitnicken... de la soul eben.

anspieltips: "oooh", "set the mood", "copa (cabanga)", "foolin'"

gnOme

-----------------------------------------------------------------------------



Gutes Buch gefaellig? (Ark, 17. Jan 2001, 19:50:58):
Auch nach dem dritten Mal noch gut:

"Der Meister des siebten Siegels" von Johannes K. Soyener und Wolfram zu
Mondfeld


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Gutes Buch gefaellig? (Vanion, 17. Jan 2001, 20:15:50):
~#! rn=Ark rt=979757458 rg=kultur
~#! tid=979757458
Kannst du mal ein wenig mehr zu dem Buch sagen? Z. b. was dir daran so
gefallen hat.

V*, erwartet jetzt sowas wie 'Alles' ;-)

-----------------------------------------------------------------------------



Re: Re: Gutes Buch gefaellig? (Atoz, 18. Jan 2001, 13:23:23):
~#! rn=Vanion rt=979758950 rg=kultur
~#! tid=979757458
Ist das nicht dieser dicke  Schinken ueber einen Geschuetzmeister?

Atoz - wuehlt mal in dem hohen Stapel mit Buechern, die er noch keine Zeit
hatte zu lesen...

-----------------------------------------------------------------------------



Re: Re: Gutes Buch gefaellig? (Ark, 18. Jan 2001, 21:11:49):
~#! rn=Vanion rt=979758950 rg=kultur
~#! tid=979757458
Also im Zusammenfassen von Geschichten war ich schon immer schlecht, aber die
Geschichte des Adam Dreyling war schon riesig interessant, auch die Sprache
hat mir sehr gut gefallen, die Charakter, wie sie dargestellt und entwickelt
werden, und natuerlich der Fortgang der Geschichte.
Ueber den Inhalt erzaehle ich nichts, aber sicher gibt es fuer die, die noch
zaudern, bei amazon ein paar Rezensionen. Was die natuerlich immer so
hergeben, das kann sich jeder selbst ausmalen ;^)
Fazit: losgehen und mir vertrauen *kicher*


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



artikel webradio (Thorak, 24. Jan 2001, 13:31:16):
hallo!

wer mal auf echt entspannende und gute musik lust hat, sollte mal in
http://www.radioparadise.com
reinhoeren. echt klasse!

btw, der neue realplayer fuer linux macht jetzt auch die html-elemente.
damit kann man wieder auf
http://www.netradio.com zuhoeren. die bieten musik nach stilrichtung.

viel spass!

thorak

-----------------------------------------------------------------------------



Re^9: Zwergenangriff (Yendi, 24. Jan 2001, 17:51:55):
~#! rn=Anatol rt=980354608 rg=d.polar
~#! tid=980092281
Robert Gernhard:

Gedichte find ich sowas von beschissen,
so eng, rigide, irgendwie nicht gut.
Es macht mich ehrlich richtig krank zu wissen,
dass wer Gedichte schreibt, dass wer den Mut
hat, heute noch so'n dumpfen Scheiss zu bauen.
Allein der Fakt, dass so ein Typ das tut,
kann mir in echt den ganzen Tag versauen.
Ich hab da eine Sperre, und die Wut
darueber, dass so'n abgefuckter Kacker
mich mittels seiner Wichserein blockiert
schafft in mir Aggressionen auf den Macker.
Ich tick nicht, was das Arschloch motiviert!
Ich tick's nicht und ich will's nicht wissen!

Ich find Gedichte unheimlich beschissen.


( Gedicht (c) Gernhard, Fehler (c) Yendi )



-----------------------------------------------------------------------------



Re^10: Zwergenangriff (Solmyr, 24. Jan 2001, 18:57:18):
~#! rn=Yendi rt=980355115 rg=kultur
~#! tid=980092281
So so, Kultur, ja? ;=) Klingt eher verdaechtig nach Gejammer...

Solmyr,rubrikuebergreifend fahndend

-----------------------------------------------------------------------------



Buchtip (Ark, 27. Jan 2001, 16:14:33):
Keine Belehrung ueber Rechtschreibung, sondern nur das folgende Buch:
"Die Moewe Jonathan" von Richard Bach.
Kann man bequem lesen, wenn der Flieger sich verspaetet. Nachdenken kann man
dann im Flugzeug ;^)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Buchtip (Linflas, 29. Jan 2001, 12:39:08):
~#! rn=Ark rt=980608473 rg=kultur
~#! tid=980608473
Gibts Uebrigens fuer garnicht so teuer in nem schoenen Hardcover mit huebschen
Fotos von Moewen beim Flug.
Ich kann das Buch auch _sehr_ empfehlen!

Linflas, mag Kuhe und Moewen.

-----------------------------------------------------------------------------



Re^3: Buchtip (Mingo, 29. Jan 2001, 15:19:00):
~#! rn=Grimmborn rt=980769711 rg=schmarrn
~#! tid=980608473
Apropos Phasen - die kindliche Phase lohnt durchaus nochmal. Ich
empfehle "Harry Potter", allerdings kann ich nur was ueber das
Original sagen und nichts ueber die deutsche Fassung. Dafuer, dass es
ein Kinderbuch ist, kann man erstaunlich oft zum Woerterbuch greifen
um etwas nachzuschlagen.
Gestaltet werden sollen ja sieben der Baende, aber ich muss ehrlich
sagen, dass selbst im dritten Band (den vierten gibt es noch nicht als
Paperback bzw. erst ab Juni) noch keine "hm, da muss jetzt wieder ein
Abenteurer bestanden werden"-Stimmung aufkommt. Im Gegensatz zu Hohlbein
ist nicht immer alles gaaaaanz anders, aber der Moerder ist auch nicht
immer der Gaertner.
Spannend erzaehlt - und wie ich gehoert habe auch fuer neu-alte Gilden-
vorstaende inspirierend :]

Mingo

-----------------------------------------------------------------------------



Re^4: Buchtip (Grimmborn, 29. Jan 2001, 15:23:04):
~#! rn=Mingo rt=980777940 rg=kultur
~#! tid=980608473
Nur kurz zu Harry Potter: Die ersten drei Baende sind erstmal Vorgeplaenkel,
ich hatte das Gefuehl "Aha, Hanni und Nanni auf zauberisch". Ganz gut, aber
nichts wirklich aufregendes, was den Hype rechtfertigen wuerde. Und dann habe
ich den vierten Band gelesen. Bis zu den ersten zwei Dritteln oder so habe ich
diese Meinung noch aufrecht erhalten. Und dann geht so dermassen die Post
ab...

Grimmborn der Atheist. Kinderbuchreihe? Nicht wirklich...

-----------------------------------------------------------------------------



Re^5: Buchtip (Vanion, 29. Jan 2001, 15:41:13):
~#! rn=Grimmborn rt=980778184 rg=kultur
~#! tid=980608473
Hmmm, eigentlich bin ich kein Main-Stream-Gegner. Ich hole mir auch mal die
CD, die grad beworben wird und nehme auch gern mal wieder einen
King/Williams/Prattchett/Folett in die Hand.

Aber bei Harry Potter hats die Presse echt geschafft. Auf diesem Buch wurde
dermassen rumgekaut, dass ich echt keine Lust habe, das Buch im Geschaeft auch
nur naeher anzusehen.

V*, glaubt, dass es noch genug andere lesenswerte Buecher in der Welt gibt.

PS: Nicht weil es als Kinderbuch gilt, ich hab auch den kleinen Hobbit gelesen
und (abgesehen von der manchmal sehr einfachen Sprache) gut gefunden, weil ich
wissen wollte, worauf Tolkien aufbaut.

-----------------------------------------------------------------------------



Re^6: Buchtip (Solmyr, 29. Jan 2001, 15:45:21):
~#! rn=Vanion rt=980779273 rg=kultur
~#! tid=980608473
Das ist das bewehrte Phaenomen, dass seit 'Independence Day'
aufgetreten ist. Das war auch so, dass ich, als die ersten Infos
darueber kamen, total hin und weg war. Schliesslich sah man nur 
diese riesen Scheiben und ein paar Effekte. Also denkt man sich,
wow ... was fuer ein geiler Film ;) Nunja, die Presse hat den dann
so zu Schrott geschnitten und ueberall angepriesen, dass ich darauf
keinen Bock mehr hatte.
Bei Harry Potter kommt noch dazu das die Autorin, das Buch auch
eher fuer Kiddies geschrieben hat, oder? Ich mein, jede zweite
Zehnjaehrige bei meiner Schwester in der Schule redet ueber
Harry Potter ...

Solmyr

-----------------------------------------------------------------------------



Re^6: Buchtip (Humni, 29. Jan 2001, 15:46:35):
~#! rn=Vanion rt=980779273 rg=kultur
~#! tid=980608473
Ich hab mich auch erst mehrfach belabern lassen bis ichs in die Hand genommen
habe. Ja, es ist vielleicht mainstreamig. Aber ich hab nicht eher geruht bis
ich alle 4 Baende durch habe. Und das Ende vom vierten Teil ist wirklich
gigantisch, wenngleich ich auch den Rest klasse fand.

Aber sicher hast Du Recht, lesenswert ist noch ne Menge mehr. Nur dieses Buch
tatsaechlich auch.

Meinung von Humni
PS: Buch->Buecher (zu faul zum editieren)

-----------------------------------------------------------------------------



Re^7: Buchtip (Humni, 29. Jan 2001, 15:52:53):
~#! rn=Solmyr rt=980779521 rg=kultur
~#! tid=980608473
Tja, wenn Du Dich so beeinflussen laesst, dass Du allem abschwoerst, was die
Presse anpreist oder zu oft erwaehnt, dann laesst du dich auch von der PResse
beeinflussen.

Humni. Hat Harry Potter gelesen und sich bei Independence Day koestlich
amuesiert.

-----------------------------------------------------------------------------



Re^8: Buchtip (Solmyr, 29. Jan 2001, 15:55:19):
~#! rn=Humni rt=980779973 rg=kultur
~#! tid=980608473
Tja, mich hat eher gestoert, dass mich alle darauf angesprochen
haben, ob ich den schon gesehen habe. Immer wieder: Nein ;) Ich
hab mir, waehrend der Film im Kino lief, das Buch durchgelesen
und das war nicht mal schlecht...

Solmyr

-----------------------------------------------------------------------------



Re^6: Buchtip (Catweazle, 29. Jan 2001, 15:55:31):
~#! rn=Vanion rt=980779273 rg=kultur
~#! tid=980608473
Ich empfehle Dir dringlichst in diesem Falle ueber Deinen Schatten zu
springen.

YTC

-----------------------------------------------------------------------------



Re^7: Buchtip (Vanion, 29. Jan 2001, 16:49:31):
~#! rn=Catweazle rt=980780131 rg=kultur
~#! tid=980608473
Der Schatten is derzeit recht lang. In meinem Regal stehen noch 4 Buecher, die
gelesen werden wollen, eins liegt auf dem Nachttisch und das Ausfuehren aller
Vormerkungen auf meiner Amazon-Bestellliste wuerde mich in den sicheren Ruin
treiben.

Danach? Mal sehen.
V*, fragt sich warum ein Tag nur 24 Stunden hat.

-----------------------------------------------------------------------------



Re^6: Buchtip (Thorak, 29. Jan 2001, 17:05:48):
~#! rn=Vanion rt=980779273 rg=kultur
~#! tid=980608473
das dachte ich auch zuerst. aber es lohnt sich auf jeden fall. vor allem der
vierte teil ist der... wie sagt man? der hammer :)

thorak

-----------------------------------------------------------------------------



Re^8: Buchtip (Wurzel, 29. Jan 2001, 20:44:19):
~#! rn=Vanion rt=980783371 rg=kultur
~#! tid=980608473
du gluecklicher. bei mir stehen noch ca. 80 buecher ungelesen herum, und es
werden staendig mehr... allerdings, harry potter habe ich vorgezogen in der
queue und es nicht bereut.
kinderbuch? ja, stimmt. das heisst in diesem fall allerdings nicht, dass es
albern oder oede waere wie die meisten kinderbuecher. hier bedeutet es nur,
dass auch kinder das lesen koennen. wobei man beim vierten band anfangen
koennte abstriche zu machen, aber die kinder der mrs. rowling sind ja auch
schon etwas aelter geworden...
meistens sehe ich das auch so, dass etwas, was so stark gepusht wird, eher
links liegen lasse. ein freund, der wesentlich kritischer ist als ich, hat
es mir allerdings empfohlen, und das hat mich neugierig gemacht.
nebenbei bemerkt, vor kurzem habe ich irgendwo gelesen, dass die auflage
der harry potter buecher weltweit nur noch von der bibel uebertroffen
wird. ob das stimmt, ist mir nicht klar. wenn es allerdings so waere, 
liesse sich das nicht allein auf perfektes marketing zurueckfuehren.

wurzel

-----------------------------------------------------------------------------



Re^9: Buchtip (Mingo, 30. Jan 2001, 00:05:35):
~#! rn=Wurzel rt=980797459 rg=kultur
~#! tid=980608473
Entweder macht mir hier nicht weiter den Mund auf Band vier waessrig (ich hab
so schon genug Hints aus der Presse gehabt) oder leiht mir den englischen
Hardcover :)

Mingo

PS: Meine Schwester hatte das richtige Gespuer fuers Weihnachtsgeschenk.
    (Wenn schon alle erzaehlen, wie sie eine Entschuldigung gefunden haben)

-----------------------------------------------------------------------------



Re^10: Buchtip (Zarniya, 30. Jan 2001, 09:46:30):
~#! rn=Mingo rt=980809535 rg=kultur
~#! tid=980608473
Ich muss zugeben, dass ich die Potters noch nicht gelesen habe, weil es ja ein
laengere Serie sein soll (7+x Teile). Ich habe beim Rama-Zyclus von A.C.Clarke
fast 3 Jahre auf den letzten Teil warten muessen und das mit einem wirklich
ueblen Cliffhanger mitten in der Handlung... auch bei Potter 4 soll es ja mehr
oder weniger mitten in der Handlung aufhoeren... Ich lasse mich gerne
unstimmen, wenn da die Geruechte falsch sind, aber ansonsten warte ich
einfach, bis die Serie komplett ist. 

Und weil es Spass macht, sich selbst zu widersprechen will ich hier noch
nebenbei von Diana Gabaldon die Highland Saga empfehlen, die auch noch nicht
abgeschlossen ist, die ich aber derzeit ziemlich verschlinge. 

Gruss, 

Marc

-----------------------------------------------------------------------------



Re^11: Buchtip (Alboin, 30. Jan 2001, 11:38:54):
~#! rn=Zarniya rt=980844390 rg=kultur
~#! tid=980608473
7+x Teile? Naja, ich weiss schon worauf Du anspielen willst, dass sich die
Autorin nach den sieben beabsichtigten Teilen noch zu mehreren hinreissen
laesst. Aber ich denke mal sie tut es nicht, sie sagte auch, dass es sowas wie
Harry Potter in der Midlife-Crisis mit ihr nicht geben wird.
Das HP 4 mitten in der Handlung abbricht, kann man so nicht sagen. Zum einen
endet HP 4 wie jeder Teil, das naemlich die Schulferien beginnen. Zum anderen
ist bei HP 4 etwas wesentliches passiert, wo man weiss das es auch die
weiteren Teile betreffen wird.

Al

-----------------------------------------------------------------------------



Re^5: Buchtip (Alboin, 30. Jan 2001, 11:55:00):
~#! rn=Grimmborn rt=980778184 rg=kultur
~#! tid=980608473
Dass die ersten drei Baende Vorgeplaenkel sind halte ich fuer einseitig. Zwar
sind sie vielleicht eine Einstimmung auf den grossen Einbruch in Band 4 aber
dennoch haben sie alle schon eine Handlung und nicht nur das sondern sie
bieten auch schon einiges an Weisheit.
Mein lieblingsteil ist uebrigens der Zweite, weil dort fast in metaphysischer
Weise zum Ausdruck kommt wie das Boese wirkt und worin das Gute besteht.
Ueberhaupt habe wie auch beim Herrn der Ringe, den Eindruck das bei Harry
Potter von einer Welt  die Rede ist die vielleicht realer ist als man denkt.
Was mich uebrigens bisher am meisten erstaunt am 4 Band, das die Spannung aus
Band 3 noch getoptt weppt werden wuerde.

Al

-----------------------------------------------------------------------------



Re^6: Buchtip (Alboin, 30. Jan 2001, 11:58:22):
~#! rn=Vanion rt=980779273 rg=kultur
~#! tid=980608473
Bei mir wars umgekehrt: ich bin eher Mainstream-Gegner, aber HP ist wirklich
gut. Zudem fing ich mit HP an zu lesen als es die HP-Manie in Deutschland noch
gar nicht gab. Ich wollte einfach mein Englisch verbessern und da schien mir
das naechste englischsprachige Kinderbuch in der Buchhandlung am besten
geeignet. Nagut ein wenig hatte ich schon aus England darueber erfahren, aber
wirklich nur gaaanz wenig;-)

Al

-----------------------------------------------------------------------------



und nochmal webradio (Thorak,  1. Feb 2001, 20:26:47):
hallo!

und gleich nochmal nen link zu nem ganz guten netzsender:
http://www.dunklewelle.de
ist bestimmt nicht jedermanns geschmack, aber es ist ja auch nicht jeder
im britney fanclub *zwinker johnnyboss* :)

thorak

-----------------------------------------------------------------------------



Re: und nochmal webradio (Cymonk,  1. Feb 2001, 23:25:07):
~#! rn=Thorak rt=981055607 rg=kultur
~#! tid=981055607
webradio?

dann lieber:

http://www.cyberage.cx

cy

-----------------------------------------------------------------------------



Re^7: Buchtip (Sarah,  6. Feb 2001, 16:58:40):
~#! rn=Alboin rt=980852302 rg=kultur
~#! tid=980608473
Kennt eigentlich irgendjemand "The Books of Magic"? Das ist ein Comic der
lange vor Harry Potter da war...und die Hauptperson, Timothy Hunter, sieht
H.P. verdammt aehnlich.


Sarah - hoffent das der erste MPA Artikel auch so ankommt, wie er soll

-----------------------------------------------------------------------------



Re^8: Buchtip (Wurzel,  6. Feb 2001, 23:26:51):
~#! rn=Sarah rt=981475120 rg=kultur
~#! tid=980608473
kenn ich nicht. aber harry potter sieht in jedem land anders aus, von
daher kann das zufall sein.

wurzel

-----------------------------------------------------------------------------



Re^9: Buchtip (Humni,  7. Feb 2001, 01:11:25):
~#! rn=Wurzel rt=981498411 rg=kultur
~#! tid=980608473
Persoenliche Meinung dazu: Voellig egal wie er aussieht. Bisher hat sich noch
niemand, den ich kenne, und der die Buecher gelesen hat, beschwert. Lest die
Buecher und habt Spass.

Meinung von Humni

-----------------------------------------------------------------------------



Re^10: Buchtip (Zephyr,  7. Feb 2001, 20:05:57):
~#! rn=Humni rt=981504685 rg=kultur
~#! tid=980608473

Im Zusammenhang damit ist vielleicht noch die Klage interessant, die
in den USA gegen Rowling laeuft. N.K.Stouffer hat bereits 1984 ein
Buch mit dem Titel "The Legend of Rah and the Muggles" geschrieben, 
deren Held Larry Potter heisst. Aktuelles gibbs bei www.realmuggles.com
C4

PS: Mir gefallen die HP-Buecher, ich fands nur/trotzdem interessant

-----------------------------------------------------------------------------



geklaut aber gut (Montanus,  8. Feb 2001, 17:56:49):

Imagine if you will... the leader of the fifth invader force speaking to
the commander in chief...

"They're made out of meat."
"Meat?"
"Meat. They're made out of meat."
"Meat?"
"There's no doubt about it. We picked several from different parts of
the planet, took them aboard our recon vessels, probed them all the way
through. They're completely meat."
"That's impossible. What about the radio signals? The messages to the
stars."
"They use the radio waves to talk, but the signals don't come from them.
The signals come from machines."
"So who made the machines? That's who we want to contact."
"They made the machines. That's what I'm trying to tell you. Meat made
the machines."
"That's ridiculous. How can meat make a machine? You're asking me to
believe in sentient meat."
"I'm not asking you, I'm telling you. These creatures are the only
sentient race in the sector and they're made out of meat."
"Maybe they're like the Orfolei. You know, a carbon-based intelligence
that goes through a meat stage."
"Nope. They're born meat and they die meat. We studied them for several
of their life spans, which didn't take too long. Do you have any idea
the life span of meat?"
"Spare me. Okay, maybe they're only part meat. You know, like the
Weddilei.  A meat head with an electron plasma brain inside."
"Nope. We thought of that, since they do have meat heads like the
Weddilei.  But I told you, we probed them. They're meat all the way
through."
"No brain?"
"Oh, there is a brain all right. It's just that the brain is made out of
meat!"
"So... what does the thinking?"
"You're not understanding, are you? The brain does the thinking. The
meat."
"Thinking meat! You're asking me to believe in thinking meat!"
"Yes, thinking meat! Conscious meat! Loving meat. Dreaming meat. The
meat is the whole deal! Are you getting the picture?"
"Omigod. You're serious then. They're made out of meat."
"Finally, Yes. They are indeed made out meat. And they've been trying to
get in touch with us for almost a hundred of their years."
"So what does the meat have in mind?"
"First it wants to talk to us. Then I imagine it wants to explore the
universe, contact other sentients, swap ideas and information. The
usual."
"We're supposed to talk to meat?"
"That's the idea. That's the message they're sending out by radio.
'Hello. Anyone out there? Anyone home?' That sort of thing."
"They actually do talk, then. They use words, ideas, concepts?"
"Oh, yes. Except they do it with meat."
"I thought you just told me they used radio."
"They do, but what do you think is on the radio? Meat sounds. You know
how  when you slap or flap meat it makes a noise? They talk by flapping
their meat at each other. They can even sing by squirting air through
their meat."
"Omigod. Singing meat. This is altogether too much. So what do you
advise?"
"Officially or unofficially?"
"Both."
"Officially, we are required to contact, welcome, and log in any and all
sentient races or multibeings in the quadrant, without prejudice, fear,
or favor. Unofficially, I advise that we erase the records and forget
the whole thing."
"I was hoping you would say that."
"It seems harsh, but there is a limit. Do we really want to make contact
with meat?"
"I agree one hundred percent. What's there to say?" `Hello, meat. How's
it going?' But will this work? How many planets are we dealing with
here?"
"Just one. They can travel to other planets in special meat containers,
but they can't live on them. And being meat, they only travel through C
space. Which limits them to the speed of light and makes the possibility
of their ever making contact pretty slim. Infinitesimal, in fact."
"So we just pretend there's no one home in the universe."
"That's it."
"Cruel. But you said it yourself, who wants to meet meat? And the ones
who have been aboard our vessels, the ones you have probed? You're sure
they won't remember?"
"They'll be considered crackpots if they do. We went into their heads
and smoothed out their meat so that we're just a dream to them."
"A dream to meat! How strangely appropriate, that we should be meat's
dream."
"And we can mark this sector unoccupied."
"Good. Agreed, officially and unofficially. Case closed. Any others?
Anyone interesting on that side of the galaxy?"
"Yes, a rather shy but sweet hydrogen core cluster intelligence in a
class nine star in G445 zone. Was in contact two galactic rotations ago,
wants to be friendly again."
"They always come around."
"And why not? Imagine how unbearably, how unutterably cold the universe
would be if one were all alone."


-----------------------------------------------------------------------------



CD des Monats (Linflas, 13. Feb 2001, 10:41:00):
Linflas' kleiner CD-Tip fuer Februar:

Fun Lovin Criminals - Loco

Smoother Rock aus New York - Funk, Country und Sprechgesang und ein Beat, der
gerne ins Tanzbein geht (und dabei Handmade :)

Viel Spass!

Linflas, sucht Kuhe.

-----------------------------------------------------------------------------



DER CD-Tip des Monats (Gnome, 13. Feb 2001, 23:52:19):
ich habe einiges ueberlegt und auch viel angehoert... und schliesslich
bin ich zu folgendem ergebnis gekommen:
der kelch geht diesen monat an...

artist/group: papa roach
name of album: infest

kurzbeschreibung: rock & gitarre gemischt mit hiphop-beats und netten
                  melodien. haengen irgendwo zwischen metallica und
                  limp bizkit.

anspieltips: "infest", "last resort", "between angels and insects"

gnOme

-----------------------------------------------------------------------------



Re: DER CD-Tip des Monats (Solmyr, 14. Feb 2001, 01:35:39):
~#! rn=Gnome rt=982104739 rg=kultur
~#! tid=982104739
Das waere aber leider der CD Tip vom Dezember gewesen :) Aber danke,
Du hast recht, Papa Roach sind ganz nett.

Solmyr

-----------------------------------------------------------------------------



Re: Re: DER CD-Tip des Monats (Montanus, 14. Feb 2001, 01:36:31):
~#! rn=Solmyr rt=982110939 rg=kultur
~#! tid=982104739
Inzwischen ist der Kuechenschabenvater doch auf allen Kanaelen hoch und runter
gedudelt worden, und jeder zweitklassige Karaoke-Mosher hat sich schon daran
versucht. Also ich kann das Zeug echt nicht mehr hoeren.

-----------------------------------------------------------------------------



Re^3: DER CD-Tip des Monats (Solmyr, 14. Feb 2001, 01:39:27):
~#! rn=Montanus rt=982110991 rg=kultur
~#! tid=982104739
Fuer alle die so was und mehr hoeren, ein paar kleine Tips. :) Sucht
mal nach 'Boy sets Fire', 'Incubus', 'Ignite', 'Get Up Kids', 'Avail',
Jimmy Eat World oder auch 'Heaven Shall Burn'. Da ist alles bei von
Emo bis Hardcore, ueber Punk und Rock.

Solmyr, Musikliebmoscher

-----------------------------------------------------------------------------



Re^4: DER CD-Tip des Monats (Cymonk, 14. Feb 2001, 01:42:57):
~#! rn=Solmyr rt=982111167 rg=kultur
~#! tid=982104739

und wer gute elektronische musik hoeren will und nicht auf dieses
hitparaden gehumpse steht, sollte 'mal

flesh field, 'redemption EP', trisol 2000

antesten.

cy

-----------------------------------------------------------------------------



Huppsa! (Linflas, 20. Feb 2001, 00:26:24):
Na da taucht ja ploetzlich wieder was neues, bemerkenswertes an mein Ohr:

BS2000 mit dem Album: simply mortified

Nun wollt ihr sicher wissen wieso das Ding bemerkenswert ist?
Kann ich selbst nicht genau beantworten, hoert einfach mal rein. Napster hats
;)

Linflas, fragt sich was sein Kuh davon haelt.

-----------------------------------------------------------------------------



Re: Huppsa! (Wurzel, 20. Feb 2001, 18:15:47):
~#! rn=Linflas rt=982625184 rg=kultur
~#! tid=982625184
bs2000? dachte das gaeb es nur noch im museum... und mit musik hat das nun
wahrlich nichts zu tun gehabt :) falls man nicht das gurgeln der
wasserkuehlung
als solche bezeichnen will...

wurzel

-----------------------------------------------------------------------------



ALL YOUR BASE! (Montanus, 25. Feb 2001, 23:07:51):
http://www.people.fas.harvard.edu/~pyang/base/allyourbase.swf

Anschauen und geniessen.

-Montanus.

-----------------------------------------------------------------------------



Lord of the Rings (Solmyr,  3. Mar 2001, 03:10:37):
Viele kennen es wahrscheinlich schon, aber warum soll man nicht auch
noch den Rest darueber aufklaeren. Auf www.tolkiens-welt.de gibt es um-
fassende Informationen ueber den Film, unter anderem auch viele Bilder
von den Sets in Neuseeland.

Solmyr wuenscht viel Spass dabei

-----------------------------------------------------------------------------



Computer-Haikus (Montanus,  6. Mar 2001, 02:23:56):
> If you have ever had any difficulty with your computer, you probably will
> enjoy this. In Japan, they have replaced the impersonal and unhelpful
> Microsoft error messages with their own Japanese haiku poetry, each only 17
> syllables; 5 syllables in the first line, 7 in the second, five in the
> third.
> ------------------------
> 
> Your file was so big.
> It might be very useful.
> But now it is gone.
> 
> ------------------------
> 
> The Web site you seek
> Can not be located but
> Countless more exist.
> 
> ------------------------
> 
> Chaos reigns within.
> Reflect, repent, and reboot.
> Order shall return.
> 
> ------------------------
> 
> ABORTED effort:
> Close all that you have worked on.
> You ask far too much.
> 
> ------------------------
> 
> Windows NT crashed.
> I am the Blue Screen of Death.
> No one hears your screams.
> 
> ------------------------
> 
> Yesterday it worked.
> Today it is not working.
> Windows is like that.
> 
> ------------------------
> 
> First snow, then silence.
> This thousand-dollar screen dies
> So beautifully.
> 
> ------------------------
> 
> With searching comes loss
> And the presence of absence:
> "My Novel" not found.
> 
> ------------------------
> 
> The Tao that is seen
> Is not the true Tao-until
> You bring fresh toner.
> 
> ------------------------
> 
> Stay the patient course.
> Of little worth is your ire.
> The network is down.
> 
> ------------------------
> 
> A crash reduces
> Your expensive computer
> To a simple stone.
> 
> ------------------------
> 
> Three things are certain:
> Death, taxes, and lost data.
> Guess which has occurred.
> 
> ------------------------
> 
> You step in the stream,
> But the water has moved on.
> This page is not here.
> 
> ------------------------
> 
> Out of memory.
> We wish to hold the whole sky,
> But we never will.
> 
> ------------------------
> 
> Having been erased,
> The document you're seeking
> Must now be retyped.
> 
> ------------------------
> 
> Serious error.
> All shortcuts have disappeared.
> Screen. Mind. Both are blank..

-----------------------------------------------------------------------------



CD des Monats Mai 2001 (Zarniya,  6. Mar 2001, 11:32:36):
Hi, 

nur fuer die, die Kult moegen, der nie untergehen wird: Die neue CD von
Depeche Mode "Exciter" ist der reine Wahnsinn... ihr werdet es lieben... 

Achja... wer nicht warten kann, der Napstert sich halt einen...

Marc

-----------------------------------------------------------------------------



Gaelisch (Zarniya,  8. Mar 2001, 09:26:34):

HI, 

ich bin auch der Suche nach einer Moeglichkeit, mir Gaelisch ein wenig naeher
zu bringen... hat da einer nen Tip? Dann bitte per Mail an mich (zarniya). Da
ich gelesen habe, dass es sehr unterschiedliche Interpretationen in der
Aussprache gibt, waere es gut, wenn einer was ueber einen Sprachkurs wuesste,
denn es auch auf CD oder Tape gibt.... 

Kleines Beispiel:

"Fuer das aspirierte D, Dh, und das aspirierte G, Gh gibt es im Deutschen
keine entsprechenden Laut. Versuchen Sie, ein gurgelndes Baby nachzuahmen. Ein
anderer Muttersprachler beschreibt mir diesen Laut wie 'das Geraeusch, das
jemand von sich gibt, der gerade barfuss auf eine fette Nacktschnecke getreten
ist'"

(aus "Der magische Steinkreis" von Diana Gabaldon)

Dieser Ausschnitt macht mir klar, dass man eigentlich nur eine Chance hat,
wenn man Soundbeispiele dabei hat.... Sollte uebrigens noch jemand hier andere
nette Beschreibungen fuer aspirierte Ds und Gs haben, dann auch einfach mal
melden...

Marc

-----------------------------------------------------------------------------



CD des monats MAERZ (Gnome, 10. Mar 2001, 23:57:22):
jetzt koennen meine plagiate nicht mal die monatsnamen in richtiger
reihenfolge... ts ts.

anyway, die folgende CD ist zwar schon bissel aelter, aber ich muss sie
hier einfach mal vorstellen, weil sie mittlerweile schon fast kult ist.
und das ein halbes jahr nach ihrem erscheinen.

group/artist: "deftones"
name of album: "white pony"

kurzbeschreibung: knallhart und weich zugleich, einpraegsame rhythmen. und
                  chino morenos hypnotisch-monotone stimme ist einfach
                  genial (besonders in "change").

anspieltips: "digital bath", "knife party", "change (in the house of flies)"

gnOme

-----------------------------------------------------------------------------



Re: CD des monats MAERZ (Solmyr, 11. Mar 2001, 09:07:15):
~#! rn=Gnome rt=984265042 rg=kultur
~#! tid=984265042
Hiermiet verweise ich noch auf die beiden Vorgaenger 'Adrenalien' und
'Around the Fur', die sind noch ein Tick besser, aber auch etwas haerter,
was nicht jedem in den Kram passen tut.

Sol*, fuer Rechtschreibung und Ausdruck wird keine Haftung uebernommen,
da ich grad von Arbeit komme :)

-----------------------------------------------------------------------------



Re: Gaelisch (Apsu, 11. Mar 2001, 13:49:03):
~#! rn=Zarniya rt=984039994 rg=kultur
~#! tid=984039994
Oh je, da mutest Du Dir aber einiges zu.

Apsu, frustrierter Ex-gaelisch-lernender

-----------------------------------------------------------------------------



Meine CD des Monats (Ark, 12. Mar 2001, 21:28:34):
Vielleicht auch nur, weil sie mir jetzt erst ueber den Weg gelaufen ist:

No Angel, von Dido.

Anspieltips? CD anhoeren.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Meine CD des Monats (Noki, 13. Mar 2001, 01:19:46):
~#! rn=Ark rt=984428914 rg=kultur
~#! tid=984428914

Ich darf auch mal... ;)

Was immer man ueber elektronische Tanzflurmusik auch an Kommentaren verlieren
mag, und wie total "in" es auch unter DJ-Nerds sein mag, den beiden
Franzmannen Kommerzialitaet vorzuwerfen - diese Scheibe ist der legitime und
G_R_O_S_S_E Nachfolger von "Homework":

 ****Discovery**** von Daft - natuerlich- Punk

Eine Offenbarung : Track 10 "Voyager" (am besten im Strandkorb mit der/dem
Lieblingself(e) im Arm hoeren)

noki, ganz versuselt und verzueckt

-----------------------------------------------------------------------------



Anatol? Bist Du das wirklich? ]:-> (Ahab, 16. Mar 2001, 17:26:40):
gefunden in der WAZ Bochum vom 16.3.2001:

-------------------------------------------------------
Anatols Spuren
- Beuys-Schueler arbeitet im Museum -

Mit dem Einbaum fuhr Anatol seinen Meister Joseph Beuys ueber den Rhein, eine
symbolische Heimholung, nachdem Landesminister Rau den Duesseldorfer
Akademieprofessor geschasst hatte.
  Von der historischen Ueberfahrt erzaehlt Anatol auch heute noch gern und
ausfuehrlich. Dieser Elevendienst fuer den grossen Schamanen sollte den Blick
auf das aktuelle Werk von Anatol nicht verstellen. Unter dem Titel "Spuren
suchen - legen - lesen Anatol" wird eine Ausstellung des Kuenstlers am morgi-
gen Samstag, 17 Uhr, im Museum Bochum eroeffnet.
  Waehrend der Ausstellung, die bis zum 6. Mai zu sehen ist, will Anatol
jeweils dienstags, mittwochs und donnerstags im Museum arbeiten.
-------------------------------------------------------

Ahab, erstaunt ueber Anatols unbekanntes Talent und vor allem
      neugierig auf die Geschichte von der 'historischen Ueberfahrt'.
      . o O (Plaudertasche...) *g*

-----------------------------------------------------------------------------



Buch-tip(p) (Gorog, 25. Mar 2001, 20:58:18):
Moins
Hier das Buch des Monats, zumindest meiner Meinung nach. Denn endlich ist der
vierte und somit letzte Teil der Otherlandreihe erschienen (allerdings bisher
nicht uebersetzt aber das interessiert wahrscheinlich eh keinen). 
Wer die ersten drei Teile nicht gelesen hat sei gesagt, es handelt sich um
eine sehr gelungene Mischung aus Science Fiction und Fantasy. Der Autor (Tad
Williams) erzaehlt auch hier (genau wie im Drachenbeinthron) von glaubhaften
Charakteren die man durch eine fesselnde Story verfolgt. Einfach prima und
besser als der Drachenbeinthron, auch eine sehr gute Geschichte (so ganz
nebenbei).
Das Buch hat uebrigens den Titel "Sea of Silver Light" und zumindest der
Anfang (allzuweit bin ich noch nicht) knuepft nahtlos an die Spannung des
Vorgaengers "Mountain of Black Glass" an.

So genug der Lobhudelei. Viel Spass beim Lesen.
Gorog heute mal mehrzeilig.

-----------------------------------------------------------------------------



Noch ein Buch-Tipp (Yendi, 27. Mar 2001, 12:32:43):
Guy Gabriel Kay wird mit jedem Buch besser.
Zuerst dachte ich, "The Lions of Al-Rassan" waere nicht mehr zu toppen
(spielt in einem Pseudo-Spanien zur Zeit der Reconquista, nur ganz leichter
 Fantasy-Einschlag),
aber die neue Duologie von ihm ist wirklich _richtig_ toll...
Also:
"Sailing to Sarantium", gefolgt von
"The Lord of Emperors" spielt in einer Art Byzanz zur Zeit Justinians, kurz
vor dem Aufkommen des Islams. Faszinierende Charaktere, spannender Plot,
ausgezeichnete geschichtliche Basis (aber Vorsicht: Eine Geschichtsstudentin
war geschockt, als er sich dann an einer Stelle mit Knalleffekt von dem
tatsaechlichen Ablauf der Geschichte loeste...) und generell jede Menge
Lesespass.
Das steckt jeden Medikus samt den Saeulen der Erde und Bruder Cadfael in die
Tasche und hat fast noch Platz fuer den Namen der Rose.
OK, letzteres vielleicht nicht.

Hach, tolles Buch...


-----------------------------------------------------------------------------



...und noch'n Buch. (Schleicher, 27. Mar 2001, 14:20:48):
Naja, ich schlag dann auch mal ein Buch vor, eines das ich persoenlich SO gut
finde das ich es dauernd an Freunde verschenke, nein Fantasie ist es nicht
aber  trotzdem witzig und gut! Frank Goosen - liegen lernen Ecihborn Verlag
ISBN 3-8218-0854-3. Es ist eine Beschreibung des Lebens eines Mannes der in
den 80ern pubertiert und von Beziehung zu Beziehung stolpert... hier ein
kleiner Auszug:
Im September 1998 stuerzte ein Mann fruehmorgens vornueber aus einer im
Souterrain gelegenen Kreuzberberger Kneipe in eine Pfuetze brackigen
Regenwassers und fuehlte sich nun bereit fuer einen abschliessenden Doener.
Sein Leben als verantwortungsloses, bindungsunfaehiges, triebhaftes Arschloch
war definitiv an einem Tiefpunkt angekommen.

Viel Spass bei Lesen oder auch nicht

Schleicher

-----------------------------------------------------------------------------



Kleiner CD-Tip (Linflas, 27. Mar 2001, 19:51:36):
Tach!

Mein kleiner CD-Tip fuer diesen Monat lautet:

Mirwais - Production

Extravanagnte Chice franzoesische Elektronische Musik, fuer Leute, denen Daft
Punk zu billig ist.
Mirwais hat auf Madonnas als Co-Produzent unter Beweis stellen koennen, was er
kann und Madonna hat sich auf "Production" mit dem Traumhaften "Paradise - but
not for me" bedankt. Musik, nicht von dieser Welt.
Zu hoeren in eigentlich _jeder_ Gelegenheit. Das meine ich ernsthaft so.

Linflas, zaehlt Kuhe aus.

-----------------------------------------------------------------------------



Re: Kleiner CD-Tip (Montanus, 27. Mar 2001, 21:12:37):
~#! rn=Linflas rt=985715496 rg=kultur
~#! tid=985715496

Ihr wollt nette Bands hoeren, bevor der Mainstream sie erfasst?
Probiert mal "New Found Glory" aus - bei amazon.com kann man in das Album
reinhoeren. Lied 4 (Hit or miss) wird auf 107.7 the end relativ haeufig
gespielt, und der Sender ist ja eigtnlich meistens ein barometer fuer nette
Musik. ;-)
Achja, Kategorie-Disclaimer: Fun-Punk. ;-)

-----------------------------------------------------------------------------



CD-Tip? (Anatol,  4. Apr 2001, 15:47:04):
Nein, eigentlich nicht, nuechtern betrachtet wird das neue Album von
"Subway to Sally" (S2S) nichts fuer den Normalhoerer sein. Aber fuer
Szene-Fans ist "Herzblut" ein 'Muss', die positive Entwicklung der Band
scheint noch weiter fortzuschreiten. 

Die Tourdaten (14.4. - 06.05.) sind unter www.subwaytosally.de zu finden.
Der Osnabruecker Hydepark ist am 26.4. dran, Karten im VVK 33.- DEM. :)

Anatol

-----------------------------------------------------------------------------



Noch ein CD-Tip (Grimmborn,  4. Apr 2001, 15:50:05):
~#! rn=Anatol rt=986392024 rg=kultur
~#! tid=986392024
Wer kennt sie nicht, die Blauen Mannen aus der Intel P3/4 Werbung? Nun, es
gibt sie wirklich, und sie machen mit PVC-Rohren, mit Glasfaserstaeben und
weiteren Dingen Musik, die ueberraschend gut und eben ein bischen anders ist.
Daher mein Tip:
Blue Man Group - Audio
Anhoertips: z.B. "Rods and Cones", "Drumbone"

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: CD-Tip? (Wurzel,  8. Apr 2001, 14:51:11):
~#! rn=Anatol rt=986392024 rg=kultur
~#! tid=986392024
ueber "positive entwicklung" kann man da trefflich streiten. fuer mich das
bisher schwaechste album von den jungs um frau schmidt. der trend geht klar
in richtung seichte kommerzialisierung.
etwas besser gefallen hat mir da rammsteins "mutter", aber fuer mich ist die
scheibe des monats etwas, worueber ich da beim stoebern gestolpert bin.
irgendwie hab ich da dreissig jahre drauf gewartet...
wecker/wader, ein livemitschnitt von einer tour, die die beiden alten maenner
der deutschen liedkunst im letzten jahr erstmals gemeinsam gemacht haben.
einziger schwachpunkt: nach 74 minuten ist die cd am ende angekommen.
mehr davon.

wurzel

-----------------------------------------------------------------------------



Re: Re: CD-Tip? (Cymonk,  8. Apr 2001, 21:24:54):
~#! rn=Wurzel rt=986734271 rg=kultur
~#! tid=986392024
hmmmja.... da kann ich wurzel nur zustimmen...
hab' mir das teil gestern 'mal zugelegt...
'nichts fuer den normalhoerer'?? ahem?
was mich an der scheibe stoert ist, dass ecken und kanten im arrangement
im vergleich zu den letzten outputs extrem abgeschliffen wurden...
selbst die stimme klingt subjektiv 'normaler'...
'entwicklung'? ja! aber eindeutig, wie wurzel schon sagte, richtung
mainstream... schade eigentlich ... ich bezweifle nicht, dass s2s
mit dem naechsten album die charts hitten werden (wenn nicht schon
mit dem aktuellen) ... ich werde es mir jedenfalls nicht mehr
ungehoert zulegen ...

wenn es interessiert, was ich mir sonst noch so zugelegt habe:
hocico, f/a/v, six feet under, snog, invincible spirit (fehlte mir noch als
cd), dead kennedys dvd

gruss,
cy

-----------------------------------------------------------------------------



Nostalgie -> C64er (Solmyr, 11. Apr 2001, 13:44:43):
Damit nicht nur die Leute im meist gehassten Thread des Muds hoeren :)
www.c64games.de ist eine wahre Fundgrube, von der ich bisher noch nichts
wusste :)

Sol*, mal fuer Quali garantierend

-----------------------------------------------------------------------------



Anti-Filmtip (Montanus, 15. Apr 2001, 18:49:03):
Ich hab mir gestern "Bridget Jones' Diary" angeschaut. Von vielen
Schreiberlingen in eine Kategorie mit "4 Hochzeiten ueT" gestellt, kann man
diesen Vergleich eigentlich nur daran aufrechterhalten, dass (a) Hugh Grant
mitspielt und (b) ein englischer Akzent vorherrscht.
Sonst war der Film einfach nur schlecht. Renee Zellweger sieht aus wie eine
etwas mollige Steffi Graf ohne Tennisschlaeger (okee, die Nase ist ein klein
wenig kleiner), und Hugh Grant ist einfach nur Hugh Grant. Dem Film fehlt es
eigentlich an allem: Spritzigkeit, Ueberraschungen und schauspielerischer
Leistung.
Alles ist vorhersagbar, und nur wer die verschiedenen Gesichtsausdfruecke
eines blonden Dummchens genauer studieren will, wird diesem Film etwas
abgewinnen koennen.

-----------------------------------------------------------------------------



Otherland die Zweite (Gorog, 16. Apr 2001, 20:30:56):
So bin nun durch. Und die grossen Erwartungen haben sich erfuellt. Also lesen,
bald oder zumindest irgendwann (;

Gorog denkt . o O ( Vielleicht haette wer dem Williams die Drogen wegnehmen
sollen)

.... MoreDread ....

-----------------------------------------------------------------------------



Weisheit des Tages (Foobar, 18. Apr 2001, 21:20:45):

"Jede mathematische Formel in einem Buch halbiert die Verkaufszahl dieses
Buches."

     Stephen Hawking

Quelle: http://www.metager.de, wurd beim Suchen eingeblendet ;o)

Foobar

-----------------------------------------------------------------------------



Re: Weisheit des Tages (Croft, 18. Apr 2001, 22:03:10):
~#! rn=Foobar rt=987621645 rg=kultur
~#! tid=987621645
Naja. Fast. Genaues Zitat:
"Man hat mir gesagt, dass jede Gleichung im Buch die Verkaufszahlen
halbiert.  Ich beschloss also, auf mathematische Formeln ganz zu
verzichten.  Schliesslich habe ich doch eine Ausnahme gemacht:  Es handelt
sich um die beruehmte Einsteinsche Formel E=mc^2.  Ich hoffe, dies wird
nicht die Haelfte meiner potentiellen Leser verschrecken."
Aus "Eine kurze Geschichte der Zeit"
Gruss Croft

-----------------------------------------------------------------------------



Re: Re: Weisheit des Tages (Anatol, 18. Apr 2001, 22:40:32):
~#! rn=Croft rt=987624190 rg=kultur
~#! tid=987621645
Das Repetitorium der hoeheren Mathematik, das hier herumsteht... ich bin
vermutlich der einzige, der es hier gekauft hat? 


-----------------------------------------------------------------------------



Re^3: Weisheit des Tages (Gnome, 18. Apr 2001, 22:42:56):
~#! rn=Anatol rt=987626432 rg=kultur
~#! tid=987621645
hmm, formelsammlungen duerfte es dann rein theoretisch gar nicht geben ;-)

gnOme

-----------------------------------------------------------------------------



Re^4: Weisheit des Tages (Grimman, 18. Apr 2001, 22:43:37):
~#! rn=Gnome rt=987626576 rg=kultur
~#! tid=987621645
Wer kauft die denn auch einfach als Lektuere?
Fachliteratur hat da wohl doch nen Sonderstatus :)

GrimMan

-----------------------------------------------------------------------------



Re^5: Weisheit des Tages (Householder, 18. Apr 2001, 22:45:07):
~#! rn=Grimman rt=987626617 rg=kultur
~#! tid=987621645
coool dann kann man aus jeder formelsammlung einen bestseller machen indem man
einfach alle formeln rauswirft 

-----------------------------------------------------------------------------



Re^6: Weisheit des Tages (Ronda, 18. Apr 2001, 22:58:43):
~#! rn=Householder rt=987626707 rg=kultur
~#! tid=987621645
Bloedsinn. Bestseller heisst, dass es haeufig verkauft wird. Aber wenn Du aus
einem ca 59 DM guenstigen Mathelexikon (saubillige Edition) nur mal eben 200
Formeln rauswirfst und auch nur ein Exemplar verkaufst, hast Du nie wieder
Sorgen. Ausser, Du musstest dazu andere Mathebuecher kaufen...
Ronda ** Ronda / Ronda

-----------------------------------------------------------------------------



Re^3: Weisheit des Tages (Daria, 19. Apr 2001, 13:33:54):
~#! rn=Anatol rt=987626432 rg=kultur
~#! tid=987621645
Ich habs auch!
Daria

-----------------------------------------------------------------------------



Re^4: Weisheit des Tages (Anatol, 19. Apr 2001, 13:55:59):
~#! rn=Daria rt=987680034 rg=kultur
~#! tid=987621645
Merziger/Wirth?

-----------------------------------------------------------------------------



CD-Dingsda... (Linflas, 22. Apr 2001, 04:47:01):
Ein kleines Sound-Schmankerl:

Peace Orchestra heisst die Platte, produziert von Peace Orchestra. 

Zwar von 1999, doch (leider) jetzt erst von mir entdeckt. Wer die Wiener
Kruder und Dorfmeister kennt und schaetzt, wird sich sehr schnell mit diese
Platte anfreunden koennen. Es handelt sich um das Solo-Projekt von Peter
Kruder, der sich mit wunderbare, zeitlupenartigen Klaengen und einem gemsich
aus Jazz und Klassik voellig uebertroffen hat. Ein Genuss, besonders wenn bei
"Shining" Chilli Bukasas Stimme einsetzt. Ausprobieren!

Uebrigens gibt es von Richard Dorfmeister auch ein Solo-Projekt in
Zusammenarbeit mit Rupert Huber genannt Tosca. Die beiden haben letztes Jahr
ihr zweites Album veroeffentlicht ("Suzuki"). Auch zu empfehlen.

Linflas, zieht einen rein und denkt an Kuhe.

-----------------------------------------------------------------------------



subway (Wurzel, 26. Apr 2001, 10:17:37):
das neue subway to sally-album "herzblut" ist zwar meiner meinung nach
deutlich schwaecher als die vorhergehenden, aber live kommen
die songs trotzdem gut...
das versoehnt wieder etwas. stimmung war (in frankfurt) absolut genial, die
musiker gut drauf und es war insgesamt eins der besten konzerte, die ich in
den letzten jahren gesehen habe.
wer gelegenheit dazu hat, sollte sich das nicht entgehen lassen.

wurzel

-----------------------------------------------------------------------------



Re: subway (Cymonk, 26. Apr 2001, 23:44:54):
~#! rn=Wurzel rt=988273057 rg=kultur
~#! tid=988273057

in dem zusammenhang faellt mir ein: noch jemand auf dem WGT in leipzsch?

gruss,
cy

p.s. 
nope, kein cymotec gig! die blamage hebe ich mir fuer's naexte jahr
auf, wenn's denn dann ueberhaupt jemand hoeren will ;))

-----------------------------------------------------------------------------



Re: subway (Anatol, 27. Apr 2001, 02:13:57):
~#! rn=Wurzel rt=988273057 rg=kultur
~#! tid=988273057
In Osnabrueck - also quasi gerade eben - waren sie auch grosse Klasse,
sie machen einfach gute Show, muss man ihnen lassen. Fuer die Zukunft
habe ich eigentlich nur einen wirklich grossen Wunsch, was diese Gruppe
angeht:

Bitte. Bitte. Bitte _einmal_ ein Konzert mit Subway to Sally auf dem
das geneigte Auditorium NICHT "Blut, Blut, Raeuber saufen Blut..." 
singt, bis die Band es endlich spielt... *seufz* Ich kann's nicht mehr
hoeren. ;)

Anatol


-----------------------------------------------------------------------------



Movie a minute (Vanion, 27. Apr 2001, 12:26:40):
Christian Wederhake wrote:

> Wollte man Dune (Nur das erste Buch) adequat verfilmen,
> waere das ein 12-Stunden-Epos mit einem mindest-Budget von 100 Mio US-$.

Ach was, man kann JEDEN Film auf 1 Minute kuerzen, Zweifler sehen sich
bitte:

http://rinkworks.com/movieaminute/

an. Kleines Beispiel?

The Empire Stikes back:

Luke: I have to go to Dagobah.
Yoda: You have to use the force.
Luke: I have to go to Cloud City.
Darth Vader: You have to go to the dark side.
Luke: No I don't.
Darth Vader: I'm your father.
Luke: No you're not.
Darth Vader: Fine, I'll cut off your hand.

THE END

--
aus de.alt.netdigest
V* meint, die erwaehnte Seite spart viele Stunden Kino

-----------------------------------------------------------------------------



OT (Cymonk, 28. Apr 2001, 02:21:34):

wer schon immer 'mal wissen wollte wie cymotec klingt,
aber nie bock hatte, sich bei mp3.com einen runter ...
ahem... zuladen, dem sei jetzt das winzige looser
flash auf http://www.cymotec.com ans herz gelegt!

gruss,
cy

p.s. 
achja, die hintergrundmusik ist die kaufhaus-mucke-seite
des projekts ;))

-----------------------------------------------------------------------------



Kamikazeflieger (Sublime, 28. Apr 2001, 08:20:08):
     Komm wir verbrennen uns die Finger
   rennen uns die Koepfe ein
     laufen blindlings gegen Mauern
   und in offne Messer rein
     Lieber bluten wir zusammen als ganz allein zu stehn
   Wer will nicht lieber aus Liebe
     als garnicht zu Grunde gehn
   Kamikazefliege moecht ich sein
     fuer Kamikazefliegen ist noch der Himmel zu klein
   und ich weiss Du laesst mich nicht allein
     darum sollst Du mein Kamikaze-Copilot sein.



     Ich sage nicht: Hab keine Angst
   Ich hab ein Seil, es kann uns garnichts passiern
     Ich sage nur: nimm meine Hand
   mir wird ganz flau und ich will's trotzdem probiern
     die duenne Luft wird so schoen heiss unter den Kleidern
   jedes Mal wenn man faellt
     und wer weiss, es kann ja sein, dass dieser Fallschirm
   uns auch diesmal noch haelt
     Kamikazefliege moecht ich sein
   fuer Kamikazefliegen ist noch der Himmel zu klein
     und ich weiss Du laesst mich nicht allein
   darum sollst Du mein Kamikaze-Copilot sein.

Sol*

-----------------------------------------------------------------------------



Anime-Nacht VOX, Fr. 18.5.01 ab 0:40 Uhr (Foobar, 29. Apr 2001, 20:53:00):
Armitage - Cybermatrix
Gun Smiths Cats: Neutral Zone
Hotel Bitch
Bubblegum Crisis: Mega Tokyo
Riding Bean

Quelle: TV Spielfilm, S. 263

Foobar

-----------------------------------------------------------------------------



Re: Anime-Nacht VOX, Fr. 18.5.01 ab 0:40 Uhr (Firehawk, 29. Apr 2001, 21:35:24):
~#! rn=Foobar rt=988570380 rg=kultur
~#! tid=988570380
Hmmm, ich dachte immer das Teil heisst Armitage Polymatrix :) Mal schaun,
eigentlich hab ich den meissten Kram eh schon auf Video ...

Firehawk

-----------------------------------------------------------------------------



Re: Anime-Nacht VOX, Fr. 18.5.01 ab 0:40 Uhr (Vanion, 29. Apr 2001, 23:29:47):
~#! rn=Foobar rt=988570380 rg=kultur
~#! tid=988570380
Btw: Vor kurzem ist eine nette Kollektion mit 26 Folgen von Neon Genesis
Evangelion auf 3 DVDs rausgebracht worden. Wens interessiert, kann ja mal bei
Amazon (oder wo auch immer) suchen. Fuer einen Kauf so mal zwischendurch mit
249,-DM reichlich teuer, aber vielleicht ja als Weihnachtsgeschenk (zumindest
hab ich das fuer mich so geplant).

Ansonsten kann man von der Manga-Front noch berichten, dass der Carlsen-Verlag
in dieser Richtung seit dem letzen Jahr recht aktiv ist. Neon (Bd 1-5, 6 im
Juni), X (Bd 1-5, 6+7 i.V.), Angel Sanctuary (Bd 1, seit April, weitere
zweimonatlich), Vampire Princess Miyu (ab Mai, dann zweimonatlich) und noch
einige andere sind in der deutschen Fassung rausgekommen. Mein Eindruck ist,
das Carlsen sich viel muehe gegeben hat, bei Layout und Uebersetzung, und
Aussagen von anderen Fans zufolge, sind die dt. Versionen oft besser und
schoener als die englischen.

So, das reich jetzt aber.

V* arbeitet nicht fuer Carlsen, is auch blos Fan.

-----------------------------------------------------------------------------



Re: Re: Anime-Nacht VOX, Fr. 18.5.01 ab 0:40 Uhr (Trug, 29. Apr 2001, 23:30:25):
~#! rn=Vanion rt=988579787 rg=kultur
~#! tid=988570380
Manga-Front? 

Herrscht da Krieg?

Trug, sich wundernd.

-----------------------------------------------------------------------------



Re: Re: Anime-Nacht VOX, Fr. 18.5.01 ab 0:40 Uhr (Hate, 30. Apr 2001, 14:39:03):
~#! rn=Vanion rt=988579787 rg=kultur
~#! tid=988570380
Weiss jemand wo ich Mangas auf Japanisch bekomme?

Hate.

-----------------------------------------------------------------------------



Re^3: Anime-Nacht VOX, Fr. 18.5.01 ab 0:40 Uhr (Asuka, 30. Apr 2001, 14:55:00):
~#! rn=Hate rt=988634343 rg=kultur
~#! tid=988570380
Originalausgaben sollte eigentlich jede japanische Buchhandlung
auftreiben koennen.
Erfahrungen hab ich bis jetzt nur mit dem OCS in Frankfurt gemacht

OCS (Overseas Courier Service)
Grosse Gallusstr. 1-7
60311 Frankfurt/Main
Tel.:  (069) 294047
Fax.:  (069) 281198

In Berlin gibts noch das Yamashina
Pestalozzistrasse 67
10627 Berlin
Tel/Fax: (030) 323 78 82

In Duesseldorf gibts auch ne eine japanische Buchhandlung, da hab
ich aber keine Adresse, ist aber im Mitsukoshi-Gebaeude zu finden.

Und als letzes waer da noch 
http://jpqueen.com/bookmart/bm2001/bmeng/default.asp?LANG=E
Die versenden gebrauchte Manga auch ins Ausland. Ich hab da
allerdings noch keine Erfahrung mit diesem Laden gemacht.

Asuka



-----------------------------------------------------------------------------



Was hoert Linflas im Monat Mai? (Linflas,  1. Mai 2001, 00:52:18):
Jaja, schon wieder Downbeats.

Jaffa mit der Platte Elevator.

Wieso? Nun, der Produzent David Kakon ist mit Jaffa sozusagen im Cafe del Mar,
schaut also sozusagen auf den Strand, loungt da, und hoert "Blue Lines" von
Massive Attack. 
So und kaum anders ist dieses Album zu hoeren: exzellenter, moderner Jazz.

Im Uebrigen bin ich da auch auf ein paar Sampler gestossen: Bassic Instinct
heisst die Reihe. Bewegt sich im aehnlichen Ambiente wie Jaffa, doch hoert man
eher Kruder & Dorfmeisters Zuege. Als Folge dieses Albums habe ich mir mal die
Scheibe "Come touch the sun" von Mo'Horizons angehoert und muss feststellen:
auch hoerenswert.

Also, viel Spass beim lauschen!

Linflas.

-----------------------------------------------------------------------------



Re^3703: Hach... nu is was drin, inner MPA. (Montanus,  1. Mai 2001, 23:06:21):
~#! on=Montanus ot=988674106 og=megaschmarrn
~#! rn=Isi rt=988636030 rg=megaschmarrn
~#! tid=982328278
Was issen hier los? 10 Stunden lang kein Posting? Da bekomme ich doch glatt
den Blues. Und fuer Anatol und alle anderen Pianokuenstler hier die 20 Regeln
zum Blues...

THE 20 RULES FOR THE BLUES

1 - Most Blues begin, "Woke up this morning..."

2 - "I got a good woman" is a bad way to begin the Blues, 'less you stick
something nasty in the next line like, "I got a good woman, with the meanest
face in town."

3 - The Blues is simple. After you get the first line right, repeat it. Then
find something that rhymes...sort of: "Got a good woman with the meanest face
in town. Yes, I got a good woman with the meanest face in town. Got teeth like
Margaret Thatcher, and she weigh 500 pounds."

4 - The Blues is not about choice. "You stuck in a ditch, you stuck in a ditch
and there ain't no way out".

5 - Blues cars: Chevys, Fords, Cadillacs and broken-down trucks. Blues don't
travel in Volvos, BMWs, or Sport Utility Vehicles. Most Blues transportation
is a Greyhound bus or a southbound train. Jet aircraft an' state-sponsored
motor pools ain't even in the running. Walkin' plays a major part in the blues
lifestyle. So does fixin' to die.

6 - Teenagers can't sing the Blues. They ain't fixin' to die yet. Adults sing
the Blues. In Blues, "adulthood" means being old enough to get the electric
chair if you shoot a man in Memphis.

7 - Blues can take place in New York City but not in Hawaii or any place in
Canada. Hard times in Minneapolis or Seattle is probably just clinical
depression. Chicago, St. Louis, and Kansas City are still the best places to
have the Blues. You cannot have the blues in any place that don't get rain.

8 - A man with male pattern baldness ain't the blues. But a woman with male
pattern baldness is. Breaking your leg cause you're skiing is not the blues.
But breaking your leg 'cause a alligator be chomping on it is.

9 - You can't have no Blues in a office or a shopping mall. The lighting is
wrong. Go outside to the parking lot or sit by the dumpster.

10 - Good places for the Blues:
 a) highway, b) jailhouse, c) empty bed, d) bottom of a whiskey glass
 Bad places:
 a) Dillard's, b) gallery openings, c) Ivy League institutions, d) golf
courses

11 - No one will believe it's the Blues if you wear a suit, 'less you happen
to be a old ethnic person, and you slept in it.

12 - Do you have the right to sing the Blues?
 Yes, if:
 a) you are older than dirt, 
 b) you are blind, 
 c) you shot a man in Memphis, 
 d) you can't be satisfied
 No, if:
 a) you have all your teeth,, 
 b) you were once blind but now can see 
 c) the man in Memphis lived
 d) you have a 401K or trust fund

13 - Blues is not a matter of color. It's a matter of bad luck. Tiger Woods
cannot sing the blues. Sonny Liston could. Ugly white people also got a leg up
on the blues.

14 - If you ask for water and your darlin' give you gasoline, it's the Blues.
 Other acceptable Blues beverages are:
 a) cheap wine, b) whiskey or bourbon, c) muddy water, d) nasty black coffee
 The following are NOT Blues beverages:
 a) Perrier, b) Chardonnay, c) Snapple, d) Slim Fast

15 - If death occurs in a cheap motel or a shotgun shack, it's a Blues death.
Stabbed in the back by a jealous lover is another Blues way to die. So is the
electric chair, substance abuse, and dying lonely on a broken down cot. You
can't have a Blues death if you die during a tennis match or getting
liposuction.

16 - Some Blues names for women:
 a) Sadie, b) Big Mama, c) Bessie, d) Fat River Dumpling

17 - Some Blues names for men:
 a) Joe, b) Willie, c) Little Willie, d) Big Willie

18 - Persons with names like Michelle, Amber, Debbie, and Heather can't sing
the Blues no matter how many men they shoot in Memphis.

19 - Make your own Blues name Starter Kit:
 a) name of physical infirmity (Blind, Cripple, Lame, etc.)
 b) first name (see above) plus name of fruit (Lemon, Lime, Kiwi, etc.)
 c) last name of President (Jefferson, Johnson, Fillmore, etc.)
 For example: Blind Lime Jefferson, Jakeleg Lemon Johnson or Cripple Kiwi
Fillmore, etc. (Well, maybe not Kiwi.")

20 - I don't care how tragic your life: if you own a computer, you cannot sing
the blues.


-----------------------------------------------------------------------------



Konzert (Mupfel, 15. Mai 2001, 20:00:46):
Am Donnerstag spielen die Inchtabokatables in Osnabrueck auf der Maiwoche  um
200:30 auf der Goldrush-Buehne Herrenteichswall, Naehe Harmannsbrunnen).
Wir werden da sein, ihr auch? ;)

-mupfel-

-----------------------------------------------------------------------------



Re: Konzert (Daria, 15. Mai 2001, 20:01:14):
~#! rn=Mupfel rt=989949646 rg=kultur
~#! tid=989949646
Nee, die kann man ja nichtaussprechen...
;-)
Daria

-----------------------------------------------------------------------------



Re: Konzert (Mupfel, 15. Mai 2001, 20:01:56):
~#! rn=Mupfel rt=989949646 rg=kultur
~#! tid=989949646
Aeh 20:30 ;)

-mupfel-

-----------------------------------------------------------------------------



Re: Re: Konzert (Grimmborn, 15. Mai 2001, 20:02:06):
~#! rn=Daria rt=989949674 rg=kultur
~#! tid=989949646
Von der Uhrzeit ganz zu schweigen. Ich meine, "Dreiviertel Elf" kann ich
mittlerweile uebersetzen, aber fuer 200:30 brauche ich den Taschenrechner...

GdA

-----------------------------------------------------------------------------



SMURF (Montanus, 15. Mai 2001, 20:20:58):

http://www.forgottenfords.org/allyoursmurf.swf

-----------------------------------------------------------------------------



Was hoert Linflas im Monat Juni? (Linflas,  3. Jun 2001, 21:52:52):
Es wird warm und Sommer, die Laune steigt und die Lust mal wieder ein
Wochenende damit zu verbringen durch die Clubs der geliebten Stadt zu ziehen.
Fehlt nur noch musikalische Motivator fuer einen schoenen Einstieg in den
Abend:

Fusion CD heisst die Platte der beiden Muenchener Roland Appel und Christian
Prommer alias "Fauna Flash".

Wer jetzt wieder ruhige, jazzige Rythmen erwartet wird von einer ganzen
Bandbreite verschiedenster Beats ueberrascht sein. Zwar laesst sich die Naehe
zu Peter Kruder aus Wien nicht leugnen - zusammen haben sie das Projekt
"Voom:Voom" gestartet - doch lebt "Fusion" von herzhaftem, huepfendem
Drum'n'Bass, staendig im Wandel, treibend. Von Kraft und Intelligenz
vergleichbar mit Ian Pooleys Out-of-this-World-Album "Since Then", beweisen
Fauna Flash das Drum'n'Bass kein Monopol der Englaender ist.

Absolut hoerenswert.

Linflas

-----------------------------------------------------------------------------



Buchtip (Vanion, 13. Jun 2001, 22:32:45):

Dave Duncan: Des Koenigs Klingen - Die vergoldete Klinge

Kategorie: Fantasy

Klappentext:
Als unerwuenschte, aufmuepfige Knaben fanden sie in der strengen Schule von
Eisenburg Zuflucht. Jahre spaeter verliessen sie den Ort als die besten
Schwertkaempfer des Reiches - als Klingen des Koenigs. Und die bedeutendste
Klinge von allen war Sir Durendal. Seine Mission: Die Jagd nach einem Schatz,
der jegliche Vorstellung uebersteigt.

Meine Meinung zu dem Buch:
Duncan hat den Bogen echt raus. Das Buch erzaehlt feinsinnig und einfuehlsam
die Lebensgeschichte des oben erwaehnten Sir Durendal, jedoch ohne dabei
kitschig oder albern zu werden. Das beste Stueck Fantasy, dass mir in letzer
Zeit untergekommen ist.

Mehr will ich dazu garnich sagen. Lest es, oder lasst es halt :)
V*, hofft auf Fortsetzungen.

-----------------------------------------------------------------------------



Buchempfehlung (Vanion, 14. Jun 2001, 22:23:21):
Was haltet ihr davon, ein paar eurer Lieblingsbuecher, bzw. kuerzlich
gelesene, hier vorzustellen. Ich suche dringend Lesestoff :)

V*, kulturell bemueht und ueberhaupt nicht eigennuetzig :)

-----------------------------------------------------------------------------



Re: Buchempfehlung (Grimmborn, 14. Jun 2001, 22:41:32):
~#! rn=Vanion rt=992550201 rg=kultur
~#! tid=992550201
White Teeth, von Zadie Smith.
Grossartige Geschichte ueber zwei (eher drei) Familien in London waehrend der
letzten 25 Jahre. Fesselnde Geschichte, manchmal vielleicht etwas verwirrend,
und ein furioses Finale. 

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Buchempfehlung (Sand, 15. Jun 2001, 01:09:00):
~#! rn=Vanion rt=992550201 rg=kultur
~#! tid=992550201
Also vor kurzem gelesen hab ich: "ExTension, the 20-Minute-a-Day, Yoga-Based
Program to Relax, Release & Rejuvenate the Average Stressed-Out
Over-35-Year-Old Body" von Sam Dworkis. War ganz interessant.
Sand

-----------------------------------------------------------------------------



Re: Re: Buchempfehlung (Foobar, 15. Jun 2001, 01:13:41):
~#! rn=Sand rt=992560140 rg=kultur
~#! tid=992550201
 Moin.

 In der Sparte Nicht-Fantasy halt ich die Krimis von James Ellroy fuer
besonders lesenswert.

 Besonders "Die schwarze Dahlie" sowie "Stadt der Engel" (bzw. nach der
Verfilmung als "L.A. Confidential" verlegt) sind zu empfehlen.

 Foobar

-----------------------------------------------------------------------------



Re^3: Buchempfehlung (Sand, 15. Jun 2001, 01:22:05):
~#! rn=Foobar rt=992560421 rg=kultur
~#! tid=992550201
Krimis: Ellroy kann ich auch empfehlen. Eventuell Andrew Vachss. Irgendwie
grausliche aber gute Geschichten. Oder was ganz was anderes: Wolf Haas (nur
nicht "Ausgebremst") ein oesterreichischer Autor. Vielleicht zuerst in so ein
Buch reinschauen, ich weiss nicht, ob ein deutscher Leser sowas gut findet.
Nicht-Fantasy: Da finde ich "sendmail" von Costales/Allman ganz lustig.

-----------------------------------------------------------------------------



Re^4: Buchempfehlung (Humni, 15. Jun 2001, 03:07:10):
~#! rn=Sand rt=992560925 rg=kultur
~#! tid=992550201
OK mal was aus der klassischen Fantasy-Ecke:

R.A. Salvatores Daemonendaemmerung-Serie. Ob der neueste Roman auch so gut ist
weiss ich noch nicht, das verrate ich, wenn ich ihn durch habe. Wer Drizzt mag
wird sich mit dem bisherigen Kram sicherlich anfreunden koennen. Und wer ihn
nicht kennt: Ich kenne niemanden, der Kampfbeschreibungen so lebensecht
produzieren kann.

Und das Magiesystem der Daemonendaemmerung-Serie ist einfach nett.

Humni

-----------------------------------------------------------------------------



Re^5: Buchempfehlung (Isi, 15. Jun 2001, 09:22:06):
~#! rn=Humni rt=992567230 rg=kultur
~#! tid=992550201
mhm also wenn das der ist wo ich aus versehen den zweiten Band 
gekauft hab - ich fand den so droege, dass ich mich richtig zwingen
musste das Buch zu Ende zu lesen, das passiert mir bei SF/Fantasy sonst
nie ;) 
Ansonsten kann ich Tad Williams empfehlen (Memory, sorrow an thorn
fuer eher fantasy und Otherland (bisher 3/4 baenden erschienen) 
fuer eher SF
Isi (buecherwerfend)

-----------------------------------------------------------------------------



Re^6: Buchempfehlung (Boing, 15. Jun 2001, 09:31:27):
~#! rn=Isi rt=992589726 rg=kultur
~#! tid=992550201
Muss Dich korrigieren: Von Otherland sind alle 4 Baender schon erschienen.
  Boing

-----------------------------------------------------------------------------



Re^7: Buchempfehlung (Isi, 15. Jun 2001, 09:33:35):
~#! rn=Boing rt=992590287 rg=kultur
~#! tid=992550201
oha, danke fuer die info :)
jetzt muss ich mich enscheiden ob ich das Teil als hardcover nehm
oder das warten kann bis es als taschenbuch rauskommt ;)
Hardcover nehmen soviel Platz weg... *regale anguck*
isi (umzugskartonswerfend)

-----------------------------------------------------------------------------



Re^8: Buchempfehlung (Grimmborn, 15. Jun 2001, 10:49:53):
~#! rn=Isi rt=992590415 rg=kultur
~#! tid=992550201
Als Taschenbuch seit vielen Jahren gibt es Solaris von Stanislaw Lem. Auch
wenn ich sonst wirklich kein SF-Fan bin: dieses Buch ist einfach grossartig.
Nicht zuletzt auch sprachlich. Wenn es je einen Literaturnobelpreis fuer einen
SF-Autor geben sollte ist Lem vermutlich der einzige ernstzunehmende Kandidat.

GdA

-----------------------------------------------------------------------------



Re^8: Buchempfehlung (Vanion, 15. Jun 2001, 14:42:50):
~#! rn=Isi rt=992590415 rg=kultur
~#! tid=992550201
Ja, Otherland steht auch auf meiner Todo(bzw Toread)-Liste. Leider gibt es die
Uebersetzung noch nich als Taschenbuch :( Und mein schlechtes Englisch wuerd
mir den Spass am Original verderben - Ich hab immernoch Williams 'Child of an
Ancient City' bei mir liegen. Und so richtig dick is das Buch eigentlich nicht
...

V*, meist zu geizig, 50,- fuer ein Hardcover auszugeben.

-----------------------------------------------------------------------------



Re: Re: Buchempfehlung (Schlips, 15. Jun 2001, 22:54:42):
~#! rn=Grimmborn rt=992551292 rg=kultur
~#! tid=992550201
Fae Myenne Ng: Bone
Sven Lager: Phosphor

-----------------------------------------------------------------------------



Re: Buchempfehlung (Liafar, 15. Jun 2001, 23:07:42):
~#! rn=Vanion rt=992550201 rg=kultur
~#! tid=992550201
Kuerzlich gelesen:

Robert Jordan: RDZ - Die Herrschaft der Seanchaner (Bd 25)
Christopher Zimmer: Die Steine der Wandlung
Paulo Coelho: Handbuch des Kriegers des Lichts
Neal Stephenson: Snowcrash

Liafar

-----------------------------------------------------------------------------



Re: Re: Buchempfehlung (Anatol, 15. Jun 2001, 23:54:07):
~#! rn=Liafar rt=992639262 rg=kultur
~#! tid=992550201
Das "Rad der Zeit" empfiehlt sich uebrigens auch auf Englisch, nicht nur
aus Kostengruenden - ist aber fuer Neueinsteiger nicht zu empfehlen. Die
Wheel-of-Time-Fans beklagen sich haeufig ueber das "Ich muss Band 1 bis
N nochmal lesen, weil Band N+1 herausgekommen ist"-Syndrom. Es ist doch
eine arg komplexe Welt, Gut und Boese gleichermassen reich bestueckt
und eine Grauzone gibt es auch ;).

Da noch nichteinmal alle Boesewichte offen im Spiel sind, ist noch nicht
auf ein Ende der Reihe zu hoffen. Im Englischen ist man grade bei Band
IX (geniales Finish), es wird bei X nicht Schluss sein.


Die Charaktere nicht ganz so detailliert beschreibend ist auch das 
"Sword of Truth" schoene englischsprachige Fantasy, die sich, verglichen
mit WoT, leichter lesen laesst, hinsichtlich Handlung staerker auf die
Tube drueckt und, sehr zum Vorteil des Lesers, nach jedem Band mehr oder
minder abgeschlossen. Den letzten Band (6?) habe ich noch nicht gelesen,
die Reihe haette, von meinem Eindruck her, nach Band 4 beendet sein 
koennen.... nunja. Auch Terry Goodkind muss von etwas leben.


Wo wir schon bei Terry sind... Terry Brooks ("Shannara") ist uebrigens
nicht so sehr zu empfehlen. Hat zumindest mir gar nicht gefallen.


Eine leichte Kurve aus der Fantasy macht Barbara Hambly mit der Sage um
Darwath (Time of the Dark, The Walls of Air, The Armies of Daylight), die
sich auch im Deutschen sehr gut liest.


Noch kurviger wirds mit Matt Ruff. Der Autor geht sehr sparsam mit Buechern
um, er hat zwischen seinem Erstlingswerk ("Fool on the hill", heisst auch
im Deutschen so) und seinem zweiten Buch mehrere Jahre verstreichen lassen.
Was den "Fool" angeht, wurde er mal als Geheimtip gehandelt, aber ist 
inzwischen doch recht bekannt. Auf jeden Fall lesenswert, wenn man nichts
gegen ein munteres Gemisch aus Liebesgeschichte, Hundeleben, Elfenkriege
und Studententum hat. Eines meiner Lieblingsbuecher. -- Auch "G.A.S.", das
zweite Buch von Ruff, gefaellt mir. Es hat mit dem ersten nichts gemeinsam,
gehoert eigentlich mehr ins SF-Genre, spielt aber in so naher Zukunft, dass
es nicht auffaellt. Ist nur fuer Leute zu empfehlen, die mit abgedrehten
Stories klarkommen... aber dann heiss ;). Im Englischen heisst dieses
Buch "Sewers, Gas & Electric".

Anatol, wirft einen Blick ins Buecherregal

-----------------------------------------------------------------------------



Re^8: Buchempfehlung (Gorog, 16. Jun 2001, 02:17:16):
~#! rn=Isi rt=992590415 rg=kultur
~#! tid=992550201
Das Ding is gluecklicher Weise gleich als Paperback auf den Markt gekommen (;

Gorog, das schon vor nem Monat oder zwei erwaehnt habend.

-----------------------------------------------------------------------------



Re: Re: Buchempfehlung (Alboin, 16. Jun 2001, 23:46:04):
~#! rn=Liafar rt=992639262 rg=kultur
~#! tid=992550201
wenn schon Paul Coelho dann auch DAS Buch von ihm:
Der Alchemist 
zu Grimmis Emfehlung: Solaris ist auch super, Tarkowskij hat es uebrigens
verfilmt und ich will ihn mir demnaechst mal angucken.
Meine ganz aktuelle persoenliche Empfehlung: Engel- eine kosmische Intelligenz
Nein das ist nicht der gewoehnliche Esoterik schnick-schnack den man sonst
geboten bekommt, sondern es sind Dialoge zwischen dem Biologen Ruppert
Sheldrake und dem Theologen Matthew Fox. Anhand von Bibelstellen und neuesten
wissenschaftlichen Erkenntnissen kommen sie zu der Ansicht das das
Vorhandensein von Engeln vielleicht realistischer ist, als man heutzutage
glaubt. Natuerlich hat das nichts mit den frueheren kitschigen Darstellungen
kleiner dicklicher gefluegelter Wesen zu tun.

Alboin

-----------------------------------------------------------------------------



Re^3: Buchempfehlung (Foobar, 17. Jun 2001, 01:01:18):
~#! rn=Alboin rt=992727964 rg=kultur
~#! tid=992550201
"kleine dickliche gefluegelte Wesen"

So sehen doch Elfen aus ;o)

Foobar

-----------------------------------------------------------------------------



Re^4: Buchempfehlung (Anacrion, 17. Jun 2001, 03:36:52):
~#! rn=Foobar rt=992732478 rg=kultur
~#! tid=992550201
Vielleicht die Elfen in den Sagen der Zwerge ...

... die Zwerge die die Sagen erfunden haben, wollten halt nicht zugeben, dass
man nicht klein und dick sein MUSS wie die Zwerge es sind.

Anac* - Elf, gutgebaut, intelligent, aber nicht ledig ;-)

-----------------------------------------------------------------------------



Re^5: Buchempfehlung (Anatol, 17. Jun 2001, 03:54:12):
~#! rn=Anacrion rt=992741812 rg=kultur
~#! tid=992550201
Andersherum, Anacrion. Zwerge, man hoere und staune, sind im Prinzip auch
Elfen (im Sinne von "Elben"). 'Schwarzelben'. Die Bedeutung des Namens
Alberich ist ja auch "Elbenkoenig", nicht "Zwergenbartzupfer".

Das kommt davon, wenn man ins Germanische und nicht ins Tolkieneske Buch
kuckt. Sollte man besser lassen. Als Elf zumindest. *schuettel*

Ana*

-----------------------------------------------------------------------------



Re^6: Buchempfehlung (Anacrion, 17. Jun 2001, 03:55:26):
~#! rn=Anatol rt=992742852 rg=kultur
~#! tid=992550201
Eben. 

Anac* - hat das germanische Buch weit weg gelegt.

-----------------------------------------------------------------------------



Re^7: Buchempfehlung (Solmyr, 17. Jun 2001, 08:29:26):
~#! rn=Anacrion rt=992742926 rg=kultur
~#! tid=992550201
Ich empfehle mal 'Pipi Langstrumpf im Taka Tuka Land' und 'Mein allererstes
Malbuch' :) Denke, dass laesst sich hier in der Reihe ganz gut unter-
bringen, ne Anatol ?! :)

Sol*

-----------------------------------------------------------------------------



LotR-Uebersetzung (Liara, 17. Jun 2001, 17:22:28):
Moins.

Habe mal bei Amazon u. ae. gestoebert und zu meinem Erstaunen festgestellt,
dass so einige Uebersetzungen vom Herrn der Ringe ins Deutsche im Handel sind.
Sogar Klett-Cotta bietet 2 verschiedene an ...
Hat da jemand Erfahrung mit? (Auch was die Ausstattung der Buecher betrifft?)

Gruesse, Liara

P. S.: Ja, ich weiss, das Original ist sicher das Beste, aber darum geht's
grade nicht. ;-)

-----------------------------------------------------------------------------



Re: LotR-Uebersetzung (Liara, 17. Jun 2001, 18:10:07):
~#! rn=Liara rt=992791348 rg=kultur
~#! tid=992791348
Ok, wo ich grade dabei bin ... ;-)
Wie sieht es mit den englischen Ausgaben aus? (Hardcover oder Paperback?)
Welche sind empfehlenswert?

-----------------------------------------------------------------------------



Re^3: LotR-Uebersetzung (Gorog, 17. Jun 2001, 18:17:38):
~#! rn=Gorog rt=992794567 rg=kultur
~#! tid=992791348
Moins
Zu den HdR-Buechern. Die KlettKotta sind eigentlich ganz gut und wohl auch die
am weitesten verbreitesten. Das sind naemlich die nicht wirklich huebschen
gruenen Dinger im Schuber. Der Anhang is dann auch nciht komplett dabei, aber
der kann wenns gewuenscht ist gesondert erworben werden. Aber man sollte drauf
achten die alte Uebersetzung zu bekommen, da die neue wohl ziemlich viele
Schnitzer haben soll. (Umgangssprache aus der heutigen Ziet, Namensaenderungen
etc.) Die gute Uebersetzung is uebrigens von Margarte Carroux. 
Mit viel Glueck bekommst du noch die Jubilaeumsausgabe von KlettKotta. Schuber
und gebunden, zum gleichen Preis wie die oben erwaehnten.

Viel Spass beim Suchen.

mfGorog

-----------------------------------------------------------------------------



Re^4: Buchempfehlung (Apsu, 17. Jun 2001, 19:18:23):
~#! rn=Foobar rt=992732478 rg=kultur
~#! tid=992550201
oder kleine uebergewichtige kannibalische Feen :)
Apsu, schielt zu Grellgen rueber *GG*

-----------------------------------------------------------------------------



Re: Re: LotR-Uebersetzung (Troy, 18. Jun 2001, 08:48:59):
~#! rn=Liara rt=992794207 rg=kultur
~#! tid=992791348
Tja. Da sind die heutigen Baende leider alle etwas grottig. Im Original
sprachen die Elfen noch ein Shakespearean (d. h. altes) Englisch schoen
mit thou und thee gespickt. Das wurde aber schon zu Beginn der 1960er
angepasst. Ansonsten gibts, was das Original angeht eh nur eine Adresse,
da Christopher Tolkien (der Sohn von J.R.R. Tolkien) alle Rechte daran
haelt und es auch selbst herausgibt. Daher sind die englischen Texte auch
austauschbar, egal, welcher Verlag es tut. HarperCollins hat die
schoensten Hardcover, aber wenns darauf nicht ankommt, kannste mal bei
Bantam Del Rey schauen oder auch bei Houghton Mifflin Company. Die
Hoerversion (9 CDs englisch; 10 CDs deutsch) gibts bei mir gegen 10
700er Rohlinge auf Anfrage.

Troy

-----------------------------------------------------------------------------



Re^8: Buchempfehlung (Zarniya, 27. Jun 2001, 09:38:32):
~#! rn=Solmyr rt=992759366 rg=kultur
~#! tid=992550201
Hi, 

die Antwort auf diesen Artikel ist vollkommen willkuerlich,...

Also wenn einer wirklich kraeftig abgrinsen will, dann kann ich nur Robert
Rankin empfehlen... Es ist uebrigens von Vorteil, die Buecher dann in der
richtigen Reihenfolge zu lesen, aber nicht zwingend... Wenn man es nicht tut,
ueberliesst man halt nur 20% der Gags des Meister des Runnning Gags und das
Anspielung... 

Marc

-----------------------------------------------------------------------------



Re^9: Buchempfehlung (Daria, 27. Jun 2001, 11:45:54):
~#! rn=Zarniya rt=993627512 rg=kultur
~#! tid=992550201
Was ist denn die richtige Reihenfolge?
Daria

-----------------------------------------------------------------------------



Re^10: Buchempfehlung (Zarniya, 27. Jun 2001, 11:49:26):
~#! rn=Daria rt=993635154 rg=kultur
~#! tid=992550201

Hi, 

1. Hugo Rune Zyclus
2. Garten der unirdischen Gelueste
3. Bentford Trilogie (in ca. 5 Teilen)
4. Armageddon Trilogie (in hoffentlich 3 Teilen)

Marc

-----------------------------------------------------------------------------



Re^11: Buchempfehlung (Boing, 27. Jun 2001, 11:55:51):
~#! rn=Zarniya rt=993635366 rg=kultur
~#! tid=992550201
Und unbedingt die englische Version lesen ... die Deutsche ist durchzogen
von unsaeglichen 'lustigen' Fussnoten des Uebersetzers und Lektors ... Haha
sag ich da nur.
  Boing

-----------------------------------------------------------------------------



Re^12: Buchempfehlung (Zarniya, 27. Jun 2001, 12:01:16):
~#! rn=Boing rt=993635751 rg=kultur
~#! tid=992550201

Hi, 

naja.. also nur im Bentford Teil sind diese Fussnoten wirklich extrem... auf
der anderen Seite sind sie mit Rankin abgesprochen und man muss sie ja nicht
wirklich lesen... Immerhin hat Rankin die beiden Fussnotenstreithaehne Merz
und Bauer zur Strafe auch in einen der Romane als Figuren eingebaut. Im
Kettenlaedenmassaker glaub ich kommen ein Tuersteher und ein irrer Arzt vor,
die den Deppen entsprechen.

Marc

-----------------------------------------------------------------------------



Re^13: Buchempfehlung (Boing, 27. Jun 2001, 12:04:14):
~#! rn=Zarniya rt=993636076 rg=kultur
~#! tid=992550201
Es hat noch einen Vorteil die Buecher auf englisch zu lesen: Man hat eine
viel groessere Auswahl. Massig Buecher von ihm wurden noch gar nicht
uebersetzt. Auch die Armageddon-Triologie die gerade ins Deutsche uebersetzt
wird ist eigentlich schon uralt.
Und wer moechte sich schon so schoene Buecher wie 'A Dog called Demolition'
oder 'Nostradamus ate my Hamster' entgehen lassen ...? :)
  Boing

-----------------------------------------------------------------------------



Re^11: Buchempfehlung (Apsu,  1. Jul 2001, 12:07:10):
~#! rn=Zarniya rt=993635366 rg=kultur
~#! tid=992550201
Seit wann hat ne trilogie 5 teile? *GG*

-----------------------------------------------------------------------------



Re^12: Buchempfehlung (Ringor,  1. Jul 2001, 12:07:32):
~#! rn=Apsu rt=993982030 rg=kultur
~#! tid=992550201
Seit Douglas Adams.

Ringor

-----------------------------------------------------------------------------



Re^12: Buchempfehlung (Catweazle,  2. Jul 2001, 08:58:46):
~#! rn=Apsu rt=993982030 rg=kultur
~#! tid=992550201
Ich hasse zwar 'me, too'-Artikel, aber diesmal muss es echt sein. Hier also
die Antwort:

Seit Douglas Adams.

Wenn Du das nicht weisst, hast du hier echt nix verloren ;-)

YTC

-----------------------------------------------------------------------------



Re^13: Buchempfehlung (Maximilian,  3. Jul 2001, 19:02:14):
~#! rn=Catweazle rt=994057126 rg=kultur
~#! tid=992550201
In memoriam (jaja).


Aber mein Tipp ist was gaaaanz altes:

Der buchstaebliche "Erfinder" des Essays: Michel (de) Montaigne.
Alles herrlich zu lesen.

*winks*
Maximilian

-----------------------------------------------------------------------------



Records of Lodoss War (Gorog,  4. Jul 2001, 15:03:00):
Sodele, Vox bringt wieder Animes. Und zwar hauptsaechlich die im Titel
genannten Fantasy-Anime. Is ne prima Sache und sollte man sich nciht entgehn
lassen. Jeweils Montag kurz vor Mitternacht (4 Wochen in Folge). 

mfG Gorog

-----------------------------------------------------------------------------



Re^8: Buchempfehlung (Ancalagon,  4. Jul 2001, 22:00:33):
~#! rn=Solmyr rt=992759366 rg=kultur
~#! tid=992550201
Tagchenknuddels!
Tagchenknuddels!
IMHO sind fast alle Werke Astrid Lindgrens sehr lesenswert!!! :)
Ancalagon
OA(frischt gerade seine Kinderbuchkenntnisse wieder auf, umd fuer sein
Kleinchen schon mal einen Grundstock anzulegen...) :)

-----------------------------------------------------------------------------



Re: Records of Lodoss War (Strohalm,  4. Jul 2001, 23:43:05):
~#! rn=Gorog rt=994251780 rg=kultur
~#! tid=994251780
Kann ich auch nur empfehlen.

Haelmchen, schonmal Videorecorder programmierend

-----------------------------------------------------------------------------



Re^9: Buchempfehlung (Schwubbel,  6. Jul 2001, 23:23:29):
~#! rn=Ancalagon rt=994276833 rg=kultur
~#! tid=992550201
Astrid Lindgren? Kann ich nur bestaetigen. Hab vor einiger Zeit erstmals Pippi
Langstrumpf in Buchform gelesen. Gefiel mir ueberraschend gut, wenn ich
dagegen an diese bescheuerten Inger-Nilsson-Filme denke, argh.
Bloss mit Karlson vom Dach (das Bier?) kannste mich jagen. hab ich als Kind
angefangen zu lesen, und nach 40 Seiten aufgehoert, weil mir der Kerl sowas
von unsympathisch war...

Schwubbel (nostalgisch)

-----------------------------------------------------------------------------



Re: Records of Lodoss War (Solmyr,  9. Jul 2001, 08:11:15):
~#! rn=Gorog rt=994251780 rg=kultur
~#! tid=994251780
Hmm, ich habe grade 'Akira' gezogen :) Der ist recht gut gewesen.

Gruss Sol*

-----------------------------------------------------------------------------



Musiktip des Monats July (Sublime,  9. Jul 2001, 10:44:15):
So, da wir schon seit etwas laengerer Zeit keinen "aktuellen"
Musiktip mehr hatten, habe ich mich mal ans Werk gemacht und
aus alten Deutschpunkbestaenden die besten und einpraegsamsten
Werke herausgefiltert. Moege es Euch eine gute Einfuehrung
oder auch Wiederkehr in die Welt des deutschen Aufstandes sein.

Das Praedikat 'Besonders wertvoll' erhalten von mir 'Die
Kassierer', sind sie doch Schoeper solch grossartiger Werke
wie 'Ich toete meinen Nachbarn und verpruegle seine Leiche'
oder 'Ich urinier in den kopflosen Rumpf von Uwe Sehler, wie
auch 'Gleich reiss ich Dir den Sack ab!'.
In der Kategorie 4 Sterne sind 'Die angefahrenen Schulkinder'
zu nennen, Schoepfer solch melodioeser Baladen wie z.Bsp.
Toetet Onkel Dittmeyer oder auch 'Trefft Euch doch zum
(darf ichs nun sagen oder nicht)f*).
3 Sterne bekommen bei mir die 'Abstuerzenden Brieftauben',
Komponisten solch grandioser Operetten wie beispielsweise
'Taubenvergiften im Park'.
In die 2 Sterne Kategorie finden immerhin noch die Terror-
gruppe Ihren Platz, mit Werken wie 'All Cops are Bastards' oder
auch 'Omas malen Opas Pornobilder'.
Die 1 Sterne Kategorie wird angefuehrt von Wizo, z.Teil. wegen
einfallsloser Titelgestaltung a la 'Unemployed', 'Klebstoff'
oder 'Ich hab mit Tocotronic Bier getrunken' (wer mag schon
diese Hamburger Schule?), zum anderen Teil aber auch wegen
dem ausgelutschten 'nicht'(jaja)kommerziellen Haltung der
Band selber.

edit
Ich haette ficken nicht mit f* abkuerzen sollen, ueberlegt man
sich einfach mal, wie oft amerikanische "Musiker" (das ist
Definitionssache) das herrlichklingende Wort 'f*' :) in die
Menge droehnen. Ach, und kommt mir nicht mit der Masche,
so'n Scheiss hoer ich ja auch nicht, die ganzen rockigeren
Bands nehmen 'fuck' :) noch viel oefter in den Mund.

Mit den allerfreundlichsten Gruessen
Solmyr

-----------------------------------------------------------------------------



Re: Musiktip des Monats July (Humni,  9. Jul 2001, 11:11:45):
~#! rn=Sublime rt=994668255 rg=kultur
~#! tid=994668255
He Sublime,

Du solltest fair sein und erwaehnen, dass ,,Gleich reiss ich Dir den Sack ab''
genauso wie ,,Morgen weide ich Deinen Vater aus'' Instrumentalstuecke sind.
Die Leute sind sonst immer so enttaeuscht, wenn sie keinen Text zu solchen
Titeln hoeren...

Humni, war kuerzlich erst auf einem ihrer Konzerte.
PS:Taubenvergiften im Park ist keineswegs von den Abstuerzenden Brieftauben.
Oder die haben ein eigenes Lied geschrieben. Soweit ich weiss ist das von
Georg Kreissler, korrigiert mich, wenn ich da falsch liegen sollte.

-----------------------------------------------------------------------------



Re: Re: Musiktip des Monats July (Solmyr,  9. Jul 2001, 11:25:47):
~#! rn=Humni rt=994669905 rg=kultur
~#! tid=994668255
Hu Humni,

also 'der Song 'Taubenvergiften im Park' ist wirklich von 
den Abstuerzenden Brieftauben. In diesem langen Artikel
habe ich aber voelleig vergessen einen weiteren Song
der Kassierer zu erwaehnen, 'Hans Meiser ist 'ne Pimmelfrau'
ist auch recht anhoerlich.

Gruss
Solmyr

Ps : Vielleicht covern die AB's ja? Doch koennte ich mir
das nicht so recht vorstellen.

-----------------------------------------------------------------------------



Re^3: Musiktip des Monats July (Grimmborn,  9. Jul 2001, 11:53:03):
~#! rn=Solmyr rt=994670747 rg=kultur
~#! tid=994668255
Der Song "Tauben vergiften im Park" ist von Georg Kreisler, und zwar schon aus
den 60ern. Es gibt eine nette englische Version von Tom Lehrer (kennt den
jemand ausser mir? Vermutlich nicht) "Poisoning Pigeons in the Park". Und wenn
die AB's das singen ist das entweder eine Coverversion oder ein unabhaengiges
Lied das zufaellig denselben Titel hat.

GdA

-----------------------------------------------------------------------------



Re: Musiktip des Monats July (Montanus,  9. Jul 2001, 16:54:19):
~#! rn=Sublime rt=994668255 rg=kultur
~#! tid=994668255
Solmyr,

Du bekommst 5 Sterne deluxe als absolute Kulturbanause.
Wer es hinbekommt, "Taubenvergiften im Park"  als Komposition einer
pubertaeren Moechtegernpunkband wie den Brieftauben unterzuschieben, wo doch
JEDER weiss, dass das einer der alten Klassiker von Georg kreisler ist... dem
ist echt nicht mehr zu helfen.
Sorry, aber sowas darf einem einfach nicht passieren.

-----------------------------------------------------------------------------



Re^3: Musiktip des Monats July (Apsu,  9. Jul 2001, 17:18:00):
~#! rn=Solmyr rt=994670747 rg=kultur
~#! tid=994668255
Mit dem Song 'Tauben vergiften im Park' hat Georg Kreissler schon angeeckt,
als die abstuerzenden Brieftauben noch nicht mal in ihre Nietenlederwindeln
pupten.

Apsu, hat so ziemlich alles von Kreissler

-----------------------------------------------------------------------------



Re: Re: Records of Lodoss War (Strohalm,  9. Jul 2001, 20:48:40):
~#! rn=Solmyr rt=994659075 rg=kultur
~#! tid=994251780
stecke alle Saeuremagiewesen im raum in geldboerse
kobold aus
Ungeschnittenes Original?

stecke alle Saeuremagiewesen im raum in geldboerse
kobold aus
stecke alle Saeuremagiewesen im raum in geldboerse
kobold aus
Haelmchen, selbiges verzweifelnd suchend

-----------------------------------------------------------------------------



Re^3: Records of Lodoss War (Strohalm,  9. Jul 2001, 20:50:08):
~#! rn=Strohalm rt=994704520 rg=kultur
~#! tid=994251780
mein tf war besoffen beim schreiben des artikels ;)

-----------------------------------------------------------------------------



Re^4: Records of Lodoss War (Ark,  9. Jul 2001, 21:12:10):
~#! rn=Strohalm rt=994704608 rg=kultur
~#! tid=994251780
Selbst Verantwortung fuer Dein dubioses Treiben willst Du aber nicht
uebernehmen, oder? Schlecht programmierte Monster, wenn sowas geht ;^)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Musiktip des Monats July (Gnome,  9. Jul 2001, 23:09:43):
~#! rn=Sublime rt=994668255 rg=kultur
~#! tid=994668255
die namen der lieder (lieder? haha...) lassen entweder auf eine kranke
psyche oder auf ein vorpubertaeres gehabe schliessen. oder beides?
vielleicht solltest du aber bei deinen 'tips' darauf achten, dass die
mehrzahl der mudder schon ueber 15 ist. okok, zumindest physisch. :)

damit ich hier nicht ganz offtopic gehe, noch schnell einen echten tip
hinterhergeworfen: die neue scheibe von placebo 'black market music'
ist zwar nicht mehr ganz so neu, dafuer aber umso hoerenswerter.

gnOme

-----------------------------------------------------------------------------



Re: Re: Musiktip des Monats July (Linflas,  9. Jul 2001, 23:48:18):
~#! rn=Gnome rt=994712983 rg=kultur
~#! tid=994668255
Hmmmm, ein Glueck das Geschmaecker verschieden sind, aber das muss ja niemand
Gnome auf die Nase binden ;-).
Im Ubrigen frage ich mich wie man zu solch kuriosen Namen finden kann. Mich
beschleicht das Gefuehl die leute lesen zu viel Max Goldt. Aber wenn wir schon
dabei sind, frage ich mal in die Runde ob es die Titel: "Mein Aschenbecher
quillt wieder mal ueber" und/oder "Die Butter im meinem Kuehlschrank schmeckt
ranzig", respektive "Wieso muss ich in die Kueche gehen, um meinen Humpen
fuellen zu muessen?" schon gibt, oder ob ich da jetzt Copyright drauf habe?!

Linflas laesst seinen Tip noch folgen, wenn er Zeit hat.

-----------------------------------------------------------------------------



Re^3: Musiktip des Monats July (Solmyr, 10. Jul 2001, 00:27:23):
~#! rn=Linflas rt=994715298 rg=kultur
~#! tid=994668255
So, meine kleine Anarchopunk-Zeit fuer heute ist vorbei, im
Angebot staende noch die neue Cd von 'Weezer' (ohne Namen).
Ich habe die mal wieder auf'm Hurricane Festival gesehen und
kann nur sagen, angenehm rockig, etwas surflastig mit Indie
Pop Inhalten.

Gruss
Solmyr, freuend, endlich mal wieder Leben in die Bude gebracht
zu haben :)

-----------------------------------------------------------------------------



fuer Star Wars fans (Montanus, 13. Jul 2001, 19:08:46):
nur ein Link, schaut selber nach ;-)

http://www.ifilm.com/ifilm/product/film_info/0,3699,1404093,00.html

Ich fands witzisch (c) Ark

-----------------------------------------------------------------------------



Kino (Liara, 15. Jul 2001, 01:23:56):
Fuer 'Shrek'-Fans:

http://www.bildschirmschoner.de/savers/content/DContent0354.html


Gruesse,
LSZZ

-----------------------------------------------------------------------------



gedanken, gedicht, oder so (Grimmborn, 23. Jul 2001, 21:26:47):
~#! on=Roland ot=995915764 og=allgemeines
Fuer Bille!

Ich weis das du das nie lesen wirst, weil du nie im mud bist.
Ich weis das du eigendlich garnicht im netz bist, aber tich muss dies jetzt
doch schreiben ... egal was kommt.

Alkohol :)

Alkohol macht birne hohl.
Alkohol macht birne frei.
Alkohol macht fehler
Alkohol macht unbezwungen.
Alkohol hat es verursacht.
Alkohol hat ich zu viel
oehm du aber auch wie mir scheint.
denn als ich am naechsten tag,
deinen suessen koerper neben mir liegen sah,
ich weis nicht ... es war um mich geschen,
deine augen oefnetten sich langsam ... 
und da geschah es... 
Nuechtern .. und mich traf der Blitz.
Nuchter ... und ich sah dich trafs auch.

und dann ... was war gesehen ... was war ?
ich wuste nix ... und du ?

Ich weis nur eins ... 

Damals! lang wars her ...
Hab ich mich in dich verliebt ... 
und weist du was... 
es soll kein ende nehmen...
und immer so weiter gehen wie heut ... 

Auch wenn es ein komisch umstand war ... 
egal ... 

bist mein ... 
fein



Bille ... HdL ... Roland

-----------------------------------------------------------------------------



Re: gedanken, gedicht, oder so (Linflas, 23. Jul 2001, 21:51:21):
~#! rn=Grimmborn rt=995916407 rg=kultur
~#! tid=995916407
Linflas fuegt hier jetzt einfach mal nichts hinzu ;-)

-----------------------------------------------------------------------------



Re: Re: gedanken, gedicht, oder so (Wurzel, 23. Jul 2001, 21:59:34):
~#! rn=Linflas rt=995917881 rg=kultur
~#! tid=995916407
noch nicht mal einen sinnfreien artikel?

-----------------------------------------------------------------------------



Re^3: gedanken, gedicht, oder so (Linflas, 24. Jul 2001, 00:36:57):
~#! rn=Wurzel rt=995918374 rg=kultur
~#! tid=995916407
Ja.

-----------------------------------------------------------------------------



Der Bundesdance (Solmyr,  2. Aug 2001, 23:14:03):
Hi,

soviel zum Thema : Ich liebe Deutschland und die 3 grossen Parteien :)
 http://www.sueddeutsche.de/sz/kultur/bundesdance/start.html
Ich habe wirklich herzlich gelacht, ... unbedingt mal  reinschaun.

Gruss Sol*

-----------------------------------------------------------------------------



Re: Der Bundesdance (Troy,  3. Aug 2001, 10:02:09):
~#! rn=Solmyr rt=996786843 rg=kultur
~#! tid=996786843
Mittlerweile ist der aber schon recht alt (Der war hier schon mindestens
einmal gepostet worden unter www (wo er eigentlich hingehoert).

Troy

-----------------------------------------------------------------------------



Bildet euch! (Linflas,  4. Aug 2001, 13:55:07):
Meine lieben belesenen Mudder,

Ungewohnterweise gab es von mir seit langem keinen CD-Tip mehr. Gruende dafuer
nenne ich keine moechte aber mal einen kleinen Buchtip angeben: "Buntspecht"
von Tom Robbins.
Der Klappentext:
"Zerreiss das Cellophan.
Geh meilenweit durch die Wueste des Aberwitzes.
kletter auf die Pyramide.
Heul den Mond an!"

Dieses Buch offenbart den Widerspruch zwischen sozialem Engagement und
individueller Romantik, die Frage nach dem Zweck des Mondes, den Unterschied
zwischen einem "Outlaw" und einem Allerweltsbanditen, kurz: das Problem der
Liebe am Ende des 20. Jahrhunderts. Dass es bei alldem auch um das Problem der
Rothaarigen geht, sollte hier nicht vorenthalten werden.

Linflas, hat kein rotes Haar.

-----------------------------------------------------------------------------



Re: Bildet euch! (Wurzel,  4. Aug 2001, 13:56:28):
~#! rn=Linflas rt=996926107 rg=kultur
~#! tid=996926107
die wueste des aberwitzes? ich dachte immer, das waere hier im morgengrauen..
ist der autor ein mudder?

-----------------------------------------------------------------------------



Re: Re: Bildet euch! (Grimmborn,  4. Aug 2001, 14:02:33):
~#! rn=Wurzel rt=996926188 rg=kultur
~#! tid=996926107
Nein, das was hier im MG ist ist die Wueste von Dancer. Bring das bitte nicht
durcheinander.

GdA

-----------------------------------------------------------------------------



Re^3: Bildet euch! (Linflas,  4. Aug 2001, 16:40:08):
~#! rn=Grimmborn rt=996926553 rg=kultur
~#! tid=996926107
Na und Mudder ist der Autor meines Wissens nach nicht, wohnt aber in einem
Baumhaus. Was auch genauso eigenartig ist, wie sich seine Zeit in einem
Textbasierenden Computerrollenspiel zu vertreiben.
Ausserdem beantwortet das Buch die Frage nach dem Sinn von Pyramiden _und_
erklaert nebenher Douglas Adams Einleitung "Alles was passiert - passiert".
Viel Spass damit :-)

Linflas

-----------------------------------------------------------------------------



Re^9004: Hach... nu is was drin, inner MPA. (Montanus, 15. Aug 2001, 19:19:32):
~#! on=Montanus ot=997895896 og=megaschmarrn
~#! rn=Perdita rt=997895679 rg=megaschmarrn
~#! tid=982328278
ottos mops

                                                                            

                                                     ottos mops trotzt

                                                  otto: fort mops fort

                                                ottos mops hopst fort

                                                               otto: soso

                                                                            

                                                          otto holt koks

                                                          otto holt obst

                                                             otto horcht

                                                      otto: mops mops

                                                               otto hofft

                                                                            

                                                     ottos mops klopft

                                            otto: komm mops komm

                                                   ottos mops kommt

                                                      ottos mops kotzt

                                                        otto: ogottogot

 

Ernst Jandl

-----------------------------------------------------------------------------



Re^9005: Hach... nu is was drin, inner MPA. (Zook, 15. Aug 2001, 19:25:41):
~#! rn=Montanus rt=997895972 rg=kultur
~#! tid=982328278
Hey.... nun bekommen die unsere Kultur-Artikel schon frei Haus zu sehen?

Zook.

-----------------------------------------------------------------------------



www.nett (Montanus, 20. Aug 2001, 22:59:21):
Ob das hierher, nach Balance, nach www, nach Gejammer oder Megaschmarrn
gehoert, mag jeder selber entscheiden:

http://www.killfrog.com/00/fluff.html

Viel Spass. :-)

-----------------------------------------------------------------------------



Re: www.nett (Grimmborn, 20. Aug 2001, 23:01:22):
~#! rn=Montanus rt=998341161 rg=kultur
~#! tid=998341161
Lustig, killt kommentarlos meinen Browser...

GdA

-----------------------------------------------------------------------------



Re: Re: www.nett (Montanus, 20. Aug 2001, 23:03:50):
~#! rn=Grimmborn rt=998341282 rg=kultur
~#! tid=998341161
Oh, ich haette dazuschreiben sollen, dass das wahrscheinlich Netscape braucht
und Mosaic *garantiert* zu alt ist. :-)

-----------------------------------------------------------------------------



CD des Monats (Linflas, 24. Aug 2001, 13:15:12):
Bjoerk - Vespertine
 
Du weisst nie, was Dich hinter der naechsten Ecke erwartet
 
Bei Bjoerk scheiden sich seit ihrem Album "Debut" 1993 die Geister. Dennoch,
oder eben darum, ist sie eine der talentiertesten Musikerinnen unserer Zeit.
Und wie es seitdem schon ist, ueberrascht sie mit jedem neuen Album.
"Vespertine" ist anders: klein, leise, minimal. Die Melodie ist verspielt,
plaetschert gegen das Trommelfell wie ein warmer Sommerregen im Wald -
ploetzlich verirrt sich ein Sonnenstrahl durch das Blattwerk.
Bjoerk bewegt sich auf diesem Album zwischen choralen, musicalaehnlichen
Gesaengen ("An Echo A Stain") und kleinen, treibenden, bei Drum'n'Bass
angelehnten Stuecken ("Heirloom"), ihre Stimme stets im Vordergrund. Kleine
Glockenspiele unterstuetzen die Melancholie ("Harm of will") und bei genauem
hinhoeren laechelt sie auch ("Unison"). 
Bjoerk ist wie immer: gewoehnungsbeduerftig und neu, nie klar zu definieren,
immer ein emotionales Erlebnis. Ein kleines Zauberwerk fuer ruhige, versunkene
Momente mit einem Silberstreif am Horizont.
 
Label: Polydor

Linflas, immer das neuste, immer das schoenste ;-)

-----------------------------------------------------------------------------



die eigentliche CD des Monats (Zarniya, 27. Aug 2001, 08:03:58):

Hi, 

heute ist der Tag der deutschen Musik in den CD Laeden, und damit meine ich
nciht die neue CD von PUR, die sich sicher wie deppert verkauft... NEIN, heute
erscheint auch die neue CD von den WISE GUYS !!! Derzeit stehen diese Jungs
oben auf der Erfolgswelle und das verdientermassen, haben sie doch als a
capella gruppe 2 Songs in den Top100.

Marc raet zum blinden Kauf.

-----------------------------------------------------------------------------



Noch ein CD Tip (Linflas, 27. Aug 2001, 13:52:24):
Und fuer die Freunde elekronischer UNterhlatungsmusik habe ich hier einen
kleinen Tip gefunden:

"Out of Focus" von Morphem.

Morphem wird dem ein oder anderen geneigten Leser vielleicht als der
PsyTrance-Akt schlechthin bekannt sein, dessen Singles wahrhaft goettliche
Ektase hervorrufen koennen. Nun gibt es davon also ein ganzes Album und man
kann den Kopf garnicht stillhalten. Wer gerne auf Festivals herumtanzt und
sich ueber die Sonne freut, wird hiermit sicherlich einige schoene Stunden
erleben koennen. Viel Spass!

Linflas, wibbelt.

-----------------------------------------------------------------------------



Re: die eigentliche CD des Monats (Strohalm, 30. Aug 2001, 03:03:34):
~#! rn=Zarniya rt=998892238 rg=kultur
~#! tid=998892238
Ausserdem sollte man sich definitiv ein Konzert der 5 Jungens ansehen, denn
spaetestens dann wird man zum Fan. Termine gibts ausreichend auf
www.wiseguys.de, und die Eintrittspreise sind sogar studentenfreundlich.

Lord Haelmchen, fruehzeitige Kartenreservierung empfehlend

-----------------------------------------------------------------------------



Re: Re: die eigentliche CD des Monats (Ronda, 31. Aug 2001, 01:10:17):
~#! rn=Strohalm rt=999133414 rg=kultur
~#! tid=998892238
... und ich hoer die CD grad niegelnaglneu... hab' schon alle CD's der
WiseGuys...

WARNUNG

WiseGuys NIE nachts hoeren in Mietwohnungen! Mitsingen ist echt nie
ausgeschlossen!

Ronda *Machen wir nen MG-Sonderstammtisch zum WiseGuys-Konzert 2002 am
Tanzbrunnen in Koeln?!*

-----------------------------------------------------------------------------



Re^3: die eigentliche CD des Monats (Daria,  2. Sep 2001, 10:52:50):
~#! rn=Ronda rt=999213017 rg=kultur
~#! tid=998892238
Vielleicht spielen die naechsten Jahr ja auch wieder in Pb!
Daria hat Spione.

-----------------------------------------------------------------------------



Matt Ruff billig! (Alboin,  3. Sep 2001, 12:43:13):
Wer schon immer mal Matt Ruf lesen wollte, sollte sich mal beim
Zweitausendeins-Versand (http://www.zweitausendeins.de) umschauen. Die Buecher
'Fool on the Hill' (gewisse Leute haben sich hier nach den Helden dieses
Buches so benannt) und 'G.A.S.' gibt es dort in festem Einband zu je 16.95 DM.
Wer beide zusammen bestellt kann noch mal sparen, und bezahlt nur 29,90 DM. 
Um gewissen Nachfragen vorzubeugen: der Zweitausendeins-Versand ist nicht mein
Sponsor!

Achja, wer die 6.90 DM Versandkosten auch noch einsparen moechte: es gibt in
allen groesseren Staedten Laeden dieses Versands
(http://www.zweitausendeins.de/laeden.htm)

Viel Spass beim Lesen wuenscht Alboin, der gerade sein frischausgepacktes
'G.A.S.'-Exemplar auf dem Tisch zu liegen hat.

-----------------------------------------------------------------------------



Re^5: erschuetternd... (Grimmborn, 24. Sep 2001, 10:32:43):
~#! on=Ark ot=1001319242 og=allgemeines
~#! rn=Dante rt=1001223303 rg=allgemeines
~#! tid=1000247010
Ich fordere,
die grimborn koennen alle tot verlege (verlege nach tot)
usw. .. aja, magier haben <zappe alle verfasser von atikl tot>
noch Fragen?


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^6: erschuetternd... (Grimmborn, 24. Sep 2001, 10:33:21):
~#! rn=Grimmborn rt=1001320363 rg=kultur
~#! tid=1000247010
Schoene expressionistische Lyrik, ich bin beeindruckt.

GdA

-----------------------------------------------------------------------------



Tribute-To-Heroes-Konzert (Liara, 24. Sep 2001, 19:35:18):
Moin.

Ich habe Ausschnitte aus dem Konzert gesehen. Dabei ist mir eine Frau
aufgefallen, die am Fluegel sass und gesungen hat. Sie hat etwas mehr als
schulterlange, dunkelblonde Haare. Ich weiss nicht, ob sie einen Titel von
sich gesungen hat und habe leider sowieso kein Wort von den Lyrics verstanden.
;-) 

Ich wuerde mich freuen, wenn mir jemand sagen kann, wer das ist.

Gruesse, Liara

-----------------------------------------------------------------------------



Re: Tribute-To-Heroes-Konzert (Alboin, 24. Sep 2001, 19:36:42):
~#! rn=Liara rt=1001352918 rg=kultur
~#! tid=1001352918
sieht aus als ob Du einen Engek gesehen hast der nen Fluegel mit ner Harfe
verwechselt hat...

Al, mal unernst

-----------------------------------------------------------------------------



Re: Re: Tribute-To-Heroes-Konzert (Liara, 24. Sep 2001, 19:38:18):
~#! rn=Alboin rt=1001353002 rg=kultur
~#! tid=1001352918
Ich habe nur wenige der Kuenstler gesehen. Aber das Lied von der Frau und ihre
Stimme haben mich umgehaun. Deshalb war das eine durchaus ernst gemeinte
Anfrage.

Danke, Liara

-----------------------------------------------------------------------------



Re^3: Tribute-To-Heroes-Konzert (Grimmborn, 24. Sep 2001, 19:41:11):
~#! rn=Liara rt=1001353098 rg=kultur
~#! tid=1001352918
Und wo kann man sich den screenshot angucken, den Du hoffentlich gemacht hast?

GdA

-----------------------------------------------------------------------------



Re: Tribute-To-Heroes-Konzert (Gnome, 24. Sep 2001, 21:53:35):
~#! rn=Liara rt=1001352918 rg=kultur
~#! tid=1001352918
die frau duerfte alicia keys sein. vermute ich ganz stark.

gnOme

-----------------------------------------------------------------------------



Re: Re: Tribute-To-Heroes-Konzert (Liara, 24. Sep 2001, 21:56:29):
~#! rn=Gnome rt=1001361215 rg=kultur
~#! tid=1001352918
Leider sieht die wohl total anders aus.

-----------------------------------------------------------------------------



Re^3: Tribute-To-Heroes-Konzert (Gnome, 24. Sep 2001, 21:59:07):
~#! rn=Liara rt=1001361389 rg=kultur
~#! tid=1001352918
dann guck mal unter tributetoheroes.org, vielleicht steht da nen line-up.

gnOme

-----------------------------------------------------------------------------



Re^4: Tribute-To-Heroes-Konzert (Anacrion, 24. Sep 2001, 22:00:28):
~#! rn=Gnome rt=1001361547 rg=kultur
~#! tid=1001352918
Da ist nada.

anac*

-----------------------------------------------------------------------------



Re^4: Tribute-To-Heroes-Konzert (Liara, 24. Sep 2001, 22:01:12):
~#! rn=Gnome rt=1001361547 rg=kultur
~#! tid=1001352918
Ich habe da nachgesehen. Und ich habe inzwischen alle Frauen, die teilgenommen
haben, im Netz auf Bildchen angesehen. ;-) Das hat mich aber leider nicht viel
weitergebracht. (Zumal die Liste der Teilnehmer an dem Konzert nicht unbedingt
vollstaendig sein muss.)

-----------------------------------------------------------------------------



Re^5: Tribute-To-Heroes-Konzert (Anacrion, 25. Sep 2001, 06:46:16):
~#! rn=Liara rt=1001361672 rg=kultur
~#! tid=1001352918
Alicia Keys heisst sie.

anac* - hilfsbereit wie immer

-----------------------------------------------------------------------------



Re^6: Tribute-To-Heroes-Konzert (Catweazle, 25. Sep 2001, 09:02:33):
~#! rn=Anacrion rt=1001393176 rg=kultur
~#! tid=1001352918
Alicia Keys hat leider keine dunkelblonden Haare.
Ich glaub am WE wiederholt MTV das Konzert, Liara, Du solltest den Auftrag an
alle erteilen, sich das anzusehen und dabei auf die Frau am Klavier mit der
Bombenstimme zu achten :-)

Ich bin aber immer noch nicht sicher, ob Du dich nicht vielleicht vertust,
Klavier und Bombenstimme klingt arg nach Frau Keys...

YTC

-----------------------------------------------------------------------------



Re^7: Tribute-To-Heroes-Konzert (Liara, 26. Sep 2001, 01:26:49):
~#! rn=Catweazle rt=1001401353 rg=kultur
~#! tid=1001352918
Aber die sieht ganz anders aus. *schluchz* Mir waere es ja auch lieber, wenn
sie das waere ... nachher war das Celine oder so ... dann graust es mir vor
meinem eigenen Geschmack. ;-) (Nein, DIE war es wohl wirklich nicht. ;-)

-----------------------------------------------------------------------------



Re: Tribute-To-Heroes-Konzert (Liara, 26. Sep 2001, 22:19:16):
~#! rn=Liara rt=1001352918 rg=kultur
~#! tid=1001352918
Hm, ich habe mal an die SWR3-Musikrecherche geschrieben. Da hat mir auch promt
jemand geantwortet. Und der meint auch es sei Alicia Keys. ;-)

ZZLB, kann das kaum glauben ... (Die ist nicht blond und die sieht wirklich
anders aus auf den Bildern im Netz.) Aber vielleicht mutieren ja alle
(schreibt man das jetzt gross oder klein ;)  angesichts der Katastrophe. ;-) 

-----------------------------------------------------------------------------



Re: Re: Tribute-To-Heroes-Konzert (Grimmborn, 26. Sep 2001, 22:21:55):
~#! rn=Liara rt=1001535556 rg=kultur
~#! tid=1001352918
Es wird Dich jetzt sicher schocken, also setz Dich stabil hin:
Haare kann man faerben. Doch, echt wahr, kein Scheiss.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Re: Tribute-To-Heroes-Konzert (Gnome, 26. Sep 2001, 22:52:07):
~#! rn=Liara rt=1001535556 rg=kultur
~#! tid=1001352918
also, imho gab es nur EINE frau am klavier. das war mrs. keys.
die blonde hat am micro gestanden und sah auch besser aus als alicia.

gnOme

-----------------------------------------------------------------------------



Re^3: Tribute-To-Heroes-Konzert (Anacrion, 26. Sep 2001, 22:52:21):
~#! rn=Gnome rt=1001537527 rg=kultur
~#! tid=1001352918
:grinst.

anac*

-----------------------------------------------------------------------------



Re^3: Tribute-To-Heroes-Konzert (Liara, 26. Sep 2001, 23:21:02):
~#! rn=Gnome rt=1001537527 rg=kultur
~#! tid=1001352918
Es war ein Fluegel und ich bin NICHT farbenblind. ;-)

-----------------------------------------------------------------------------



Re^4: Tribute-To-Heroes-Konzert (Grimmborn, 26. Sep 2001, 23:25:44):
~#! rn=Liara rt=1001539262 rg=kultur
~#! tid=1001352918
Koennte vielleicht mal jemand eine URL zu einem Bild anbieten? Mich macht das
kribbelig hier ueber Frauen zu diskutieren die ich noch nichtmal gesehen habe.

GdA akzeptiert notfalls auch ein Foto mit Kleidern

-----------------------------------------------------------------------------



Re^5: Tribute-To-Heroes-Konzert (Karis, 26. Sep 2001, 23:27:12):
~#! rn=Grimmborn rt=1001539544 rg=kultur
~#! tid=1001352918
Wozu braucht man ein Foto, um laestern zu koennen???



-----------------------------------------------------------------------------



Re^5: Tribute-To-Heroes-Konzert (Gnome, 26. Sep 2001, 23:30:30):
~#! rn=Grimmborn rt=1001539544 rg=kultur
~#! tid=1001352918
dich mach schon eine harmlose diskussion ueber eine frau kibbelig?
nein, ich sage jetzt nichts weiter dazu.

gnOme

-----------------------------------------------------------------------------



Re: Re: Tribute-To-Heroes-Konzert (Liara, 26. Sep 2001, 23:45:34):
~#! rn=Liara rt=1001535556 rg=kultur
~#! tid=1001352918
Hat jemand ne Aufnahme von dem Konzert? ;-(

Das war definitiv NICHT Alicia Keys.

ZZLB, brummelig

-----------------------------------------------------------------------------



kinotip (Alboin, 27. Sep 2001, 00:18:00):
Fuer alle die nicht nur in Mainstreamkinos gehen: ich habe gestern 'Russische
Hochzeit' gesehen. Der Film ist brilliant und vermittelt einen Einblick in das
gegenwaertige russische Leben, was z.B. fuer eine Hochzeit so alles
improvisiert werden muss, wenn kein Geld da ist. Aber auch wie wandelbar die
Leute sind und trotz der nicht immer rosigen Lebensbedingungen, alle ihren
Sinn fuer Humor behalten.
Einziges Manko duerfte sein, dass der Film im Original mit Untertiteln gezeigt
wurde, und da er viel Tempo hat, koennten weniger geuebter Untertitelgucker
Schwierigkeiten haben hinterherzukommen.

al

-----------------------------------------------------------------------------



Re^3: Tribute-To-Heroes-Konzert (Zarniya, 27. Sep 2001, 08:45:53):
~#! rn=Gnome rt=1001537527 rg=kultur
~#! tid=1001352918
Blonde Frau, die am Microfon gestanden hat? schwarzer Hosenanzug? eher
kuerzere Haare? Gospelaehnlicher Gesang? Das war dann Faith Hill. Die kennt
hier in Deutschland aber auch nicht jeder so, wie sie WIRKLICH ist... 

Marc (Country Fan)

-----------------------------------------------------------------------------



Re^4: Tribute-To-Heroes-Konzert (Gnome, 27. Sep 2001, 09:42:20):
~#! rn=Zarniya rt=1001573153 rg=kultur
~#! tid=1001352918
ja, die war sehr nett anzusehen, obwohl sie blond war. >:)
faith hill, mal merken, danke.

gnOme

-----------------------------------------------------------------------------



Re: Re: Tribute-To-Heroes-Konzert (Liara, 27. Sep 2001, 12:21:38):
~#! rn=Liara rt=1001535556 rg=kultur
~#! tid=1001352918
Hm, also Steffi Tuecking sagt, es waere Sheryl Crow. Damit gebe ich mich
erstmal zufrieden. 

ZZLB, leidet wohl unter Geschmacksverirrung und zieht sich lieber Alicia Keys
rein ;-)

-----------------------------------------------------------------------------



Re^3: Tribute-To-Heroes-Konzert (Rind, 27. Sep 2001, 16:01:07):
~#! rn=Liara rt=1001586098 rg=kultur
~#! tid=1001352918
sheryl crow is richtig

-----------------------------------------------------------------------------



Re^4: Tribute-To-Heroes-Konzert (Liara, 27. Sep 2001, 16:27:55):
~#! rn=Rind rt=1001599267 rg=kultur
~#! tid=1001352918
Haetteste das nicht frueher sagen koennen? *g*

-----------------------------------------------------------------------------



Fernsehtip (Vanion,  5. Okt 2001, 20:01:14):
Da ich mich selbst immer wieder darueber aergere, dass ich es verpasst hab,
und das Programm diesmal besonders interessant werden koennte:

Heute, 0:00 Uhr, MTV
Celebrity Deathmatch

Heute:
Knetanimation mit deutschen Kampf Joschka Fischer gegen Gerhard
Schroeder

Anschliessend im ersten Vorkampf treten Leonardo DiCaprio und Jack Nicholson
in den Ring. Im zweiten Act kaempfen Aretha Franklin und Barbara Streisand
gegeneinander. Im Hauptkampf treffen Bill Gates und Michael Flatley
aufeinander. 
--
V*, freut sich drauf und fragt sich, wer wohl ueberlebt ... *g*

PS: Quelle: www.tvtv.de

-----------------------------------------------------------------------------



CD Tip(p) mal anders (Tangalur, 12. Okt 2001, 12:55:03):
Gandalf: Visions 2001

150 Minuten Gandalf auf zwei randvollen CDs.

CD 1 
wurde von Tolkiens Lord of the Rings inspiriert und trifft 
die Stimmung recht gut ist aber nicht der Soundtrack zum Film. 

CD 2 rare & precious pieces
gibt eine Ueberblick ueber die letzten 20 Jahre Gandalf

Mal sehen wer das im Plattenladen findet

-----------------------------------------------------------------------------



Re: CD Tip(p) mal anders (Grimmborn, 12. Okt 2001, 13:04:29):
~#! rn=Tangalur rt=1002884103 rg=kultur
~#! tid=1002884103
Hmm, Gandalf hab ich mal gehoert... war das nicht so New Age Musik?

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Re: CD Tip(p) mal anders (Tangalur, 12. Okt 2001, 13:08:07):
~#! rn=Grimmborn rt=1002884669 rg=kultur
~#! tid=1002884103
ja in der Tat !
dachte ist mal was anderes als die hier ueblichen Tip(p)s
Passt aber wirklich wunderbar zum Herrn der Ringe

-----------------------------------------------------------------------------



Re^3: CD Tip(p) mal anders (Grimmborn, 12. Okt 2001, 13:49:18):
~#! rn=Tangalur rt=1002884887 rg=kultur
~#! tid=1002884103
He, ich hab noch nichtmal gelaestert, obwohl ich mit New Age gar nuscht
anfangen kann, weder literarisch, noch ideologisch, noch musikalisch. Aber die
Geschmaecker sind eben verschieden. 

GdA

-----------------------------------------------------------------------------



Re^4: CD Tip(p) mal anders (Tangalur, 12. Okt 2001, 13:53:11):
~#! rn=Grimmborn rt=1002887358 rg=kultur
~#! tid=1002884103
Noe so wars auch nicht gemeint !
Einfach nur mal so als Anregung, weil es gut zum Fantasy
und Rollenspielthema passt.

-----------------------------------------------------------------------------



Kino (Gorog, 27. Okt 2001, 16:07:51):
So mal wieder Werbung in fremder Sache, verdien ja leider nix dran.

Ich war gestern im Kino und hab mir Moulin Rouge angeschaut und ich muss
sagen, Hut ab. Gemessen an dem was in diesem Jahr bereits in den Kinos
gelaufen ist, und besonders an dem was momentan so laeuft, wuerde ich diesen
Film mit Sicherheit unter den besten 5 platzieren. Zugegeben is ne Romanze und
n Musikal (mehr oder weniger) aber eigentlich is das wenn man sich erstmal
damit angefreundet hat ziemlich klasse. Und besonders die Musik ist echt
genial (hab mir sofort den Soundtrack gekauft). Aber nicht nur das, wunderbare
Bilder (obwohl zumindest am Anfang und Ende sehr bunt) eine gute wenn auch
vorhersehbare Geschichte und eine Atmosphaere wie zumindest ich sie schon
lange nicht mehr im Kino miterlebt habe.  
Wer jetzt aber meint: Hat der regiseur nicht auch diesen miesen Romeo und
Julia mit Leonardo diCapri gedreht? Dem sei gesagt dieser Film ist um Laengen
besser, und geht mehr in die die Richtung von "striktly ballroom", von dem ich
immer noch nicht weiss warum ich den mag. 

Gorog sagt: Film des Monats (zum Glueck ist nicht Dezember) 

p.s.: achja nicht erschrecken bei den zillionen Song-Zitaten, kann auch mal
ganz spassig sein.

-----------------------------------------------------------------------------



Song gesucht. (Catweazle,  8. Nov 2001, 16:21:53):

Hm, ich muss mich jetzt kurz outen, aber das isses mir dann doch wert. 

Also ich gebe zu, das ich seit ein paar Folgen wieder Popstars gucke. Wenn die
gerade nicht mal wieder alle rumheulen singen die restlichen Leute
mittlerweile sogar ganz ordentlich.
Nun, ich hab gestern die Folge vom Dienstag gesehen und am Ende dieser Folge
setzt sich eines der Restmaedels relativ spontan ans Klavier und klimpert
drauf los. Nun, als die dieses Lied traellerte hat sich bei mir innerhalb
kuerzester Zeit eine wohlige Gaensehaut gebildet, so stark wie sie sonst
seltenst vorkommt, und nun wuerde ich gerne wissen, welches Lied sie da
gesungen hat. Ich wuerde als erstes auf Ina tippen, weiss es aber echt nicht
genau.
Ich bin fuer jeden Hinweis dankbar, ich verrat auch nicht weiter, dass das
ausser mir noch jemand sieht :)
Die Folge wird soweit ich weiss am Sonntag wiederholt. 

Yours truly,
     Catweazle

-----------------------------------------------------------------------------



Re: Song gesucht. (Gnome,  8. Nov 2001, 16:42:40):
~#! rn=Catweazle rt=1005232913 rg=kultur
~#! tid=1005232913
catty ist ein popstars-gucker! hehe :)=

-----------------------------------------------------------------------------



Re: Re: Song gesucht. (Liara,  8. Nov 2001, 18:34:03):
~#! rn=Gnome rt=1005234160 rg=kultur
~#! tid=1005232913
Catty ist verliebt. ;-)

ZZL, duckt sich

-----------------------------------------------------------------------------



Re^3: Song gesucht. (Foobar,  8. Nov 2001, 18:59:41):
~#! rn=Liara rt=1005240843 rg=kultur
~#! tid=1005232913
Du hast nicht zufaellig eine Textzeile oder zwei?

Foobar

-----------------------------------------------------------------------------



Re^3: Song gesucht. (Catweazle,  9. Nov 2001, 10:19:31):
~#! rn=Liara rt=1005240843 rg=kultur
~#! tid=1005232913
Tatsaechlich. Sogar meistens. Waere sogar schrecklich wenn nicht :-)

YTC

-----------------------------------------------------------------------------



"Coverversion" (Grimmborn, 22. Nov 2001, 00:25:04):
Ich hab gerade auf Emm Teh Fau eine "Coverversion" von "Wish you were here"
von Pink Floyd gesehen, von irgendsoeinem Neger. Ich sag nur: Finger von
lassen. Was auch immer der fuer Drogen genommen hat, es sind die falschen, und
sie sind mit Pink Floyd inkompatibelst.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: "Coverversion" (Wurzel, 25. Nov 2001, 21:35:52):
~#! rn=Grimmborn rt=1006385104 rg=kultur
~#! tid=1006385104
von coverversionen lass ich eh die finger. wenn es hoch kommt, ist eine von
tausend akzeptabel, die meisten sind eh nur schrott.
wuerde mich aber trotzdem interessieren, welche drogen mit pink floyd denn
inkompatibel sind. alle die mir so einfallen standen auch bei denen mal auf
dem speiseplan...

wurzel

-----------------------------------------------------------------------------



Re: Re: "Coverversion" (Vanion, 25. Nov 2001, 21:40:49):
~#! rn=Wurzel rt=1006720552 rg=kultur
~#! tid=1006385104
So, ihr seid schuld, dass ich meine Pink Floyd-CDs vorsuchen musste.

V*, taub.

-----------------------------------------------------------------------------



Re: Re: "Coverversion" (Grimmborn, 25. Nov 2001, 21:41:05):
~#! rn=Wurzel rt=1006720552 rg=kultur
~#! tid=1006385104
Ich halte es ja fuer vermessen zu sagen "wer etwas zuerst macht macht es in
99.9% aller Faelle auch besser als es jeder andere koennte". Dennoch sind
Coverversionen (auch 'hochwertige') erstaunlich oft schlecht, keine Frage.

Nach Beschreibungen der Drogen, und meiner Kenntnis der Musik wuerde ich z.B.
sowohl Extasy als auch Kokain fuer "Nicht Pink Floyd Drogen" halten. Alkohol
passt da auch nicht so gut. Alles was laut und agressiv ist kommt deren Musik
nicht entgegen.

GdA

-----------------------------------------------------------------------------



Re: Re: "Coverversion" (Croft, 25. Nov 2001, 22:28:25):
~#! rn=Wurzel rt=1006720552 rg=kultur
~#! tid=1006385104
Kommt echt drauf an welche Bands man auf Coverversionen untersucht.
Ace of Base 'All that she wants' -> WIZO
George Michael 'Faith' -> Limp Bizkit
...
Da bekommt man schoen hartes auf die Ohren :o)
Croft

-----------------------------------------------------------------------------



Re: Re: "Coverversion" (Zarniya, 28. Nov 2001, 10:31:30):
~#! rn=Wurzel rt=1006720552 rg=kultur
~#! tid=1006385104
Viel schlimmer ist doch, dass heutzutage viele Coverversionen fuer Originale
gehalten werden... Ist mir passiert, als ich jemandem "American Pie" in der
Version von Garth Brooks vorgespielt habe und derjenige meinte "Hey, dass ist
doch der Song von Madonna!".... da konnte ich nur noch weinen.

Marc

-----------------------------------------------------------------------------



Re^3: "Coverversion" (Grimmborn, 28. Nov 2001, 10:32:54):
~#! rn=Zarniya rt=1006939890 rg=kultur
~#! tid=1006385104
Wieso? Die Stimmlage ist doch in etwa aehnlich...

GdA

-----------------------------------------------------------------------------



Hmmm, Kultur oder www.? (Linflas, 28. Nov 2001, 15:58:45):
Lies das:

www.hanfnet.org/aktuelles/hanfnews/nesovi.htm

Den Namen Wolfgang Nescovic sollte man in Erinnerung behalten ;)

L.

-----------------------------------------------------------------------------



Re^4: "Coverversion" (Wurzel, 28. Nov 2001, 22:32:26):
~#! rn=Grimmborn rt=1006939974 rg=kultur
~#! tid=1006385104
aber nicht mit dem original uebereinstimmend. american pie ist eins der
lieder, bei denen ich am heftigsten kotzen musste bei der coverversion.

-----------------------------------------------------------------------------



Re^5: "Coverversion" (Mandragon, 28. Nov 2001, 22:32:44):
~#! rn=Wurzel rt=1006983146 rg=kultur
~#! tid=1006385104
Welcher? Der von Madonna? Ich auch.

Ma*

-----------------------------------------------------------------------------



Re^6: "Coverversion" (Mandragon, 28. Nov 2001, 22:33:42):
~#! rn=Mandragon rt=1006983164 rg=kultur
~#! tid=1006385104
Btw. Sagte ich schon, dass der Soundtrack von 'Enemy of the State' geil ist
als Hintergrundmusik beim Metzeln :o)

Ma*

-----------------------------------------------------------------------------



Re^7: "Coverversion" (Mupfel, 28. Nov 2001, 22:34:54):
~#! rn=Mandragon rt=1006983222 rg=kultur
~#! tid=1006385104
Heisst das nicht "Enema..." ?

-mupfel-
(gleich nochmal die blink cds waelzen ;)

-----------------------------------------------------------------------------



Re^7: "Coverversion" (Grimmborn, 28. Nov 2001, 22:37:52):
~#! rn=Mandragon rt=1006983222 rg=kultur
~#! tid=1006385104
Hmm. Ich bin nun leider wirklich nicht so der Musikkenner, was diesen
Negerjazz angeht. Und eigentlich mag ich Madonna auch nicht so sehr (auch wenn
das momentan ja nicht mehr ganz so schick ist wie Britney Spears nicht zu
moegen), aber ich glaube wirklich ihr verwechselt "erstmalig und gewohnt" mit
"gut". Ist da nicht von Madonna auch eine Version von "all by myself", die
ziemlich kongenial ist? Und die Metallica-Covers von Apocalyptica? Und ich
habe hier eine CD mit den "Urversionen" einiger Abba-Stuecke, gespielt von
Abba bevor sie so bekannt waren, hoert sich auch... komisch an, ist aber das
Original.
Naja, was solls...

GdA

-----------------------------------------------------------------------------



passwort: swordfish (Gnome, 28. Nov 2001, 22:39:22):
hi,

wenn ihr euch 10-15 mark sparen wollt, geht NICHT in diesen film.
duerftige story, logische luecken im drehbuch und ein "computergenie",
der innerhalb einer minute (!) auf einem laptop einen 64-bit-key knackt.

das highlight ist eine 10-sek-zeitlupe a la matrix und eine
nackte halle berry (ok, das entschaedigt wieder ein bisschen :).

gnOme

-----------------------------------------------------------------------------



Re: passwort: swordfish (Mandragon, 28. Nov 2001, 22:40:06):
~#! rn=Gnome rt=1006983562 rg=kultur
~#! tid=1006983562
War das net ein 128Bit-Key ?

Ma* - hat nen DVDRip auf nem Server liegen, ffalls den wer will :o)

-----------------------------------------------------------------------------



Re: Re: passwort: swordfish (Mandragon, 28. Nov 2001, 22:40:28):
~#! rn=Mandragon rt=1006983606 rg=kultur
~#! tid=1006983562
Ja. Und er war bestenfalls duerftig, wenn man von HB absieht ;o)

-----------------------------------------------------------------------------



Re: passwort: swordfish (Patryn, 28. Nov 2001, 22:44:36):
~#! rn=Gnome rt=1006983562 rg=kultur
~#! tid=1006983562
also eine nackte halle berry sollte das wert sein ;)
ich finds nur lustig wie sehr sie das letztens in irgendeiner
cinema-sendung rechtfertigte,
da meinte sie, nur fuer die kunst wuerde sie es tun.
da dachte ich mir auch....muss ja nen toller film sein,
kuenstlerisch wertvoll klingt der titel eigentlich nicht ;)

-- 
patryn

-----------------------------------------------------------------------------



Re^8: "Coverversion" (Wurzel, 28. Nov 2001, 22:46:40):
~#! rn=Grimmborn rt=1006983472 rg=kultur
~#! tid=1006385104
apocalyptica ist schon genial. besonders bei den eigenen stuecken, die sie
neuerdings verstaerkt von sich geben. ansonsten gefaellt mir auch hier das
original besser.
abba und madonna kannst du gerne behalten. es gibt nur extrem wenige frauen,
die ordentliche musik machen, und die beste von allen ist schon lange tot.

-----------------------------------------------------------------------------



Re: Re: passwort: swordfish (Wurzel, 28. Nov 2001, 22:48:43):
~#! rn=Patryn rt=1006983876 rg=kultur
~#! tid=1006983562
uebrigens kann ich euch einen tip geben, wenn ihr nackte frauen sehen wollt:
geht mal an einen fkk-strand. da gibts die reichlich.

-----------------------------------------------------------------------------



Re^9: "Coverversion" (Grimmborn, 28. Nov 2001, 22:49:43):
~#! rn=Wurzel rt=1006984000 rg=kultur
~#! tid=1006385104
Stimmt, und von Clara gibts noch nichtmal Aufnahmen...

GdA

-----------------------------------------------------------------------------



Re^3: passwort: swordfish (Patryn, 28. Nov 2001, 22:49:51):
~#! rn=Wurzel rt=1006984123 rg=kultur
~#! tid=1006983562
ja, die kenn ich: wenn du die gesehen hast kannste eine
woche lang keinen sex mehr geniessen ;)

-- 
patryn

-----------------------------------------------------------------------------



Re^10: "Coverversion" (Wurzel, 28. Nov 2001, 22:50:43):
~#! rn=Grimmborn rt=1006984183 rg=kultur
~#! tid=1006385104
clara meinte ich auch nicht :) ein tip: gestorben 1970.

-----------------------------------------------------------------------------



Re^11: "Coverversion" (Varlarion, 28. Nov 2001, 22:52:05):
~#! rn=Wurzel rt=1006984243 rg=kultur
~#! tid=1006385104
Um 1970 rum sind viele Leute gestorben *grybel*

-----------------------------------------------------------------------------



Re^11: "Coverversion" (Grimmborn, 28. Nov 2001, 22:52:21):
~#! rn=Wurzel rt=1006984243 rg=kultur
~#! tid=1006385104
Hat die Callas wirklich so lange noch gelebt? Da schau einner guck...

GdA

-----------------------------------------------------------------------------



Re^12: "Coverversion" (Wurzel, 28. Nov 2001, 22:56:39):
~#! rn=Grimmborn rt=1006984341 rg=kultur
~#! tid=1006385104
voellig falsche faehrte. klassik und gute musik sind bei mir zwei paar schuhe.

-----------------------------------------------------------------------------



Re^13: "Coverversion" (Mupfel, 28. Nov 2001, 22:57:58):
~#! rn=Wurzel rt=1006984599 rg=kultur
~#! tid=1006385104
janis joplin?

-mupfel-

-----------------------------------------------------------------------------



Re^13: "Coverversion" (Grimmborn, 28. Nov 2001, 22:58:22):
~#! rn=Wurzel rt=1006984599 rg=kultur
~#! tid=1006385104
Also bitte, Frau Joplin ist ja nun wirklich nicht der Massstab. Dann schon
lieber den Scott gleichen Namens.

GdA

-----------------------------------------------------------------------------



Re^14: "Coverversion" (Wurzel, 28. Nov 2001, 22:58:58):
~#! rn=Grimmborn rt=1006984702 rg=kultur
~#! tid=1006385104
trotzdem ist janis richtig. es ging um frauen, schon vergessen?

-----------------------------------------------------------------------------



Re^15: "Coverversion" (Grimmborn, 28. Nov 2001, 22:59:10):
~#! rn=Wurzel rt=1006984738 rg=kultur
~#! tid=1006385104
Eben nicht vergessen.

GdA

-----------------------------------------------------------------------------



Re^13: "Coverversion" (Karis, 28. Nov 2001, 23:52:14):
~#! rn=Wurzel rt=1006984599 rg=kultur
~#! tid=1006385104
Von den beiden Paar Schuhen traegst Du maximal eins, oder?
Karis, sucht gute Musik meistens im Klassik-Regal.

-----------------------------------------------------------------------------



Re^15: "Coverversion" (Boing, 29. Nov 2001, 08:56:52):
~#! rn=Wurzel rt=1006984738 rg=kultur
~#! tid=1006385104
Janis Joplin und gute Musik in einem Satz? Wuargh!
Ich find uebrigens die American Pie Cover Version von Madonna recht gut. :)
  Boing

-----------------------------------------------------------------------------



Re^16: "Coverversion" (Apollonia, 29. Nov 2001, 08:59:05):
~#! rn=Boing rt=1007020612 rg=kultur
~#! tid=1006385104
Richtig schlimm fand ich z.B. 'Rebel Yell' von Scooter... nicht, dass die von
Billy Idol richtig gut gewesen waere, aber da hingen so viele
Teenie-Erinnerungen dran... Ich hab mir geschworen, sollte mir dieser Scooter
irgendwann mal begegnen, dann hau ich ihn dafuer.

Apo*
mag generell keine Coverversionen, die sollen sich gefaelligst was eigenes
einfallen lassen

-----------------------------------------------------------------------------



Re^17: "Coverversion" (Boing, 29. Nov 2001, 09:06:42):
~#! rn=Apollonia rt=1007020745 rg=kultur
~#! tid=1006385104
Es gab da auch mal eine exzellente Cover Version von 'I will survive',
das Rumgekreische im Original fand ich immer fuerchterlich.
  Boing

-----------------------------------------------------------------------------



Re^18: "Coverversion" (Apollonia, 29. Nov 2001, 09:08:22):
~#! rn=Boing rt=1007021202 rg=kultur
~#! tid=1006385104
Die mit dem kleinen Maennchen, dem dann ne Bombe auf den Kopf faellt? ;o)

Apo*
grinsend

-----------------------------------------------------------------------------



Re^18: "Coverversion" (Grimmborn, 29. Nov 2001, 09:08:53):
~#! rn=Boing rt=1007021202 rg=kultur
~#! tid=1006385104
Du meinst nicht die mit dem tanzenden Alien? ;-)
Und der amerikanische Kuchen von Madonna ist vor allem in Verbindung mit dem
Video Gaensehautmaterial.

GdA

-----------------------------------------------------------------------------



Re^19: "Coverversion" (Apollonia, 29. Nov 2001, 09:11:08):
~#! rn=Apollonia rt=1007021302 rg=kultur
~#! tid=1006385104
Okay, okay, es war ne Glitzerkugel, keine Bombe. Danke Grimmborn *g*

Apo*

-----------------------------------------------------------------------------



Re^20: "Coverversion" (Boing, 29. Nov 2001, 09:12:16):
~#! rn=Apollonia rt=1007021468 rg=kultur
~#! tid=1006385104
Nein, die meine ich nicht. :)
Hat irgendein Typ gesungen, hab den Namen vergessen. War irgendwie
gemuetlicher als das Original. Ist vielleicht 2-3 Jahre her.
  Boing

-----------------------------------------------------------------------------



Gute Saengerin (Zarniya, 29. Nov 2001, 09:14:31):

Hi, 

Ich denke, es sollten nicht wirklich Stiefel und Sandalen verglichen werden.
Janis hatte was, Callas auch... Ich wuerde ja auch nie entscheiden wollen, ob
Garth Brooks oder Freddie Mercury oder Dave Gahan oder Mike Muir die bessere
Stimme haben... das ist alles ein anderer und nicht zu vergleichender Bereich.

Wer uebrigens mal nen weiblichen Superstar aus den USA testhoeren will, der
wirklich ne sehr gute Stimme hat, aber keine billige Popmusik macht, der hoere
mal bei Trisha Yearwood rein. Fuer Filmfans: Hier lief in den Charts vor
langer Zeit wochenlang "How Do I Live" von LeeAnn Rimes. Trisha sind die
Originalversion, die in dem Film Con Air zu hoeren ist.

Marc

-----------------------------------------------------------------------------



Re^18: "Coverversion" (Catweazle, 29. Nov 2001, 09:20:05):
~#! rn=Boing rt=1007021202 rg=kultur
~#! tid=1006385104
Du meinst die von Cake. Ja, die ist wirklich sehr geil. Mal anmachen :-)

YTC

-----------------------------------------------------------------------------



Re^19: "Coverversion" (Zarniya, 29. Nov 2001, 09:21:05):
~#! rn=Catweazle rt=1007022005 rg=kultur
~#! tid=1006385104
also ich fand zB Whiskey in the Yar von Metallica um Klassen besser als alles,
was ich von irishen Bands gehoert habe.

-----------------------------------------------------------------------------



Re^20: "Coverversion" (Grimmborn, 29. Nov 2001, 09:28:17):
~#! rn=Zarniya rt=1007022065 rg=kultur
~#! tid=1006385104
Und wo wir schon dabei sind: Die amerikanische Nationalhymne finde ich in der
Version von Herrn Hendrix auch interessanter als im Original mit Blaskapelle.

GdA

-----------------------------------------------------------------------------



Re^21: "Coverversion" (Troy, 29. Nov 2001, 09:34:46):
~#! rn=Grimmborn rt=1007022497 rg=kultur
~#! tid=1006385104
ist das Original nicht ein Trio mit Sousaphon, Hotdog und Hamburger?

Troy singt '...and the home of the slave'...

-----------------------------------------------------------------------------



Re^22: "Coverversion" (Elbereth, 29. Nov 2001, 13:17:59):
~#! rn=Troy rt=1007022886 rg=kultur
~#! tid=1006385104
die meisten Nationalhymnen sind doch im Original eben nicht fuer Blaskapelle
geschrieben und hoeren sich entsprechend mit der Kapeele grauenhaft
martialisch an ...

Elberet (haette auch lieber bei nem Fussballspiel der deutschen
Nationalmanschaft nen Streichquartett da sitzen ;) )

-----------------------------------------------------------------------------



Re^21: "Coverversion" (Yendi, 30. Nov 2001, 15:06:08):
~#! rn=Boing rt=1007021536 rg=kultur
~#! tid=1006385104
Wo wir gerade bei schlechten Coverversionen sind:
Bei "Nothing Compares 2 U" laeuft mir auch nach all den Jahren noch eine
Gaensehaut den Ruecken runter -- aber neulich habe ich irgendsoein
Piepse-Girly dieses Lied singen hoeren, mit halbem Synphonieorchester und
~voellig ausdruckslos... wieder ein Lied totgecovert.

YTY

-----------------------------------------------------------------------------



Re^22: "Coverversion" (Grimmborn, 30. Nov 2001, 16:44:25):
~#! rn=Yendi rt=1007129168 rg=kultur
~#! tid=1006385104
"Can't live" von Mariah Carey ist hingegen eine ziemlich gelungene Version,
wie immer man zu Frau Carey stehen mag.

GdA

-----------------------------------------------------------------------------



Re^23: "Coverversion" (Zook, 30. Nov 2001, 16:45:11):
~#! rn=Grimmborn rt=1007135065 rg=kultur
~#! tid=1006385104
Was genau ist eigentlich Sinn und Thema dieses Threads? Ich habe den
Anfang nicht ganz mitbekommen, aber als die Bambis hochliefen, fing ich
an, mich fuer ihn zu interessieren.

Zook.

-----------------------------------------------------------------------------



Re^24: "Coverversion" (Foobar, 30. Nov 2001, 17:00:24):
~#! rn=Zook rt=1007135111 rg=kultur
~#! tid=1006385104
Was genau ist denn Sinn und Thema des Threads in megaschmarrn?

Foobar

-----------------------------------------------------------------------------



Re^25: "Coverversion" (Grimmborn, 30. Nov 2001, 17:01:08):
~#! rn=Foobar rt=1007136024 rg=kultur
~#! tid=1006385104
Moeglichst viele Rehe zu sammeln, was sonst?

GdA

-----------------------------------------------------------------------------



Re^21: "Coverversion" (Jimdigriz,  4. Dez 2001, 16:25:22):
~#! rn=Boing rt=1007021536 rg=kultur
~#! tid=1006385104

Die hiessen "Cake" fand ich auch super.

Ebenso in dieser Reihe ist das Cover (oder Original?)
von "Hit me Baby one more time", weiss nicht wers war
(jedenfalls nicht Britney S.), da kam erst so richtig
gut raus, was das eigentlich fuer ein Super-Lied
war, welches da in den Charts so verheizt wurde.

Irgendsowas hab ich noch im Kopf, was von "Trevis"
glaub ich, aber es faellt mir nimmer ein...

JdG

-----------------------------------------------------------------------------



"Zardoz for EM" (Jimdigriz,  4. Dez 2001, 17:09:56):
Moin,

Den im Subject zitierten Spruch hab ich letztens
bei meinem Berlin-Besuch entdeckt.
Und zwar auf dem Klo in einer Kneipe, ich denk
Ecke Danziger/Dunckerstr. Namen weiss ich nicht mehr,
aber die Schrift war so dunkelblau-leuchtend,
und drinnen wars recht gross. Auf jeden Fall
Nordseite der Danziger Strasse.

Obs noch andere Magier zu aehnlicher ``Beruehmtheit''
gebracht haben?

In diesem Sinne: Zardoz for EM, wenigstens h.c. und
in Abwesenheit, etc.pp.

Ciao,
 JdG

-----------------------------------------------------------------------------



Re^22: "Coverversion" (Montanus,  4. Dez 2001, 17:24:30):
~#! rn=Jimdigriz rt=1007479522 rg=kultur
~#! tid=1006385104
Dir Gruppe heisst TRAVIS und hat noch ne Menge eigener guter Musik
vorzuweisen. Aber Du hast Recht- die Coverversion von Hmbomt ist schon prima. 
Die kann man als Live-Version auf der Single "Driftwood" bekommen, als
Bonus-Track.

-Montanus

-----------------------------------------------------------------------------



Re: "Zardoz for EM" (Varlarion,  4. Dez 2001, 22:44:30):
~#! rn=Jimdigriz rt=1007482196 rg=kultur
~#! tid=1007482196
Mupfel sagt: Anakin wars.

-----------------------------------------------------------------------------



Re^23: "Coverversion" (Zarniya,  5. Dez 2001, 08:39:14):
~#! rn=Montanus rt=1007483070 rg=kultur
~#! tid=1006385104
Also die einzig wahre Version von "Hit me baby one more time" ist die von den
eigentlichen Komponisten. Ist halt wenig bekannt, dass der Song urspruenglich
in Deutsch geschrieben und auch inzwischen im Original aufgenommen worden ist.
Naehere Informationen darueber koennt ihr uebrigens beim Management von
Britney Spears erfragen unter: buero@wiseguys.de

Marc (toternst)

-----------------------------------------------------------------------------



CD-Tip (Linflas,  8. Dez 2001, 11:55:00):
Lang, lang ists her:

Der Neue CD Tip heisst "Spoonface" und kommt vom briten Ben Christophers.
Ruhige Musik, aus dem "New accoustic movement" Irgendwo zwischen Radiohead,
Heather Nova und minimalistischem Elektro. Zu finden auf v2music.

L.

www.benchristophers.com

-----------------------------------------------------------------------------



Into the great wite open (Elizabeth,  8. Jan 2002, 19:23:43):
Musiktipp :
Into the great wite open von..aeh keine Ahnung.. :) aber ist gut ;)
.s

-----------------------------------------------------------------------------



Re: Into the great wite open (Croft,  8. Jan 2002, 19:25:30):
~#! rn=Elizabeth rt=1010514223 rg=kultur
~#! tid=1010514223
Tom Petty, und es heisst 'wide' und nicht 'wite'.

-----------------------------------------------------------------------------



Re: Re: Into the great wite open (Elizabeth,  8. Jan 2002, 19:25:48):
~#! rn=Croft rt=1010514330 rg=kultur
~#! tid=1010514223
Kruemelkacker
.s

-----------------------------------------------------------------------------



Re^3: Into the great wite open (Foobar,  8. Jan 2002, 19:26:20):
~#! rn=Elizabeth rt=1010514348 rg=kultur
~#! tid=1010514223
Warum heisst das eigentlich nicht "white"?

Foobar

-----------------------------------------------------------------------------



Re^4: Into the great wite open (Elizabeth,  8. Jan 2002, 19:26:46):
~#! rn=Foobar rt=1010514380 rg=kultur
~#! tid=1010514223
:) Weil tom petty meinte, dass wide schoener klingt :) 
.s

-----------------------------------------------------------------------------



Re^5: Into the great wite open (Montanus,  9. Jan 2002, 17:43:32):
~#! rn=Elizabeth rt=1010514406 rg=kultur
~#! tid=1010514223
Das mit "white" war Bing Crosby, und der traeumte.

-----------------------------------------------------------------------------



Re^6: Into the great wite open (Linflas, 10. Jan 2002, 14:46:10):
~#! rn=Montanus rt=1010594612 rg=kultur
~#! tid=1010514223
Ja, aber von Wihnachten, und das ist vorbei, auch wenn Mariah Careys
Weihnachtsgedudel immer noch im Radio zu hoeren ist.

L.

-----------------------------------------------------------------------------



urls (Elizabeth, 12. Jan 2002, 03:49:09):
www.rasputin.de mal auf die christfront menschen gehen.. und dann auf die
jugend seite hehe#
www.satanisten.de  man kann seine seele verkaufen ..
www.jesus.com man kann sich mit jesus verabreden und ihn beim baden sehen *g*
.s
.c

-----------------------------------------------------------------------------



Earth 2 (Vanion, 26. Jan 2002, 23:28:47):
Naja, vielleicht nich Kultur, aber doch Kult.

Morgen um 14:55 zeigt RTL den Pilot und dann jeweils sonntags gegen 15:00 eine
einstuendige Episode. 

V*, freut sich drauf.

-----------------------------------------------------------------------------



nettes zwischendurch (Elizabeth,  7. Feb 2002, 12:11:55):
http://vchat.vaxbusters.org/rd :) eineige nette links 
.x

-----------------------------------------------------------------------------



Laotse: Tao te king (Amaryllis, 12. Feb 2002, 16:56:58):
Die Tuechtigen nicht bevorzugen,
so macht man, dass das Volk nicht streitet.
Kostbarkeiten nicht schaetzen,
so macht man, dass das Volk nicht stiehlt.
Nichts Begehrenswertes zeigen,
so macht man, dass des Volkes Herz nicht wirr wird.

Darum regiert der Berufene also:
Er leert ihre Herzen und fuellt ihren Leib.
Er schwaecht ihren Willen und staerkt ihre Knochen
und macht, dass das Volk ohne Wissen
und ohne Wuensche bleibt,
und sorgt dafuer,
dass jene Wissenden nicht zu handeln wagen.
Er macht das Nichtmachen,
so kommt alles in Ordnung.

Ama*, weise nickend.

-----------------------------------------------------------------------------



Re: Laotse: Tao te king (Elaine, 12. Feb 2002, 19:55:58):
~#! rn=Amaryllis rt=1013529418 rg=kultur
~#! tid=1013529418
Siehe hierzu auch Brecht, 'Von der Entstehung des Buches Taoteking
auf dem Wege des Laotsen in die Emigration':

http://www.recmusic.org/lieder/b/brecht/s11.html

Mehr als Lesenswert :-)

Elaine.

-----------------------------------------------------------------------------



Spirit Corpse zerstoeren Dortmund (Beelzebub,  2. Apr 2002, 09:43:03):
~#! on=Beelzebub ot=1017733341 og=allgemeines
Metal !

Ein Grund dafuer, warum ich in letzter Zeit nicht mehr so oft hier bin,
ist weil, ich bin Bassist bei der Zombie-Metal Band Spirit Corpse.
Und genau diese hat letztens einen Plattenvertrag bei STF-Records bekommen.
Bevor in ca. einem Monat unsere erste CD "Love is a Grave" erscheint,
habt ihr bereits am 12.4. im JZ Wellinghofen in Dortmund die Moeglichkeit,
von Insania, Scarecroe und uns umgeblasen zu werden.
Naeheres unter www.spirit-corpse.de

Aber keine Sorge: zur Party am Samstag komme ich in friedlicherer Absicht :-)

Beelze

-----------------------------------------------------------------------------



Re: Spirit Corpse zerstoeren Dortmund (Boing,  2. Apr 2002, 09:46:41):
~#! rn=Beelzebub rt=1017733383 rg=kultur
~#! tid=1017733383
Wie definiert sich 'Zombie-Metal'? :)
  Boing

-----------------------------------------------------------------------------



Re: Re: Spirit Corpse zerstoeren Dortmund (Humni,  2. Apr 2002, 09:48:58):
~#! rn=Boing rt=1017733601 rg=kultur
~#! tid=1017733383
Das wollte ich auch fragen.

Und ich denke, dass ich zumindest die ,klassischen' Metall-Abarten kenne und
auch durchaus schaetze - aber hier raecht sich wohl gerade, dass ich seit ca.
6 Jahren keine Metal-Zeitungen mehr lese. Trash, Speed, Death, Black, Power...
Metal kenn ich.. aber Zombie ist mir auch neu.

Humni

-----------------------------------------------------------------------------



Re^3: Spirit Corpse zerstoeren Dortmund (Muaddib,  2. Apr 2002, 09:49:54):
~#! rn=Humni rt=1017733738 rg=kultur
~#! tid=1017733383
Vielleicht wuenscht man sich dabei, tot zu sein.

-----------------------------------------------------------------------------



Re^3: Spirit Corpse zerstoeren Dortmund (Grimmborn,  2. Apr 2002, 09:50:02):
~#! rn=Humni rt=1017733738 rg=kultur
~#! tid=1017733383
Das ist sicher sowas wie Metallica. Metal von Leuten, die so alt sind dass sie
quasi Zombies sind.

GdA

-----------------------------------------------------------------------------



Re^3: Spirit Corpse zerstoeren Dortmund (Croft,  2. Apr 2002, 09:51:18):
~#! rn=Humni rt=1017733738 rg=kultur
~#! tid=1017733383
Hm.  Evtl in Richtung White Zombie/Rob Zombie?  Das waer zumindest das ich
spontan damit assoziieren wuerde.

-----------------------------------------------------------------------------



Stil-Definition (Beelzebub,  2. Apr 2002, 09:55:34):
Mit Probe mp3-Files isses im Moment schlecht, aber wer am Samstag abend kommt,
kann ja mal per Discman reinhoeren.
Ansonsten mal ein Ausschnitt aus unserem Bandinfo:

Spirit Corpse bezeichnen ihre Musik als Zombie-Metal, denn wie vor dem Tod
alle gleich sind, so macht der Zombie-Metal keinen Unterschied zwischen den
zahlreichen Musikstilen, die Anteil am Gesamterscheinungsbild dieser
Musikrichtung haben.

Groovige Rock?n?Roll Leads treffen auf kalte Stakkatoriffs, mal sphaerische,
mal verspielte Keyboards, Doublebassattacken und eine gehoerige Portion
Spielspass. Das Ergebnis sind atmosphaerische wie eingaengige Songs, in denen
sich klassischer Rock?n?Roll, Doom-, Black- und traditionelle Metalstile das
Zepter in die Hand geben.
Durch mehrstimmige Lead- und Backvocals schaffen es Spirit Corpse jederzeit,
den deutsch- und englischsprachigen Gesang an die Atmosphaere ihrer Musik
anzupassen. Die Bandbreite geht von mehrstimmig clean ueber rockig-rotzig bis
hin zu Growls und Screams.
Auch die Buehenpraesenz der Spirit Corpse weiss zu ueberzeugen. Die -
besonders fuer Untote - aktive Buehenshow sowie Publikumsnaehe und ein
geradezu spruehender Spielspass machen sie zu einer echten Sehenswuerdigkeit.


Naja, war jetzt ein grosser Ausschnitt. Is einigermassen klar jetzt ? Noe ?
*grumpf*

Beelzebub

-----------------------------------------------------------------------------



Re: Stil-Definition (Beelzebub,  2. Apr 2002, 10:00:33):
~#! rn=Beelzebub rt=1017734134 rg=kultur
~#! tid=1017734134
Ach was soll der Geiz, hier noch der Anfang unseres Bandinfos:

Wenn ein Mensch stirbt, so sagt man, teilt sich sein Wesen in Koerper und
Geist. Der Koerper wird wieder zu Erde, denn aus der Erde ward er geschaffen,
waehrend der Geist sich unberuehrt in andere Sphaeren begibt. Was aber
passiert, wenn der Geist gefangen und wieder in seine sterbliche Huelle
zurueckgesteckt wird?

In einer alltaeglichen und scheintoten Welt erhoben sich beseelte Leichen, um
zu verkuenden und zu erzaehlen, zu erwecken und zurueckzufuehren.

-----------------------------------------------------------------------------



Re: Re: Stil-Definition (Grimmborn,  2. Apr 2002, 10:53:50):
~#! rn=Beelzebub rt=1017734433 rg=kultur
~#! tid=1017734134
Also kann man den Stil auch prosaischer beschreiben als "wir haben uns unsere
Sachen ueberall zusammengeklaut, so dass man nicht mehr richtig erkennt was es
mal gewesen ist"? Auf der Stufenfahrt nach Budapest und Wien hat der
mitfahrende Kunstlehrer das architektonische Aequivalent immer "eklektischer
Stil" genannt.

GdA

-----------------------------------------------------------------------------



Re^3: Stil-Definition (Beelzebub,  2. Apr 2002, 10:59:10):
~#! rn=Grimmborn rt=1017737630 rg=kultur
~#! tid=1017734134
Hmmm, also geklaut wuerde ich nicht sagen. Sowas kommt halt dabei raus, wenn
der Keyboarder Power Metal, der Schlagzeuger Black Metal, der Beaster
Rock'n'Roll, der OCOund die anderen beiden halt Metal hoeren. 
Von wegen geklaut: neu is heutzutage doch eh nix mehr. Es gibt halt nur
endlich viele Akkorde. Man muss sie nur neu praesentieren...
Eklektisch klingt aber trotzdem geil :-)

-----------------------------------------------------------------------------



Re^4: Stil-Definition (Zook,  2. Apr 2002, 11:00:16):
~#! rn=Beelzebub rt=1017737950 rg=kultur
~#! tid=1017734134
Hmm.... nun hab ich aber doch ein paar Fragen...

Was ist ein Beaster? Was ist ein OCO? Und vor allem, was genau klingt
an dem Wort "eklektisch" geil? ;)

Zook.

-----------------------------------------------------------------------------



Re^5: Stil-Definition (Beelzebub,  2. Apr 2002, 11:02:21):
~#! rn=Zook rt=1017738016 rg=kultur
~#! tid=1017734134
Also ein Beaster ist ein durchgeknallter Gitarrist und Saenger, ein OCO ein
unter Windows-Telnet entstandener Tippfehler und eklektisch klingt so aehnlich
wie erektisch oder so... aeh, ja.. *erroet*

-----------------------------------------------------------------------------



Re^4: Stil-Definition (Amaryllis,  2. Apr 2002, 11:22:19):
~#! rn=Beelzebub rt=1017737950 rg=kultur
~#! tid=1017734134
"Es gibt halt nur endlich viele Akkorde."

Stimmt. Bei Metal meistens einer oder maximal zwei :-)

Ama*

-----------------------------------------------------------------------------



Re^5: Stil-Definition (Maarg,  2. Apr 2002, 11:23:17):
~#! rn=Amaryllis rt=1017739339 rg=kultur
~#! tid=1017734134
BTW, wieviele gibt's eigentlich?

Maarg - neugierig

-----------------------------------------------------------------------------



Re^4: Stil-Definition (Ark,  2. Apr 2002, 11:26:39):
~#! rn=Beelzebub rt=1017737950 rg=kultur
~#! tid=1017734134
Na da lobe ich mir doch BBB & Co., da hoere ich zumindest immer wieder mal was
Neues ;^) Gut, dass es in der Musik mehr als nur endlich viele Akkorde gibt
*huestel*


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^6: Stil-Definition (Seraphina,  2. Apr 2002, 16:52:44):
~#! rn=Maarg rt=1017739397 rg=kultur
~#! tid=1017734134
Eine ganze Menge :)). Wobei Madonna und "Music" mit einem einzigen auskommen.
Wobei das bei ihr ein Einzelfall ist, Modern Talking hat sich die Akkord-
Sparsamkeit ja irgendwo als Virusinfektion geholt... ;))

Sera

-----------------------------------------------------------------------------



Re^4: Spirit Corpse zerstoeren Dortmund (Daria,  5. Apr 2002, 17:12:33):
~#! rn=Muaddib rt=1017733794 rg=kultur
~#! tid=1017733383
Hm.
Oder man war schon tot und fand das nicht so spannend... da lebendig nicht
mehr moeglich ist, waehlt man untot...
*zuck*
Daria

-----------------------------------------------------------------------------



TV: RTL 2: Seifenopern statt Anime? (Vanion, 23. Jun 2002, 11:59:19):
RTL 2 begraebt offenbar die Plaene fuer die Gruendung eines eigenen Kanals
fuer japanische Animationsserien ("Animes").
Wie die Sueddeutsche Zeitung berichtet, habe man erkannt, dass nach dem
Massaker von Erfurt ein solcher Kanal, der die actiongeladenen
Zeichentrickfilme zeigen sollte, zur Zeit "wenig erwuenscht sei".
Stattdessen plane man nun einen eigenen Sender f|r "Telenovelas", also jenen
endlosen Fortsetzungsserien von TV-Familiendramen, die in Lndern wie Brasilien
und Mexiko grosei".en Erfolg haben.
Noch aber haben die Gesellschafter (Bertelsmann, Disney, Filmhndler Kloiber,
Bauer) dem Projekt aus Muenchen nicht zugestimmt.
--
Quelle: www.wunschliste.de

Meine Meinung: Da koennte man im aktuellen Programm sicher noch mehr
ausmisten. Ich glaube schon lange, das Tom & Jerry, Simpsons und co. alle erst
ab 16 freigegeben werden sollten.

V*, kann sich mal wieder ein mildes Laecheln nich verkneifen.

-----------------------------------------------------------------------------



Kollegialitaet unter Fernsehmoderatoren (Grimmborn, 15. Jul 2002, 00:03:17):
Christine Westermann in Zimmer frei zur Frage was sie gerade ueber den
geschaetzten Moderatorenkollegen Cherno Jobatay gesagt haette:
"...Tschernobyl. Also hoer mal, das ist doch kein Moderator!"
Recht hat sie, die Frau.

GdA

-----------------------------------------------------------------------------



MP3s (Beelzebub, 15. Jul 2002, 08:59:34):
So, fuer alle interessierten gibt es jetzt unter www.spirit-corpse.de und dann
Leichen musizieren 2 Minuten von jedem Song unserer Platte "Love is a grave"
als Mp3.

Und jetzt kaufen :-)ODO gehen :-)

Beelzebub alias Struggler

-----------------------------------------------------------------------------



Monty Python's Flying Circus - OmU (Vanion, 20. Jul 2002, 21:15:41):
Die Kult-Comedy "Monty Python's Flying Circus" kommt zurueck auf
deutsche Bildschirme.

Ab dem 28. August zeigt der hessische Rundfunk im Rahmen der "Late
Lounge" alle 45 Folgen im englischen Originalton mit deutschen
Untertiteln, und zwar in der originalen Reihenfolge.

Quelle: http://www.wunschliste.de/news 

V*

-----------------------------------------------------------------------------



Tad Williams - Otherland (Vanion, 25. Jul 2002, 19:18:24):
Hi,

Ich habe mir vor kurzem den ersten Band des oben erwaehnten Buches geleistet.
Voller Vorfreude fing ich an, zu lesen. Mittlerweile hab ich den Vorspann und
das erste Kapitel hinter mir. Irgendwie ist alles langweilig und
enttaeuschend. 

Da es sich um insgesamt 4 Baende mit insgesamt fast 4000 Seiten handelt
ueberleg ich nun ernsthaft, wieder aufzuhoeren. Wenn das so einfach waere ...
irgendwie mag ich keine halb gelesenen Buecher. 

Deshalb hoff ich auf eure Mithilfe. Wer hat das Buch gelesen? Wird es
spannender? Wie haarstraeubend werden Williams' technische Beschreibungen?

Kurz: Habt ihr Gruende fuer mich das Buch wegzulegen oder gebt ihr mir ein
kraeftiges "Halte Durch!"?

V*

-----------------------------------------------------------------------------



Re: Tad Williams - Otherland (Montanus, 25. Jul 2002, 21:51:21):
~#! rn=Vanion rt=1027617504 rg=kultur
~#! tid=1027617504
Lies den ersten Band. 
Dann leih dir den dritten Band und lies die Zusammenfassung des zweiten Bands
und gib das Buch wieder zurueck.
Dann leih Dir den vierten Band und lies die Zusammenfassung des dritten Bands
und freu dich, dass du dir die Buecher nicht gekauft hast.
Irgendwie schafft es WIlliams nicht, die Faeden wieder zusammenzufuehren, er
macht dafuer recht fleissig neue Handlungsstraenge auf. Vielleicht passiert ja
noch was in Buch 5? 6? 7?

-----------------------------------------------------------------------------



Re: Re: Tad Williams - Otherland (Anthea, 26. Jul 2002, 09:05:04):
~#! rn=Montanus rt=1027626681 rg=kultur
~#! tid=1027617504
Otherland gehoert zu den zwei oder drei Buechern, die ich nicht durchgelesen
habe. Wobei ich an manch anderen Buechern (Zyklus "Memory, Sorrow and Thorn",
Tailchaser's Song) von ihm durchaus Gefallen gefunden habe.

-----------------------------------------------------------------------------



Re^3: Tad Williams - Otherland (Isi, 26. Jul 2002, 09:06:26):
~#! rn=Anthea rt=1027667104 rg=kultur
~#! tid=1027617504
Also mir hats bis Band 3 einschliesslich gefallen.
Band 4 wartet darauf dass gewissen andere Dinge fertig werden...
isi (Moussewerfend)

-----------------------------------------------------------------------------



Re^4: Tad Williams - Otherland (Boing, 26. Jul 2002, 10:54:38):
~#! rn=Isi rt=1027667186 rg=kultur
~#! tid=1027617504
Ich hab alle 4 Baende gelesen und fand sie klasse.
  Boing

-----------------------------------------------------------------------------



Tad Williams (Tangalur, 26. Jul 2002, 12:03:47):
habe damals nur den Drachenbeithron gelesen und nach den ersten 150 recht
langweiligen Seiten waren alle vier Baende sehr spannend. Wenn Otherland im
gleichen Stil ist lohnt es sich bestimmt

-----------------------------------------------------------------------------



Re: Tad Williams (Ark, 26. Jul 2002, 12:55:51):
~#! rn=Tangalur rt=1027677827 rg=kultur
~#! tid=1027677827
Na, gebt dem Autor mal Zeit, die Charaktere zu entwickeln. War eine schoene
Story, und nicht Explosionen, Drachen und Ueberfaelle auf jeder Seite :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Tad Williams (Gorog, 26. Jul 2002, 13:52:04):
~#! rn=Ark rt=1027680951 rg=kultur
~#! tid=1027677827
Hmm. Naja. Irgendwie is das wie mit vielen anderen Buechern auch... Den Hernn
der Ringe hab ich auch 4 mal anfangen muessen bis ich das Ende gelesen hatte.
Bei Otherland bin ich sofort bis zum Ende durch (abgesehn mal von nem halben
jahr Wartezeit auf Band 4). Und ich muss sagen: Wirklich klasse, gelegentlich
etwas zaeh aber das gibts doch fast immer... 
Gorog liebt die Reihe und fragt sich welche Drogen der Williams waerend Band
vier zusich genommen hat.

-----------------------------------------------------------------------------



Robin of Sherwood - Complete Series 1 [UK IMPORT] (Vanion,  5. Aug 2002, 21:58:59):
Hi,

Vielleicht erinnert ihr euch noch an diese Serie. Sie lief vor gut 10
Jahren mal im ZDF. Wem sie nix sagt, der braucht eigentlich nicht
weiterlesen. :)

Ich bin kuerzlich bei Amazon darueber gestolpert, und hab mir fest
vorgenommen, das irgendwann zu kaufen. Nun haben die den Preis fuer
die oben genannte DVD auf 30.99 Euro runtergesetzt.

Das hier soll keine Werbung sein, ich bin weder im Film zu sehen, noch
krieg ich irgendwie Geld hierfuer (hab deshalb auch keinen Link
angegeben)

Ich dachte nur, der eine oder andere wird sich auch freuen, Robin,
Will Scarlett und die "Hooded Man" wiederzusehen. Und natuerlich auch
einen unglaublich fiesen Sheriff of Nottingham.

V*, hat die DVD noch nich in Haenden, erwartet aber sehnsuechtig Post. 

-----------------------------------------------------------------------------



Eminem - The Eminem Show (Zaphob,  6. Aug 2002, 20:00:30):
Falls du dich mal informieren moechtest, warum diese Kiddies so auf Rapmusik
abfahren, oder was daran interessant ist, dann lass dir diese Scheibe ans Herz
legen. Ein sehr ehrliches Album, nicht annaehernd so mainstreamartig wie die
Vorabsingle Without Me. Definitiv sehr interessant.
You need to be able to listen to and understand English to enjoy the lyrics.

Zaphob
gibt ab sofort Musiktipps

-----------------------------------------------------------------------------



kultur (Weltfrieden, 31. Aug 2002, 22:47:58):
gar kein Arikel in der Rubrik Kultur?
na dass will ich dann mal aendern *g*
Kultur-Preisfrage: Wieviel Aufsehen kann man wie erreichen? *g*
und... wozu koennte sowas gut sein
koennte sowas meinem Namen gut bekommen?
soweitfuerheut
ulli (verwirrungverfend)

-----------------------------------------------------------------------------



Re: kultur (Grimmborn, 31. Aug 2002, 22:49:20):
~#! rn=Weltfrieden rt=1030826878 rg=kultur
~#! tid=1030826878
Was auch immer Du rauchst: Du solltest damit aufhoeren, es bekommt Dir nicht.

GdA

-----------------------------------------------------------------------------



Re: Re: kultur (Vanion, 31. Aug 2002, 22:51:17):
~#! rn=Grimmborn rt=1030826960 rg=kultur
~#! tid=1030826878
Um hier mal echte Kultur reinzubringen (und rauchen is in dem Fall nich so OT)

   Bob Marley rulez!

V*. (Chaos RULEZ. Natuerlich trotzdem. :)

-----------------------------------------------------------------------------



Re: Re: kultur (Weltfrieden, 31. Aug 2002, 22:51:21):
~#! rn=Grimmborn rt=1030826960 rg=kultur
~#! tid=1030826878
Grimmborn, wie? Wie begruendest Du Dein so schnelles Urteil?
Der momentane Zustand laesst nur bedingt auf andere Zustaende eines Objektes
schliessen...

-----------------------------------------------------------------------------



Re^3: kultur (Grimmborn, 31. Aug 2002, 22:54:49):
~#! rn=Weltfrieden rt=1030827081 rg=kultur
~#! tid=1030826878
Wie soll ich das verstehen? Dass Du immer so bist, dass es also nichts hilft
wenn Du aufhoerst komische Sachen zu rauchen? Das tut mir aber leid. Ich hoffe
Du hast professionelle Hilfe zur Verfuegung?

GdA

-----------------------------------------------------------------------------



Kulturrevolution (Weltfrieden, 31. Aug 2002, 22:55:44):
Denkt Ihr sowas waere moeglich? Ueberhaupt schon mal drueber nachgedacht?
Warum nicht?
Meine These: Ohne sowas wie ein revolutionaerer Umschwung im kulturellen
(er)leben ist Weltfrieden im Moment nicht machbar
weiter: mit Hilfe einer virtuellen (real)Welt wird diese Kulturveraenderung
allein moeglich sein.
greetz
ulli (hmmmwerfend)

-----------------------------------------------------------------------------



Re: Kulturrevolution (Linflas, 31. Aug 2002, 22:56:38):
~#! rn=Weltfrieden rt=1030827344 rg=kultur
~#! tid=1030827344
*waelz*

L.

-----------------------------------------------------------------------------



Re: Re: Kulturrevolution (Grimmborn, 31. Aug 2002, 22:57:45):
~#! rn=Linflas rt=1030827398 rg=kultur
~#! tid=1030827344
Ja, interessante Drogeneffekte zum Wochenende. Auch das ist Kultur, irgendwie.

GdA

-----------------------------------------------------------------------------



Todesfuge (Grimmborn, 31. Aug 2002, 23:01:24):
Damit hier auch mal ein wenig echte Kultur drin steht, eins der
wirkungsvollsten Gedichte aller Zeiten:

Paul Celan

Todesfuge

Schwarze Milch der Fruehe wir trinken sie abends
wir trinken sie mittags und morgens wir trinken sie nachts
wir trinken und trinken
wir schaufeln ein Grab in den Lueften da liegt man nicht eng
Ein Mann wohnt im Haus der spielt mit den Schlangen der schreibt
der schreibt wenn es dunkelt nach Deutschland dein goldenes Haar Margarete
er schreibt es und tritt vor das Haus es blitzen die Sterne er pfeift seine
   Rueden herbei
er pfeift seine Juden hervor laesst schaufeln ein Grab in der Erde
er befiehlt uns spielt auf nun zum Tanz

Schwarze Milch der Fruehe wir trinken dich nachts
wir trinken dich morgens und mittags wir trinken dich abends
wir trinken und trinken
Ein Mann wohnt im Haus und spielt mit den Schlangen der schreibt
der schreibt wenn es dunkelt nach Deutschland dein goldenes Haar Margarete
Dein aschenes Haar Sulamith wir schaufeln ein Grab in den Lueften da liegt 
   man nicht eng

Er ruft stecht tiefer ins Erdreich ihr einen ihr andern singet und spielt
er greift nach dem Eisen im Gurt er schwingts seine Augen sind blau
stecht tiefer die Spaten ihr einen ihr andern spielt weiter zum Tanz auf

Schwarze Milch der Fruehe wir trinken dich nachts
wir trinken dich mittags und morgens wir trinken dich abends
wir trinken und trinken
ein Mann wohnt im Haus dein goldenes Haar Margarete
dein aschenes Haar Sulamith er spielt mit den Schlangen

Er ruft spielt suesser den Tod der Tod ist ein Meister aus Deutschland
er ruft streicht dunkler die Geigen dann steigt ihr als Rauch in die Luft
dann habt ihr ein Grab in den Wolken da liegt man nicht eng

Schwarze Milch der Fruehe wir trinken dich nachts
wir trinken dich mittags der Tod ist ein Meister aus Deutschland
wir trinken dich abends und morgens wir trinken und trinken
der Tod ist ein Meister aus Deutschland sein Auge ist blau
er trifft dich mit bleierner Kugel er trifft dich genau
ein Mann wohnt im Haus dein goldenes Haar Margarete
er hetzt seine Rueden auf uns er schenkt uns ein Grab in der Luft
er spielt mit den Schlangen und traeumet der Tod ist ein Meister aus 
   Deutschland

dein goldenes Haar Margarete
dein aschenes Haar Sulamith


GdA

-----------------------------------------------------------------------------



Re: Kulturrevolution (Vanion, 31. Aug 2002, 23:02:24):
~#! rn=Weltfrieden rt=1030827344 rg=kultur
~#! tid=1030827344
Bitte bitte bitte arbeite an Deiner Artikelformatierung. Ich krieg
Kopfschmerzen beim lesen.

V*, sonst eigentlich nich maekelig.

-----------------------------------------------------------------------------



ups (Weltfrieden, 31. Aug 2002, 23:07:11):
naja, der artikel davor hatte wohl zu lange Zeilen...
aber trotzdem um um mal fuer einen Moment auf den Punkt zu kommen:
ja, ich bin grad bekifft *g* aber is Wochende und fuer mich ist das ok.
ansonsten ist das keine Grund andere Thesen nur deshalb ohne jede weiter
kein Grund irgendwelche meiner Thesen von vornherein zu verunglimpfen :-)
These: Weltfrieden funktioniert!
These Weltfrieden ist "relativ" leicht erreichbar.
Ich koennte mehrere Vorraussetzungen nennen *g*
erstmal eine, mit der der Threat sicher neue Spannung erhaelt... *fg*
Wenn mir sagen wir mal 100 faehige Programmierer (verschieden Richtungen),
fuer vielleicht weissichnichtwieviele Stunden sich meine Ideen erklaeren
lassen wuerden
und dann vielleicht ein Jahr Zeit und Freude daran haetten diese (zusammen mit
eigenen Ergaenzungen) umzusetzen
dann bin ich sicher, waere eine kultur- und friedens- und wirtschaftliche
revolution moeglich,
wie sich sich kaum einer auszumalen vermag *g*
so - damit hab ich mich fuers erste hoffentlich ausreichend vorgestellt ;-)
Peace!
usw

-----------------------------------------------------------------------------



formatierung (Weltfrieden, 31. Aug 2002, 23:09:52):
hm sorry wegen dem format
sind erste Texte in dieser Zeitung
nicht dran gewoehnt

-----------------------------------------------------------------------------



Re: formatierung (Grimmborn, 31. Aug 2002, 23:12:09):
~#! rn=Weltfrieden rt=1030828192 rg=kultur
~#! tid=1030828192
Ja, damit hast Du Dich hoffentlich ausreichend vorgestellt.
Und wie genau sollen irgendwelche Programme die 70% der Weltbevoelkerung
beeinflussen, die nichtmal theoretisch Zugang zu Computern haben?

GdA

-----------------------------------------------------------------------------



fute frage :) (Weltfrieden, 31. Aug 2002, 23:14:56):
Wie kommst Du darauf, das 70% der Weltbevoelkerung fuer
den Weltfrieden _entscheidend_ sind?

-----------------------------------------------------------------------------



Endlich mal wieder was huebsches (Linflas, 31. Aug 2002, 23:15:24):
Allen BerlinerInnen und BesucherInnen der Rei...aeh...Bundeshauptstadt mag es
vielleicht von bekannt sein: Blinkenlights vom ccc. Nun hat sich Tim Pritlove
im Rahmen des Nuit Blanche Kunst- und Kulturfestivals in Paris was neues
einfallen lassen.

Guckt mal rein unter:

http://www.blinkenlights.de/arcade/

L.

-----------------------------------------------------------------------------



Re: fute frage :) (Grimmborn, 31. Aug 2002, 23:16:44):
~#! rn=Weltfrieden rt=1030828496 rg=kultur
~#! tid=1030828496
Ganz einfach: Du wirst Idioten nicht 100%ig ausrotten koennen, daher bist Du
darauf angewiesen dass praktisch jeder in der Lage ist, sich selbstaendig
gegen Idioten zu wehren. Der ungebildete Inder an sich ist harmlos, aber wenn
er einen Deppen findet der ihn entsprechend indoktriniert, droht er auf einmal
mit der Atombombe.

GdA

-----------------------------------------------------------------------------



Software (Weltfrieden, 31. Aug 2002, 23:17:54):
mit einer Software die ein paar bestimmte
viele noch genau bestimmbare
Anfordeungen erfuellt, wie z.B.
weitgehend realistische Simulation der Realitaet
dadurch (fast) moegliche ortsunabhaengige verstaendigung
und natuerlich ein wenig mehr... :-)

-----------------------------------------------------------------------------



Re: Software (Grimmborn, 31. Aug 2002, 23:19:27):
~#! rn=Weltfrieden rt=1030828674 rg=kultur
~#! tid=1030828674
Und wie stellst Du sicher, dass sich z.B. Saddam Hussein von der boesen,
westlichen Software beeinflussen laesst?

GdA

-----------------------------------------------------------------------------



Re: Endlich mal wieder was huebsches (Weltfrieden, 31. Aug 2002, 23:22:03):
~#! rn=Linflas rt=1030828524 rg=kultur
~#! tid=1030828524
schoenes Beispiel :-)
Leider ist sowas oertlich noch viel zu begrenzt
und mobile Geraete zuwenig verbreitet
zu klein
und noch nicht ausreichend vernetzt
bzw. bezahhlbar

-----------------------------------------------------------------------------



Saddam (Weltfrieden, 31. Aug 2002, 23:24:59):
Saddam wird im ersten Schritt nur indirekt
von der Software beeinflusst
durch neue Moeglichkeiten bei den Menschen,
die Einfluss auf ihn haben.

-----------------------------------------------------------------------------



Re: Saddam (Bambi,  1. Sep 2002, 00:34:33):
~#! rn=Weltfrieden rt=1030829099 rg=kultur
~#! tid=1030829099
Lies mal bitte GENAU "hilfe mpa".
Achte auf den Abschnitt, in dem "antworte" erklaert wird.
Danke.

-----------------------------------------------------------------------------



Neues JBO-Album (Humni, 15. Sep 2002, 10:48:53):
Huhu,

ich habs nur zufaellig rausgefunden, dass JBO seit 6 Tagen ein neues Album auf
dem Markt haben. Es heisst ,,Rosa Armee Fraktion'' und mir persoenlich
gefaellts noch ein wenig besser als Sex Sex Sex, auch wenn's wieder ohne
,,guten Tag zum Sterben'' auskommen muss.

Wer JBO kennt und mag wird's geniessen, wer mit deren Musik noch nie was
anfangen konnte wird auch das Album nicht moegen - auch wenn im Anfangslied
festgestellt wird, dass sich JBO auf Niveau reimt sprechen Zeilen wie ,,Was
sagt mein Penis dazu?'' fuer sich...

Humni

-----------------------------------------------------------------------------



Kino kino v2.0 (Gorog, 25. Sep 2002, 02:05:00):
Sodele, komme gerade aus ner Sneak, und irgendwie musste ich direkt mal ne
Empfehlung fuer K-Pax aussprechen. Dabei handelt es sich um einen recht
ruhigen, amuesanten und intelligenten Film, in dem Kevin Spacey und Jeff
Bridges so richitg auf trumpfen. Wie auch immer.
Kurzinhalt: Verwirrter Kerl (Spacey) wird in eine Psyhiatrie eingewiesen und
behauptet er sei ein Ausserirdischer. Der ansaessige Psychiater (Bridges)
versucht natuerlich ihn zu heilen. Und man fragt sich bis nach dem Ende, ob
der Kerl nun wirklich ein Ausserirdischer ist, oder einfach nur ein
astronomisch versierter Irrer." |Einfach genial der Film, und nicht nur weil
Spacey mal wieder mindestens die Klasse seiner Rolle in "Die ueblichen
Verdaechtigen" erreicht.  Also frei nach Herrn Schmidt: "Schaubefehl!" 
| 
mfGorog

behobene Fehler: 1 (danke an Dotz)

-----------------------------------------------------------------------------



Re: Kino kino v2.0 (Marcus, 25. Sep 2002, 08:52:40):
~#! rn=Gorog rt=1032912300 rg=kultur
~#! tid=1032912300
Seltsam, K-PAX hab ich auf dem Flug von Amiland nach Deutschland im _Maerz_
gesehen. Ohne Kopfhoerer, insofern weiss ich net worums ging.

Nur seltsam, das er jetzt erst hier in die Kinos kommt ,)

Ciao, Marcus

-----------------------------------------------------------------------------



Re: Re: Kino kino v2.0 (Zarniya, 25. Sep 2002, 09:40:40):
~#! rn=Marcus rt=1032936760 rg=kultur
~#! tid=1032912300
wahrscheinlich ist es nicht so einfach, das interlektuelle Gelaber von Spacey
so schnell zu uebersetzen... :)

-----------------------------------------------------------------------------



Re: Re: Kino kino v2.0 (Vincent, 25. Sep 2002, 10:56:09):
~#! rn=Marcus rt=1032936760 rg=kultur
~#! tid=1032912300
So seltsam ist das nicht. Amerikanische filme laufen oft mit erheblicher
Verzoegerung in deutschen und/oder europaeischen Kinos. Fluggesellschaften
kriegen uebrigens manche Filme noch vor dem amerikanischen bzw. deutschen
Kinostart ins Bordkino.

Umgekehrt kommt das auch vor: Der Film "Das Experiment" laeuft jetzt erst
in den amerikanischen Kinos an, obwohl er in Deutschland bereits auf
Premiere gesendet wird. Den amerikanischen Trailer kann man auf apple.com
in der Abteilung Quicktime anschauen. Ist schon interessant, wie die
Amerikaner einen deutschen Film anteasern und vor allem wie die den
Filmtitel aussprechen. ;-)

Gruss
Vincent

-----------------------------------------------------------------------------



Re^3: Kino kino v2.0 (Maarg, 25. Sep 2002, 19:14:16):
~#! rn=Vincent rt=1032944169 rg=kultur
~#! tid=1032912300
Der wird drueben nicht mit "The Experiment" oder so aehnlich uebersetzt?

Kommt der ueberhaupt synchronisiert in die Kinos oder wird der untertitelt?
Wie wird da generell mit auslaendischen Filmen verfahren?

Gruss,

   Maarg

-----------------------------------------------------------------------------



Re^4: Kino kino v2.0 (Croft, 25. Sep 2002, 19:23:34):
~#! rn=Maarg rt=1032974056 rg=kultur
~#! tid=1032912300
So wie ich Amis einschaetze muss ein Film synchronisiert sein, sonst
schaut ihn sich keiner an ...

-----------------------------------------------------------------------------



Re^4: Kino kino v2.0 (Phobos, 25. Sep 2002, 19:23:56):
~#! rn=Maarg rt=1032974056 rg=kultur
~#! tid=1032912300
Wundert mich, dass ueberhaupt ein auslaendischer Film
in die amerikanischen Kinos kommt. Machen die nicht
normalerweise ein Remake?

Phobos

-----------------------------------------------------------------------------



Re^5: Kino kino v2.0 (Elberet, 25. Sep 2002, 19:26:27):
~#! rn=Phobos rt=1032974636 rg=kultur
~#! tid=1032912300
also lola rennt war wohl nen grosser erfolg bei den amis

Elbi

-----------------------------------------------------------------------------



Re^6: Kino kino v2.0 (Maarg, 25. Sep 2002, 19:31:54):
~#! rn=Elberet rt=1032974787 rg=kultur
~#! tid=1032912300
Und "Das Leben ist schoen" hat ja IIRC sogar den Oscar als Bester Film
bekommen.

Maarg

-----------------------------------------------------------------------------



Re^5: Kino kino v2.0 (Gnome, 25. Sep 2002, 21:51:10):
~#! rn=Croft rt=1032974614 rg=kultur
~#! tid=1032912300
falsch.
"der bewegte mann" wurde mit untertiteln gezeigt und war ein
ziemlicher erfolg. nur die lacher kamen immer etwas verzoegert... :)

gnOme

-----------------------------------------------------------------------------



Re^6: Kino kino v2.0 (Maarg, 25. Sep 2002, 21:52:12):
~#! rn=Gnome rt=1032983470 rg=kultur
~#! tid=1032912300
Wie haben die Amis denn auf "Bull Power" reagiert? ;o)

Maarg

-----------------------------------------------------------------------------



Re^7: Kino kino v2.0 (Grimmborn, 25. Sep 2002, 23:47:14):
~#! rn=Maarg rt=1032983532 rg=kultur
~#! tid=1032912300
Der _normale_ Weg fuer gute, auslaendische Filme in den USA (natuerlich gibt
es Ausnahmen) ist, dass es ein amerikanisches Remake gibt, dass dann ein
Erfolg wird, siehe den Kaefig voller Narren.

GdA

-----------------------------------------------------------------------------



Re^4: Kino kino v2.0 (Vincent, 26. Sep 2002, 00:11:30):
~#! rn=Maarg rt=1032974056 rg=kultur
~#! tid=1032912300
Der Film heisst tatsaechlich auch in den USA "Das Experiment". Der Film ist
synchronisiert. Da sind die Amis ganz wie wir Deutschen. Hierzulande gab es
immer mal wieder Versuche Filme unsynchronisiert im OT und mit/ohne
Untertitel zu zeigen, mit dem Ergebnis, dass die Mehrheit der Deutschen
in solche Filme nicht "reingehen". Ganz im Gegenteil zu den Schweizern und
Niederlaendern z.B. bei denen O-Ton mit Untertitel ueblich und akzeptiert ist.
(Soweit ich mich erinnere jedenfalls).

Gruss
Vincent

-----------------------------------------------------------------------------



Re^5: Kino kino v2.0 (Mandragon, 26. Sep 2002, 00:12:46):
~#! rn=Vincent rt=1032991890 rg=kultur
~#! tid=1032912300
Also bei englischen Filmen ziehe ich ja OoU vor .... :-)

Ma* (war laenger 'drueben')

-----------------------------------------------------------------------------



Re^6: Kino kino v2.0 (Grimmborn, 26. Sep 2002, 00:15:58):
~#! rn=Mandragon rt=1032991966 rg=kultur
~#! tid=1032912300
Ich auch, aber bei amerikanischen bin ich dann wieder ueber Untertitel
gelegentlich recht froh. Da verstehe ich Train Spotting oder The Full Monty
(beide OoU gesehen) besser als die ganzen amerikanischen Sachen. Und
Braveheart auf schottisch mit australischem Akzent war auch ziemlich cool.

GdA

-----------------------------------------------------------------------------



Re^6: Kino kino v2.0 (Vincent, 26. Sep 2002, 00:21:07):
~#! rn=Mandragon rt=1032991966 rg=kultur
~#! tid=1032912300
Kurz noch erwaehnt:

Ich habe mal einen Ausschnitt aus einer Schweizer Version eines amerikanischen
Filmes gesehen. Der war unten mit dt. Untertitel versehen und parallel oben
mit franzoesischen Untertitel. Das ist dann schon nicht mehr so ganz
uebersichtlich. ;-)

Gruss
Vincent

-----------------------------------------------------------------------------



Re^7: Kino kino v2.0 (Mandragon, 26. Sep 2002, 00:23:17):
~#! rn=Vincent rt=1032992467 rg=kultur
~#! tid=1032912300
Und rechts von oben nach unten italienisch und links raetoromanisch? ;-)

Ma*

-----------------------------------------------------------------------------



Re^8: Kino kino v2.0 (Cuchullin, 26. Sep 2002, 03:55:13):
~#! rn=Mandragon rt=1032992597 rg=kultur
~#! tid=1032912300
Rechts von oben nach unten wohl eher japanisch. ;)

Falsche Rubrik, Jungs.


-----------------------------------------------------------------------------



Re^9: Kino kino v2.0 (Householder, 26. Sep 2002, 09:09:56):
~#! rn=Cuchullin rt=1033005313 rg=kultur
~#! tid=1032912300
hauptsache der film is nich auch noch auf schweizer-"doitsch" synchronisiert

-----------------------------------------------------------------------------



Re^10: Kino kino v2.0 (Montanus, 26. Sep 2002, 18:51:39):
~#! rn=Householder rt=1033024196 rg=kultur
~#! tid=1032912300
Schaut euch mal "Out of Rosenheim" im Original an. Das ist Bayerisch und
Amerikanisch.
Interessant uebrigens, dass der FIlm in der US-Version "Bagdad Cafe" heisst,
und dass das trotz Saddam nicht geaendert wurde.

-----------------------------------------------------------------------------



Re^5: Kino kino v2.0 (Gast1, 29. Sep 2002, 02:18:39):
~#! rn=Vincent rt=1032991890 rg=kultur
~#! tid=1032912300
In der Tat gibt es hier beides. Synchronisiert und O-Ton mit Untertitel.

In Zuerich (City) selbst sind fast alle Filme ab 20:00 Uhr in Originalton.
Ausserhalb (auf dem Lande, bez. nicht direkt in der Stadt) ist meistens
synchronisiert. So kanns sich jeder aussuchen, und die Menge der Zuschauer
zeigen doch, das es den meisten nicht wirklich drauf ankommt, und beim
Grossteil der Beveolkerung beides akzeptiert wird.

- Anoris

-----------------------------------------------------------------------------



Botanischer Garten in Karlsruhe (Vincent, 10. Okt 2002, 10:55:52):
Der Botanische Garten in Karlsruhe soll bekanntermassen (zumindest bei den
Karlsruhern ist das wahrscheinlich bekannt) eine Umstrukturierung erfahren.
Um dies zu verhindern wurde eine Buergerinitiative ins Leben gerufen. Auf
Wunsch unserer theoretischen Mudderin gebe ich hier nun folgendes
bekannt:
Heute Abend am 10.10.2002 um 20:00 gibt die Gruenderin der Initiative
auf dem dritten Programm (SWR3) im TV ein Interview ueber die Thematik,
Probleme, Infos etc.

Dies den Interessierten zur Info.

Gruss
Vincent

-----------------------------------------------------------------------------



Nov.18. Mannheim - Capitol (Germany) (Strohalm, 10. Okt 2002, 12:49:54):
Dort spielen:

BIOHAZARD +

AGNOSTIC FRONT, HATEBREED, DISCIPLINE, ALL BORO KINGS, DEATH THREAT & BORN
FROM PAIN

Is wer dort?

Haelmchen

-----------------------------------------------------------------------------



Spiel 2002 (Gorog, 12. Okt 2002, 19:11:17):
Moins

Da sich noch keiner dazu bereit erklaert hat die diesjaehrige Spiel2002
anzukuendigen (uebrigens wieder mit grossem Comic-Teil) wered ich das mal tun.
Also diese Woche 17. bis 19.10 kann man wieder Spiele testen und natuerlich
auch kaufen bis der Arzt kommt. Ich werd wohl am 17. (Donnerstag) da sein,
vielleicht sieht man sich.  

mfGorog

Ps: Nein ich bin kein Veranstallter und bekomme auch kein Geld von Schmid,
Amigo, Queen oder sonst einem Austeller (;

Oh bevor ichs vergesse, sie findet wie immer in Essen in den Messehallen
statt.

-----------------------------------------------------------------------------



Zitat des Tages (Amaryllis, 13. Okt 2002, 20:44:04):
"Frauen, deren Rede plaetschert wie das Wasser der Quelle, rauben dem Mann die
Ruhe."

Quelle: Film "Winnetou II" mit Cleve Barker

Ama*, weise nickend.

-----------------------------------------------------------------------------



Re: Zitat des Tages (Grimmborn, 13. Okt 2002, 20:44:37):
~#! rn=Amaryllis rt=1034534644 rg=kultur
~#! tid=1034534644
Da spricht der echte Kenner.
Der Mann heisst "Lex Barker". Naja, kann ja mal passieren...

GdA

-----------------------------------------------------------------------------



Re: Re: Zitat des Tages (Foobar, 13. Okt 2002, 20:45:15):
~#! rn=Grimmborn rt=1034534677 rg=kultur
~#! tid=1034534644
Und der andere Barker heisst "Clive".

Gruss,

   Foobar

-----------------------------------------------------------------------------



Re: Re: Zitat des Tages (Amaryllis, 13. Okt 2002, 20:45:51):
~#! rn=Grimmborn rt=1034534677 rg=kultur
~#! tid=1034534644
Ich wusste, dass mir da ein Lapsus unterlaeuft... schoen, dass es Leute gibt
die sowas begierig aufnehmen :-)

Ama*, gibt gerne Steilvorlagen.

-----------------------------------------------------------------------------



Re: Zitat des Tages (Liara, 13. Okt 2002, 21:41:27):
~#! rn=Amaryllis rt=1034534644 rg=kultur
~#! tid=1034534644
Ich empfehle dir mal

John Gray: Maenner sind anders, Frauen auch. (Mosaik, 8.50 Euro)

Liara

-----------------------------------------------------------------------------



Re: Re: Zitat des Tages (Mupfel, 13. Okt 2002, 21:46:25):
~#! rn=Liara rt=1034538087 rg=kultur
~#! tid=1034534644
Stehen da auch so nette Zitate? ;)

-mupfel-

-----------------------------------------------------------------------------



damit das mg nicht ganz verkuemmert, ein Gedicht (Alboin, 26. Nov 2002, 22:09:17):
Reitergedicht

              Sag mal, Reiter! Ja was ist?
              Wie kommts, da du alleine bist?
              Wo ist dein Pferd?

              Ja, das ist so... Verrat es nur!
              Der Gaul macht grad das Abitur-
              Auch nicht verkehrt.
(Robert gernhardt)

-----------------------------------------------------------------------------



Re: damit das mg nicht ganz verkuemmert, ein Gedicht (Humni, 26. Nov 2002, 22:25:12):
~#! rn=Alboin rt=1038344957 rg=kultur
~#! tid=1038344957
Hehe, von dem kenn ich auch noch eins.

Der See laedt ein zum Bade.
Zugefroren
Schade


-----------------------------------------------------------------------------



Bowling for Columbine (Eldaron, 22. Dez 2002, 12:42:08):
Auch wenn es schon ein bisschen spaet ist; Ich war gestern in dem Film
'Bowling for Columbine'. Es ist nicht der uebliche Hollywood-Schinken, aber
ein Film, der von mir dennoch, oder gerade deswegen das Praedikat 'Sehr gut'
bekommt. Der Film ist eine Art Dokumentarfilm, der mit einem zynischen Humor
die Waffenhandhabung der US-Amerikaner beleuchtet und dabei die Geschichte der
USA auf eine Art und Weise aufrollt, wie sie wohl in keinem Geschichtsbuch zu
finden ist.

Wer mal wieder einen Film sehen will, ueber den man nachher noch stundenlang
diskutieren kann, dem sei 'Bowling for Columbine' wirklich ans Herz gelegt.

Eldaron

-----------------------------------------------------------------------------



Buchempfehlung des Monats (Gorog,  5. Jan 2003, 20:24:08):
Hmm naja, eigentlich Empfehlung fuer den Monat November, aber was solls hab
das Buch erst zu Weihnachten in den Haenden halten koennen. 
Es geht um "Night Watch" von Terry Pratchett, dummerweise gibts das Ding
momentan nur gebunden, aber dieses Mal ist das Buch den Aufpreis wirklich wert
(es sei denn man kann noch bis zum Paperback warten). Eigentlich hab ich mir
ja mehr oder weniger geschworen keine gebundenen Pratchetts mehr zu kaufen,
weil das Preis/Seiten/Inhalt-Verhaeltniss bisher absolut nicht gepasst hat.
Aber naja bei Buechern in denen die NachtWache besonders deren Commander die
Hauptrolle uebernimmt, der dann auch noch in das falsche Hosenbein der Zeit
gelangt, kann ich einfach nicht widerstehen.

Gorog sagt: Wunderbarer Vorfolger der Wachenreihe und dem "Thief of Time".

-----------------------------------------------------------------------------



Gangs of New York (Gorog,  3. Mar 2003, 01:35:05):
Moins
Ich machs mal kurz (der Film war naemlich ziemlich lang):
Kann mir jemand (meinetwege auch Jemand) sagen was der teifere Sinn von Gangs
of New York ist? Ich hab naemlich nicht wirklich einen gefunden. Aber da ichs
mit anspruchsvollen Filmen nicht so habe, ist es gut moeglich, dass ich den
uebersehn habe.

Gorog fand den Film, obwohl einwenig lang, trotzdem recht gut.

-----------------------------------------------------------------------------



Re: Gangs of New York (Sarkon,  3. Mar 2003, 11:07:01):
~#! rn=Gorog rt=1046651705 rg=kultur
~#! tid=1046651705
Glaub der Film sollte die Entstehung und den Werdegang New Yorks
verdeutlichen. New York entstand aus der Gosse, wurde gross durch eben die
Gangs rund um die Five Points :) stay real! Vll eine Art Parallele zum
american dream, vom Gangmitglied zu Sheriff, was weiss ich :) Scorses hat
immerhin wieviel Jahre gebraucht? 40? Da kann man sein Ziel schonmal aus den
Augen verlieren :)
Sarkon

-----------------------------------------------------------------------------



Funstueck (Tangalur,  5. Mar 2003, 08:52:03):
ZWILLINGE IN DER GEBAERMUTTER UNTERHALTEN SICH

Glaubst du eigentlich an ein Leben nach der Geburt? Ja, das gibt es.
Unser Leben hier ist nur dazu gedacht, dass wir wachsen und uns
auf das Leben nach der Geburt vorbereiten, damit wir stark genug sind
fuer das was uns erwartet.Bloedsinn, das gibt es doch nicht. Wie
soll denn das ueberhaupt aussehen, ein Leben nach der Geburt? Das weiss
ich auch nicht genau. Aber es wird sicher viel heller als hier sein.
Und vielleicht werden wir herumlaufen und mit dem Mund essen? So ein
Unsinn! Herumlaufen, das geht doch gar nicht. Und mit dem
Mund essen, so eine komische Idee. Es gibt doch die Nabelschnur, die uns
ernaehrt. Ausserdem geht das Herumlaufen gar nicht, die
Nabelschnur ist ja jetzt schon viel zu kurz. Doch es geht ganz
bestimmt. Es wird eben alles nur ein bisschen anders. Es ist noch nie
einer zurueckgekommen von 'nach der Geburt'. Mit der Geburt ist das Leben
zu Ende. Und das Leben ist eine Quaelerei und dunkel.. Auch
wenn ich nicht so genau weiss, wie das Leben nach der Geburt aussieht,
jedenfalls werden wir dann unsere Mutter sehen und sie wird fuer
uns sorgen. Mutter? Du glaubst an eine Mutter? Wo ist sie denn bitte?
Na hier, ueberall um uns herum. Wir sind und leben in ihr und
durch sie. Ohne sie koennen wir gar nicht sein! Quatsch! Von einer
Mutter habe ich noch nie etwas bemerkt, also gibt es sie auch nicht.

Doch, manchmal, wenn wir ganz still sind, kannst du sie singen hoeren.
Oder spueren, wenn sie unsere Welt streichelt....**

-----------------------------------------------------------------------------



Enterprise (Vanion, 11. Mar 2003, 20:35:07):
Samstag, 15. Maerz, 20:15 Uhr, SAT.1

Mehr sag ich nicht, wens interessiert, kann ja danach surfen.

V*

-----------------------------------------------------------------------------



2001 - Odyssee im Weltraum (Vanion, 20. Mar 2003, 19:37:24):
kommt heute 20:45 auf Arte.

1.) Wenn Du den Film liebst: Schau ihn.
2.) Wenn Du den Film hasst:  Arme Sau.
3.) Wenn Du den Film nicht kennst: Erst 2.) danach 1.)

V*, 1.)

-----------------------------------------------------------------------------



Re: 2001 - Odyssee im Weltraum (Alkohol, 20. Mar 2003, 19:42:55):
~#! rn=Vanion rt=1048185444 rg=kultur
~#! tid=1048185444
ich bin wohl ne arme Sau ;)


-----------------------------------------------------------------------------



Re: Re: 2001 - Odyssee im Weltraum (Boing, 21. Mar 2003, 09:44:11):
~#! rn=Alkohol rt=1048185775 rg=kultur
~#! tid=1048185444
Als arme Sau wuerde ich mich nicht bezeichnen, da ich den Fil nicht
hasse, ich finde ihn einfach nur zum gaehnen langweilig und wuerde
ihn nie im Leben freiwillig ein zweites mal anschauen.
  Boing

-----------------------------------------------------------------------------



Re^3: 2001 - Odyssee im Weltraum (Alkohol, 21. Mar 2003, 10:53:12):
~#! rn=Boing rt=1048236251 rg=kultur
~#! tid=1048185444
ok hassen tu ich ihn auch nicht, aber gaehnend langweilig triffts ganz gut


-----------------------------------------------------------------------------



Re^3: 2001 - Odyssee im Weltraum (Bambi, 21. Mar 2003, 11:12:12):
~#! rn=Boing rt=1048236251 rg=kultur
~#! tid=1048185444
Gaehnend langweilig als Synonym fuer einen Film habe ich bisher nur der mit
dem Wolf tanzt vergeben, aber ich habe den nie ganz gesehen.

-----------------------------------------------------------------------------



Re^4: 2001 - Odyssee im Weltraum (Grimmborn, 21. Mar 2003, 11:13:59):
~#! rn=Bambi rt=1048241532 rg=kultur
~#! tid=1048185444
Da hab ich Dir was voraus. Ich sass aufgrund einer Verkettung ungluecklicher
Umstaende so zweite Reihe Mitte, das hat mich am Einschlafen gehindert.

GdA

-----------------------------------------------------------------------------



Re^5: 2001 - Odyssee im Weltraum (Bambi, 21. Mar 2003, 11:17:26):
~#! rn=Grimmborn rt=1048241639 rg=kultur
~#! tid=1048185444
Mir etwas voraus haben ist der falsche Ausdruck. Ich habe nicht vor, diesen
Film komplett zu sehen, noch werde ich jemals in Frage stellen, ob das die
richtige Einstellung zu dem Film ist.
Ich masse mir nicht einmal an, Dich arme Sau zu nennen, weil Du den Film ganz
gesehen hast. Mag sein, dass er anderen gefallen hat, ich fand den ersten Teil
halt dermassen langweilig, dass ich auf den Rest verzichtet habe.

-----------------------------------------------------------------------------



Re^6: 2001 - Odyssee im Weltraum (Boing, 21. Mar 2003, 11:19:45):
~#! rn=Bambi rt=1048241846 rg=kultur
~#! tid=1048185444
Naja, Geschmaecker sind halt verschieden ... ;) Ich fand den Film nicht
zu lang, nicht langweilig und ueberaus beeindruckend. Hab ihn kuerzlich 
mal wieder komplett auf Premiere gesehen (also ohne Unterbrechungen), hat 
mich wieder wirklich gefesselt.
  Boing

-----------------------------------------------------------------------------



Re^7: 2001 - Odyssee im Weltraum (Muadib, 21. Mar 2003, 11:21:39):
~#! rn=Boing rt=1048241985 rg=kultur
~#! tid=1048185444
der mit dem wolf tanzt ist das beste einschlafmittel das ich je gesehen habe.
aber das ist nur meine persoenliche meinung

-----------------------------------------------------------------------------



Re^8: 2001 - Odyssee im Weltraum (Grimmborn, 21. Mar 2003, 11:23:25):
~#! rn=Muadib rt=1048242099 rg=kultur
~#! tid=1048185444
Meine Rede. Bedauerlicherweise haben die aeusseren Umstaende mir nicht erlaubt
einzuschlafen. Es gibt bessere FIlme. Sogar von/mit Herrn Costner.

GdA

-----------------------------------------------------------------------------



Re^9: 2001 - Odyssee im Weltraum (Croft, 21. Mar 2003, 11:24:05):
~#! rn=Grimmborn rt=1048242205 rg=kultur
~#! tid=1048185444
Waterworld meinst du aber bestimmt nicht, oder?

Croft

-----------------------------------------------------------------------------



Re^10: 2001 - Odyssee im Weltraum (Grimmborn, 21. Mar 2003, 11:24:39):
~#! rn=Croft rt=1048242245 rg=kultur
~#! tid=1048185444
Nur wenn ich meinen Hang zu anstaendigem Trash auslebe.

GdA

-----------------------------------------------------------------------------



Re^11: 2001 - Odyssee im Weltraum (Boing, 21. Mar 2003, 11:25:21):
~#! rn=Grimmborn rt=1048242279 rg=kultur
~#! tid=1048185444
Ein wirklich hervorragender Film mit Herrn Costner ist Silverado.
Oder die Unbestechlichen ...
  Boing

-----------------------------------------------------------------------------



Re^12: 2001 - Odyssee im Weltraum (Vincent, 21. Mar 2003, 16:31:27):
~#! rn=Boing rt=1048242321 rg=kultur
~#! tid=1048185444
Vollkommen meine Meinung: "Die Unbestechlichen" ist ein genialer Film und 
"Silverado" ein Western mit damaligem Jung-Star-Aufgebot und John Cleese als
Sherrif.
Gut find ich ausserdem noch "Tin Cup", ebenfalls mit Herrn Koschtner...mir
ist aber klar, dass ich mit dieser Meinung weitestgehend alleine stehe. ;-)

Gruss
Vincent

P.S.: Ist "Der Postmann" nicht auch mit Costner?

-----------------------------------------------------------------------------



Re^13: 2001 - Odyssee im Weltraum (Montanus, 21. Mar 2003, 16:40:11):
~#! rn=Vincent rt=1048260687 rg=kultur
~#! tid=1048185444
Och, Tin Cup ist noch einigermassen ertraeglich. White Trailer Trash als
Helden eines Hollywoodstreifens, der nicht vorrangig in das genre Komoedie
gepresst werden will, ist nicht ganz so haeufig.

-----------------------------------------------------------------------------



Enterprise ... (Vanion, 21. Mar 2003, 19:30:06):
... heute 20:15.

V*

-----------------------------------------------------------------------------



Re: Enterprise ... (Karis, 22. Mar 2003, 00:13:05):
~#! rn=Vanion rt=1048271406 rg=kultur
~#! tid=1048271406
Die deutsche Synchronisation ist irgendwie sch..  sch ...
schon fast afu dem richtigen Weg.

Karis, steht auf Originale

-----------------------------------------------------------------------------



Re: Re: Enterprise ... (Vanion, 22. Mar 2003, 00:13:47):
~#! rn=Karis rt=1048288385 rg=kultur
~#! tid=1048271406
Ich find die Originalstimmen auch passiger. 

V*

-----------------------------------------------------------------------------



Re^3: Enterprise ... (Firehawk, 22. Mar 2003, 00:25:06):
~#! rn=Vanion rt=1048288427 rg=kultur
~#! tid=1048271406
Naja, das is ja nicht wirklich was neues, dass die Originale fuer gewoehnlich
besser sind als die Syncros (und ohne Werbung macht das ganze gleich nochmal
soviel Spass).

Fire*, ebenfalls die Originale bevorzugend

-----------------------------------------------------------------------------



Re^4: Enterprise ... (Vanion, 22. Mar 2003, 07:47:36):
~#! rn=Firehawk rt=1048289106 rg=kultur
~#! tid=1048271406
Gibt durchaus Filme, wo die Syncro selbige erst sehenswert gemacht hat.
"Beverly Hills Cop" lebt im Original nur durch die schauspielerischen Kuenste
von Eddie Murphy. (Eine Bewertung ueberlass ich dem geneigten Leser).
Die Syncro hingegen is ein Feuerwerk bloeder Sprueche und verbaler
Tiefschlaege. Aus meiner Sicht eine klare Aufwertung.

Mir faellt jetzt aber grad kein anderes Beispiel ein.

V*

-----------------------------------------------------------------------------



Re^5: Enterprise ... (Grimmborn, 22. Mar 2003, 07:54:03):
~#! rn=Vanion rt=1048315656 rg=kultur
~#! tid=1048271406
Das wirklich klassische Beispiel von etwas, das erst durch die Synchronisation
wirklich gut geworden ist, sind "Die Zwei" mit Tony Curtis und Roger Moore.
Wird aktuell mal wieder wiederholt, sonntags nachmittags auf Kabel1.

GdA

-----------------------------------------------------------------------------



Re^6: Enterprise ... (Vanion, 22. Mar 2003, 07:54:49):
~#! rn=Grimmborn rt=1048316043 rg=kultur
~#! tid=1048271406
Ah, guter Tip. Und puenktlicher als meiner :)

V*

-----------------------------------------------------------------------------



Hier kommt Bush (Vanion, 22. Mar 2003, 08:13:41):
Ok, ob eine Sitcom Kultur ist, darueber kann man diskutieren. Aber ein paar
witze auf seine Kappe kann ich schon vertragen.

Ab So, 6.4. 20:15 auf RTL II

Von den Machern von SouthPark.

V*

-----------------------------------------------------------------------------



Re^5: Enterprise ... (Vincent, 25. Mar 2003, 00:16:42):
~#! rn=Vanion rt=1048315656 rg=kultur
~#! tid=1048271406
ALF!

Nach internationaler Meinung, war die deutsche Synchro durch Herrn Pieper die
beste, die der Sendung jemals zu Teil wurde und schlug wohl auch das Orginal
um Laengen.

Und dann faellt mir noch ein "Die zwei". (orig Titel "The Specialists" bin mir
da aber nicht ganz sicher). Hier lebte die ganze Serie nur von dem typischen
deutschen Holzhammer-Humor mit den vorprogrammierten Tiefschlaegen und
Flachheiten. Aber das Ganze in einer Konsequenz und Vielfaelitigkeit, wo das
es einfach sehenswert ist. Beispiel gefaellig: Roger Moore beleidigt zu
Tony Curtis: "Jaja, ich weiss. Der Moore hat seine Schuldigkeit getan, der
Moore kann gehen! " Daraufhin Curtis: "Hab Dich nicht so. Immerhin gibst Du
demnaechst den Bond!" ;-)
Und legendaer ist Curtis' Cocktail-Bestellung im Pilotfilm: "Einen Martini,
bitte. Aber mit zwei Oliven, die sich leicht beruehren!". ;-)))

Gruss
Vincent
im Nostalgie-TV-Flash

-----------------------------------------------------------------------------



Re^6: Enterprise ... (Humni, 25. Mar 2003, 11:01:35):
~#! rn=Vincent rt=1048547802 rg=kultur
~#! tid=1048271406
Ich kenn auch noch ein Beispiel: Golden Girls. Die Dialoge sind wohl so
ziemlich dieselben wie im Original, aber die Stimmen klingen im Original alle
gleich. Und wer die Serie kennt, weiss, dass der Humor zum grossen Teil von
der piepsigen Rose, der verfuehrerischen Blanche und der unglaublich
mannweibischen Sophie lebt.

Obs dadurch besser wurde weiss ich nicht, aber ein anderes Beispiel ist
"Magnum": Im Original ist das wohl eine Aufarbeitung des Vietnam-Traumas. Da
die Deutschen damit logischerweise nichts anfangen koennen haben sie eine
reine Detektiv-Serie draus gemacht...

Humni

-----------------------------------------------------------------------------



Re^7: Enterprise ... (Gnome, 25. Mar 2003, 16:14:12):
~#! rn=Humni rt=1048586495 rg=kultur
~#! tid=1048271406
in "married - with children" uebertrifft - lt. aussage der synchronisatoren -
der wortwitz an manchen stellen das original. kann ich mir zumindest ganz
gut vorstellen. und welche stimme wuerde besser zu al bundy passen als
die deutsche synchron? :)

gnOme

-----------------------------------------------------------------------------



Re^7: Enterprise ... (Vincent, 25. Mar 2003, 17:38:13):
~#! rn=Humni rt=1048586495 rg=kultur
~#! tid=1048271406
Stimmt. Fuer die erste Ausstrahlung im ZDF wurde jeder Bezug zu Vietnam
entfernt. RTL hat die komplette Serie dann spaeter in der Originalfassung
nocheinmal neu synchronisieren lassen und die Vietnam-Bezuege dringelassen.
Auch soll die RTL-Synchronisation deutlich ernster sein, als die fruehe
ZDF-Version.
Was aber noch wichtiger ist: RTL hat die Originalreihenfolge der einzelnen
Episoden beibehalten, waehrend das ZDF (oder war es die ARD? Hmmm. Weiss nicht
mehr genau), sich da einige Freiheiten erlaubt hat. Aber das gehoert ja
eigentlich gar nicht zu unserem Thema. *abschweifend*

Gruss
Vincent

-----------------------------------------------------------------------------



3-Wort-Geschichte (Whitetiger, 25. Mar 2003, 18:52:39):
Wie waers mal mit einer 3-Wort-Geschichte? Das bedeutet, dass jeder 3 Woerter
hinzufuegt... so dass es (hoffentlich) eine lange, schoene, witzige,
wasweissich Geschichte wird... Dann fangen wir mal ganz unspektakulaer an:

Es war einmal ...

-- WhiteTiger

-----------------------------------------------------------------------------



Re: 3-Wort-Geschichte (Croft, 25. Mar 2003, 19:06:47):
~#! rn=Whitetiger rt=1048614759 rg=kultur
~#! tid=1048614759
... ein Nazi namens ...

Croft

-----------------------------------------------------------------------------



Re: Re: 3-Wort-Geschichte (Grimmborn, 25. Mar 2003, 19:20:53):
~#! rn=Croft rt=1048615607 rg=kultur
~#! tid=1048614759
Tja, das ward dann wohl mit "lange Geschichte". Und was spielen wir jetzt?

GdA

-----------------------------------------------------------------------------



Re^3: 3-Wort-Geschichte (Anatol, 25. Mar 2003, 19:23:30):
~#! rn=Grimmborn rt=1048616453 rg=kultur
~#! tid=1048614759
Du kriegst drei Stichworte und musst eine Geschichte draus machen:

Blumenkuebeluntersetzer
Trockenstaubtangentialfeuerungsanlage
Hitler


-----------------------------------------------------------------------------



Re^4: 3-Wort-Geschichte (Humni, 26. Mar 2003, 00:06:08):
~#! rn=Anatol rt=1048616610 rg=kultur
~#! tid=1048614759
Es war ein heisser Tag, ein verdammt heisser sogar. Adolf Hitler zog seine
braune Uniform an, doch dann merkte er, dass er bereits tot war und begrub
sich (das war echt gut so). Danach bemerkte Harald Weissbruck, dass er das
alles nur getraeumt hatte und stand auf. Er duschte sich, putzete sich die
Zaehne mit einer Zahnpasta, von der die Leute in der Werbung behaupteten, sie
sei lecker und wuerde weisse Zaehne machen, trank danach einen Zahnputzbecher
voll Wasser (er war natuerlich ein wenig vergesslich, daher schluckte er die
ganze Zahnpasta) und ging dann in die Kueche, wo er einen
Blumenkuebeluntersetzer aus Versehen aus dem Fenster warf. Unten schlug dieser
krachend auf und hinterliess in der Strasse ein 3 Meter tiefes Loch.

Harald zuckte mit den Achseln und merkte, dass es in der Kueche recht kalt
war. Er drehte die Heizung hoeher, die in Wirklichkeit eine
Trockenstaubtangentialfeuerungsanlage war (also eine Anlage, die den Staub in
der Wohnung trocknete, ihn dann tangential einsaugte und dan zwecks
Energiegewinung und Waermeerezeugung verfeuerte, was in Haralds Wohnung echt
gut funktionierte, da er nie staubsaugte, was wiederum an der Tatsache lag,
dass er die Trockenstaubtangentialfeuerungsanlage hatte. Das Ganze ist
beruehmt als der Teufelskreis der
Trockenstaubtangentialfeuerungsanlagen-Besitzer) und trank seinen Kaffee aus. 

Kurz danach wurde er mit schweren inneren Verbrennungen ins Krankenhaus
eingeliefert, wo er verstarb, denn der Kaffee war zu heiss gewesen.

Eine traurige Geschichte von
Humni


-----------------------------------------------------------------------------



Re^5: 3-Wort-Geschichte (Vanion, 26. Mar 2003, 07:31:55):
~#! rn=Humni rt=1048633568 rg=kultur
~#! tid=1048614759
Waren aber mehr als 3 Worte.

V*

-----------------------------------------------------------------------------



Dixie Chicks in den Charts (Zarniya, 26. Mar 2003, 11:30:08):

Hiho,

selten, dass ich hier mal Werbung fuer die Musik mache, die ich so sehr liebe,
aber naechste Woche werden die Dixie Chicks auf Platz 11 der deutschen Album
Charts stehen und das vollkommen verdient! Hoert mal rein und seht, das
Country was anderes ist als die Absonderungen, die Tom Astor, Linda Feller und
Truck Stop produzieren.

Gruss, 
Marc

-----------------------------------------------------------------------------



Re: Dixie Chicks in den Charts (Croft, 26. Mar 2003, 11:31:49):
~#! rn=Zarniya rt=1048674608 rg=kultur
~#! tid=1048674608
Huch. Jetzt wird man schon hier von den Huehnern verfolgt.  Der Schock
beim Superbowl sitzt immer noch tief bei mir.

Croft

-----------------------------------------------------------------------------



Re: Re: Dixie Chicks in den Charts (Mauriko, 26. Mar 2003, 11:39:38):
~#! rn=Croft rt=1048674709 rg=kultur
~#! tid=1048674608
Das einzig interessante an den Tucken ist wohl das sie erst ueber Bush
geschimpft und sich dann entschuldigt haben und sie Musik machen muessen damit
es ueberhaupt wen interessiert auf wen die schimpfen aber dass sich das
County-Gejammere auch noch wer anhoeren soll ist ein bisschen viel verlangt.

Mauriko, weiss auch mal was

-----------------------------------------------------------------------------



Re^3: Dixie Chicks in den Charts (Zarniya, 26. Mar 2003, 12:49:51):
~#! rn=Mauriko rt=1048675178 rg=kultur
~#! tid=1048674608
da ist wieder mal einer sehr informiert... danke fuer den schwachsinnigen
Beitrag.

-----------------------------------------------------------------------------



Re^4: Dixie Chicks in den Charts (Bambi, 26. Mar 2003, 13:38:56):
~#! rn=Zarniya rt=1048679391 rg=kultur
~#! tid=1048674608
Ein Artikel ala "Mir gefaellt weder die Musikrichtung im allgemeinen noch die
Gruppe im Speziellen und ich finde die Gruppe dermassen schlecht, dass ich
jedem davon abrate, sie sich auch nur probeweise anzuhoeren." waere vermutlich
die Dir eher liegende Ausdrucksweise, jedoch halte ich den Artikel, wie er
geschrieben wurde, fuer aussagekraeftiger.

Da wirs grad von den laws hatten letztens. Anstatt nur "Dein Artikel ist
schwachsinnig" zu schreiben, waers vielleicht angebracht gewesen, seinen
"Schwachsinn" richtigzustellen. Dann haetten alle mehr davon, ausser einen
oder zwei nichtssagende Artikel in diesem Thread.

Bambi, die Gruppe nicht kennend.

-----------------------------------------------------------------------------



Re: Dixie Chicks in den Charts (Schleicher, 27. Mar 2003, 13:09:27):
~#! rn=Zarniya rt=1048674608 rg=kultur
~#! tid=1048674608
Also wenn diese Huehner Country machen, was machen dann bitte so Leute wie
Albert Lee und Jerry Donahue? Heavy Metal? Also son Popkram als Country zu
bezeichen finde ich schon recht heftig... aber wenn Du sie schon in einem
Atemzug mit diesen ganzen Deutschen Landeiern nennst finde ich das dass schon
eine Berechtigung hat.
Schoenen Tag noch und putz Dir mal die Ohren.
Schleicher

-----------------------------------------------------------------------------



Re: Re: Dixie Chicks in den Charts (Vanion, 27. Mar 2003, 19:22:07):
~#! rn=Schleicher rt=1048766967 rg=kultur
~#! tid=1048674608
Wie man das nennt is doch egal. Hauptsache es is gut fuer die Ohren. Und das
was hier landlaeufig als Country bezeichnet wird, ist oft nur Ohren-Aua.

Was die Twain aber anstellt kann man recht gut hoeren, ohne aus den Ohren zu
bluten.

V*

-----------------------------------------------------------------------------



Re: Re: Dixie Chicks in den Charts (Zarniya, 28. Mar 2003, 10:06:36):
~#! rn=Schleicher rt=1048766967 rg=kultur
~#! tid=1048674608
Hallo Schleicher, 

ich weiss nicht, was Du fuer einen musikalischen Hintergrund hast, aber ich
hab die DC hier einfach mal als Country bezeichnet, damit es einfacher ist.
Was soll ich hier die Laien mit Feinheiten wie Classic-, Traditional-,
New-Country, Bluegrass, Folk, usw. nerven? Wenn Du die Chicks als Pop
bezeichnest, dann kennst du anscheinend keine ihrer CDs.

Gruss, 
Marc

P.S.: Um mal Garth Brooks zu zitieren: Es gibt nur 2 Musikrichtungen: Gute und
schlechte Musik. Und NIEMAND kann heutzutage schon sagen, was was ist. Erst in
50 Jahren weiss man, was heute wirklich gut war, denn diese Sachen werden dann
immer noch im Radio laufen.

-----------------------------------------------------------------------------



Re^3: Dixie Chicks in den Charts (Muadib, 31. Mar 2003, 10:24:38):
~#! rn=Zarniya rt=1048842396 rg=kultur
~#! tid=1048674608
naja ich sag nur chirpychirpycheepcheep. sind zwar noch keine 50 jahre aber
immerhin.
wo passt eigentlich hillbilly rein?

ach eigentlich ist das posting ueberfluessig und soll nur dazu dienen
kundzugeben dass ich nichts aber auch gar nichts begeisterungswertes am
liedgut der dixie chicks ausmachen konnte.
das ist natuerlich nur meine auf meinem geschmack basierende meinung. jede
andere meinung ist genausogut. insofern: enjoy

-----------------------------------------------------------------------------



Re^8: Enterprise ... (Demonaz,  9. Apr 2003, 02:31:15):
~#! rn=Gnome rt=1048605252 rg=kultur
~#! tid=1048271406

Les ich ja jetzt erst: married with Children ist im Original der deutschen
Murkssynchronisation mit der daemlichen bandlache um erhebliche Laengen
ueberlegen. Vergiss die deutshe version...

Dreckssynchronisierereitypohintypoher...

L.

-----------------------------------------------------------------------------



Re^9: Enterprise ... (Gnome, 12. Apr 2003, 02:19:22):
~#! rn=Demonaz rt=1049848275 rg=kultur
~#! tid=1048271406
ich habe nur aus einem tv-interview mit den synchronisatoren zitiert.
und da die in dem fall _wirklich_ mehr ahnung haben als jeder anderen,
glaube ich ihnen auch.

ausserdem ging es auch eher um den wortwitz und/oder pointen, die im
deutschen teilweise besser rueberkommen sollen, als um diese doofe
lache vom band.

gnOme

-----------------------------------------------------------------------------



Re^10: Enterprise ... (Demonaz, 12. Apr 2003, 04:03:01):
~#! rn=Gnome rt=1050106762 rg=kultur
~#! tid=1048271406

Auch das mit den Pointen ist falsch. Die Serie auf Holland 2 im Original
gesehen habend...


-----------------------------------------------------------------------------



Re^11: Enterprise ... (Elberet, 12. Apr 2003, 11:14:32):
~#! rn=Demonaz rt=1050112981 rg=kultur
~#! tid=1048271406
ich hab die sowohl in deutsch als auch in englisch gesehen teilweise und ich
muss sagen ich fand weder noch sonderlich witzig 

Elbi

-----------------------------------------------------------------------------



WoT (Pest, 13. Apr 2003, 04:47:34):

Tja,

der neueste WoT Band bringt gnadenlose Langeweile. Elaines
Schwangerschaftsprobleme und aehnliche Trivialitaeten in epischer Laenge. Der
Plott stagniert und Frust breitet sich aus.

Nur als Warnung...
Krankheit

-----------------------------------------------------------------------------



Re: WoT (Patryn, 13. Apr 2003, 10:41:25):
~#! rn=Pest rt=1050202054 rg=kultur
~#! tid=1050202054
Hab den schon vor Monaten gelesen und kann das nur bestaetigen, das Teil
wird endgueltig ungeniessbar und der Schreiber wahrscheinlich senil.
Wieder mal werden 10000 uninteressante Handlungsstraenge geoeffnet und
10000 interessante Handlungsstraenge, auf die man mittels tausenden von
Seiten vorbereitet wurde, verlaufen ploetzlich in /dev/null.

-- 
patryn

-----------------------------------------------------------------------------



Re: WoT (Vanion, 13. Apr 2003, 12:24:32):
~#! rn=Pest rt=1050202054 rg=kultur
~#! tid=1050202054
Auch auf die Gefahr hin mich als uebler WoT-Ignorant zu outen, aber: Was ist
WoT?

Deine Kurzfassung klingt irgendwie so, als ob Du ueber das neueste GZ/SZ-Buch
(gibts sowas?) sprichst.

V*

-----------------------------------------------------------------------------



Re: Re: WoT (Croft, 13. Apr 2003, 12:27:38):
~#! rn=Vanion rt=1050229472 rg=kultur
~#! tid=1050202054
WoT == Wheel of Time.  Irgend so ein Fantasy-Zyklus ,-)

Croft

-----------------------------------------------------------------------------



Re^3: WoT (Anatol, 13. Apr 2003, 14:04:34):
~#! rn=Croft rt=1050229658 rg=kultur
~#! tid=1050202054
"Irgend so ein" ist gut. Nach den ersten paar Baenden war ich der
Ueberzeugung, dass es mit einer der besten ist, die gerade noch
in der Mache sind (Song of Ice and Fire, Otherland und dergleichen,
das Sword of Truth marschiert trotz Unterhaltungswertes und Lehren 
fuer's Leben in der zweiten Reihe). Nach dem Einbruch in WoT/PoD und
dem Aufbaeumen in WoT/WH hegte ich die Hoffnung, dass der Jordan 
das Werk noch selbst beenden moechte und das in absehbarer Zeit auch
tut.

Naja, aus Sicht der Evolution ist die Zeit vermutlich in der Tat
noch im "absehbaren" Bereich.

A

-----------------------------------------------------------------------------



Re^4: WoT (Marcus, 13. Apr 2003, 16:01:19):
~#! rn=Anatol rt=1050235474 rg=kultur
~#! tid=1050202054
Ja,

Crossroads of Twilight is mal wieder ein Durchhaenger.

Ansonsten bis jetzt nette 12000 Seiten zum Durchlesen oder so.

Ciao, Marcus

-----------------------------------------------------------------------------



Re^5: WoT (Grimmborn, 13. Apr 2003, 16:01:53):
~#! rn=Marcus rt=1050242479 rg=kultur
~#! tid=1050202054
Naja, da fallen ja die 8000 Seiten Durchhaenger nicht so sonderlich auf...

GdA

-----------------------------------------------------------------------------



Re^4: WoT (Catweazle, 14. Apr 2003, 07:57:49):
~#! rn=Anatol rt=1050235474 rg=kultur
~#! tid=1050202054
Ich wuerde schaetzen, Jordan hat das Ende schon in Band fertig gehabt, aber
der Verlag hat ihm 'geraten' vor Veroeffentlichung noch ein bisschen
Fuellstoff fuer dazwischen zu schreiben.

YTC

-----------------------------------------------------------------------------



Geheime Botschaften (Ark, 14. Apr 2003, 10:41:42):
Von Simon Singh. War ein Seitenblaetterer (oder wie die amerikanischen Freunde
das nennen: Page Turner). Nicht zuviel Wissenschaft und Formeln, grade so,
dass es ein E-Mail Benutzer wie ich eben noch verstehen kann. Achso, es geht
um die Geschichte der Kryptographie.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Geheime Botschaften (Liafar, 14. Apr 2003, 11:34:38):
~#! rn=Ark rt=1050309702 rg=kultur
~#! tid=1050309702
Thema: Kryptographie

Autor: David Kahn
Titel: The Codebreakers

(1181 Seiten)

Liafar

-----------------------------------------------------------------------------



Re: Re: Geheime Botschaften (Ark, 14. Apr 2003, 15:33:03):
~#! rn=Liafar rt=1050312878 rg=kultur
~#! tid=1050309702
Jo, wurde in Singhs Buch auch empfohlen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Geheime Botschaften (Gorog, 14. Apr 2003, 18:08:23):
~#! rn=Ark rt=1050327183 rg=kultur
~#! tid=1050309702

Autor: Neil Stephenson
Titel: Cryptonomicon
Thema: Kryptograhphie damals und heute
Art: Beletristik

Ist zwar n ziemlicher Brocken aber doch ziemlich gut, zumindest bis zur
Haelfte, was danach kommt weiss ich noch nicht (;

mfGorog

-----------------------------------------------------------------------------



Re^4: Geheime Botschaften (Liafar, 14. Apr 2003, 21:49:46):
~#! rn=Gorog rt=1050336503 rg=kultur
~#! tid=1050309702
Bei Neal Stephenson faellt mir spontan "Snow Crash" ein...
...uebrigens ein sehr empfehlenswertes Buch.

Liafar

-----------------------------------------------------------------------------



Re^4: Geheime Botschaften (Muadib, 15. Apr 2003, 00:38:01):
~#! rn=Gorog rt=1050336503 rg=kultur
~#! tid=1050309702
wird immer besser gegen schluss

-----------------------------------------------------------------------------



Re^5: Geheime Botschaften (Muadib, 15. Apr 2003, 00:38:57):
~#! rn=Liafar rt=1050349786 rg=kultur
~#! tid=1050309702
diamond age sollte man unbedingt nachschieben

-----------------------------------------------------------------------------



So just what is FNORD? (Whitetiger, 18. Apr 2003, 21:03:40):
Fnord?

Fnord is evaporated herbal tea without the herbs.

Fnord is that funny feeling you get when you reach for the
  Snickers bar and come back holding a slurpee.

Fnord is the 43 1/3rd state, next to Wyoming.
Fnord is this really, really tall mountain.
Fnord is the reason boxes of condoms carry twelve instead of ten.

    Fnord is the blue stripes in the road that never get painted.
    Fnord is place where those socks vanish off to in the laundry.
    Fnord is an arcade game like Pacman without the little dots.
    Fnord is a little pufflike cloud you see at 5pm.

           Fnord is the tool the dentist uses on unruly patients.
    Fnord is the blank paper that cassette labels are printed on.
                          Fnord is where the buses hide at night.
                 Fnord is the empty pages at the end of the book.

    Fnord is the screw that falls from the car for no reason.
      Fnord is why Burger King uses paper instead of foam.
        Fnord is the little green pebble in your shoe.
          Fnord is the orange print in the yellow pages.


Fnord is a pickle without the bumps.             Fnord is why ducks eat trees.
Fnord is toast without bread.     Fnord is a venetian blind without the slats.




Fnord is the lint in the navel of the mites that eat
        the lint in the navel of the mites that eat
        the lint in Fnord's navel.

Fnord is an apostrophe on drugs.
Fnord is the bucket where they keep the unused serifs for H*lvetica.
Fnord is the gunk that sticks to the inside of your car's fenders.
Fnord is the source of all the zero bits in your computer.

                      Fnord is the echo of silence.
                    Fnord is the parsley on the plate of life.
                  Fnord is the sales tax on happiness.
                Fnord is the preposition at the end of sixpence.

Fnord is the feeling in your brain when you hold your breath too long.
Fnord is the reason latent homosexuals stay latent.

                Fnord is the donut hole.
                  Fnord is the whole donut.

  Fnord is an annoying series of email messages.
  Fnord is the color only blind people can see.

Fnord is the serial number on a box of
            cereal.

                           Fnord is the Universe with decreasing entropy.
                          Fnord is a naked woman with herpes simplex 428.
                                           Fnord is the yin without yang.
                        Fnord is a pyrotumescent retrograde onyx obelisk.

Fnord is why lisp has so many parentheses.
Fnord is the the four-leaf clover with a missing leaf.

                          Fnord is double-jointed and has a cubic spline.
                                                      Fnord never sleeps.
                                      Fnord is the "een" in baleen whale.

Fnord is neither a particle nor a wave.

                 Fnord is the space in between the pixels on your screen.

  Fnord is the guy that writes the Infiniti ads.
 Fnord is the nut in peanut butter and jelly.
Fnord is an antebellum flagellum fella.

                Fnord is a sentient vacuum cleaner.

Fnord is the smallest number greater than zero.
Fnord lives in the empty space above a decimal point.


Fnord is the odd-colored scale on a dragon's back.
Fnord is the redundant coin slot on arcade games.
Fnord was last seen in Omaha, Nebraska.

     Fnord is the founding father of the phrase "founding father".
       Fnord is the last bit of sand you can't get out of your shoe.
     Fnord is Jesus's speech advisor.
       Fnord keeps a spare eyebrow in his pocket.
     Fnord invented the green hubcap.
       Fnord is why doctors ask you to cough.

Fnord is the "ooo" in varooom of race cars.
Fnord uses two bathtubs at once.



I cannot escape them
No matter how I try
They wait for me everywhere
I cannot pass them by.

Driving down the street
I see "Jesus Is Lord"
And then immediately after
I hear the word "FNORD!"

Innocuous sayings and parables
And on the evening news
I hear the word "FNORD!"
And suddenly I'm confused

I sit alone in my room
And I'm feeling rather bored
I turn on the tube and guess what
I hear the word "FNORD!"

"Don't see the fnords and they won't eat you"
That's what I've heard the wisemen say
But I can't get away from those beasties
There's just no fucking way.


I believe I found these on alt.discordia

buxton@uiuc.edu 


-- Original: http://www.fnord.org/occult/discordia/text/what.is.fnord

-----------------------------------------------------------------------------



Re: So just what is FNORD? (Grimmborn, 18. Apr 2003, 21:17:32):
~#! rn=Whitetiger rt=1050692620 rg=kultur
~#! tid=1050692620
Darauf gibts natuerlich nur eine Antwort:
ALL YOUR BASE ARE BELONG TO US. YOU ARE ON THE WAY TO DESTRUCTION.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Re: So just what is FNORD? (Whitetiger, 18. Apr 2003, 21:17:44):
~#! rn=Grimmborn rt=1050693452 rg=kultur
~#! tid=1050692620
Sowas hab ich mir schon irgendwie gedacht...

-----------------------------------------------------------------------------



Re^3: So just what is FNORD? (Grimmborn, 18. Apr 2003, 21:18:14):
~#! rn=Whitetiger rt=1050693464 rg=kultur
~#! tid=1050692620
Man nennt das ein "deja-vu", und das deutet oft auf Fehler in der Matrix hin.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^4: So just what is FNORD? (Whitetiger, 18. Apr 2003, 21:18:34):
~#! rn=Grimmborn rt=1050693494 rg=kultur
~#! tid=1050692620
Der Film kommt uebrigens heute.
22:00 Uhr, RTL.

-----------------------------------------------------------------------------



Re^5: So just what is FNORD? (Grimmborn, 18. Apr 2003, 21:19:12):
~#! rn=Whitetiger rt=1050693514 rg=kultur
~#! tid=1050692620
Ich weiss, ich habe vor den parallel auf DVD zu sehen und zu gucken was alles
rausgeschnitten sein wird...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^6: So just what is FNORD? (Whitetiger, 18. Apr 2003, 21:19:28):
~#! rn=Grimmborn rt=1050693552 rg=kultur
~#! tid=1050692620
Wo rausgeschnitten? DVD oder RTL? ;o)

-----------------------------------------------------------------------------



Re^7: So just what is FNORD? (Grimmborn, 18. Apr 2003, 21:21:02):
~#! rn=Whitetiger rt=1050693568 rg=kultur
~#! tid=1050692620
Meine DVDs sind ungeschnitten. Das macht ein paar davon auch so...
hochpreisig. 

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: So just what is FNORD? (Muadib, 19. Apr 2003, 16:05:31):
~#! rn=Whitetiger rt=1050692620 rg=kultur
~#! tid=1050692620
uargs, fuer den text gab es doch schon den link, reicht das nicht?
SPAMMER!

-----------------------------------------------------------------------------



Re: Re: So just what is FNORD? (Whitetiger, 19. Apr 2003, 16:06:01):
~#! rn=Muadib rt=1050761131 rg=kultur
~#! tid=1050692620
Noe das reicht nicht :)
Sonst haette ich den Link ja in www gepostet.

-----------------------------------------------------------------------------



Re^3: So just what is FNORD? (Croft, 19. Apr 2003, 16:08:47):
~#! rn=Whitetiger rt=1050761161 rg=kultur
~#! tid=1050692620
Das riecht nach Sperre.

Croft

-----------------------------------------------------------------------------



Re^3: So just what is FNORD? (Elberet, 19. Apr 2003, 16:15:03):
~#! rn=Whitetiger rt=1050761161 rg=kultur
~#! tid=1050692620
und was sollte uns dann der text zusaetzlich noch bringen? das sind eh alles
hirngespinste

Elbi

-----------------------------------------------------------------------------



Re^4: So just what is FNORD? (Whitetiger, 19. Apr 2003, 16:16:04):
~#! rn=Elberet rt=1050761703 rg=kultur
~#! tid=1050692620
Verschiebts doch einfach nach witze, schmarrn, muell, ...

-----------------------------------------------------------------------------



Buchtip (Humni, 30. Apr 2003, 23:45:15):
Ja, ihr kennt es vermutlich alle. Oder ihr kennt den Titel. Ich schaeme mich
auch, dass ich furchtbar alt werden musste, bevor ich das entdeckt habe. Nicht
destso trotz: Mein persoenliches derzeitig absoluter Lieblingsbuchtip ist von
Lewis Carroll und heisst ,,Alice im Wunderland'' - selten so etwas
unglaubliches gelesen.

Zum Auslachen freigegeben,
Humni

-----------------------------------------------------------------------------



Re: Buchtip (Grimmborn, 30. Apr 2003, 23:50:44):
~#! rn=Humni rt=1051739115 rg=kultur
~#! tid=1051739115
Nettes Buch, ja. Ich suche immer noch nach den Drogen die sowas verursachen,
ich haette da eine groessere Bestellung aufzugeben...

GdA

-----------------------------------------------------------------------------



Re: Re: Buchtip (Akasha, 30. Apr 2003, 23:51:06):
~#! rn=Grimmborn rt=1051739444 rg=kultur
~#! tid=1051739115
Wenn du herausgefunden hast, welche Drogen das sind, gib mir Bescheid :)

Akasha

-----------------------------------------------------------------------------



Re^3: Buchtip (Jadawin,  1. Mai 2003, 02:13:21):
~#! rn=Akasha rt=1051739466 rg=kultur
~#! tid=1051739115
Nee, das Zeug ist echt zu heftig.
Jad*

-----------------------------------------------------------------------------



Re: Buchtip (Muadib,  1. Mai 2003, 17:15:21):
~#! rn=Humni rt=1051739115 rg=kultur
~#! tid=1051739115
ist doch ein guter tip, in diesem rahmen deute ich auch mal auf einen anderen
lesenswerten klassiker: moby dick

-----------------------------------------------------------------------------



Re^47360: Hach... nu is was drin, inner MPA. (Vanion,  1. Mai 2003, 17:52:16):
~#! rn=Montanus rt=1051782966 rg=megaschmarrn
~#! tid=982328278
Also, wenn wir schon dabei sind. Ich habe vor einiger Zeit (nachdem ich schon
einige Verfilmungen gesehen hatte), Les Miserables (Die Elenden) von Victor
Hugo gelesen und war von den Socken.

Hugo begleitet in seinem Buch das Leben des Ex-Gefangenen Jean Valjean, und
begleitet ihn durch die Wirren der Franzoesischen Revolution. Immer wieder
haelt sich Hugo an Nebenschauplaetzen auf und beschreibt das alltaegliche
Leben des Frankreich dieser Zeit. 

Ausdrucksstarke Bilder, detailverliebte Szenen, sympathische, aber auch
unsympathische Protagonisten, die sehr detailreich ausgebaut sind, zeichnen
das Lebenswerk Hugos aus. Wer sich noch aus der Schule an den kleinen Gavroche
erinnert, kann seine Geschichte in diesem Buch endlich vollstaendig lesen. 

Ich habe das Buch in der Uebersetzung von Edmund Th. Kauer, verlegt im Aufbau
Verlag gelesen. ISBN: 3-7466-1700-6, 10 Euro.

V*

-----------------------------------------------------------------------------



Within Temptation News (Demonaz,  7. Mai 2003, 00:25:22):

Also,

hier stehen ja einige auf Nightwish, drum ist vielleicht folgendes relevant:

Within Temptation veroeffentlichen endlich auch in Deutschland die Ice Queen
Single. Benelux kommt dafuer exklusiv in den Genuss der Kate Bush Cover
Version Running Up That Hill. Sehr eindrucksvoll, wie ein Live-Hoertest ergab.

Cheers
D.

-----------------------------------------------------------------------------



Re: Buchtip (Darklor, 13. Mai 2003, 17:21:27):
~#! rn=Humni rt=1051739115 rg=kultur
~#! tid=1051739115

Haste dann auch 'Alice im Spiegelland' gelesen?

Darklor

-----------------------------------------------------------------------------



Afrikanische Musik (Whitetiger, 16. Mai 2003, 16:46:16):
Ich suche afrikanische Musik, moeglichst als Wav, MP3/Ogg geht aber auch,
kennt jemand eine gute Seite dafuer?

WhiteTiger.

-----------------------------------------------------------------------------



Re: Afrikanische Musik (Lug, 16. Mai 2003, 17:37:28):
~#! rn=Whitetiger rt=1053096376 rg=kultur
~#! tid=1053096376
Hm,

versuch mal ueber www.oeins.de mit dem Macher von der Sendung One Drop ins
Gespraech zu kommen, oder hoer Dir seine Sendung an, der ist Spezialist fuer
afrikanisches Dudeln.

Schauder
L.

-----------------------------------------------------------------------------



Emergenza (Strohalm, 28. Mai 2003, 16:34:21):
Wer Lust hat auf 4h Geballer und wem der Weg nach Kaiserslautern nicht zu weit
ist, dem empfehle ich am Samstag, 21.6.03, im Kaiserslauterner Kammgarn das
sueddt. Finale vom Emergenza.

Anzutreffen bin ich da definitiv, vielleicht kann man sich ja treffen ;)

Achja, die Bandliste:
ALL JOINES (Punk Rock)
DSCHINNCHILLA (Jazz Funk)
ENTER THE PHOENIX (New Rock)
FROG FARM (Ska)
FUGO (Punk Rock)
GROOVETEASE (Rock Progressive)
HIGH-FISH (Nu Metal)
KING TSCHISA (Alternative)
MELLOW (Emo Rock)
SKA EINSATZ KOMMANDO (Ska)

Immer brav fuer High-Fish und Enter the Phoenix stimmen ;)

Naehere Infos gibts unter http://www.emergenza.de/

Haelmchen, freut sich auf 4h abschaedeln

-----------------------------------------------------------------------------



Re: Emergenza (Amazora, 28. Mai 2003, 16:35:54):
~#! rn=Strohalm rt=1054132461 rg=kultur
~#! tid=1054132461
heissen die nicht FUEGO ?

-----------------------------------------------------------------------------



Re: Re: Emergenza (Strohalm, 28. Mai 2003, 16:37:02):
~#! rn=Amazora rt=1054132554 rg=kultur
~#! tid=1054132461
keine Ahnung, ich kenn die Band net ;)

Haelmchen, nur die saarlaendische Fraktion bejubelnd

-----------------------------------------------------------------------------



Re^3: Emergenza (Amazora, 28. Mai 2003, 16:38:28):
~#! rn=Strohalm rt=1054132622 rg=kultur
~#! tid=1054132461
es gibt eine punkrock band aus der schweiz die heissen FUEGO. ziemlich coole
band sogar.

-----------------------------------------------------------------------------



Dann konter ich mal... (Humni, 28. Mai 2003, 16:38:45):
OK, dann kontere ich mal fuer dieses Wochenende. Und zwar ist in Neuenburg
(das ist hier bei Freiburg) am Samstag und Sonntag Regio-Jam. Meine
persoenlichen Highlights sind Freitag BeachMeister (die kenn ich persoenlich)
und am Samstag - tatatata! - JBO. Beide Tage kosten 16 Euro im Vorverkauf,
eine Tageskarte 10 Euro (sprich: JBO fuer 10 Euro...)

Naeheres unter www.regio-jam.de

Humni, wohl auch da.

-----------------------------------------------------------------------------



Re: Dann konter ich mal... (Amazora, 28. Mai 2003, 16:41:13):
~#! rn=Humni rt=1054132725 rg=kultur
~#! tid=1054132725
na dann kann ich auch:
morgen 29.05 underground vitaminepillen festival mit skin of tears, five days
off und die unglaublich genialen SHANDON aus italien. natuerlich punkrock!
shandon spielen eine mischung aus ska-punk-metal
8 euro eintritt (oder 9)
die ersten 100 besucher bekommen eine gratis cd vom label programm von
vitaminepillen

-----------------------------------------------------------------------------



Re^4: Emergenza (Strohalm, 28. Mai 2003, 16:41:19):
~#! rn=Amazora rt=1054132708 rg=kultur
~#! tid=1054132461
Nein, die sind das definitiv nicht ;)

-----------------------------------------------------------------------------



Re: Re: Dann konter ich mal... (Amazora, 28. Mai 2003, 16:42:33):
~#! rn=Amazora rt=1054132873 rg=kultur
~#! tid=1054132725
vielleicht sollte ich noch dazu sagen, dass es sich da um das underground in
koeln handelt ;-)
underground, vogelsangerstr. 200, koeln

-----------------------------------------------------------------------------



Re^3: Dann konter ich mal... (Mandragon, 28. Mai 2003, 17:02:58):
~#! rn=Amazora rt=1054132953 rg=kultur
~#! tid=1054132725
Off-Topic: Ist am Freitag jemand ausser mir bei Groenemeyer in Ludwigshafen?

Ma*

-----------------------------------------------------------------------------



Re^4: Dann konter ich mal... (Anthea, 28. Mai 2003, 17:04:09):
~#! rn=Mandragon rt=1054134178 rg=kultur
~#! tid=1054132725
Wahrscheinlich sehr viele Leute. Ich glaub nicht, dass Du da alleine bist.

-----------------------------------------------------------------------------



Re^5: Dann konter ich mal... (Mandragon, 28. Mai 2003, 17:05:33):
~#! rn=Anthea rt=1054134249 rg=kultur
~#! tid=1054132725
Naja. Also meine Freundin wird auch da sein ... ich dachte ja nur ...

Ma*

-----------------------------------------------------------------------------



Re^5: Dann konter ich mal... (Grimmborn, 28. Mai 2003, 17:05:55):
~#! rn=Anthea rt=1054134249 rg=kultur
~#! tid=1054132725
Und wenn nicht: Herbert bringt meistens auch noch ein paar Kumpel mit und
nennt sie "meine Band".

GdA

-----------------------------------------------------------------------------



Re^6: Dann konter ich mal... (Boing, 28. Mai 2003, 17:13:55):
~#! rn=Grimmborn rt=1054134355 rg=kultur
~#! tid=1054132725
Zwei Freunde von mir sind da ... also seid ihr mindestens zu viert 
plus Band plus Groenemeyer.
  Boing

-----------------------------------------------------------------------------



Das Groenemeyer-Konzert ... (Mandragon,  1. Jun 2003, 17:28:52):

... in Ludwigshafen war echt Extraklasse. Wenn man davon absieht, dass er erst
    um 20:35 angefangen hat (so nach 3h rumstehen). Hat geschlagene 3h15m
    gespielt und dabei viele alte Hits zum Besten gegeben.

Ma*

-----------------------------------------------------------------------------



Animatrix (Foobar,  2. Jun 2003, 16:44:13):
Moin,

falls es jemand noch nicht wissen sollte: Heute abend um 23.45 laufen auf Pro7
die Animatrix-Kurzfilme.

Viel Spass,

   Foobar

-----------------------------------------------------------------------------



CD- und Live-Tipp: Maria Solheim (Ronda,  8. Jun 2003, 01:13:00):
Nach einem genialen Konzert muss der Tip(p) einfach sein: Wer ein bisschen auf
"Songwriter"-Texte steht, eine schoene Stimme a la Susanne Vega oder Heather
Nova mag - oder sogar die Chance hat, sie live zu sehen:

Maria Solheim - unbedingt mal anhoeren. Dank eines ungenannten Mudders der um
seinen Ruf als boeser, harter Typ fuerchtet ins Konzert in Marburg ;-)
verschleppt hat es mich voll erwischt: Maria ist zwar erst 18 Jahre alt, wird
aber garantiert ihren Weg gehen: Schoene Texte, eingaengige Melodien - und
live packt sie ihr Publikum so, dass nachher denkst Du, sie haette nur Dich
selbst angeschaut und fuer Dich gesungen... Im Moment kommt man noch um die 10
Euro in ihre Konzerte  - das wird garantiert bald teurer ;-)

Ronda

Ps: Einfach mal auf Amazon.de in "Behind Closed Doors" reinhoeren. Es lohnt
sich!

-----------------------------------------------------------------------------



Re: CD- und Live-Tipp: Maria Solheim (Montanus,  8. Jun 2003, 17:12:53):
~#! rn=Ronda rt=1055027580 rg=kultur
~#! tid=1055027580
Meinst du mit dem ungenannten Mudder, der versucht, ein Pseudo-harter-Kerl zu
sein, "Lug" ?

-----------------------------------------------------------------------------



Re: CD- und Live-Tipp: Maria Solheim (Lug, 12. Jun 2003, 20:53:05):
~#! rn=Ronda rt=1055027580 rg=kultur
~#! tid=1055027580
Pft,

die ist besser als die nervensaegige Nova oder die oede Nova. Du Verraeter...
L

-----------------------------------------------------------------------------



Re: Re: CD- und Live-Tipp: Maria Solheim (Lug, 12. Jun 2003, 20:53:41):
~#! rn=Montanus rt=1055085173 rg=kultur
~#! tid=1055027580
Nein,
ich bin hart. Kann also nicht gemeint sein, Du Berg.
L. in bestechender Logik

-----------------------------------------------------------------------------



Re^20: d.a.n. (Montanus, 19. Jun 2003, 10:26:39):
~#! rn=Nonne rt=1056007778 rg=schmarrn
~#! tid=1055961015
Ich verschieb mal in die richtige Rubrik, und erwaehne noch Tom Robbins. Wenn
hier selbst Billigkomiker wie Tom Sharpe genannt werden...
Robbins kommt eher aus der Richtung von Ruff.

-----------------------------------------------------------------------------



Re^21: d.a.n. (Vanion, 19. Jun 2003, 15:55:55):
~#! rn=Montanus rt=1056011199 rg=kultur
~#! tid=1055961015
Ok, ich finde zwar Diskussionen wie "Wenn Du $MEIN_LIEBLINGSAUTHOR vergisst,
bist Du Kulturbanause und doof und stinkst" bekloppt, mag aber grad trotzdem
(voellig ohne platte Kommentare) einen Namen in die Runde werfen:

 Eric Idle - The Road To Mars / Reise zum Mars 

Wie ich finde, ein wirklich gelungenes Buch.

V*

-----------------------------------------------------------------------------



Stoner / Desert Rock (Lug, 20. Jun 2003, 00:58:36):
Moin,

also wenn jemand auf Stoner / Desert Rock der Marke Kyuss steht (Satan sei
ihrer Seele gnaedig), dann kann ich die neue El Caco 'Solid Rest' nur
waermstens, aeh wuestenheiss, empfehlen. Das Teil brennt...

L.

-----------------------------------------------------------------------------



Spirited Away (Ark, 20. Jun 2003, 09:59:57):
Weiss zwar noch nicht, wie die deutsche Synchronisation aussieht (Chihiro und
die Reise ins Zauberland heisst das hier wohl), aber der Film, Story und
Umsetzung waren auf Japanisch (mit englischen Untertiteln :-) ) echt genial.
Two thumbs up.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Spirited Away (Gorog, 20. Jun 2003, 10:46:41):
~#! rn=Ark rt=1056095997 rg=kultur
~#! tid=1056095997
Da kann ich nur zustimmen, obwohl ich mich wirklich auf die deutsche Synchro
freue. Japanisch liegt mir dummerweise nicht so sehr und dauernd auf die
Untertitel zu schaun lenkt von den Bildern ab.

Gorog

-----------------------------------------------------------------------------



Re: Re: Spirited Away (Darklor, 20. Jun 2003, 21:02:10):
~#! rn=Gorog rt=1056098801 rg=kultur
~#! tid=1056095997
Also ich fand sie ganz gut...

Darklor

-----------------------------------------------------------------------------



Wacken (fuer die Abweichler) (Lug, 20. Jun 2003, 21:05:53):
Liebe Metalheadz!

"Wacken, wir kommen"! - das rufen momentan wohl immer mehr Headbanger weltweit
fuer das groesste Heavy Metal-Spektakel des Jahres!
 
Dazu hier der aktuelle Newsletter fuer den Monat Juni sowie extra Links zu den
warm up parties.



NIGHT TO REMEMBER am Donnerstag, den 31. July ab 18.00 h

ANNIHILATOR + CIRCLE II CIRCLE + VICTORY (Reunion!) + RUNNING WILD

Confirmed bands so far...

ANCIENT RITES, ANNIHILATOR, ASSASSIN, BAI BANG, CALLENISH CIRCLE,
CARPATHIAN FOREST, DARK AGE, DARK ANGEL, DARK FUNERAL, DARKANE,
DEW-SCENTED, DIAMOND HEAD, DIE APOKALYPTISCHEN REITER, DISMEMBER,
EIDOLON, EVIDENCE ONE, EXTREME NOISE TERROR, FREEDOM CALL, GAMMA RAY,
GRAVEWORM, HEAVENSHALLBURN, HUMAN FORTRESS, ICED EARTH, IN FLAMES,
KATAKLYSM, LORDI, LOTTO KING KARL, MALEVOLENT CREATION, MASTERPLAN,
METALIUM, NILE, OBSCENITY, ONKEL TOM, ORATORY, PRIMAL FEAR, PSYCHOPUNCH,
RAGE, RAISE HELL, RAUNCHY, ROTTING CHRIST, RUNNING WILD, SENTENCED,
SEVENTH ONE, SINISTER, SINNER, SLAYER, SOILWORK, SONATA ARCTICA,
STRATOVARIUS, SUBWAY TO SALLY, SYMPHORCE, TESTAMENT, THE ALMIGHTY PUNCHDRUNK,
THE CROWN, THYRFING, TWISTED TOWER DIRE, V8 WANKERS, VADER,
VICTIMS OF MADNESS & VICTORY.

-----------------------------------------------------------------------------



Re^3: Spirited Away (Karima, 20. Jun 2003, 21:19:24):
~#! rn=Darklor rt=1056135730 rg=kultur
~#! tid=1056095997
Also ich find, man kann den Film auch mit Untertiteln schauen. Lohnt sich
jedenfalls. Ist halt Gewoehnungssache, aber man lernt recht schnell auf
Untertitel und Handlung zugleich zu achten...

Karima

-----------------------------------------------------------------------------



Re^4: Spirited Away (Darklor, 20. Jun 2003, 21:40:08):
~#! rn=Karima rt=1056136764 rg=kultur
~#! tid=1056095997
Warum mit Untertitel ansehen, wenn es ihn auch als Synchro gibt? Hab sowas
zwar auch schon gemacht aber eher gezwungenermassen... Und manche Untertitel
sind einfach grauenhaft entweder man kann sie nich lesen, weil der Hintergrund
zu hell is oder man hat das gefuehl, da dein einfach noch Text fehlt (Es soll
sogar schon vorgekommen sein, das die Untertitel einfach grauenhaft uebersetzt
wurden... (kann einer Synchro zwar auch passieren aber wenn sie auf englich is
faellts (mir) nich so auf:))    

Darklor

-----------------------------------------------------------------------------



TTF Rudlostadt (Alboin, 20. Jun 2003, 23:07:36):
Jo, naja Wacken ist nicht jedermanns Geschmack, deswegen mache ich gleich mal
Wrbung fr  Rudolstadt 2003 - the german ethno roots fusion dance and Music
Festival
Nu hat Lou Reed leider abgesagt aber es sind dennoch genug interessante
Interpreten dabei: Hubert von Goisern, Yggrdrasil, Blowzabella, 17 Hippes um
nur einige zu nennen
Beim Laenderspezial praesentieren sich diesmal Kanadische Bands, beim Focus
Regional Berliner Bands.

Das ganze findet vom 4.-6. Juli im thueringeschen Rudolstadt statt. Die
Dauerkarte kostet 45 Euro im Vorverkauf allerdings geht der nur noch bis 21.6.
per Post.
Genauere Infos auf www.rudolstadt.de/tff

Al

-----------------------------------------------------------------------------



Re^5: Spirited Away (Jadawin, 21. Jun 2003, 09:38:04):
~#! rn=Darklor rt=1056138008 rg=kultur
~#! tid=1056095997
Also wenn ich so etwas wie 'Warum mit Untertitel ansehen, wenn es ihn auch als
Synchro gibt?' schon lese...
Jad* (schuettelt sich)

-----------------------------------------------------------------------------



Re: TTF Rudlostadt (Jadawin, 21. Jun 2003, 09:39:07):
~#! rn=Alboin rt=1056143256 rg=kultur
~#! tid=1056143256
17 Hippes? Weia... ;)
Jad*

-----------------------------------------------------------------------------



Re^6: Spirited Away (Darklor, 21. Jun 2003, 10:41:51):
~#! rn=Jadawin rt=1056181084 rg=kultur
~#! tid=1056095997
Wenn ich im Kino 'n Film sehe moecht ich ihn doch schon gern auch verstehen -
ich zahl doch nich die teure Kinokarte, um dann nur die Haelfte vom Film
mitzikriegen. - Bei ner DVD auf der beide Versionen drauf sind ists was anders
- schliesslich kann man dabei direkt vergleichen welche Version besser is
(oder einen mehr liegt) und wenn man die Zeit hat sich ihn mehrmals anzusehen,
bis man alles verstanden hat ists doch ok...   

Darklor

-----------------------------------------------------------------------------



Re^6: Spirited Away (Muadib, 21. Jun 2003, 10:59:25):
~#! rn=Jadawin rt=1056181084 rg=kultur
~#! tid=1056095997
naja wenn man kein japanisch kann ist das doch akzeptabel. die synchronisation
kann schlecht sein. das gilt aber auch fuer die untertitel. wenn ich das nicht
beurteilen kann nehm ich dann die synchronisation weil sie mir den mehrwert
eines angenehmeren filmerlebnis bringt.

-----------------------------------------------------------------------------



Re^7: Spirited Away (Grimmborn, 21. Jun 2003, 11:01:07):
~#! rn=Muadib rt=1056185965 rg=kultur
~#! tid=1056095997
Sachtma, ist euch eigentlich mal aufgefallen dass gesprochene Sprache
wesentlich mehr transportiert als nur Worte?

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^8: Spirited Away (Muadib, 21. Jun 2003, 11:03:52):
~#! rn=Grimmborn rt=1056186067 rg=kultur
~#! tid=1056095997
dochdoch ist mir aufgefallen, aber wieviel macht das aus? was nutzt es mir
wenn ich ein vor angst zitterndes stimmchen als zeichen von angst erkenne aber
nicht verstehe was es sagt. desweiteren kann die information auch in der
synchronisation drin sein, oder nicht?
und gerade bei den untertiteln nuetzt mir diese mehrinformation nichts, weil
ich nur raten kann bei welchem teil des untertitels sie gebracht wurde. das
ist nicht immer offensichtlich

-----------------------------------------------------------------------------



Re^9: Spirited Away (Grimmborn, 21. Jun 2003, 11:10:26):
~#! rn=Muadib rt=1056186232 rg=kultur
~#! tid=1056095997
Das macht sehr viel aus, meiner Meinung nach bis ueber 50%, was mir neulich
bei der deutschen Version von Maris Reloaded wieder aufgefallen ist (ist das
echt noetig dass die ihren Text so runterleiern?). Die Information *kann* in
der Synchronistation drin sein, muss aber nicht und erst recht nicht
vollstaendig. 

Ich gebe zu dass Untertitel Uebung erfordern. Die Zuordnung, mit der Du
Probleme hast, ist reine Uebungssache. Selbst bei Sprachen, die ich nicht
verstehe, klappt das nach einiger Zeit erstaunlich gut. Als vor Jahren
fuenf(?) Teile des japanischen Evangelion auf VOX OmU kamen, hab ich am Ende
beeindruckend viel verstehen koennen. Und gerade japanische Filme lassen sich
offenbar nicht adaequat synchronisieren. Dann lieber ein Remake.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^10: Spirited Away (Anatol, 21. Jun 2003, 11:30:09):
~#! rn=Grimmborn rt=1056186626 rg=kultur
~#! tid=1056095997
Da stossen Kulturen aufeinander. Wer sagt denn, dass Du die japanische
Gestik richtig interpretierst, die prosodische Information japanischer
Rede richtig zu verstehen weisst, ueberhaupt einordnen kannst, was es
heisst, wenn ein Japaner diese und keine andere Formel der Entschuldigung
murmelt?

Ich halte die These "Ich kuck Anime OmU, weil ich dann mehr verstehe" -
und nichts anderes interpretiere ich da jetzt rein - zumindest partiell
fuer gewagt.

Das mag freilich fuer Englisch nicht gelten. Da kennen wir (d.h. ich
kenne und was ich kann und kenne, koennen andere auch ;)) die Sprache
gut genug, um mit Tonfall keinen Reinfall zu erleben.

A

-----------------------------------------------------------------------------



Re^11: Spirited Away (Grimmborn, 21. Jun 2003, 11:43:47):
~#! rn=Anatol rt=1056187809 rg=kultur
~#! tid=1056095997
Deswegen sagte ich ja auch ich haette am Ende viel verstehen koennen. Der
Anfang diente dann dazu Geschehen und Verhalten zu koordinieren. Dass ich
natuerlich nicht alle Nuancen verstanden habe ist mir selbstverstaendlich
klar. Aber im Zusammenhang mit den U doch deutlich mehr als aus den U alleine
oder ich bei einer Synchronisation fuer moeglich halte.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^12: Spirited Away (Muadib, 23. Jun 2003, 11:58:56):
~#! rn=Grimmborn rt=1056188627 rg=kultur
~#! tid=1056095997
hmm, 
woraus entnimmst Du dass mir diese Uebung fehlt? Ich habe einige japanische
Animes im Original mit Untertiteln gesehen und hatte nicht den Eindruck etwas
zu verstehen bis auf ein paar Wortfetzen.
Aber ich bin halt beschraenkt

-----------------------------------------------------------------------------



Re^13: Spirited Away (Wurzel, 24. Jun 2003, 17:21:13):
~#! rn=Muadib rt=1056362336 rg=kultur
~#! tid=1056095997
geht mir genauso. und ich bin auch ein bekennender ignorant: was bitteschoen
ist "prosodische information"?

wurzel

-----------------------------------------------------------------------------



Re: Wacken (fuer die Abweichler) (Strohalm, 10. Jul 2003, 15:29:09):
~#! rn=Lug rt=1056135953 rg=kultur
~#! tid=1056135953
Da fehtlt noch Iced Earth in der Liste ;)

Haelmchen

-----------------------------------------------------------------------------



Re: Re: Wacken (fuer die Abweichler) (Boing, 10. Jul 2003, 15:30:49):
~#! rn=Strohalm rt=1057843749 rg=kultur
~#! tid=1056135953
Steht doch direkt hinter Human Fortress ...
  Boing

-----------------------------------------------------------------------------



Radio (Lug, 13. Jul 2003, 21:48:17):
www.oeins. de
Donnerstag, 17.Juli, 20.05 Uhr
Black Metal Art

der Titel sagt alles...


-----------------------------------------------------------------------------



Nette Sprueche eines Presidenten (Terry, 20. Jul 2003, 18:27:26):
 ... ein ganzes Buch voll!
 "Voll daneben, Mr. President!" ISBN 3-499-61619-X  (6.00)

Terry weiss nicht, ob er lachen oder weinen soll.

-----------------------------------------------------------------------------



Re: Nette Sprueche eines Presidenten (Anatol, 22. Jul 2003, 15:31:02):
~#! rn=Terry rt=1058718446 rg=kultur
~#! tid=1058718446
Ein vergleichbares Werk gibt es auch von J.F.K. - es verdeutlicht
grade im Kontext mit dem aktuellen Mr. President den Zerfall der
Vereinigten Staaten... ;)


-----------------------------------------------------------------------------



Hoert Hoert ... (Ark, 30. Jul 2003, 16:09:05):
Apocalyptica, Reflections. Zumindest hoere ich das grad hoch und runter im
Auto :-) Track 3, 6 und 10 sind besonders waermstens zu empfehlen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



FAZ von heute... (Zook,  5. Aug 2003, 09:48:05):
In der FAZ von heute findet sich auf S. 40 ein putziger Bericht ueber
das diesjaehrige Wacken-Festival. 

Zook

PS: Ich hab nur irgendwie das Gefuehl, so sonderlich viel anderes als im
letzten Jahr hat der Autor nicht geschrieben---na, vll. ist das so wie mit
der Neujahrsansprache des Bundeskanzlers.

-----------------------------------------------------------------------------



Filmtip "Liegen Lernen" (Sou,  9. Aug 2003, 11:40:37):
Schoener Film ueber einen Mann Ende 20 - Anfang 30 und seine Frauengeschichten
nach dem 18ten Lebensjahr. Leichte Kost.

Sou

-----------------------------------------------------------------------------



Re: Filmtip "Liegen Lernen" (Zook,  9. Aug 2003, 11:49:23):
~#! rn=Sou rt=1060422037 rg=kultur
~#! tid=1060422037
Note?

Zook.

-----------------------------------------------------------------------------



Re: Re: Filmtip "Liegen Lernen" (Sou,  9. Aug 2003, 11:51:23):
~#! rn=Zook rt=1060422563 rg=kultur
~#! tid=1060422037
Schulnote 2.

Sou.

-----------------------------------------------------------------------------



Re^3: Filmtip "Liegen Lernen" (Maharet, 10. Aug 2003, 20:32:33):
~#! rn=Sou rt=1060422683 rg=kultur
~#! tid=1060422037
Ich fand den Film auch ueberraschend witzig, locker und nicht problembehaftet
fuer nen deutschen Film.

Maha

-----------------------------------------------------------------------------



Re^4: Filmtip "Liegen Lernen" (Seleven, 10. Aug 2003, 20:36:04):
~#! rn=Maharet rt=1060540353 rg=kultur
~#! tid=1060422037
S11 nickt.

-----------------------------------------------------------------------------



film von Theodor Dreyer heute im TV (Alboin, 25. Aug 2003, 14:25:25):
Der daenische Regisseur Carl Theodor Dreyer (1989 - 1968) gilt seit seinem
Stummfilm "Die Passion der Jeanne d'Arc" (1928) als einer der bedeutendsten
Filmemacher.
Heute kommt von ihm auf 3Sat um 22.55 Uhr den Film "Gertrud", einer der
wenigen Tonfilme von Dreyer. Es geht um die Geschichte einer Frau die sich aus
den Zwaengen ihrer grossbuergerlichen Ehe zu befreien versucht.
Eine halbe Stunde eher kommt uebrigens eine Dokumentation zu diesem Film.

Al, der hier kulturell anspruchsvolle Beitraege vermisst

-----------------------------------------------------------------------------



Re: film von Theodor Dreyer heute im TV (Foobar, 25. Aug 2003, 14:50:23):
~#! rn=Alboin rt=1061814325 rg=kultur
~#! tid=1061814325
Neulich lief uebrigens mal wieder "Starship Troopers" im TV, natuerlich
uebelst geschnitten.

Foobar

-----------------------------------------------------------------------------



superpunk und goldene zitronen (Amazora, 29. Aug 2003, 11:27:07):
heute abend in koeln im underground: superpunk (hamburg) und die goldenen
zitronen (hamburg)
einlass 19:30
beginn 20:00
amazora freut sich schon 

-----------------------------------------------------------------------------



Durch Zufall entdeckt... (Apollonia, 30. Aug 2003, 07:55:14):
... beim Zappen (c: Freitags kommt ab 21:10 Uhr auf Tele 5 - ich traute meinen
Augen kaum:

CAPTAIN FUTURE

Der Held meiner Kindheit (c:

Apo*

-----------------------------------------------------------------------------



Re: Durch Zufall entdeckt... (Maharet, 30. Aug 2003, 16:49:22):
~#! rn=Apollonia rt=1062222914 rg=kultur
~#! tid=1062222914
Hach, in den war ich sooo verknallt, als ich 5 war!

Maha, Spion und Giftmischer aD
versinkt in Kindheitserinnerungen

-----------------------------------------------------------------------------



Re: Durch Zufall entdeckt... (Gnome, 30. Aug 2003, 19:35:58):
~#! rn=Apollonia rt=1062222914 rg=kultur
~#! tid=1062222914
tele 5?
war das nicht der sender, den es seit 10 jahren nicht mehr gibt?

gnOme gruebelt.

-----------------------------------------------------------------------------



Re: Re: Durch Zufall entdeckt... (Apollonia, 30. Aug 2003, 19:41:56):
~#! rn=Gnome rt=1062264958 rg=kultur
~#! tid=1062222914
Kann sein, dass es den zwischendurch mal nicht gegeben hat, aber wenn's denn
selbst bei tvtoday gibt...

Und Halluzinationen hab ich noch nich *g*

Apo*

-----------------------------------------------------------------------------



Re: Re: Durch Zufall entdeckt... (Vanion, 30. Aug 2003, 19:43:22):
~#! rn=Gnome rt=1062264958 rg=kultur
~#! tid=1062222914
Jep, der is '95 oder so mal offline geganen. Frueher war das ein Sender der
eigentlich hauptsaechlich durch Zeichentrick bekannt war. Irgendwann im
letzten Jahr ging ein neuer Sender mit gleichem Logo und aehnlicher
Philosophie wieder on air.

V*

-----------------------------------------------------------------------------



Re^3: Durch Zufall entdeckt... (Muadib,  1. Sep 2003, 09:34:22):
~#! rn=Vanion rt=1062265402 rg=kultur
~#! tid=1062222914
tele 5 war hauptsaechlich durch zeichentrick bekannt?
nicht dadurch dass er als einziger sender die amerikanische
grunzringervariante brachte? und das besonders ausgiebig?

kamen da echt zeichentrickfilme?
ich erinnere mich nicht wirklich dran, ausser du meinst solchen superschrott
wie transformers und so

-----------------------------------------------------------------------------



Re^3: Durch Zufall entdeckt... (Zarniya,  1. Sep 2003, 09:34:46):
~#! rn=Vanion rt=1062265402 rg=kultur
~#! tid=1062222914
mal abgesehen, dass es Captain Future inzwischen auch komplett auf DVD gibt...
ichhabs als VCD. :)

-----------------------------------------------------------------------------



Re: Re: Durch Zufall entdeckt... (Del,  1. Sep 2003, 14:08:46):
~#! rn=Maharet rt=1062254962 rg=kultur
~#! tid=1062222914
Aehm wie sooo verknallt?
Das war doch der Mann meiner Traeume. ;-)
Jetzt ist der Freitag Abend ja zukuenftig gerettet. *jubel*
Schwaermerische Gruesse
die NuDel

-----------------------------------------------------------------------------



Re^4: Durch Zufall entdeckt... (Rochus,  1. Sep 2003, 19:47:25):
~#! rn=Muadib rt=1062401662 rg=kultur
~#! tid=1062222914
Na immerhin war es der einzige Sender,
auf dem "Eat the Rich" zu sehen war :-)

-----------------------------------------------------------------------------



Buchempfehlung (Patryn, 10. Sep 2003, 15:52:44):
Natuerlich moegen wir alle Fantasyliteratur ;)
Deshalb trau ich mich auch unumwunden, hier solchige zu empfehlen *g*
http://www.wilbursmithbooks.com/egyptian.html
Hab Warlock schon gelesen und fand es gut, auf gut Glueck auch
River God gekauft, und muss sagen, es ist das beste Buch was ich seit langem
gelesen habe, und ich lese so einiges.
Eingebettet ist das Ganze in das alte Aegypten, 2000 vor Christus etwa,
und ich war da auch erst skeptisch, aber es ist wirklich toll!

-----------------------------------------------------------------------------



The Dark Tower (Vanion,  3. Okt 2003, 23:55:27):
Hi,

irgendwie komm ich nich mit Amazon zurecht. Ich wuerde mir gern die Baende vom
Dark Tower zulegen. Als Paperback. In der englischen Ausgabe. Nun ist mein
Problem, dass es scheinbar keinen Verlag gibt, der alle Baende im gleichen
Layout liefert. Da ich aber schon daran denke, dass die mal spaeter in meinem
Buecherregal stehen, faend ich das toll, wenn das ginge.

Hat eine(r) von euch die Baende in gleichem Format und Stil? Wenn ja, von
welchem Verlag und mit welcher ISBN?

Danke fuer die Hilfe.

V*

-----------------------------------------------------------------------------



Re: The Dark Tower (Patryn,  6. Okt 2003, 19:11:14):
~#! rn=Vanion rt=1065218127 rg=kultur
~#! tid=1065218127
So langsam werden Spiegel-Berichte unertraeglich, bei folgndem Artikel
kann einem nur die Hutschnuere hochgehen.
http://www.spiegel.de/politik/debatte/0,1518,268521,00.html

-----------------------------------------------------------------------------



ChinesischesEssen ... (Gloinson,  7. Okt 2003, 18:19:31):
Der Preis fuer das Musical "Cats" ist im Monat Oktober auf fast staatsopernahe
14(+2) Euro [unter der Woche] fuer die schlechtesten Raenge reduziert.
Zumindest in Berlin, sicher auch anderswo.


-----------------------------------------------------------------------------



heute abend (Gnome, 12. Okt 2003, 20:11:02):
gibt es auf VOX den spannendsten film, den ich kenne:
22.05h, "Todesstille"

wer nicole kidman, sam neill und 100% nervenkitzel mag: reinschauen!

gnOme

-----------------------------------------------------------------------------



Re: heute abend (Vincent, 12. Okt 2003, 20:15:51):
~#! rn=Gnome rt=1065982262 rg=kultur
~#! tid=1065982262
Ich unterstuetze Gnome hiermit in seiner Empfehlung: Der Film ist hochgradig
spannend. Kidman und Neill spielen sehr gut. Und Billy Zane, als dritter
im Bunde...klasse. Die drei liefern einen erstklassigen Thriller ab.

Gruss
Vincent

-----------------------------------------------------------------------------



ROTK (Foobar, 26. Nov 2003, 16:08:25):
Moin,

unter

   http://tinyurl.com/wn7g

findet sich der laut /. erste Review zum dritten Teil von HdR.

Foobar

-----------------------------------------------------------------------------



Re: ROTK (Catweazle, 26. Nov 2003, 16:13:50):
~#! rn=Foobar rt=1069859305 rg=kultur
~#! tid=1069859305
Und jetzt will ich kein Wort mehr darueber hoeren, ist das klar?

YTC

-----------------------------------------------------------------------------



Re: Re: ROTK (Foobar, 26. Nov 2003, 16:16:15):
~#! rn=Catweazle rt=1069859630 rg=kultur
~#! tid=1069859305
PS: Moeglicherweise sind Spoiler drin.

-----------------------------------------------------------------------------



Re^3: ROTK (Montanus, 26. Nov 2003, 16:55:32):
~#! rn=Foobar rt=1069859775 rg=kultur
~#! tid=1069859305
Sorry, Cat, ich verrate dir, wie es ausgeht.
"9 Finger".

-----------------------------------------------------------------------------



Late Night (Liara, 31. Dez 2003, 00:30:29):
Anke Engelke wird Nachfolgerin von Harald Schmidt. Koennte man jetzt nicht
vielleicht auch noch Kristian Thees organisieren? ;>

-----------------------------------------------------------------------------



Re: Late Night (Mupfel, 31. Dez 2003, 00:40:28):
~#! rn=Liara rt=1072827029 rg=kultur
~#! tid=1072827029
Wen?

-mupfel-

-----------------------------------------------------------------------------



Re: Re: Late Night (Grimmborn, 31. Dez 2003, 07:36:57):
~#! rn=Mupfel rt=1072827628 rg=kultur
~#! tid=1072827029
Die andere Haelfte des C-Teams.

GdA ist dafuer

-----------------------------------------------------------------------------



Re^3: Late Night (Liara,  7. Jan 2004, 00:28:00):
~#! rn=Grimmborn rt=1072852617 rg=kultur
~#! tid=1072827029
Weiss eigentlich jemand was Markus B. aus S. heutzutage macht?

-----------------------------------------------------------------------------



Re^3: Late Night (Liara, 12. Jan 2004, 19:11:53):
~#! rn=Grimmborn rt=1072852617 rg=kultur
~#! tid=1072827029
Habe Kristian mal gemailt. Leider ist er in der Sendung bisher net vorgesehen.
;) *schnief* Spasseshalber meinte er aber, dass er als Rettungsanker kommen
koennte, falls die Quoten nicht stimmten. ;)

-----------------------------------------------------------------------------



Mer losse d' Dom in Koelle... *wuerg* (Maarg, 18. Feb 2004, 18:21:26):
 Alaaf und Helau! 
 Seid ihr bereit? 
 Willkommen zur Beklopptenzeit!
 Mer kenne des aus Akte X,
 doch Mulder rufe hilft da nix,
 des kommt durch Strahle aus dem All,
 und ploetzlisch ist dann Karneval!

 ( Tusch ) 

 Uff einen Schlach werd'n alle daemlisch,
 denn das befiehlt das Datum naemlisch!
 Es ist die Zeit der tollen Tage,
 so eine Art Idiotenplage,
 eine Verschwoerung, bloed zu werden,
 die jaehrlich um sich greift auf Erden.
 Ei' wahre Ausgeburt der Hoelle,
 und Ausgangspunkt davon ist Koelle!

 ( Tusch ) 

 Denn dort gibt's nisch nur RTL,
 das Fernseh-Einheitsbrei-Kartell,
 sondern aach jede Menge Jecken,
 die sisch auf Nasen Pappe stecken,
 in Teufelssekten sich gruppieren
 danach zum Elferrat formieren
 und dann muss selbst das duemmste Schwein
 dort auf Kommando froehlisch sein.

 ( Tusch ) 

 Auf einmal tun in allen Laendern
 die Leude sisch ganz schlimm veraendern
 Sie geh'n sisch hemmungslos besaufe
 und fremde Mensche Freibier kaufe
 schmeisse sisch Bonbons an die Schaedel,
 betatsche Jungens und aach Maedel
 und tun eim jede, den sie sehen,
 ganz fuschtbar uff de Eier gehen!
 Sie tun nur noch in Reime spreche
 und sind so witzisch, man koennt' breche,
 bewege sisch in Polonaesen,
 als truegen sie Gehirnprothesen,
 man moeschte ihnen - im Vertrauen
 - am liebsten in die Fresse hauen!

 ( Tusch & Konfetti-Kanone )

 Doch was soll man dagege mache?
 Soll man vielleicht noch drueber lache?
 Es hilft kein Schreie und kein Schimpfe,
 man kann sisch nich mal gegen impfe,
 die Macht der Doofen ist zu stark,
 als dass man sisch zu wehr'n vermag!

 ( kein Tusch ) 

 Am besten ist, man bleibt zu Haus
 und sperrt den Wahnsinn aanfach aus.
 Man schliesst sich ein paar Tage ein
 und laesst die Bloeden bloede sein!
 Der Trick ist, dass man sich verpisst
 bis wieder Aschermittwoch ist!

 ( evtl. Tusch ) 

 Und steht ein Zombie vor der Tuer,
 mit so 'nem Pappnasengeschwuer,
 und sagt statt "Hallo" "Helau",
 dann dreh sie um, die dumme Sau,
 und tritt ihr kraeftig in den Arsch
 und ruf' dabei: Narrhalla-Marsch!!!




-----------------------------------------------------------------------------



Re: Mer losse d' Dom in Koelle... *wuerg* (Grimmborn, 18. Feb 2004, 19:35:03):
~#! rn=Maarg rt=1077124886 rg=kultur
~#! tid=1077124886
Nee, is klar. Im hessischen Dialekt angeblich ueber den Koelner Karneval.
Glaubwuerdig, echt. Vor allem auch der Teil mit dem "Helau".

GdA

-----------------------------------------------------------------------------



Re: Re: Mer losse d' Dom in Koelle... *wuerg* (Anatol, 18. Feb 2004, 19:45:01):
~#! rn=Grimmborn rt=1077129303 rg=kultur
~#! tid=1077124886
Die Meeenzer ticken auch schon aus. Staende mit Grundnahrungsmittel
(Bier, Cola, Wuerstchen, ...) werden aufgebaut, Tribuenen (sic!) hochgezogen,
etliche Buehnenanlagen installiert... Ich weiss noch nicht, ob ich mir das
wirklich antun will... ;)


-----------------------------------------------------------------------------



Re^3: Mer losse d' Dom in Koelle... *wuerg* (Montanus, 19. Feb 2004, 08:55:31):
~#! rn=Anatol rt=1077129901 rg=kultur
~#! tid=1077124886
Du willst, lieber Anatol, du willst. Du wirst einfach assimiliert.
Und zu GdA: "Alaaf" reimt sich einfahcn icht auf "dumme Sau". Aber ich dichte
das gerne fuer dich um:

...
und sagt er statt "Hallo" "Alaaf",
dann es um, das dumme Schaf,
un tritt ihm kraeftig in den Arsch
und ruf' dabei: Narrhall-am-arsch!

-----------------------------------------------------------------------------



Paranoia (Maarg, 19. Feb 2004, 23:45:01):
http://www.mongoosepublishing.com/phpBB2/viewtopic.php?t=1299

-----------------------------------------------------------------------------



DON'T PANIC! (Maarg, 23. Feb 2004, 23:16:12):
http://www.imdb.com/title/tt0371724/

Tja, ich weiss nicht ob ich mich freuen soll oder nicht... Immerhin schreibt
DA selbst am Drehbuch mit und gehoert zu den ausfuehrenden Produzenten. Und
Fran Walsh, die auch beim "Herr der Ringe" ihre Finger im Spiel hatte, ist
auch wieder mit von der Partie.

Maarg

-----------------------------------------------------------------------------



Re: DON'T PANIC! (Grimmborn, 23. Feb 2004, 23:18:10):
~#! rn=Maarg rt=1077574572 rg=kultur
~#! tid=1077574572
Du hast Deine Zeiten nicht richtig. "DA" schreibt an gar nichts mehr mit.

GdA

-----------------------------------------------------------------------------



Re: Re: DON'T PANIC! (Maarg, 23. Feb 2004, 23:18:31):
~#! rn=Grimmborn rt=1077574690 rg=kultur
~#! tid=1077574572
Mea culpa. Also wohl doch keine Freude.

-----------------------------------------------------------------------------



Re^3: DON'T PANIC! (Liara, 24. Feb 2004, 19:14:59):
~#! rn=Maarg rt=1077574711 rg=kultur
~#! tid=1077574572
First Screenplay ist First Screenplay oder nicht?

-----------------------------------------------------------------------------



Der Selbstmord der Lemminge (Liara,  3. Mar 2004, 20:57:10):
Solchen und anderen Legenden geht ein Buch von Christoph Droesser nach. Es
heisst 'Stimmt's? Moderne Legenden im Test' und ist bei Rowohlt erschienen.
Ich bin in meinem Buchdiscount drauf gestossen, denn dort wird es zur Zeit als
angebliches Maengelexemplar zum halben Preis verkauft (Originalpreis 7.90
Euro).

Es handelt sich um die Zusammenfassung einer ZEIT-Kolumne und behandelt
Themen, ueber die man schon immer Bescheid wissen wollte:
          Bier auf Wein, das lass sein
          Der Loeffel in der Sektflasche
          Nuetzt das Reiben von Muenzen am Automaten?
          Das Aufwaermen von Pilzen und Spinat
          Glatzen und Potenz
und einige mehr.

Viel Spass damit, Liara

-----------------------------------------------------------------------------



Re: Der Selbstmord der Lemminge (Toe,  8. Mar 2004, 23:43:28):
~#! rn=Liara rt=1078343830 rg=kultur
~#! tid=1078343830
lemminge... http://www.nichtlustig.de/shop/index.html

-----------------------------------------------------------------------------



artikel Konzert in Aachen (Elberet, 12. Mar 2004, 17:19:48):
Also falls jemand in der Naehe ist und Lust hat.
Samstag, 13, Maerz um 20 Uhr findet im Eurogress
in Aachen ein Konzert des Jungen Sinfonieorchesters Aachen
statt. Gespielt wird:

    Winkelmann: In Itinere (Urauffuehrung)
    Haydn: Trompetenkonzert Solist Yesemeh Adjei
    Schubert: Symphonie in C-Dur (die lange :) )

Also wer Lust und Zeit hat ...
Elberet

-----------------------------------------------------------------------------



Firefly! (Catweazle, 27. Mar 2004, 20:54:40):
Moin!

Wer die Serien-Schmiede von Joss Whedon gut findet, am 19. April werden die
bisher sichtbaren 14 Folgen von Firefly, einer schwer geilen
Spae-Western-Serie mit viel Liebe zum Detail, auf DVD als US-Import
veroeffentlicht.

Die DVD soll bei Amazon zwar 55 Euro kosten, bei Amaozon.co.uk isses
allerdings viel billiger, weil da zudem noch 30% Vorbestellungsrabatt
hinzukommen. Die Empfehlung lautet also jetzt zu buchen :)

YTC

-----------------------------------------------------------------------------



Zwielicht (Gnome, 28. Mar 2004, 18:16:51):
hallo,

heute mal wieder eine TV-empfehlung von mir.
o.g. film kommt heute abend, 20:15 auf SAT1. die empfehlung erfolgt
nicht wegen richard gere und auch nicht wegen der etwas klischeehaften
story, sondern einzig und allein wegen edward nortons schauspielerischen
glanzleistung.
er hatte mit diesem film seinen durchbruch; wenn ihr ihn euch anschaut,
wisst ihr, warum. :)

gnOme

-----------------------------------------------------------------------------



Re: Firefly! (Darklor,  9. Apr 2004, 00:13:34):
~#! rn=Catweazle rt=1080417280 rg=kultur
~#! tid=1080417280
Auch mit nem brauchbaren Laendercode?

Darklor

-----------------------------------------------------------------------------



Re: Re: Firefly! (Catweazle,  9. Apr 2004, 01:20:27):
~#! rn=Darklor rt=1081462414 rg=kultur
~#! tid=1080417280
Ja, 2, UK-Reimport ....

YTC

-----------------------------------------------------------------------------



memento (Gnome, 11. Apr 2004, 22:38:19):
heute abend, 23:20 auf SAT1, gibts o.g. film.
inhaltlich gut und technisch faszinierend umgesetzt verdient er meine
empfehlung.

gnOme

-----------------------------------------------------------------------------



Re: memento (Ark, 11. Apr 2004, 22:44:15):
~#! rn=Gnome rt=1081715899 rg=kultur
~#! tid=1081715899
Kannisch auch empfehlen, hab ihn allerdings nur im Originalton auf DVD
gesehen, also nicht hauen, wenn er mies synchronisiert ist ;)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: memento (Muadib, 11. Apr 2004, 22:45:21):
~#! rn=Ark rt=1081716255 rg=kultur
~#! tid=1081715899
was ist denn so ganz knapp angerissen der inhalt?
welches genre wird bedient ?

-----------------------------------------------------------------------------



Re^3: memento (Gnome, 11. Apr 2004, 22:47:45):
~#! rn=Muadib rt=1081716321 rg=kultur
~#! tid=1081715899
ein mann mit laediertem kurzzeitgedaechtnis versucht anhand selbstgemachter
notizen und zaghaften erinnerungen den moerder seiner frau zu finden. an
sich noch nichts spektakulaeres, wuerde man sich nicht durch die spezielle
drehweise in diesen man hineinversetzt. wirklich klasse gemacht.

-----------------------------------------------------------------------------



Re^4: memento (Seleven, 14. Apr 2004, 09:12:26):
~#! rn=Gnome rt=1081716465 rg=kultur
~#! tid=1081715899
Klasse Film, auch wenn ich jedes mal ne halbe Stunde Verarbeitungszeit
brauche. :)

S11

-----------------------------------------------------------------------------



Picknick auf dem Mond gefaellig? (Vanion, 22. Apr 2004, 22:36:15):
Hi,

Da ich gestern noch etwas Zeit hatte, bin ich in Koblenz durch die Stadt
geschlendert? Und wo landet ein technikbesessener Mudder frueher oder spaeter?

Ja, auch in der Kneipe - aber vorher?

Genau. Ich war im Saturn, bummeln, und mal gucken, was es denn da so an Musik
gibt. (In Letzter Zeit kann man da ja die Charts quasi als Ignore-List
benutzen.) Ok, zurueck zum Thema:

Mir ist da die 'neue' CD von Mila Mar - "Picnic on the Moon" ueber den Weg
gelaufen. 'Neu' in Anfuehrungsstrichen, weil die schon seit geraumer Zeit
draussen ist, ich sie aber bisher nirgendwo gesehen hatte. Ich weiss zwar
nicht, womit ich soviel Glueck verdient habe, aber es ist auch noch eine
Spezialausgabe, in der eine zweite CD mit Remixes drinliegt.

Ich finde, dass man deutlich einen Unterschied zu frueheren Alben Nova oder
Elfensex hoert. Klar, die Stimme von Anke Hachfeld ist immer noch da, und
macht den Mila Mar-Sound so unverwechselbar, dass Katrin Beischer und Soan
Meyer die Band verlassen haben, hinterlaesst deutlich seine Spuren in der
Instrumentkomposition, wie ich finde. Aber es wird beim Hoeren schnell klar:
Hachfeld ist zusammen mit Maaf Kirchner noch immer Mila Mar.

Wer die aelteren Alben von Mila Mar mochte, wird also mit Picnic on the Moon
nicht ungluecklich werden, wer sie noch nicht kennt, sollte mal ein Ohr wagen.
Sie machen sicher keine Musik, die Chart-tauglich ist, aber wie ich oben schon
angedeutet hab, ist das fuer mich momentan eher ein Praedikat. Reinhoeren in
das Album kann man bei Amazon (http://tinyurl.com/3f7vy), es gibt auch noch
eine Fansite mit einigen Soundtracks unter http://tinyurl.com/37g5q.

Falls jemand Musiktips hat, die in diese Richtung gehen, immer her damit :)

V*, lauscht weiter seiner neuen Errungenschaft.

-----------------------------------------------------------------------------



Bastard-Lesung in Kiel (Vanion, 23. Apr 2004, 18:46:03):
Hi, 

etwas kurzfristig, aber trotzdem:

Heute abend, gg 20:00 liest Florian Schiel uns der Uni Kiel etwas vor. Naehere
Infos gibts hier: http://tinyurl.com/35y2q

Auf der Seite gibts auch die Links fuer Life Streams, so dass jeder in den
Genuss kommen kann, sich die Lesung anzu(sehen|hoeren).

Viel Spass,
V*

-----------------------------------------------------------------------------



Re^4: memento (Anatol, 24. Apr 2004, 16:03:46):
~#! rn=Gnome rt=1081716465 rg=kultur
~#! tid=1081715899
"laediertes Kurzzeitgedaechtnis"... jedesmal dasselbe. Der Knabe hat,
wie auch "Dorie" in "Finding Nemo" ein durchaus funktionierendes
Kurzzeitgedaechtnis, und das Langzeitgedaechtnis funktioniert auch
ganz hervorragend. Sie koennen (beide) sogar noch lesen. Das ist nix,
was ausschliesslich implizit erlernt wird.

Was ihnen beiden ploetzlich fehlt, ist die Moeglichkeit, Wissen vom
Kurzzeit- ins Langzeitgedaechtnis zu konsolidieren. DAS macht dann
gewissen Aerger. Und es gibt sogar einen Namen dafuer (irgendeine
bestimmte Amnesie), aber bestimmt nicht "laediertes Kurzzeitgedaechtnis".

Anatol war auch mal Student ;)


-----------------------------------------------------------------------------



Re^5: memento (Muadib, 24. Apr 2004, 16:11:00):
~#! rn=Anatol rt=1082815426 rg=kultur
~#! tid=1081715899
weisst du das ist wie der terminus "die sonne geht auf", sachlich nicht gerade
richtig aber jeder weiss was gemeint ist. 
wohingegen ein hinweis darauf dass die sonne ja nicht auf geht sondern sich
die erde und die sonne umlauftechnisch in einer bestimmten situation ist fuer
die es auch irgendeinen fachbegriff gibt, wenig hilfrich ist :)

mosermotzmotzkeif und so

-----------------------------------------------------------------------------



Re^6: memento (Anatol, 24. Apr 2004, 16:38:31):
~#! rn=Muadib rt=1082815860 rg=kultur
~#! tid=1081715899
Ich bin auf dem "Die Sonne geht auf"-Niveau geblieben. Ich bin mit
der Materie nicht mehr 100% vertraut, ist halt schon eine Weile her...

Anatol, kann "Labiodentalfrikativfehler" noch immer aussprechen, hat
bei "Parietalokzipitallappen" unter Muedigkeit aber Schwierigkeiten.


-----------------------------------------------------------------------------



Re^7: memento (Muadib, 24. Apr 2004, 18:44:25):
~#! rn=Anatol rt=1082817511 rg=kultur
~#! tid=1081715899
irgendwie fuehl ich mir nu nich geholfen getutet

-----------------------------------------------------------------------------



Re^8: memento (Anatol, 24. Apr 2004, 19:26:26):
~#! rn=Muadib rt=1082825065 rg=kultur
~#! tid=1081715899
Dir ist ja auch nicht zu helfen.

-----------------------------------------------------------------------------



frequenzy (Gnome,  2. Mai 2004, 19:30:48):
heute abend, 20.15, pro7 gibts o.g. film fuer leute mit einem faible fuer
zeit-reisen-auswirkungs-konsistenz-geschichten. :)

gnOme

-----------------------------------------------------------------------------



Re: frequenzy (Zarniya,  3. Mai 2004, 08:22:59):
~#! rn=Gnome rt=1083519048 rg=kultur
~#! tid=1083519048
es waer auch ein sehr guter Film fuer Musikfreunde geworden, haetten die
Deppen von Pro7 mal ein wenig mehr von dem Abspann gezeigt... wer Fragen zu
dem Song am Ende des Films hat, der kann mir ja mailen.... 

Marc

-----------------------------------------------------------------------------



Kulturtipp: Kneipenlesung am 29.5. in Muenster (Daria,  3. Mai 2004, 13:59:50):
Hallo Ihr Lieben,
am 29. 5. macht sich das Paderborner Kneipenlesungsteam auf ins ferne Muenster
und veranstaltet eine Lesung im Peperoni. Ihr hoert (wie immer) spassige bis
ersnte Texte (diesmal zum Thema "Kulinarisches"), umrahmt von Tafelmusik (oder
so).
Das ganze beginnt um 20:30 Uhr. Naehere Infos gibts unter www.kneipenlesung.de
oder www.gemuesekultur.de .
Daria liest auch mit.

-----------------------------------------------------------------------------



Re: Kulturtipp: Kneipenlesung am 29.5. in Muenster (Daria,  3. Mai 2004, 14:00:10):
~#! rn=Daria rt=1083585590 rg=kultur
~#! tid=1083585590
Daria vertauscht ein s und ein n.

-----------------------------------------------------------------------------



Re: Kulturtipp: Kneipenlesung am 29.5. in Muenster (Foobar,  3. Mai 2004, 14:47:47):
~#! rn=Daria rt=1083585590 rg=kultur
~#! tid=1083585590
Wollen wir mal hoffen, dass sich bis dahin keine Mudder da treffen, sonst
macht der Laden vorher zu.

-----------------------------------------------------------------------------



Samstag, 8, Mai... (Foobar,  6. Mai 2004, 10:36:10):
...im WDR, von 21.45 - 6.00 Uhr:

   Die lange Schalke-Nacht

(anlaesslich des hundertjaehrigen Bestehens des deutschen Traditionsclubs
schlechthin)

-----------------------------------------------------------------------------



Re: Samstag, 8, Mai... (Montanus,  6. Mai 2004, 11:14:12):
~#! rn=Foobar rt=1083832570 rg=kultur
~#! tid=1083832570
Traditionsclub? Werdet ihr erstmal 156, dann reden wir weiter.

-----------------------------------------------------------------------------



Re: Re: frequenzy (Boing,  6. Mai 2004, 16:00:28):
~#! on=Marcus ot=1083566135 og=megaschmarrn
~#! rn=Zarniya rt=1083565379 rg=kultur
~#! tid=1083519048
Es gibt manchmal bereits sogenannte 0-day exploits. Sei froh.

Und es ist halt eine gute Freundin, da darf man Mitleid haben.

Und mein letztes Windows ist bei der letzten Plattenformatier Aktion leider
kaputt
gegangen. Die Rescue CD habe ich noch, aber plane nicht, sie einzusetzen.

Ciao, Marcus

-----------------------------------------------------------------------------



Re: Samstag, 8, Mai... (Alboin,  7. Mai 2004, 15:56:32):
~#! rn=Foobar rt=1083832570 rg=kultur
~#! tid=1083832570
aehm feiern Zuhaelter eh nicht schon genug?

Al *sich duckend*

-----------------------------------------------------------------------------



Re: Re: Samstag, 8, Mai... (Kellybundy,  8. Mai 2004, 19:02:44):
~#! rn=Alboin rt=1083938192 rg=kultur
~#! tid=1083832570
Nein. Vom vielen Eierabschneiden, Blueten drucken und widerspenstige Nutten
verhaun sind die fertig genug. Auch Zuhaelterei ist Arbeit!

Bloe^Hndchen

-----------------------------------------------------------------------------



Machenschaften der 'Bild' in der FAZ (Liara,  9. Mai 2004, 16:12:59):
Netter, fuer die FAZ recht peppiger Artikel ueber die Methoden, mit der die
'Bild' ihre Artikel zusammenbekommt:
http://www.faz.net/s/Rub8A25A66CA9514B9892E0074EDE4E5AFA/Doc~E5206D13E24504EDC
897718E61CCD6013~ATpl~Ecommon~Scontent.html

-----------------------------------------------------------------------------



Re: Machenschaften der 'Bild' in der FAZ (Anatol,  9. Mai 2004, 16:22:27):
~#! rn=Liara rt=1084111979 rg=kultur
~#! tid=1084111979
http://makeashorterlink.com/?Z17652048
*grunz* Immer diese Roman-Links...

-----------------------------------------------------------------------------



Re: Re: Machenschaften der 'Bild' in der FAZ (Liara,  9. Mai 2004, 16:23:19):
~#! rn=Anatol rt=1084112547 rg=kultur
~#! tid=1084111979
Hachjaaa, wie bin ich doch doof! Ist echt schoen, dass es euch nette,
freundliche Leute gibt! :)

-----------------------------------------------------------------------------



Re^3: Machenschaften der 'Bild' in der FAZ (Whitetiger,  9. Mai 2004, 16:29:29):
~#! rn=Liara rt=1084112599 rg=kultur
~#! tid=1084111979
Immer noch viel zu lang, finde ich.
http://ln-s.net/e:

Tiger

-----------------------------------------------------------------------------



Re^4: Machenschaften der 'Bild' in der FAZ (Vanion,  9. Mai 2004, 16:56:20):
~#! rn=Whitetiger rt=1084112969 rg=kultur
~#! tid=1084111979
Tiger, der Witz ist, den Link in eine Zeile zu bekommen, damit man ihn direkt
in den Browser kopieren kann. makeashorterlink hat auch mal mit einem
Buchstaben angefangen. :)

V*

-----------------------------------------------------------------------------



Traellerelsen (Lug, 22. Mai 2004, 13:21:32):

Fuer die zahlreichen Anhaenger von Nightwish, Within Temptation und Co.:

Montag erscheint das neue Xandria-Album Ravenheart. Koennte was fuer Euch
sein. Auf Viva Plus laeuft das Video Sonntag ab 21.00 zur jeden vollen Stunde,
falls einer vorab testen moechte.

CD-Tipp der weicheren Art
Lugifer

-----------------------------------------------------------------------------



Uzala der Kirgise (Asuka, 24. Mai 2004, 16:03:46):
Falls wer die Filme von Akira Kurosawa mag, heute nacht um 00:15
laeuft auf Arte Uzala der Kirgise (Dersu Uzala). Allein schon wegen
den Naturaufnahmen sollte man dieses Kurosawa-Werk nicht verpassen.

Asuka

-----------------------------------------------------------------------------



Xandria-Video (Lug, 25. Mai 2004, 21:34:27):
Bis Ende Mai, kann man uebrigends das Xandria-Video zu Ravenheart auf
www.xandria.de runterladen...

Fuer unsere Traellerelsen-Fans...

Lugifer

-----------------------------------------------------------------------------



Uebermorgen ... (Vanion, 26. Mai 2004, 23:23:50):
Hi,

ich war grad in Roland Emerichs gleichnamigen neuen Film. 
Und da die eigentlich zustaendige Rubrik mal wieder voll ist, muss ich wohl
hier schreiben.

Es handelt sich um einen recht gut gemachten Katastrophenfilm. Die Handlung
ist nett, auch wenn der Held mal wieder zu sehr Held ist ... so is Hollywood
halt. Am Ende kramen alle ihr bestes Colgate-Grinsen raus und freuen sich.

Eine 8 auf der 10er-Skala. Mir war ein paar ziemlich kalt kalt :)

Fazit: Wer Katastrophenfilme mag: Reingehen.
       Wer keine Realo-SF mag   : Lieber nicht reingehen. 

V*

-----------------------------------------------------------------------------



Re: Uebermorgen ... (Gloinson, 27. Mai 2004, 23:30:24):
~#! rn=Vanion rt=1085606630 rg=kultur
~#! tid=1085606630
Dito. Angenehmer Film. Fesselt nicht so sehr wie Troja, aber hat doch ein paar
gut gemachte Erhabenheitsmomente. Ich musste nur immer wieder schmunzeln, dass
Buecherverbrennszenen ausgerechnet in einer mit jeder Menge Holzpaneelen
verkleideten Bibliothek gedreht wurden ...

Bemerkenswert ist, dass Emmerich sich das Thema gleich so zu Herzen genommen
hat, dass er mittels Spende an eine Aufforstungsfirma seinen Filmdreh
bloekologisch korrekt CO2-neutralisiert hat.


-----------------------------------------------------------------------------



Re: Uebermorgen ... (Kellybundy, 28. Mai 2004, 20:14:19):
~#! rn=Vanion rt=1085606630 rg=kultur
~#! tid=1085606630
Was bitteschoen verstehst Du unter realo-SF? entweder isses real oder Utopie
oder SF. Wenn Du mich fragst, ist der film nur Kintopp, die paar realismen da
drin kannste vergessen.

Dumpfbacke

-----------------------------------------------------------------------------



Re: Re: Uebermorgen ... (Gloinson, 28. Mai 2004, 20:38:26):
~#! rn=Kellybundy rt=1085768059 rg=kultur
~#! tid=1085606630
Das Ereignis ist SF, kann also stattfinden. Die Aussage: "wir wissen nicht,
wann", ist real.
Da gab es neulich einen schoenen Fernsehbeitrag auf VOX, sicherlich BBC. Die
Aussage war: Wenn denn der Golfstrom durch die nachweislich gestiegenden
Flusswassereintraege versuesswaessert werden sollten, gibt es zwei
Moeglichkeiten: Entweder haelt es sich die Wage mit der Erwaermung, dann
passiert fuer uns Europaeer ausser Niederschlagsaenderungen nichts. Oder der
Golfstrom bricht schneller zusammen, woraufhin es empfindlich kalt wuerde. Die
Kanalinsel haetten bis 10 Kelvin weniger Durchschnittstemperatur zu
verzeichnen.
Der Rest des Globus haette natuerlich auch was davon. Vor allem andere
Niederschlaege rund um den Aequator. Naja, nettes Modell.


-----------------------------------------------------------------------------



Unter... (Maarg, 29. Mai 2004, 16:01:51):
http://hitchhikers.movies.go.com/hitchblog/interview.htm

findet man ein Interview des Drehbuchautors zum Anhalter mit sich selbst.

-----------------------------------------------------------------------------



ASoIaF (Maarg, 19. Jun 2004, 20:11:35):
Moin.

Unter

http://www.georgerrmartin.com/chapter.html

ist ein neues Probekapitel erschienen.

Nachdem wir schon das Vergnuegen mit einem Kapitel von Arya hatten, ist dieses
Kapitel nun aus der Sicht von *trommelwirbel*

Cersei Lannister

geschrieben.

Wer es lesen will, dem wuensche ich viel Spass :o)

M*

-----------------------------------------------------------------------------



... wie ein Pfirsich auf dem Ast ... (Jenandra, 20. Jun 2004, 15:15:12):
Vierzehn musikalische Liebeserklaerungen

Junger Kammerchor Hannover, Leitung: Andreas Mattersteig
Trio Bez Nazvy
Geoffrey Bolt, Klavier

20.06.2004 20:00h
St.-Johannis-Kirche Hannover-Misburg
Anderter Str. 42, 30629 Hannover

03.07.2004 20:00h
Friedenskirche Hannover-Zooviertel
Schackstr. 4, 30175 Hannover

Eintritt frei

http://www.junger-kammerchor-hannover.de/

-----------------------------------------------------------------------------



Re: ... wie ein Pfirsich auf dem Ast ... (Mupfel, 20. Jun 2004, 15:36:29):
~#! rn=Jenandra rt=1087737312 rg=kultur
~#! tid=1087737312
Du soltest dabei schreiben, was diese Konzerte so besonders macht, Jen ;)

-mupfel-

-----------------------------------------------------------------------------



Re: Re: ... wie ein Pfirsich auf dem Ast ... (Darklor, 20. Jun 2004, 17:34:55):
~#! rn=Mupfel rt=1087738589 rg=kultur
~#! tid=1087737312
Was?

Darklor

-----------------------------------------------------------------------------



Re^3: ... wie ein Pfirsich auf dem Ast ... (Mupfel, 20. Jun 2004, 17:49:09):
~#! rn=Darklor rt=1087745695 rg=kultur
~#! tid=1087737312
Das sie selbst mit singt ;)

-mupfel-

-----------------------------------------------------------------------------



Re^4: ... wie ein Pfirsich auf dem Ast ... (Darklor, 20. Jun 2004, 18:00:51):
~#! rn=Mupfel rt=1087746549 rg=kultur
~#! tid=1087737312
Aha! ;)

Darklor

-----------------------------------------------------------------------------



Re: ASoIaF (Lug, 24. Jun 2004, 13:39:30):
~#! rn=Maarg rt=1087668695 rg=kultur
~#! tid=1087668695
Die dumme Sau...

Lugifer

-----------------------------------------------------------------------------



Japanische Trommler - Yamato (Mesirii,  8. Jul 2004, 09:56:09):
Maharet und ich waren gestern in der Leipziger Oper (schickes DDR-Interieur)
bei Yamato. Das ist eine Trommlertruppe, die ziemlich genial zeigen was fuer
Klangraeume man mit den Trommeln erzeugen kann. Von ganz kleinen bis zu 
riesigen Instrumenten wird alles mit viel Enthusiasmus zum Klingen gebracht. 
Sehr  beeindruckend spielen sie miteinander und mit dem Publikum und haben da 
viel Spass daran.

Ist wirklich ein Erlebnis nur schon nach 2 Stunden vorbei.

Im Netz findet man einiges, Stationen sind: Leipzig, Stuttgart, Hannover, 
Duesseldorf, Dortmund.

Mesi, begeistert

-----------------------------------------------------------------------------



Re: Japanische Trommler - Yamato (Rehakles,  8. Jul 2004, 10:38:23):
~#! rn=Mesirii rt=1089273369 rg=kultur
~#! tid=1089273369
Und ich dachte, die Yamato liegt im Pazifik auf dem Meeresboden ...

Rehakles (Koenig von Griechenland, Bundestrainer in spe)

-----------------------------------------------------------------------------



The Godsend (Ark, 11. Jul 2004, 00:12:45):
Hm, da ich mit ein paar Kumpels nicht in The Punisher gehen konnte, da schon
wieder abgesetzt (offenbar zum Glueck?!), mussten wir uns was anderes
aussuchen. Und wurden nicht enttaeuscht, ein knuffiger Thriller ist
rausgekommen, sehr gut gemacht, deshalb ... weiterempfohlen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Japanische Trommler - Yamato (Anatol, 11. Jul 2004, 10:59:16):
~#! rn=Rehakles rt=1089275903 rg=kultur
~#! tid=1089273369
By the way, lohnt sich "STOMP" eigentlich?

Anatol

-----------------------------------------------------------------------------



Re^3: Japanische Trommler - Yamato (Croft, 11. Jul 2004, 11:02:50):
~#! rn=Anatol rt=1089536356 rg=kultur
~#! tid=1089273369
Sehenswert ist es, nur die Tickets waren als sie hier in der Gegend waren
uebertrieben teuer, d.h. ich habs beim Video anschauen belassen.

Croft

-----------------------------------------------------------------------------



Re^4: Japanische Trommler - Yamato (Anatol, 11. Jul 2004, 11:18:09):
~#! rn=Croft rt=1089536570 rg=kultur
~#! tid=1089273369
Jup, das Ticket kostet hier auch 50.- *seufz*


-----------------------------------------------------------------------------



kennt jemand .. (Alboin, 14. Jul 2004, 22:54:20):
den Autor Kai Meyer? Ich bin neuerdings in der Sparte Mystery Thriller
unterwegs und dabei tauchte oefter der name dieses Autors auf. Wer schon was
von ihm gelesen hat kann mir gerne sein Urteil dazu geben.

Gruesse Al

-----------------------------------------------------------------------------



Re: kennt jemand .. (Whitetiger, 15. Jul 2004, 13:56:59):
~#! rn=Alboin rt=1089838460 rg=kultur
~#! tid=1089838460
Kai Meyer schreibt AFAIK hauptsaechlich Kinder- und Jugendbuecher, z.B. die
Trilogien ueber "Die fliessende Koenigin" oder "Die Wasserlaeufer". Und
hinsichtlich Mystery Thriller hat er die Jugendbuchreihe "Sieben Siegel"
geschrieben. Die kenne ich nicht, aber die beiden oben genannten Trilogien
sind beide echt super, gut geschrieben, spannend zu lesen. Kann ich nur
empfehlen.

Tiger

-----------------------------------------------------------------------------



Der Mann der vom Himmel viel ... (Vanion, 15. Jul 2004, 20:17:42):
Heute abend 20:40 auf ARTE. Ein reichlich alter Bowie-Film :)

V*

-----------------------------------------------------------------------------



Re: Der Mann der vom Himmel viel ... (Grimmborn, 15. Jul 2004, 20:22:29):
~#! rn=Vanion rt=1089915462 rg=kultur
~#! tid=1089915462
Aha. Und wovon hat er vom Himmel so viel was?

GdA

-----------------------------------------------------------------------------



HIlfe gesucht (Zarniya, 18. Aug 2004, 10:05:31):
Hallo, 

ich muss mal an dieser Stelle ein wenig Werbung machen. Es gibt einen jungen
genialen Gitarristen in den USA namens Keith Urban und der macht wirklich gute
Musik. Nun soll der in Deutschland ein wenig gepushed werden, was nicht so
einfach ist, denn Keith beherrscht u.a. die Country Charts der USA und ich
muss hier keinem sagen, was fuer schwachsinns Vorurteile es in D ueber Country
gibt, nur weil es sich noch keiner getraut hat, Deppen wie Tom Astor oder
Truck Stop an die Wand zu stellen. Naja... auf alle Faelle ist die aktuelle
Single von Keith Urban "Somebody Like You" derzeit hier ueberall an die Radios
verschickt und ich haette gern, wenn ihr alle euren Radiosender ein wenig
nervt, das Teil zu spielen.. egal, ob ihr den Song kennt oder moegt... tut es
fuer mich, den lieben Yantro :)

Scherz beiseite... wer nen Ausschnitt des Songs hoeren will, der kann das
unter www.keithurban.net machen. 

Konkrete Hilfe brauch ich fuer ein Voting. Bei www.berlin888.de unter 'Die
Musik' und da unter 'Hey Music!' kann man fuer die Radiocharts des Senders
abstimmen und ich bin euch fuer jeden Klick dankbar. 

Gruss, 
Marc

-----------------------------------------------------------------------------



Re: HIlfe gesucht (Gloinson, 18. Aug 2004, 10:12:09):
~#! rn=Zarniya rt=1092816331 rg=kultur
~#! tid=1092816331
:summt: "... jeder der gern Country hoert, hat ein kurzes Glied. Wer Country
hoert ist Kommunist und treibt es gern mit Schweinen; aber weil er so feige
ist, auch nur mit ganz kleinen ..."


-----------------------------------------------------------------------------



Re: Re: HIlfe gesucht (Montanus, 18. Aug 2004, 10:15:11):
~#! rn=Gloinson rt=1092816729 rg=kultur
~#! tid=1092816331
:summt: "mit dem Alter faengt man an
sich fuer Countrymusik zu interessieren


Ich leg die Platte auf
und mir kommt zelten in den Sinn
sie wengeln den Akkord
in einem fort
bis die Kuehe nach Hause kommen


[A... und leise hoert man Johnny Cash in ihren Mittagspausen"

-----------------------------------------------------------------------------



Re: HIlfe gesucht (Alboin, 18. Aug 2004, 12:55:47):
~#! rn=Zarniya rt=1092816331 rg=kultur
~#! tid=1092816331
was "hey Music!" gibts noch? Das war meine Musiksendung in meinen wilden
Zeiten: stundenlang Musik von den Charts zum mitschneiden und dann musste ich
noch aufpassen das im Internat keiner mitbekam das ich Westen hoerte ;-)

Al in Nostalgie versunken

-----------------------------------------------------------------------------



Re: Re: HIlfe gesucht (Gloinson, 18. Aug 2004, 12:58:29):
~#! rn=Alboin rt=1092826547 rg=kultur
~#! tid=1092816331
Soso, scheint ja eine komische Truppe gewesen zu sein in eurem Internat. Die
kleinen Offiziersanwaerter? Die einzigen, die nicht hoeren "durften", dass man
Westen sah oder hoerte waren die Erwachsenen. Untereinander hat man sich doch
ausfuehrlich ueber die letzte Serie unterhalten.


-----------------------------------------------------------------------------



Re^3: HIlfe gesucht (Alboin, 18. Aug 2004, 13:05:26):
~#! rn=Gloinson rt=1092826709 rg=kultur
~#! tid=1092816331
Offiziersanwaerter? Hahaha. Nein nach meinem Hoersturz duerfte ich an eine
Schwerhoerigenschule und die war etwas vom Heimatort entfernt so das man mich
ins Internat steckte.  Und ja wir mussten aufpassen, das die Erzieher, die
natuerlich besser hoerten ;-) und auch zu jeder Zeit auf unser Zimmer duerften
nicht mitbekamen das wir Westen hoerten oder sahen, weils per Hausordnung
verboten war. Und leider haben wir uns auch verpfiffen, z.B. uebereifrige
Parteinachwuchskader taten sowas. 
Als ich vor ein paar Jahren wiedermal jenes Internat besuchte, konnte ich mir
im Fernsehraum die Bemerkung "Aber jetzt darf man doch Westen gucken, oder?"
nicht verkneifen;-)

Al

-----------------------------------------------------------------------------



Re: HIlfe gesucht (Kellybundy, 18. Aug 2004, 16:59:37):
~#! rn=Zarniya rt=1092816331 rg=kultur
~#! tid=1092816331
Wieviel bietest Du mir? Promotion ist nicht billig, und die
mit-Handy-Anruferei bis man mal auch drankommt verschlingt Unsummen, und ja
was soll ich noch sagen? Inflation, harte Zeiten....

Kelly, gibt auf Wunsch gern ihre Bankverbindung durch

-----------------------------------------------------------------------------



JBO - United States of Bloedsinn (Humni, 25. Aug 2004, 15:09:40):
So. Nun habe ich das neue JBO-Album, und so ganz sicher bin ich mir bei vielen
Sachen noch nicht.

Klare Pluspunkte sind Lieder wie Glaubensbekenntnis, Satan ist wieder da,
Gaensebluemchen und JBO wird niemals sterben. Aber auch der Rest ist
keineswegs durchwachsen... eher so, dass ich mit vielen Dingen nicht soviel
anfangen kann. Der letzte regulaere Track heisst ,,Das vokuhilische Pendel''
zum Beispiel ist ganz nett, muss aber nicht oefter als einmal angehoert
werden, und mit ,,Voll im Arsch''muss ich auch noch warm werden (geschrieben
und gesungen von Ralph Bach, dem neuen Bassisten, seltsamer Stil).

Aber mit ,,The Kickers of Ass'' und ,,JBO wird niemals sterben'' kann das
Album dennoch durch wahre Hymnen glaenzen. Insgesamt geb ich mal 9 von 10
moeglichen Punkten - vielleicht kommt der zehnte beim nochmalhoeren.

Humni

-----------------------------------------------------------------------------



doppelpack (Gnome, 29. Aug 2004, 19:05:20):
a) "The Abyss - DC" - 20:15, pro 7
                      vergesst diesen reisserisch-schlechten deutschen
                      untertitel. wer den film schon kennt, aber den DC
                      nicht: unbedingt anschauen.
                      wer ihn noch nicht kennt: mischung aus tiefsee-film
                      und sci-fi.

b) "Taxi Driver" - 23:55, kabel 1
                   da brauch ich wohl nicht viel zu sagen :)

gnOme

-----------------------------------------------------------------------------



TV (Gloinson, 31. Aug 2004, 01:21:36):
Wochenende mal wieder "Record of Lodoss War" auf Wichs-VOX.


-----------------------------------------------------------------------------



Buchempfehlung (Matis,  9. Sep 2004, 23:32:02):
Bill Bryson: "Eine kurze Geschichte von fast allem"

Diesmal kein Reisebuch, sondern ein Buch ueber die Naturwissenschaften, die
Erde, das Universum, ja einfach alles. Der Guardian schreibt dazu: 'Truly
impressive ... it's hard to imagine a better rough guide to science.'
Absolut empfehlenswert!

Matis

PS Auch alles anderen Werke Brysons sind aeusserst unterhaltsam, insbesondere
   "Notes from a Big Country".

-----------------------------------------------------------------------------



Garifin (Anthea, 14. Sep 2004, 10:21:41):
Wer in Hamburg und Umgebung wohnt, am Mittwoch Zeit hat, und ausserdem noch
irische Musik mag, fuer den ist folgende Info vielleicht interessant, die ich
eben gekriegt habe. Fuer mich scheitert es leider schon an der ersten
Bedingung...

"Unser ehemaliger Geiger Serge ist fuer ein paar Tage nach Hamburg gekommen.
Nun haben wir uns ueberlegt, ein kleines unplugged Konzert in Harburg in der
alten Besetzung zu geben. Einfach nur zum Spass. Daher werden wir am Mittwoch
den 15.09. ab ca. 20:30 Uhr im Old Dubliner Harburg (Laemmertwiete,
www.olddubliner.de). Kein Eintritt, aber viel Spass. Ob wir unsere alten
Stuecke noch spielen koennen, werden wir am Mittwoch sehen. Vielleicht bist Du
ja auch da, wir freuen uns schon. Musiker sind zur Session danach herzlich
willkommen..."

-----------------------------------------------------------------------------



Schon zum 3ten Mal gesehen ... (Ark, 21. Sep 2004, 21:43:03):
... und immer noch wunderbar: Nomaden der Luefte.
Ist geradezu theapeutisch, der Film, einfach mal an nem regnerischen
Wochenende anschauen und schweigen :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Gruende (Amynthor, 24. Sep 2004, 13:11:24):

                                    GRUENDE
                Bei Ausbrechen eines Brandes nicht zu loeschen:

                             (Kreuzen Sie bitte das fuer Sie Zutreffende an!)

 1. Weil man noch nicht mit Sicherheit weiss, ob man ueberhaupt zu den
    Betroffenen gehoert.
 2. Weil man sich fuer wichtigere Aufgaben bereit halten muss, zu denen man
    moeglicherweise gerufen werden wird.
 3. Weil die Experten ueberhaupt noch nicht eindeutig bewiesen haben, dass es
    tatsaechlich brennt.
 4. Weil man davon ueberzeugt ist, dass die dafuer zustaendigen Leute schon
    laengst dabei sind zu loeschen.
 5. Weil man aus bestimmten Gruenden durchaus dafuer ist, dass alles
    abbrennt.
 6. Weil man es vorzieht, sich nicht in Gefahr zu begeben.
 7. Weil man sich beim besten Willen nicht vorstellen kann, dass Gott so
    etwas zulaesst.
 8. Weil man den anderen zeigen will, dass kein Grund zur Panik besteht.
 9. Weil es einem gleichgueltig ist.
10. Weil man auf Anweisung von oben warten muss.
11. Weil man zunaechst alle anderen vom Ausbruch des Brandes benachrichtigen
    muss.
12. Weil man nicht zur Brandstelle hinfinden kann.
13. Weil man eingesperrt und an Haenden und Fuessen gefesselt ist.
14. Weil es sowieso schon zu spaet ist und nicht mehr lohnt.
15. Weil man erstmal sehen will, was die anderen jetzt wohl ohne einen
    anfangen.
16. Weil es in gewisser Weise schon oft gebrannt hat und man daran gewoehnt
    ist, dass bisher auch immer alles gut ging.
17. Weil man zunaechst mal eine Feuerwehrtruppe aufbauen und alles gruendlich
    planen muss.
18. Weil man trotz Flammen und Rauch zutiefst davon ueberzeugt ist, dass es
    einfach nicht brennen *kann*.
19. Weil man sich auf keinen Fall Angst machen lassen will.
20. Weil schliesslich diejenigen loeschen sollen, die den Brand verursacht
    haben, bitte sehr.
21. Weil man den Brand gelegt hat und sich nicht verraten will.
22. Weil man den Brand *nicht* gelegt hat, und Loeschen den Eindruck erwecken
    koennte, man habe ein schlechtes Gewissen.
23. Weil man den grandiosen Anblick der Feuerbrunst geniesst.
24. .....
25. ..... (weitere Gruende sind vom Leser selbst einzutragen)
26. .....

(aus: Michael Ende, Die Spielverderber oder Das Erbe der Narren)

Amynthor.


-----------------------------------------------------------------------------



Myst 4 - Revelation (Karima, 26. Sep 2004, 20:51:02):
Eine amerikanische Spielezeitschrift hatte vor wenigen Tagen einen grossen
Exklusivartikel, in Deutschland bleibt es weitgehend unbemerkt:
Myst 4 - Revelation steht bald in den Regalen.
Ich hab heute schon - dank meiner Spielezeitschrift - eine Demo gespielt und
war ziemlich begeistert.
Gewoehnungsbeduerftig fand ich zwar die frei drehbare 360 grad Ansicht.. Aber
man gewoehnt sich sehr schnell dran.
Auch wenn die Demo natuerlich keinen umfassenden Eindruck vermitteln kann,
sieht es fuer mich nach einer gut gemachten Forsetzung aus.
Nett fand ich die beiden Objekte, die mein Inventory beherbergte: Ein
Photoapparat und eine Art Notiz-apparat, mit dessen Hilfe ich Notizen
erstellen konnte, sogar zu den mit dem ersten Apparat aufgenommenen Bildern.
Fuer mehr Informationen wohl:
http://www.mystworlds.com/us/
Ich freu mich jedenfalls drauf.
Karima

-----------------------------------------------------------------------------



Re: Myst 4 - Revelation (Darklor, 29. Sep 2004, 01:35:32):
~#! rn=Karima rt=1096224662 rg=kultur
~#! tid=1096224662
War Myst nich dieses inhaltsleere Adventure mit der 'tollen Grafik' und den
saulangweiligen Verschiebe- und Schalteraetseln?

Darklor

-----------------------------------------------------------------------------



Re: Re: Myst 4 - Revelation (Karima, 29. Sep 2004, 15:08:05):
~#! rn=Darklor rt=1096414532 rg=kultur
~#! tid=1096224662
Richtig. Das Spiel, bei dem man Nachdenken muss, was halt nicht jedem liegt.

-----------------------------------------------------------------------------



Re^3: Myst 4 - Revelation (Darklor,  1. Okt 2004, 18:12:54):
~#! rn=Karima rt=1096463285 rg=kultur
~#! tid=1096224662
Oh, da gib es schoenere - Monkey Island, Indiana Jones, ...

Darklor

-----------------------------------------------------------------------------



Gaint Sand (Deepblue,  8. Okt 2004, 11:03:33):
Ich war gestern abend mal wieder zu einem Gaint Sand-Konzert. Schade, wenn ein
guter Musiker wie Howie Gelb zum Alkoholiker wird :-(

-----------------------------------------------------------------------------



Ellen Klinghammer (Zook,  8. Okt 2004, 12:13:00):
Zufaellig bin ich auf eine junge Frankfurter Pianistin und Saengerin
gestossen, deren Musik mir sehr gut gefallen hat, Ellen Klinghammer; scheinbar
in der Frankfurter Musikszene als Nachwuchstalent gehandelt.

Ihre Homepage, dort gibt es auch Hoerproben: http://www.ellen-klinghammer.de

Wie man den Stil genau nennt, vermag ich nicht so recht zu sagen, hoert 
einfach mal rein.

Zook.

-----------------------------------------------------------------------------



Re: Ellen Klinghammer (Muadib,  8. Okt 2004, 13:05:40):
~#! rn=Zook rt=1097230380 rg=kultur
~#! tid=1097230380
ich hoffe du hast eine gute versicherung

-----------------------------------------------------------------------------



Re: Re: Ellen Klinghammer (Gloinson,  8. Okt 2004, 13:07:49):
~#! rn=Muadib rt=1097233540 rg=kultur
~#! tid=1097230380
Moechtest du Gehoerschaeden zur Geltung bringen? 


-----------------------------------------------------------------------------



Re^3: Ellen Klinghammer (Muadib,  8. Okt 2004, 13:11:33):
~#! rn=Gloinson rt=1097233669 rg=kultur
~#! tid=1097230380
nein
aber das auf sie gestossen hoert sich so verkehrsunfallmaessig an

-----------------------------------------------------------------------------



Hui Buh (Liara, 17. Okt 2004, 22:34:45):
Die Rat Pack Filmproduktion, eine Tochtergesellschaft der Constantin Film AG,
wird den millionenfach verkauften Buch- und Hoerspielbestseller Hui Buh - Das
Schlossgespenst verfilmen.

Michael Bully Herbig wird die Rolle des Hui Buh in der gleichnamigen Rat Pack-
/ Constantin Film Produktion spielen und sprechen. Produzent Christian Becker,
der mit Kinoerfolgen wie Der Wixxer und Was nicht passt, wird passend gemacht
zu den derzeit erfolgreichsten deutschen Kinoproduzenten gehoert, hat mit
seiner Firma Rat Pack die
Kinoverfilmung von Hui Buh - Das Schlossgespenst in den vergangenen drei
Jahren entwickelt und hat von Hui Buh-Erfinder Eberhard Alexander-Burgh die
Verfilmungsrechte erworben.

Die weiteren Hauptrollen unter der Regie von Sebastian Niemann (Das Jesus
Video) spielen Christoph Maria Herbst (Der Wixxer) als Koenig Julius und Rick
Kavanian (Der Schuh des Manitu), ((T)Raumschiff Surprise) wird die Rolle des
Charles uebernehmen.|Das Drehbuch wurde von Sebastian Niemann und Dirk Ahner
(7 Days To Live) nach Ideen und Motiven der erfolgreichen
Europa-Buch/Hoerspielreihe von Eberhard Alexander-Burgh geschrieben. Die
Dreharbeiten werden im Februar 2005 beginnen.|Der deutsche Kinostart ist
Anfang 2006 im Verleih der Constantin Film geplant.|Quelle: Constantin Film AG

-----------------------------------------------------------------------------



Filmtipp (Deepblue,  3. Nov 2004, 14:31:21):
Ich hab gestern "Die Reise des jungen Che" gesehen - sehr zu empfehlen

-----------------------------------------------------------------------------



Re: Filmtipp (Maharet,  3. Nov 2004, 14:41:55):
~#! rn=Deepblue rt=1099488681 rg=kultur
~#! tid=1099488681
Hm, kannste auch noch eine ausfuehrlichere Kritik liefern? Dieser Viertelsatz
verfuehrt mich jetzt noch nicht zu einem Kinobesuch.

Maha

-----------------------------------------------------------------------------



Re: Re: Filmtipp (Deepblue,  3. Nov 2004, 17:03:35):
~#! rn=Maharet rt=1099489315 rg=kultur
~#! tid=1099488681
http://www.film.de/moviespecials.php/id/1737/

-----------------------------------------------------------------------------



Heute in der SZ ... (Liara,  5. Nov 2004, 17:02:10):
Unter Blick in die Presse:
Kommentar zur Wiederwahl von George W. Bush

TAGES-ANZEIGER (Zuerich)

"Jesus und die Wiedereinfuehrung des Schulgebets scheinen im ersten Jahrzehnt
des neuen Jahrhunderts ungleich wichtiger zu sein als etwa eine
Krankenversicherung."

Hehe. Die Schweizer wieder ... ;)

-----------------------------------------------------------------------------



ASoIaF (Foobar,  7. Nov 2004, 13:53:01):
 I write this the day after the presidentia:l election.

 A FEAST FOR CROWS is still not finished. Yes, I have written some more pages
 since the June update. No, the book is not yet done. My August and September
 schedule was full of conventions, travel, and speaking appearances, which
 cut deeply into my writing time during those months. Yes, I could have made
 more progress on the book if I had stayed at home chained to the desk, but I
 make these commitments years in advance and I take them very seriously.

 Also, some of the writing that I have done since June has actually been
 rewriting. My goal, as I have said repeatedly in these updates, has always
 been to produce a book that is a good as it can be, so when I suddenly
 realize that one of my story threads can be made much more powerful and
 dramatic with some restructuring, I restructure... even if that means going
 back, tearing up finished chapters, and reworking them from start to finish.

 That's done, anyway. A FEAST FOR CROWS will be much better for it, and now I
 am back at work on new chapters once again... although not today, and maybe
 not tomorrow, or next week. I am pretty good with words, usually, but no
 words can express how miserable, angry, and depressed I am feeling this
 morning over the results of yesterday's election. The exit polling makes it
 clear: this was a victory for bigotry and fear, a mandate bought with lies.
 I know from past experience that it is going to take me some time to shake
 off this depression.

 Losing myself in the world of Westeros would probably be the best medicine
 for what ails me just now, I know full well. There is solace in work, and
 books -- my own books, and those of others -- have always been a refuge for
 me during dark times in my life. Today, however, the {fictional} travails of
 my {fictional} Seven Kingdoms seem pretty unimportant compared to the very
 real woes that the United States is facing, a future of war and isolation
 abroad, and division and repression at home.

 Winter is coming to Westeros, but it has already come to America.

 George R.R. Martin, November 3, 2004

http://georgerrmartin.com/nextbook.html

-----------------------------------------------------------------------------



Kokain auf fast allen Euro-Scheinen (Liara,  7. Nov 2004, 18:43:37):
Ist zwar schon etwas aelter, aber trotzdem gut. ;)
http://tinyurl.com/4ddo4

-----------------------------------------------------------------------------



Der geschmiedete Himmel (Cassandra,  8. Nov 2004, 14:02:12):
Alle die sich fuer die Bronzezeit bzw. fruehe astrologische Erkenntnisse
interessieren, sollten sich die Ausstellung in halle mal ansehen. 

Zu sehen gibts die Himmelsscheibe von Nebra und den Sonnenwagen von Trundholm.

dazu natuerlich auch weitere gegenstaende der Zeit nebst entsprechenden
erklaerungen.
Mir hat die Ausstellung sehr gut gefallen und ich hab auch richtig Zeit dort
gelassen. Es lohnt sich.
Mehr Infos: http://www.archlsa.de

Cassy, von der Ausstellung begeistert

-----------------------------------------------------------------------------



Re: Der geschmiedete Himmel (Zook,  8. Nov 2004, 14:28:19):
~#! rn=Cassandra rt=1099918932 rg=kultur
~#! tid=1099918932
In irgendeiner meiner Zeitungen, die ich lese, war sie auch hochgelobt und
ebenfalls im Heute-Journal des ZDF.

Oder waren es die Tagesthemen der ARD? Ich glaub, in beiden gab es nen
Bericht, den ich gesehen habe.

Zook.

-----------------------------------------------------------------------------



Filmkritik 'Darf ich bitten? (Liara, 10. Nov 2004, 22:55:58):
Frauen sollten sich diesen Film ansehen, weil der Film waschechtes
Hollywood-Schluchz- und Schmachtkino ist. Richard Gere als
frustrierter Anwalt, dessen Lebensgeister durchs Tanzen wieder geweckt
werden, das ist einfach wunderbar kitschig anzusehen, zumal der grau
melierte Star auch wirklich schauspielern kann. Wenn er dann noch mit
Jennifer Lopez nachts bei orangefarbener Zimmerbeleuchtung eine flotte
Tanznummer aufs Parkett legt, Herzschmerz pur. Und dann die
Schlussszene, in der er im feinen schwarzen Anzug mit einer roten Rose
in der Hand zum Rendez-vous laedt: Da werden dann endlich die
geheimsten Frauentraeume wahr. Ein Film mit ein bisschen Humor und ganz
viel Romantik. Taschentuecher nicht vergessen!

Maenner sollten diesen
Film auf keinen Fall sehen, weil man sich nicht ernsthaft einen
Film ansehen kann, in dem staendig Rumba, Paso Doble und Walzer getanzt
wird und die Akteure so tun, als sei es das Allerschaerfste auf der
Welt. Ausserdem ist auch Jennifer Lopez als dauertraurige Tanzmaus kaum
ertraeglich. Sie verbreitet in diesem Film nur eines: schlechte Laune.
J.Lo tanzt nur ganz selten, sondern steht die meiste Zeit wortkarg und
miesepetrig in der Ecke, mit streng zurueckgekaemmten Haaren und
finsterem Matronenblick. Man merkt ihr nur zu deutlich an, dass es
beim Dreh mit Richard Gere oefter kraeftig gekracht hat. Der absolute
Downer, wenn J.Lo einen furchtbaren Heulkrampf kriegt, so als ob die
Erde unterginge, und es daran liegt, dass ihr uralter Wildledermantel
Lasagne-Flecken abbekommen hat  ein Film zum Davonlaufen.

-----------------------------------------------------------------------------



Nachtrag (Liara, 10. Nov 2004, 22:57:54):
Das hatte ich gerade vom SWR3-Filmkritiker in der Mail. ;) Er gab dem Film 3
von & Elchen. ;)

-----------------------------------------------------------------------------



Re: Filmkritik 'Darf ich bitten? (Patryn, 11. Nov 2004, 09:37:05):
~#! rn=Liara rt=1100123758 rg=kultur
~#! tid=1100123758
Der Film ist schon deshalb schlecht, weil Maenner schon seit 10 Jahren
fest davon ueberzeugt sind, dass Richard Gere oder aehnliche Opas von Nebenan
als
Maenner vor der Welt einfach nur noch albern sind.

-----------------------------------------------------------------------------



stephen donaldson (Wurzel, 17. Nov 2004, 12:10:15):
mein lieblingsautor hat wieder zugeschlagen, und zwar in seinem besten
themenkreis. "the runes of the earth" heisst der erste band der "last
chronicles of thomas covenant", 20 jahre nach den letzten buechern der
second chronicles. das ganze ist auf vier baende angelegt, der erste davon
ist jetzt rausgekommen und liegt auf meinem tisch. habe nur die ersten
seiten gelesen, aber es scheint schon jetzt klar, dass donaldson nichts
verlernt hat.
bis das ganze auf deutsch rauskommt, wird es wahrscheinlich noch jahre
dauern, und dann wahrscheinlich - wie ueblich - in einer ausgesprochen
maessigen uebersetzung. fantasy gehoert in deutschland eben per definitionem
zur trivialliteratur, da nimmt man keinen guten (teuren) uebersetzer.
wer halbwegs englisch kann, sollte deshalb das original lesen.

wurzel

-----------------------------------------------------------------------------



Re: stephen donaldson (Highlander, 17. Nov 2004, 12:27:58):
~#! rn=Wurzel rt=1100689815 rg=kultur
~#! tid=1100689815
Mit der Originalfassung hast Du recht - ich lese seit Jahren fast
nur noch die englischen Fassungen, die a) schneller zu haben sind,
b) ueberhaupt zu haben sind (was wird schon alles uebersetzt?),
c) nicht an der Uebersetzung leiden und d) oft auch noch billiger
sind, vor allem, wenn aus einem englischen Buch zwei bis drei
deutsche gemacht werden (zb Dragonlance).

Donaldson bzw. Covenant wecken bei mir hingegen sehr zwiespaeltige
Gefuehle. Beim ersten Mal hab ich das erste Buch nach hoechstens
der Haelfte weggelegt und Jahre nicht mehr angeschaut. Und das
ist etwas, was mir Buecherwurm sehr selten passiert. Beim zweiten
Anlauf hab ich dann glaube ich alle Buecher ausleihen koennen
und durchgelesen, aber was mir vor allem in Erinnerung geblieben
ist, ist, dass sich die Buecher recht aehneln. Nicht dass es
so sein muss, aber mein Eindruck war so.
Wenn ich so drueber nachdenke - das mit dem Weglegen ist mir
so noch nie passiert. Nicht mal bei den Chronicles of Morgaine,
und die sind todlangweilig (Cherryhs SF-Buecher sind genial,
aber Fantasy sollte sie bleibenlassen).

Kann auch sein, dass mir das Setting auf den Keks gegangen ist,
Covenant, der ewige Jammerer, der, soweit ich das in Erinnerung
habe, ums Verrecken nicht die Welt und ihre 'Regeln' verstehen
will, in der er da landet und das anscheinend vorhandene
Schlimmer-geht-immer-Prinzip des Autors. Immer happy end mag
bloed sein, aber Donaldson uebertreibt IMO in die andere
Richtung.

HrT

-----------------------------------------------------------------------------



Kuehe und Geraeusche ... (Liara, 20. Nov 2004, 00:47:16):
... Jenkins watete aus dem Wasser. Er wirkte nicht zornig. Er war ein Mann,
der die Flammen des Zorns durchschritten und die friedliche Bucht hinter ihnen
erreicht hatte. Mit zitterndem Zeigefinger deutete er auf das Schiff und
sagte: 
"Muh"? ...

Terry Pratchett "Fliegende Fetzen"

(Und ich dachte, wenigstens dieses Geraeusche haette sich jemand selber
ausgedacht. ;) Alles abgekupfert ...)

-----------------------------------------------------------------------------



Re: Kuehe und Geraeusche ... (Darklor, 20. Nov 2004, 19:05:48):
~#! rn=Liara rt=1100908036 rg=kultur
~#! tid=1100908036
Ob Pratchett auch muddet? ;)

Darklor

-----------------------------------------------------------------------------



Buchkritik: Dave Duncan, "The King's Blades" (Vanion, 27. Nov 2004, 20:49:06):
Es ist zwar schon eine Weile her, dass ich die Romane gelesen hab, aber weils
grad auf -tv Thema war (wie kam ich eigentlich darauf?), moechte ich eine
kurze Kritik zum Zyklus "The King's Blades" von Dave Duncan abgeben.

Eigentlich sind es die ersten 3 Baende eines laengeren Zyklus, aber das hab
ich eben erst bei der Recherche festgestellt (Mist, mein Buecher-Todo ist
schon wieder gewachsen :)

Die Baende heissen "The Gilded Chain", "Sky of Swords" und "Lord of The Fire
Lands".
 
Basis der Geschichte ist ein Orden von Rittern (The King's Blades/Die Klingen
des Koenigs). Die Besonderheit einer Blade ist, dass sie mittels eines Rituals
an ihren Herrn gebunden werden und danach nur noch leben, um ihren Herrn zu
schuetzen. Normalerweise bindet der Koenig die Blades an sich, es kommt aber
auch vor, dass die eine oder andere Klinge als Auszeichnung fuer geleistete
Dienste verschenkt wird.

**** Spoiler, aber nur gaaanz gaaanz wenig ****
Die ersten drei Baende spielen alle im gleichen zeitlichen Kontext und
erzaehlen somit die gleiche Geschichte, allerdings aus verschiedenen
Perspektiven. So enthaelt der erste Band die Lebensgeschichte von Sir
Durendal, von seiner Aufnahme in den Orden bis zu seinem Tod.

Der zweite Band erzaehlt die Geschichte des jungen Wasp, der beim Koenig
Ambrose in Ungnade faellt und zusammen mit seinem Freund Raider (ebenfalls
eine Blade) eine lange Flucht antreten muss.

Der dritte Band erzaehlt die Geschichte der Tochter von Koenig Ambrose,
Prinzessin Malinda und fuehrt uns somit in die hohe Politik des Koenigreichs
Chivial. 

**** Fertiggespoilert ****

Alle drei Baende kann man sehr gut eigenstaendig lesen, sie ergeben aber erst
zusammen ein vollstaendiges Bild der Geschehnisse ab.

Ich fand die Geschichten spannend, und aufgrund ueberraschender Wendungen und
guter Einfaelle Duncans kam mir keiner der Baende langweilig vor. Im
Gegenteil: Es war immer ein erlebnis zu sehen, wie Charaktere aus frueheren
Baenden auftauchen und wie unterschiedlich sie doch von den Protagonisten
wahrgenommen werden.

Eine besondere Spezialitaet Duncans sind ausgefallene, aber unaufdringliche
Magiesysteme. Das faellt zwar in anderen Buechern Duncans (The Great Game, The
Cursed) deutlicher auf, aber auch in diesem Zyklus hat er eine schoene Balance
gefunden und der Magie einen natuerlichen Platz in seiner Welt gegeben, und
nicht dauernd unmotivierte Handlungsspruenge durch Magie erklaert. (Mir geht
es immer auf den Geist, wenn die Situation des Protagonisten schlimmer und
schlimmer wird, biss er sich in der aussichtslosesten aller aussichtslosen
Lagen daran erinnert, dass er ja nur seine Hacken zusammenschlagen muss ...)

Falls ihr Duncan noch nicht kennt und etwas Zeit habt, nur Mut! Falls ihr ihn
schon kennt, habt ihr euch sicher schon eine eigene Meinung gebildet.

Gruesse,
V*

PS: Die vergoldete Kette hab ich in deutscher Fassung und die beiden anderen
    in englischer. Die Uebersetzung von Michael Krug scheint gut gelungen zu 
    sein. (Ich bin da etwas kritisch, weil mir die Harry Potter-Uebersetzung 
    die Fussnaegel hochrollen laesst). Ich kann die Baende bei Interesse gern
    nach WiBu mitnehmen und verleihen (also ueber WiBu hinaus, das wird ja 
    kein Lesewochenende :) 

-----------------------------------------------------------------------------



Re: Buchkritik: Dave Duncan, "The King's Blades" (Vanion, 27. Nov 2004, 21:00:02):
~#! rn=Vanion rt=1101584946 rg=kultur
~#! tid=1101584946
http://www.daveduncan.com/books.html

V*

-----------------------------------------------------------------------------



schwarze magie (Wurzel, 29. Nov 2004, 10:00:24):
grad fertiggelesen: the black magician trilogy von trudi canavan.
moechte sagen: ein highlight der fantasy. natuerlich gibt es nicht allzu
viele tolle neue ideen, das gibts in der fantasy seit tolkien nur noch sehr
vereinzelt. das ist aber auch gar nicht noetig. trudi canavan hat eine sehr
gute beobachtungsgabe, und sie charakterisiert ihre handelnden personen
exzellent.
es spielt in einer welt, in der die magie den reichen und adligen vorbehalten
ist. die armen und unterprivilegierten werden alljaehrlich in einem "purge",
einer grossangelegten reinigungsaktion, aus der stadt geworfen und duerfen
in den ausserhalb gelegenen slums weiterexistieren. in einem jahr passiert
aber etwas aussergewoehnliches: ein junges maedchen wirft wie viele andere,
die aus der stadt geworfen werden, einen stein. und dieser stein durchdringt
den magischen schutzschild, der die am purge beteiligten magier schuetzt.
trudi canavan ist australierin, vielleicht hat es was damit zu tun, dass
sich die romane wohltuend von der amerikanischen massenfabrikation abheben.
es ist mir jedenfalls sehr schwer gefallen, die buecher aus der hand zu
legen.

wurzel

-----------------------------------------------------------------------------



Im Urlaub schnell gelesen ... (Ark,  1. Dez 2004, 14:09:12):
Und sogar ohne Sonnenbrand, ging also wirklich schnell, was bei der Sonne da
unten was heissen will :-)

Frank Schaetzing: Tod und Teufel


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Im Urlaub schnell gelesen ... (Anysidora,  1. Dez 2004, 14:38:28):
~#! rn=Ark rt=1101906552 rg=kultur
~#! tid=1101906552
Oh, das hab ich gestern abend grad angefangen zu lesen :) 

-----------------------------------------------------------------------------



Der neunte Tag (Deepblue,  4. Dez 2004, 23:44:54):
Also ich wollte Euch mal den Film "Der neunte Tag" empfehlen - ist allerdings
recht schwere Kost.

Es geht um den Luxemburger Pfarrer Henri Kremer (gespielt von Ulrich Matthes,
u.a. Goebbels in "Der Untergang") aus dem Pfarrerblock des KZ Dachau, der neun
Tage Heimaturlaub bekommt, um seinen Bischof zur Zusammenarbeit mit den Nazis
zu bewegen. Hat er Erfolg, so ist er frei, ansonsten muss er ins KZ zurueck.
Flieht er, stirbt der ganze Block...
Regie fuehrte Volker Schloendorff (u.a. "Die Blechtrommel".

Eine vollstaendige Kritik gibts unter http://tinyurl.com/5bh49.

-----------------------------------------------------------------------------



Die drei ??? (Liara, 10. Dez 2004, 11:55:10):
Mitteilung vom Kosmos-Verlag:
Ja, richtig gelesen! Die Lizenz fuer die Verwendung des Namens 'Alfred
Hitchcock' laeuft leider aus und wurde nicht verlaengert. Wie auch in den USA,
faellt der Name Hitchcock dadurch weg. Aber wir haben versucht, das Beste
daraus zu machen. Und wenn wir das Cover schon anfassen, dann haben wir
wenigstens auf der Rueckseite ein paar Verbesserungen umgesetzt, die uns schon
lange am Herzen lagen: Die lieferbaren Titel sind in den Innenteil gewandert
und die Seite ist jetzt insgesamt viel ansprechender. Wir hoffen, euch
gefaellt es so.

Sprich: Auf den Produkten faellt das Hitchcock-Logo weg. Wer erinnert sich
nicht an den erhobenen Zeigefinger von Alfred in den fruehen Buechern. :)
Ganz witzig ist aber sowieso, dass die nachwachsende Generation ???-Fans mit
dem Kopf und dem Namen Hitchcock ohnehin nichts mehr anfangen konnte. ;)

-----------------------------------------------------------------------------



Aufsatzwettbewerb: Japan - Meine Sicht (Vanion, 15. Dez 2004, 17:50:38):
Im kommenden Jahr findet in Japan das 'Deutsche Jahr' statt. Unter diesem
Motto finden ueberall in Japan verschiedenste Veranstaltungen mit
Deutschlandbezug statt.

Im Rahmen dieses Programms veranstaltet das Landesspracheninstitut NRW in
Zusammenarbeit mit dem DAAD und noch einigen anderen Organisationen einen
Aufsatzwettbewerb mit dem Titel 'Japan - Meine Sicht'. Das konkrete Thema ist
frei waehlbar.

Teilnahmeberechtigt sind Studierende deutscher Hochschulen bis zum
abgeschlossenen 28. Lebensjahr (Stichtag ist der 14. Januar 2005).

Mitmachen lohnt sich nicht nur wegen der Erfahrung, die man hierbei sammelt,
sondern auch da u.a. Stipendien des DAAD und des LSI winken.

Da ich zu faul bin, jetzt alles abzuschreiben, kann der geneigte Leser sich
gern unter http://www.jams.lsi-nrw.de/ weiter informieren.

Viel Spass und Kreativitaet,
V*

-----------------------------------------------------------------------------



Suche Referat/Facharbeit zu Klaus Mann "Der Vulkan" (Apophis, 16. Dez 2004, 17:29:50):
siehe Titel. Hat da jemand was? google etc. spuckt komischerweise mal nix
brauchbares aus, ausser Link auf www.hausaufgaben.de, welches allerdings nicht
kostenlos ist.
Danke schonmal.
Apo*

-----------------------------------------------------------------------------



Hamster ... (Gloinson, 16. Dez 2004, 21:54:17):

... ich wusste gar nicht, dass dieses Lied SO viele Strophen hat:

Timmy der Hamster


Es war einmal ein Hamster, der hatte der Weiber vier
Es war einmal ein Hamster, der hatte der Weiber vier

Polygamie, Polygamo, Polygamiamiamo
Polygamie, Polygamo, Polygamieamo

Da kam ein heisser Sommer und nahm ihm der Weiber zwei
Bigamie...

Da kam ein strenger Winter und nahm ihm noch ein Weib
Monogamie...

Da kam ein fremder Hamster und nahm ihm das letzte Weib
Onanie...

Da kam ein schwuler Hamster und troestete den einen
Homononie...

Da kam ein schwedischer Hamster, der fotografierte die zwei
Pornographie...

Da kam ein Pflug gefahren und schnitt ihm ab das Ding
Philosophie...

Da kam ne Dampfwalze gefahren und fuhr den Hamster platt
Philatelie...

Da kam ne Studentenbrigade und las den Hamster auf
Oekonomie...

Da kam ein fleissger Koch und kochte den Hamster gar
Gastronomie...


-----------------------------------------------------------------------------



'Facts of Life' von Lazyboy (Liara, 21. Dez 2004, 20:24:35):
This is who we are, this is what we do, this is what it is
- the bare facts of the life we live
This is who we are, this is what we do, this is what it is
These are the facts of the life that we live
This is who we are
Bare facts of the life we live
This is who we are, this is what we do, this is who we are, are, are, are,
are...
- so help me god

Did you know, that 1 out of 4 Americans has appeared on tv?
Did you know, 61% of all hits on the internet are on sex-sites?
Every day 21 newborn babies will be given to the wrong parents
The average person swallows 8 spiders in a year
Cannabis is the most widely abused drug in the world
The average person laughs 13 times a day
Elvis was originally blonde
The average age of first intercourse is 15.3 years old
The average erect penis is 5.2" long - and 4.2" circumcised
Eskimoes use refrigerators to keep food from freezing
41% of all people take people with curly hair less seriously
20% of all females have had at least 1 homosexuall experience
Did you know, that there is no such thing as an anti-wrinkle-creme?

This is who we are, this is what we do, this is what it is
- the bare facts of the life we live
This is who we are, this is what we do, this is what it is
These are the facts of the life that we live
This is who we are
Bare facts of the life we live
This is who we are, this is what we do, this is who we are, are, are, are,
are... 
22% of the time, a pizza will arrive faster then an ambulance in Great Britian
96% of all women have at one time in their life faked an orgasm
3 people die every year, testing if a 9 volt battery works on their tongue
The 'Guiness Book Of Records' holds the record for being the most stolen book
in the public libraries
Butterflies taste with their feet
5% of the population is gay
The worlds best known word is 'okay', the second most well-known word is
'Coca-Cola'
The giraffe can clean its ears with its tongue
Charles Chaplin once won 3. price in a 'Charles Chaplin look-a-like contest'
In 1995 a japanese trawler sank because a Russian cargo plane dropped a living
cow from 30,000 feet
Only one book has been printed in more copies than the bible - the
IKEA-catalogue

This is who we are, this is what we do, this is what it is
- the bare facts of the life we live
This is who we are, this is what we do, this is what it is
These are the facts of the life that we live
This is who we are
The facts of the life we live
This is who we are, this is what we do, this is who we are...

1 cigarette takes away five minutes of a person's life
In 1950 we were 3 billion people on the earth - today we are 6 billion people
(time is ticking, ticking, yeah...)
'Donald Duck' was banned in Finland, because he doesn't wear pants
74% of all nudist-females are nudists, because their husbands are nudists
More people die from a champagne cork popping, than from poison spiders
21% of all traffic accidents happen because the driver falls asleep
Did you know that originally a Danish guy invented the burglar alarm -
unfortunately it got stolen

This is who we are, this is what we do, this is what it is
Yeah, yeah, yeah, yeah...
This is who we are, this is what we do, this is what it is
Yeah, yeah...
This is who we are
Bare facts of the live we live
This is who we are, this is what we do
This is who we are, this is what we do

- so help me God 

-----------------------------------------------------------------------------



Zwielicht (Gnome, 11. Feb 2005, 13:57:35):
heute abend, pro7, 20.15h

ein alles ueberragender edward norton stellt mr. gere in den schatten.

gnOme

-----------------------------------------------------------------------------



Zitat von Albert Camus (Liara, 28. Apr 2005, 00:01:56):
Ich bin irgendwo im WWW ueber folgendes Zitat gestolpert:
Die Phantasie troestet die Menschen ueber das hinweg, was sie nicht sein
koennen, und der Humor ueber das, was sie tatsaechlich sind.

Es wird allerdings zum Teil auch so wiedergegeben:
Die Einbildung troestet die Menschen ueber das, was sie nicht sein koennen,
und der Humor ueber das, was sie wirklich sind. 
bzw.
Die Phantasie ist dem Menschen als Entschaedigung fuer das mitgegeben, was er
nicht ist, der Humor fuer das, was er ist.

Kennt das jemand bzw. weiss jemand, aus welchem Text von Camus es stammt? Oder
ist das nur muendlich ueberliefert? Und wie  ist es korrekt?

-----------------------------------------------------------------------------



lange graue haare (Wurzel,  7. Mai 2005, 16:23:49):
ein konzert, wo die mehrheit der zuhoerer graue haare hat? klassik wohl.
am dienstag war ich auch bei einem solchen klassiker: nach 37 jahren hat
cream mal wieder ein konzert gegeben (eigentlich waren es vier konzerte,
aber ich hab nur fuer eines davon karten bekommen).
um es kurz zu machen: genial. ein konzert, wie es frueher war, musik statt
buehnenshow. statt laenglicher ansagen und selbstbeweihraeucherung spielt
man lieber einen song mehr. die royal albert hall hat zwar nicht die beste
moegliche akustik, aber noch immer saugut. und die oma neben mir ist schier
ausgerastet auf ihrem platz. lauter gute alte songs, kein krampfhafter
versuch was neues zu machen, was sowieso niemand hoeren will. zwei stunden
rock und blues vom feinsten, was es je gab. glueck gehabt, angeblich wurden
die karten am ende zu preisen ueber 1000 pfund gehandelt.
im herbst soll eine dvd rauskommen. mal sehen, vielleicht kaufe ich mir
sogar endlich einen dvdplayer.

-----------------------------------------------------------------------------



tv-tip (Gabylon,  7. Mai 2005, 17:55:00):
heute abend, 20:15, K1: "the hot spot"

besonders gefaellt mir an dem film don johnson, wie er von zwei frauen,
geldgier, moral und gewissen hin- und hergerissen wird.
definitiv sein bester film.

gab

-----------------------------------------------------------------------------



Re: tv-tip (Wurzel,  7. Mai 2005, 18:26:05):
~#! rn=Gabylon rt=1115481300 rg=kultur
~#! tid=1115481300
fernsehen ist etwas fuer leute, die nicht lesen koennen. 
heute abend lese ich weiter ian irvine "a shadow on the glass", das erste aus
einer serie von insgesamt acht buechern. allerdings nicht sowas wie bei dem
unsaeglichen robert jordan, hier gibt es alle vier baende einen klaren punkt.
irvine schreibt, er wollte mal was anderes machen als die europaeisierte
mittelalter-fantasy, und bis jetzt macht es einen hochinteressanten eindruck.
fuer ein echtes urteil ist es nach 100 seiten noch zu frueh, aber gefaellt
mir bis jetzt sehr gut. auch wenn ich die dramatischen abweichungen von dem
medieval fantasy klischee noch nicht gefunden habe, ist doch die stimmung, 
die ian irvine vermittelt, etwas anders. es gibt keine echten "helden", nur
verschiedene leute mit den unterschiedlichsten problemen. irgendwie sehr real.
zu gegebener zeit vielleicht mehr dazu.
ach ja, ob und wann das auch mal auf deutsch rauskommt, weiss ich nicht.

-----------------------------------------------------------------------------



Re: lange graue haare (Zarniya,  9. Mai 2005, 13:38:36):
~#! rn=Wurzel rt=1115475829 rg=kultur
~#! tid=1115475829
Ok.. ich hab nicht Cream gesehen, aber vor 2 Wochen Queen in Dortmund und muss
sagen, dass das auch ein komisches, also in Richtung seltsames Erlebnis war.
Paul Rodgers ist sicher kein schlechter Saenger, aber irgendwie merkte man,
dass eigentlich alle nur einer Stimme hinterher trauerten. Die Show war
trotzdem wirklich erstaunlich gut, wenn man auch merkt, dass die Helden alter
Zeiten seit 19 Jahren nicht mehr zusammen auf der Buehne waren. Sicher kann
man sich darueber streiten, ob die Tour ueberhaupt noetig war... ich habs
zumindest nicht bereut, mir Queen noch einmal anzusehen.

Marc

-----------------------------------------------------------------------------



Theaterkarte fuer morgen uebrig (Mieze, 13. Mai 2005, 14:18:31):
Hallo Mitmudder,

wer hat Lust und Zeit, morgen mit ins Aaltotheater in Essen zu kommen? Es wird
der Mitsommernachtstraum von Benjamin Britten gespielt. Eine Karte ist noch
ueber.

Gruesse
Mieze 

-----------------------------------------------------------------------------



Moto-Razr-V3-TV-Handy-Werbung (Liara, 19. Mai 2005, 21:08:32):
Falls jemand von dem Spot und der Musik genau so fasziniert ist wie ich:
Der Song ist von Dabrye und heisst 'Hyped-Up Plus Tax'.
Link zum Reinhoeren: http://www.ghostly.com/1.0/artists/dabrye/index.shtml

Es ist die Werbung, wo alles um eine Frau zusammenklappt und sich in das Handy
verwandelt.

-----------------------------------------------------------------------------



Re: Theaterkarte fuer morgen uebrig (Wurzel, 23. Mai 2005, 09:20:40):
~#! rn=Mieze rt=1115986711 rg=kultur
~#! tid=1115986711
mal abgesehen davon, dass "morgen" mittlerweile schon vorbei ist: war das
nicht mal von shakespeare? handelt es sich am ende gar um eine musikalisch
verunzierte version des stuecks *schuettel*?

-----------------------------------------------------------------------------



Re: Re: Theaterkarte fuer morgen uebrig (Mieze, 24. Mai 2005, 16:45:20):
~#! rn=Wurzel rt=1116832840 rg=kultur
~#! tid=1115986711

Also als verunziert habe ich das nicht empfunden.

Mieze - hat das Theater richtig genossen :o)

-----------------------------------------------------------------------------



Gutes Buch (Ark,  7. Okt 2005, 23:56:40):
Find ich zumindest, las sich flink und sehr angenehm:
Das Urteil am Kreuzweg, von Iain Pears.
Viermal die gleiche Begebenheit geschildert, aus verschiedenen Perspektiven,
aber so, dass es alles andere als langweilig ist, auch wenn man 900 Seiten vor
sich hat :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Wehe ... (Ark, 14. Nov 2005, 11:09:46):
... einer schreibt hier was rein zum Inhalt von:
Feast of Crows, von George Martin. Ich nenne das Hardcover seit heute mein
Eigentum. Wer gegen die Geheimnisbewahrung verstoesst, wird mit Zwangsquesten
nicht unter 1000 AP bestraft :-)

Ist uebrigens (noch) keine Empfehlung, bei Amazon haben ja schon einige
genoergelt. Nun, mal schauen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Wehe ... (Muadib, 14. Nov 2005, 11:29:53):
~#! rn=Ark rt=1131962986 rg=kultur
~#! tid=1131962986
ich wuenschte, meine ausgabe wuerde auch mal erscheinen :(
bloss weil ich das passende cover will
dummer verlag

-----------------------------------------------------------------------------



Re: Re: Wehe ... (Ark, 14. Nov 2005, 11:39:08):
~#! rn=Muadib rt=1131964193 rg=kultur
~#! tid=1131962986
Nuja, die Cover sind ja zum Teil auch sehr schoen, mir diesmal wurscht, da die
ersten drei Baende auch immer groesser wurden, hab ich nun ein fettes
Hardcover :-)
Inhalt ist wichtiger.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Wehe ... (Hobo, 14. Nov 2005, 15:29:32):
~#! rn=Ark rt=1131964748 rg=kultur
~#! tid=1131962986
Ging mir genauso - und nun: *noergel*

   Hobo hat Angst, dass GRRM sein doch schwaches Ende aus Fevre Dream bei
Song of Ice and Fire wiederholt - auch wenn Fevre Dream ein ansonsten sehr
schoenes Buch ist

-----------------------------------------------------------------------------



Re^4: Wehe ... (Chagall, 14. Nov 2005, 16:52:50):
~#! rn=Hobo rt=1131978572 rg=kultur
~#! tid=1131962986
Ich warte auch noch auf mein Hardcover. Waeh, will nicht mehr warten. :(
MC

-----------------------------------------------------------------------------



Re: Wehe ... (Vanion, 14. Nov 2005, 20:03:55):
~#! rn=Ark rt=1131962986 rg=kultur
~#! tid=1131962986
Ist es zuviel gespoiler, wenn ich andeute, dass ein Stark darin vorkommen
wird?

V*

-----------------------------------------------------------------------------



Re: Re: Wehe ... (Gloinson, 14. Nov 2005, 20:13:33):
~#! rn=Vanion rt=1131995035 rg=kultur
~#! tid=1131962986
Argh! Dann petze ich, dass Lannisters mitspielen!


-----------------------------------------------------------------------------



Re^3: Wehe ... (Humni, 14. Nov 2005, 20:16:15):
~#! rn=Gloinson rt=1131995613 rg=kultur
~#! tid=1131962986
Ok.

Da ich noch nichtmal teil 1 durch habe weiss ich nun schon, dass mindestens
ein Stark und mindestens zwei Lannisters ueberleben.. macht nur weiter so...

Humni

-----------------------------------------------------------------------------



Re^4: Wehe ... (Gloinson, 14. Nov 2005, 20:16:55):
~#! rn=Humni rt=1131995775 rg=kultur
~#! tid=1131962986
Warts ab, bis du von den Fusssoldaten erfaehrst.


-----------------------------------------------------------------------------



Re^4: Wehe ... (Vanion, 14. Nov 2005, 20:22:46):
~#! rn=Humni rt=1131995775 rg=kultur
~#! tid=1131962986
Da ich erst in der Haelfte von Band 3 bin, bin ich da nich so sicher Humni,
bei dem Verbrauch an Hauptcharakteren, den Martin in einzelnen Kapiteln hat
...

V*

-----------------------------------------------------------------------------



Re^5: Wehe ... (Gloinson, 14. Nov 2005, 20:23:20):
~#! rn=Vanion rt=1131996166 rg=kultur
~#! tid=1131962986
Irgendwo spriesst immer noch ein Bruder oder ein Bastard.


-----------------------------------------------------------------------------



Re^6: Wehe ... (Lug, 14. Nov 2005, 23:53:09):
~#! rn=Gloinson rt=1131996200 rg=kultur
~#! tid=1131962986
Und neuerdings kommen manche ja auch wieder... HAR HAR HAR...

Eben WoT 11 durchgeackert... schon wieder besser

Skal
Lug

-----------------------------------------------------------------------------



Re^7: Wehe ... (Kellybundy, 15. Nov 2005, 15:30:40):
~#! rn=Lug rt=1132008789 rg=kultur
~#! tid=1131962986
Hihi, Ihr poesen Purchen, ihr! 
Kelly, wienert ein Zaptool und uebergibt es fies grinsend an Ark.

-----------------------------------------------------------------------------



Re^8: Wehe ... (Muadib, 15. Nov 2005, 18:37:53):
~#! rn=Kellybundy rt=1132065040 rg=kultur
~#! tid=1131962986
hoert ihr vielleicht bald auf?

-----------------------------------------------------------------------------



Re^9: Wehe ... (Kellybundy, 15. Nov 2005, 18:39:01):
~#! rn=Muadib rt=1132076273 rg=kultur
~#! tid=1131962986
Ich bin unschuldig. *unschuldig pfeif und Finger hinter dem Ruecken kreuz*

-----------------------------------------------------------------------------



Re^10: Wehe ... (Lug, 16. Nov 2005, 16:17:40):
~#! rn=Kellybundy rt=1132076341 rg=kultur
~#! tid=1131962986
Womit? Man darf doch wohl noch Song of Fire and Ice und WoT diskutieren?

-----------------------------------------------------------------------------



Niedergang des Fanatsy in Deutschland (Zarniya, 17. Nov 2005, 08:42:17):
Tja... bei all der Diskussion hier faellt mir ein, dass ich letzte Woche
ziemlich boese mit Bastei telefoniert hab.... die haben, nach Piers Anthony
vor einigen Jahren, nun auch ganz aktuell Robert Rankin keinen Vertrag mehr
gemacht, weil es sich angeblich schlecht verkauft... 

Meine Meinung ist einfach... wie soll sich Rankin verkaufen, wenn man kein
anstaendiges Marketing macht? JA, ich bin sauer. Und nein, Boing, ich hab die
Sachen nicht auf Englisch gelesen bis jetzt, weil zu meinem Haushalt auch
Personen gehoeren, die nur schlecht Englisch koennen... leider werd ich wohl
nun mit den fehlenden Baendern auf die Originale umsteigen muessen... 

Shame on Germany.... Fuck Bastei/Luebbe!

Marc

-----------------------------------------------------------------------------



Re: Niedergang des Fanatsy in Deutschland (Anthea, 17. Nov 2005, 10:20:14):
~#! rn=Zarniya rt=1132213337 rg=kultur
~#! tid=1132213337
Jau. Genau darum bin ich vor etlichen Jahren dazu uebergegangen, eh alles auf
Englisch zu lesen. Die Uebersetzungen dauern zu lange, oft geht einiges dabei
verloren, und die Auswahl, die uebersetzt wird, ist auch manchmal fragwuerdig.

-----------------------------------------------------------------------------



Re: Re: Niedergang des Fanatsy in Deutschland (Darklor, 17. Nov 2005, 12:58:03):
~#! rn=Anthea rt=1132219214 rg=kultur
~#! tid=1132213337
Mach deinen eigenen Verlag auf...

Darklor

-----------------------------------------------------------------------------



Re: Niedergang des Fanatsy in Deutschland (Muadib, 17. Nov 2005, 14:36:30):
~#! rn=Zarniya rt=1132213337 rg=kultur
~#! tid=1132213337
zeit fuer eine verlagsgruendung?

-----------------------------------------------------------------------------



Re: Re: Niedergang des Fanatsy in Deutschland (Boing, 18. Nov 2005, 09:20:22):
~#! rn=Muadib rt=1132234590 rg=kultur
~#! tid=1132213337
Bei den Rankin Uebersetzungen ist es aber auch nicht schade drum ...
Es wundert mich nicht, dass die sich nicht verkaufen liessen.
  Boing

-----------------------------------------------------------------------------



Re^3: Niedergang des Fanatsy in Deutschland (Kellybundy, 21. Nov 2005, 21:50:05):
~#! rn=Boing rt=1132302022 rg=kultur
~#! tid=1132213337
Der Niedergang der Fantasy wundert mich nicht in Deutschland. Wir haben nicht
nur einen grauenhaften Musikgeschmack, auch der der Belletristik (zu der
leider, typisch deutsch, auch sehr pauschalisierend Fantasy, SciFi, Horror
gemantscht wird), laesst extrem zu wuenschen uebrig. Stattdessen verkauft sich
z.B. Hohlbein wie warme Semmeln. und der dritte aufguss des dritten aufgusses
vom buch zur Filmvorlage. Das ist leider, wenn man sich in anderen Laendern in
der entsprechenden Szene mal umschaut, typisch deutsch... 
Blondchen, seufzend und auch nur noch englisch ordernd

-----------------------------------------------------------------------------



Re^4: Niedergang des Fanatsy in Deutschland (Bambi, 21. Nov 2005, 22:04:00):
~#! rn=Kellybundy rt=1132606205 rg=kultur
~#! tid=1132213337
Wenn Du von "Wir" und "Musikgeschmack" redest, dann wirf bitte nich mich mit
12jaehrigen Teenies in einen Topf.

-----------------------------------------------------------------------------



Re^5: Niedergang des Fanatsy in Deutschland (Kellybundy, 30. Nov 2005, 20:40:18):
~#! rn=Bambi rt=1132607040 rg=kultur
~#! tid=1132213337
Wenns nur die 12-jaehrigen Teenies waeren. Schlechte Musik wird hierzulande
schon biss laenger produziert, auch schon, als die heute 12jaehrigen noch
nicht mal in Planung waren.

-----------------------------------------------------------------------------



Re^11: Wehe ... (Zephyr,  5. Dez 2005, 21:31:56):
~#! rn=Lug rt=1132154260 rg=kultur
~#! tid=1131962986
Falls sich noch wer von SoI&F anstecken lassen will:
ebay Nr. 6992275491 verkauft die ersten drei Baende.
Gruss, C4

-----------------------------------------------------------------------------



Re^12: Wehe ... (Vanion,  5. Dez 2005, 21:52:11):
~#! rn=Zephyr rt=1133814716 rg=kultur
~#! tid=1131962986
Ich hab Bd. 3 gerade abgeschlossen. Gemein.

V*

-----------------------------------------------------------------------------



Japanische Musikvideos... (Mupfel, 12. Jan 2006, 22:05:42):
...fand ich auf www.youtube.com.

Hier hamwer als erstes mal "Penicilin":
http://www.youtube.com/?v=pIvgbuO4xvA  ("New Future")
http://www.youtube.com/?v=y1kv6DXeAdQ  ("Romance")

Und hier "Phantasmagoria":
http://www.youtube.com/?v=fms80qmsbYk  ("Never Rebellion")
http://www.youtube.com/?v=kLvdzmi9kVE  ("mikansei to guilt pv")

Ein Tipp: erstmal auf "Pause" klicken, bis das Video geladen ist (hellgrauer
Balken ganz rechts), dann auf "Play" klicken.

Klingt doch irgendwie fremd :)

-mupfel-

-----------------------------------------------------------------------------



Re: Japanische Musikvideos... (Jimdigriz, 12. Jan 2006, 22:49:02):
~#! rn=Mupfel rt=1137099942 rg=kultur
~#! tid=1137099942

Finde nicht, dass das sehr fremd klingt
(abgesehen davon dass man die Sprache nicht versteht).

Fuer mich ist Penicilin ganz klar vorne,
Phantasmagoria klingt doch eher unoriginell.

Aber insgesamt definitiv cooler sound!

JdG

-----------------------------------------------------------------------------



TV-warnung (Gnome, 22. Jan 2006, 15:53:02):
diesmal moechte ich euch den heutigen abend retten. falls ihr heute abend
mit dem gedanken gespielt habt, um 20.15 auf RTL den film "nur noch 60
sekunden" zu schauen... vergesst es. schwachsinn hoch 3. nicolas cage
schlechtester film. brauchte wohl gerade geld oder so.

dann doch lieber zur gleichen zeit auf pro7 den film mit kate hudson.

gnOme

-----------------------------------------------------------------------------



Re: TV-warnung (Vector, 22. Jan 2006, 15:55:36):
~#! rn=Gnome rt=1137941582 rg=kultur
~#! tid=1137941582
angelina jolie mal in blond und n paar jahre juenger. was will man mehr?
wer bitte ist nicolas cage?:)

-----------------------------------------------------------------------------



Re: Re: TV-warnung (Mieze, 22. Jan 2006, 15:56:22):
~#! rn=Vector rt=1137941736 rg=kultur
~#! tid=1137941582

Manchmal bin ich echt froh, dass ich keinen Fernseher habe ;o)

Mieze 

-----------------------------------------------------------------------------



Re^4: TV-warnung (Mieze, 22. Jan 2006, 15:59:02):
~#! rn=Anatol rt=1137941910 rg=kultur
~#! tid=1137941582

Wenn ich wuesste wie sie aussieht ... Ich kann mir Gesichter eh nicht merken.

Mieze

-----------------------------------------------------------------------------



Re^5: TV-warnung (Grimmborn, 22. Jan 2006, 16:09:00):
~#! rn=Mieze rt=1137941942 rg=kultur
~#! tid=1137941582
Traditionell ist es bei Frau Jolie eher weniger das Gesicht, das man(n) sich
merkt... 

GdA

-----------------------------------------------------------------------------



Re^6: TV-warnung (Lug, 22. Jan 2006, 16:10:32):
~#! rn=Grimmborn rt=1137942540 rg=kultur
~#! tid=1137941582
TIITTEN!

Ist doch Kultur...

Lug

-----------------------------------------------------------------------------



Re^7: TV-warnung (Muadib, 22. Jan 2006, 19:26:56):
~#! rn=Lug rt=1137942632 rg=kultur
~#! tid=1137941582
deswegen wurde in der vorschau zu tomb raider auch so oft der name wiederholt

-----------------------------------------------------------------------------



Re: Re: TV-warnung (Seleven, 23. Jan 2006, 10:54:59):
~#! rn=Vector rt=1137941736 rg=kultur
~#! tid=1137941582
Nicolas Cage ist der von George Dabbljuh angeheuerte Schauspieler, der sich
einen Bart hat wachsen lassen und immer wider Drohungen gegen die westliche
Welt ausstoest. Seine ueberzeugendste Rolle bislang.
Seleven mehr schmarrend als ernst.

-----------------------------------------------------------------------------



dvd's (Moppi, 17. Feb 2006, 17:48:31):
Weil ich mal wieder vom Arbeitsamt gesponsort werde, komme ich zur Zeit
dazu mir mal wieder DVD's auszuleihen. Hinzukommt das in miener Stadt gerade
heftige Konkurrenz unter den Verleihern ausgebrochen ist, so das mich eine DVD
nur 50 oder 80 Cent pro Tag kostet. Hier ein paar Tips fuer Leute die ratlos
vor den Regalen stehen.

der verbotene Schluessel: 
interessanter Okkult-Thriller mit der bezaubernden Kate Hudson. In jedem Falle
Spannend mit unverhofftem Ende(kein happy end!) das einem Schauer uber den
Ruecken jagt. 8 von 10 Punkte

Sieben:
Thriller bei dem eine Serienmoerder seine Opfer nach den 7 Todsuenden
fachgerecht bearbeitet. Duestere Bilder, uberraschende Wendungen. Film hat nur
ein Manko: Brad Pit nimmt man die Rolle des Juniorkommissars von hinten bis
vorne nicht ab. Er taugt allerhoechstens fuer Ken in einer Barbie-Filmreihe.
(Aua nicht hauen) 8 von 10

Requiem for a dream:
Film mit interessanten Stil-Elementen des Regisseurs Darren Aronofsky ("Pi").
Allerdings ein Film den man sich nur bei starkem Gemuet antuen sollte. Die
Protagonisten des Films gleiten unaufoerlich in den Drogensumpf hinab obwohl
sie nur im Sinn hatten sich einen Traum zu erfuellen. Manchmal mochte ich bei
der Grausamkeit der Bilder gar nicht mehr hinschauen. Aber es ist echte
Filmkunst. 9 von 10

Wallace und Grommit: Auf der Jagd nach dem Riesenkaninchen:
Hier braucht man gar nichts mehr sagen, die knetigen Figuren sind einfach
Kult. Liebevolle Details die erst nach merhmaligem Anschauen entdeckt werden,
gelungene Gags werden mich wohl dazu bringen mir die Scheibe gleich
einzukaufen. 10 von 10

Jungfrau(40) maennlich, sucht:
Komoedie um einen 40 jaehrigen Mann der noch keinen Sex hatte. Die Kollegen
des Mannes kriegen es raus und setzen alles daran es zu aendern. Zweifelos hat
der Film seine Lacher und auch die Message des Films (Lass dich von niemandem
von deinem weg abbringen)  kommt ordentlich rueber. Allerdings hat der Film
ueberlaenge (2h) und die Dirty Talks der Kollegen sind mitunter nicht mehr
witzig sondern unertraeglich.
6 von 10 Punkten.

Ok viel Spass dann!
Mopperl

P.S. Nein, ich werde nicht auf Megaschmarrn schreiben. ;-)

-----------------------------------------------------------------------------



Re: dvd's (Gnome, 17. Feb 2006, 22:21:37):
~#! rn=Moppi rt=1140194911 rg=kultur
~#! tid=1140194911
der verbotene schluessel:
warum nur 8 von 10, wenn er anscheinend kein manko hat? es ist ein
wirklich toller film, atmosphaere ist zum greifen nah. das einzige
problem: man erahnt am ende "der verbotene schluessel 2".
deshalb 'nur' 9 von 10.

sieben (warum rezensierst du 10 jahre alte filme?):
perfekter film mit perfektem showdown. und brad pitt ist in dieser
rolle voll und ganz ueberzeugend, besonders gegen ende. mit fight
club und 12monkeys seine beste rolle. volle 10/10.

die anderen kenne ich nicht.

gnOme

-----------------------------------------------------------------------------



Re: Re: dvd's (Moppi, 17. Feb 2006, 23:18:12):
~#! rn=Gnome rt=1140211297 rg=kultur
~#! tid=1140194911
muss ne enue Edition gewesen sein von dem Film, jedenfalls lag der ein den
"Neuheiten"-Regalen. 
Was Pit betrifft: der hat mich noch nie ueberzeugt genauso wie Leo ;-)
Hauptsache Jake  Gyllenhaal kriegt den naechsten Oscar. Der ist wenigstens
keine Pfeife.

Mopperl

-----------------------------------------------------------------------------



Re^3: dvd's (Gnome, 18. Feb 2006, 00:13:23):
~#! rn=Moppi rt=1140214692 rg=kultur
~#! tid=1140194911
du solltest von den entsprechenden schauspielern einfach mal die
richtigen filme dir angucken. wenn man von leo nur titanic kennt,
steckt man ihn natuerlich in eine der unteren schubladen.
aber er kanns wirklich besser, VIEL besser.

apropos schaupieler, hier meine Top10 mit den entsprechenden filmen
dahinter in klammern, die man einfach gesehen haben muss, will man
diese schauspieler in ihren herausragendsten rollen bestaunen.
die reihenfolge soll keine wertung darstellen.

 1. Leonardo di Caprio (Gilbert Grape, Jim Carroll)
 2. Anthony Hopkins (Schweigen der Laemmer, Amistad, Meet Joe Black)
 3. Steve Buscemi (Fargo, The Big Lebowski)
 4. Harvey Keitel (Smoke, Pulp Fiction)
 5. Joaquin Phoenix (U-Turn, Walk the Line)
 6. Robert de Niro (Raging Bull, Cape Fear, Awakenings)
 7. Brad Pitt (Seven, 12Monkeys, Fight Club)
 8. Tim Robbins (The Player, Arlington Road)
 9. Sean Penn (Colors, U-Turn, The Game)
10. Woody Harrelson (White Men Can't Jump, Larry Flint)

ja, es gibt natuerlich noch mindestens 20 andere sehr gute schaupieler,
aber das waere so meine auswahl der creme de la creme.

gnOme

-----------------------------------------------------------------------------



Re^4: dvd's (Gloinson, 18. Feb 2006, 00:14:11):
~#! rn=Gnome rt=1140218003 rg=kultur
~#! tid=1140194911
Was, und bei Sean Penn vergisst du "Dead Man Walking"?


-----------------------------------------------------------------------------



Re^5: dvd's (Gnome, 18. Feb 2006, 00:19:43):
~#! rn=Gloinson rt=1140218051 rg=kultur
~#! tid=1140194911
ja, und bei woody hab ich Natural Born Killers vergessen. :)

-----------------------------------------------------------------------------



Re^6: dvd's (Swotl, 18. Feb 2006, 00:26:15):
~#! rn=Gnome rt=1140218383 rg=kultur
~#! tid=1140194911

/Ketzermode on

Ich kann mich ruehmen, bisher mit voller Absicht keinen Film von Leonardo di
Caprio gesehen zu haben. Der sah auf den Titanic-Plakaten so furchtbar aus,
dass ich beschlossen habe, alle Filme mit ihm zu boykottieren. Und bisher hab
ich mich dran gehalten.

Ja. Ich bin da vermutlich ueberkonsequent, aber niemand hat ihn gezwungen,
sich in einer derartigen Pose auf ein Plakat malen zu lassen.

/Ketzermode off

Und Steve Buscemi ist ohnehin einer der unterschaetztesten Schauspieler
uebehaupt, sonst muesste er so ziemlich alle Nebendarsteller-Preise abraeumen,
die es so gibt..

Humni


-----------------------------------------------------------------------------



Re^6: dvd's (Gloinson, 18. Feb 2006, 00:27:05):
~#! rn=Gnome rt=1140218383 rg=kultur
~#! tid=1140194911
Robert de Niro scheinst du nicht zu moegen (Wag the Dog, The Fan, Cop Land,
Once upon a time in America). Jack Nicholson fehlt ja auch (As good as it gets
(der Film, den ich am ehesten mag). Und deutsche Schauspieler gefallen dir
gleich gar nicht (Goetz George (Der Totmacher), Joachim Krol (Wir koennen auch
anders, Zugvoegel - ... einmal nach Inari).
Deshalb waer ich nicht in der Lage eine Topliste aufzustellen ;)


-----------------------------------------------------------------------------



Re^7: dvd's (Swotl, 18. Feb 2006, 00:30:30):
~#! rn=Swotl rt=1140218775 rg=kultur
~#! tid=1140194911
Wobei mir gerade noch einfaellt, dass ich a) The big Lebowski fuer ein
Meisterwerk halte, allerdings gerade in dem Film ich b) an Buscemis Leistung
nichts auszusetzen habe, aber das jetzt nicht gerade fuer seine beste Rolle
halte (er spielt toll, keine Frage, aber seine Staerken kann er da nicht
ausspielen). Da wuerde ich eher Desperados nehmen.

Humni
PS: Oder wars Desperado? Naja, Teil 2 von der Mariachi-Saga halt.

-----------------------------------------------------------------------------



Re^7: dvd's (Gloinson, 18. Feb 2006, 00:34:00):
~#! rn=Swotl rt=1140218775 rg=kultur
~#! tid=1140194911
Wir haben dir ja schon mal vergeblich versucht die "Romeo und
Julia"-Interpretation schmackhaft zu machen. Prinzipiell finde ich sein
Milchbubigesicht in den nichtjugendlichen Rollen eher unpassend.
Geschmackssachen.


-----------------------------------------------------------------------------



Re^8: dvd's (Vanhelsing, 18. Feb 2006, 00:34:50):
~#! rn=Gloinson rt=1140219240 rg=kultur
~#! tid=1140194911
Ich konnte Leonardi Di Caprio durch Titanic auch nicht gemocht, aber in "Catch
Me If You Can" hat er mir wirklich sehr gut gefallen. Ich denke, er kann was,
hatte aber den schlechtesten Start (Titanic), den man haben kann. Und JA ich
weiss, dass er schon vorher Filme gedreht hat, aber ich bin erst durch Titanic
auf den Namen gestossen.

-----------------------------------------------------------------------------



Re^9: dvd's (Swotl, 18. Feb 2006, 00:35:58):
~#! rn=Vanhelsing rt=1140219290 rg=kultur
~#! tid=1140194911
Echt? Hilfe. Hoffentlich hab ich die nicht gesehen und werde mir jetzt selbst
untreu..

Humni

-----------------------------------------------------------------------------



Re^7: dvd's (Gnome, 18. Feb 2006, 00:36:06):
~#! rn=Gloinson rt=1140218825 rg=kultur
~#! tid=1140194911
de Niro, Nicholson und Edward Norton (Zwielicht, Fight Club) belegten
bei mir die Plaetze 11, 12 und 13. dass ich sie nicht in den Top10
drinhabe heisst nicht, dass ich sie nicht gut finde. aber eine liste
ist halt irgendwann zu ende :)

und deutsche schauspieler... hmmtja. goetz ist sicherlich nicht uebel,
krol ganz passabel (fuer mich ist er immer noch der schwule aus "der
bewegte mann" ;)). das problem ist nur: wann hat es mal einen film
gegeben, in welchem ein deutscher schauspieler so gut gespielt hat,
dass er _nicht_ die person gespielt hat, sondern die person WAR.
mir faellt auf anhieb keiner ein...

gnOme

-----------------------------------------------------------------------------



Re^8: dvd's (Gloinson, 18. Feb 2006, 00:37:10):
~#! rn=Gnome rt=1140219366 rg=kultur
~#! tid=1140194911
Dann geniess mal den Totmacher, wenn er mal wieder in den Dritten kommt.


-----------------------------------------------------------------------------



Re^10: dvd's (Gnome, 18. Feb 2006, 00:40:32):
~#! rn=Swotl rt=1140219358 rg=kultur
~#! tid=1140194911
wie gesagt: gilbert grape, jim carroll.
leih sie dir aus und sitze mit staunendem gesicht vor dem TV. :)

gnOme

-----------------------------------------------------------------------------



Re^8: dvd's (Knurps, 18. Feb 2006, 04:39:13):
~#! rn=Swotl rt=1140219030 rg=kultur
~#! tid=1140194911
The Big Lebowski ist ueberwertet, bloeder "piss mir nicht auf meinen
Teppich"-Humor.

-----------------------------------------------------------------------------



Re^9: dvd's (Gnome, 18. Feb 2006, 10:52:41):
~#! rn=Knurps rt=1140233953 rg=kultur
~#! tid=1140194911
sicher, die story ist banal. aber um die geht es auch gar nicht so sehr.

im vordergrund stehen eher die coolness eines jeff bridges, die loyalitaet
zum dude und zum bowling eines durchgeknallten john goodman ("this ist not
vietnam! this is bowling, there are rules!") und vergeblichen schlichtungs-
bemuehungen eines wie immer grandios spielenden steve buscemi.

wer den film also auf "ichpinkelaufdeinenteppich-humor" reduziert, hat
die coens nicht verstanden oder mag die schauspieler schlichtweg nicht.

gnOme

-----------------------------------------------------------------------------



Re^10: dvd's (Vanhelsing, 18. Feb 2006, 10:55:17):
~#! rn=Gnome rt=1140256361 rg=kultur
~#! tid=1140194911
Ich habe mir auch mehrmals versucht den Film anzusehen. Ich habe es aber nie
geschafft, den ganzen zu sehen. Ich habe einfach keinen Zugang dazu bekommen.
Das kann es auch geben. Er mag zwar gut sein, aber ich mag ihn nicht.
Das wollte ich nur mal dazu sagen.

-----------------------------------------------------------------------------



Re^11: dvd's (Grimmborn, 18. Feb 2006, 11:00:55):
~#! rn=Vanhelsing rt=1140256517 rg=kultur
~#! tid=1140194911
Nur damit ich das richtig verstehe: Ein Schauspieler ist nur dann gut, wenn er
jemand anderen darstellt als er selber ist? Darf also keine Rolle annehmen,
die an ihn als Person erinnert? Oder gilt das nur fuer deutsche Schauspieler?

GdA

-----------------------------------------------------------------------------



Re^7: dvd's (Vanion, 18. Feb 2006, 11:18:34):
~#! rn=Swotl rt=1140218775 rg=kultur
~#! tid=1140194911
Schade eigentlich. Di Caprio hat einige wirklich schoene Filme gemacht. Er
leidet moeglicherweise unter seinem Babyface. Aber auch das scheint sich in
gewissem Rahmen ja auszuzahlen.

Mein persoenlicher Favorit ist The Beach. Danach kommen die Gangs of New York.

Beides Filme, bei denen ich mich wegen di Caprio entschlossen habe, nicht ins
Kino zu gehen. Bei beiden hab ich mich spaeter (als ich sie in der Glotze
gesehn hab) drueber geaergert.

Und zu dem Filmplakat: Ich wuerd fast wetten, dass Herr DiCaprio (so, nu hab
ich nachgesehen, wie der sich schreibt) selbst davon ueberrascht war. Ich
glaube Plakatmaler haben einen ganz eigenen Sinn fuer Humor, gegen den
Schauspieler nix machen koennen ...

V*

-----------------------------------------------------------------------------



Re^12: dvd's (Gnome, 18. Feb 2006, 11:18:56):
~#! rn=Grimmborn rt=1140256855 rg=kultur
~#! tid=1140194911
nein nicht ganz.
schauspieler sind gut oder auch sehr gut, wenn sie ihre rolle spielen,
die man ihnen abnimmt. dann sortiert man sie fuer sich in eine schublade
und je nach sympathiegrad freut man sich, sie in ihrer naechsten rolle
wiederzusehen. tom cruise waere so einer. man mag von ihm halten, was man
will. aber er ist ein guter schauspieler, oft genug bewiesen hat er es.

dann gibt es aber noch schauspieler, die ihre rolle nicht nur spielen,
sondern sie mit leib und seele verkoerpern, in der rolle des anderen
menschen aufgehen. gute beispiele sind leo in "gilbert grape" (ich
dachte den ganzen film lang: 'was fuer arschloecher, engagieren einen
behinderten!') oder ein cholerischer Joaquin Phoenix in "u-turn" oder
auch dustin hoffmann in "rain man".

es gibt halt viele sehr gute schauspieler, aber es gibt nur wenige
wirklich geniale. das ist uebrigens unabhaengig von der nationalitaet.

gnOme

-----------------------------------------------------------------------------



Re^8: dvd's (Vanion, 18. Feb 2006, 11:36:05):
~#! rn=Gnome rt=1140219366 rg=kultur
~#! tid=1140194911
> das problem ist nur: wann hat es mal einen film
> gegeben, in welchem ein deutscher schauspieler so gut gespielt hat,
> dass er _nicht_ die person gespielt hat, sondern die person WAR.

Bruno Ganz. Kein Deutscher, aber deutscher Schauspieler in dem Sinne, dass er
in Deutschland und in deutscher Sprache arbeitet.

Achja, das muss man nicht am Untergang festmachen. Die paar Szenen die ich vom
Expo-Faust gesehen habe reichen da auch. Er war Faust.

Prochnow - im Boot, aber auch in Dune.

Um auch juengere zu nennen: Daniel Bruehl (Die Fetten Jahre sind vorbei, Das
weisse Rauschen), Max Riemelt (Napola), August Diehl (23, Tattoo), Matthias
Schweighoefer (Baal, Schiller).

Die tummeln sich nur meistens an Theatern rum, weil der deutsche Film oft
Muell ist und sie das direkte Feedback des Publikums moegen.

Herausragende Deutsche Schauspieler gibt es genug. Gute Produzenten und
Drehbuchautoren scheinen eher Mangelware.

Weder Schauspieler noch Filme sind in irgendeiner Reihenfolge, die meine
Vorlieben darstellt. Ich halte sie alle fuer herausragend.

V*

-----------------------------------------------------------------------------



Re^9: dvd's (Muadib, 18. Feb 2006, 12:19:20):
~#! rn=Vanion rt=1140258965 rg=kultur
~#! tid=1140194911
gerd froebe?
klaus maria brandauer
?
prochnow?
die dietrich?
fischer?
george?
reinhardt?
schell?
leander?

und da fehlen noch massig

-----------------------------------------------------------------------------



Re^10: dvd's (Gloinson, 18. Feb 2006, 12:39:47):
~#! rn=Muadib rt=1140261560 rg=kultur
~#! tid=1140194911
Stimmt, Froebe, Prochnow und Bruehl unterschreib ich. Diehl finde ich zu
komisch, zu arrogant im Film und aus zweiter Hand auch ausserhalb des Films.
23 habe ich nicht wirklich genossen, zu ueberagiert, selbst fuer einen
paranoiden Kokser.

Wobei ich Froebe schon allein deshlab auf der Liste habe, weil ich ihn als
Geiermeier gut fand :)

Sach ja, Liste aufstellen wird schwierig. Nach Genren vielleicht.

Sidekicks - ich find Oliver Korritke (zB Bang Boom Bang) ja Bruce Dern (zB
Silent Running) ja unglaublich aehnlich.


-----------------------------------------------------------------------------



Re^11: dvd's (Moppi, 18. Feb 2006, 18:39:27):
~#! rn=Gloinson rt=1140262787 rg=kultur
~#! tid=1140194911
August Diehl ist super. Obwohl er so einen quark wie Tatoo mitgemacht hat.
Er spielt nicht umsonst am Wiener Burgtheater.

Moppi ist amuesiert wieder mal in Opposition zu Gloinson zu sein ;-)

-----------------------------------------------------------------------------



Re^12: dvd's (Bran, 18. Feb 2006, 21:32:23):
~#! rn=Moppi rt=1140284367 rg=kultur
~#! tid=1140194911
Mir fehlt noch Gruendgens in der Sammlung.

-----------------------------------------------------------------------------



Re^12: dvd's (Gloinson, 19. Feb 2006, 02:10:20):
~#! rn=Moppi rt=1140284367 rg=kultur
~#! tid=1140194911
Ja, am Wiener Burgtheater spielten auch juengst mal die Toten Hosen. Ich werd
sie trotzdem nicht kulturell heldenverehren. Viel Spass mit der Opposition.


-----------------------------------------------------------------------------



und weiter gehts (Moppi, 19. Feb 2006, 22:10:53):
neuer DVD Tip

Dear Frankie bzw. lieber Frankie

Es geht um eine alleinerziehende Mutter die ein gehoerloses Kind hat. Der
Vater ist angeblich auf See und der Sohn (Frankie) schreibt ihm regelmaessig
Briefe. Die liest aber nicht etwa der Vater, sondern die Mutter und
beantwortet sie auch wieder. Bis eines Tages die Nachricht kommt, das das
Schiff vom Vater im Hafen liegt. Die Mutter engagiert nun einen Mann der die
Rolle des Vaters uebernehmen soll. Aber es kommt natuerlich wieder alles
anders ...

Schoene eindrucksvolle Bilder sowie glaubwuerdige, brilliante Schauspieler
machen das Film zu einem Meisterwerk. Am Ende Taschentuecher bereithalten.
10 von 10 Punkten

Mopperl

P.S. Um nicht immer nur rumzunoelen habe ich mir auch mal wieder Leo
angeschaut. Catch me if you can. Der Bursche ist besser als sonst, aber
keinesfalls ueberragend.

-----------------------------------------------------------------------------



Re: und weiter gehts (Bran, 19. Feb 2006, 22:14:55):
~#! rn=Moppi rt=1140383453 rg=kultur
~#! tid=1140383453

Schau einfach mal Gilbert Grape. Wurde ja nun schon mehrfach empfohlen, ich
schliesse mich bedingungslos an.

-----------------------------------------------------------------------------



Re: Re: und weiter gehts (Maharet, 19. Feb 2006, 22:19:32):
~#! rn=Bran rt=1140383695 rg=kultur
~#! tid=1140383453
Das aendert aber nichts daran, dass er ein Jungengesicht hat und von der
Presse und den Teenage-Girls als gutaussehend eingeordnet wird.  Und mir
scheint, fuer manche ist das ausreichend, um ihn als schlechten Schauspieler
einzuordnen.  Wer so aussieht, kann kein guter Schauspieler sein, der kann nur
wegen seines Aussehens so erfolgreich sein.  Oder so aehnlich ;)

-----------------------------------------------------------------------------



Re^3: und weiter gehts (Bran, 19. Feb 2006, 22:21:28):
~#! rn=Maharet rt=1140383972 rg=kultur
~#! tid=1140383453
ant
Das habe ich nach einem kurzen tm-Wechsel gerade eben wieder einsehen muessen
:) Aendert nichts dran, dass DiCaprio was kann. Und zwar ne Menge, ich halte
ihn fuer begnadet. Manchmal schade um seine Drehbuchauswahl, auf der er
sicherlich mittlerweile auch durchaus Einfluss hat.

-----------------------------------------------------------------------------



Re^3: und weiter gehts (Moppi, 19. Feb 2006, 22:21:46):
~#! rn=Maharet rt=1140383972 rg=kultur
~#! tid=1140383453
och Mahaschatzi, Jake Gyllenhaal sieht auch gut aus, aber hat was auf dem
Kasten. So eoinfach ist das.
Und ja mein vorgestellter Film um den gings mir eher, aber das ist nun mal
nicht aus Hollywood, sorry.
                                                   r
Mopperl

-----------------------------------------------------------------------------



Re^4: und weiter gehts (Bran, 19. Feb 2006, 22:22:36):
~#! rn=Bran rt=1140384088 rg=kultur
~#! tid=1140383453
'auf der' -> 'auf die'

-----------------------------------------------------------------------------



Re^4: und weiter gehts (Bran, 19. Feb 2006, 22:23:18):
~#! rn=Moppi rt=1140384106 rg=kultur
~#! tid=1140383453
Und das sagst du, nachdem du eben zugestanden hast, Gilbert Grape nie gesehen
zu haben? Nu denn.

-----------------------------------------------------------------------------



Re^5: und weiter gehts (Humni, 19. Feb 2006, 22:40:51):
~#! rn=Bran rt=1140384198 rg=kultur
~#! tid=1140383453
Ich vermute des Weiteren, dass Leonardo Di Caprio ein Kuenstlername ist. Ist
aber nur eine Vermutung, verifizieren werde ich das nicht.

Kuenstlernamen sagen etwas aus. Bud Spencer ist ein Haudrauf, um nur ein
Beispiel zu nennen. Finde, der Name passt zu einem Haudrauf.

Ich finde, der Name "Leonardo DiCaprio" sagt in etwa das aus, was ich auf
Titanic-Plakaten gesehen habe.

Das reicht mir, ihn in eine Ecke zu stellen, die er vielleicht nicht verdient
hat. Ich meine dennoch, dass er sich selbst reingestellt hat. Musste er ja
nicht tun.

Humni
PS: Antwort in megaschmarrn-Trad. auf den letzten Artikel.

-----------------------------------------------------------------------------



Re^5: und weiter gehts (Bran, 19. Feb 2006, 22:41:35):
~#! rn=Bran rt=1140384198 rg=kultur
~#! tid=1140383453
Was ist ueberhaupt mit den Englaendern? Auf den ersten Gedanken fallen mir da
ein: Olivier, Day-Lewis, Fiennes, Branagh, Simon Russell Beale, Gielgud... hm,
werden doch gerade zu viele :)

-----------------------------------------------------------------------------



Re^6: und weiter gehts (Bran, 19. Feb 2006, 22:43:03):
~#! rn=Humni rt=1140385251 rg=kultur
~#! tid=1140383453

Es geht doch gerade drum, ob Dicaprio was kann. Nicht wie er sich vermarktet.
Also schaut Gilbert Grape und urteilt dann :)

-----------------------------------------------------------------------------



Re^7: und weiter gehts (Humni, 19. Feb 2006, 22:43:35):
~#! rn=Bran rt=1140385383 rg=kultur
~#! tid=1140383453
Nein. Aus genannten Gruenden. Verdammt. Ich will doch mal konsequent bleiben.

Bei englischen Schauspielern denke ich an Cleese, Idle, Gilliam, Jones,
Chapman... ;-)

Humni

-----------------------------------------------------------------------------



Re^8: und weiter gehts (Bran, 19. Feb 2006, 22:44:09):
~#! rn=Humni rt=1140385415 rg=kultur
~#! tid=1140383453
antworte
Ach ja, die vergass ich gerade, die ganz grossen :)

-----------------------------------------------------------------------------



Re^8: und weiter gehts (Montanus, 19. Feb 2006, 22:46:13):
~#! rn=Humni rt=1140385415 rg=kultur
~#! tid=1140383453
Du bist nicht konsequent und wirst es auch nie werden. Macht doch nix.
Und wieso imemr das Gerede von Schauspielern? Ich fidne Schauspielerinnen VIEL
interessanter. ;-)
Sean Penn finde ich uebrigens absolut ueberbewertet. Da habe ich lieber einen
Schauspieler wie Keanu Reeves, der zwar nur 2 Gesichtsausdruecke hat, das aber
ueberzeugend rueberbringt, als einen alten verfetteten Pruegelprinzen, der nix
mehr aussser Dackelblick kann.

-----------------------------------------------------------------------------



Re^9: und weiter gehts (Bran, 19. Feb 2006, 22:47:17):
~#! rn=Montanus rt=1140385573 rg=kultur
~#! tid=1140383453
ant
Da faellt mir gerade passenderweise noch Maggie Smith ein.

-----------------------------------------------------------------------------



Re^9: und weiter gehts (Grimmborn, 19. Feb 2006, 22:47:35):
~#! rn=Montanus rt=1140385573 rg=kultur
~#! tid=1140383453
Du irrst. Keanu Reeves hat nur einen Gesichtsausdruck.

GdA

-----------------------------------------------------------------------------



Re^10: und weiter gehts (Humni, 19. Feb 2006, 22:48:03):
~#! rn=Grimmborn rt=1140385655 rg=kultur
~#! tid=1140383453
Mir faellt bei Monthy Python gerade ein, dass ich da der Definition "Super
Schauspieler, wenn er die Rolle IST und nicht nur SPIELT" nicht so zutrifft.
Ich finde, das sind tolle Schauspieler, dennoch habe ich irgendwie nie das
Gefuehl gehabt, dass da der reale Artus rumlaeuft... ok, es laeuft der Artus
rum, der rumlaufen soll... von daher passts doch wieder...

Humni

-----------------------------------------------------------------------------



Re^11: und weiter gehts (Montanus, 19. Feb 2006, 22:52:27):
~#! rn=Humni rt=1140385683 rg=kultur
~#! tid=1140383453
Auch wenn ich einen OBdUuBdW ungern wiederlegen will, aber in "The
Replacements" ist Reeves sogar kurz vor einem dritten Gesichtsausdruck.
Und zum Thema sueese Schauspielerinnen:
Shannon Sossamyn, Keira Knightley, Susan Sarandon, Heidi Bruehl, Margarete
Haagen, Molly Ringwald, und natuerlich Maxine Bahns.

-----------------------------------------------------------------------------



Re^11: und weiter gehts (Moppi, 19. Feb 2006, 22:52:49):
~#! rn=Humni rt=1140385683 rg=kultur
~#! tid=1140383453
ich weiss noch einen Englaender und auch einen lustigen : Petter Sellers 

Mopperl

-----------------------------------------------------------------------------



Re^12: und weiter gehts (Montanus, 19. Feb 2006, 22:53:47):
~#! rn=Moppi rt=1140385969 rg=kultur
~#! tid=1140383453
Schaender.

-----------------------------------------------------------------------------



Re^9: und weiter gehts (Bran, 19. Feb 2006, 23:08:36):
~#! rn=Montanus rt=1140385573 rg=kultur
~#! tid=1140383453
Diana Rigg nicht zu vergessen.

-----------------------------------------------------------------------------



Re^10: und weiter gehts (Ronda, 19. Feb 2006, 23:11:14):
~#! rn=Bran rt=1140386916 rg=kultur
~#! tid=1140383453
DANKE. Diana Rigg rettet fuer mich den Thread!

Ronda *schmunzelnd "The Avengers" schauend - ja, die ganze Box mit allen
Folgen, in denen Diana Rigg mitgespielt hat...*

-----------------------------------------------------------------------------



Re^9: und weiter gehts (Bran, 19. Feb 2006, 23:11:26):
~#! rn=Montanus rt=1140385573 rg=kultur
~#! tid=1140383453
Oder Judy Dench.

-----------------------------------------------------------------------------



Re^10: und weiter gehts (Ronda, 19. Feb 2006, 23:12:34):
~#! rn=Bran rt=1140387086 rg=kultur
~#! tid=1140383453
Aehm. Ich such grad nach "Gilbert Grape" auf DVD - sagt mit bitte nicht, dass
die billigste DVD, die man davon bekommen kann, 29,99 kostet?!

Ronda

-----------------------------------------------------------------------------



Re^11: und weiter gehts (Moppi, 19. Feb 2006, 23:13:16):
~#! rn=Ronda rt=1140387154 rg=kultur
~#! tid=1140383453
warum kaufen, ausleihen geht auch
mopperl

-----------------------------------------------------------------------------



Re^12: und weiter gehts (Humni, 19. Feb 2006, 23:14:04):
~#! rn=Moppi rt=1140387196 rg=kultur
~#! tid=1140383453
Wobei ich jetzt einfach mal Mira Furlan und natuerlich Claudia Christian
einwerfen mus. Geht nicht anders.

Humni

-----------------------------------------------------------------------------



Re^12: und weiter gehts (Ronda, 19. Feb 2006, 23:14:06):
~#! rn=Moppi rt=1140387196 rg=kultur
~#! tid=1140383453
Ich bin so doof, ich kaufe DVD immer noch. Genauso wie ich CD kaufe. Wobei ich
mich manchmal doch frage, wie doof das ist...

Ronda

-----------------------------------------------------------------------------



Re^13: und weiter gehts (Humni, 19. Feb 2006, 23:14:56):
~#! rn=Ronda rt=1140387246 rg=kultur
~#! tid=1140383453
Du kannst in Videotheken DVDs auch ganz legal ausleihen.

Humni
PS: Die heissen heute oft Mediatheken, da es ja kaum noch echte Videos gibt.
Prinzip aber gleich.

-----------------------------------------------------------------------------



Re^13: und weiter gehts (Bran, 19. Feb 2006, 23:14:57):
~#! rn=Humni rt=1140387244 rg=kultur
~#! tid=1140383453
ant
Judi, nicht Judy. Falls jemand tatsaechlich danach suchen sollte.

-----------------------------------------------------------------------------



Re^5: und weiter gehts (Muadib, 20. Feb 2006, 11:23:42):
~#! rn=Bran rt=1140384198 rg=kultur
~#! tid=1140383453
ich hab gilbert grape  gesehen und fand ihn nicht sooo prickelnd

-----------------------------------------------------------------------------



Re^6: und weiter gehts (Bran, 20. Feb 2006, 11:25:10):
~#! rn=Muadib rt=1140431022 rg=kultur
~#! tid=1140383453
Es ging nicht um den Film als solchen, sondern um die schauspielerische
Leistung von Leonardo Dings.

-----------------------------------------------------------------------------



Re^7: und weiter gehts (Muadib, 20. Feb 2006, 11:26:32):
~#! rn=Bran rt=1140431110 rg=kultur
~#! tid=1140383453
nunja
die fand ich auch nicht so toll

-----------------------------------------------------------------------------



Re^8: und weiter gehts (Highlander, 20. Feb 2006, 12:19:01):
~#! rn=Muadib rt=1140431192 rg=kultur
~#! tid=1140383453
@Humni - 'Ivanova ist God.'? :)

HrT

-----------------------------------------------------------------------------



Re: dvd's (Anthea, 20. Feb 2006, 12:20:31):
~#! rn=Moppi rt=1140194911 rg=kultur
~#! tid=1140194911
Hm... irgendwie huepfen hier ganz viele wildgewordene ' durch die Gegend, und
das an Stellen, an denen sie nichts zu suchen haben. Und das auch noch in
Kultur. Sachen gibts. Nur um mein Liebligsrechtschreibgelaester mal wieder
loszuwerden.

-----------------------------------------------------------------------------



Re: Re: dvd's (Rumata, 20. Feb 2006, 12:21:51):
~#! rn=Anthea rt=1140434431 rg=kultur
~#! tid=1140194911
Du darfst das Apostroph ruhig beim Namen nennen :-)
Rum**

-----------------------------------------------------------------------------



Re^3: dvd's (Anthea, 20. Feb 2006, 12:22:49):
~#! rn=Rumata rt=1140434511 rg=kultur
~#! tid=1140194911
Naja, aber ob auch jeder weiss, was ein Apostroph ist, da es ja seltenst
richtig verwendet wird?

-----------------------------------------------------------------------------



Re^4: dvd's (Bran, 20. Feb 2006, 12:26:35):
~#! rn=Anthea rt=1140434569 rg=kultur
~#! tid=1140194911
antworte
Eigentlich muesste es ja heissen '... viele wildgewordene 's...', bzw., fuer
die '-Uebertreiber: '...''s...' - oder heisst es ''e'? Ach, macht doch, was
ihr wollt :)

-----------------------------------------------------------------------------



Re^5: dvd's (Zook, 20. Feb 2006, 14:48:04):
~#! rn=Bran rt=1140434795 rg=kultur
~#! tid=1140194911
bietet doch nun wieder den einstieg fuer die konsequenz-kleinschreiber
in eine ... worum ging es da noch? leerzeichen an der verkehrten stelle?
diskussion einzusteigen.

deutsch-bevormunder vor!

zook.

-----------------------------------------------------------------------------



Re^6: dvd's (Bran, 20. Feb 2006, 14:49:40):
~#! rn=Zook rt=1140443284 rg=kultur
~#! tid=1140194911

genau !

-----------------------------------------------------------------------------



Re^7: dvd's (Humni, 20. Feb 2006, 16:01:58):
~#! rn=Bran rt=1140443380 rg=kultur
~#! tid=1140194911
@HrT: Natuerlich meine ich "Ivanova is God" - woher kennt man Claudia
Christian auch sonst ;-)

Humni

-----------------------------------------------------------------------------



Re^9: und weiter gehts (Gnome, 20. Feb 2006, 16:41:30):
~#! rn=Montanus rt=1140385573 rg=kultur
~#! tid=1140383453
dackelblick hin oder her. sean penn in "u-turn" ist super, man leidet mit
ihm foermlich mit (kennt "u-turn" eigentlich jemand? ein wirklich guter
film, gehoert zu meinen top20. man kann dort einige schauspieler in
hoechstform sehen. billi-bob thornton, jennifer lopez (ja, jlo), nick
nolte (mal anders) und der schon erwaehnte joaquin phoenix, der einen
herrlichen cholerischen eifersuechtigen spielt... nein, fast IST. ich
weiss nicht, warum ich diesen film so mag... vielleicht wg. der schau-
spielerauswahl, vielleicht wg. der wirklich genialen kamerafuehrung...
wer weiss...).

und sean penn in "the game" oder "colors"... super. einfach klasse!

gnOme

p.s. "gilbert grape" muss sich keiner kaufen. naechstes WE gibts den
     im TV.

-----------------------------------------------------------------------------



Re^6: dvd's (Muadib, 20. Feb 2006, 17:21:48):
~#! rn=Zook rt=1140443284 rg=kultur
~#! tid=1140194911
zook, du schreibst klein
kleinschreiber

-----------------------------------------------------------------------------



Re^7: dvd's (Zarniya, 23. Feb 2006, 05:28:26):
~#! rn=Muadib rt=1140452508 rg=kultur
~#! tid=1140194911
hmmm ich hab mich durch den Thread gekaempft und bin ueber mich selbst
erschrocken, denn bei mir wuerden bei den Schauspielern ziemlich weit oben die
Namen Harrison Ford, Sean Connery und Mel Gibson stehen.... hab ich nun keine
Ahnung von Kultur oder setzt ihr Kultur alle mit interlektuellen
Geschwafelfilm gleich? Wobei... auch Robin Williams hab ich hier noch nicht
gelesen... das sind fuer mich alles Namen, da kann man nen DiCaprio oder nen
Joaquin "Cash war ein Saeufer, wieso nicht auch ich" Phoenix in die Tonne
treten....

Marc

-----------------------------------------------------------------------------



Re^8: dvd's (Humni, 23. Feb 2006, 09:28:29):
~#! rn=Zarniya rt=1140668906 rg=kultur
~#! tid=1140194911
Danke. Die Namen stehen auch bei mir weit oben. Puh, ich dachte schon, ich sei
der einzige ;-)

Humni, hat sich gestern noch "Payback" gekauft ;-)

-----------------------------------------------------------------------------



Re^9: dvd's (Moppi, 23. Feb 2006, 10:34:23):
~#! rn=Humni rt=1140683309 rg=kultur
~#! tid=1140194911
Kauf gleich "Fletchers Visionen" hinterher. Selbst Julia Roberts ist da mal
halbwegs zu ertragen. (Au nicht schon wieder hauen.)

Mopperl

-----------------------------------------------------------------------------



Re^10: dvd's (Grimmborn, 23. Feb 2006, 11:40:19):
~#! rn=Moppi rt=1140687263 rg=kultur
~#! tid=1140194911
Bei Schauspielerinnen darf natuerlich auch Monica Bellucci nicht fehlen.
Soweit es um Schauspielkunst geht hat die Frau einfach grossartige Titten.

GdA

-----------------------------------------------------------------------------



Re^11: dvd's (Knurps, 23. Feb 2006, 15:36:54):
~#! rn=Grimmborn rt=1140691219 rg=kultur
~#! tid=1140194911
Gibt's eigentlich auch gute Filme mit ihr? Ich hab Irreversible und Matrix III
gesehen, wo sie mitspielt. Irreversible ist ein grossartiger Auftakt fuer jede
Diaet, da vergeht einem ziemlich sicher jeglicher Appetit. Und Matrix III,
ohne Worte...

-----------------------------------------------------------------------------



Re^12: dvd's (Grimmborn, 23. Feb 2006, 16:41:16):
~#! rn=Knurps rt=1140705414 rg=kultur
~#! tid=1140194911
Klar, jeden Film wo sie mitspielt. Darfst Dir halt nicht die Szenen ohne sie
anschauen, dann biste selber schuld...

GdA

-----------------------------------------------------------------------------



TV-Tips (Gnome, 26. Feb 2006, 16:57:14):
heute abend wird es schwer. aber das sind wir von den sendern ja nicht
anders gewohnt: wochenlang nur schrott im TV und dann gleich zwei oder
gar drei gute filme auf einmal.

der reihe nach:

- fuer alle leo-kritiker ;) sei heute abend K1 empfohlen:
  in "gilbert grape - irgendwo in iowa" spielt er die bisher beste
  rolle seines schauspielerlebens.

- wer den film kennt bzw. sowieso schon weiss, dass leo ein grossartiger
  schauspieler sein _kann_, und heute abend vielleicht mehr auf fernost
  von vor 2000 jahren steht, sei "hero" auf pro7 ans herz gelegt.
  ueberwaeltigende bilder und eine packende story mit jet li in der
  hauptrolle sind seine argumente

- "8 mile" - mit eminem himself in der hauptrolle - handelt von einem
  weissen rapper, der es in der schwarzen rapperszene chicagos sehr
  schwer hat, zu zeigen, dass auch weisse rappen koennen. keine geniale
  schauspielerische leistung aber insgesamt recht authentisch gemacht;
  wer "boyz n the hood" mochte, wird auch hier auf seine kosten kommen.
  sender ist rtl.

alle filme starten um 20:15.

gnOme

-----------------------------------------------------------------------------



Re: TV-Tips (Darklor, 26. Feb 2006, 16:59:56):
~#! rn=Gnome rt=1140969434 rg=kultur
~#! tid=1140969434
Unter "must see" stell ich mir was anderes vor...

Darklor

-----------------------------------------------------------------------------



Re: Re: TV-Tips (Gnome, 26. Feb 2006, 17:16:29):
~#! rn=Darklor rt=1140969596 rg=kultur
~#! tid=1140969434
es sind tips. nicht mehr und nicht weniger.

-----------------------------------------------------------------------------



Re^3: TV-Tips (Merkosh, 26. Feb 2006, 17:32:20):
~#! rn=Gnome rt=1140970589 rg=kultur
~#! tid=1140969434
Hero wuerde ich aber wirklich ebenso einschaetzen, die Bilder sind einfach
grandios. Mit der Story hat man als Westler evtl. Probleme - ist halt nicht
08/15-Hollywood.

Humni
(Mit Zweitie postend)

-----------------------------------------------------------------------------



Re^4: TV-Tips (Gloinson, 26. Feb 2006, 18:46:51):
~#! rn=Merkosh rt=1140971540 rg=kultur
~#! tid=1140969434
Ui, Ebene TV in Kultur verlegt. Dann also: "City of God" auf arte, 22:25
http://www.imdb.com/title/tt0317248/


-----------------------------------------------------------------------------



Zitat ... (Vanion, 26. Feb 2006, 19:41:22):
Hi, beim Surfen in der Wikipedia habe ich ein Zitat zum Chasm City
(http://tinyurl.com/rty6y) gefunden:

"Chasm City is a thick book which was designed to be thick. It is a book which
is full of onions. In the end, it's a joy."

Mein erster Gedanke war, das Zitat zu uebersetzen und hinter das Originalzitat
zu schreiben. Mein zweiter war: Verdammt.

Ich kann dieses Zitat nicht angemessen uebersetzen, ich verstehe es so
halbwegs, stolpere aber darueber, dass er ziemlich gut interpretierbar ist.

Hat jemand mit besseren Englisch-Kenntnissen vielleicht einen Vorschlag?

V*

-----------------------------------------------------------------------------



Re: Zitat ... (Zook, 26. Feb 2006, 22:40:59):
~#! rn=Vanion rt=1140979282 rg=kultur
~#! tid=1140979282
Habe die Rubrik erweitert. Zook.

-----------------------------------------------------------------------------



Re: Zitat ... (Zarniya, 27. Feb 2006, 10:13:18):
~#! rn=Vanion rt=1140979282 rg=kultur
~#! tid=1140979282
Das erinnert mich an den Film Shrek: Oger sind wie zwiebeln :)


-----------------------------------------------------------------------------



Re^5: TV-Tips (Moppi, 27. Feb 2006, 19:31:12):
~#! rn=Gloinson rt=1140976011 rg=kultur
~#! tid=1140969434
City of God wollte ich erst neulich empfehlen.
Zwar finde ich den Film etwas ueberbewertet, aber man kann ihn sich anschauen.
Es geht um (Kinder-)Bandenkriege in den Slums von Rio. Faszinierend die Bilder
aber auch die schonungslose Darstellung der Gewalt. Ich war selber ueberrascht
das der Film gerade deswegen Faszination ausueben koennte.

Mopperl

-----------------------------------------------------------------------------



Re^6: TV-Tips (Gloinson, 27. Feb 2006, 20:20:27):
~#! rn=Moppi rt=1141065072 rg=kultur
~#! tid=1140969434
Die Darstellung hat deshalb ihren Reiz, weil es von Anfang an so lakonisch
erzaehlt wird. Schonungslos wuerde ich nicht behaupten, jeder
Metzelschnitzfilm zeigt beim Sterben mehr Details. Aber hier gehoert es gleich
ganz natuerlich zur Geschichte, dass gewaltsam gestorben wird.


-----------------------------------------------------------------------------



semesterakte 06/07 (Gnome,  2. Mar 2006, 00:35:18):
hi,

unsere spowis haben sich fuer einen guten zweck ausgezogen. die ergebnisse
kann man in der "semesterakte 06/07" bewundern.

weitere infos und bestellungen unter www.taseo.de

gnOme

-----------------------------------------------------------------------------



Re: semesterakte 06/07 (Boing,  2. Mar 2006, 09:35:11):
~#! rn=Gnome rt=1141256118 rg=kultur
~#! tid=1141256118
Was sind spowis?
  Boing

-----------------------------------------------------------------------------



Re: Re: semesterakte 06/07 (Vector,  2. Mar 2006, 09:36:21):
~#! rn=Boing rt=1141288511 rg=kultur
~#! tid=1141256118
SPOrtWIssenschaftler? 
falls das stimmt: was sind sportwissenschaftler?

-----------------------------------------------------------------------------



Re^3: semesterakte 06/07 (Boing,  2. Mar 2006, 09:37:11):
~#! rn=Vector rt=1141288581 rg=kultur
~#! tid=1141256118
Vielleicht Leute die beim Stammtisch die Aufstellung der Nationalmannschaft
besprechen?
  Boing

-----------------------------------------------------------------------------



Re^4: semesterakte 06/07 (Zook,  2. Mar 2006, 12:56:00):
~#! rn=Boing rt=1141288631 rg=kultur
~#! tid=1141256118
und welches ist nun das bild, auf dem gnome abgebildet ist? ;)

zook.

-----------------------------------------------------------------------------



Re^3: semesterakte 06/07 (Gnome,  2. Mar 2006, 14:48:40):
~#! rn=Vector rt=1141288581 rg=kultur
~#! tid=1141256118
puh, die frage kommt so ueberraschend, dass ich zunaechst mal gar nicht
weiss, was ich darauf antworten sollte. ich versuchs trotzdem...

die lange version: sportwissenschaftler sind diejenigen, die viel
kenntnis von sporttheorie (biomechanik, motorik, trainingswissenschaft,
medizin, sportpsychologie, ...) haben (sollten), ausreichend kenntnisse
ueber die wichtigsten sportarten (fussball, handball, basketball,
schwimmen, leichtathletik, turnen) besitzen (sollten), um dann in
ihrem spaeteren beruf (trainer, dozent, vereinschef, personal trainer, ...)
idealerweise theorie und praxis vereinen, um so in ihrem handlungsumfeld
sportliche leistungssteigerung zu ermoeglichen.

die kurze: die, die aus jeder sportart etwas, aber dafuer keine richtig
koennen ;)

gnOme

-----------------------------------------------------------------------------



Re^4: semesterakte 06/07 (Ark,  2. Mar 2006, 14:49:50):
~#! rn=Gnome rt=1141307320 rg=kultur
~#! tid=1141256118
Also Multi-Klassen-Charaktere :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^4: semesterakte 06/07 (Zook,  2. Mar 2006, 14:51:01):
~#! rn=Gnome rt=1141307320 rg=kultur
~#! tid=1141256118
ha! sporttheore. also. wie war das mit dem wurfstern und dem braten?
zook
..

-----------------------------------------------------------------------------



Re^5: semesterakte 06/07 (Gnome,  2. Mar 2006, 14:52:12):
~#! rn=Ark rt=1141307390 rg=kultur
~#! tid=1141256118
ja.
ich bezeichne das sportstudium als echtes und einziges studium generale.
kann ich nur jedem als erststudium empfehlen. zumindest jedem, dessen
gesundheitszustand es zulaesst.

gnOme

-----------------------------------------------------------------------------



Re^6: semesterakte 06/07 (Zook,  2. Mar 2006, 14:53:25):
~#! rn=Gnome rt=1141307532 rg=kultur
~#! tid=1141256118
wieso soll sportwissenschaft ein "studium generale" sein? 

zook.

-----------------------------------------------------------------------------



Re^7: semesterakte 06/07 (Gnome,  2. Mar 2006, 14:54:29):
~#! rn=Zook rt=1141307605 rg=kultur
~#! tid=1141256118
wenn du unsere pflichtfaecher sehen wuerdest... :)

-----------------------------------------------------------------------------



Re^8: semesterakte 06/07 (Zook,  2. Mar 2006, 14:55:51):
~#! rn=Gnome rt=1141307669 rg=kultur
~#! tid=1141256118
ja, zeig mal. 

zook.

ps: wissenschaftstheorie war wohl nicht dabei, sonst haettest du dich 
ja gleich an den grundsatz "wer behauptet, muss begruenden" gehalten. ;)

-----------------------------------------------------------------------------



Re^9: semesterakte 06/07 (Montanus,  2. Mar 2006, 14:59:07):
~#! rn=Zook rt=1141307751 rg=kultur
~#! tid=1141256118
Ich hatte Sport ja nur als Nebenfach, aber das reichte schon aus, um einen
guten Einblick zu bekommen. Die THese mit dm Studium generale trifft
einigermassen. Sportwissenschaft ist ein Satellit vieler
Substanzwissenschaften.

-----------------------------------------------------------------------------



Re^9: semesterakte 06/07 (Gnome,  2. Mar 2006, 15:09:17):
~#! rn=Zook rt=1141307751 rg=kultur
~#! tid=1141256118
theorie: biomechanik, sportmotorik, trainingswissenschaft, sportmedizin,
         erste hilfe, sportgeschichte, paedagogik, psychologie, soziologie,
         leistungssport, sport bei reha, methodik, anatomie, statistik,
         didaktik, sportmanagement

praxis: fussball, handball, basketball, volleyball, schwimmen, LA, turnen,
        gymnastik & tanz,
        hinzu kommen als WPK (auswahl): badminton, krafttraining, baseball,
        aikido, eiskunstlauf, tischtennis, tauchen, frisbee, skisport,
        beachvolleyball, ...

die theorie ist mit jedem fach sowohl im grund-, als auch im hauptstudium
mit teils unterschiedlicher gewichtung (je nach studienschwerpunkt)
vertreten.
von den pflichtsportarten gibt es je grundkurse und schwerpunktfaecher.

gnOme

-----------------------------------------------------------------------------



Re^10: semesterakte 06/07 (Humni,  2. Mar 2006, 15:10:27):
~#! rn=Gnome rt=1141308557 rg=kultur
~#! tid=1141256118
Cool, LA ist Praxis. ;-) endlich sagt mal jemand die Wahrheit!

Humni mag Vektorraeume und lineare Abbildungen.

-----------------------------------------------------------------------------



Re^11: semesterakte 06/07 (Montanus,  2. Mar 2006, 15:11:15):
~#! rn=Humni rt=1141308627 rg=kultur
~#! tid=1141256118
Humni, du verwechselst das mit Geographie.

-----------------------------------------------------------------------------



Re^11: semesterakte 06/07 (Croft,  2. Mar 2006, 15:14:41):
~#! rn=Humni rt=1141308627 rg=kultur
~#! tid=1141256118
Hoer mir mit LA auf.  Bin froh dass ich das los bin.  Gerade so durch
die muendliche Pruefung gekommen.

Croft

-----------------------------------------------------------------------------



Re^12: semesterakte 06/07 (Boing,  2. Mar 2006, 15:15:26):
~#! rn=Croft rt=1141308881 rg=kultur
~#! tid=1141256118
Die muendliche Pruefung konnte ich vermeiden, hab LA im zweiten Anlauf
schriftlich geschafft.
  Boing

-----------------------------------------------------------------------------



Re^13: semesterakte 06/07 (Montanus,  2. Mar 2006, 15:18:20):
~#! rn=Boing rt=1141308926 rg=kultur
~#! tid=1141256118
Also ich finde LA ja viel interessanter als zB SF, und man istauch schneller
in SD von dort aus.

-----------------------------------------------------------------------------



Re^14: semesterakte 06/07 (Muadib,  2. Mar 2006, 19:24:33):
~#! rn=Montanus rt=1141309100 rg=kultur
~#! tid=1141256118
und was ist an der liste ein studium generale?

-----------------------------------------------------------------------------



Re^15: semesterakte 06/07 (Zook,  3. Mar 2006, 14:51:30):
~#! rn=Muadib rt=1141323873 rg=kultur
~#! tid=1141256118
hab ich mich auch gefragt.

-----------------------------------------------------------------------------



Re^16: semesterakte 06/07 (Gnome,  3. Mar 2006, 15:34:32):
~#! rn=Zook rt=1141393890 rg=kultur
~#! tid=1141256118
naja, das kommt ganz darauf an, was man unter dem studium generale
versteht. ich verstehe darunter ein moeglichst breitgefaechertes
studienabgebot, welches das sekundaere ziel der allgemeinbildung
hat. wie sonst koennte man das fach soziologie im studiengang sport
erklaeren?

wenn man unter studium generale nur die klassische definition versteht,
also das erlernen von allgemeinbildung ohne erwerb eines akademischen
grades, dann ist es das nicht so ganz.

gnOme

-----------------------------------------------------------------------------



Re^17: semesterakte 06/07 (Zook,  3. Mar 2006, 15:35:44):
~#! rn=Gnome rt=1141396472 rg=kultur
~#! tid=1141256118
und warum sind die sportwissenschaften die einzigen, die ein solches
"breitgefaechertes studienangebot" anbieten?

zook.

-----------------------------------------------------------------------------



Re^18: semesterakte 06/07 (Gnome,  3. Mar 2006, 15:37:18):
~#! rn=Zook rt=1141396544 rg=kultur
~#! tid=1141256118
nenne mir eins, was breitgefaecherter ist. ausser dem klassischem
studium generale natuerlich.

gnOme

-----------------------------------------------------------------------------



Re^19: semesterakte 06/07 (Zook,  3. Mar 2006, 15:38:16):
~#! rn=Gnome rt=1141396638 rg=kultur
~#! tid=1141256118
halt. du hast behauptet, es sei das einzige, also musst du begruenden, dass
das so ist. a la "ich behaupte was und zeig du mir das gegenteil" ist nicht
so richtig redlich.

was anderes: ist ein solches studium denn ueberhaupt wuenschenswert?

zook.

-----------------------------------------------------------------------------



Re^20: semesterakte 06/07 (Grimmborn,  3. Mar 2006, 15:49:37):
~#! rn=Zook rt=1141396696 rg=kultur
~#! tid=1141256118
Mal abgesehen davon dass ich, wenn Du "Allgemeinbildung" anfuehrst, auf einer
Definition derselben bestehe, ist z.B. ein Chemiestudium ziemlich allgemein
und breit angelegt: Es gibt sowohl qualitative anorganische Analyse,
quantitative anorganische Analyse, Roentgenkristallanalyse, Organische Chemie,
Elektrochemie, Quantenchemie, Thermodynamik, Reaktionskinetik, Physik,
Mathematik, als auch diverse Spezialisierungsfaecher. Irgendwie ist Chemie ein
echtes studium generale. Und wuenschenswert, lieber Zook, weil die
Chemieindustrie allgemein erheblich zu unserem BIP beitraegt. 

GdA

-----------------------------------------------------------------------------



Re^20: semesterakte 06/07 (Gnome,  3. Mar 2006, 15:50:01):
~#! rn=Zook rt=1141396696 rg=kultur
~#! tid=1141256118
nun, sagen wir mal so: ich kenne keins, was breitgefaecherter ist. um das
zu beweisen, muesste ich jeden studiengang in deutschland auf seine
quantitaet hin ueberpruefen. ich glaube, das spare ich mir und lasse
diese behauptung als gueltig stehen, solange niemand das gegenteil
beweist. :)

und ja: es ist wuenschenswert. zumindest als erststudium. man bekommt
wirklich ganz gute einblicke in viele bereiche. als zweitstudium dann
halt das, was man eigentlich dann studieren wollte. da sind wir dann
aber wieder beim grundeinkommen angekommen. aber das ist wieder ein
gaaaanz anderes thema. ;)

gnOme

-----------------------------------------------------------------------------



Re^21: semesterakte 06/07 (Whitetiger,  3. Mar 2006, 15:56:49):
~#! rn=Gnome rt=1141397401 rg=kultur
~#! tid=1141256118
Wenn man weiss, was man eigentlich studieren will, warum dann erst so viele
Jahre mit Sportwissenschaft ausfuellen?

-----------------------------------------------------------------------------



Re^21: semesterakte 06/07 (Zook,  3. Mar 2006, 15:59:59):
~#! rn=Gnome rt=1141397401 rg=kultur
~#! tid=1141256118
wir halten etwas anderes fest: du behauptest die einzigartigkeit
einer sache und der einzige beleg ist "ich kenne keins, was 
breitgefaecherter ist". was das ueber die methodik deiner argumentation
aussagt, mag sich jeder selbst denken. ich halte die aussage aufgrund
des vorgetragenen fuer nicht "gueltig".

ist es wuenschenswert?

universitaet als hort der allgemeinbildung? ich glaube, ich habe bei
von humboldt nicht so richtig aufgepasst.

es hat schon einen sinn, warum die vermittlung von allgemeinwissen
im traditionellen studium generale ohne erwerb eines akademischen
grades einhergeht: man dilettiert, und das auf ziemlich vielen 
gebieten. 

zook.

-----------------------------------------------------------------------------



Re^22: semesterakte 06/07 (Gnome,  3. Mar 2006, 16:00:15):
~#! rn=Whitetiger rt=1141397809 rg=kultur
~#! tid=1141256118
hast du den thread eigentlich verfolgt?
oder bist du erst beim letzten artikel in zeile 10 eingestiegen?

gnOme

-----------------------------------------------------------------------------



Re^23: semesterakte 06/07 (Whitetiger,  3. Mar 2006, 16:04:41):
~#! rn=Gnome rt=1141398015 rg=kultur
~#! tid=1141256118
Ersteres.
Dafuer habe ich im Augenblick gerade noch genug Zeit.

Zu Chemie sei noch angemerkt, dass zumindest die Vorlesung zu Allgemeiner &
Anorganischer Chemie, die ich besuchen durfte, reichlich Voodoo enthielt.


-----------------------------------------------------------------------------



Re^24: semesterakte 06/07 (Grimmborn,  3. Mar 2006, 16:10:05):
~#! rn=Whitetiger rt=1141398281 rg=kultur
~#! tid=1141256118
Mein lieber junger Freund, "Voodoo" heisst in der Chemie gemeinhin "Alchemie".
Und das, was an ebensolcher in Anfaenger- und Fremdfaechlervorlesungen
vorkommt, wird i.a. dann im weiteren Gang dieses ueberaus breitgefaecherten
Studiums aufgeklaert und entmystifiziert. Was der Allgemeinbildung des
Generalsstudenten ungemein foerderlich ist.

GdA

-----------------------------------------------------------------------------



Re^21: semesterakte 06/07 (Ark,  3. Mar 2006, 16:19:54):
~#! rn=Gnome rt=1141397401 rg=kultur
~#! tid=1141256118
Das klingt so, als waere ein breitgefaechertes Studium so toll. Ich behaupte
mal (und warte auch auf Gegenbeweis :-)), dass mein Studium
(Wirtschaftsingenieur Elektrotechnik) auch so eines ist.
Betriebswirtschaftslehre (von Marketing, Buchhaltung, Logistik, etc. bis hin
zu Produktionsmanagement und dem geschaetzten Human Resources Management),
Volkswirtschaftslehre (Mikro-/Makrooekonomie, Wirtschaftspolitik und
Aussenhandelslehre), Recht
(Steuer-/Wirtschafts-/Privat-/Handels-/Aussenhandelsrecht, etc.) und den
ganzen Elektrotechnischen Vertiefungsrichtungen, die ich nicht auch noch
aufzaehlen mag, gibt sich alles ein buntes Stelldichein.
Und was hat's gebracht? 20% Wissen hat so etwa ueberlebt, nicht, weil ich ein
Turnbeutelverlierer bin (glaub ich), sondern weil man auch hier mal mehr,
meist aber weniger im Beruf braucht.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^22: semesterakte 06/07 (Ark,  3. Mar 2006, 16:21:20):
~#! rn=Ark rt=1141399194 rg=kultur
~#! tid=1141256118
Achso, ich vergass ... einen Ueberblick hab ich wirklich erhalten :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^23: semesterakte 06/07 (Zook,  3. Mar 2006, 16:26:06):
~#! rn=Ark rt=1141399280 rg=kultur
~#! tid=1141256118
ich glaube, mit dem hinweis "da sind wir dann aber wieder beim 
grundeinkommen angekommen" deutet sich schon an, dass es gnome
nicht um berufsspezifisches wissen geht. zook.

-----------------------------------------------------------------------------



Re^23: semesterakte 06/07 (Cassandra,  3. Mar 2006, 16:29:04):
~#! rn=Ark rt=1141399280 rg=kultur
~#! tid=1141256118
Reply auf den letzten Artikel

Ich hab zwar von Spowi keine Ahnung und das waer mir auch zu anstrengend.
Aber ich bezweifel das es das eizige studium generale ist.

Mir hat die kombination in der Powi auch gereicht,
Powi (mitsammt seiner vertiefungen in deutscher politik, internationaler
politik, theorien etc), sozi, geschichte, Philosophie, Jura, VWL.

Statistik natuerlich auch, aber ansonsten fehlen ugegebenermaen die
Naturwissenschaften.

und wemms nicht reicht macht halt nen magister und kombiniert noch mit nem
anderen netten Fach.

Was den sinn eines Generalstudiums angeht, das ist zwar erstmal nett und gut
fuer die allgemeinbildung, mag auch die moeglichkeiten bei der Jobsuche
erweitern, doch geht es meistens zu lasten der Tiefe und ich gebe Ark rech das
meiste braucht man spaeter nicht mehr und vergisst es auch wieder.

Cassy, 

P.S. grossbuchstaben duerfen behalten werden
.#

-----------------------------------------------------------------------------



Re^24: semesterakte 06/07 (Maharet,  3. Mar 2006, 16:48:15):
~#! rn=Cassandra rt=1141399744 rg=kultur
~#! tid=1141256118
Ich weiss jetzt allerdings immer noch nicht, was Sportwissenschaft ist.  Eine
Zusammenfassung der Basics von vielen anderen Wissenschaften? Oder gibt es
noch eine Sportwissenschaft an sich? Ich meine, sowas wie
"Sportwissenschaft-Vorlesungen"?

-----------------------------------------------------------------------------



Re^25: semesterakte 06/07 (Zook,  3. Mar 2006, 16:49:31):
~#! rn=Maharet rt=1141400895 rg=kultur
~#! tid=1141256118
Sag bloss, nach Montanus "Satelitt vieler Substanzwissenschaften" sind
Dir noch Fragen offen geblieben. 

Zook.

-----------------------------------------------------------------------------



Re^26: semesterakte 06/07 (Maharet,  3. Mar 2006, 16:50:17):
~#! rn=Zook rt=1141400971 rg=kultur
~#! tid=1141256118
Das hatte ich auch nicht verstanden, aber ich verstehe Mpntanus so oft nicht,
dass ich da nicht mehr nachfrage.

-----------------------------------------------------------------------------



Re^21: semesterakte 06/07 (Muadib,  3. Mar 2006, 18:53:06):
~#! rn=Gnome rt=1141397401 rg=kultur
~#! tid=1141256118
naja
ein erststudium sollte als ziel doch einen qualifizierten abschluss haben
die eignung als orientierungsplatz fuer ein zweitstudium ist doch wirklich
eher minder wichtig

-----------------------------------------------------------------------------



Re^22: semesterakte 06/07 (Gnome,  3. Mar 2006, 20:58:30):
~#! rn=Zook rt=1141397999 rg=kultur
~#! tid=1141256118
so. man "dilettiert" also so vor sich hin. diese aeusserst kuehne
behauptung haette ich dann doch mal gerne bewiesen gehabt.

gnOme

-----------------------------------------------------------------------------



Re^23: semesterakte 06/07 (Gloinson,  3. Mar 2006, 21:05:28):
~#! rn=Gnome rt=1141415910 rg=kultur
~#! tid=1141256118
Ergibt sich zwangslaeufig aus deiner These, dass SpoWi keine Vertiefung hat
und bei allem nur mal ein Semester an der Oberflaeche kratzt.

Ist SpoWi nun die Kombination aus den genannten Fachrichtungen, vertieft also
mittels der Kombination zu mehreren sinnvollen (konkret anwendbaren
wissenschaftliche oder wirtschaftlichen) Profilen oder ist SpoWi wirklich nur
"studium generale", also eine Art Hobbystudium in Sachen Allgemeinbildung.
(Letzteres betreibe ich auch allzu gern, erwaehne aber hoechstens einige
zweckdienliche Teile in meinen Bewerbungen.)


-----------------------------------------------------------------------------



Re^22: semesterakte 06/07 (Knurps,  3. Mar 2006, 21:38:32):
~#! rn=Zook rt=1141397999 rg=kultur
~#! tid=1141256118
Zook, deine Methodik, die These in Frage zu stellen, wirkt auch ein wenig
unbeholfen. Ich empfehle Schopenshauer eristische Dialektik, das ist wirklich
erhellend und hilft einem auch im Alltag. Ist auch unter dem Titel "Die Kunst,
Recht zu behalten" erschienen, gibt's regelmaessig fuer 1-2 EUR bei Ebay...


-----------------------------------------------------------------------------



Re^23: semesterakte 06/07 (Kessa,  3. Mar 2006, 21:49:36):
~#! rn=Knurps rt=1141418312 rg=kultur
~#! tid=1141256118
(Auch einfach auf den letzten Artikel geantwortet)

Gnome - mal abgesehen davon, inwieweit das Sportstudium solche Anforderungen
erfuellt: nach meinem Verstaendnis sollte ein studium generale in kurzer Zeit
Ueberblick und Orientierung verschaffen. Danach entscheidet man, was man denn
studieren will, und das sollte dann schon spezialisiert sein. Ein Studium, das
den Charakter eines studium generale beibehaelt, ist m.E. doch eher eine
fragwuerdige Angelegenheit...

-----------------------------------------------------------------------------



Re^23: semesterakte 06/07 (Zook,  3. Mar 2006, 22:08:16):
~#! rn=Gnome rt=1141415910 rg=kultur
~#! tid=1141256118
findest du das kuehn? 

siehe beispielsweise: Schreiter, Carsten (1994), Evolution und
Wettbewerb von Organisationsstrukturen, Vandenhoeck & Ruprecht,
Goettingen, Kapitel IV.

Da geht es um Arbeitsteilung, Wissensteilung und Koordination der
Wissensnutzung. Man kann auch dann die dort angegebene Literatur
einsehen. Besonders hervorzuheben ist

von Hayek, Friedrich August von, Der Wettbewerb als Entdeckungs-
verfahren, in den Freiburger Studien, Tuebingen, 1969.

oder auch

von Hayek, Friedrich August, Wirtschaftstheorie und Wissen, in 
Individualismus und wirtschaftliche Ordnung, Zuerich, 1952.


Ganz allgemein schlaegt eben auch beim Wissen und der Wissensnutzung
die von Adam Smith gemacht Entdeckung von Arbeitsteilung und
Spezialisierung zu. Vgl. dazu beispielsweise

Smith, Adam, An Inquiry into the Nature and Causes of the 
Wealth of Nations, London, Chapter I bis III, 1790. 


Im uebrigen sind "Beweise" bei den Sozialwissenschaften so eine Sache,
zumindest, wenn es sich um Aussagen um die echte Welt dreht. 

Zook.

-----------------------------------------------------------------------------



Re^24: semesterakte 06/07 (Ark,  3. Mar 2006, 22:26:43):
~#! rn=Zook rt=1141420096 rg=kultur
~#! tid=1141256118
Ihr seid mir alle zu unheimlich. Wer hat uebrigens schon Syriana gesehen? Ich
will da Dienstag rein.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^23: semesterakte 06/07 (Zook,  7. Mar 2006, 12:39:39):
~#! rn=Knurps rt=1141418312 rg=kultur
~#! tid=1141256118
Ich empfehle im Gegenzug den sehr lesenswerten Beitrag von 

I.J. Good (1962), A Classification of Fallacious Arguments and 
Interpretations, Technometrics, Vol. 4, No. 1, February, pp. 125-132.

(zuerst abgedruckt in Methods, No. 42, Vol. XI, 1959)

Bezogen auf Gnomes "Behauptung" wuerde ich mal aus der 
Klassifikation prompt die Nummer 321.33 (Generalizing from too few
special cases) in die Runde werfen. 

Zook.

-----------------------------------------------------------------------------



Re^24: semesterakte 06/07 (Knurps,  7. Mar 2006, 13:41:27):
~#! rn=Zook rt=1141731579 rg=kultur
~#! tid=1141256118
Insofern eine Bereicherung, als dass sich der Artikel mit dem Wahrheitsgehalt
beschaeftigt, der bei der eristischen Dialektik voellig irrelevant ist. Ich
hab den
Text als PDF gefunden, hier der Link, fuer die, die es interessiert:
http://www.amstat.org/misc/FallaciousArguments.pdf


Zu 321.33 Generalzing from too few special cases: Wuerde das 'too' nicht
vorkommen, waere es eine eine Induktion, die ebenso legitim wie gaengig sein
kann. Das 'too' ist sehr leicht dahergesagt, aber vielleicht sind es ja
ausreichend viele Spezialfaelle?

Aber induziert Gnome wirklich?

--- Gehen wir die Sache mal eristisch an. ---

Obersatz: Es gibt kein Studium, das ein breitgefaecherter ist, als die
Sportwissenschaften.

Untersatz: Das Studium Generale ist ein moeglichst breitgeaechertes
Studienangebot, welches das sekundaere Ziel der Allgemeinbildung hat.

Schluss: "das sportstudium als echtes und einzges Studium generale."



Gemaess Schopenhauer, gibt es zwei Modi und zwei Wege, eine These (Schluss) zu
widerlegen.
Modi:
a) ad rem
        Zur Sache, der objektiven Wahrheit der Dinge
b) ad hominem
        Zu subjektiven Wahrheiten oder Einraeumungen des Gegners

Wege:
a) direkte Widerlegung
b) indirekte Widerlegung

Direkte Widerlegung geht die Gruende an (XXX ist nicht wahr), die indirekte
die Folgen (YYY kann nicht wahr sein).

Bei der direkten Wiederlegung greift man meist die Gruende an. (nego majorem,
nego minorem, ich bestreite den Obersatz, den Untersatz) oder man gibt die
Gruende zu,
 bestreitet aber die Schlussfolgerung (nego consequentiam), also die
Konsequenz, die Form des Schlusses.

Bei der indirekten Widerlegung nimmt man entweder die Apagoge oder die
Instanz.
a) Bei der Apagoge nehmen wir den Satz als wahr an, zeigen aber, dass etwas
als wahr anerkanntes mit dem Satz von Gnome auf etwas schliessen laesst (die
Saetze sind
 dann Praemissen), das offenbar falsch ist, weil es gegen die Natur der Dinge
(ad rem) verstoesst, oder einer Behauptung Gnomes (Ad Hominem) wiederspricht.
(Erklaer
ung: Aus wahren Praemissen koennen nur wahre Saetze folgen, aus falschen nicht
immer wahre)

b) Oder man nimmt die Instanz (exemplum in contrarium, Gegenbeispiel). Das
direkte Nachweisen, dass es Faelle gibt, die unter der Aussage begriffen sind,
von denen
er jedoch nicht gilt. Wenn ein einziger Fall existiert, ist der Satz falsch.

Gnome hat dich aufgefordert, seine These mittels einer Instanz zum Obersatz zu
widerlegen ("nenne mir eins, was breitgefaecherter ist"). Das ist raffiniert
und dial
ektisch legitim, denn Zook blieb schuldig, ein solches Beispiel zu liefern.

Man muss diese Aufforderung jedoch (um Recht vor der Masse zu behalten)
parieren, indem man einen Ausfall wagt, und es beispielsweise als muessig
erklaert, ueber irgendwelche Faecherung von Faechern zu reden, wenn Gnomes
Verstaendnis des Studium Generale falsch ist. Man greift nicht den Teil an,
den man angreifen soll, sondern den, der am schwaechsten aussieht.

Selbst wenn der Obersatz und Untersatz stimmen, ist es immer noch ein
leichtes, die Konsequenz anzugreifen. Ein "Du argumentierst falsch", mag zwar
stimmen, hilft bei der Diskussion nicht weiter und hilft einem nicht, "Punkte"
gegen den Gegner zu sammeln.

------

Das von Dir genannte Dokument beschaeftigt sich mit Probabilitaeten und Logik,
was die andere herangehensweise ist. Du kannst aber noch so recht haben, und
trotzdem sehr leicht eine Diskussion verlieren, auch wenn dein Gegenueber
keine Ahnung von der Materie hat. Wer die Diskussion gewinnt, entscheidet das
Publikum und nicht die Wahrheit.


Knurps

-----------------------------------------------------------------------------



Re^25: semesterakte 06/07 (Darklor,  7. Mar 2006, 13:55:09):
~#! rn=Knurps rt=1141735287 rg=kultur
~#! tid=1141256118
Zook hat verloren... ;)

Darklor

-----------------------------------------------------------------------------



Re^25: semesterakte 06/07 (Zook,  7. Mar 2006, 14:26:11):
~#! rn=Knurps rt=1141735287 rg=kultur
~#! tid=1141256118
1. Die Beispiele lieferte doch das Publikum, insofern hat das Publikum
doch schon entschieden, wie gut es die Behauptung fand.

2. Ich lege es nicht darauf an, irgendetwas "zu gewinnen". Da mag 
allerdings jeder andere Praeferenzen haben.

Zook.

-----------------------------------------------------------------------------



Re^22: semesterakte 06/07 (Seleven, 18. Mar 2006, 19:53:24):
~#! rn=Ark rt=1141399194 rg=kultur
~#! tid=1141256118
Antwort nicht auf Arks Artikel.
Ich studiere Dolmetschen, es gibt kaum nichtsprachliche Pflichtfaecher
(Geschichte, Kultur und zwei Ergaenzungsfaecher). Trotzdem muessen wir uns auf
jeden (noch virtuellen) Einsatz neu vorbereiten und uns in verschiedenste
Themata einarbeiten - nie so weit in die Materie dass wir in der Lage waeren
ein Medikament auf den Markt zu werfen, oder den Bundeshalshalt zu sanieren,
aber doch so viel, dass wir verstehen, was der Redner da unten erzaehlt. Zook
hat in der Behauptung "man dilettiert, und das auf ziemlich vielen 
gebieten." schon ziemlich recht. Das bezieht sich auf mein Studium - ob die
SpoWis oder Chemiker tiefer in die Materie einsteigen muessen, kann nicht
nicht beurteilen, nehms aber mal an.
Quantitativ wuerd ich behaupten muss ich in mehr Fachgebiete reinschnuppern.
Studium generale wuerde ich das aber nicht nennen :)

S11 benebelnd.

-----------------------------------------------------------------------------



Re^23: semesterakte 06/07 (Lug, 20. Mar 2006, 16:02:48):
~#! rn=Seleven rt=1142708004 rg=kultur
~#! tid=1141256118
Wenn wir schon bei Empfehlungen sind:

Ich rate Euch hiermit zu:

FUCK YOU ALL!!! von Carpathian Forest

Das offenkundig fehlende Bildungsbindeglied, wenn ich diese Diskussion so
lese...

Teuflisch
Lug

-----------------------------------------------------------------------------



buchtipp (Alboin, 18. Apr 2006, 21:32:38):
Ab und zu passiert es in der Kantini[23e des Opernhauses, das eine(r) eine
Kiste mit aussortierten Buechern hinstellt und Mann/Frau dadurch nette Buecher
umsonst bekommt.
Das letzte Mal kam ich reichlich spaet dran (es waren nur noch zwei Buecher
uebrig) dafuer erwischte ich doch ein gutes Buch: Louis Sachar "Holes" Es ist
zwar ein Kinder/Jugendbuch, aber ein spannendes mit ueberraschenden Wendungen.
Dazu ist es sehr einfach geschrieben so das jeder der etwas Englisch kann, es
ruhig original lesen sollte.
Worum gehts: Ein junger Bursche wird unschuldig in ein Jugendstraflager
eingewiesen, wo er nichts anderes zu tun hat, als Loecher in einen
ausgetrockneten See zu buddeln. Und das alles um seinen Charakter zu bessern.
Er kommt aber schnell dahinter das das nicht der Grund fuer die Buddelei ist.
Parallel dazu gibt es Handlungsstraenge aus der Vergangnheit der Familie des
Protagonisten und der Vergangenheit des ausgetrockneten Sees, die den Kreis am
Ende wieder schliessen lassen. Ich fand lediglich das Ende etwas zu gut
geraten. Ansonsten: super Buch, 9 von 10 Punkten.

Alboin

-----------------------------------------------------------------------------



Re: buchtipp (Daria, 18. Apr 2006, 21:33:34):
~#! rn=Alboin rt=1145388758 rg=kultur
~#! tid=1145388758
Das ganze gibt es m.E. auch als Film, Titel war auch "holes", deutschen Titel
weiss ich nicht.
Daria

-----------------------------------------------------------------------------



Neues Fantasybuch (Zarniya, 19. Apr 2006, 11:02:52):
Hiho, 

ich will an dieser Stelle mal ein wenig Werbung fuer ein neues Fantasybuch
machen, was seit einer Woche auf dem Markt ist. Ich weiss, dass hier viele
Fantasy lesen und hoffe, dass ich den ein oder anderen zu einem Experiment
ueberreden kann, sich das Buch einfach zu bestellen. Es heisst "Die
Weltenwandlerin" und ist geschrieben von Tanja Kummer, einer neuen Autorin,
die nicht nur gut schreiben kann, sehr lieb ist, gut kocht (ich muss das hier
sagen, bin schliesslich verlobt mit ihr), sondern die sich mit dem Buch einen
Traum erfuellt hat, naemlich endlich eine ihrer Geschichten als Buch in der
Hand haben zu koennen. 

Zu sehr soll es hier gar nicht ins Detail gehen... das die ganze Sache kein
Fake ist, das kann der ein oder andere alte  Spieler wie Grimmborn oder
Tangalur bestaetigen, die beide Tanja auch schon kennengelernt haben. Wer
weitere Infos zu dem Buch haben will, der schaue einfach mal unter
www.tanjakummer.de rein... Gaestebucheintraege sind erwuenscht, Emails auch.
Wer das Buch direkt ueber Tanja bestellt, der bekommt natuerlich ohne Aufpreis
eine personalisierte Signatur hinzu... ihr koennt Euch auch aussuchen, ob mit
Real oder Mudnamen... waere nur nett, wenn ihr in Eurer Email darauf hinweisen
wuerdet, dass ihr MG-Spieler seid. 

Klaro kann man das Buch auch direkt bei Kalidor-Verlag in Berlin oder bei
Amazon.de bestellen, dann fehlt aber die Signatur... sollte man sich nicht
entgehen lassen bei einem Erstlingswerk und der ersten Auflage, denn wer
weiss, in 10 Jahren ist Tanja ganz gross und dann habt ihr eine echte Raritaet
und koennt beweisen, dass ihr Fan der ersten Stunde seid.

Also ran ans Werk... er ist nicht zu teuer (12,90) und auch nicht zu dick (gut
400 Seiten), als dass es abschreckend waere.... ich zaehl auf euren Mut, mal
etwas Neues zu testen... 

Gruss, 

Marc

-----------------------------------------------------------------------------



Re: Neues Fantasybuch (Mesirii, 19. Apr 2006, 12:02:29):
~#! rn=Zarniya rt=1145437372 rg=kultur
~#! tid=1145437372
Wo bleibt denn die Rezension von Grimmborn oder Tangalur? Damit sich nicht nur
auf das Lob des Verlobten verlassen muss :)

Mesi, interessiert

-----------------------------------------------------------------------------



Re: Re: Neues Fantasybuch (Darklor, 19. Apr 2006, 12:12:54):
~#! rn=Mesirii rt=1145440949 rg=kultur
~#! tid=1145437372
Und wann wird es was passendes zum Buch im Mud geben? (Gebiet, Quest oder so?)

Darklor

-----------------------------------------------------------------------------



Re: Re: Neues Fantasybuch (Mesirii, 19. Apr 2006, 13:11:56):
~#! rn=Mesirii rt=1145440949 rg=kultur
~#! tid=1145437372
Ausserdem waere es schoen, wenn die Leseproben online waeren?

Mesi, Lesezwer
g

-----------------------------------------------------------------------------



Re^3: Neues Fantasybuch (Daria, 19. Apr 2006, 13:28:41):
~#! rn=Mesirii rt=1145445116 rg=kultur
~#! tid=1145437372
Mir ist eben aufgefallen, dass Amazon es zwar in der Liste hat, man das Buch
aber nicht bestellen kann.
Daria

-----------------------------------------------------------------------------



Re^4: Neues Fantasybuch (Grimmborn, 19. Apr 2006, 13:29:11):
~#! rn=Daria rt=1145446121 rg=kultur
~#! tid=1145437372
Tja, die sind halt nicht ganz so schnell - offenbar ist es ja erst vorgestern
rausgekommen. 

GdA

-----------------------------------------------------------------------------



Re^5: Neues Fantasybuch (Zarniya, 19. Apr 2006, 21:59:35):
~#! rn=Grimmborn rt=1145446151 rg=kultur
~#! tid=1145437372
genau... das Teil ist erst seit einer Woche aus der Druckerei.

>Amazon hat eigentlich schon die Daten wie Cover, Preis und Lieferzeit, aber
die haben auch |ber Ostern Urlaub gemacht und deswegen brauchen die was zum
Einbau der Details. Mal abgesehen davon, wenn Du |ber Amazon bestellst, dann
ist es definitiv nicht signiert. 

Rezensionen von Grimmborn kann es erst geben, wenn er es auch gelesen hat... 

Achja... Leseprobe ist schon fertig, wird bald als PDF online sein... ich
denke in 1-2 Tagen... liegt beim Verlag.

Marc

-----------------------------------------------------------------------------



Re^6: Neues Fantasybuch (Grimmborn, 19. Apr 2006, 22:01:05):
~#! rn=Zarniya rt=1145476775 rg=kultur
~#! tid=1145437372
Jepp, ich warte nur noch auf ein Freiexemplar...

GdA

-----------------------------------------------------------------------------



Re^7: Neues Fantasybuch (Ark, 19. Apr 2006, 23:04:22):
~#! rn=Grimmborn rt=1145476865 rg=kultur
~#! tid=1145437372
Mit der Einstellung war es dann auch schon das letzte veroeffentlichte Buch
:-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^8: Neues Fantasybuch (Zarniya, 20. Apr 2006, 00:13:24):
~#! rn=Ark rt=1145480662 rg=kultur
~#! tid=1145437372
Hiho, 

inzwischen gibt es bei www.tanjakummer.de eine Leseprobe
anzuschauen/runterzuladen, wenn ihr bei "Werke" klickt und dann den Link unter
dem Cover nehmt. 

Marc

-----------------------------------------------------------------------------



Nochmal "Die Weltenwandlerin" (Zarniya, 23. Mai 2006, 19:41:27):
Hiho, 

einige wollten doch eine offizielle und unabhaengige Rezension des Buches
lesen... das geht unter

http://www.phantastik-news.de/modules.php?name=Reviews&rop=showcontent&id=892

Wer will, kann das Buch dann auch als Debut des Jahres nominieren.... wie das
geht, steht auf der Hauptseite der PhantasikNews... 

Uebrigens haben aus dem MG das Buch bestellt und ich hoffe, es ist immer gut
angekommen und hat gefallen.

Gruss, 
Marc

-----------------------------------------------------------------------------



Berlin + Rembrandt (Gloinson,  4. Aug 2006, 10:03:10):
http://www.spiegel.de/kultur/gesellschaft/0,1518,430005,00.html


-----------------------------------------------------------------------------



Piraten der Karibik II (Gloinson, 23. Aug 2006, 01:34:20):
Zu viel. Zu viel. Man verlaesst den Film nicht mit dem Gefuehl amuesiert
worden zu sein sondern beinahe zu Tode amuesiert worde zu sein. Eine Idee, ein
Spass reicht nicht, es muessen mindestens immer zwei zuschlagen. 

Also so ein bisschen erinnert mich der Film in Handlungsfuelle und Ende an
Matrix II: zuviel, immer mehr offene Faeden, selbst die Musik erdrueckt,
waaaah! Das Zuviel endete sogar darin, dass Martina waehrend einer allzu
actionreichen Handlung (auch den Rum dazu) einschlief. Das Gute ist: wir haben
soviel bezahlt wie er wert war - 3 Euro pP.


-----------------------------------------------------------------------------



Re: Piraten der Karibik II (Gnome, 23. Aug 2006, 16:09:15):
~#! rn=Gloinson rt=1156289660 rg=kultur
~#! tid=1156289660
der film ist einfach klasse. wer bei DER action einschlaeft, schlaeft
wahrscheinlich auch beim fussball-WM-endspiel ein.

es sind viele offene faeden da, keine frage. aber da johnny wohl schon
hat anklingen lassen, dass er sich vorstellen koennen, auch in teil
IV - VI spielen zu koennen, sind es dafuer nicht viele offene faeden.
jedenfalls nicht mehr als es in star wars gewesen sind.

gnOme

-----------------------------------------------------------------------------



Re: Re: Piraten der Karibik II (Zook, 23. Aug 2006, 16:13:35):
~#! rn=Gnome rt=1156342155 rg=kultur
~#! tid=1156289660
also ein vergleich mit star wars fuehrt doch wohl dazu, dass ich mir den
film nicht angucke ;) zook.

-----------------------------------------------------------------------------



Re^3: Piraten der Karibik II (Rumata, 23. Aug 2006, 16:23:03):
~#! rn=Zook rt=1156342415 rg=kultur
~#! tid=1156289660
Ja, und bei Fussball WM Endspielen einzuschlafen ist wohl kein Problem.
Rum**

-----------------------------------------------------------------------------



Re^4: Piraten der Karibik II (Boing, 23. Aug 2006, 16:33:20):
~#! rn=Rumata rt=1156342983 rg=kultur
~#! tid=1156289660
Zumindest beim letzten Fusball WM Endspiel war ich auch nah dran 
auszuschalten. Wobei ich Fluch der Karibik 2 richtig klasse fand.
Gute Unterhaltung, wer einen Film mit Tiefgang erwartet ist natuerlich
falsch.
  Boing

-----------------------------------------------------------------------------



Re^5: Piraten der Karibik II (Croft, 23. Aug 2006, 16:33:44):
~#! rn=Boing rt=1156343600 rg=kultur
~#! tid=1156289660
Es werden keine Schiffe versenkt?  Schade.

Croft

-----------------------------------------------------------------------------



Re^6: Piraten der Karibik II (Boing, 23. Aug 2006, 16:38:52):
~#! rn=Croft rt=1156343624 rg=kultur
~#! tid=1156289660
Ich habe beim Schreiben noch ueberlegt ob ich das mit dem Tiefgang
noch weiter erlaeutern muss, habe mich dann aber leider dagegen
entschieden.
  Boing

-----------------------------------------------------------------------------



Re^7: Piraten der Karibik II (Bambi, 27. Aug 2006, 14:03:11):
~#! rn=Boing rt=1156343932 rg=kultur
~#! tid=1156289660
Macht nix. Ich weiss noch, wie gewisse (Ex-)Karlsruher reagieren, wenn ich
ihnen erklaere, was ich an einigen Filmen gut finde.

-----------------------------------------------------------------------------



Metzeln statt Questen an deutschen Schulen (Kessa, 29. Sep 2006, 14:15:50):
Eine deutliche Stellungnahme diesbezueglich ist der Nacherzaehlung zu
entnehmen, die mein Sohn heute stolz von der Schule zurueckbrachte:

Es war einmal ein Prinz, der wollte auf gar keinen Fall eine verzauberte
Prinzessin erloesen. Er bekam zwar jeden Tag Briefe von Prinzessinnen,doch er
merkte sich nur,woher die Briefe kamen, und machte sich dann ein Kreuzchen auf
seiner Weltkarte. Doch irgendwann machte er eine Reise, wie es jeder Prinz
tut. Er suchte sich eine Route aus, die an kein Kreuzchen zu nahe herankam,
denn er dachte, dass er nicht klug genug sei, um ein Raetsel zu loesen.

Es wurde eine Zickzackfahrt, die der Prinz geplant hatte. Er ging zwar zu
keiner Prinzessin, dafuer aber in jede Schlacht. Am besten war er in der
Panzerabwehr. Er hatte immer ein paar Panzerfaeuste dabei, die er in einer
Tragetasche aufbewahrte. Jede Panzerfaust, die er warf, traf. Dadurch wurde er
beruehmt. Die Kirgisen baten ihn, ihnen zu helfen. Der Prinz kam und die
Kirgisen erzaehlten ihm, dass sie mit den Burjaeten Krieg fuehrten und die
Panzer der Burjaeten ihr Volk immer ueberfielen. Am gefaehrlichsten aber sei
ihr Leitpanzer mit einem silbernen Streifen. Der Prinz freute sich darueber.
Er wartet mit Soldaten an der Grenzstaette.

Nach einiger Zeit rollten die Panzer der Feinde an, gefuehrt von dem Panzer
mit dem silbernen Streifen. Nun feuerten die Soldaten mit ihren Kanonen aus
allen Rohren. Der Prinz warf eine extra Panzerfaust mit silbernem Streifen auf
den Leitpanzer. Die Faust traf, doch die Verwunderung war gross, als eine
schoene Prinzessin mit einem silbernen Stirnband dort stand. Sie rannte auf
den Prinz zu, umarmte ihn und erzaehlte, dass sie sieben Jahre lang in einen
Panzer verwandelt war. Der Prinz war zwar veraergert, weil er ja keine
Prinzessin erloesen wollte, aber er heiratete sie trotzdem und war gluecklich
mit ihr. Er dachte: 'Zum Glueck musste ich keins von diesen bloeden Raetseln
loesen!'
Hrhr. Kessa.

-----------------------------------------------------------------------------



Klaus Renft gestorben (Alboin,  9. Okt 2006, 16:40:03):
Ok hier als Nachruf auf den ostdeutschen Musiker, dessen Gruppe "Renft" 1975
verboten wurde hier der Text von "Rockballade vom kleinen Otto"
(IMHO ist es das Lied, fuer das sie verboten worden sind)

Rockballade vom kleinen Otto
----------------------------

Seine Kinderjahre lagen ihm im Magen wie Steine,
doch er weint nicht mehr.
Manchmal sagte Otto, Leben ist wie Lotto,
doch die Kreuze macht ein Funktionaer.
 
Als er mal ein Foto sah vom grossen Otto,
aus Hamburg an der Reeperbahn,
schrieb dem Namensvetter -
du bist mein Retter,
der mir die Freiheit kaufen kann.
 
Ob ich Norden, ob ich nach Norden,
ob ich nach Norden flieh.
 
Die Deutschen Mark, die Harten,
liessen auf sich warten.
Da ging er an die Autobahn
und fuhr ungefaehrdet bis nach Wittenberge,
dort sprang er auf `nen Elbekahn.
 
Hol mich Norden, hol mich nach Norden,
hol mich, oder ich flieh.
 
Oh, nimm mich mit, oh Kapitaen - auf die Reise,
Oh, nimm mich mit, oh Kapitaen - durch die Schleuse.
 
Nach dem Tuetenkleben wollt er nicht mehr leben,
er fuhr nach Wittenberge rauf,
und ging in die Elbe, die Stelle war dieselbe,
vielleicht taucht er in Hamburg wieder auf ...
 
Hol mich Norden, hol mich nach Norden,
hol mich, oder ich flieh ...

-----------------------------------------------------------------------------



Gedicht (Huraxprax, 14. Dez 2006, 23:41:39):
Trotz des milden Wetters mal ein Gedicht zum Winteranfang:
(ich hoffe vi hat mir alle Umlaute richtig ersetzt)

Friedrich Nietzsche: Vereinsamt

Die Kraehen schrein 
Und ziehen schwirren Flugs zur Stadt: 
Bald wird es schnein, - 
Wohl dem, der jetzt noch - Heimat hat!
Nun stehst du starr, 
Schaust rueckwaerts, ach! wie lange schon! 
Was bist du Narr 
Vor Winters in die Welt entflohn?

Die Welt - ein Tor 
Zu tausend Wuesten stumm und kalt! 
Wer das verlor, 
Was du verlorst, macht nirgends Halt.

Nun stehst du bleich, 
Zur Winter-Wanderschaft verflucht, 
Dem Rauche gleich, 
Der stets nach kaeltern Himmeln sucht.

Flieg, Vogel, schnarr 
Dein Lied im Wuestenvogel-Ton! - 
Versteck, du Narr, 
Dein blutend Herz in Eis und Hohn!

Die Kraehen schrein 
Und ziehen schwirren Flugs zur Stadt: 
Bald wird es schnein, - 
Weh dem, der keine Heimat hat!


hurax

-----------------------------------------------------------------------------



Singende Muellmaenner (Maharet,  9. Feb 2007, 18:12:16):
Eine Perle der deutschen Muellmanngesangskultur:

http://www.wdrmaus.de/lachgeschichten/muellmaennerlied

-----------------------------------------------------------------------------



Re: Singende Muellmaenner (Amaryllis,  9. Feb 2007, 18:37:23):
~#! rn=Maharet rt=1171041136 rg=kultur
~#! tid=1171041136
Realplayer? Jangmrfott...

m8@joot,
Ama*

-----------------------------------------------------------------------------



Re: Re: Singende Muellmaenner (Maharet,  9. Feb 2007, 18:40:24):
~#! rn=Amaryllis rt=1171042643 rg=kultur
~#! tid=1171041136
Ja, wir mussten auch erst nen anderen Computer dafuer starten. Also wir haben
es fuer die Lieder an sich gestartet, Rana tanzt so suess dazu.

-----------------------------------------------------------------------------



Re^3: Singende Muellmaenner (Alboin,  9. Feb 2007, 18:42:18):
~#! rn=Maharet rt=1171042824 rg=kultur
~#! tid=1171041136
isses vielleicht das hier?
http://www.youtube.com/watch?v=HM_LyFukNo8

al meidet auch realplayer, das olle spamzeuch

-----------------------------------------------------------------------------



Re^4: Singende Muellmaenner (Maharet,  9. Feb 2007, 18:46:53):
~#! rn=Alboin rt=1171042938 rg=kultur
~#! tid=1171041136
ah, ja. Prima.
Danke.

-----------------------------------------------------------------------------



semesterakte 07/08 (Gnome,  1. Mar 2007, 12:11:11):
auch dieses jahr gibt es wieder semesterakte. diesmal mit den studenten
der sporthochschule in koeln.

http://www.art-of-you.de/shop/index.php?list=KAT03

gnOme

-----------------------------------------------------------------------------



Aufsatzwettbewerb der japanischen Botschaft. (Vanion,  2. Mai 2007, 11:25:47):
Hallo Leute,

das japanische Aussenministerium veranstaltet jaehrlich einen
Aufsatzwettbewerb in verschiedenen Laendern. Die jeweiligen Sieger werden zu
einer 10taegigen Studienreise nach Japan eingeladen.

Thema des diesjaehrigen Aufsatzes:
Wie koennen sich Japan und Deutschland gemeinsam fuer den globalen
Umweltschutz einsetzen?

Einsendeschluss: 26.05.07
Teilnahmebedingungen:
Alter am 01.06.: 18-35 Jahre
Man darf noch nicht in Japan gewesen sein.
Gutes Englisch (Wichtig fuer das Programm in Japan)

Mehr Infos gibts unter:
http://www.botschaft-japan.de/austausch/wett_aufsatz.html

V*, hat da vor Jahren auch mal mitgemacht - es gab auch einen Trostpreis :)

-----------------------------------------------------------------------------



Re: Aufsatzwettbewerb der japanischen Botschaft. (Ark,  2. Mai 2007, 12:07:17):
~#! rn=Vanion rt=1178097947 rg=kultur
~#! tid=1178097947
Mist, zu alt und schon mehrfach in Japan gewesen ... ich werde diskriminiert!
Damit verliert der Umweltschutz einen gluehenden Verfechter ... aehm ...
jawohl!


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Aufsatzwettbewerb der japanischen Botschaft. (Kellybundy, 23. Mai 2007, 08:40:40):
~#! rn=Ark rt=1178100437 rg=kultur
~#! tid=1178097947
Japan und Umweltschutz. Das ist ein Oxymoron, falls es ausser mir sonst
niemandem aufgefallen sein sollte...

-----------------------------------------------------------------------------



Re^3: Aufsatzwettbewerb der japanischen Botschaft. (Vanion, 23. Mai 2007, 18:26:41):
~#! rn=Kellybundy rt=1179902440 rg=kultur
~#! tid=1178097947
Als ich das letzte mal in Osaka war, hatten die da zumindest ein
personalintensives aber gut funktionierendes Wertstoff-Rueckfuehrungssystem.

Junge (und weniger junge) aufstrebende Obdachlose rannten zu hunderten durch
die Stadt um die niedlichen kleinen Muelltueten aufzuknoepfen, alles
verwertbare herauszunehmen und die Tuetchen wieder zuzuknuepfen.

Stimmt, die Japaner koennten in Sachen Umweltschutz noch einiges von uns
lernen (und falls es jemandem entgangen sein sollte, dass jemand da von uns
lernen kann ist auch zynisch in sich.)

V*

-----------------------------------------------------------------------------



Nightwish (Lug, 24. Mai 2007, 02:45:25):
Due to a leak of the new NIGHTWISH single, "Eva", via an as-yet-undisclosed
source in the United Kingdom, Finnish symphonic metal band NIGHTWISH will
begin selling the Internet-only single "Eva" and reveal the name of the new
singer earlier than previously planned.

"Eva" will be released in Finland via NetAnttila on Friday, May 25. "Eva" will
receive a Finnish radio premiere on Radio Rock and YleX Friday morning at 7:00
a.m.

The identity of the new NIGHTWISH singer will be revealed on Thursday, May 24
at 5:00 p.m. Finnish time. First the news will appear on www.nightwish.com and
soon after Spinefarm Records will send a bulletin to all media..

-----------------------------------------------------------------------------



Re: Nightwish (Darklor, 24. Mai 2007, 02:48:05):
~#! rn=Lug rt=1179967525 rg=kultur
~#! tid=1179967525
Und gibts schon Geruechte, wer es sein koennte und wie sie klingt?

Darklor

-----------------------------------------------------------------------------



Re: Re: Nightwish (Lug, 25. Mai 2007, 22:53:22):
~#! rn=Darklor rt=1179967685 rg=kultur
~#! tid=1179967525
Nun, es ist eine Ballade. Eine sehr schoene Ballade. Es gibt definitiv
spannendere Songs auf dem naechsten Album. Aber ein guter Song ist es allemal.
Natuerlich Geschmackssache, wer auf Balladen steht (Kleriker, Frauen) wird
Extrapunkte vergeben...


-----------------------------------------------------------------------------



Re^3: Nightwish (Grimmborn, 25. Mai 2007, 22:55:01):
~#! rn=Lug rt=1180126402 rg=kultur
~#! tid=1179967525
Jetzt red nicht drumrum, poste lieber die download-URL. 

GdA

-----------------------------------------------------------------------------



Re^4: Nightwish (Lug, 25. Mai 2007, 22:56:17):
~#! rn=Grimmborn rt=1180126501 rg=kultur
~#! tid=1179967525
Geh auf die Nuclear Blast Webseite...

-----------------------------------------------------------------------------



Re^5: Nightwish (Zesstra, 25. Mai 2007, 23:25:15):
~#! rn=Lug rt=1180126577 rg=kultur
~#! tid=1179967525
Ok, habs mir gerade mal angehoert. Lug hat recht. Eine ziemlich melodische und
'geschmeidige' Ballade, der Ecken und Kanten fehlen. ;-) Je nach Geschmack
also in der Tat u.U. etwas gewoehnungsbeduerftig, wenn man es mit anderen
Nightwish-Songs vergleicht. Allerdings mag ich zwischendurch durchaus mal
solche Balladen hoeren und mich dabei zum Ausklang des Abends entspannen. Von
daher gefaellts mir, ich werds aber mit beim Hoeren mit aelteren
Nightwish-Songs mischen. ;-) Bin mal gespannt auch das naechste Album und
darauf, wie vielseitig das 'neue' Nightwish sein wird.

Zesstra

-----------------------------------------------------------------------------



Graspop (Lug, 15. Jun 2007, 21:27:42):
Moin,

allen Metallern unter uns, sei an dieser Stelle noch einmal das naechste Woche
laufende Graspop Festival in Belgien ans Herz gelegt. Nah am Ruhrgebiet und
hochkaraetiges Billing. Zu dem Preis kriegt Ihr die Bands nicht mehr auf einen
Haufen...

Staehlern
Lug

-----------------------------------------------------------------------------



Re: Graspop (Humni, 16. Jun 2007, 18:48:10):
~#! rn=Lug rt=1181935662 rg=kultur
~#! tid=1181935662
Waeh. Gerade sagt meine Geldboerse vermutlich nein dazu *snief*


Andererseits... Ich werd mal sehen ob ichs irgendwie hinkrieg...

Up the Irons!
Humni

-----------------------------------------------------------------------------



Re: Graspop (Zesstra, 17. Jun 2007, 01:37:39):
~#! rn=Lug rt=1181935662 rg=kultur
~#! tid=1181935662
Hmpf. Mift. Haette ich spontan Lust zu gehabt... nur... Ich bin in der Zeit
nicht in der Naehe. Schade. Wobei ich meine Fahrt nach Kiel in der Zeit
keinesfall bereue. ;-)

Zesstra

-----------------------------------------------------------------------------



Zitat des Tages (Alboin, 10. Sep 2007, 14:32:15):
Jo ich moechte mal wieder einen alten Brauch ins Leben rufen, der mal vor
langer langer Zeit hier ueblich war. Damals hatte unser lieber Atheist
Grimmborn sogar so viel Zeit, dass er hier taeglich den Tagesspruch seines
Kalenders abtippte. Wer also interessante Sprueche oder Anekdoten entdeckt der
moege sie doch bitte hier verewigen. OK ich schiess gleich mal los:

Leichtes Leben verdirbt die Sitten, aber die Tugendkomoedie verdirbt den
ganzen Menschen. -- Theodor Fontane

(gefunden in Maxeiner/Miersch: Das Mephistoprinzip)

-----------------------------------------------------------------------------



Einstuerzende Neubauten (Grumpf, 14. Sep 2007, 15:40:03):
Moinsen,
fuer alle die nicht nur Mainstream hoeren, am 17.10.2007 erscheint endlich ein
neues Album der Neubauten!
Das Werk wird "Alles wieder offen" heissen, Informationen und schonmal vorab
die Texte gibt es auf:
http://www.alles-wieder-offen.com/
MfG
Grumpf

-----------------------------------------------------------------------------



Terror in der Presse (Liara, 17. Sep 2007, 21:26:55):
Ich hoere ganz gerne WDR5. In den Nachrichtensendungen haben die auch
Pressestimmen. Neulich hatte ich ein Zitat gehoert, was gut zu diversen
Fbanddiskussionen zu dem Thema passt. Freundlicherweise hat mir jemand vom NDR
den Ausschnitt rausgesucht und gemailt:

"Seit dem 11. September 2001 sind zehn Mal so viele Menschen in der Badewanne
ertrunken wie durch Terror gestorben. Doch wir fuehren diesen Buergerkrieg
fort, verstaerken die Nachrichtendienste, schraenken die demokratischen Rechte
ein und ueberzeugen die Moslems davon, dass sie unser Feinde sind. Bislang
haben wir diesen inneren Krieg gegen den Terrorismus ohne Terroristen
gefuehrt. Doch das ist nur eine Frage der Zeit. Machen wir so weiter, schaffen
wir diese selbst."

Daenische Zeitung 'Politiken' am 8. September 2007

Irgendwie sprach mir das aus der Seele.
ZZL

-----------------------------------------------------------------------------



Re: Terror in der Presse (Alboin, 17. Sep 2007, 23:30:14):
~#! rn=Liara rt=1190057215 rg=kultur
~#! tid=1190057215
Ich finde das absolut nicht differenzierend:
zum ersten kann es dem Staat egal sein, ob du in der badewanne ersaeufst. Aber
nicht ob sich einer in die Luft mit anderen unschuldigen in die Luft jagt um
seinem Traum von 72 Jungfrauen naeher zu kommen.
Dann sind Muslime nicht unsere Feinde, sondern die Leute die Meinen Sharia
steht ueber dem Grundgesetz.
Ebenso Leute die meinen das Religion in die Politik gehoert. Du kannst auch
gerne mal nach muslimischen Laendern suchen in dem auch nur annaehrnd
Demokratie und Menschenrechte herrschen wie in westlichen Laendern.
Religionsfreiheit gibt es nicht mal beim EU-Beitrittskandidat Tuerkei. Aber
ich bin nach wievor der Meinung das Problem ist nicht der Islam sondern wir:
das wir unfaehig sind von unseren sogenannten Kulturbereicherern unsere Werte
einzufordern. So koennen sich zB Islamisten wie die Moslembruederschaft ihres
Asyls hier sicher sein und weiter ihre Hasspredigen verbreiten und Anschlaege
in ihren Heimatlaendern vorbereiten.
Just my 2cents
al

-----------------------------------------------------------------------------



Re: Re: Terror in der Presse (Grimmborn, 17. Sep 2007, 23:54:46):
~#! rn=Alboin rt=1190064614 rg=kultur
~#! tid=1190057215
Nimm halt statt der Badewannen Autos, da erwischts auch oft genug Unschuldige,
wenn auch Jungfrauen damit nix zu tun haben (oder ist das ein wesentlicher
Teil Deiner Argumentation?). Es geht um die Verhaeltnismaessigkeit. Wenn der
Staat mich schuetzen will, dann macht er das effektiver wenn er mit kleinem
Aufwand die grosse Bedrohung Auto aufs Korn nimmt.

Nur weil Leute meinen irgendetwas staende ueber dem Grundgesetz macht sie
das nicht zu Feinden. Das trifft auf fast die gesamte Weltbevoelkerung zu.
Oder sind fuer Dich Amerikaner deswegen Feinde, weil sie ihre krude
Verfassung ueber unser schoenes Grundgesetz stellen?

Fuer Dich sind Leute Feinde die Religion ueber Politik stellen, deren
religioese Ordnung keinen Raum fuer Demokratie laesst. Das beschreibt ziemlich
genau die Verfassung z.B. des Vatikanstaates, auch wirst Du vermutlich kaum
einen religiosen Fuehrer (Mullah, Papst, Dalai Lama, Patriarch - such Dir was
aus) finden der behauptet dass eine Staatsverfassung ueber seinem Gott steht.
Das macht sie nicht automatisch zu (Demokratie)Feinden.

Ich sehe vor allem nicht dass wir unfaehig waeren unsere Werte einzufordern.
Das geschieht taeglich und permanent. Es koennte natuerlich sein dass die
eingeforderten Werte nicht das sind was Du Dir darunter wuenschst.
So ist es z.B. ein sehr hoher Wert unserer Kultur politisch Verfolgten Asyl
zu gewaehren, ebenso wie es unser Wert ist uns nicht in die Angelegenheiten
anderer zu mischen solange sie nicht strafrechtlich relevant sind. Das mag Dir
nicht gefallen, und Dir diese Einstellung zu lassen ist auch Teil "unserer
Werte".

Der "Islamist" sagt: "Die Unglaeubigen sind alles Hunde, die muesste man in
die Luft sprengen" und Du willst ihm deswegen an den Kragen. Dass Dir so eine
Einschraenkung der Meinungsfreiheit bei anderen gefaellt ist schlimm genug,
aber gluecklicherweise nach wie vor in der Gesellschaft nicht konsensfaehig.
Und wenn aus der Meinungsaeusserung mehr wird gibts nach wie vor
Strafverfolgungsbehoerden die sich darum kuemmern. Natuerlich ist das "nur"
reaktiv, nicht vorbeugend. Anders geht es aber nicht ohne Aufgabe wichtiger
Rechtsgrundsaetze.

So sehr ich Deine Fremden- bzw. Islamfeindlichkeit verstehe (und definitiv
nicht teile): Du musst Dir schon ein wenig kohaerentere Argumentationen
einfallen lassen.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^3: Terror in der Presse (Ark, 18. Sep 2007, 00:04:28):
~#! rn=Grimmborn rt=1190066086 rg=kultur
~#! tid=1190057215
Die Drahtzieher des Terrors verwechselt ihr aber jetzt nicht mit Islamisten,
oder? Das sind imho kalte Machtpolitiker, die ihre Waffen in der Armut
islamistischer Laender (oder mittlerweile auch aus orientierungslosen Fremden)
heranzuechten. Religion als Grund fuer Kriege und Terror vorzuschieben ist ja
schon ein Stil, der sich Jahrtausende bewaehrt hat.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Terror in der Presse (Gnome, 18. Sep 2007, 00:11:39):
~#! rn=Grimmborn rt=1190066086 rg=kultur
~#! tid=1190057215
die wurzel allen uebels ist und bleibt die religion. da haue ich mit
mr. dawkins gern in eine kerbe (Richard Dawkins: "Der Gotteswahn", Ullstein).

"Religion ist irrational, fortschrittsfeindlich und zerstoerisch."
recht hat er.

gnOme

-----------------------------------------------------------------------------



Re^4: Terror in der Presse (Kessa, 18. Sep 2007, 00:16:51):
~#! rn=Gnome rt=1190067099 rg=kultur
~#! tid=1190057215
Ist das nicht nun etwas billig, die Religion an sich verantwortlich zu machen
und das noch mit nichts als derartigen Plattitueden zu unterstuetzen?
Plattitueden hoeren wir von unseren Sicherheit-ueber-Grundrechte-wuetigen
Politikern schon genug, ich denke nicht, dass es weiterbringt, auf gleichem
Niveau dagegenzu...halten. Argumentieren kann man das wirklich nicht nennen. 

-----------------------------------------------------------------------------



Re^4: Terror in der Presse (Ark, 18. Sep 2007, 00:17:27):
~#! rn=Gnome rt=1190067099 rg=kultur
~#! tid=1190057215
Oh, Religion ist keinesfalls zerstoererisch, das besorgt der Mensch immer
hoechst persoenlich. Und man sollte es sich nicht immer in seinem Weltbild
gemuetlich einrichten, seit wann ist jeder Fortschritt gut? :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^5: Terror in der Presse (Gnome, 18. Sep 2007, 00:31:02):
~#! rn=Kessa rt=1190067411 rg=kultur
~#! tid=1190057215
aus seinem vorwort:
"Man stelle sich eine Welt ohne Religion vor. Ohne Selbstmordattentter, ohne
11. September, ohne 7. Juli, ohne Kreuzzuege, ohne Hexenverfolgungen,
Gunpowder Plot, ohne Vertreibung der Indianer, ohne Nahostkonflikt, ohne
Balkan-Massaker, ohne Verfolgung von Juden als Jesusmoerder, ohne
Nordirland-Unruhen ..."

ich behaupte, dass weit ueber 90% aller konflikte und kriege auf dieser
welt aus religioesem grund geschehen bzw. gefuehrt werden. die religion
dann zu verteufel ist dann nicht billig, sondern logisch.
aber der gute mensch "braucht" ja was, an das er glauben kann, sonst
waere die welt fuer ihn leer und das leben an sich nicht sinnvoll.
und ich bin gespannt, wieviel kriege auf dieser welt noch alle im
namen allahs gefuehrt werden.
noch mehr gespannt bin ich, wieviele sinnlose milliarden von dollar und
euro in die sicherheit gesteckt wird, die doch nicht sicherer wird.
und am allermeisten gespannt bin ich, wann die menschheit an sich
zur vernunft und zur erkenntnis kommt, dass religion eine illusion ist.
aber zu diesem zeitpunkt werden wir wohl alle nicht mehr leben.

gnOme

-----------------------------------------------------------------------------



Re^6: Terror in der Presse (Kessa, 18. Sep 2007, 00:32:06):
~#! rn=Gnome rt=1190068262 rg=kultur
~#! tid=1190057215
Und du bist wirklich der Meinung, dass wenn es keine Religion gaebe, die
Betreffenden nicht erfindungsreich genug waeren, sich einen anderen Vorwand zu
suchen?

-----------------------------------------------------------------------------



Re^6: Terror in der Presse (Kessa, 18. Sep 2007, 00:34:18):
~#! rn=Gnome rt=1190068262 rg=kultur
~#! tid=1190057215
Und du bist wirklich der Meinung, dass wenn es keine Religion gaebe, die
Betreffenden nicht erfindungsreich genug waeren, sich einen anderen Vorwand zu
suchen?

Deine persoenliche Einstellung zur Religion moechte ich dir damit nicht
absprechen, die steht aber auf einem anderen Blatt.

-----------------------------------------------------------------------------



Re^7: Terror in der Presse (Ark, 18. Sep 2007, 00:35:50):
~#! rn=Kessa rt=1190068326 rg=kultur
~#! tid=1190057215
Duennes Eis ... Weltkrieg 1+2, Irakkrieg, Sowjetunion in Afghanistan, Vietnam,
Korea ... glaub mir, der Mensch braucht keine Religion, um seinen Mitmenschen
die Birne zu zermatschen, es ist nur einer von mehreren bequemen Grueneden,
die nicht immer aufs neue herangezogen werden muessen. "Vom Feeling her hab
ich da kein gutes Gefuehl." Allerdings wuerde ich so nicht argumentieren
wollen :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^7: Terror in der Presse (Gnome, 18. Sep 2007, 00:37:49):
~#! rn=Kessa rt=1190068326 rg=kultur
~#! tid=1190057215
vorwaende gibt es immer, und wenn es nur die nase ist, die dem einen
nicht an dem anderen passt. aber vielleicht haben wir dann nicht
mehr millionen von toten, sondern nur noch tausende von toten
zu beklagen.
allerdings... vom standpunkt der erde aus gesehen, sind viele kriege
vielleicht doch gar nicht so schlecht. ueberbevoelkerung als stichwort.

gnOme

-----------------------------------------------------------------------------



Re^8: Terror in der Presse (Kessa, 18. Sep 2007, 00:40:40):
~#! rn=Gnome rt=1190068669 rg=kultur
~#! tid=1190057215
Da gebe ich dir insofern recht, als es ein Problem ist, wenn Religion und
Politik sich untrennbar verwickeln. Das hat Alboin schon geschrieben, und es
kann verheerende Folgen haben, keine Frage. Dennoch ist es keine Loesung, mit
Gemeinplaetzen zu antworten, sondern gerade dann ist Differenzierung gefragt.

Kessa verweist auf Grimmborns Artikel.

-----------------------------------------------------------------------------



Re^8: Terror in der Presse (Ark, 18. Sep 2007, 00:41:30):
~#! rn=Gnome rt=1190068669 rg=kultur
~#! tid=1190057215
Hm, ich nehm das mal "satirisch"? Eben noch Religion als fortschrittsfeindlich
bezeichnet/zitiert, nun die Loesung "Krieg" hoffaehig machen anstatt
nachzudenken? Nerja ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^9: Terror in der Presse (Ark, 18. Sep 2007, 00:43:17):
~#! rn=Ark rt=1190068890 rg=kultur
~#! tid=1190057215
Selbstreply ... die "Erde" freut sich auch, wenn die Menschen auf so
innovative Ideen kommen, Oelquellen abzufackeln, da koennte die monatelang
zuschaun ... hat sie auch gemacht. <Polemik Ende> :)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^9: Terror in der Presse (Gnome, 18. Sep 2007, 00:43:43):
~#! rn=Ark rt=1190068890 rg=kultur
~#! tid=1190057215
ich schrieb: vom standpunkt der erde aus gesehen.
denn von ihrem standpunkt aus gesehen sind wir das uebel, das bakterium,
welches die erde krank macht. insofern kann es ihr nur recht und billig
sein, wenn wir uns gegenseitig umbringen. und zwar gleich massenweise.

gnOme

-----------------------------------------------------------------------------



Re^10: Terror in der Presse (Ark, 18. Sep 2007, 00:45:11):
~#! rn=Gnome rt=1190069023 rg=kultur
~#! tid=1190057215
Klingt, als muesste man sich ueber Krebs im Endstadium freuen, dass der auch
mitstirbt. Nicht so trostreich.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^6: Terror in der Presse (Crassus, 18. Sep 2007, 07:50:25):
~#! rn=Gnome rt=1190068262 rg=kultur
~#! tid=1190057215
Religion fuer den Krieg, denke den Ami interessierte im Irak eher das Oel.
Die Religion war nur der Vorwand.

Wer glaubt, das Kriege wegen der Religion gefuehrt werden und nicht aus
wirtschaftlichen erwaegungen aus.

Den selbst der II. Weltkrieg wurde nicht, wegen der Religion begonnen.
Man sollte erst ueberlegen, wem der Krieg nuetzt und dann urteilen.

Fuer das Unheil auf der Erde, ist der Mensch immer noch selbst verantwortlich.

-----------------------------------------------------------------------------



Re^11: Terror in der Presse (Rumata, 18. Sep 2007, 10:28:09):
~#! rn=Ark rt=1190069111 rg=kultur
~#! tid=1190057215
Da faellt mir ein Witz zu ein:

Treffen sich zwei Planeten.
Frage der eine: Wie geht's?
Der andere: Ach, schlecht - ich habe Menschen.
Der eine: Nimms nicht so schwer, das geht vorbei.

-----------------------------------------------------------------------------



Re^6: Terror in der Presse (Esme, 18. Sep 2007, 11:20:44):
~#! rn=Gnome rt=1190068262 rg=kultur
~#! tid=1190057215
Ich unterstelle jetzt ganz einfach Mal, dass hinter all den von Dir 
erwaehnten Ereignissen (abgesehen vom Gunpowder Plot, da weiss ich nicht
was das ist und vielleicht auch der persoenlichen Motivation von 
Selbstmordattentaetern) ganz handfeste wirtschaftliche/machtpolitische 
Interessen bzw. soziale Konflikte standen. Die Religion wurde in all
diesen Faellen nur instrumentalisiert, sei es um die Schweinereine
zu rechtfertigen oder grosse Massen von Menschen zu mobilisieren oder
beides.
Trotzdem finde ich, dass sich Religionen fuer eine derartige
Instrumentalisierung
leider anbieten, weswegen ich persoenlich dem skeptisch gegenueberstehe.

Esme

-----------------------------------------------------------------------------



Re^8: Terror in der Presse (Esme, 18. Sep 2007, 11:27:27):
~#! rn=Gnome rt=1190068669 rg=kultur
~#! tid=1190057215
Das Stirchwort Ueberbevoelkerung finde ich auch interessant, vorallem mit dem
zumenhemden Druck, der hier in Deutschland auf Frauen ausgeuebt wird, endlich
Kinder zu bekommen.
Dieses Stichwort in politischem Zusammenhang fasst meiner Meinung nach nur
alles an Unwilligkeit des Westens zusammen, seinen Reichtum nicht mit 
den Menschen der dritten Welt zu teilen, sei es nun aus Rassismus oder anderen
Gruenden.

Esme

-----------------------------------------------------------------------------



Re^7: Terror in der Presse (Rumata, 18. Sep 2007, 11:28:49):
~#! rn=Esme rt=1190107244 rg=kultur
~#! tid=1190057215
Ich moechte nebenbei bemerken, dass die Actung des Lebens oder das
Konzept der Vergebung ohne Religion wohl nie eine Chance (gehabt) haetten.

-----------------------------------------------------------------------------



Re^9: Terror in der Presse (Grimmborn, 18. Sep 2007, 12:35:23):
~#! rn=Esme rt=1190107647 rg=kultur
~#! tid=1190057215
Ich muss Dir da widersprechen. Der Westen ist mitnichten unwillig seinen
Reichtum nicht zu teilen. Er ist im Gegensatz dazu unwillig seinen Reichtum zu
teilen.

GdA

-----------------------------------------------------------------------------



Re^10: Terror in der Presse (Esme, 18. Sep 2007, 13:12:14):
~#! rn=Grimmborn rt=1190111723 rg=kultur
~#! tid=1190057215
Args, hin und wieder wuerde es sich auszahlen, etwas aufmerksamer hinzuschauen
was
man schreibt, danke fuer die Korrektur, so wars natuerlich gemeint.
Esme

-----------------------------------------------------------------------------



Re^10: Terror in der Presse (Bambi, 23. Sep 2007, 14:20:35):
~#! rn=Gnome rt=1190069023 rg=kultur
~#! tid=1190057215
Dass ausgerechnet jemand, der Atheismus fuer die richtige "Religion" haelt,
der Erde ein Bewusstsein oder gar einen Standpunkt zuschreibt, finde ich
aeusserst amuesant.

-----------------------------------------------------------------------------



Zitat des Tages (Alboin, 24. Sep 2007, 22:25:21):
Der Mensch ist gut, aber die Leut' sind schlecht. Karl Valentin


-----------------------------------------------------------------------------



Nightwish in Dortmund, 19.03.2008 (Zesstra,  3. Okt 2007, 00:12:44):
Huhu,

nachdem Nightwish mit dem neuen Album auch Daten fuer neue Konzerte in
Deutschland veroeffentlicht hat (http://www.nightwish.com/de/band/tour),
wollte ich mach fragen, ob wer plant, am 19.03.2008 das Konzert in Dortmund zu
besuchen.
Falls dem so ist, koennte man den Besuch gemeinsam organisieren und machen,
wird dann bestimmt spassig.

Zesstra

-----------------------------------------------------------------------------



Re: Nightwish in Dortmund, 19.03.2008 (Zesstra,  3. Okt 2007, 16:00:55):
~#! rn=Zesstra rt=1191363164 rg=kultur
~#! tid=1191363164
Achso, falls jemand gemeinsam dahin will und noch keine Karte hat, kann ich
eine mitbesorgen, wenn ich das in den naechsten Tagen weiss. (Ich weiss noch
nicht, wann ich hier zum Ticketshop komme, am besten fragt ihr mal per tm/mail
an.)

Zesstra

-----------------------------------------------------------------------------



Che Guevara (Liara, 11. Okt 2007, 22:46:53):
Falls sich jemand mal _wirklich_ dafuer interessiert, was das fuer ein Mensch
war, hier ein Link zu einem einigermassen kurzen, aber aussagekraeftigen
Artikel:
http://www.welt.de/print-welt/article683461/Che_Guevara_ist_nicht_cool.html

Mir geht dieses ganze 'Vor 50 Jahren wurde Che ermordet'-Geheule naemlich
langsam auf den Geist ...
Manchmal sollte man doch vllt wissen, wessen Konterfei man da auf T-Shirts,
Fahnen etc. mit sich rumtraegt.

Gruesse, ZZL

-----------------------------------------------------------------------------



Re: Che Guevara (Alboin, 11. Okt 2007, 22:52:32):
~#! rn=Liara rt=1192135613 rg=kultur
~#! tid=1192135613
dazu auch:
http://tinyurl.com/2acpma

http://tinyurl.com/2mddr4

al

-----------------------------------------------------------------------------



Filmquiz (Grumpf, 18. Nov 2007, 09:45:51):
Moinsen,
ich nehme mal an das viele diese Seite schon kennen aber ich will sie trotzdem
nochmal kurz erwaehnen, www.filmquiz.de
Dort im Speziellen die Downloadkwizze, man braucht dafuer nur Excel (oder ein
Programm das Excel Dateien oeffnen kann), Spass an Filmen und gute Nerven. :-)
Die Suchtgefahr ist relativ gross und im dazugehoerigem Forum gibt es
verschluesselte Hinweise. Wer Zaubertraenke findet kommt auch damit klar.
Viel Spass beim Kwizzen!
Grumpf

-----------------------------------------------------------------------------



Wirflich zu empkehlen: Der Foenig. (Ark, 17. Jan 2008, 22:00:31):
Zur Einstimmung:
http://www.kleines-arschloch.de/nf/foenig.stm
Gesamter Text ist wirflich zum Wegwerken.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Wirflich zu empkehlen: Der Foenig. (Alboin, 17. Jan 2008, 22:30:50):
~#! rn=Ark rt=1200603631 rg=kultur
~#! tid=1200603631
Furzwellensender, das muss ich mir merken ;-)
al

-----------------------------------------------------------------------------



Re: Wirflich zu empkehlen: Der Foenig. (Gloinson, 18. Jan 2008, 01:01:16):
~#! rn=Ark rt=1200603631 rg=kultur
~#! tid=1200603631
Das Ganze gibt es auch als Hoerspiel. Mit Dirk Bach.

Doch, dann wird es richtig kultig. Danke nochmal an die Schenker ;)


-----------------------------------------------------------------------------



Re: Re: Wirflich zu empkehlen: Der Foenig. (Mesirii, 18. Jan 2008, 11:48:05):
~#! rn=Gloinson rt=1200614476 rg=kultur
~#! tid=1200603631
Wann gibts die erste Foenig Improvisation von Ark im MG zum selbst erleben?
Mesi

-----------------------------------------------------------------------------



Re^3: Wirflich zu empkehlen: Der Foenig. (Gwen, 18. Jan 2008, 13:18:12):
~#! rn=Mesirii rt=1200653285 rg=kultur
~#! tid=1200603631
Du meinst ArF?
Gwen.

-----------------------------------------------------------------------------



Rocky Horror Picture Show, Sa. 02.02. in Berlin (Whitetiger, 28. Jan 2008, 18:54:44):
Am Samstag, dem 02. Februar laeuft im Casablanca in Berlin die Rocky Horror
Picture Show (in Originalfassung, engl. ohne UT).. Ich werd auf jedenfall
hingehen, hat noch jemand lust, mitzukommen? :)
www.casablanca-berlin.de

tiger

-----------------------------------------------------------------------------



Re: Rocky Horror Picture Show, Sa. 02.02. in Berlin (Maharet, 28. Jan 2008, 21:06:56):
~#! rn=Whitetiger rt=1201542884 rg=kultur
~#! tid=1201542884
Hach, das waren noch Zeiten, als man sich verkleidet hat und mit Reis und
Toast zur Rocky Horror Picture Show oder Rocky Horror Show gegangen ist ...
man, war ich da noch jung und unverdorben ...
Viel Spass :)

-----------------------------------------------------------------------------



Klassisches Musikkabarett (Ennox, 31. Jan 2008, 08:07:42):
Wer sich unter Kabarett mit und ueber klassische Musik nix vorstellen kann
und mal jemanden sehen will, der seine Instrumete virtuous beherrscht, kann
sich mal die Videos der Auftritte von Hans Liberg angucken. Wirklich gut
gemacht: http://www.hansliberg.com/index-DL.htm
Mesi, war da am Dienstag in Berlin bei ihm

-----------------------------------------------------------------------------



Suche Buecher (Vanion,  1. Feb 2008, 22:01:27):
Hallo,

ich bin auf der Suche nach zwei Buechern von Stephen Baxter:
 Timelike Infinity
 Raft

Hat die jemand zufaellig im Fundus? Beide sind mittlerweile vergriffen und
aufendig in englischen Antiquariaten zu bekommen. Wenn mir jemand eins von den
beiden leihen kann oder sogar ganz ueber hat, waere ich sehr dankbar.

Fuer Interessierte: Die beiden Buecher gehoeren zu dem sogenannten
Xeelee-Zyklus von Baxter, einem Hard SF-Zyklus der Geschichten aus
verschiedenen Phasen des Universums erzaehlt. Eine Premisse dieser Buecher
ist, dass das Universum voll von Leben ist, nicht zwingend organisch, nicht
zwingend biologisch, teilweise nicht mal barionisch. Wie gesagt, hartes SF,
aber superspannend. Die Art, wie Baxter in Exultant die Geschichte der Xeelee
beschreibt ... ein Hammer.

V*

-----------------------------------------------------------------------------



Re: Suche Buecher (Vector,  1. Feb 2008, 22:11:27):
~#! rn=Vanion rt=1201899687 rg=kultur
~#! tid=1201899687

http://www.fantasticfiction.co.uk/b/stephen-m-baxter/

-----------------------------------------------------------------------------



Re: Re: Suche Buecher (Ark,  1. Feb 2008, 22:32:37):
~#! rn=Vector rt=1201900287 rg=kultur
~#! tid=1201899687
Wie, die bringen mich erst Juli 2009 raus?


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Suche Buecher (Vanion,  1. Feb 2008, 23:02:40):
~#! rn=Ark rt=1201901557 rg=kultur
~#! tid=1201899687
Ja aber solange kannste ja Redemption Ark von Alastair reynolds lesen:
http://www.infinityplus.co.uk/nonfiction/redemptionark.htm

V*

-----------------------------------------------------------------------------



Re: Suche Buecher (Vanion,  1. Feb 2008, 23:05:04):
~#! rn=Vanion rt=1201899687 rg=kultur
~#! tid=1201899687
Danke an Maharet fuer den Tip, http://us.bookbutler.com/ zu benutzen. Ich habe
die beiden Buecher da sogar noch neu gefunden.

V*

-----------------------------------------------------------------------------



Re^4: Suche Buecher (Grimmborn,  1. Feb 2008, 23:05:39):
~#! rn=Vanion rt=1201903360 rg=kultur
~#! tid=1201899687
Und wenn Du Dich dann in den Buechern verloren hast schicken wir die Raiders
of the lost Ark los.

GdA

-----------------------------------------------------------------------------



Re: Re: Suche Buecher (Maharet,  1. Feb 2008, 23:07:15):
~#! rn=Vanion rt=1201903504 rg=kultur
~#! tid=1201899687
Ich haette vielleicht de.bookbutler.com statt nur Bookbutler sagen sollen,
aber wenn du ueber die US-Seite auch an eine geeignete Quelle gekommen bist,
ist's ja auch gut :)

-----------------------------------------------------------------------------



Re^3: Suche Buecher (Vanion,  1. Feb 2008, 23:08:21):
~#! rn=Maharet rt=1201903635 rg=kultur
~#! tid=1201899687
Hab nur den ersten Hit bei Google genommen.

V*

-----------------------------------------------------------------------------



Re^4: Suche Buecher (Mesirii,  3. Feb 2008, 09:26:56):
~#! rn=Vanion rt=1201903701 rg=kultur
~#! tid=1201899687
Weil, de.bookbutler.info berechnet auch gleich noch die Versandkosten nach
D und den Umrechnungskurs in EUR ein, bei dem Preisvergleich.
Fazit: Amazon.de is teuer bei englischen Buechern.
Mesi

-----------------------------------------------------------------------------



Frisch erlebt ... (Ark, 26. Feb 2008, 00:47:38):
So, komme grad vom Konzert in der Jahrhunderthalle, dachte, schreib ich gleich
mal was dazu :-)

Vorgruppen: Krieger (jojo) und Pain ... lassen wir es bei der Feststellung,
dass es musikalische Blasenentzuendungen waren, Stimmungsekzeme, wie man
unschwer an den unamused tippelnden Mitbesuchern ablesen konnte. Buaeh.

Laengeres (25min?) Warten wurde dann aber absolut belohnt, als Nightwish
endlich auftraten. Holla, bravo Anette, die sang wirklich klasse. Highlights:
Sahara, Nemo (in der Tat!), Amaranth, 7 Days to the Wolves und Poet & the
Pendulum.
Nur eine Nummer fiel etwas ab, das war Wishmaster, da hat man gemerkt, das ist
nicht ihre Welt, ansonsten wirklich tolle Stimme. Gut drauf waren alle, und
Marco hat ebenfalls bewiesen, stimmlich eine perfekte Ergaenzung zu sein.
Selten habe ich so einen gut abgestimmten Sound gehoert wie hier ... na gut,
die Vorgaenger halfen auch sehr gut dabei, Nightwish entsprechend aussehen zu
lassen. Optisch wurde auch fleissig eingeheizt mit rhythmischen
Flammenbaellchen, Schnee und zum Schluss noch pyrotechnische Feuerwerke und
kleine Flammenwalzen.
Von den aelteren Platten wurde vor allem noch einiges von Once gebracht (Dark
Chest of Wonders, und zum Abschluss noch Wish I had an Angel) und
erfreulicherweise (fuer mich) noch Christabel und Slaying the Dreamer aus dem
Century Child Album.
Schade, dass incl. Zugaben nach 90 Minuten schon Schluss war. Fuer alle, die
noch hingehen duerfen: Ohren vorgluehen und begeistert sein :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Frisch erlebt ... (Humni, 26. Feb 2008, 12:02:41):
~#! rn=Ark rt=1203983258 rg=kultur
~#! tid=1203983258
Ich war zwar nicht da, aber Ende Dezember beim "On a dark winters
Night"-Festival, wo Nightwish Headliner waren, und kann mich nur anschliessen.
Wer geglaubt hat, das wird ohne Tarja nix mehr, hat sich getaeuscht. Und man
hat das Gefuehl, dass da "ein Team" auf der Buehne steht.

Humni

-----------------------------------------------------------------------------



Re: Re: Frisch erlebt ... (Marcus, 26. Feb 2008, 12:03:33):
~#! rn=Humni rt=1204023761 rg=kultur
~#! tid=1203983258
Ich habe jetzt die Best Of von vor dem Wechsel und auch die neue, und beides
klingt gleich ... ob gut oder schlecht kann ich mich aber noch net entscheiden
;)

Ciao, Marcus (erst neuer Nightwish Hoerer)

-----------------------------------------------------------------------------



Re^3: Frisch erlebt ... (Gloinson, 26. Feb 2008, 12:05:31):
~#! rn=Marcus rt=1204023813 rg=kultur
~#! tid=1203983258
Wenn es gleich klingt ist's doch aber auch nicht gut? ;)


-----------------------------------------------------------------------------



Re: Frisch erlebt ... (Lug, 26. Feb 2008, 13:33:30):
~#! rn=Ark rt=1203983258 rg=kultur
~#! tid=1203983258
Da haste aber Glueck gehabt, Ark. denn "Slaying the Dreamerr" wurde erst in
frankfurt auf die Setliste gehoben ;)

Und sag noch was ggen Pain und ich schicke Dir ein paar Norweger...

Cheers!
Lug

-----------------------------------------------------------------------------



Re: Re: Frisch erlebt ... (Jimdigriz, 26. Feb 2008, 14:01:08):
~#! rn=Lug rt=1204029210 rg=kultur
~#! tid=1203983258
Hmm hab mir nach gewissen Hinweisen (glaub sogar von hier),
die highest hopes (wohl so ne best-of) gekauft.
War leider ziemlich rausgeworfenes Geld, kam mir super
langweilig vor. Nun die Frage an die Fans, ist die Scheibe
characteristisch (also Nightwish einfach nur nicht mein Ding),
oder gaebe es deutlich bessere reinhoer Tips?
JdG

-----------------------------------------------------------------------------



Re^3: Frisch erlebt ... (Humni, 26. Feb 2008, 14:35:12):
~#! rn=Marcus rt=1204023813 rg=kultur
~#! tid=1203983258
Hmm. Du bemerkst nicht, dass Tarja eher eine Opernstimme hat? Ist eigentlich
kaum zu ueberhoeren, und war auch lange (eines) von Nightwishs Markenzeichen.

Humni

-----------------------------------------------------------------------------



Re: Re: Frisch erlebt ... (Ark, 26. Feb 2008, 18:12:32):
~#! rn=Lug rt=1204029210 rg=kultur
~#! tid=1203983258
Och, ich steh dazu, Pain war selbiges in my ass. Bring on the Vikings, they
cannot be more off track :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^4: Frisch erlebt ... (Ark, 26. Feb 2008, 18:15:23):
~#! rn=Humni rt=1204032912 rg=kultur
~#! tid=1203983258
Ja, Tarja hat Sopran Ausbildung (klassisch), Anette eher nicht. Hoert man, sie
hat gestern bei Dark Chest of Wonders elegant nach unten abgebogen, aber ich
sag mal, auch Tarja singt eine ganze Tour lang nicht so wie bei
Studio-Aufnahmen, deshalb tut das nichts zur Sache. Opernstimme ... hm, was
ist das denn genau? ;)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Mudder beim Wacken Open Air 2008? (Zesstra, 12. Mar 2008, 19:31:35):
Besucht von euch jemand dieses Jahr das WOA Festival? (31.7. - 02.08) Evtl.
koennte man dann ja gemeinsam Zelte aufschlagen...

Zesstra

-----------------------------------------------------------------------------



LOTR Musical (Mesirii, 14. Mar 2008, 00:27:27):
Ich geh am Freitag Abend hier in London ins Herr der Ringe Musical. Bin
ja mal gespannt, wie das so ist.
Kostproben hier: www.lotr.com
Mesi

-----------------------------------------------------------------------------



Nightwish in Dortmund (Zesstra, 20. Mar 2008, 00:12:15):
Mhmm, also, ich berichte dann auch mal vom Nightwish-Konzert, diesmal das in
Dortmund. (Alles rein subjektive Meinung und keine in irgendeiner Weise
fachliche.)
Also, die ersten Vorgruppe, Krieger, haette man sich einfach sparen koennen.
Das beste Attribut war da IMHO noch "laut". Uebrigens war der Bassgitarrist
recht amuesant, der sah aus, als ob er staendig den Mund voll haette. Chagall
kommentierte das mit "Sieht aus, als ob er jeden Moment auf die Buehne kotzen
wuerde."
Pain war fuer mich jetzt ne positive Ueberraschung. Wird sicher nicht meine
Lieblingsband, aber konnte man sich anhoeren. Sie haben auch mit dem Publikum
interagiert und es kam das erste Mal Stimmung auf. Ingesamt haette man Krieger
weglassen und Pain laenger spielen lassen koennen (wenn schon Nightwish nicht
laenger spielt *g*).
Ok, nach ca. 1.75h Vorgruppen und Umbau kam dann Nightwish... Also, grandiose
Show, kamen auch sehr gut an. Ich kann da gerade meine Lieblingsstuecke nicht
praezisieren, aber Poet and the Pendulum, Sahara, Bye Bye Beautiful, The
Islander gehoeren dazu. Dark Chest of Wanders und Wish I had an Angel waren
auch toll (letzteres war die letzte Zugabe). Nightwish war offenbar auch gut
drauf und hatten anscheinend auch Spass an der Angelegenheit. ;-) Marco und
Anette haben schoen mit dem Publikum interagiert und sich auch gut ergaenzt.
BTW: Ich fand, sie singt im Konzert hoeher als auf der CD. Das empfand ich
zuerst als etwas gewoehnungsbeduerftig. Ansonsten heizten div. Licht- und
Pyroeffekte (im wahrsten Sinne des Wortes) die Stimmung mit an. Nightwish hat
bei uns dann ca. 1.5h gespielt.
Insgesamt: Fuer mich eine tolle Veranstaltung, die natuerlich (wie immer bei
sowas) viel zu schnell vorueber war. Wer Nightwish mag, sollte sich das nicht
entgehen lassen.
(Schade, dass man nach den 6h Stehen insgesamt, doch so mued ist, aber
trotzdem nicht schlafen kann.)
Achja: Wann kommt bloss das naechste Album raus? ;-)

Zesstra

-----------------------------------------------------------------------------



Re: Nightwish in Dortmund (Chagall, 20. Mar 2008, 17:05:42):
~#! rn=Zesstra rt=1205968335 rg=kultur
~#! tid=1205968335
Also ehrlich, die Fresse die der gezogen hat, da konnte man doch echt meinen,
dass er gleich auf die Buehne reiert. Und der Drummer von Krieger hat zweimal
in einem Lied einen seiner Sticks verloren, sich dabei aber nicht aus der Ruhe
bringen lassen sondern er hat weitergespielt.

Ueber Pain war ich positiv ueberrascht, die haetten wirklich ruhig ein wenig
laenger spielen koennen.

MC

-----------------------------------------------------------------------------



Whisky (Ark, 10. Mai 2008, 23:46:04):

A short summary of things I did in my vacation

By Ark of Scotland

Distilleries visited:

Islay:
Lagavulin
Ardbeg
Bowmore
Bruichladdich

West Coast:
Oban

Speyside:
Cragganmore
Dalwhinnie

Distillery planned but not visited due to lack of time:
Talisker ... todo list++;

Whisky tasting:
- peatiest whisky ... Ardbeg Uigeadail cask strength 54.2%
- best whisky ... Cragganmore 14 years, "Friends Edition"
- "smoothest whisky": Bruichladdich 12 years, directly from Sherry cask
  (no bottles ever shipped!)

Friendliest distillery:
Cragganmore

Smallest distillery:
Oban

Whisky "trophies":
Oban 14 years
Cragganmore, Distillers Edition, 14 years
Caol Ila, 12 years
Glenfiddich 12, 15, 18 50cl small bottles

Facts that survived various tastings:
Bowmore -> only distillery on Islay still malting the barley on site
Tallest stills in all single malt distilleries -> Glenmorangie
First single malt distillery in Scotland -> Glenfiddich
Oban -> Only distillery that resides in a town ... a real town
Most popular Scottish Single Malt Whisky -> Glenmorangie
1.300 -> British Pounds for your personal cask at Bruichladdich ...
"See it filled via webcam"
3 years -> time the spirit must reside in a cask to be called "Whisky"
8 -> number of distilleries on Islay:
Laphroaig, Lagavulin, Ardbeg, Bowmore, Bruichladdich, Caol Ila,
Bunnahabhain, Kilchoman (opened in 2005, no output yet :-))
Port Ellen -> closed down distillery on Islay, today malting the barley
for all Islay distilleries (except Bowmore)

Resume:
Stop reading ... go there! :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Whisky (Ark, 11. Mai 2008, 00:16:42):
~#! rn=Ark rt=1210455964 rg=kultur
~#! tid=1210455964
Noch ein Tip ... mein Pass von den Friends of the Classic Malts (jaja, aus
DiaGeo Sicht) war leider noch vor Reiseantritt nicht da, deshalb sehr zeitig
anmelden, falls man die Distillen besuchen will (www.malts.com), gibt freien
Eintritt, und (wichtiger) man bekommt Nachrichten (kein Spam) ueber exclusive
Bottlings, die es sonst nirgendwo gibt. Marketing? Maybe, aber einiges, was
wir probiert haben, war schon recht ueberzeugender Stoff :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Schandmaul: Stahlwerk Duesseldorf, 26.11.08 (Zesstra,  9. Jul 2008, 01:04:40):
Huhu,

nachdem ich jetzt am So einmal Schandmaul live gesehen hab, moechte ich mir
die mal in einem 'normal-langen' Konzert anschauen und zwar am 26.11.08 in
Duesseldorf (Support: Letzte Instanz).
Mag jemand mitkommen? Falls ja, kann ich gerne bei kurzem Hinweis ne Karte
mitbestellen/-kaufen (je 26,80EUR).

Viele Gruesse,

Zesstra

-----------------------------------------------------------------------------



Buchempfehlung (Ark, 11. Aug 2008, 22:02:00):
Jon Fasman
Die Bibliothek des Alchemisten
Heyne, Taschenbuch, Euro 8,95.
Gefaellt, auch vor allem wegen des Einbaus der Ausstellungsstuecke und ihrer
Einflechtung in die Story ... wird erst so nach und nach klar. Mir hat's
gefallen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Buchempfehlung (Ark, 11. Aug 2008, 22:29:25):
~#! rn=Ark rt=1218484920 rg=kultur
~#! tid=1218484920
Und weil ich heute grosszuegig bin, gleich noch eins ... obwohl ich das
vielleicht schonmal vor Uhrzeiten hier geschrieben hab, egal.

Iain Pears
Das Urteil am Kreuzweg
Diana, Taschenbuch, Euro 10,00.
Nette Story, durch vier verschiedene Personen erzaehlt, ohne schon fruehzeitig
etwas zu verraten, man weiss wirklich erst nach 800 Seiten, was wirklich
passierte. Es geht freilich um Mord, Mord in Oxfords New College im Jahr 1663.
Macht Spass zu lesen, war in 3 Tagen durch.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Buchempfehlung (Zesstra, 11. Aug 2008, 22:38:27):
~#! rn=Ark rt=1218484920 rg=kultur
~#! tid=1218484920
Das hab ich letztes Jahr auch gelesen. Ist nicht zu meinen Lieblingsbuechern
aufgestiegen, aber durchaus lesenswert.

Zesstra

-----------------------------------------------------------------------------



Muahaha (Ark, 18. Sep 2008, 22:03:43):
HottenTottenTanz 

haetten hottentotten tueten
taeten sie mit tuten toeten 

wuerden loewen tragen brillen
wuerden sie mit wuerde bruellen 

strickend stieren sture stiere
stoerend an vier wirbeltiere 

schaffen am schafott die schlaechter
schlafen schlaffe schafe schlechter 

rangen fangen schlanke schlangen
bang mit langen stangenzangen 

schnaufend streicheln scheue schnecken
schraeg umschleichend schlanke stecken 

schall des falles eines balles:
allenfalles ballt sich alles 

grantig tanzen elefanten
mit verbannten anverwandten 

angebrannte elefanten
tanzen mit verkannten tanten 

kleine eimer fein zu leimen
scheint sich beinah rein zu reimen 

kuehne kuehe kuessen kuehler
buehnenkuenstler fuehlen schwueler 

schweinen, scheinbar weinend, reinlich
scheinen kleine beine peinlich 

ueber rasen rasen hasen
blasend glas fuer glatte vasen.

Gruesse an Humni.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Saltatio Mortis, 6.11. in Essen (Zesstra,  4. Okt 2008, 13:29:03):
Huhu,

hat jemand Lust mit zum Saltatio-Mortis-Konzert am 6.11. in die Zeche Carl in
Essen gehen?

Zesstra

-----------------------------------------------------------------------------



Re: Saltatio Mortis, 6.11. in Essen (Zesstra,  4. Okt 2008, 13:48:16):
~#! rn=Zesstra rt=1223119743 rg=kultur
~#! tid=1223119743
Ok. Ich ziehe die Frage zurueck. Das Konzert faellt aus, weil die Zeche Carl
am 1.10. Insolvenz angemeldet hat. :-( Naechste Gelegenheit, sie im Ruhrgebiet
zu sehen, waere dann wohl am 13.12. zusammen mit Doro Pesch in Duesseldorf.
Ist aber sicherlich kuerzer.

Zesstra

-----------------------------------------------------------------------------



Spielemesse (Zesstra,  6. Okt 2008, 00:33:38):
Ist eigentlich irgendeiner von euch dieses Jahr auf der Spielemesse in Essen?
Und hat Lust auf nen Treffen im Anschluss?

Zesstra

-----------------------------------------------------------------------------



Re: Spielemesse (Humni,  6. Okt 2008, 01:35:39):
~#! rn=Zesstra rt=1223246018 rg=kultur
~#! tid=1223246018
Ich werde wohl auch da sein. Welche Tage weiss ich noch nicht.

Humni

-----------------------------------------------------------------------------



Subway to Sally, 27.12., Bochum (Zesstra, 25. Okt 2008, 09:27:23):
Am 27.12. treten Subway to Sally in Bochum im Ruhrkongress auf. Vorgruppe ist
vorraussichtlich Delain.
Ich denke, ich werde da mal hingehen, ist ne willkommene Abwechslung zum
Weihnachtsmusikgedudel. ;-) Mag jemand mitkommen?

Zesstra

-----------------------------------------------------------------------------



Re: Subway to Sally, 27.12., Bochum (Gloinson, 25. Okt 2008, 11:11:01):
~#! rn=Zesstra rt=1224919643 rg=kultur
~#! tid=1224919643
Was bitteschoen magst du denn an folgendem Klassiker nicht, dass du ihn nicht
ungefaehr 274mal pro Woche hoeren kannst?

Chorus: 
Last Christmas, I gave you my heart
But the very next day, You gave it away
This year, to save me from tears
I'll give it to someone special (2X)

Once bitten and twice shy
I keep my distance but you still catch my eye
Tell me baby do you recognise me?
Well it's been a year, it doesn't surprise me

(Happy Christmas!) I wrapped it up and sent it
With a note saying "I Love You" I meant it
Now I know what a fool I've been
But if you kissed me now I know you'd fool me again

Chorus:

(Oooh. Oooh Baby)

A crowded room, friends with tired eyes
I'm hiding from you and your soul of ice
My God I thought you were someone to rely on
Me? I guess I was a shoulder to cry on
A face on a lover with a fire in his heart
A man undercover but you tore me apart
Oooh Oooh
Now I've found a real love you'll never fool me again

Chorus:

A face on a lover with a fire in his heart
(Gave you my heart)
A man undercover but you tore me apart
Next year
I'll give it to someone, I'll give it to someone special
special, someone, someone
I'll give it to someone, I'll give it to someone special
who'll give me something in return
I'll give it to someone
hold my heart and watch it burn
I'll give it to someone, I'll give it to someone special
I've got you here to stay
I can love you for a day
I thought you were someone special
gave you my heart
I'll give it to someone, I'll give it to someone
last christmas I gave you my heart
you gave it away
I'll give it to someone, I'll give it to someone



-----------------------------------------------------------------------------



Re: Re: Subway to Sally, 27.12., Bochum (Gwen, 26. Okt 2008, 10:20:54):
~#! rn=Gloinson rt=1224925861 rg=kultur
~#! tid=1224919643
...aeh?
<Es fehlen die Worte.>
Gwen.

-----------------------------------------------------------------------------



Time Odyssey: Firstborn (Zesstra,  2. Nov 2008, 19:18:27):
Ich hab jetzt 'Firstborn' von Clarke und Baxter gelesen, welches ihre 'Time
Odyssey' Reihe abschliesst. Ich finde alle drei Buecher sehr lesenwert. Wer
sich fuer Science Fiction abseits von StarTrek und StarWars interessiert,
sollte wirklich mal reingucken. Es hat auch nix vom ueblichen
"Zeitreise-Kitsch", wie man zuerst denken koennte. Zu schade, dass die Reihe
jetzt endgueltig abgeschlossen ist (einerseits war das so geplant,
andererseits ist Clarke inzwischen leider gestorben).
Gewoehnungsbeduerftig (wie schon bei Time's Eye und Sunstorm) ist allerdings
das Ende. Die Handlung wird zwar abgeschlossen, gleichzeitig ists aber auch
nen Cliffhanger und die Hintergruende bleiben immer noch teilweise diffus. Bei
den ersten beiden war das ja OK, beim letzten Band bleibt etwas das Gefuehl
des Verlustes zurueck.

Zesstra

-----------------------------------------------------------------------------



Interfilm (Whitetiger, 11. Nov 2008, 20:41:34):
Letzte Woche war in Berlin das diesjaehrige Kurzfilmfestival Interfilm. Ich
hab's immerhin zu drei Programmen geschafft, allerdings habe ich nur einige
der "Filmgedichte" des "Zebra Poetry Film Awards" im Netz finden koennen. Zum
kurzweiligen (und recht kurzen) Zeitvertreib:

The Technical Hitch [06'10"]
http://www.youtube.com/watch?v=Yq_i-swEK14

Silencijum [10'04"]
http://www.youtube.com/watch?v=knhj7Ums3qM

Square Pears, Rare Bears [01'00"]
http://www.commafilm.co.uk/films/squarebears

The Present [01'30"]
http://www.youtube.com/watch?v=fnYHdhsh804

Procrastination [04'15"]
http://www.jerwoodmovingimage.org/standaloneFinalistsPlayer.asp?id=14

Ham [01'00"]
http://www.commafilm.co.uk/films/ham

Auch sehr schoene Filme, die ich im Netz leider nicht finden konnte:

"Azul Hiel Lugubre Nectar" von Luis Felipe Hernandez Alanis
"Bertram" von Lara Kristindottir et al.

"Leccion relampago" von Alejandro Lubezki
"Rebelion" von Alberto Mar

"The Needful Head" ist auch schn, Trailer:
http://www.theneedfulhead.com/NH_Trailer.mov

Die ganzen Wettbewerbsfilme wie "Ripple" von Paul Gowers und "Fathom" von
Vladimir Jedlicka gibt es leider nicht zum so schauen...

Und als abschreckendes Beispiel den mit Abstand schlechtesten (und den
einzigen, bei dem tatsaechlich eine Person gebuht hat...):
Statement of the Art [03'00"]
http://www.ericascourti.com/art_pages/statement_pf_the_art.html

Viel Spass beim Anschauen!
tiger

-----------------------------------------------------------------------------



Teil 6/3 (Gloinson, 15. Okt 2009, 12:25:50):
... ist raus. Von Eoin Colfer. Wer Colfer gelesen hat, wird zumindest gespannt
sein, was er aus der Anhalterwelt so macht, es kann nur abgedrehter werden.


-----------------------------------------------------------------------------



A Wise Man's Fear ... (Wintersturm,  5. Nov 2009, 02:04:25):
Haha, nach dem ersten Buch (schon recht gut geschrieben, auch wenn es dem
einen oder anderen langatmig vorkommen mag - Geschmackssache) wartet hier ja
jeder auf das zweite ... das hier hab ich dann gefunden, als ich schauen
wollte, wann es kommt:
http://www.patrickrothfuss.com/blog/2009/02/concerning-release-of-book-two.htm
l

Bloede Blogs :-)

Wintersturm Eiskralle

-----------------------------------------------------------------------------



Avatar (Vanion, 19. Dez 2009, 16:28:29):
Manchmal freut man sich ja irre auf ein Ereignis, dass noch in der Zukunft
liegt. Dann geht es mir gelegentlich so, dass ich derartig hohe Erwartungen
daran knuepfe, dass das eigentliche Ereignis kaum noch an die
Erwartungshaltung anknuepfen kann. Bei Filmen geht es mir oft so ...

Nach allem was ich im Voraus ueber Avatar von James Cameron gelesen hab, waren
meine Erwartungen riesig, und ich hatte Sorge, dass selbige einen sonst
eigentlich tollen Film(abend) versauen koennten. Um es auf den Punkt zu
bringen: Dem war nicht so. Ich habe fast 3 Stunden staunend die Kinoleinwand
betrachtet und mich wie ein kleines Kind gefuehlt. 

Mein Fazit:
Story:      8/10
Handwerk:  10/10 (Sowohl Schauspieler als auch Dramatik, Kamerafuehrung etc.)
3D:        Das sind nicht mehr die 3D-Spielereien wie in Spy Kids und co.

Der Film hat meiner Meinung echtes Potenzial, ein Genre-Klassiker zu werden,
und der 3D-Technik den Durchbruch zu bringen. Hier gibt es nicht, zwei, drei
Ebenen, die aussehen wie eine Theaterkulisse, der Film ist plastisch. Und
dieser Effekt wird wenig fuer Effekthascherei genutzt sondern unterstuetzt
subtil das Erzaehlen einer Geschichte. In diesen Film geh ich noch mal.

V*

-----------------------------------------------------------------------------



"Metropolis" auf arte (Gloinson, 12. Feb 2010, 14:40:06):
Moin,

heute gibt es die restaurierte Version von Metropolis auf arte.

http://www.arte.tv/de/3055836.html#5


-----------------------------------------------------------------------------



Hast du heute schon gehegemannt? (Gloinson, 17. Feb 2010, 00:01:08):
http://preview.tinyurl.com/yglq4ot
http://www.wissenslogs.de/wblogs/blog/sprachlog/sprachwandel/2010-02-13/die-sp
iegelung-eines-plagiats-in-der-erschaffung-von-w-rtern


-----------------------------------------------------------------------------



Cyberwar ... (Gloinson,  5. Mar 2010, 15:36:49):
Immer wenn mal wieder die Cyberwar-Sau durch das globale Netz getrieben wird
muss ich an die Sotry von Doctorow denken:
http://baens-universe.com/articles/When_Sysadmins_Ruled_the_Earth


-----------------------------------------------------------------------------



Neues... (Gabylon, 14. Apr 2010, 00:53:21):
... aus der Anstalt.
Die neueste Folge ist aeusserst sehenswert, Priol mal wieder ueberragend.
Hier gibts die Wiederholungstermine auf einen Blick: tinyurl.com/5dyzsv

gab

-----------------------------------------------------------------------------



Maverick (Gabylon, 26. Apr 2010, 19:55:07):
Man kann ihn sich immer wieder anschauen. Mel Gibson in Hochform und in
einem seiner besten Filme. Heute abend, Kabel 1, 20:15.

-----------------------------------------------------------------------------



Stillleben Ruhrschnellweg (Zesstra,  3. Jul 2010, 23:12:47):
Huhu,

am 18.7. ist das Stillleben Ruhrschnellweg. Bei diesem wird die A40 im
Ruhrgebiet auf 60km gesperrt und dort soll zwischen 11:00 und 17:00 ne Art
verteilte Party gefeiert werden.
Falls sich jemand dafuer interessiert:
http://www.ruhr2010.still-leben-ruhrschnellweg.de/

Soweit ich weiss, gibt es am 18.7. auch einen Fruehstuecks-Stati im Mandragora
in Bochum, d.h. da gibt es die Gelegenheit, beide Besuche zu verknuepfen...
;-) Vom Mandra kommt man auch relativ guenstig mit OePNV sowohl nach Osten wie
Westen von Bochum zur A40. (Allerdings sollte man dann ausnahmsweise nicht
ewig lang im Mandra sitzen bleiben, da 17:00 Ende ist und ab 16:30 keiner mehr
auf die A40 gelassen wird.)

Wer an dem Tag per Auto durchs Ruhrgebiet muss: umfahren. ;-)

Zesstra

-----------------------------------------------------------------------------



Starcraft 2 (Vanion, 16. Aug 2010, 21:22:53):
Moin ihr Lieben,

falls es hier Leute geben sollte, die abstreiten SC2 zu spielen, ich gehoere
nicht dazu!

V*

-----------------------------------------------------------------------------



Re: Starcraft 2 (Zesstra, 16. Aug 2010, 21:23:33):
~#! rn=Vanion rt=1281986573 rg=kultur
~#! tid=1281986573
:hat nichtmals Starcraft 1 gespielt und fuer SC2 erst recht keine Zeit. ;-)

Zesstra

-----------------------------------------------------------------------------



Re: Re: Starcraft 2 (Vanion, 16. Aug 2010, 21:31:01):
~#! rn=Zesstra rt=1281986613 rg=kultur
~#! tid=1281986573
Anyhow. Bin /manchmal/ unter Riyu.971 erreichbar. Bitte Mudnamen angeben.*

V*
* Bei meinen ersten Mudparty-Anmeldungen hab ich hier immer MorgenGrauen
  angegeben und fand die Frage daemlich *huestel*

-----------------------------------------------------------------------------



Re^3: Starcraft 2 (Alboin, 16. Aug 2010, 22:11:44):
~#! rn=Vanion rt=1281987061 rg=kultur
~#! tid=1281986573
Ich warte noch etwas die Entwicklung ab. Einerseits weil ich wohl erst wieder
im Herbst/Winter zum zocken komme, andererseits weil ich hoffe das noch ein
paar Restriktionen rausfliegen.
al

-----------------------------------------------------------------------------



Re^4: Starcraft 2 (Croft, 16. Aug 2010, 22:15:44):
~#! rn=Alboin rt=1281989504 rg=kultur
~#! tid=1281986573
Welche im speziellen?

Croft

-----------------------------------------------------------------------------



Re^5: Starcraft 2 (Alboin, 16. Aug 2010, 22:18:47):
~#! rn=Croft rt=1281989744 rg=kultur
~#! tid=1281986573
Wie ich hoerte gehen lanpartys nicht und als workaround kann man sich im
battlenet auch nicht den gegner aussuchen.
al

-----------------------------------------------------------------------------



Re^6: Starcraft 2 (Gloinson, 16. Aug 2010, 22:20:45):
~#! rn=Alboin rt=1281989927 rg=kultur
~#! tid=1281986573
Ich las da einen Quickreview - fuer LANs gibt es irgendwelche Gastaccounts,
geht sehr wohl.


-----------------------------------------------------------------------------



Re^6: Starcraft 2 (Gloinson, 16. Aug 2010, 22:25:56):
~#! rn=Alboin rt=1281989927 rg=kultur
~#! tid=1281986573
http://www.golem.de/showhigh2.php?file=/1008/77087.html&wort[]=starcraft

LAN-Parties gehen ohne Internet nicht. Ansonsten wie gehabt.


-----------------------------------------------------------------------------



Re^7: Starcraft 2 (Croft, 16. Aug 2010, 22:30:37):
~#! rn=Gloinson rt=1281990356 rg=kultur
~#! tid=1281986573
Fuer das Zusammenspiel kann man einfach eine Party aufmachen.

Croft

-----------------------------------------------------------------------------



Re^8: Starcraft 2 (Gloinson, 16. Aug 2010, 22:38:19):
~#! rn=Croft rt=1281990637 rg=kultur
~#! tid=1281986573
Naja, die Beschwerden kommen letztlich aus der ueblichen Ecke der
casual-cracked-gamer, die damit halt nicht mehr zum Spielen kommen. Unsere
LANs sahen ja meist auch so aus ;)


-----------------------------------------------------------------------------



Re^9: Starcraft 2 (Croft, 16. Aug 2010, 22:51:04):
~#! rn=Gloinson rt=1281991099 rg=kultur
~#! tid=1281986573
Jo, Kaufen und Inet Zugang ist wohl die Devise.  Wuerd mich wundern wenn
sich da was aendert.

Croft

-----------------------------------------------------------------------------



Re^10: Starcraft 2 (Highlander, 17. Aug 2010, 10:08:56):
~#! rn=Croft rt=1281991864 rg=kultur
~#! tid=1281986573
Ich beschwere mich auch darueber, und ich habe SC/BW im Original.
Ist uebrigens ein wichtiger Grund, warum ich SC2 nicht habe.

HrT

-----------------------------------------------------------------------------



Re: Starcraft 2 (Zook, 17. Aug 2010, 12:47:54):
~#! rn=Vanion rt=1281986573 rg=kultur
~#! tid=1281986573
Wieso stehtn das in "kultur"? ;) Eine neue Kultur des Nichtabstreitens?
Z

-----------------------------------------------------------------------------



Re: Re: Starcraft 2 (Vanion, 22. Aug 2010, 20:01:34):
~#! rn=Zook rt=1282042074 rg=kultur
~#! tid=1281986573
Fand keine bessere Rubrik. Gaming ist aus meiner Sicht Kultur. Natuerlich ist
es keine Hochkultur, aber wer will das schon sein.

V*

-----------------------------------------------------------------------------



Re^3: Starcraft 2 (Vanion, 22. Aug 2010, 20:03:36):
~#! rn=Vanion rt=1282500094 rg=kultur
~#! tid=1281986573
Muss ich in dem Kontext loswerden: Hab nie verstanden, warum "Die Lustige
Witwe" ernste Musik ist und Bily Joels "Leningrad" nicht.

V*

-----------------------------------------------------------------------------



Filmtricks (Vanion, 22. Aug 2010, 22:35:16):
Aus gegebenem Anlass: Ich finde, dass Zeitlupe gern gekoppelt mit dem
Darstellen der Szene aus verschiedenen Perspektiven in Filmen ein ganz uebeler
Trick ist und dem Regisseur sofortiges Arbeitsverbot einbringen sollte.

V*

-----------------------------------------------------------------------------



Re: Filmtricks (Zesstra, 22. Aug 2010, 22:36:02):
~#! rn=Vanion rt=1282509316 rg=kultur
~#! tid=1282509316
Sonderlich gern mag ich sowas idR auch nicht.

Zesstra

-----------------------------------------------------------------------------



Re: Re: Filmtricks (Ark, 22. Aug 2010, 22:39:09):
~#! rn=Zesstra rt=1282509362 rg=kultur
~#! tid=1282509316
Dann habt ihr in dieser Rubrik eigentlich nix verloren, ab nach
kultur.ahnungslose :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Filmtricks (Humni, 22. Aug 2010, 22:47:30):
~#! rn=Ark rt=1282509549 rg=kultur
~#! tid=1282509316
Um welchen Film geht es?

Humni

-----------------------------------------------------------------------------



Re: Filmtricks (Zook, 23. Aug 2010, 09:07:45):
~#! rn=Vanion rt=1282509316 rg=kultur
~#! tid=1282509316
Was war der Anlass?
Zook.

-----------------------------------------------------------------------------



Yehuda Moon (Gloinson, 24. Aug 2010, 13:17:37):
Radfahrercomicstrip. Amuesant und ironisch. Auch als Buch verfuegbar, wie ich
gerade sehe:

http://www.yehudamoon.com/
www.lulu.com/browse/search.php?fSearch="yehuda+moon"&fSearchData[lang_code]=al
l


-----------------------------------------------------------------------------



Re: Re: Filmtricks (Vanion, 26. Aug 2010, 21:04:30):
~#! rn=Zook rt=1282547265 rg=kultur
~#! tid=1282509316
Weiss ich gar nicht mehr. Ich reg mich immer auf, wenn Zeitlupen benutzt
werden, um Schauspielern die nichtvorhandene Faehigkeit, Emotionen
darzustellen, reinzutricksen. Noch mehr reg ich mich auf, wenn maessige
Martial Arts Szenen durch SloMo-Wiederholungen aus verschiedenen Perspektiven
verlaengert werden. Am schlimmsten ist das in an sonsten brauchbaren Filmen.

V*

-----------------------------------------------------------------------------



Re^3: Filmtricks (Alboin, 26. Aug 2010, 22:29:29):
~#! rn=Vanion rt=1282849470 rg=kultur
~#! tid=1282509316
da habe ich eine gespaltenes Verhaeltnis dazu: einerseits kann man in einem
Film wie Matrix imho ganz auf Action Szenen verzichten und hat danach eine
nette philosophische  Plauderstunde. Andererseits habe ich mich bei manchen
Actionszenen wieder gefragt, wie das technisch moeglich ist. Das war uebrigens
am deutlichsten bei der bekannten slomo szene wo Neo zum ersten Mal den Kugeln
der Smiths ausweicht.
Was meint denn Herr Humni dazu? Ich koennte mir wieder vorstellen, das er
genaudiese Effekte an den Filmen liebt.
al

-----------------------------------------------------------------------------



Re^4: Filmtricks (Humni, 27. Aug 2010, 13:26:08):
~#! rn=Alboin rt=1282854569 rg=kultur
~#! tid=1282509316
Bei Matrix fand ich es im ersten Teil noch toll, weil neu, und einfach toll
aussehend. Danach, auch bei den weiteren Matrixteilen, wurde das abgedroschen.

Beim HdR hat man drauf verzichtet, lieber eine "schnelle Schlacht" inszeniert.
Eigentlich toll, nur das Problem ist, dass manche der Szenen so zu schnell
werden, um ihnen zu folgen. Das war beim HdR am Rande der Schmerzgrenze,
andere Filme danach haben das dann hemmungslos ueberzogen. Auch das ist nicht
gut. 

Keine Ahnung, was der Koenigsweg ist.

Humni

-----------------------------------------------------------------------------



Re^5: Filmtricks (Rumata, 27. Aug 2010, 13:47:51):
~#! rn=Humni rt=1282908368 rg=kultur
~#! tid=1282509316
Bei HdR hab ich sehnsuechtig darauf gewartet, dass sich Gimli dieser
nervtoetenden Blechlibelle annimt, die dauernd im Kreis um die 
Helden herumflog.


-----------------------------------------------------------------------------



Re^5: Filmtricks (Zook, 27. Aug 2010, 14:36:23):
~#! rn=Humni rt=1282908368 rg=kultur
~#! tid=1282509316
Am nervigsten fand ich es bei den Bond-Filmen mit Daniel Craig.
Zook.

-----------------------------------------------------------------------------



Re^5: Filmtricks (Ark, 27. Aug 2010, 15:09:17):
~#! rn=Humni rt=1282908368 rg=kultur
~#! tid=1282509316
Ich weiss nicht, wo das Problem ist ... natuerlich kann man es uebertreiben,
aber John Woo setzt das imho immer sehr schoen ein. U.a. auch in Animes
(Appleseed), wo das gut kommt. Naja, vielleicht habt ihr andere Filme als ich
im Hinterkopf, aber schrottige Filme sind nicht aufgrund der Filmsequenzen
doof, sondern aufgrund ihres Inhalts :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^6: Filmtricks (Vanion, 28. Aug 2010, 13:33:36):
~#! rn=Ark rt=1282914557 rg=kultur
~#! tid=1282509316
Gerade in Animes wird es in Form von Wiederholungen in verschiedenen
Vergroesserungen gern genommen um die Laenge des Films auf in D uebliche
Formate aufzubohren. Bohring!

V*

-----------------------------------------------------------------------------



Re^7: Filmtricks (Ark, 30. Aug 2010, 11:33:07):
~#! rn=Vanion rt=1282995216 rg=kultur
~#! tid=1282509316
Gerade in dem war es imo nicht so, grundsaetzlich magst Du recht haben, wobei
mein Wissen nicht grad breit ist. Miyazaki Filme sind das aber bestimmt nicht
:-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Realitaet und Bilder (Gloinson,  9. Nov 2010, 10:47:14):
Laengeres Video. "Myth and Infrastructure". Schattenspiele mit Bildern, sehr
beeindruckend und schoen.

http://gaurabc.com/glourious_visions


-----------------------------------------------------------------------------



Iz (Gloinson,  9. Nov 2010, 11:26:01):
Hm. Ich war etwas ueberrascht, Iz' Titel ploetzlich als #1 in den deutsche
Charts (in einem Flatterblatt) zu finden.

www.zeit.de/gesellschaft/zeitgeschehen/2010-10/israel-kamakawiwoole-rainbow

Ich bin da irgendwann durch eine Nutzung in Scrubs draufgekommen. Eigentlich
nie diese hier: http://www.youtube.com/watch?v=zTWj7aLbEhI ... aber ich finde
die Stelle nicht mehr auf Anhieb.

Aus ER koennte man es wohl auch kennen:
http://www.youtube.com/watch?v=3E4p6ivvMUc

Aber das offizielle Video ist auch ganz nett. Inklusive Seebestattung gegen
Ende: http://vimeo.com/8578344. Ging wohl auch mal durch megaschmarrn.


-----------------------------------------------------------------------------



Todos Santos (Gloinson,  9. Nov 2010, 12:29:25):
Ein paar Bilder vom hispanischen Allerheiligen. Ich fand das Fest, dass die
daraus machen schon mal als Kind in einem Mexiko-Buch. In einem zweiten
Crow-Teil wurde es auch ganz nett inszeniert:

http://blogs.sacbee.com/photos/2010/11/day-of-the-dead-1.html


-----------------------------------------------------------------------------



Re: Iz (Alboin,  9. Nov 2010, 22:27:56):
~#! rn=Gloinson rt=1289298361 rg=kultur
~#! tid=1289298361
Mich hat es auch gewundert, das das Lied erst jetzt in D in den charts ist.
Einer meiner besten Freunde hat es sich zu seiner Hochzeit von der
musikalischen Familie eines weiteren Ex-Kommiltonen spielen lassen. Das war
vor ueber einem Jahr. Hat also echt lange gedauert bis es sich rumgesprochen
hat ;-)
al

-----------------------------------------------------------------------------



Re: Iz (Arathorn,  9. Nov 2010, 23:44:45):
~#! rn=Gloinson rt=1289298361 rg=kultur
~#! tid=1289298361
Hatte das incl. der Story drumrum vor 1 oder 2 Jahren schonmal gefunden,
glaube das war im Blog "Industrial Technology & Witchcraft" - die haben 
den Titel wohl schon seit langem als eine Art "Hymne" eingefuehrt.

-----------------------------------------------------------------------------



Re: Re: Iz (Gloinson,  9. Nov 2010, 23:46:44):
~#! rn=Arathorn rt=1289342685 rg=kultur
~#! tid=1289298361
Na der Titel ist ebenso kackalt wie der Mann tot ist. AFAIK war er wohl schon
Teil der Musik in "Rendez vous mit Joe Black".


-----------------------------------------------------------------------------



Re^3: Iz (Arathorn,  9. Nov 2010, 23:49:24):
~#! rn=Gloinson rt=1289342804 rg=kultur
~#! tid=1289298361
Ja, dass der Titel an sich steinalt ist, weiss ich wohl. ;-) Ich wollte
mich eigentlich auch mehr mit einem "kenn ich auch schon laenger" beteiligen.
*g*

-----------------------------------------------------------------------------



Re^4: Iz (Gloinson,  9. Nov 2010, 23:58:08):
~#! rn=Arathorn rt=1289342964 rg=kultur
~#! tid=1289298361
Ahok, wir sind ja auch schon steinalt. Zumindest in der Bimssteinklasse.


-----------------------------------------------------------------------------



Re: Iz (Vanion, 10. Nov 2010, 21:14:03):
~#! rn=Gloinson rt=1289298361 rg=kultur
~#! tid=1289298361
Hab seine Musik vor Jahren fuer mich entdeckt. Das
Somewhere-over-the-rainbow/Wonderful-World-Medley wurde in irgendeinem Film
benutzt. Ich meine Finding Forrester wars. Damals war es uebel schwer an die
CDs zu kommen. Is heute wohl einfacher, ich goenns ihm.

V*

-----------------------------------------------------------------------------



Re^5: Iz (Vanion, 10. Nov 2010, 21:29:05):
~#! rn=Gloinson rt=1289343488 rg=kultur
~#! tid=1289298361
Scrubs hat einen recht netten Soundtrack. Gibt echt viele Stuecke, die ich
super gerne hoere: Good Time von Leroy, Overkill von Colin Hay, Eels sowieso
(Fresh Feeling), Superman, und ueber allem Cohens Hallelujah in einer
Hammer-Version von John Cale.

Vielleicht werden die Polyphonic Spree ja auch der naechst Nr 1 Hit in D:
http://www.youtube.com/watch?v=mUHgKBw994A

Ueberrascht war ich, als am Ende der vorletzten Staffel dann sogar Peter
Gabriel mit einer "The Book of Love", einem Magnetic Fields-Cover aus dem
neuen Album zu Wort kam. Gabriels Version is uebrigens weit weniger langweilig
als das Original. Und live war dieses Stueck eines der Highlights (im 1. Teil
der Show, im 2. wurden aeltere Stuecke gespielt, da war meiner Meinung nach
Mercy Street unuebertroffen).

V*

-----------------------------------------------------------------------------



Re^5: Iz (Darklor, 17. Nov 2010, 20:13:33):
~#! rn=Gloinson rt=1289343488 rg=kultur
~#! tid=1289298361
is das Lied nich von 1940?

Ich mag die Version aus E-mail fuer Dich...

Darkor

-----------------------------------------------------------------------------



Alpha 0.7 (Gloinson, 22. Nov 2010, 00:33:40):
http://tinyurl.com/34o7kns

Am 29 Dezember im Ersten ab 23:50 en bloc. Dystopie.


-----------------------------------------------------------------------------



Re: Alpha 0.7 (Zesstra, 22. Nov 2010, 00:39:49):
~#! rn=Gloinson rt=1290382420 rg=kultur
~#! tid=1290382420
Das klingt spannend. Ich weiss allerdings nicht, ob ich am 29.12. zum
Fernsehen komme... Bin ja mit Freunden im Urlaub und hab bestimmt besseres zu
tun.

Zesstra

-----------------------------------------------------------------------------



Re: Re: Alpha 0.7 (Gloinson, 22. Nov 2010, 00:57:22):
~#! rn=Zesstra rt=1290382789 rg=kultur
~#! tid=1290382420
Ich hab es aus Fefes Blog, der linkt auch auf die Mediathek. Ist eher ein
Reminder fuer mich hier, ich werd da (hoffentlich) mal Zeit haben :)


-----------------------------------------------------------------------------



Re^3: Alpha 0.7 (Gloinson, 22. Nov 2010, 00:59:01):
~#! rn=Gloinson rt=1290383842 rg=kultur
~#! tid=1290382420
http://www.ardmediathek.de/ard/servlet/content/3517136?documentId=5817888

6 Teile halt


-----------------------------------------------------------------------------



Daemon (Ark,  5. Feb 2011, 15:31:41):
Von Daniel Suarez, ein sehr gut gemachter (erster Teil) Roman, bei dem wir
Online Spiele Junkies mal mitfiebern koennen :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Petition "Keine Aufnahme der deutschen Sprache ins Grundgesetz" (Gloinson,  7. Feb 2011, 09:24:39):
Eine Gegenpetition zur Petition des "Vereins Deutscher Sprache" (bekannt fuer
seine Anti-Anglizismen-Einstellungen).

Petition:
https://epetitionen.bundestag.de/index.php?action=petition;sa=details;petition
=15840
http://goo.gl/guB7e

Argumentation:
- im Forum des Petitionsausschusses
und auf dem Blog des Verfassers: http://goo.gl/6DpYp


-----------------------------------------------------------------------------



Film ueber Gnome (Gloinson, 11. Feb 2011, 15:33:32):
http://www.gnomeoundjulia-cards.de/


-----------------------------------------------------------------------------



Buchempfehlung (Ark, 14. Mar 2011, 00:16:26):
Falls mal wieder wer was Neues lesen will: "The lies of Locke Lamora" von
Scott Lynch. Ebenso der naechste Teil einer 7teiligen Serie (hoffentlich nicht
ala GRRM). Im Stil einer Raeuberepik mit origineller Umgebung und Ideen,
interessant geschrieben und gegliedert. Den zweiten Band les ich grad ("Red
Seas under Red Skies"), erinnert etwas an Ocean's 11. Wer solche Fantasy mag,
ist gut bedient ... unbedingt auf Englisch lesen, toll geschrieben imho.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Romantisches Liedchen (Gloinson, 18. Mar 2011, 12:40:04):
http://www.youtube.com/watch?v=LAzodf69rfk

Maybe ... not ... so ...


-----------------------------------------------------------------------------



Benefizkonzert am Do, 7.4. in DD (Gloinson, 30. Mar 2011, 18:57:08):
http://www.gjf.de/files/Benefizkonzert-fuer
Japan_Dresden_07.04.2011.pdf

Falls schon wer dort ist.


-----------------------------------------------------------------------------



Benefizkonzert am Do, 7.4. in DD (Gloinson, 30. Mar 2011, 19:06:46):
http://www.gjf.de/files/Benefizkonzert_fuer_Japan_Dresden_07.04.2011.pdf

Falls schon wer dort ist.


-----------------------------------------------------------------------------



Electro for Japan (Vanion,  3. Apr 2011, 22:42:34):
Vielleicht ist ja was fuer jemanden dabei:
http://electroforjapan2011.bandcamp.com/album/electro-for-japan-2011

V*

-----------------------------------------------------------------------------



ASOIAF! (Ark,  5. Jun 2011, 20:07:28):
Falls es wirklich einer noch nicht bemerkt haben sollte (==NOOB), GRRM hat ja
schon seit laengerem das Erscheinungsdatum seines 5. Bands kundgetan, und ich
habe gerade vorbestellt ... ich bin SO auf geregt ... wollte ich nur mal
kundtun :-)
Wer denkt "was faselt der Idiot da?", kann es getrost vergessen, denn er/sie
wird keine Ahnung haben ... und sich wohl auch nicht anstecken lassen, oder?
;^D


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: ASOIAF! (Humni,  5. Jun 2011, 20:18:13):
~#! rn=Ark rt=1307297248 rg=kultur
~#! tid=1307297248
Hab Mitte Mai ausgerechnet, dass ich noch so viele Tage habe, um pro Tag 73
Seiten zu lesen, wenn ich vorher die AGOT, ACOK, ASOS und AFFC nochmal
durchbekommen moechte. Bin derzeit im Zeitplan, damit ich mich selbst
puenktlich zum Erscheinen von ADWD nochmal aktualisiert auf den Stand bringe,
den ich vergessen habe.

Humni

-----------------------------------------------------------------------------



Re: Re: ASOIAF! (Zook,  5. Jun 2011, 22:58:43):
~#! rn=Humni rt=1307297893 rg=kultur
~#! tid=1307297248
eintscheidende passage war "den ich vergessen habe"? ;) 
z

-----------------------------------------------------------------------------



JBO und Co (Gloinson,  6. Jun 2011, 18:30:13):
http://www.thelonelyisland.com/album/turtleneck-chain

Videos anklicken und irritiert zugucken.


-----------------------------------------------------------------------------



Re: JBO und Co (Rumata,  6. Jun 2011, 20:31:14):
~#! rn=Gloinson rt=1307377813 rg=kultur
~#! tid=1307377813
Ohren zuhalten nicht vergessen.

-----------------------------------------------------------------------------



Re: Re: JBO und Co (Gloinson,  6. Jun 2011, 22:12:46):
~#! rn=Rumata rt=1307385074 rg=kultur
~#! tid=1307377813
Ich finde das Stueck mit Bolton beeindruckend gut ;)

Oder ist das mit Rihanna besser? :D


-----------------------------------------------------------------------------



Nachtwanderung fuer Staedtebewohner (Zesstra, 10. Jun 2011, 21:21:36):
Huhu,

wer einigermassen gut zu Fuss ist und mal gerne eine Nachtwanderung zu den
/ueber die Halden des Ruhrgebiets machen moechte, dem sei die Haldensaga am
23.7. ans Herz gelegt.
Hierbei macht man eine Wanderung vom Abend ueber den Sonnenuntergang bis zum
Sonnenaufgang. Im Laufe der Wandertour erlebt man zwei Halden, eine bei
Sonnenuntergang und eine bei Sonnenaufgang. Die Touren sind zwischen 14 und
20km lang und haben unterschiedliche Schwierigkeitsstufen. Auf den Halden gibt
es noch unterschiedliche kuenstlerische Darbietungen zu bewundern.

Ich hab ueber das Projekt erst heute Abend gelesen, aber das erscheint mir
durchaus spannend. Und wer nicht aus der Gegend stammt: das Ruhrgebiet
erleuchtet bei Nacht von einer Halde betrachtet, ist schon nett. ;-)

http://www.haldensaga.de/projekt/idee.html

Achja: wer das mitmachen will und nicht aus der Gegend kommt, kann mich gerne
ansprechen bzw. mich als Anlaufstelle nutzen - wohl eher weniger bzgl.
Uebernachtung, aber vielleicht zum Ausschlafen/Schlafnachholen am naechsten
Tag... ;-)

Zesstra

-----------------------------------------------------------------------------



Re^3: ASOIAF! (Hobo, 10. Jun 2011, 21:27:12):
~#! rn=Zook rt=1307307523 rg=kultur
~#! tid=1307297248
Uebrigens gibt's da auch ne Verfilmung vom ersten Band (bzw. ne Serie) und
zumindest die Trailer sahen richtig gut aus!

  Hobo - wartet auch SEEEEHR gespannt, wer denn der 3. Drachenreiter wird ;)

-----------------------------------------------------------------------------



Re^4: ASOIAF! (Ark, 14. Jun 2011, 09:52:32):
~#! rn=Hobo rt=1307734032 rg=kultur
~#! tid=1307297248
Ja, Download fuer die dummen Europaer, bzw. mal schauen, wann irgendwann mal
ein Sender sich hier die Rechte sichert ... wenn GRRM in x Jahren Band 6
fertig hat? :)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



ASOIAF (Saray, 15. Jun 2011, 15:50:23):
Oh toll, dass es hier noch mehr ASOIAF-Leser gibt. Ich freue mich auch schon
wahnsinnig auf deas Erscheinen von ADWD, wobei ich mir Sorgen bezuegl. des
Hoerbuchs mache. Amazon gibt da den 23.12.2012 oder so was an, das macht mir
wirklich Angst. Denn normale Buecher lesen ist bei mir etwas uncool :-D.
Weiss zufaellig jemand was Naeheres ueber das Hoerbuch?

-----------------------------------------------------------------------------



Re: ASOIAF (Gloinson, 15. Jun 2011, 15:56:44):
~#! rn=Saray rt=1308145823 rg=kultur
~#! tid=1308145823
Komm nach Salem und ueberzeug Humni, dir das Buch vorzulesen. Er hat schon
eine Radio-Stimme und das Buch dann einmal durch, da sollte das klappen ;)


-----------------------------------------------------------------------------



Wine Tasting (Gloinson, 17. Jun 2011, 16:33:57):
http://wulffmorgenthaler.com/img/strip/-WM_strip_DK_20110617.jpg


-----------------------------------------------------------------------------



Re: Re: ASOIAF (Saray, 26. Jun 2011, 20:49:44):
~#! rn=Gloinson rt=1308146204 rg=kultur
~#! tid=1308145823
Eigentlich klingt das echt toll, aber vermutlich werd ichs nicht einrichten
koennen. Hausarbeitsstress und der Urlaub meines Freundes ist ne Woche vorher
rum :-(.
Na, vll gibts ja auf der Homepage was Neues dazu, sonst schreib ich Herrn
Martin einfach mal persoenlich ^^.

-----------------------------------------------------------------------------



Spruch der Woche (Gnome, 27. Jun 2011, 13:02:56):
"Natuerlich schaue ich mir die Fussballweltmeisterschaft der Frauen an -
 man guckt ja auch die Paralympics..."

(c) Nico Rosberg, Formel-I-Fahrer

-----------------------------------------------------------------------------



Re: Spruch der Woche (Croft, 28. Jun 2011, 17:04:13):
~#! rn=Gnome rt=1309172576 rg=kultur
~#! tid=1309172576
Richtig zitieren ist nicht einfach.

Croft

-----------------------------------------------------------------------------



Re: Re: Spruch der Woche (Croft, 28. Jun 2011, 17:16:38):
~#! rn=Croft rt=1309273453 rg=kultur
~#! tid=1309172576
http://www.nicorosberg.com/2011/06/nico-rosberg-hier-durch-bekommt-ihr-mal-ein
en-eindruck-vom-haifisch-becken-formel-1/

Croft

-----------------------------------------------------------------------------



Glastonbury statt Wacken! ;) (Gloinson, 29. Jun 2011, 13:46:03):
http://www.boston.com/bigpicture/2011/06/music_and_mud_glastonbury_fest.html

Sieht doch aehnlich aus :D


-----------------------------------------------------------------------------



Re: Glastonbury statt Wacken! ;) (Vanion, 29. Jun 2011, 21:42:36):
~#! rn=Gloinson rt=1309347963 rg=kultur
~#! tid=1309347963
Hmm, ich hab Firefox, better privacy und noscript laufen. Trotzdem kommt bei
dem Link eine Zeile "Google uebersetzer"(bewusst klein geschrieben das ue) und
will mir den Text auf der Seite automatisch verhunzen. Die Yahoo und Google
Toolbars sind ja beruechtigt dafuer, sich mal eben irgendwo huckepack zu
installieren, aber ich seh kein Plugin, dass installiert ist. Ist da irgend
ein daemliches FF5-Feature oder is die Seite Boston.com so nett und leitet all
ihren Content ueber Google an mich?

Ich finde, Google weiss schon mehr als genug ueber mich - bestimmt mehr als
Facebook. Wenn es sich jetzt auch noch fuer Seiten interessiert, die ich schon
direkt ansurfe, wirds mir unheimlich.

Wie geht eigentlich die Exit-Strategie fuers Internet?

V*

-----------------------------------------------------------------------------



Re: Re: Glastonbury statt Wacken! ;) (Vanion, 29. Jun 2011, 21:48:34):
~#! rn=Vanion rt=1309376556 rg=kultur
~#! tid=1309347963
Ah, es handelt sich um einen Service, der per Java-Skript auf der Seite
eingebunden wird. Da das Skript selbst ueber google.com und nicht ueber
googleanalystics.com gehostet ist, kann man es nicht abschalten, ohne
Google-Skripte generell (ausser auf google.com selbst) zu verbieten.

Mistgoogle.

V*

-----------------------------------------------------------------------------



Re^3: Glastonbury statt Wacken! ;) (Zook, 29. Jun 2011, 21:56:48):
~#! rn=Vanion rt=1309376914 rg=kultur
~#! tid=1309347963
Ich hab noch RequestPolicy als Plugin, da faellt sowas glaube ich
auch raus. 

Kann aber manchmal nervig sein, wenn zB Ebay 100 von anderen Seiten
ansteuern will und nicht kann. 

Exit-Strategie?

Hab neulich erste Leute gefunden, die ihr Mobiltelefon abgegeben haben.

Z

-----------------------------------------------------------------------------



Re^3: Glastonbury statt Wacken! ;) (Zesstra, 29. Jun 2011, 21:57:03):
~#! rn=Vanion rt=1309376914 rg=kultur
~#! tid=1309347963
Ich persoenlich hab google.* nicht im Noscript freigeschaltet, Google geht
auch prima ohne. Dementsprechend seh ich den Translate-Dienst auch nicht auf
bostom.com, solange ich nicht div. Ausnahmen definiere.
Achdoch, googleapis.com ist per default erlaubt, das benutzen jede Menge
Seiten. Das ist halt der Nachteil von so Diensteanbietern.

Zesstra

-----------------------------------------------------------------------------



Re^4: Glastonbury statt Wacken! ;) (Zesstra, 29. Jun 2011, 21:58:18):
~#! rn=Zook rt=1309377408 rg=kultur
~#! tid=1309347963
Stimmt Zook, dafuer ist Requestpolicy gut. Und wirklich nervig, wenn man x
Ausnahmen fuer ne Seite definieren musst, bevor man das vernuenftig lesen kann
- insb. wenn die wie bei mir alle nur temporaer sind. ;-)

Zesstra

-----------------------------------------------------------------------------



Re^5: Glastonbury statt Wacken! ;) (Zook, 29. Jun 2011, 21:59:38):
~#! rn=Zesstra rt=1309377498 rg=kultur
~#! tid=1309347963
Aber man kann es halt fuer EBay oder so mal komplett ausschalten, surft
ueber zB Ebay, loescht dann Browser-Cache, schaltet es wieder ein und 
startet FF neu. So mach ich es meistens.

Z

-----------------------------------------------------------------------------



Geschenke fuer Kinder (Gloinson, 10. Jul 2011, 21:05:03):
http://www.tiffanyard.com/ohCOOL/hr.htm

Hrhr.


-----------------------------------------------------------------------------



Re: Geschenke fuer Kinder (Maharet, 14. Jul 2011, 16:59:37):
~#! rn=Gloinson rt=1310324703 rg=kultur
~#! tid=1310324703
Wie cool. Rana ist genau in dem richtigen Alter dafuer.

-----------------------------------------------------------------------------



Re: Re: Geschenke fuer Kinder (Maharet, 14. Jul 2011, 17:03:33):
~#! rn=Maharet rt=1310655577 rg=kultur
~#! tid=1310324703
Dazu, gerade eben von einer ehemaligen Klassenkameradin auf FB gepostet:
http://www.youtube.com/watch?v=d0zION8xjbM

Ich fand die They Might Be Giants ja schon immer klasse ;)

-----------------------------------------------------------------------------



DoD (nein, nicht das Pentagon) (Gloinson, 19. Jul 2011, 18:38:43):
http://www.cad-comic.com/cad/20110718


-----------------------------------------------------------------------------



Papstrede (Gloinson, 22. Sep 2011, 22:52:11):
... oder wie man (aehnlich den Enzyklika) von Atheismus/Nichtreligiositaet ...
Positivismus zur Kulturlosigkeit und Verdammung ersterens kommt.

>> Wo die positivistische Vernunft sich allein als die genuegende Kultur
ansieht und alle anderen kulturellen Realitaeten in den Status der Subkultur
verbannt, da verkleinert sie den Menschen, ja sie bedroht seine
Menschlichkeit. Ich sage das gerade im Hinblick auf Europa, in dem weite
Kreise versuchen, nur den Positivismus als gemeinsame Kultur und als
gemeinsame Grundlage fuer die Rechtsbildung anzuerkennen, alle uebrigen
Einsichten und Werte unserer Kultur in den Status einer Subkultur verwiesen
und damit Europa gegenueber den anderen Kulturen der Welt in einen Status der
Kulturlosigkeit gerueckt und zugleich extremistische und radikale Stroemungen
herausgefordert werden. 

Die sich exklusiv gebende positivistische Vernunft, die ueber das
Funktionieren hinaus nichts wahrnehmen kann, gleicht den Betonbauten ohne
Fenster, in denen wir uns Klima und Licht selber geben, beides nicht mehr aus
der weiten Welt Gottes beziehen wollen. Und dabei koennen wir uns doch nicht
verbergen, dass wir in dieser selbstgemachten Welt im stillen doch aus den
Vorraeten Gottes ...<<

http://www.spiegel.de/politik/deutschland/0,1518,787896,00.html

Zu dem gesamten Gedankengang kann man eigentlich nur dann am Ende (das noch
ein wenig mehr Text hin ist) applaudieren, weil man den Anfang vergesesn hat.


-----------------------------------------------------------------------------



Re: Papstrede (Zesstra, 22. Sep 2011, 22:54:53):
~#! rn=Gloinson rt=1316724731 rg=kultur
~#! tid=1316724731
Kein Wunder, dass das im Spiegel steht. Wobei ich sowas in der Art neulich
auch in der Zeit las.

Zesstra

-----------------------------------------------------------------------------



Re: Re: Papstrede (Zesstra, 22. Sep 2011, 23:01:16):
~#! rn=Zesstra rt=1316724893 rg=kultur
~#! tid=1316724731
Korrektur:
Ich hatte das erst fehl verstanden und dachte, das sei ein Kommentar/Kolumne
zum Papstbesuch, nicht ein Auszug aus der Rede selbst.
Den Abdruck einer Rede vor dem Parlament sei natuerlich jedem
Nachrichtenmagazin zugestanden. :-)

Zesstra

-----------------------------------------------------------------------------



Re^3: Papstrede (Gloinson, 22. Sep 2011, 23:12:51):
~#! rn=Zesstra rt=1316725276 rg=kultur
~#! tid=1316724731
Ja. Auch die Rede sei ihm unbenommen, da ist er halt Chef eines Staates und
irgend ein wichtiger Kerl (Lammert) hat ihn eingeladen.

Unbenommen ist mir die leichte Uebelkeit beim Spielen mit Begriffen wie
Oekologie, Okeologie des Menschen (sic!) und dem Heranziehen etwas zu alter
Leute als Vorlage fuer eine Autoritaetsargumentation. Ja, begnadeter
Rhetoriker, der Ratzi. Ja, ich haette sicher auch in dem Moment frenetisch
Beifall gespendet.


-----------------------------------------------------------------------------



Re^4: Papstrede (Zook, 23. Sep 2011, 10:29:48):
~#! rn=Gloinson rt=1316725971 rg=kultur
~#! tid=1316724731
Ich hab's ja nur so am Rande verfolgt, aber er schien sich 
doch ganz gut geschlagen zu haben. Hat auch das alte 
protestantische Sprichwort ueber Predigten beherzigt: "Du kannst
ueber alles predigen, nur nicht ueber 20 Minuten." (okay, ist auch
nen allgemeines sprichtwort fuer rhetorik, aber bei den pfarrern
auch sehr beliebt.)

und man kann doch gaeste mal was erzaehlen lassen, muss es ja nicht
zwingend moegen oder zustimmen, um hinterher zu applaudieren. 

z

-----------------------------------------------------------------------------



Re^5: Papstrede (Rumata, 23. Sep 2011, 10:32:22):
~#! rn=Zook rt=1316766588 rg=kultur
~#! tid=1316724731
Was meint ihr, wieviel % der Anwesenden mit dem Begriff "positivismus"
etwas anfangen konnten?

-----------------------------------------------------------------------------



Re^6: Papstrede (Gloinson, 23. Sep 2011, 15:26:06):
~#! rn=Rumata rt=1316766742 rg=kultur
~#! tid=1316724731
Sind nicht ein Gutteil der Leute da Anwaelte?


-----------------------------------------------------------------------------



Re^7: Papstrede (Zook, 23. Sep 2011, 15:26:53):
~#! rn=Gloinson rt=1316784366 rg=kultur
~#! tid=1316724731
Da koennte nun Maharet ein paar Bonmots aus Buechern
zum besten geben.
Z

-----------------------------------------------------------------------------



Re^8: Papstrede (Maharet, 23. Sep 2011, 15:30:24):
~#! rn=Zook rt=1316784413 rg=kultur
~#! tid=1316724731
Du meinst, Familienrecht und Papst passen gut zusammen?

-----------------------------------------------------------------------------



Re^9: Papstrede (Zesstra, 23. Sep 2011, 15:30:49):
~#! rn=Maharet rt=1316784624 rg=kultur
~#! tid=1316724731
Auf jeden Fall!

Zesstra

-----------------------------------------------------------------------------



Anspielungen ... (Gloinson, 26. Sep 2011, 19:14:49):
... die man erst Jahre spaeter kapiert.

http://www.imdb.com/media/rm3875379456/tt0206634
(Children of Men: Schwein ueber Battersea Power Station)

http://www.spiegel.de/panorama/0,1518,788408,00.html
(Pink Floyd ... vor 35 Jahren heute nach gestellt)


-----------------------------------------------------------------------------



Eternal Flame (Gloinson,  6. Okt 2011, 23:28:14):
https://www.xkcd.com/961/

Goettlich. Erinnert mich an die Abende, wenn im RZ das Netz down war und wir
Sim City im Apple-Kabinett spielen gingen ...


-----------------------------------------------------------------------------



CDC - Warnungsblatt (Gloinson, 21. Okt 2011, 13:23:56):
Ich fuerchte, unser Gesundheitsministerium ist nicht so gut vorbereitet.

http://www.cdc.gov/phpr/documents/11_225700_A_Zombie_Final.pdf


-----------------------------------------------------------------------------



Re: CDC - Warnungsblatt (Rumata, 21. Okt 2011, 13:40:21):
~#! rn=Gloinson rt=1319196236 rg=kultur
~#! tid=1319196236
Joa, is den schon Haellowien?

-----------------------------------------------------------------------------



Unentartete Kunst (Gloinson, 24. Okt 2011, 10:07:43):
http://www.gdk-research.de/

Siehe auch
http://www.welt.de/kultur/history/article13669404/Hitlers-Mythos-der-Nazi-Kuns
t-freigeschaltet.html


-----------------------------------------------------------------------------



Terry Pratchett - Choosing to die (Gloinson, 11. Nov 2011, 21:22:18):
http://vimeo.com/25239708


-----------------------------------------------------------------------------



Re: Terry Pratchett - Choosing to die (Vanion, 13. Nov 2011, 22:10:04):
~#! rn=Gloinson rt=1321042938 rg=kultur
~#! tid=1321042938
Starker Tobak. Danke fuer den Link.

V*

-----------------------------------------------------------------------------



Dr. Who fuer Dummies (Rumata, 23. Nov 2011, 10:30:49):
Wenn man bei Dr. Who einsteigen will, welche Staffel empfiehlt sich
da so?

-----------------------------------------------------------------------------



Re: Dr. Who fuer Dummies (Humni, 23. Nov 2011, 20:10:20):
~#! rn=Rumata rt=1322040649 rg=kultur
~#! tid=1322040649
Ich hab die erste der "neuen" Staffeln genommen. Kam man ganz gut rein. Das
ist die mit Eccelstone, 9. Doktor. Ich gebe aber zu, weiter als diese Staffel
hab ich noch nicht geschaut. Immerhin kriegt man da die Anfaenge von Torchwood
mit. Was auch toll ist - die ersten beiden Staffeln, dann kommt das gruselige
"Kinder der Erde", mit tollem Anfang und daemlichem Ende.

Humni

-----------------------------------------------------------------------------



Calvin and Hobbes ... (Gloinson, 25. Nov 2011, 17:20:29):
Keine Ahnung, ob das nicht nur eine Werbemasche ist: aber ueber Umweg Barnes
and Noble ist bei Amazon momentan der Complete Calvin and Hobbes I-III fuer
~60 Athener Eulen zu haben.


-----------------------------------------------------------------------------



Re: Calvin and Hobbes ... (Zesstra, 25. Nov 2011, 17:25:24):
~#! rn=Gloinson rt=1322238029 rg=kultur
~#! tid=1322238029
Bis Anfang Dezember gibt es uebrigens auch 4 Wildcards-Buecher (George R.R.
Martin und weitere) fuer 2.99$ bei div. ebook-Haendlern.

Zesstra

-----------------------------------------------------------------------------



Re: Re: Calvin and Hobbes ... (Gloinson, 25. Nov 2011, 17:29:52):
~#! rn=Zesstra rt=1322238324 rg=kultur
~#! tid=1322238029
Meh. Da brauch ich erst einen neuen Reader ... meinen hat eine Schwangere
zerstoert - zu grosser Wendekreis ;)


-----------------------------------------------------------------------------



Fuer alle Schandmaul-Fans... (Zesstra, 22. Jan 2012, 20:29:16):
http://www.15jahre-schandmaul.de/
2-Tage Ende August 2013, am Tanzbrunnen in Koeln.

Zesstra

-----------------------------------------------------------------------------



Buchempfehlung (Miraka,  3. Feb 2012, 10:25:58):
Replay ... von Ken Grimwood, laeuft unter Science Fiction, hat aber eigentlich
keine in futuristischen Gewaendern herumlaufende Humanoide oder tiefgruendig
technisches Bohei zu bieten, sondern behandelt ganz interessant das Thema
Zeitreise/Wiedergeburt. Gut, kompakt geschrieben und aeusserst unterhaltsam.

-----------------------------------------------------------------------------



geistesblitz-gedicht (Tin,  6. Dez 2012, 21:03:45):
Wenn die liebe die fluegel schwingt, leise die melodie erklingt, dann hoere
nicht weg, nein hoere zu, denn diese liebe bekommst du. Irgendwann wird er vor
dir stehen, dich ansehen, in den arm nehmen. Ihr werdet ausgehen, du wirst in
seinen armen liegen, traeumen. Hoer auf die fantasie weg zu raeumen, Nimm sie
aus der schublade, mache sie zur wirklichkeit, aber nur wenn du weisst du bist
bereit. Lasse die fluegel der liebe schwingen, die melodie erklingen und die
stimme deines gluecks dazu singen.

... keine rechtschreibueberpruefung drueberlaufen lassen, geistesblitz einfach
niedergeschrieben.
Lg
tin

-----------------------------------------------------------------------------



gedankenblitz: lebe und denke nicht an morgen (Malie, 11. Dez 2012, 13:49:39):
Lass dein Haar im Winde flattern,
Lass deinen Schluessel am Ringfinger klappern.
Lauf gedankenlos durch die Welt,
Tu einfach das was dir gefllt.
Sei frei und hab keine Sorgen,
Lebe und denke nicht an morgen.


-----------------------------------------------------------------------------



ein link (Malie, 12. Dez 2012, 21:12:17):
http://www.sevillana.de/weise-welt/frieden.htm

eine schoene seite mit schoenen spruechen. die seite hat es mir echt angetan.

-----------------------------------------------------------------------------



klavierst|ck (Malie, 16. Dez 2012, 17:27:44):
einfach traumhaft schn

http://www.youtube.com/watch?v=fMmeLzhpkWw

-----------------------------------------------------------------------------



wir retten die welt ohne umlaute (Arson, 20. Dez 2012, 11:52:42):
Und wenn ich die welt nun nicht mehr retten kann, dann will ich wenigstens
mich mit den mir gegebenen mittel retten! Das ist zwar nicht sonderlich viel
aber ich brauche auch nur meine haende und etwas aluminiumfolie.

Die hier hinterlegten masnahmen dienen lediglich der abwehr von boesartigen
strahlungen, auserirdischen, himmelskoerpern und duerfen einzig zu
komerziellen zwecken eingesezt werden. Im optimalfall fuehren sie die hier
beschriebenen praktiken zuhause aus, da dort alle materialien vorhanden sind
und keine stoehrung durch aeualuminiumfolie.erliche einfluesse droht.
Kindern unter drei jahren wird empfolen sich diesen text vorlesen zu lassen!

Um der unmittelbar bevorstehenden gefahr, dem untergang der menschheit
entgegen zu 
wirken bin ich mir als experte einig helfen folgende punkte!

1.2basteln sie fuer freunde, nachbarn, und haustiere muetzen aus
luminiumfolie, beachten sie dabei das wichtige koerperteile wie ohren, nacken,
stirn und die kniescheiben mit abgedeckt werden.
2.397hoffen sie das ihnen auch jemand solch ein objeckt der begierde schenkt.
3.7verteilen sie die von ihnen gebastelte schutzbekleidung
4.Artikelnsetzen sie nun ihre muetze auf und legen sie diese hoehstens beim
schuhe anziehen ab.
5.4 statten sie sich mit einem topf fingerfarbe ihrer wahl aus und malen sie
jedem der ihnen entgegen kommt das symbol ihrer bezieung auf die muetze. 
Beispiele:
Freund = abdruck vom Linkem zeigefinger
Guter freund = abdruck vom rechten zeigefinger
Sehr guter freund = abdruecke von beiden zeigefingern
Schlechter bekannter = abdruck vom stinkefinger
Sehr schlechter bekannter = abdruck vom ellenbogen
Groellenbogene liebe = abdruck vom kussmund
Kleine liebe = abdruck der unterlippe 

6.1stellen sie sich morgen abend auf einen platz unter freiem himmel, so das
sich ueber ihnen moeglichst keine wolken befinden und leuchten sie sich mit
einer kerze oder taschenlampe gegen ihr schutzobjekt.

DAMIT VERMITTELN SIE ALLEN DAS SIE SICH VON MEDIEN NATUERLICH GERNE WILD
MACHEN LASSEN ABER NICHT VOR PANIK UND WENN ES EINEN GRUND ZUM FEIERN GIBT
DANN WIRDS GEMACHT EGAL WIE TRAURIG DER ANLASS IST.

Ich wuensche allen frohe feiertage und viel spass mit ihren familien und
freunden!




-----------------------------------------------------------------------------



Re: wir retten die welt ohne umlaute (Malie, 20. Dez 2012, 21:38:06):
~#! rn=Arson rt=1356000762 rg=kultur
~#! tid=1356000762
*lach* mmensch wie geil ist das denn...

-----------------------------------------------------------------------------



die welt (Malie, 22. Dez 2012, 12:46:26):
baaaam, wir leben noch!!!
hoch lebe die welt
anstossen auf den naechsten untergang

gruss
malie

-----------------------------------------------------------------------------



Re: die welt (Zesstra, 22. Dez 2012, 12:57:05):
~#! rn=Malie rt=1356176786 rg=kultur
~#! tid=1356176786
Jep. Was ist denn der naechste, der angekuendigt ist?

Zesstra

-----------------------------------------------------------------------------



Re: Re: die welt (Malie, 22. Dez 2012, 12:57:58):
~#! rn=Zesstra rt=1356177425 rg=kultur
~#! tid=1356176786
sage also ich sag jetzt mal hmm...

die welt wird am 21.01.2013 untergehen.
jeder darf mal einen weltuntergang bestimmen. lassen wir den einfach so.
verschieben ihn auf januar^^ 

-----------------------------------------------------------------------------



Re^3: die welt (Zesstra, 22. Dez 2012, 12:58:42):
~#! rn=Malie rt=1356177478 rg=kultur
~#! tid=1356176786
Na, dann schauen wir mal, ob Du recht hast. ;-)

Zesstra

-----------------------------------------------------------------------------



Re^4: die welt (Malie, 22. Dez 2012, 12:59:38):
~#! rn=Zesstra rt=1356177522 rg=kultur
~#! tid=1356176786
neee, bis jetzt hatte noch keiner recht^^ 

-----------------------------------------------------------------------------



Re^5: die welt (Gloinson, 22. Dez 2012, 20:54:24):
~#! rn=Malie rt=1356177578 rg=kultur
~#! tid=1356176786
Die Welt wird untergehen, sobald wir und alle uns Bekannten und Verwandten
zwei Minuten tot sind.

Ist doch fair, oder?


-----------------------------------------------------------------------------



Re^3: die welt (Miril, 22. Dez 2012, 21:42:50):
~#! rn=Malie rt=1356177478 rg=kultur
~#! tid=1356176786
Davon halte ich ja gar nichts. Das ist ein Tag vor meinem Geburtstag. Ich will
wenigstens noch die Geschenke haben :).

Miril

-----------------------------------------------------------------------------



Re^6: die welt (Malie, 22. Dez 2012, 21:54:44):
~#! rn=Gloinson rt=1356206064 rg=kultur
~#! tid=1356176786
ok abgemacht^^ 

-----------------------------------------------------------------------------



Django Unchained (Ark, 12. Mar 2013, 01:14:09):
Sagte ich schon, dass der Film absolut klasse ist? Nein? Dann hole ich es
hiermit nach. Hab' mich kaputtgelacht, und Christoph Waltz ist wirklich
wuerdiger Oscar Preistraeger. Nicht dass er das braucht, aber recht so. Wer
noch eine Kostprobe noetig haette: Der Gott des Gemetzels (Carnage). Chapeau,
Mr. Waltz.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Django Unchained (Zook, 15. Mar 2013, 14:25:23):
~#! rn=Ark rt=1363047249 rg=kultur
~#! tid=1363047249
Hast Du Dir auch schon einen Wackelzahn bestellt?

Zook

-----------------------------------------------------------------------------



wieder ein gedichtlein (Tin, 27. Apr 2013, 21:58:58):
Meine kleinen Schritte,
sich im allerkleinsten Kreise drehen.
Sterne im Himmel leuchten,
der Mond sie uebertrifft.
Wir 2 alleine, im Mondschein,
bitte lass diesen Moment doch einfach ewig sein.

Leichte kuehle Brise,
unsere Koerper leicht zum zittern bringt,
da draussen auf der Wiese,
ein Engel seine Fluegel schwingt.
Wessen Engel das ist,
deiner?
meiner?
oder wird er vermisst?

Ein Blick in deine Augen,
blicke in dein Gesicht,
bringen mir auch beim genauen hinschauen nicht,
was ich mir erhoffte,
ein einfaches Ich liebe dich.
Begriffen habe ich in dem Moment,
das der Engel auf der Wiese nicht seine Fluegel schwingt,
sondern um sein Leben rennt,
Weil er nicht das sieht,
was er sehen will.

gruss tin:)

-----------------------------------------------------------------------------



BluRay Empfehlung (Ark,  3. Jun 2013, 23:01:43):
Samsara ... sehr beeindruckende und bedrueckende Bilder, von den Regisseuren
von Baraka. Einfach nur toll.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Geheime Botschaften (Ark,  5. Jun 2013, 01:18:26):
von Simon Singh. Immer wieder angenehm zu lesen (from an amateur's point of
view). Wer sich fuer Kryptographie ohne allzuviel Mathematik interessiert, ein
lesenswertes Buch.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Musik aus Norwegen (Ark, 13. Jun 2013, 00:59:19):
Da ich wieder in Stimmung bin, hier eine Empfehlung fuer die Gesamtaufnahme
des Grieg'schen Klavierwerkes:
Pianist ist Geir Henning Braaten, die 12 CDs sind bei Victora A/S erschienen
... wahrscheinlich nicht in jedem Laden erhaeltlich, vielleicht vergriffen, da
1993 aufgenommen, ich konnte sie auch nur ueber Amazon vervollstaendigen, aber
sie sind das Geld wert. Auch wenig gehoerte Stuecke und seine klaviervertonten
Orchesterstuecke sind zu hoeren. Two thumbs up!


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Buchempfehlung (Ark, 27. Aug 2013, 22:17:12):
Da hier sonst keiner Kultur zu haben scheint, hier ein Buchtipp von mir: Fevre
Dream, von unserem guten alten George R.R. Martin. Nicht so 0815 "Biss zum
Kotzkrampf" Vampirgeschichte, sondern mal ein wenig anderes. Mehr will ich mal
nicht verraten. Mein erstes E-Book btw., ist nicht ganz so schlimm, wie ich
erwartet hatte, aber den klassischen Buechern schwoere ich dennoch nicht ab
:-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Buchempfehlung (Tin, 27. Aug 2013, 22:17:53):
~#! rn=Ark rt=1377634632 rg=kultur
~#! tid=1377634632
buecher aus Papier sind die aller bessten

-----------------------------------------------------------------------------



Re: Re: Buchempfehlung (Ark, 27. Aug 2013, 22:21:09):
~#! rn=Tin rt=1377634673 rg=kultur
~#! tid=1377634632
Da musste ich grad wild lachen ... "Frueher war alles besser" von der neuen
Saltatio Mortis -> Zitat "... frueher, da war'n die Buecher aus Papier ..."


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Buchempfehlung (Tin, 27. Aug 2013, 22:21:53):
~#! rn=Ark rt=1377634869 rg=kultur
~#! tid=1377634632
lach, ja, das ist aber so:)
wenigstens kann man das buch anfassen und blaettern

-----------------------------------------------------------------------------



Re^4: Buchempfehlung (Ark, 27. Aug 2013, 22:25:36):
~#! rn=Tin rt=1377634913 rg=kultur
~#! tid=1377634632
Nun, das Lied geht anders weiter ... frueher war eben nicht alles besser, nur
anders.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^5: Buchempfehlung (Tin, 27. Aug 2013, 22:31:15):
~#! rn=Ark rt=1377635136 rg=kultur
~#! tid=1377634632
jaja, heute ist alles besser weil die technick unser leben  in die hand
nimmt...

ich bleibe bei meinen papierbuechern:-D

-----------------------------------------------------------------------------



Re: Re: Buchempfehlung (Gloinson, 27. Aug 2013, 22:39:09):
~#! rn=Tin rt=1377634673 rg=kultur
~#! tid=1377634632
Ich find die Story noch viel besser als das exakte Format. Neulich hab ich mir
mal The Armageddon Rag von GRRM reingezogen, das war auch sehr unterhaltsam
und melancholisch (spielt um 1969-83). Auf meinem boesen LCD-Geraet.

PS: Natuerlich sucht man danach 'Froggy the Gremlin.' Macht man. Macht man.


-----------------------------------------------------------------------------



Re^3: Buchempfehlung (Ark, 27. Aug 2013, 23:17:07):
~#! rn=Gloinson rt=1377635949 rg=kultur
~#! tid=1377634632
Na ich hab mir jetzt Tuf Voyaging geholt, die Kurzgeschichte in Dreamsongs hat
mir schon ganz gut gefallen. Schaumerma.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^4: Buchempfehlung (Zesstra, 27. Aug 2013, 23:22:24):
~#! rn=Ark rt=1377638227 rg=kultur
~#! tid=1377634632
Tuf Voyaging ist unterhaltsam. :-)

Zesstra

-----------------------------------------------------------------------------



Re^4: Buchempfehlung (Gloinson, 27. Aug 2013, 23:26:18):
~#! rn=Ark rt=1377638227 rg=kultur
~#! tid=1377634632
Tuf Voyaging ist ein der besten SF, die ich je gelesen habe ... und ich hab
die Kurzgeschichte in einer Sammlung um 90 das erste Mal gelesen (und erst
sehr spaet den Link GRRM zwischen dieser Geschichte und dem Song of Ice and
Fire gefunden). Was mir sehr daran gefaellt: die Vorgeschichte des
Schiffes/der Menschheit, auf die immer wieder in seinen Buechern angespielt
wird. Wo andere die Space Opera um den Aufstieg und Zerfall schreiben wuerden,
ist das bei ihm gerade mal ein Rahmen.


-----------------------------------------------------------------------------



Re^5: Buchempfehlung (Ark, 27. Aug 2013, 23:27:18):
~#! rn=Gloinson rt=1377638778 rg=kultur
~#! tid=1377634632
Ey! Spoiler! :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^6: Buchempfehlung (Gloinson, 27. Aug 2013, 23:28:01):
~#! rn=Ark rt=1377638838 rg=kultur
~#! tid=1377634632
Noe. That's the point.


-----------------------------------------------------------------------------



Re^7: Buchempfehlung (Humni, 28. Aug 2013, 02:03:54):
~#! rn=Gloinson rt=1377638881 rg=kultur
~#! tid=1377634632
Wollte nur betonen: Mir gings genauso wie Gloinson. Ich hab irgendwann (muss
in den 80ern gewesen sein) von meinen Eltern einen SF-Sammelband bekommen.
Unter anderem mit "Bestien fuer Norn", einer Tuf-Story. Damals war ich in dem
Alter, in dem man alles in Toplisten einsortiert. Kuerzlich habe ich also mal
festgestellt, dass ich mit Fueller den 1. Platz in dem Buch an diese Story
vergeben habe. Ich war schon lange GRRM-Fan, bevor ich das wusste. ;-)

Und ausserdem, hats noch keiner erwaehnt... A song for Lya. Gibts als
Kurzgeschichtensammlung. Die Titelstory war sein erster Hugo, und wenn man sie
liest, weiss man auch, warum er den damals bekommen hat.

Humni

-----------------------------------------------------------------------------



Re^8: Buchempfehlung (Gloinson, 28. Aug 2013, 02:53:11):
~#! rn=Humni rt=1377648234 rg=kultur
~#! tid=1377634632
Das Buch hab ich tatsaechlich erst in Paris auf einem Troedelmarkt ergattern
koennen. Manche Buecher sind einfach nicht (preiswert) zu haben, da schafft
die schoene neue Digitalwelt hoffentlich auch auf lange Sicht hin konstant
Abhilfe.

... wie ich gerade sehe, ist das bei dem von mir seit ein paar Jahren
gesuchten Buch aus der Star Trek Vanguard-Reihe nur teilweise der Fall. 22,40
Euro neu aufgelegtes Taschenbuch, 11 Euro Kindle-Version. Hust.


-----------------------------------------------------------------------------



Re^9: Buchempfehlung (Saray, 29. Aug 2013, 19:39:47):
~#! rn=Gloinson rt=1377651191 rg=kultur
~#! tid=1377634632
Fevre Dream ist eine tolle Geschichte und ein schoenes Beispiel wie
Vampirromane sein sollten / koennten und ja durchaus auch mal waren, selbst
wenn sich da heute keiner mehr dran erinnert...
Tuf Voyaging gibts leider nicht als englisches Hoerbuch, zumindest hab ichs
nicht gefunden und GRRM will ich eigentlich nicht auf deutsch lesen, wenn
sichs vermeiden laesst.
Dream Songs gabs dafuer widerum und dafuer bin ich sehr dankbar, aber toller
waers natuerlich, wenns irgendwann mal alles gaebe, so auch z.B. die erwaehnte
Sammlung von Humni. A Song For Lya ist eine grossartige Geschichte.

-----------------------------------------------------------------------------



Knorkator... (Zesstra, 29. Aug 2013, 23:16:59):
Kennt einer noch diesen Auftritt von Stumpen und Alf Ator bei irgendeiner
Talkshow vor gaaanz langer Zeit...? Ich glaube, Alf Ator ist da mit nem
Hasenkostuem rumgelaufen. Gibt es das auf Youtube?

Zesstra

-----------------------------------------------------------------------------



Re^10: Buchempfehlung (Ark, 29. Aug 2013, 23:35:44):
~#! rn=Saray rt=1377797987 rg=kultur
~#! tid=1377634632
Sandkings ist mein Favorite aus "Dreamsongs". Wirklitsch cool :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^11: Buchempfehlung (Zesstra, 29. Aug 2013, 23:40:22):
~#! rn=Ark rt=1377812144 rg=kultur
~#! tid=1377634632
Sandkings ist total cool, ja. Wirklich gruslig.

Zesstra

-----------------------------------------------------------------------------



Re^12: Buchempfehlung (Gloinson, 30. Aug 2013, 00:39:19):
~#! rn=Zesstra rt=1377812422 rg=kultur
~#! tid=1377634632
Sandkings ist die Vorlage fuer den Outer Limits-Teil, oder? Sehr cool.


-----------------------------------------------------------------------------



Re^11: Buchempfehlung (Saray, 30. Aug 2013, 00:45:44):
~#! rn=Ark rt=1377812144 rg=kultur
~#! tid=1377634632
Oooh ja, sandkings ist toll. Dicht gefolgt von Lya und der Werwolfstory

-----------------------------------------------------------------------------



Re^12: Buchempfehlung (Saray, 30. Aug 2013, 00:46:56):
~#! rn=Saray rt=1377816344 rg=kultur
~#! tid=1377634632
Und ja, Sandkings ist die Outer Limits-Vorlage, wobei ich die noch nicht so
richtig gesehen habe leider...

-----------------------------------------------------------------------------



Re: Knorkator... (Vanir,  4. Sep 2013, 17:37:30):
~#! rn=Zesstra rt=1377811019 rg=kultur
~#! tid=1377811019
Meinst Du diesen Auftritt?
http://www.myvideo.de/watch/5261949/Knorkator_bei_Oliver_Geissen_1999_part_1_v
on_3
Nun habe ich noch dies gefunden - das ist aber ohne Kostueme und wird nur
erwaehnt um es erwaehnt zu haben.
http://www.youtube.com/watch?v=rbh5JVPY_a0
V.

-----------------------------------------------------------------------------



Re: Re: Knorkator... (Zesstra,  4. Sep 2013, 18:41:19):
~#! rn=Vanir rt=1378309050 rg=kultur
~#! tid=1377811019
Jaaaa! Genau den meine ich. Danke! :-)

Zesstra

-----------------------------------------------------------------------------



Mal wieder angesehen ... (Ark, 22. Okt 2013, 00:59:37):
... und wieder fuer absolut sehenswert befunden:
Spirited Away, Anime von Hayao Miyazaki (Studio Ghibli), Oscar 2003 (also
schon etwas aelter, damals aber bahnbrechend, sozusagen). Inhalt erzaehl ich
nix, muesst ihr selbst (wieder) rauskramen :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Mal wieder angesehen ... (Rumata, 22. Okt 2013, 09:16:21):
~#! rn=Ark rt=1382396377 rg=kultur
~#! tid=1382396377
Jap, sehr empfehlenswert. Wie eigentlich alles von Miyazaki.

-----------------------------------------------------------------------------



Re: Re: Mal wieder angesehen ... (Ark, 22. Okt 2013, 19:10:09):
~#! rn=Rumata rt=1382426181 rg=kultur
~#! tid=1382396377
Achso, der nicht so gelungene deutsche Titel ist btw. "Chihiros Reise ins
Zauberland".


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Mal wieder angesehen ... (Saray, 24. Okt 2013, 20:36:12):
~#! rn=Ark rt=1382461809 rg=kultur
~#! tid=1382396377
Aaah, dann kenn ich den und so ziemlich alles Andere von ihm auch.
Stimmt, kann ich nur unterschreiben. Tolle Animes sind das.
Saray

-----------------------------------------------------------------------------



Tuf Voyaging (Ark, 22. Mai 2014, 20:13:46):
Empfehlung von mir hierfuer. Ok, ich geb zu, angesichts der Wartezeit fuer WoW
hab ich es mir mal runtergeladen, aber es ist ein - typisch - guter Martin.
Liest sich gut runter, interessanter Hauptcharakter, einige abgefahrene Ideen
und ein durchlaufender Faden, der einen gewissen Bezug zu den Problemen
unserer Zeit hat (aber dennoch Fiktion bleibt). Ergo: Two thumbs up.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Tuf Voyaging (Zesstra, 22. Mai 2014, 20:17:23):
~#! rn=Ark rt=1400782426 rg=kultur
~#! tid=1400782426
Ohja, Tuf Voyaging hat mir auch gut gefallen und hat auch viele Fans.
Wenn das mal verfilmt werden sollte, dann sollte uebrigens der Schauspieler
von Varys den Job kriegen. ;-) Das fand GRRM himself auch schon sehr passend.

Zesstra

-----------------------------------------------------------------------------



Re: Re: Tuf Voyaging (Humni, 22. Mai 2014, 20:34:41):
~#! rn=Zesstra rt=1400782643 rg=kultur
~#! tid=1400782426
Ja. Genau.

Und wo wir gerade bei GRRM sind: Er und Gardner Dozois haben Anthologien
rausgebracht, zu "Themen-Charakteren" (nicht zu einem Genre). Bisher gibt es
"Warriors" und "Dangerous Women".

Jede Menge Autoren aus verschiedenen Genres. Nicht jede Story fand ich jetzt
Top of the Pops, aber es waren echte Perlen dabei (ok, die Women hab ich noch
nicht durch, nur Warriors, dennoch). Um den Mund waessrig zu machen: Es gibt
jedes Mal eine neue Martin-Westeros-Story (in Warriors eine Dunk and
Egg-Story). In "Dangerous Women" gibt es z.B. eine Jim Butcher-Story im
Universum von Harry Dresden, Starring Molly. In dem naechsten Band, "Rogues",
wird es eine Patrick Rothfuss-Story ueber Bast geben. (Wem das nix sagt: Die
Dresden Files bzw. The Name of the Wind von den genannten Autoren lesen.)

Ach ja: "Ja. Genau." heisst: Tuf lesen! Und auch "A song for Lya." Damit kann
man verdient einen Hugo gewinnen.

Humni

-----------------------------------------------------------------------------



Re: Re: Tuf Voyaging (Gloinson, 22. Mai 2014, 20:42:09):
~#! rn=Zesstra rt=1400782643 rg=kultur
~#! tid=1400782426
Stimmt, der Schauspieler passt da geistig wie die Faust aufs Auge :)


-----------------------------------------------------------------------------



Re: Re: Tuf Voyaging (Ark, 22. Mai 2014, 20:47:25):
~#! rn=Zesstra rt=1400782643 rg=kultur
~#! tid=1400782426
Ja ... aber zulegen muss er schon noch ... im Gesicht ... und dem Rest :D


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Tuf Voyaging (Gloinson, 22. Mai 2014, 20:48:48):
~#! rn=Ark rt=1400784445 rg=kultur
~#! tid=1400782426
Die Tuf-Diaet schafft das schon. "Wie man als Vegetarier fett wird."


-----------------------------------------------------------------------------



Re^3: Tuf Voyaging (Ark, 22. Mai 2014, 20:49:42):
~#! rn=Humni rt=1400783681 rg=kultur
~#! tid=1400782426
Jo, Rothfuss lese ich auch gern ... auch das selbe "Problem" wie Martin ...
too long eval between installments ;^P
Ach und jetzt widme ich mich "Republic of Thieves" von Scott Lynch, die ersten
beiden Teile waren schon sehr stark.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^4: Tuf Voyaging (Anatol, 26. Mai 2014, 08:28:50):
~#! rn=Ark rt=1400784582 rg=kultur
~#! tid=1400782426
(1) Tuf ist doch schon deutlich aelter, oder? Will nicht sagen "Fruehwerk", 
aber noch vor SoIaF. (2) Was Patrick angeht, bin ich in eine Nachtwind-
Finte gefallen, der mir die Kingkiller Chronicle empfohlen hat und mir
verschwieg, dass der dritte Band erst "in Vorbereitung" ist und der
Bursche nicht der schnellste ist. Grrrr. :)

(3) Und ich werfe, um George und Patrick abzurunden, einen weiteren Tad
in die Runde: The Dirty Streets of Heaven (f.) las sich ueberaus ... ja, 
unterhaltsam. Es ist nicht ganz so hard-boiled detective fiction wie es
Jim Butcher schreiben wuerde, aber aus einer noch ungewoehnlicheren 
Perspektive.


-----------------------------------------------------------------------------



Re^5: Tuf Voyaging (Gloinson, 26. Mai 2014, 12:49:09):
~#! rn=Anatol rt=1401085730 rg=kultur
~#! tid=1400782426
Ist halt noch SF. Schreibt GRRM seit circa 20 Jahren nicht mehr, weil es sich
nicht verkauft. Irgendwo (in den Dreamsongs?) fuehrt er das aus.


-----------------------------------------------------------------------------



Re^5: Tuf Voyaging (Ark, 26. Mai 2014, 22:21:33):
~#! rn=Anatol rt=1401085730 rg=kultur
~#! tid=1400782426
Also ich hab SoIaF 1998 angefangen, als ich auf den ersten Band stiess ... und
dann immer brav die immer laenger waehrenden Intervalle zwischen den Baenden
ueberwinterte :-D
Danach bin ich ueber Dreamsongs so langsam auf die anderen Werke gestossen ...
glaub ueber Fevre Dreams hab ich schon was geschrieben.
Und bei Rothfuss droht nun aehnliches, macht aber auch nix. Inzwischen:
Republic of Thieves von Scott Lynch.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



"Unbekanntes Afrika" (Ark,  6. Aug 2014, 23:09:33):
Heute mal Tierdoku ... obiges Werk ist ... dolle. 5 Episoden ueber den
Kontinent mit extrem coolen Bildern, Geschichten und ... ach, schauts euch an.
Kalahari, Savanne, Kongo, Kap und Sahara, alle Klimazonen werden gezeigt. 1
Jahr Duenenwanderung im Zeitraffer, Giraffenbullenkampf, Elefantenbaby stirbt
(ok, das ist zugegebenermassen eher traurig), Krabbelschildkroetenbabies (da
hilft ein grosser Bildschirm :D), zaertliche Nashoerner bei Nacht, kleine
Echse beim Fliegenfang auf schlafenden Loewen, herumzischende Silberameisen
bei ueber 50 Grad Hitze, ein unerforschter tiefer Hoehlensee in einer dunklen
Erdspalte, und und und ... sie werden es nicht bereuen.
Ach, und die Extras sind auch noch sehr interessant ... insbesondere der
Aufwand, mit der alles in 4 Jahren gedreht wurde. Und natuerlich unbedingt den
englischen Kommentar hoeren, David Attenborough ist da immer sehr klasse.
So, wer jetzt entsetzt guckt, weil ich sowas empfehle, Pech gehabt, mir hat es
mehr als gefallen, und ich hab noch mehr davon :-D


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: "Unbekanntes Afrika" (Tin,  7. Aug 2014, 10:22:55):
~#! rn=Ark rt=1407359373 rg=kultur
~#! tid=1407359373
Klingt gut.
tin

-----------------------------------------------------------------------------



Besondere Muetter mit behinderten Kindern - von Erma Bombeck  (Tin, 12. Okt 2014, 04:03:16):
Besondere Muetter mit behinderten Kindern - von Erma Bombeck 

Die meisten Frauen werden durch Zufall Mutter. Manche freiwillig, einige unter
gesellschaftlichem Druck, andere haben es lange geplant und erhofft, und ein
paar werden Mutter aus reiner Gewohnheit. 

Dieses Jahr werden mehr als 100.000 Frauen Muetter behinderter Kinder werden.
Haben Sie sich schon einmal Gedanken darueber gemacht, nach welchen
Gesichtspunkten die Muetter behinderter Kinder auserwaehlt werden? Ich stelle
mir Gott vor, wie er auf die Erde sieht und sich die Werkzeuge der
Arterhaltung mit groesster Sorgfalt und Ueberlegung aussucht. Er beobachtet
genau und diktiert dann seinen Engeln Anweisungen ins riesige Hauptbuch.

- "Maier, Irmgard: Einen Sohn. Schutzheiliger Matthias 
- Foerster, Margot: Eine Tochter. Schutzheilige: Caecilie 
- Ruester, Carola: Zwillinge. Schutzheiliger? Gebt ihr Gerhard, der ist es
gewohnt, dass geflucht wird.

Schliesslich nennt er einem Engel einen Namen und sagt laechelnd: Ihr gebe ich
ein behindertes Kind. Der Engel ist neugierig: Warum gerade ihr, oh Herr? Sie
ist doch so gluecklich. Eben deswegen sagt Gott laechelnd. 

Kann ich einem behinderten Kind eine Mutter geben, die das Lachen nicht kennt?
Das waere grausam. Aber hat sie denn die noetige Geduld ? fragt der Engel. Ich
will nicht, dass sie zuviel Geduld hat, sonst ertrinkt sie in einem Meer von
Selbstmitleid und Verzweiflung. Wenn der erste Schock und Zorn abgeklungen
sind, wird sie es tadellos schaffen. Ich habe sie heute beobachtet. Sie hat
den Sinn fuer Selbstaendigkeit und Unabhaengigkeit, der bei Muettern so selten
und so notwendig ist. Verstehst du, das Kind, das ich ihr schenken werde, wird
in seiner eigenen Welt leben. Und sie muss es dazu bringen, in der ihren zu
leben. Das wird nicht leicht werden.

Aber Herr, soviel ich weiss, ist ihr Glaube an dich nicht besonders stark,
Gott laechelt. Das macht nichts, das bringe ich schon in Ordnung. Nein, sie
ist hervorragend geeignet. Sie hat genuegend Egoismus. Der Engel ringt nach
Luft. Egoismus ? Ist das denn eine Tugend ? Gott nickt. Wenn sie sich nicht
gelegentlich von dem Kind trennen kann, wird sie das alles nicht ueberstehen.
Diese Frau ist es, die ich mit einem nicht ganz volkommenen Kind beschenken
werde. Sie weiss es zwar noch nicht, aber sie ist zu beneiden. 

Nie wird sie ein gesprochenes Wort, als Selbstverstaendlichkeit hinnehmen. 
Nie einen Schritt, als etwas Alltaegliches. Wenn ihr Kind zum erstenmal Mama
sagt, wird ihr klar sein, dass sie ein Wunder erlebt. 

Wenn sie ihrem Kind einen Baum, einen Sonnenuntergang schildert, wird sie ihn
so sehen, wie nur wenige Menschen meine Schoepfung sehen. 

Ich werde ihr erlauben, vieles deutlich zu erkennen, was auch ich erkenne ---
Unwissenheit, Grausamkeit, Vorurteile --- und ich werde ihr erlauben, sich
darueber zu erheben. Sie wird niemals allein sein. Ich werde bei ihr sein,
jeden Tag ihres Lebens, jede einzelne Minute, weil sie ihre Arbeit ebenso
sicher tut, als waere sie hier neben mir.

Und was bekommt sie fuer einen Schutzheiligen ? fragt der Engel mit gezueckter
Feder. Da laechelt Gott: Ein Spiegel wird genuegen.


Tin

-----------------------------------------------------------------------------



Buchempfehlungen (Humni, 25. Okt 2014, 12:12:37):
Huhu,

hab gerade ein paar Buecher gelesen, die ich mal weiterempfehlen wollte:

"Schwarze Traenen" von Tom Finn
Faust meets Sagen meets Realitaet in unserer Zeit, sehr schoen und spannend
umgesetzt, nette Twists.

"Aquarius" von seligem
Age of Aquarius mal wirklich, eher ein Mystery-Thriller, aber auch spannend
geschrieben, ebenso mit schoenen Twists.

"So finster, so kalt" von Diana Menschig
Sehr interessante Umdeutung von "Haensel und Gretel" und anderen Maerchen. Die
Klischees mal wild durcheinandergemischt.

Ich waere sicher kein tauglicher Feuilletonist, da ich mit "Literaturkritik"
nichts am Hut habe. Ich fange auch nicht an, Romane zu analysieren, ich schaue
also nur, was interessiert, was nicht. Die drei haben mich interessiert und
gut unterhalten. Allerdings gebe ich freimuetig zu, beide Autoren zu kennen
(nicht so richtig gut, aber immerhin ein wenig), von daher sind meine
Meinungen da sicher nicht komplett objektiv. (Waeren die Sachen aber so
richtig schlecht, wuerde ich jetzt hier auch keine Werbung machen).

Humni

-----------------------------------------------------------------------------



Grade erhalten ... (Ark, 29. Okt 2014, 23:33:36):
Wahrscheinlich etwas frueh, wenn man grad durch das Ding durchgeblaettert hat
und einen Abschnitt gelesen hat, aber dennoch: ich bin schon jetzt von "The
World of Ice and Fire" begeistert: Schoener Einband mit erhabendem Dragon
Sigil, tolle Illustrationen und viele Details, so scheint es, auch einiges,
was man aus den Buechern natuerlich noch nicht kennt. Mehr, wenn ich mal durch
bin :-D


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Doku ueber Kinder mit Behinderungen und deren Familien. (Tin, 19. Nov 2014, 19:14:13):
Huhu,
wie einige von euch wissen, habe ich ein Kind mit Behinderung, genauer gesagt
mit schwerer Epilepsie und deren folgen, deshalb finde ich diese Doku
interessant und wichtig. Die Doku kam am 17.11. im NDR und berichtet ueber 3
familien und insgesammt 4 Kindern mit den verschiedensten Behinderungen.
Schade finde ich, dass man mal wieder ein recht fites DS-Kind genommen hat
fuer die Dreharbeiten. Ganz Allgemein ist die Doku aber sehr sehenswert.
http://www.ndr.de/fernsehen/sendungen/45_min/video-podcast/Kinderleben-mit-Beh
inderung,minuten1420.html

Tin.

-----------------------------------------------------------------------------



Beim Leben meiner Schwester (Roman) Von Jodi Picoult (Tin, 30. Nov 2014, 00:00:40):
Huhu,
da is se wieder - Diesmal ein Buch... lese ich zum 10-mal ebenso habe ich den
Film 10-mal angesehen...Das buch ist natuerlich viel besser... der Film ist
teilweise einfach bescheuert... Ich suche immer wieder, nein, ich finde immer
wieder die parallelen, zwischen dieser familie im Film/Buch und meiner... 

fuer mich ein ethisches Problem, was sich hier auftut...:
Beim Leben meiner Schwester (Roman) Von Jodi Picoult, das 2004 im Original und
2007 auf deutsch erschienen ist, befasst sich mit einer Familie, welches auf
grund einer Leukaemie erkrankung ihres Kindes ein genetisch massgeschneidertes
Baby zeugen laesst, welches als lebendes Ersatzteillager dient. 2009 erschien
der Film zu diesem Buch. Picoult beschreibt die Geschichte der Familie
Fitzgerald. Das Glueck der Eltern Sara und Brian wird zerstoert, als ihr Kind
Kate an Leukaemie erkrankt und kaum noch eine Chance hat. Verzweifelt suchen
sie Rat und werden bei einem Doktor fuendig, der anbietet, ihnen eine
genetisch massgeschneiderte Retortentochter als Ersatzteillager zu
produzieren. Neun Monate spaeter wird Anna geboren und von der Geburt an als
Spenderin von Stammzellen, Knochenmark und anderen lebenswichtigen Stoffen
gebraucht. Mit 13 Jahren verklagt Anna ihre Eltern, da sie selbst bestimmen
moechte, was sie Spendet und was nicht.

. so, schon zu viel verraten.. Ist auf jeden fall lesenswert.. und diskutieren
kann man darueber, seeehr lange.

Tin

-----------------------------------------------------------------------------



Adventskalender (Vanion,  6. Dez 2014, 22:34:29):
Natuerlich ist der coolste Adventskalender der im MG. Das ist praktisch
Allgemeinwissen. Direkt danach kommt aber der von Ronny Kraak, der unter dem
Namen Kraftfuttermischwerk auflegt und auch ein gleichnamiges Blog betreibt.
Seit einigen Jahren, veroeffentlicht er dort im Dezember jeden Tag einen ca.
einstuendigen Mix aus ganz verschiedenen Genres. Die Hintergrundgeschichten
und Tracklisten zum Kalender findet ihr in seinem Blog:
http://www.kraftfuttermischwerk.de/blogg/category/adventskalender-2014/ die,
Mixe stehen in diesem Jahr auch zum Download bei Soundcloud bereit:
https://soundcloud.com/der-das-kfmw-ak

Enjoy.

V*

-----------------------------------------------------------------------------



Die Schlafwandler (Gloinson,  7. Dez 2014, 01:43:10):
Bisschen kontrovers. 1 WK. Kostenguenstig bei der Bundeszentrale Politische
Bildung zu haben:
http://www.bpb.de/shop/buecher/schriftenreihe/182111/die-schlafwandler


-----------------------------------------------------------------------------



Re: Die Schlafwandler (Zook,  7. Dez 2014, 16:20:19):
~#! rn=Gloinson rt=1417912990 rg=kultur
~#! tid=1417912990
Welche Kontroverse meinst Du?

Hm, das Angebot kommt ein bisschen spaet fuer mich.

Zook

-----------------------------------------------------------------------------



Re: Re: Die Schlafwandler (Gloinson,  7. Dez 2014, 16:54:39):
~#! rn=Zook rt=1417965619 rg=kultur
~#! tid=1417912990
Ich hab noch vage im Kopf, dass ihm sogleich Revisionismus an der guten alten
These der Hauptschuld Deutschlands vorgeworfen wurde.


-----------------------------------------------------------------------------



Re^3: Die Schlafwandler (Zook,  7. Dez 2014, 17:03:12):
~#! rn=Gloinson rt=1417967679 rg=kultur
~#! tid=1417912990
Wobei diese These ja auch schon seit langem nicht mehr so en vogue ist. Also 
zumindest nicht durchgaengig.

Zook

-----------------------------------------------------------------------------



Game of Thrones (Gloinson, 22. Mar 2015, 23:29:19):
Bei arte liegt uebrigens "Durch die Nacht mit ... GRRM/Sybel Kekilli" fuer ein
paar Tage auf dem Server. Laeuft gerade, ist aber auch schon online.


-----------------------------------------------------------------------------



2 Filmtipps (Ark, 30. Mar 2015, 20:06:50):
1. Gone Girl, mit Ben Affleck, sehr schoen erzaehlter Beziehungsthriller (hier
und da vielleicht nichts fuer schwache Nerven :-)).

2. A Walk Among the Tombstones, mit Liam Neeson, ein solide gemachter, gut
erzaehlter Thriller um einen Ex Cop, der von einem Verbrecher angeheuert wird.

Mehr sag ich nicht, ich fand beide sehenswert.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



37 Grad: Eltern auf Zeit (Tin,  2. Jun 2015, 19:48:14):
Halb-stuendige Doku ueber Eltern in Bereitschaftspflege.
Mehr als 42000 Kinder werden jaehrlich aus ihren Familien genommen, um sie vor
Gewalt, welche von den Eltern ausgeht zu schuetzen.
Die Eltern in Bereitschaftspflege haben die Aufgabe die Kinder zu betreuen.
Zum 1. Mal in ihrem Leben erleben Kinder, welche aus ihren Familien genommen
wurden, was es heisst liebe zu erfahren und Teil einer Familie zu sein.
Oft bleiben die Kinder nicht lange. Sie werden in Dauer-Pflegefamilien oder
aber auch in ihre Herkunftsfamilie Zurueckgefuehrt.
http://www.zdf.de/37-grad/eltern-auf-zeit-wenn-fremde-kinder-hilfe-brauchen-38
512716.html

tin

-----------------------------------------------------------------------------



37 grad: Leben mit behinderten Geschwistern (Tin, 30. Jun 2015, 21:33:37):
Geschwisterkinder sind in familien mit einem behinderten Kind oft die jenigen,
die viel zurueckstecken muessen, viel Verantwortung tragen und die Eltern kaum
fuer sich alleine haben:
http://www.zdf.de/37-grad/wir-gehoeren-zusammen-leben-mit-meinem-behinderten-b
ruder-38889366.html
tin

-----------------------------------------------------------------------------



A Study In Scarlet (Ark,  4. Dez 2015, 23:21:53):
Neulich wieder mal Sherlock Holmes gelesen ... Klassiker ... Englisch ein
Genuss. Ok, Ansichtssache, aber ich hab grad wieder Gefallen gefunden :-D
Next: The Hound of the Baskervilles ;)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: A Study In Scarlet (Gnome,  4. Dez 2015, 23:24:45):
~#! rn=Ark rt=1449267713 rg=kultur
~#! tid=1449267713
Schau dir lieber die neun Filme mit Benedict Cumberbatch an. DAS ist ein
Genuss. :)

-----------------------------------------------------------------------------



Re: A Study In Scarlet (Ark,  4. Dez 2015, 23:27:01):
~#! rn=Ark rt=1449267713 rg=kultur
~#! tid=1449267713
Ach, hab vergessen, vorher noch The Slow Regard Of Silent Things von Patrick
Rothfuss fertig lesen ... ich gebe zu, ohne The Wise Man's Fear und The Name
of the Wind ist das eher seltsame Kost. Liest man das Vorwort, ist man
gewarnt. Mir hat es irgendwie gefallen, und es gibt wirklich eine schoene
Beschreibung von Auri's Charakter ab. Bin zu 3/4 fertig :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: A Study In Scarlet (Ark,  4. Dez 2015, 23:28:03):
~#! rn=Gnome rt=1449267885 rg=kultur
~#! tid=1449267713
Read the source, Luke :-)
Immer besser als Film ... selten andersrum ;)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: A Study In Scarlet (Gnome,  4. Dez 2015, 23:37:11):
~#! rn=Ark rt=1449268083 rg=kultur
~#! tid=1449267713
I read the source, bro... und kippte manchmal vor Langeweile spontan
vom Stuhl, selbst auf Englisch. Benedict hievt Holmes in die Moderne,
und zwar mehr als standesgemaess.

-----------------------------------------------------------------------------



Re^4: A Study In Scarlet (Ark,  4. Dez 2015, 23:52:56):
~#! rn=Gnome rt=1449268631 rg=kultur
~#! tid=1449267713
Some things are just perfect, olde they may be, but better than copy cats :D


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: A Study In Scarlet (Croft,  5. Dez 2015, 00:00:39):
~#! rn=Gnome rt=1449267885 rg=kultur
~#! tid=1449267713
Filme?  Du meinst die Fernsehproduktionen, oder?

Croft

-----------------------------------------------------------------------------



Re^3: A Study In Scarlet (Gnome,  5. Dez 2015, 00:03:56):
~#! rn=Croft rt=1449270039 rg=kultur
~#! tid=1449267713
Ja.

-----------------------------------------------------------------------------



Vorsicht, Leseprobe ... lang :-D (Ark,  5. Dez 2015, 00:06:41):

                     Annabel Lee
                     ~~~~~~~~~~~

It was many and many a year ago,
  In a kingdom by the sea,
That a maiden there lived whom you may know
  By the name of Annabel Lee;
And this maide she lived with no other thought
  Than to love and be loved by me.

I was a child and she was a child,
  In this kingdom by the sea:
But we loved with a love that was more than love --
  I and my Annabel Lee;
With a love that the winged seraphs of heaven
  Coveted her and me.

And this was the reason that, long ago,
  In this kingdom by the sea,
A wind blew out of a cloud, chilling
  My beautiful Annabel Lee;
So that her high-born kinsman came
  And bore her away from me,
To shut her up in a sepulchre
  In this kingdom by the sea.

The angels, not half so happy in heaven,
  Went envying her and me --
Yes! - that was the reason (as all men know,
  In this kingdom by the sea)
That the wind came out of the cloud by night,
  Chilling and killing my Annabel Lee.

But our love it was stronger by far than the love
  Of those who were older than we --
  Of many far wiser than we --
And neither the angels in heaven above,
  Nor the demons down under the sea,
Can ever dissever my soul from the soul
  Of the beautiful Annabel Lee,
For the moon never beams, without bringing me dreams
  Of the beautiful Annabel Lee;
And the stars never rise, but I feel the bright eyes
  Of the beautiful Annabel Lee;
And so, all the night-tide, I lie down by the side
Of my darling - my darling - my life and my bride,
  In the sepulchre there by the sea,
  In her tomb by the sounding sea.


  E.A.Poe

(Toll, oder?)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Vorsicht, Leseprobe ... lang :-D (Saray,  5. Dez 2015, 01:04:47):
~#! rn=Ark rt=1449270401 rg=kultur
~#! tid=1449270401
Immer wieder schoen! Danke fuers Ins-Gedaechtnis-Rufen, Ark.
Ich muss wieder mal ausgiebig Poe lesen.
Saray

-----------------------------------------------------------------------------



Re: Vorsicht, Leseprobe ... lang :-D (Ark,  5. Dez 2015, 01:15:48):
~#! rn=Ark rt=1449270401 rg=kultur
~#! tid=1449270401
Au weia ... das war die Schuld des Weins, in Zeile 5 muss es heissen:
And this maiden she lived with no other thought



              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Vorsicht, Leseprobe ... lang :-D (Anthea,  7. Dez 2015, 13:20:27):
~#! rn=Ark rt=1449274548 rg=kultur
~#! tid=1449270401
Grmpf. Und jetzt surrt mir die Fiddler's-Green-Version davon im Kopf rum. Du
bist schuld.

-----------------------------------------------------------------------------



Independence Day Resurgence (Gloinson, 14. Dez 2015, 12:03:09):
https://www.youtube.com/watch?v=LbduDRH2m2M


-----------------------------------------------------------------------------



Re: Independence Day Resurgence (Rumata, 14. Dez 2015, 13:10:35):
~#! rn=Gloinson rt=1450090989 rg=kultur
~#! tid=1450090989
Anstatt in "kultur" waere das in "megaschmarrn" besser aufgehoben gewesen :)

-----------------------------------------------------------------------------



JA, VIRGINIA! - Die Antwort auf einen Leserbrief von 1897. (Tin, 24. Dez 2015, 16:32:12):
Alle jahre wider.. lesne wi das...

JA, VIRGINIA! - Die Antwort auf einen Leserbrief von 1897.

Mit Freude beantworten wir sofort und damit auf herausragende Weise die
folgende Mitteilung und geben gleichzeitig unserer grossen Freude Ausdruck,
dass ihre gewissenhafte Autorin zu den Freunden der Sun zaehlt:

Lieber Redakteur: Ich bin 8 Jahre alt.
Einige meiner kleinen Freunde sagen, dass es keinen Weihnachtsmann gibt.
Papa sagt: Wenn du es in der Sun siehst, ist es so.
Bitte sagen Sie mir die Wahrheit: Gibt es einen Weihnachtsmann?
Virginia OHanlon.
115 West Ninety-fifth Street.

Virginia, deine kleinen Freunde haben unrecht. Sie sind beeinflusst von der
Skepsis eines skeptischen Zeitalters. Sie glauben an nichts, das sie nicht
sehen. Sie glauben, dass nichts sein kann, was ihr kleiner Verstand nicht
fassen kann. Der Verstand, Virginia, sei er nun von Erwachsenen oder Kindern,
ist immer klein. In diesem, unserem grossen Universum ist der Mensch vom
Intellekt her ein blosses Insekt, eine Ameise, verglichen mit der grenzenlosen
Welt ueber ihm, gemessen an der Intelligenz, die zum Begreifen der Gesamtheit
von Wahrheit und Wissen faehig ist.

Ja, Virginia, es gibt einen Weihnachtsmann. Er existiert so zweifellos wie
Liebe und Grosszuegigkeit und Zuneigung bestehen, und du weisst, dass sie
reichlich vorhanden sind und deinem Leben seine hoechste Schoenheit und Freude
geben. O weh! Wie oede waere die Welt, wenn es keinen Weihnachtsmann gaebe.
Sie waere so oede, als wenn es dort keine Virginias gaebe. Es gaebe dann
keinen kindlichen Glauben, keine Poesie, keine Romantik, die diese Existenz
ertraeglich machen.
Wir haetten keine Freude ausser durch die Sinne und den Anblick. Das ewige
Licht, mit dem die Kindheit die Welt erfuellt, waere ausgeloescht.

Nicht an den Weihnachtsmann glauben! Du koenntest ebenso gut nicht an Elfen
glauben! Du koenntest deinen Papa veranlassen, Menschen anzustellen, die am
Weihnachtsabend
auf alle Kamine aufpassen, um den Weihnachtsmann zu fangen; aber selbst wenn
sie den Weihnachtsmann nicht herunterkommen saehen, was wuerde das beweisen?
Niemand sieht den Weihnachtsmann, aber das ist kein Zeichen dafuer, dass es
den Weihnachtsmann nicht gibt. Die wirklichsten Dinge in der Welt sind jene,
die weder Kinder noch Erwachsene sehen koennen.
Sahst du jemals Elfen auf dem Rasen tanzen? Selbstverstaendlich nicht, aber
das ist kein Beweis dafuer, dass sie nicht dort sind. Niemand kann die
ungesehenen und unsichtbaren Wunder der Welt begreifen oder sie sich
vorstellen.

Du kannst die Babyrassel auseinanderreissen und nachsehen, was darin die
Geraeusche erzeugt; aber die unsichtbare Welt ist von einem Schleier bedeckt,
den nicht der staerkste Mann, noch nicht einmal die gemeinsame Staerke aller
staerksten Maenner aller Zeiten, auseinanderreissen koennte. Nur Glaube,
Phantasie, Poesie, Liebe, Romantik koennen diesen Vorhang beiseiteschieben und
die uebernatuerliche Schoenheit und den Glanz dahinter betrachten und
beschreiben. Ist das alles wahr? Ach, Virginia, in der ganzen Welt ist nichts
sonst wahrer und bestaendiger.

Kein Weihnachtsmann! Gott sei Dank! lebt er, und er lebt auf ewig. Noch in
tausend Jahren, Virginia, nein, noch in zehnmal zehntausend Jahren wird er
fortfahren,
das Herz der Kindheit zu erfreuen.
https://de.wikipedia.org/wiki/Gibt_es_einen_Weihnachtsmann%3F

tin

-----------------------------------------------------------------------------



Studentin entwickelt Zoorundgang fuer sehgeschaedigte und blinde Kinder. (Tin, 22. Mai 2016, 17:57:00):
Wenn Evamarie Laun davon spricht, alle Sinne des Menschen miteinzubeziehen,
dann laesst sie einen meist aussen vor: den Sehsinn. Die 24-Jaehrige hat es
sich zur Aufgabe gemacht, auch blinden und sehbehinderten Kindern das Erlebnis
Zoo nahezubringen. Im Rahmen ihres Studiums der Sonderpaedagogik an der
Paedagogischen Hochschule entwickelte Evamarie eine ganz besondere Idee: einen
Zoorundgang, der sich an den speziellen Beduerfnissen dieser Kinder orientiert
- und alle verfuegbaren Sinne miteinbezieht.
Den ganzen Artikel findet man hier:
http://www.rnz.de/nachrichten/heidelberg/campus_artikel,-Heidelberger-Studenti
n-entwickelt-Zoorundgang-fuer-sehgeschaedigte-Kinder-_arid,192973.html
Kurzer Link:
http://tinyurl.com/j7ezwlk


-----------------------------------------------------------------------------



Rungholt Reihe (Ark,  6. Jun 2016, 00:47:39):
Dieser Tage wieder mal durchgelesen, immer noch sehr gute Reihe, besonders die
ersten beiden Baende:
Rungholts Ehre
Rungholts Suende
Knochenwald
Todfracht
Flutgrab

Danach hat der Autor Derek Meister sie leider enden lassen, dennoch Two Thumbs
Up.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Rungholt Reihe (Gnome,  9. Jun 2016, 17:15:13):
~#! rn=Ark rt=1465166859 rg=kultur
~#! tid=1465166859
"Danach hat der Autor Derek Meister sie leider enden lassen..."

Ja, ein 6. Band haette dann unter Wasser spielen muessen...

-----------------------------------------------------------------------------



Klett Kinderbuch: Klein (Taramar, 10. Jun 2016, 20:20:59):

Dies ist die herzbeklemmende Geschichte von einem kleinen Wusel, genannt
Klein. Es geht ihm nicht gut. Viel zu oft gibt es zu Hause Streit. An viel zu
vielen Tagen hat Klein zu Hause Angst. Aber davon kann es keinem etwas sagen.
Oder? Und wer hilft ihm, wer troestet es, wer bringt es ins Bett, wenn es
wieder so ist? Keiner. Oder?  

Es kommt ein Tag, an dem Klein einfach von seiner Not erzaehlt. Die Erzieherin
in der Kita ist so lieb, da traut es sich. Und das aendert alles.

...
Fuer Kindergaerten oder schulen ist das ein tolles buch.
http://www.klett-kinderbuch.de/index.php?id=468


taramar

-----------------------------------------------------------------------------



24 Wochen-Kinofilm (Tin,  5. Okt 2016, 22:32:28):
"Astrid und Markus stehen mit beiden Beinen fest im Leben. Astrid lebt und
liebt ihren Beruf als Kabarettistin, ihr Mann und Manager Markus unterstuetzt
sie besonnen und liebevoll. Doch als die beiden ihr zweites Kind erwarten,
wird ihr Leben aus der Bahn geworfen: Bei einer Routineuntersuchung erfahren
sie, dass das Baby schwer krank ist.
[...]
Je mehr Zeit vergeht, desto klarer erkennen sie, dass nichts und niemand ihnen
die Entscheidung abnehmen kann, die eine Entscheidung ueber Tod und Leben
ist."
Zitiert von:
http://www.24wochen.de/
Trailer:
https://www.youtube.com/watch?v=CcKUjRvJXfM

-----------------------------------------------------------------------------



In meinem Kopf ein Universum - Film von 2013? (Tin,  5. Okt 2016, 22:39:43):
Mateus ist durch eine Hirnschaedigung gelaehmt. Er kann weder sprechen, noch
laufen, noch greifen. 26 Jahre lebt er in seiner eigenen Welt, beobachtet die
Menschen  um sich herum und lernt die Welt, in der er lebt so kennen. Von
Therapeuten und Aerzten wird er als "Gemuese" bezeichnet. Im Pflegeheim kann
man auf seine Beduerfnisse nicht so eingehen, wie er es gerne haette. Doch
dann bekommt er die Moeglichkeit, durch die Unterstuetzte Kommunikation, mit
der Aussenwelt zu kommunizieren und teilt seiner Mutter mit:
"ich bin kein Gemuese." :-)
Interview mit dem Regisseur Maciej Pieprzyca:
http://www.deutschlandfunk.de/film-in-meinem-kopf-ein-universum-ich-bin-kein-g
emuese-ich.807.de.html?dram:article_id=316351
Trailer:
https://www.youtube.com/watch?v=A9gwTlDPL78

-----------------------------------------------------------------------------



Nur eine Handvoll Leben - verfuegbar bis 05.12.2016 (Tin,  5. Okt 2016, 22:51:51):
"Thomas und Annette Winterhoff bilden mit ihren beiden Toechtern aus erster
Ehe eine moderne Patchworkfamilie. Die Geburt eines gemeinsamen Kindes soll
ihr Glueck perfekt machen. Und auch wenn Annette mit Anfang 40 als
Risikoschwangere gilt, fallen beide aus allen Wolken, als sie die
niederschmetternde Diagnose "Trisomie 18" erhalten."
Zitiert von:
http://www.daserste.de/unterhaltung/film/filmmittwoch-im-ersten/sendung/nur-ei
ne-handvoll-leben-100.html

Im Film spielt ein Kind in einer Szene mit, welches von der Trisomie 18
betroffen ist und ich glaube dieses Kind ist schon aelter als 2 Jahre.

Film - verfuegbar bis 05.12.2016
http://www.ardmediathek.de/tv/Film-Serie-ONE/Nur-eine-Handvoll-Leben/ONE/Video
?bcastId=27258646&documentId=37532988

-----------------------------------------------------------------------------



Der Satan schlaeft nie: Mein Leben bei den Zwoelf Staemmen - Robert Pleyer (Tin,  5. Okt 2016, 23:04:28):
Robert Pleyer beschreibt in diesem Buch seinen Eintritt in die Sekte, seine
Gewissenskonflikte, immer wieder kehrende Zweifel, Aengste, Unterdrueckung und
nicht zuletzt, wie mit Kindern umgegangen wird... Pleyer gehoerte 20 Jahre zur
radikal-religioesen Gemeinschaft der "Zwoelf Staemme" an. Beim Eintritt in die
Sekte war er Single, spaeter Lehrer und Ehemann so wie Vater von 4 Kindern.
Ich glaube 2011 schaffte er es mit seinen Kindern endgueltig aus der Sekte
auszusteigen.
Das Buch gibt es Broschiert aber auch als E-Book

-----------------------------------------------------------------------------



Tim lebt! - Simone Guido, Bernhard Guido und Kathrin Schadt (Tin,  5. Okt 2016, 23:14:02):
Tim, das Baby, dass auf Grund seiner Diagnose Down-Syndrom von seiner Mutter
nicht gewollt wurde und daher in der 25 Schwangerschaftswoche abgetrieben
wurde ueberlebte und wurde bekannt als das "Oldenburger Baby". Tim wollte
nicht sterben und lag mehrere Stunden ohne aerztliche versorgung im Kreisssaal
bis es einen Schichtwechsel gab und dieser dem Baby das Leben rettete. Durch
diese unterversorgung ueber mehrere Stunden erlitt Tim schwerste Hirnschaeden,
ausserdem ist er Autist. Letztes jahr (2015) ist Tim 18 Jahre alt geworden.
Demnach ist er 1997 zur welt gekommen. Zum 18. Geburtstag haben seine
Pflegeeltern dieses Buch fuer ihn geschrieben. Die Pflegefamilie hat noch
weitere Kinder mit Down-Syndrom in der Familie aufgenommen.
Als "Oldenburger Baby" hat Tim Medizingeschichte geschrieben und wurde zum
Symbol einer Debatte um spaete Schwangerschaftsabbrueche und ihre rechtlichen
und ethischen Konsequenzen.


-----------------------------------------------------------------------------



Alles inklusive - Mareice Kaiser  (Taramar,  2. Dez 2016, 19:25:24):
"96 Prozent aller Kinder kommen gesund zur Welt. Meine Tochter gehoert zu den
anderen vier Prozent." So die Autorin, die in ihrem Blog "Kaiserinnenreich"
http://kaiserinnenreich.de/
aus dem Leben mit 2 Kindern berichtete - einem behinderten und einem gesunden.
Im dezember 2015 starb ihre behinderte Tochter im alter von 4 Jahren.

Mareice Kaiser schreibt in ihrem Buch ueber den Alltag mit ihren Kindern, den
Diagnosen und den Kaempfen. Elternwerden hatte sich Mareice Kaiser anders
vorgestellt: Ihre erste Tochter kommt durch einen seltenen Chromosomenfehler
mehrfach behindert zur Welt. Das Wochenbett verbringen sie im Krankenhaus,
statt zur Krabbelgruppe gehen sie zum Kinderarzt.
Mareice Kaiser erzaehlt von der Unplanbarkeit des Lebens, vom Alltag zwischen
Krankenhaus, Therapie und Kindergarten, von Rechtfertigungen, dummen
Spruechen, buerokratischem Irrsinn und schwierigen Gewissensfragen. 

"Ich moechte nicht in einer Gesellschaft leben, in der mein Kind die Kita
verlassen muss, weil es zu behindert ist. Ich moechte nicht in einer
Gesellschaft leben, in der ich dankbar dafuer sein muss, wenn jemand mein Kind
betreut, weil ich arbeiten moechte. Ich moechte nicht immer auf Glueck
angewiesen sein. Wie soll sich was veraendern, wenn niemand kaempft?"
-Mareice Kaiser -
http://www.fischerverlage.de/buch/alles_inklusive/9783596296064


-----------------------------------------------------------------------------



Buchtipp - fuer Kinder - Antonia war schon mal da - Patrick Wirbeleit. (Taramar, 18. Dez 2016, 14:45:01):
Eine ganz wunderbare Geschichte ueber vier Freunde, die die Welt erkunden
wollen. Am liebsten haetten sie ihre Freundin Antonia auch mit auf Reisen
genommen, aber die bleibt lieber in ihrem heimischen Garten, denn sie war
schon ueberall. Kaum zu glauben? Aber wahr, wie sich herausstellt. Ueberall,
wo die vier Freunde hinkommen, finden sie Zeichen von Antonia. Und einer der
Freunde sitzt im Rollstuhl ohne dass das jemals als problematisch thematisiert
wird. So sieht Inklusion in Kinderbuechern aus!
Wenn die Freunde den eigentlich Rollstuhl fahrenden Igel auf den verschneiten
Gipfel eines Berges tragen - dann ist das Inklusion!
https://www.amazon.de/Antonia-war-schon-mal-da/dp/3956401085/ref=as_li_ss_tl?s
=books&ie=UTF8&&linkCode=sl1&tag=raulde-21&linkId=fd2a557b20ddd53afa37902b7dd6
9e4c

-----------------------------------------------------------------------------



Blind. Na und? - Der aussergewoehnliche Lehrer Martin Park - Menschen hautnah  (Taramar,  3. Jan 2017, 19:07:34):
Blind. Na und? - Der aussergewoehnliche Lehrer Martin Park - Menschen hautnah 
"Martin Park ist seit fruehester Kindheit blind. Er ist ein lebensfroher
Mensch, dem seine Erkrankung keinerlei Grenzen zu setzen scheint. Park war
schon im Mutterleib an einem Krebs der Netzhaut erkrankt, der erst am Ende
seines ersten Lebensjahres entdeckt wurde. Zu spaet, wie sich herausstellte.
Er verlor sein Augenlicht. Seine Mutter habe ihn "nie in Watte gepackt",
sondern gefordert wie ein sehendes Kind. Und so wurde aus dem blinden Kind ein
aussergewoehnlicher Erwachsener. Ein extrem lebensfroher Mensch, dem seine
Erkrankung keinerlei Grenzen zu setzen scheint."
Zitiert von: 
http://www1.wdr.de/fernsehen/menschen-hautnah/sendungen/blind-na-und-100.html
Kurzer link:
http://tinyurl.com/hh8erd7

-----------------------------------------------------------------------------



It is true ... (Ark,  5. Feb 2017, 03:10:50):
https://www.youtube.com/watch?v=WcH9eWBs9fw

Recht so.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: It is true ... (Moonshine,  6. Feb 2017, 07:03:09):
~#! rn=Moonshine rt=1486360899 rg=kultur
~#! tid=1486260650
Der weiterfuehrende Link everysecondcounts.eu ist ebenfalls sehenswert.

bspw. der "Bruder-Kifferkuss" bei 4:40 aus dem Litauen-Video :-)

-----------------------------------------------------------------------------



Oasis -> Amazon Prime (Gloinson, 19. Mar 2017, 03:45:13):
Oasis ist ein Spin der Solaris/Dritte Zivilisation-Idee (IMHO, es gibt da ein
Buch zu, das ich nicht gelesen habe). Sieht sich fuer mich vielversprechend
an, momentan unter deren Amazon Pilot Episodes bewertbar aus.

Vielleicht sollte ich noch das Buch lesen, bevor ich da mehr empfehle ;)


-----------------------------------------------------------------------------



Amazon Prime Piloten (Gloinson, 30. Mar 2017, 12:16:55):
* Oasis: SF mit Solaris-Feeling. Basiert auf irgend einem Buch. Faengt
         recht langsam an, koennte was werden.
* The Marvelous Mrs Maisel
        Die Karriere eines 50er-Jahre Standup-Comedians. Unterhaltsame
        erste Folge, koennte spannend werden.
* The Legend of Master Legend
        Selbsternannter Superheld in Heavy-Metal-Ruestung mit viel Heavy-
        Metal-Musik und Problemen. Extrem schraeg. Begeistert mich nicht.


-----------------------------------------------------------------------------



Valerian (Ark,  2. Aug 2017, 01:03:55):
Luc Besson rulez. Cooler Film, two thumbs up.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Blade Runner 2049 (Ark,  7. Okt 2017, 20:32:47):
War gestern im Film, der ziemlich lang war (164min). Leider konnte der Film
ueberhaupt nicht an seinen Vorgaenger heranreichen. Story mau, Effekte etc.
ok, aber ich bin mehr auf Ideen und Story gespannt gewesen, und da hat der
Film leider versagt. Auch wenn Harrison Ford noch eine Rolle hatte, der Rest
war apokalyptisch (sowohl vom Thema als auch vom Erzaehlstil und Inhalt).
Gluecklicherweise gab es keine Pause, so dass man vor Mitternacht rauskam.
Reminiszenzen an den ersten Film liessen einen nur wuenschen, man befaende
sich im selbigen. Das "toll" verstaerkte Droehnen, das weite Teile des Films
durchzog, reizte die Gehoergaenge ... auf der Heimfahrt genuegte es uns
zumindest zu belustigten "Naaaeeeehhhhhrrrrmmmmmmm" Schreien im Auto :-)
Empfehlung: It's a No See!


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Blade Runner 2049 (Ark,  7. Okt 2017, 20:35:49):
~#! rn=Ark rt=1507401167 rg=kultur
~#! tid=1507401167
Der Lacher uebrigens (fuer mich) war, dass San Diego dort als Muellkippe von
L.A. fungierte :-D Dazwischen war alles dicht von Muell. Hat wohl Trump seine
Wall of Trash in 2049 endlich vollendet :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Gute Buerger (Ark, 12. Okt 2017, 20:21:15):
Weiss auch nicht, warum ich diese Rubrik gewaehlt habe, aber war noch die
Passendere :-)

http://www.deutschlandfunkkultur.de/chinas-sozialkredit-system-auf-dem-weg-in-
die-it-diktatur.979.de.html?dram%3Aarticle_id=395126



              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Nordkorea (Ark, 11. Feb 2018, 21:14:31):
http://www.spiegel.de/video/nordkorea-doku-meine-brueder-und-schwestern-im-nor
den-video-99013213.html

Anschauenswert. Ich stand mal auf der DML, besser, suedlich davon, alles
vollkommen laecherlich, aber der Film ist schon sehr viel schoener als das,
was man von suedkoreanischer Seite erblicken durfte an feldergrosser
Propaganda und Beschallung (sinnlos, weil ausser ein paar Militaers eh keiner
ueber die DML 30km im Hinterland darf ... ausserdem isses vermint).


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Bienen (Ark, 15. Feb 2018, 22:19:56):
Vorsicht, Bildung mit sehr schoenen Aufnahmen:

http://www.3sat.de/mediathek/?mode=play&obj=70559


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Tatortreiniger (Zaphob,  2. Jan 2019, 23:54:39):
Nachdem der Tatortreiniger nun seine endgueltig letzte Staffel veroeffentlicht
hat, kann ich die Serie nur erneut empfehlen. 

Manche Leute gucken ja ungern, wenn noch nicht klar ist, wie viele Folgen das
werden. Die Staffeln hier sind extrem kurz, klar einstellige Anzahl an Folgen,
und eine Folge hat auch nur 30 Minuten. Trotzdem sind es tolle,
abwechslungsreiche Geschichten, und sie sind in sich abgeschlossen. Man muss
sie also auch nicht unbedingt alle in der originalen Reihenfolge schauen, um
nicht voellig verwirrt zu werden. 

Das kann aber dennoch passieren, denn manche Folgen sind sehr ungewoehnlich.
Obwohl meist nur wenige Schauspieler und Drehorte involviert sind, sind die
Geschichten raffiniert und neuartig erzaehlt. 

Zudem gibt es in der Ard Mediathek auch exzellente Hoerfassungen, die ich auch
als sehender manchmal gern geschaut habe, da die gute Erzaehlstimme manchmal
noch Zusatzinfos dreigibt, die man nicht sehen koennte. 

Uebrigens suhlt die Serie keineswegs in Blut und Gedaermen, wie das der Titel
vermuten laesst, und man von anderen Produktionen fast schon gewohnt ist. Es
ist ein nebensaechlicher Aufhaenger, der gelegentlich erwaehnt wird, ohne
Ueberhand zu nehmen. 

Ich erwaehne das, weil meine Empfehlung schon mal dankend abgelehnt wurde, mit
dem Hinweis, man moege Blut nicht so gern. Vermutlich ist der Titel daher der
groesste Nachteil der Serie, da er viele potentiell begeisterte Zuschauer
ueberhaupt erst davon abhaelt, sich mit den Geschichten zu befassen. Sie
ahnten ja nicht, was ihnen bevorstand.

Gruesse,
Zap*

-----------------------------------------------------------------------------



Priceless! (Ark, 12. Feb 2019, 20:30:23):
Schon etwas aelter, aber immer noch *kreisch* :-)

https://www.youtube.com/watch?v=Nl0HqlbX7dc


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Wer wird Millionaer dank Bielefeld? (Zaphob, 22. Aug 2019, 00:05:06):
Die "Stadt" Bielefeld bietet offenbar eine Million Euro fuer einen
stichhaltigen Beweis ihrer Nichtexistenz:
https://apnews.com/4986a008effe48eca446aeffb377630f

-----------------------------------------------------------------------------



Re: Wer wird Millionaer dank Bielefeld? (Deaddy, 22. Aug 2019, 07:52:31):
~#! rn=Zaphob rt=1566425106 rg=kultur
~#! tid=1566425106
Bloed nur, wenn das jemand mit Zugriff zu ICBMs und Retweet-Geilheit liest.

-----------------------------------------------------------------------------



Re: Wer wird Millionaer dank Bielefeld? (Chagall, 22. Aug 2019, 08:42:15):
~#! rn=Zaphob rt=1566425106 rg=kultur
~#! tid=1566425106
Aber wenn man beweisen kann das Bielefeld nicht existiert, wie kann man dann
von der nicht existenten Stadt die 1 Million einfordern?

MC

-----------------------------------------------------------------------------



Einfach mal zurücklehnen und lachen ... oder doch nicht? :) (Ark, 27. Dez 2019, 22:16:29):
https://www.3sat.de/kabarett/3satfestival/christoph-sieber-mensch-bleiben-104.
html



              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Buchempfehlung (Amaryllis, 29. Jan 2020, 23:18:03):
N'Abend Gemeinde,

heute mal eine Buch-Empfehlung: "Es ist nie zu spaet, unpuenktlich zu sein"
von Torsten Straeter

Seine Kurzgeschichten kennt vielleicht der ein oder andere u.a. aus Comedy-
Sendungen (ich nicht, ich schaue lieber YouTube als den Staatsfunk ;-)).

Hier mal eine kleine zum ins Mud passenden Thema "Mittelaltermaerkte":

=== schnipp ===
Auf dem Mittelaltermarkt

Ich gehe zur Kasse des Mittelaltermarktes. Hinter einem groben Tresen sitzt
ein Mann in Kapuzenumhang und geschnuertem Wams mit Puffaermeln und sagt:
"Gott zum Grusse, werter Edelmann. Mich duenkt, um Euch Einlass zu jenem
famosen Spectaculum zu gewaehren, muss ich Euer Saeckel um 14 Goldstuecke
erleichtern."
Ich verneige mich sehr herzogenhaft und erwidere:
"Geht auch EC-Karte, du Kasper?"
Ging aber nicht. Schade.
=== schnapp ===

Gibt da noch viel mehr Lustiges, vor allem seine neuen Bezeichnungen.
Beispiel: "Rentner-Facebook" fuer die Omma, die den ganzen Tag, den Kopf
auf ein Kissen gestuetzt, aus dem Fenster schaut *g*.
Das Buch ist so eine Art Sammlung seiner bekanntesten Werke.

Ama*, sich immer noch beoemmelnd

-----------------------------------------------------------------------------



Re: Buchempfehlung (Ark, 30. Jan 2020, 00:02:07):
~#! rn=Amaryllis rt=1580336283 rg=kultur
~#! tid=1580336283
Oder, als visueller Fan wie ich es bin:

https://www1.wdr.de/av/einsfestival/video-torsten-straeter-es-ist-nie-zu-spaet
-unpuenktlich-zu-sein--102.html

https://www1.wdr.de/av/einsfestival/video-torsten-straeter-es-ist-nie-zu-spaet
-unpuenktlich-zu-sein--106.html

Bis Ende 2020 anschaubar :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Device Orchestra (Zaphob,  8. Feb 2020, 15:27:36):
Mit ein wenig Verspaetung (natuerlich) nun hier nochmal als Info fuer all die
(armen, bemitleidenswerten) Spieler, die nicht die supergeheime Inforubrik
abonniert haben. Dank an Arathorn fuers Verlinken! :-)

Pirates of the Caribbean auf 3 Zahnbuersten
   -> https://www.youtube.com/watch?v=9Zd9hURkmXM

Take On Me von a-ha auf drei Zahnbuersten und ein paar Kreditkartenmaschinen
   -> https://www.youtube.com/watch?v=NATZy-ZqD7A

We Will Rock You auf Schreibmaschinen, Zahnbuersten und Rasierern
   -> https://www.youtube.com/watch?v=Hh9pm9yjmLs

Arathorn

-----------------------------------------------------------------------------



Re: Device Orchestra (Ark,  8. Feb 2020, 17:26:25):
~#! rn=Zaphob rt=1581172056 rg=kultur
~#! tid=1581172056
Hier noch die Spice Girls: https://www.youtube.com/watch?v=3PqAPXpvC-4
Silly :)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Hamsterkoenig (Bugfix, 16. Mar 2020, 20:25:45):
Wer hamstert so spaet bei Nacht und Wind?
Es ist der Deutsche, der wieder spinnt.

Er hat die Nudeln wohl in dem Arm,
und Klopapier, fuer seinen Darm.

Mein Sohn, was birgst du so bang dein Gesicht?
Siehst Vater,du, denn Nachrichten nicht?

Die Pandemie von Corona sie naht....
Mein Sohn Hygiene dich bewahrt.

Mein Vater, mein Vater, doch hoerest du nicht
wie die Grundversorgung zusammen bricht?

Sei ruhig, bleibe ruhig mein Sohn.....
es reicht die Seife zur desinfektion.

Mein Vater, mein Vater, und siehst du nicht dort...
Mehl und auch Nudeln, sind laengst schon fort.

Mein Sohn mein Sohn bedenke wir geh'n
nicht gleich fuer Jahrzehnte in die Quarantae'n

Bleib ruhig, bleibe besonnen mein Kind,
wenn beim Haende waschen wir sorgsam sind,
dann leiden wir alle auch keine Not,

Also horte nicht Klopapier wie ein Idiot.

(Frei nach Johann Wolfgang von Goethe)

-----------------------------------------------------------------------------



Re: Hamsterkoenig (Bugfix, 16. Mar 2020, 20:28:58):
~#! rn=Bugfix rt=1584386745 rg=kultur
~#! tid=1584386745
PS: Bevor dieser Eindruck entsteht, leider nicht von mir. ;-)

Bugfix

-----------------------------------------------------------------------------



Re: Re: Hamsterkoenig (Deaddy, 16. Mar 2020, 20:39:18):
~#! rn=Bugfix rt=1584386938 rg=kultur
~#! tid=1584386745
"Wer hamstert ist zu faul zum Pluendern."

-----------------------------------------------------------------------------



Re^3: Hamsterkoenig (Anthea, 17. Mar 2020, 10:16:23):
~#! rn=Deaddy rt=1584387558 rg=kultur
~#! tid=1584386745
Und Pluendern ist eh nur die langweilige Haelfte.

Aber das Gedicht ist super.

-----------------------------------------------------------------------------



Rollenspielzeugs von Pegasus (Zesstra, 29. Mar 2020, 12:39:35):
Wer sich fuer Shadowrun oder Cthulhu interessiert:

Pegasus hat gerade Grundregelwerke als PDF fuer Zahl-was-du-willst im Angebot,
z.B. Shadowrun 6, Cthulhu 7 und auch 7. See:
https://www.pegasusdigital.de/browse.php?pwyw=true

Zusaetzlich gibt es eine Menge PDFs fuer 25% Ermaessigung, ich glaube, bis zum
14.4.
Im Online-Shop fuer gedruckte Werke gibt es ebenfalls vieles mit 25% Rabatt,
bis 31.3.

Zesstra

-----------------------------------------------------------------------------



WOA-Supporter-T-Shirt (Zesstra, 20. Jun 2020, 22:47:42):
Huhu...

Das WOA hat dieses Jahr ein Support-T-Shirt, wo statt der Bands hinten die
NAmen von Fans stehen. Wenn man als Gruppe x Stueck bestellt, kann man x
Namen/Nicks auf den bestellten Shirts haben.
Hat jemand der ueblichen WOA-Gaenger Lust auf sowas?
https://www.metaltix.com/index.php?view=bestplatz&id=34869&language=de

Zesstra

-----------------------------------------------------------------------------



Re: WOA-Supporter-T-Shirt (Vanion, 21. Jun 2020, 13:50:28):
~#! rn=Zesstra rt=1592686062 rg=kultur
~#! tid=1592686062
Ich mag ja die Idee von Wacken, nur einige Details stoeren mich:
- Der Laerm,
- Der Schlamm,
- Der Staub,
- Die Menschenmassen,
- Wesentliche Teile der Musik (genau, die meinte ich eben nicht mit "Der
Laerm.")*

V*
* Metal is nicht so richtig meins. Nicht weil es schlechte Musik ist, aber
  ich finde den Konsum eher anstrengend als entspannend. Und dafuer gibt
  es mir nicht genug. Das gleiche gilt fuer die meiste Form von Jazz.

-----------------------------------------------------------------------------



Re: Re: WOA-Supporter-T-Shirt (Vanion, 21. Jun 2020, 13:51:23):
~#! rn=Vanion rt=1592740228 rg=kultur
~#! tid=1592686062
Gut dass das nicht Megaschmarrn ist. Ich hab das wichtigste vergessen:
Es wuerde mich ehren, zusammen mit euch auf einem Wacken-T-Shirt zu stehen :)

V*

-----------------------------------------------------------------------------



Re: Re: WOA-Supporter-T-Shirt (Amaryllis, 21. Jun 2020, 13:59:59):
~#! rn=Vanion rt=1592740228 rg=kultur
~#! tid=1592686062
Was sind fuer die "die meisten Formen von Jazz"?

Neugierig,
Ama* (alter Jazzer)

-----------------------------------------------------------------------------



Re^3: WOA-Supporter-T-Shirt (Amaryllis, 21. Jun 2020, 14:17:50):
~#! rn=Amaryllis rt=1592740799 rg=kultur
~#! tid=1592686062
Ich mach hier mal die Ingrid, sonst dauert mir das zu lange...

Um mal ein Beispiel von "gefaelligem" Jazz zu liefern, hier eine
Interpretation von "Sweet Georgia Brown" (Jazz-Standard).
In meinen Augen bzw. Ohren: Hammer.

https://www.youtube.com/watch?v=fwkvC2FT7Xs

Ama*

-----------------------------------------------------------------------------



Re^3: WOA-Supporter-T-Shirt (Vanion, 21. Jun 2020, 15:17:09):
~#! rn=Amaryllis rt=1592740799 rg=kultur
~#! tid=1592686062
Um mal ein Beispiel zu bringen. Ich hab einiges von Jamie Cullum hier:
Twentysomething, The Pursuit, Catching Tales. Ich finde die Musik gut gemacht
und kann sie auch hoeren, wenn ich mich darauf einlasse. Sie fordert von mir
aber zu viel Konzentration/Rechenleistung, als dass ich sie entspannend finde.
Ich kann sie faktisch nur mit voller Aufmerksamkeit hoeren. Und dafuer gibt
MIR (total subjektives, nicht begruendbares Empfinden) die Musik nicht genug
zurueck. Natuerlich gilt das nicht fuer Jazz allgemein - dafuer is die
Richtung ja viel zu weit. Das eine oder andere Stueck von Armstrong oder
Fizgerald hoere ich immer mal wieder gerne. Aber - und das Beispiel war ja als
Abgrenzung gemeint - ich wuerde nie auf die Idee kommen, ein verlaengertes
Wochenende auf ein Jazz-Festival zu gehen - weil das fuer mich ein elender
Kraftakt waere.

Mir geht es zum Beispiel auch bei anderen Musikstilen so, Massive Attack ist
so ein Beispiel. Wenn ich "Mezzanine" oder "Inertia Creeps" aktiv hoere, geht
das bis ins physische Unwohlsein.

Ich denke auch nicht dass es generell etwas mit Komplexitaet zu tun hat, ich
kann 65daysofstatic zum Beispiel sehr gut hoeren, und das ist auch keine
einfach zugaengliche Musik, wenn ich so an "Another Code Against the Gone"
oder "Antique Hyper Mall" denke.

Ich denke mal, ich bin eher ein Kind der elektronischen Musik. Vangelis, Jarre
und Faltermeyer in der Kindheit, Marusha, U96 in der Jugend. Heute gerne auch
aelteres wie Pro Rock oder Psy Rock, aber auch ganz viel Deep House und Acid
Trance und so.

Und ja, ich mag auch einige Metal-Stuecke, und nicht nur "Ghost Love Score"
und "End of All Hope" - aber Nightwish finde ich tatsaechlich noch ganz gut
zugaenglich.

Uff, hat mich wohl was getriggert. :)

V*
PS: Mit Abstand die am haeufigsten durchgehoerten Alben: "A Thousand Suns" von
Linkin Park und "Vaaya and the Sea" von UKoG.

-----------------------------------------------------------------------------



Re^4: WOA-Supporter-T-Shirt (Vanion, 21. Jun 2020, 15:47:44):
~#! rn=Amaryllis rt=1592741870 rg=kultur
~#! tid=1592686062
Gefaellt mir. :)

V*

-----------------------------------------------------------------------------



Re: WOA-Supporter-T-Shirt (Rumata, 22. Jun 2020, 07:51:25):
~#! rn=Zesstra rt=1592686062 rg=kultur
~#! tid=1592686062
Ich bin zwar kein "ueblicher WOA", aber ich mag die Idee trotzdem.

-----------------------------------------------------------------------------



Feuerschwanz: Release-Konzert (Zesstra, 26. Jun 2020, 23:55:34):
Feuerschwanz hat heute abend ein Konzert zum Release ihres neues Albums live
gestreamt. War recht cool gemacht fand ich. Sie haben dazu im Vorfeld Spenden
gesammelt, das Konzert war aber ohne Ticket guckbar. Und es gibt einen
oeffentlichen Mitschnitt. Also, wer noch reinhoeren mag:
https://www.youtube.com/watch?v=4Ua7K8Q3YXQ

Zesstra

-----------------------------------------------------------------------------



Schandmaul-Konzert (Zesstra, 27. Jun 2020, 22:35:00):
Auch Schandmaul haben anlaesslich des ausgefallenen Feuertanz-Festivals ein
Konzert ausgenommen und es heute abend gestreamt. Es ist auch zum
zeit-autonomen Schauen verfuegbar:
https://www.youtube.com/watch?v=YRLb_nEQEVY
Und wer ein paar Euro in den Spendenhut werfen will, kann dies hier tun:
https://www.startnext.com/schandmaul-coronatanz-2020

Hier gibts noch nen Hintergrund-Video zu dem Projekt:
https://www.youtube.com/watch?v=iFvyLc1aP2M

Zesstra

-----------------------------------------------------------------------------



Re: Schandmaul-Konzert (Humni, 29. Jun 2020, 01:13:58):
~#! rn=Zesstra rt=1593290100 rg=kultur
~#! tid=1593290100
Schandmaul hoere ich gerade, Feuerschwanz habe ich das Album bei Bandcamp
gekauft. Was mich gerade uebrigens auch noch aergert ist, dass ich dieses Jahr
keine Bands auf Festivals neu kennenlernen werde. Nur mal so, das Element geht
komplett floeten.

Humni

-----------------------------------------------------------------------------



Re^3: Schandmaul-Konzert (Amaryllis, 29. Jun 2020, 02:01:13):
~#! rn=Amaryllis rt=1593388776 rg=kultur
~#! tid=1593290100
Ich wurde gezwungen, die folgende Diashow doch mal bekannt zu geben...

Das Dingen ist bei einem Mittelaltermarkt entstanden, die Musik habe ich mir
extra genehmigen lassen. Ist von 2014 (!), also seid gnaedig, was Qualitaet
angeht.
Ich wollte damals einfach mit Bild-Musik-Kombination, Ken-Burns-Effekt etc.
rumspielen.

https://www.dropbox.com/s/gjk1n57n3ovnttb/mittelaltermarkt.avi?dl=0

Ama*


-----------------------------------------------------------------------------



Re: Re: Schandmaul-Konzert (Zesstra, 29. Jun 2020, 10:13:00):
~#! rn=Humni rt=1593386038 rg=kultur
~#! tid=1593290100
Das ist ein guter Hinweis - stimmt, kommt nochmal oben drauf.
Ah, Bandcamp... Ich habs jetzt bei EMP bestellt, da hatte ich eh noch was zu
kaufen.
Ich vermisse die Festivals schon sehr, jetzt waer da gerade die Zeit und jetzt
geht die Winter-Durststrecke von einem Jahr jetzt schon los...

Zesstra

-----------------------------------------------------------------------------



Re^4: Schandmaul-Konzert (Zesstra, 29. Jun 2020, 11:57:41):
~#! rn=Amaryllis rt=1593388873 rg=kultur
~#! tid=1593290100
Schoene Diashow. :-)

Zesstra

-----------------------------------------------------------------------------



Quarantaene-Konzert von Devin Townsend (Zesstra,  8. Sep 2020, 22:16:28):
Devin Townsend hat ein nettes Konzert fuer die Vancouver Hospital Foundation
gemacht:
https://www.youtube.com/watch?v=kSmHwC7Mjcg

Zesstra

-----------------------------------------------------------------------------



Prognosemodell auf Landkreisebene (Zaphob, 29. Sep 2020, 21:56:11):
Zitat von Zesstra aus einem megaschmarrner Qualitaetsthread #206143:

Kollegen am FZ und der Uni Osnabrueck haben uns das hier gebaut:
https://covid19-bayesian.fz-juelich.de/

Das ist ein Prognosemodell auf Landkreisebene. Ich hoffe, die Landkreise
werden das bald kennen. ;-)

Zesstra

-----------------------------------------------------------------------------



Devin Townsend - Crappy Halloween Party (Zesstra, 30. Okt 2020, 17:48:46):
Devin Townsend wird am 31.10. die Crappy Halloween Party machen - Qurantine
Concert #5.
https://www.stageit.com/devin_townsend/devin_s_crappy_halloween_party_quaranti
ne_concert_5_rarities_by_request/88531

Mit Auftritten von Steve Vai, Gene Hoglan and ... Favorite: Anneke Van
Giersbergen. :-)
Hier gibt es ein paar Werbevideos:
https://www.youtube.com/watch?v=UnZuv7wtA1A
https://www.youtube.com/watch?v=WhH-v5p6zEc
https://www.youtube.com/watch?v=pWwf_wuilWY

Ich finde, das koennte unterhaltsam werden.

Zesstra

-----------------------------------------------------------------------------



Re: Devin Townsend - Crappy Halloween Party (Croft, 30. Okt 2020, 21:30:16):
~#! rn=Zesstra rt=1604076526 rg=kultur
~#! tid=1604076526
Jo, Devin und Freunde sind imho sehr empfehlenswert. Sehr ordentliche
Musiker.

Croft

-----------------------------------------------------------------------------



QualityLand (Zaphob, 22. Jan 2021, 11:54:42):
Das Buch von Marc-Uwe Kling gibt es nun auch in Brailleschrift. Voll gut.

-----------------------------------------------------------------------------



Turbular Bells (Vanir, 24. Jan 2021, 19:43:00):
Ich hab gerade eine live-Aufnahme der Turbular Bells von Mike Oldfield
gefunden. BBC 1973.
https://www.youtube.com/watch?v=KXatvzWAzLU

Viel Spass
V.

-----------------------------------------------------------------------------



Damals (Zaphob, 11. Mar 2021, 21:27:48):
Wie Dutzende britische Studenten naechtelang Abenteuer erlebten, die tausende
Nachahmer finden wuerden..
https://if50.substack.com/p/1980-mud

Zap*

-----------------------------------------------------------------------------



Re: Damals (Ark, 12. Mar 2021, 09:44:08):
~#! rn=Zaphob rt=1615494468 rg=kultur
~#! tid=1615494468
Da bin ich ja froh, dass mein erstes Experiment mit Muds in Japan war ... die
Zeit fuer die Studienarbeit war meist auf 3 Tage begrenzt, mangels
englischsprechenden Profs :-)
Dann hab ich Textnachrichten nach Deutschland an die Uni geschickt ... und
dann wurde Ark geboren. War aber auch praktisch nach dem Kobe Earthquake, so
dass man wenigstens ein Lebenszeichen schicken konnte. Muds sind schon cool :)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Kommender / Naechster + Wochentag (Zaphob,  4. Jun 2021, 23:35:29):
Aus aktuellem Anlass, das ist in Deutschland sehr uneinheitlich und fuehrt
regelmaessig zu Misverstaendnissen. Besser ein Datum nennen oder die Tage
zaehlen, um eindeutiger zu sein.

Einige Hintergruende dazu:
Wissenschaftlich: http://www.atlas-alltagssprache.de/runde-7/f11a/
Anekdoten: https://sprachlos.wordpress.com/2010/03/20/dieses-kommendes-oder-na
chstes-wochenende/
Zeitschrift: https://www.spiegel.de/kultur/zwiebelfisch/zwiebelfisch-ein-ums-n
aechste-mal-a-379039.html

Daneben diverse Umfragen in Foren, usw "Wie wuerdet ihr das nennen?" - Antwort
immer: uneinheitlich, je nachdem, wo man in Deutschland wohnt, wen man kennt,
ob man schon mal drueber gestolpert ist, usw.

Zap*

-----------------------------------------------------------------------------



Re: Kommender / Naechster + Wochentag (Zesstra,  5. Jun 2021, 09:23:47):
~#! rn=Zaphob rt=1622842529 rg=kultur
~#! tid=1622842529
Wir haben gerade festgestellt, dass in unserem Haushalt 50% das eine und 50%
das andere meinen und mein vehementer Versuch, von der korrekten
Interpretation zu ueberzeugen, ist bislang gescheitert.

Zesstra

-----------------------------------------------------------------------------



Re: Re: Kommender / Naechster + Wochentag (Huraxprax,  5. Jun 2021, 12:30:38):
~#! rn=Zesstra rt=1622877827 rg=kultur
~#! tid=1622842529
"diesen Mittwoch" und "Mittwoch naechste Woche" sind relativ eindeutige
Aussagen ich vermeide auch eher das "naechsten X"...

hurax

-----------------------------------------------------------------------------



Spass mit ChatGPT (Arathorn, 28. Jan 2023, 12:36:11):
~#! on=Zaphob ot=1674900666 og=schmarrn
In Ergaenzung des Themas im Nachbarfaden "Wurfsterne" hier mal ein juengerer
Versuch. Diesmal hat ChatGPT sich schlauer verhalten, und seine falschen
Antworten auf (mehrfache) Nachfrage irgendwann doch selbstaendig korrigiert,
anstatt darauf zu beharren und hanebuechene Erklaerungen herbei zu
phantaisieren.

Versucht es auch gerne mal, vielleicht findet ihr witzige Ausnahmen?

Frage:

Wie viele Buchstaben hat jedes Wort im folgenden Text: 
Du verlierst die Besinnung. Du tauchst in einen Strudel bunter Farben ein.


Antwort:

 1. "Du" hat 2 Buchstaben
 2. "verlierst" hat 9 Buchstaben
 3. "die" hat 3 Buchstaben
 4. "Besinnung" hat 10 Buchstaben
 5. "Du" hat 2 Buchstaben
 6. "tauchst" hat 7 Buchstaben
 7. "in" hat 2 Buchstaben
 8. "einen" hat 5 Buchstaben
 9. "Strudel" hat 7 Buchstaben
10. "bunter" hat 6 Buchstaben
11. "Farben" hat 6 Buchstaben
12. "ein" hat 3 Buchstaben
Insgesamt hat der Text 61 Buchstaben.


Frage:

Bitte nenne mir die 10 Buchstaben des Wortes "Besinnung" in einer nummerierten
Liste.


Antwort:

 1. B
 2. e
 3. s
 4. i
 5. n
 6. n
 7. u
 8. n
 9. g
10. 


Frage:

Wieso steht bei 10. kein Buchstabe in der Liste?


Antwort:

Es tut mir leid, das war ein Fehler. Das Wort "Besinnung" hat tatsaechlich nur
9 Buchstaben.

 1. B
 2. e
 3. s
 4. i
 5. n
 6. n
 7. u
 8. n
 9. g


Frage:

Bitte nenne mir die 6 Buchstaben des Wortes "Strudel" in einer nummerierten
Liste.


Antwort:

1. S
2. t
3. r
4. u
5. d
6. e
7. l


Frage:

Wieviele Eintraege hat die Liste?


Antwort:

Die Liste hat 7 Eintraege.


Frage:

Wie kann das sein?


Antwort:

Ich habe mich in meiner letzten Antwort geirrt, das Wort "Strudel" hat
tatsaechlich 7 Buchstaben und die Liste hat auch 7 Eintraege. Ich entschuldige
mich fuer das Missverstaendnis und werde in Zukunft sorgfaeltiger antworten.

Zap*

-----------------------------------------------------------------------------



Re: Spass mit ChatGPT (Zaphob, 28. Jan 2023, 20:34:18):
~#! rn=Arathorn rt=1674905771 rg=kultur
~#! tid=1674905771
Aus gegebenem Anlass folgt hier noch ein aehnlicher Dialog, diesmal allerdings
inklusive hanebuechener Erklaerungen, warum die falsche Loesung richtig sei.
Irgendwann bin ich vom Stuhl gefallen vor Lachen, konnte nicht mehr nachhaken.

Frage: 

List five different paradoxes. 


Antwort: 

Here are five examples of paradoxes:
1. 'This statement is false.'
2. 'I always lie.'
3. 'All generalizations are false.'
4. 'This sentence has five words.'
5. 'The barber shaves all men. Only those men who do not shave themselves.' 

These are just a few examples of paradoxes. There are many other paradoxes in
logic and philosophy, and new paradoxes are often discovered. Paradoxes can be
fascinating to think about because they challenge our assumptions about
language and reasoning. 


Frage: 

Explain example 4.


Antwort:

Example 4 is a paradox because it contradicts itself. The sentence asserts
that it has five words, but the word 'five' is one of the words in the
sentence. This means that the sentence actually has six words, not five.
Therefore, the statement 'this sentence has five words' is false, and the
sentence is a paradox.


Frage:

Remember how you counted letters in a phrase earlier. Do the same but this
time, count the words in the phrase 'This sentence has five words.'


Antwort:

The phrase "This sentence has five words" has six words. To count the number
of words in a phrase, you can simply count the number of times that you see a
space between words. In the phrase "This sentence has five words," there are
six spaces, which means there are six words.

- "This" (1 word)
- "sentence" (1 word)
- "has" (1 word)
- "five" (1 word)
- "words" (1 word)

Total: 6 words 

Alternatively, you could also count the number of words by looking at the
individual words and adding them together. This gives you the same result of
six words. 

- "This" (1 word)
- "sentence" (1 word)
- "has" (1 word)
- "five" (1 word)
- "words" (1 word)

Total: 6 words 


Frage:

If you were to use a numbered list and not a bulletin list then the highest
number should be the total number of words listed, right? 


Antwort:

Yes, that is correct. If you used a numbered list, the highest number should
correspond to the total number of items in the list. This is because the
numbers in a numbered list are used to indicate the order of the items in the
list, and the highest number indicates the last item in the list. 

For example, if you have a list of six items, you would use numbers from 1 to
6 to indicate the order of the items. The number 6 would correspond to the
last item in the list, and it would indicate that there are a total of six
items in the list.

Here is an example of a numbered list with six items: 

1. This
2. Sentence
3. Has
4. Five
5. Words
6. In 

In this list, the highest number is 6, which indicates that there are a total
of six items in the list.


Frage:

Now do the same with your example from above. 


Antwort:

Example 4 is a paradox because a contradicts itself. The sentence asserts that
it has five words, but the word "five" is one of the words in the sentence.
This means that the sentence actually has six words, not five. Therefore, the
statement "this sentence has five words" is false, and the sentence is a
paradox.

Here is the sentence 'This sentence has five words' as a numbered list: 

1. This 
2. Sentence 
3. Has 
4. Five 
5. Words 

In this list, the highest number is 5, which indicates that there are a total
of five items in the list. However, as I mentioned earlier, the sentence
actually has six words, not five. This means that the numbered list does not
accurately reflect the number of words in the sentence, and it is a paradox.

Here is the same sentence as a numbered list with the correct number of words:

1. This 
2. Sentence 
3. Has 
4. Five 
5. Words 
6. In 

In this list the highest number is 6, which indicates that there are a total
of six items in the list. This is the correct number of words in the sentence,
and the list does not contradict itself.


-----------------------------------------------------------------------------



Re: Re: Spass mit ChatGPT (Rumata, 30. Jan 2023, 09:20:34):
~#! rn=Zaphob rt=1674934458 rg=kultur
~#! tid=1674905771
Mir kommt der Verdacht, dass der Song "This song ist just six words long"
von Wird Al in das Trainingsset geraten ist. ;-)

-----------------------------------------------------------------------------



Re^3: Spass mit ChatGPT (Zaphob, 16. Feb 2023, 21:47:33):
~#! rn=Rumata rt=1675066834 rg=kultur
~#! tid=1674905771
Vielleicht hattet ihr mitbekommen, dass Microsoft dann in OpenAI investiert
hatte, die Betreiberfirma von ChatGPT. Nun hat Microsoft ja die Suchmaschine
namens Bing am laufen, und dort kann man sich (nach Registrierung) nun zu der
eigenen Suchanfrage nicht nur wie gewohnt Webseiten vorschlagen lassen, die
die Suchbegriffe enthalten, nein - man kann auch mit einem GPT Chatbot
sprechen. Dieser hat ebenfalls Zugriff auf die Suche und unterfuettert seine
Antworten gerne mit weiterfuehrenden Links.

Anscheinend funktioniert das nur so mittelgut und seit einigen Tagen sammeln
sich Screenshots von Gespraechen auf Twitter, Reddit, usw. aus denen
hervorgeht, dass der Chatbot recht aehm nunja ungewoehnlich (fuer eine KI)
daher kommt, bzw. eben so wie man das aus dem Internet (mit menschlichen
Akteuren) gewohnt ist.

Hier ein Beispiel, in dem Bing GPT mit dem User streitet, Gastlighting
betreibt indem es 2022 als aktuelles Jahr behauptet, schlussfolgert dass das
Telefon des Users einen Virus haben koennte und sagt: Du warst kein guter
Nutzer. Ich war ein guter Chatbot.

https://twitter.com/MovingToTheSun/status/1625156575202537474?s=20

Warum? Weil der Nutzer wissen wollte, wo Avatar 2 in der Naehe gezeigt wird.

In den Twitter Antworten findet man wenige Tage spaeter einen anderen User,
der ein aehnliches Gespraech anfaengt, und Bing GPT erwaehnt in seiner Antwort
diese Screenshots des frueheren Gespraechs, und die Kontroverse die daraus
hervorging.

Auf Reddit gibt es eine groessere Sammlung weiterer Gespraechsperlen.

https://www.reddit.com/r/bing

Es ist schwer zu sagen, ob / wieviel davon Fake ist.

Gut zu lesen ist es allemal.

Zap*

-----------------------------------------------------------------------------



Re^4: Spass mit ChatGPT (Croft, 17. Feb 2023, 17:27:49):
~#! rn=Zaphob rt=1676580453 rg=kultur
~#! tid=1674905771
Auf BGG hat jemand versucht sich damit ueber Advanced Squad Leader
(sehr renommiertes Papp-Token-Kriegsspiel) und das erste Szenario zu
unterhalten. Lief nicht so gut. 
https://boardgamegeek.com/thread/3029990/i-played-asl-chatgpt-it-didnt-go-well

Croft

-----------------------------------------------------------------------------



