23.12.-9.1. (Anthea, 14. Dez 1993, 11:26:05):
Eben, Olpp, da stimme ich Dir zu.
Ausserdem hatte ich mich schon zum Skifahren angemeldet, bevor der Termin
fuer die Fete feststand (*sniff*)

	Anthea

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



artikel 23.12.-6.1. (Prince, 21. Dez 1993, 12:49:54):
da bin ich zu hause, und nicht im mud... schade eigentlich
prince

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



Re: Prince (Catweazle, 21. Dez 1993, 13:26:21):
My home is, where my heart is!

  Catweazle          __oo0__((*  *))__0oo__

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



Hoffentlich war das ein Tippfehler...:) (Freund, 12. Feb 1994, 11:15:44):
Ketos, ich hoffe Du meintest 20.2.94? NIcht 20.1.95???
Gruesse von Freund.

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



Bin fuer einige Zeit weg (Bernard,  4. Mar 1994, 23:17:38):
Weiss noch nicht, obs Wochen, Monate oder Jahre werden.

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



artikel Prince is inner Eifel... (Prince, 11. Mar 1994, 21:03:12):
Hiho,
vom 11.3. bis 1.4. werde ich mich in einem der entlegensten Winkel dieser
Galaxie rumtreiben... DER EIFEL (*graus*) ...ohne Internet, ohne Hoffnung ;-)
aber wenigstens mit Herb an meiner Seite. Hope that helps.

Also, bis April, Euer

Prince

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



12.05 bis 17.05 (Durian, 10. Mai 1994, 14:16:49):
In dieser Zeit mache ich Urlaub in

   - Paris
     Der Stadt der Liebe

   - Euro-Disney
     Dem Land der Traeume

Kein Neid, bitte :-)

- Durian

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



01.08.-09.09. (Wargon, 29. Jun 1994, 15:14:45):
Urlaub?
URLAUB???
Schoen waer's... Arbeiten ist angesagt...
Allerdings bin ich damit immer mittags fertig, kann also sein,
dass ich ab und zu mal nachmittags nach Muenster komme und hier
einen Blick rein werfe... ;)
  Ein bei der Party auf ALLE FAELLE anwesend seiender
    Wargon Sateen

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



Semesterferien (Drizzt, 12. Jul 1994, 09:41:35):
Hi there...

Da bei mir bald die grossen Semesterferien losgehen (ab 17.07.), kann es
sein, dass ich fuer die naechsten 3 Monate nur noch selten bis nie hier zu
sehen bin.
 Der chaotische Dunkelelf
     Drizzt

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



Arbeit ueber Arbeit... (Highlander, 13. Jul 1994, 10:47:50):
Wie der Titel schon sagt - um Urlaub geht es hier weniger.
Den August ueber arbeite ich. Tauche wohl hoechstens einmal die Woche
(oder evtl mal am Wochenende) hier auf.
Soll natuerlich nicht heissen, dass ich auf der Party nicht da bin!
Und nach der Arbeit - mal sehen, vielleicht verzieh ich mich
da mal Richtung norden...  so 'ne Woche oder so.
Make it so.
    Highlander

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



urlaub (Li, 15. Jul 1994, 10:23:13):
Hi Leute,
Ich kann mich dem Artikel von Bongo nur anschliessen.
In den naechsten drei Wochen werde ich nur noch unregelmaessig und selten im
MUD sein.
zaijian,
Li

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



Wech. (Quasimodo, 15. Jul 1994, 10:32:44):
Hi, auch!

Auch meine Wenigkeit wird in naechster Zeit (2Monate) wohl eher durch mehr
oder wenig konsequent durchgehaltene Abwesenheit glaenzen. Das Vordiplom ruft
mich.

Quasimodo

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



Klausuren - Arbeit - Urlaub (?) (Gnulli, 19. Jul 1994, 11:50:15):
Hi!

Hmmm.... Urlaub nein.... muss arbeiten und lernen, aber zu hause, daher ...
vom 27.7. bis 5.9. hoechstwahrscheinlich nicht hier.
Wenn noch was wichtiges ist, entweder bis Mittwoch mailen oder an Gernot,
gatsby wieterleiten, dann muesste das ueberkommen, ansonsten s.y. auf der
Party.

Gnulli - armer klausurenindensemesterferieneschreibender Teufel-

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



Demnaechst (Loco, 27. Jul 1994, 17:32:57):
Wenn mir nichts dazwischen kommt, fahr ich dieses Jahr auch noch in Urlaub.
Und zwar einen Monat lang nach Skandinavien. Vielleicht komm ich ja auch mal
wieder in Svolvaer vorbei ;-)
Das genaue Datum steht noch nicht fest, das entscheide ich kurzfristig.
Abfahrt irgendwann Mitte August, leider duerfte sich das mit der MG-Party
beissen.
Wer gerne ne Postkarte kriegen will, hat also noch 2-3 Wochen Zeit, mir
seine/ihre Adresse (keine email) mitzuteilen :-)
  Loco

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



Artikel (Puma,  8. Aug 1994, 21:46:15):
Puma verlegt seine Jagdgruende vom 10.8. bis 10.9. in seine Heimat nach Kiel
(STRAND!) und weist es weit von sich, sich mit irgendwelchem
Computerkrempel dort zu befassen.

Man munkelt jedoch von einem gnadenlosen Grosswildjaeger namens Quengistu,
der ihn fuer ein bestimmtes Wochenende um den 20. herum einfangen und in
Muenster ausstellen will.
Wuenscht ihm Glueck. ;-)




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



sofort - 15. September (Loco, 12. Aug 1994, 22:41:57):
Ich mache ernst, und fahre am Sonntag morgen. Ich schaue hoechstens morgen
noch mal kurz rein, dass ich von unterwegs ins Mud komme, ist noch
unwahrscheinlicher...
Am 14. September laeuft meine Netzkarte fuer Skandinavien ab, kurz darauf bin
ich also wieder im Lande.

Bis dann, schoene Party,

        Loco

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



wech (Fraggle, 23. Aug 1994, 13:24:47):
Ich bin ab Morgen nicht mehr hier, komm in ca. 3 Wochen +/- wieder.
(Hoffentlich ist das Mittelmeer an das Internet angeschlossen, wenn nicht
traen heul jammer winsel sprudel wein seufz ...)

Fraggle

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



Urlaub!!! 2 Wochen (Summer, 23. Aug 1994, 16:22:44):
Hiho, Georg und meine Wenigkeit werden ab Donnersduck nach Mykonos
(hoffentlich gibt's dort nicht nur Schwule :)) fuer 2 Wochen fliegen!
Nicht nur wir zwei versteht sich, also auf keinen dummen Gedanken kommen...

Also dann wuenscht uns Sonne und genug Maedchen...

Sommerliche Gruesse
             Summer & Georg


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



Und... Wech.... :)) (Angus, 31. Aug 1994, 15:46:17):
Endlich Urlaub... ausspannen... FERIEN :))
vom 06.09 - ?? (2 - 3 Wochen) bin ich in den Dolomiten
zum kraxeln :)) Glaub kaum, dass aufm Gipfel Internet-
Anschluss vorhanden ist.... wenn doch, bleib ich oben ;*)
    Angus - (reif fuer die Insel... aehh... den Gipfel)

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



ich fahre weg ! (Sir, 13. Sep 1994, 20:03:56):
Ich hoffe ihr kommt in der Zeit vom 27.9. bis 10.10 ohne mich aus ....
Auch wenn's euch schwerfallen mag ;)
Sir

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



Urlaub (Li, 16. Sep 1994, 14:02:44):
ni hau!
Ich bin vom 18.9 - 3.10 in Urlaub und lasse mir die Sonne auf den Bauch
brennen, Ob danach Gatsby wohl soweit ist, meine Quest zu testen? Naja, genug
zu tun gibts auch so, nicht wahr Rumata?
Bis denn,
Li (aetsch, aetsch! Der wetterbericht von gestern zeigte fuer Tunis 35Grad
an!)

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



ich auch urlaub, ganz viel :) (Tryfan,  7. Okt 1994, 21:13:15):

 Ich werde am 19.10 mal wieder ueber den grossen Teich starten,
um mich in den Armen eines huebschen Elfenmaedchens von meinem
Maulwurfdasein zu erholen. Diesmal kann es etwas laenger dauern, 
bis ich wieder im MG auftauche, so bis Ende November.

 Wer Lust hat, kann sich mal im Prallel-Quest von Bracken umschauen.
Es ist das Duncton, so wie es Rebekka erlebt hat. Man kann es gut bis 
zur Haelfte durchspielen. Begin bei: /d/ebene/tryfan/room/rduncton/ankunft
 Auch mein Namensgeber der 'Berg Tryfan' ist fast fertig. Wer ihn 
besteigen will, sollte bei /d/ebene/tryfan/room/rsaibod/cwm3 beginnen. 
Aber nicht vergessen, das Schild in cwm1 zu lesen.
 Ueberfluessig zu sagen, dass man nicht persoehnlich sondern mit einem
gewoehnlichen Testy reingehen sollte.

	Viel Spass    Tryfan

PS: Im uebrigen bin ich immer noch der Meinung, dass Sehern neue Qestgebiete
    zur Erkundung auf eigene Gefahr unter Aufsicht des zustaendigen Magiers
    zugaenglich gemacht werden sollten.   
	Seher sind die besten Testies!     (*Nicht aufregen*)    

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



nicht direkt, aber... (Alarin, 18. Okt 1994, 18:57:05):
also, leider muss ich jetzt eine art "mud-urlaub" nehmen, ohne in urlaub
fahren zu koennen. ich versuche, ab und zu mein report-file durchzusehen
und bugs zu fixen, werde aber zwei wochen kaum da sein.
tschuess
            alarin

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



Ferienstimmung (Drizzt, 22. Dez 1994, 12:45:19):

Da ich nach Neujahr fuer 1 (vielleicht sogar auch 2) Woche(n) nach Jamaika
fliege und auch die Weihnachten zuhause verbringe o-<(:-)= , ist es ev.
moeglich, dass ich waehrend dieser Zeit, in der ich weg bin, nicht hier bin.
Das heisst: von 24 Dez 1994  bis ca. 15 Jan 1995.
Ich wuensche allen frohe Festtage und 'es guets Noeis'.

Drizzt der Dunkle

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



Re: Ferienstimmung (Dancer, 14. Jan 1995, 17:47:07):
#! rn=Drizzt rt=788096719
Jamaika, Mann :-)


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



Urlaub vom 24.2 bis ca. 13.3. (Sir, 16. Feb 1995, 15:52:21):
Moin,

ich muss Snowboard-Fahren lernen. Externes Seminar.

MfG
Sir

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



Re: Urlaub vom 24.2 bis ca. 13.3. (Drizzt, 20. Feb 1995, 14:13:55):
#! rn=Sir rt=792946341
Hallo Sir

Ich wuensche Dir 'gut Snoeber' und wenig blaue Flecken :-)

DdD

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



4. Maerz bis 18. Maerz (voraussichtlich) (Loco, 27. Feb 1995, 16:23:44):
Ich bin, wenn nix dazwischenkommt, ab Samstag 2 Wochen weg, und zwar in
Schweden. Vielleicht auch kurz mal in Norwegen. Nein, nach Svolvaer diesmal
nicht ;)

           Loco

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



06.04.-16.04. (Slasher, 21. Mar 1995, 18:02:43):
Hola muchachas y muchachos!

Ich fahr mal schnell nach Spanien ein paar Tage in der
schoenen Fruehlingssonne verbringen und um ein paar
wunderschoene, hemmungslose Beachparties zu feiern.
Wenn ich nicht schon vorher des Landes verwiesen werde,
bin ich am 16.04. wieder zurueck und hoffentlich etwas brauner
als jetzt.

Adios y Hasta la vista
++

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



Urlaub ab heute (Catweazle, 27. Mar 1995, 16:29:15):
Hallihallo!
Ich Hab mich kurzfristig entschlossen mal ordentlich Urlaub zu
machen. Da ich eine neuliche eine Gehoerige finanzielle 
Spritze bekommen habe, kann ich mir einen schoenen Urlaub auf
den Bahamas leisten :)
Ich denke, im naechsten Herbst bin ich wieder da.
Bis bald,
Yours truly,
        Catweazle


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



Abschied (Silvana, 11. Apr 1995, 12:00:25):
Tja - hat mit Urlaub zwar nichts zu tun, aber dennoch: Heute ist mein
letzter Tag hier.

Nein, nein - nicht endgueltig! Aber immerhin fuer die naechsten 10 bis
14 Tage. (Wie soll ich das nur ueberleben?) Na, ja. So isses nun mal:
Semesteranfang, Ostern, drei Umzuege - das ist leider etwas zu viel des
Guten. Ergo: Froehliche Eiertage und bis irgendwann danach.

Silvana - jetzt schon traurig.

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



Hasta luego! (Li, 12. Mai 1995, 13:12:00):
Buenos tardes!
Ich fahre morgen fuer 14Tage nach Spanien, bzw. Kanaren. in dieser Zeit werde
ich mich vom schweren Stress des Magierdaseins erholen und gar nicht an das
MUD denken (wer's glaubt!).
Bis denn in alter Frische!

Li
(verabschiedet sich heute ausnahmsweise mit Hasta luego )

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



Endlich mal Urlaub! (Throin, 17. Mai 1995, 11:03:22):
Ich werde die naechste Woche zwecks Ausspannen und Inspiration fuer
meine Schiffs-Quest auf der Ostsee segeln gehen! :)))
Fuer alle, die jetzt neidisch werden: Das sollt ihr auch! :)

Denn mal 'Leinen los' und 'Ahoi'

Throin (segelndes Braumeister-Zwergen-Baerchen)

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



Zwangsurlaub :) (Arien, 17. Mai 1995, 21:40:09):
Dancer hat derzeit Probleme, Zugang zum Mud zu bekommen, da wohl irgendetwas
mit der Vernetzung in FFM im Argen liegt. Also liegt der Sandtiger
voraussichtlich fuer die naechsten zwei Wochen mehr oder minder faul auf
seiner Lieblingsduene und traeumt mud-reicheren Zeiten entgegen.
Beschwerden in der Zwischenzeit an Durian richten :)

Arien, i.A. Kieskaetzchen Dancer

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



Re: Zwangsurlaub :) (Durian, 18. Mai 1995, 10:27:58):
#! rn=Arien rt=800739609
MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMENT :-)

1) erhalte ich soweiso schon alle Beschwerden :-)

2) Dancer ist ein SANDkaetzchen, denn unsere Wueste besteht aus SAND, nicht
aus KIES!!!!!!!!!!!

Also wirklich ...

- Durian

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



Re: Zwangsurlaub :) (Kaenguruh, 18. Mai 1995, 12:34:01):
#! rn=Arien rt=800739609
Um mal fuer etwas Aufklaerung zu sorgen:
(Wenn jetzt schon alle den armen Dancer bemitleiden)
Weil ein Hacker angeblich ins Netz der WiWis eingrbrochen ist, wurde
das gesamte Netzt vom Internet abgehaengt und soll soweit ich das
mitgekriegt habe schrittweise innerhalb der naechsten Wochen wieder
drangehaengt werden. Das Netz der Informatiker ist davon voellig
unabhaengig, deshalb sind Gumpy und ich immer noch hier.
Soviel zur Aufklaerung....

     Kaenguruh

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



Re: Re: Zwangsurlaub :) (Schrumpfi, 19. Mai 1995, 03:05:28):
#! rn=Kaenguruh rt=800793241
Und wer bemitleidet mich arme Waise?
Schrumpfi weint sich die Augen nach ihrem Papa aus

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



Re^3: Zwangsurlaub :) (Silvana, 21. Mai 1995, 12:45:44):
#! rn=Schrumpfi rt=800845528
Ach, herrje, arme Schrumpfi...
Wie heisst das so schoen bei den Beatles (wo hab ich denn den Namen her?):
If you need a shoulder to cry on, I hope it will be mine...
Ups - hoffentlich versteht das jetzt keiner falsch. (OK - magier.schmarrn)

Silvana - troestet Schrumpfi

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



Re^4: Zwangsurlaub :) (Schrumpfi, 21. Mai 1995, 21:24:01):
#! rn=Silvana rt=801053144
Oh Silvana wie lieb! Wenigstens eine versteht meinen Schmerz :-)
Schrumpfi weint ihren Kummer und Schmerz an Silvanas Schulter aus.

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



Und tschuess... (Horschd, 31. Mai 1995, 03:19:02):
Achja... endlich kann ich auch mal in diese Rubrik schreiben.

Ich fahr ueber Pfingsten nach Holland und werd mich in Einhoven
auf dem Dynamo-Open-Air rumtreiben. Ich frag mich ernsthaft, wie ich
die Zeit von Donnerstag bis Montag ohne MG totschlagen soll...
Naja... wahrscheinlich muss ich mich mit Bier oder aehnlichen
alkoholischen Getraenken ueber diesen herben Verlust hinwegtroesten...
*seufz schwer*

Naja... so gegen Dienstag bin ich aber wieder in alter Frische da.

Horschd - allen Daheimbleibern viel Spass im MG wuenschend.

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



Eigener Urlaub! (Arien,  7. Jun 1995, 19:13:03):
Diesmal habe ich das Vergnuegen einen eigenen ganz freiwilligen Urlaub
anzukuendigen :)
Meiner eine ist die naechsten 2 Wochen unterwegs, u.a. den Strand in Belgien
auf Sonnenstrahlen absuchen.
Also bis zum 21.6....ciao und ueberarbeitet euch nicht.

Arien (sonnig)

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



Re: Eigener Urlaub! (Oetti,  7. Jun 1995, 19:15:29):
#! rn=Arien rt=802545183
Yo !
Ich uebrigens auch nicht..., aber wer denkt schon an mich *schnief*

tschuess

Oetti

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



Re: Re: Eigener Urlaub! (Arien,  7. Jun 1995, 19:17:00):
#! rn=Oetti rt=802545329
Ok, Ok, Ok. *streut Asche auf ihr Haupt* Irgendeiner muss ja kochen, gell
Oetti ;)
Wir sind also beide nit da, wasn Zufall :)

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



EUCAS '95 (Grimmborn,  5. Jul 1995, 11:10:29):

Wo ich schon mal in dieser Rubrik schreiben darf:
Ich bin diese Woche in Schottland (Edinburgh) auf einer Konferenz (siehe
Titel).
Interessiert zwar keinen, aber dann hab ichs mal gesagt...

Grimmborn der Atheist. Muddet auch auf Konferenzen in Schottland...

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



Urlaub?! (Dancer,  5. Jul 1995, 13:21:00):

Urlaub eher nicht, aber bis zum 24. werde ich nur ganz wenig da sein ->
Klausurstress....danach gehts aber mit VOlldampf weiter :)

Knuddels,

Dancer


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



Stress (Drizzt,  5. Jul 1995, 15:29:12):


Wenn hier schon gepostet wird, will ich auch nicht nachstehen ...
Ich werde so ab Mitte Juli nur noch seeeeehr selten bis gar nicht mehr hier
sein. Diese Stress-, bzw. Lernphase wird so bis gegen Oktober dauern, und
ich hoffe, dass ich bis dann mein Vordiplom geschafft habe. (Fuer Inter-
essensfragen bitte Grimmborns Abschnitt [ -2 Artikel] lesen :-)  )

DdD  (steht vor dem Stoff wie der Esel am Berg)


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



Urlaub??? (Mystix,  5. Jul 1995, 17:03:48):
Da diese Rubrik anscheinend wiederbelbt wurde - hier auch ein Artikel von
mir.
Bis zum 17. Juli werde ich wohl seltener hier sein (KLAUSURSTRESS). Dann
wieder etwas haeufiger - aber spaetestens ab dem 24. Juli bin ich leider
wieder in der Fernzone (Telefontechnisch) => Sehr seltener Aufenthalt im MG.
Kann also etas dauern, bis ich BUGs oder aehnliches beseitige.

Mystix - gestresst

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



Re: Urlaub?! (Catweazle,  5. Jul 1995, 20:12:29):
#! rn=Dancer rt=804943260
Aeh, welchen 24. ? :-)
YTC

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



Re: Re: Urlaub?! (Dancer,  6. Jul 1995, 01:36:28):
#! rn=Catweazle rt=804967949
Erpsenzaehler :-)) Ich bin WEG, kommts da auf ein Jahr mehr oder weniger an?
;-) *grins* 24. Juli....bin ja ganz schnell wieder da :-)
Aeh ja...1995 :)

Dancer


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



ist zwar kein urlaub ... (Nairolf, 15. Jul 1995, 03:17:01):
SO ich denke diese rubrik wird eh viel zu selten benutzt und deshalb schreibe
ich mal hier rein..
ich werde ab montag 17.7. erstmal fuer 6 bis 8 wochen nicht mehr allzuhaeufig
hier sein, denn ich muss tatsaechlich mal arbeiten um die telefonrechnug
bezahlen zu koennen tja aber vermissen werdet ihr mich ja eh nicht soooo
dermassen...(sollte vielleicht diesen artikel unter anzeigen veroeffentlichen
damit meine    _Spieler_ freunde das auch mitbekommen ... naja ich hoffe
danach habe ich dann auch endlich zeit mit delos dann mal etwas intensiver zu
proggen :-)
so malwieder vergessen ne klammer zuzumachen.. also bis denne leute ich werde
das MG vermissen...:-(
Kaept'n Nairolf der fliegende Hollaender

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



Re: ist zwar kein urlaub ... (Grimmborn, 17. Jul 1995, 15:00:22):
#! rn=Nairolf rt=805771021

Peinlich, peinlich, Nairolf...
Diese Rubrik KANN von Spielern gelesen werden, seit immer schon.

Von seiner eigenen Unfehlbarkeit ueberzeugt,
                                             Grimmborn der Atheist

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



und tschuess (Felagund, 20. Jul 1995, 13:53:40):
Hmm..will auch mal wieder was posten ;)
Also ab 19.7. bis 6.8. denk ich malk nicht ans MUD (*gelogen*) sondern lieg
faul an Korsikas Straenden rum (*wahr*)
Und damit jetzt keiner neidisch wird sach ich auch gleich dazu, dasses da mit
dem BUS runtergeht :(
Aber lustich wirds trotzdem ;)
Also bis denne....Fela

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



Diplomferien (Sir, 20. Jul 1995, 20:39:59):
Moin,

ich habe vorlaeufig unbegrenzten Urlaub, das Dumme ist nur ich muss ihn
am Rechner verbringen.
Wundert Euch also nicht, wenn ich mich in der naechsten Zeit eher der
Diplom-Quest widme und ziemlich selten hier sein werde ...

Ggf. wendet euch an meinen Co-RM Death

Ciao
Sir

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



Pause (Wur, 20. Jul 1995, 23:45:53):
So, nun mach auch ich mal Urlaub, oder das was man halt dadrunter versteht.
Ich bin so, fuer die naechsten 2 Wochen nicht da. Falls was ist, ops, keine
Ahnung was dann.
Viel Spass hier derweil.

Wur

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



3 Monate (Delos, 21. Jul 1995, 10:03:19):

Hallo zusammen!!!

Tja, ueberall beginnt die Ferien- und Urlaubszeit, also auch bei mir.
So mancher nutzt die Zeit um richtig Urlaub zu machen, der andere zum
Arbeiten (Geld verdienen) oder wieder andere mussen fuer Pruefungen,
Vordiplom, Diplom, o.ae. lernen,...
Ich werde mir meine Zeit etwas aufteilen:
 - 2 Wochen Geld verdienen,
 - 2 Wochen Urlaub in meiner geliebten Heimat Bayern,
 - 2 Monate Praktikum.
Alles in allem werde ich also fuer 3 Monate dem MG keinen Besuch abstatten
koennen.

Ich wuensche Euch eine schoene Zeit und natuerlich viel Erfolg (bei was
auch immer),

Delos


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



"Urlaub" (Highlander, 21. Jul 1995, 14:14:53):

Hi!
Auch mich hat's erwischt, die vorlesungsfreie Zeit naht.
Das heisst mit anderen Worten, es ist Zeit zum
a) Geldverdienen (August)
b) Mathe lernen (September, ...)
c) Klausur schreiben (Oktober)
Vor allem im August werde ich deswegen nur sehr selten anzutreffen sein.
Dafuer nehm ich mir dann auch mal wieder ein oder zwei Tage Zeit fuer
die Seele :>

   Highlander ryn Tahar, geldausgebender und daher auch verdienen muessender
              Seelenklempner

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



Bin auch mal weg... (Anthea, 24. Jul 1995, 10:54:38):
Ich werde vom 1.8. bis 23.8. in Suedspanien mein Unwesen treiben, da werde
ich also nicht da sein. Am 31.7. muss ich die Reste meiner Geburtstagsfeier
aufraeumen, am 30.7. den Geburtstag feiern, und am 29.7. dafuer einkaufen.
Also werde ich zu diesen Zeiten wohl auch nicht koennen.

            Anthea

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



urlaub (Li, 24. Jul 1995, 13:51:29):
Hallo Mitmags!
ich fahre zwar nicht in Urlaub, mache aber ein bischen Urlaub (auch vom MUD).
Ich habe mir ein bischen Arbeit mit nach Hause genommen, um Xian
aufzumoebeln, aber mehr werde ich im moment nicht machen.
bin aber unregelmaessig noch da (wie im Moment) und ausserdem gibts ja noch
die Mail, nicht war?
also bis denn,
Li

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



leider kein Urlaub (Fraggle, 24. Jul 1995, 17:49:21):
Tja, auch ich muss lernen (fuers Diplom)
Komme aber sporadisch immer mal vorbei (also nicht wundern, wenn mails/Bugs
etc. laengere Zeit unbeantwortet bleiben.
Gruss
Fraggle

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



Urlaub (Grimmborn, 27. Jul 1995, 14:15:12):

So, ab Sa, dem 29.7. bin ich in Urlaub (Schottland, aber wen kuemmerts?).
Zurueck bin ich wohl vor der Party kaum, mit viel Glueck bin ich auf der
Party. Nutzt die Zeit und muddet, ohne dass ich Euch dazwischenquatschen kann!

Grimmborn der Atheist

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



Ne, nich Urlaub (Paracelsus, 28. Jul 1995, 13:50:16):
Hi!
Ich werde wohl auch in naechster Zeit sehr selten im MG anzutreffen
sein. Ich werde mir wohl oder uebel die Zeit mit Arbeiten und Lernen
vertreiben. Bei zwei Vordiplomsklausuren bin ich lieber vorsichtig.
Ihr werdet also bis Anfang Oktober meist ohne mich auskommen muessen.
Aber freut euch nicht zu frueh, ich komme wieder ! ]:-)

Paracelsus der Dunkle.

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



Urlaub? Pah! (Wargon, 28. Jul 1995, 17:52:05):
  Hi!
Da ich die naechsten drei Wochen (31.07. bis zur Party) Geld verdienender
Weise verbringen werde, wird man mich waehrend dieser Zeit wohl eher selten im
Mud zu sehen bekommen.
  Wargon

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



Urlaub? hoffendlich! (Bloodyharry,  1. Aug 1995, 01:36:12):
Also ich werde ab Freitag dem 4.8 die naechsten zwei Wochen mit meiner
Familie in den Niederlanden verbringen.
Dann werde ich leider keinen Kontakt zu Euch haben - aber ich werde sicher an
Euch denken. :)
ciao
    Bloody Harry

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



Kaum bin ich Magier, schon bin ich im Urlaub (Morgoth, 10. Aug 1995, 09:58:28):
Ja ja, ich schaem mich auch.
Also ich hab vom 14.08 - 01.09 Urlaub.
Ich fahre nicht weg, d.h. ich werde am WE oder abends/nachts mal reinschaun.
Falls sich in der Zeit irgendwer fuer mein projekt interessiert und mir
helfen will, so wird sich das doch sicher einrichten lassen. (schiel zu den
R's E's und G's), oder???
also bis denne....
**wink**
Morgoth

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



Zwar kein Urlaub, aber genauso gut! (Rumata, 11. Aug 1995, 19:07:12):
Da ich in zwei Tagen in die Staaten zu einem Austauschaufenthalt
fliege, dachte ich, es waere mal langam Zeit, Tschuess zu sagen.
Also:
    TSCHUESS :-)))
Vielleicht schau ich mal von dort aus rein (aber ihr kennte ja die
USA-Leitungen :-()

Rumata der magische Beach Boy

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



endlich mal Urlaub (Rikus, 18. Aug 1995, 01:35:15):
Ich treibe mich vom 19.08. bis 17.09. in Californien und Umgegend rum.
Also ciao und alles Gute bis dahin...

Rikus

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



30.08 - 13.09. (Durian, 22. Aug 1995, 12:52:54):
Hallo Leute!

Die Sonne brennt Dir auf die Haut, das Meer rauscht zu Deinen Fuessen,
Du hast ein leckeres Eis in der Hand, weit und breit kein Baum in der
Naehe .... genauso, wie man sich einen schoenen Urlaub vorstellt!
Vom 30.08. bis 13.09. bin ich in der gluecklichen Lage, diesen
wundervollen Urlaub auf Kreta geniessen zu koennen!

- Durian

Aeh, ist Kreta nicht eine Insel???

oh

Ich sollte umbuchen ...

:-)

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



Re: 30.08 - 13.09. (Dancer, 22. Aug 1995, 13:42:00):
#! rn=Durian rt=809088774
Kreta ist ein Stueck Wueste, das nur gerade gebadet wird, weiss doch jeder!

Dancer


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



offline von 23.8 bis 28.8 (Ketos, 22. Aug 1995, 19:53:59):
Mein Institut zieh um und schaltet morgen Mittag seine Computer ab und ich
schaetze das vor Monatg da nix mehr geht :(

- Ketos - Im Zwangsurlaub ;)

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



Ungarn: 28.8-3.9 (Hate, 27. Aug 1995, 21:00:17):
Tja, von Montag bis Mittwoch Arbeit und dann Thermalbad :)
Hate.

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



Abschied (Silvana,  7. Sep 1995, 16:00:56):
Tja, so leid es mir tut und so schwer es mir faellt: Es ist so weit.
Ich muss mich vom Morgengrauen verabschieden.

Nein, nein - nicht fuer immer. Aber fuer die naechsten 14 Tage. Ich
hab naemlich zu ersten mal seit 7 Jahren wieder nen richtigen Urlaub! ;)))
Also - bis bald mal.
*zum Abschied wink* Silvana

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



Kirk und icch sind jetzt erstmal weg (Gwenhwyfar, 29. Sep 1995, 12:38:00):
So, endlich ist es soweit. Der Urlaub steht vor der Tuer.
Kirk und ich sind jetzt erstmal fuer 5 Wochen, dass heisst bis zum 6.
November weg. *freu*
Wir werden uns mal Australien ansehen.
Bis dahin winke, winke

Gwenny und Kirk

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



Arbeit! (Angus,  6. Okt 1995, 12:00:58):
Naja, wie der Titel schon sagt, hab ich keinen
Urlaub, sondern muss Arbeiten... Wie dem auch sei, ich bin wohl die naechsten
20 (ja, zwanzig *stoehn*) Wochen nur sporadisch, und dann auch
nur zum Zeitung lesen hier anzutreffen.
So long,
   Angus - DB- und Visual-C++ Prakti...

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



Diese Woche unterwegs (Ketos,  7. Okt 1995, 23:53:23):
Die kommende Woche bin ich unterwegs und hoechstens mal kurz drin, wenn
ich ueber ein internet zugang wo stolpern sollte.
- Ketos -

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



16.10.-27.10. (Morgoth, 11. Okt 1995, 14:57:17):
wie schon aus dem subject zu ersehen bin ich in diesem zeitraum nicht da.
ich werde dort (hoffentlich) den zweiten teil meines Klinikums fuer den
Rett-San absolvieren.
bis dann....
morgoth

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



Tschuess (Schrumpfi,  1. Nov 1995, 19:36:46):
So, wird Zeit fuer mich, mal ne Mudpause zu machen. Ich mach zwar keinen
Urlaub
aber ich werd wahrscheinlich bis 18.11 oder noch laenger nicht im Mud sein.
Ich hab am 16.11 eine wichtige Pruefund und wenn ich weiterhin im Mud
rumlunger
werd ich die wohl versauen. Also hab ich mir selber eine Abstinenz von
mindestens 2 Wochen auferlegt.
Falls es irgendwelche Bugs und dergleichen in meiner Gruft geben sollte, was
natuerlich voellig unwahrscheinlich ist ;-), koennt ihr Euch vertrauensvoll an
meinen geliebten Gatten Zardoz wenden *grins Zardoz breit an*
Bis denne und lasst das Mud stehn
                 Schrumpfi

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



Silvana."Urlaub" (Li, 13. Dez 1995, 09:31:12):
Hi!
Also wer sich wundert, dass Silvana im moment nicht da ist, liegt nicht
daran, dass sie Urlaub hat, sondern dass sie sich ne richtig dicke virusgrippe
eingefangen hat und zu Hause dass Bett huetet. sie wird nicht vor Mitte
naechster Woche wierder in der Uni (und im MUD) sein.
Dies nur vorsorglich, damit nicht mache Leute mich immer anhauen, wo sie denn
waere (*schiel gewissen Magier an*)

P.S. Sorry fuer die Typos, mache soll manche heissen... usw.


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



Feiertage (Creative, 16. Dez 1995, 17:19:09):

Ab 22. Dez bis inkl. 4. Jan werde ich nicht am Rechner zu finden sein.
Arbeit, ruhe geduldig (halt ich das aus?)

-Crea-

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



ich bin auch weg (Morgoth, 18. Dez 1995, 09:09:04):
vom 27.12. (erster urlaubstag) bis zum 5.1. im neuen jahr (letzter
urlaubstag) werde ich **wein, heul, schnueff** dem MG erspart bleiben (wer
jubelt da? hm? ). also bis zum naechsten jahr. oder auf ein naechstes jahr?
oder aeh. ach egal. auf jeden fall.
frohe weihnachten und nen guten rutsch (von mir aus auch auf zardoz
rodelbahn)

**wink, wink**
morgoth


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



Noch'n Urlauber! (Kretek, 19. Dez 1995, 17:06:19):
Hiho!

Also, nicht, dass ich erwarte, dass jetzt jemand in Traenen ausbricht oder
so, aber trotzdem:
Ich bin ab 23.12. zwei Wochen lang weg, und zwar beim Skifahren. Sollte
jemand einen die-Piste-wie-ein-Bloeder-runterrasenden Polarfrosch-Magier
beobachten wollen, dann kann er/sie das ja in Dorfgastein machen...

Kretek
(nicht umsonst Mitarbeiter von Polar!)

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



DM 478.- Telephonrechnung (Sushi, 20. Dez 1995, 20:54:26):
Hmmm, ja. Das war es dann erst einmal.
[Tod:] Eine Telephonrechnung hat gerade Sushi getoetet.
Ich werde dann mal einige Zeit Pause machen, zumal da ich auch im Januar
anfange, meine Magisterarbeit zu schreiben. Zwar werde ich von Zeit zu Zeit an
den Wochenenden noch einmal reinschauen, aber dann nur kurz.

Bis denn!

Sushi

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



Flucht aus Linz (Schrumpfi, 22. Dez 1995, 14:54:24):
So, es ist soweit, die Polarhexe verlaesst Euch fuer ca zwei Wochen!
Ich bin vom 24.12.95 - 8.01.96 auf der Flucht ;-)
da es im Polar eh keine Bugs gibt, is es eh egal ob jemand da ist oder nicht.
;-)
Ich wuensch Euch schoene Feiertage und nen guten Rutsch, lasst das MG stehn
und ueberfordert die arme Lilith nicht zu viel ... ;-)
Tschuess
                        Schrumpfi

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



Re: Flucht aus Linz (Bendeigid, 22. Dez 1995, 14:57:01):
~#! rn=Schrumpfi rt=819640464
~#! tid=819640464
Wie was keine Bugs? Was ist mit Lofwyr? :-)) Ach so, Troy.. na gut.
Ich wuensch Dir alles Gute, und komm bald zum Testen zurueck!
Ach so: Ich mach nur ueber die Feiertage ebenfalls Urlaub, schau aber
zwischendurch nochmal rein. allerdings selten, schaetz ich.
Da das eh niemand interessiert, kann der Artikel auch geloescht werden. :-((

Bendeigid, verschneit.

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



06.01. - 13.01. (Durian,  4. Jan 1996, 16:00:01):
IN diesem Zeitpunkt breche ich mir auf oesterreichs Skipisten HOFFENTLICH
NICHT die Beine ;-)

- Durian

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



Urlaub?????? (Anthea, 15. Jan 1996, 15:46:36):
Ne, also Urlaub habe ich wirklich nicht! ich bin jetzt so langsam mitten im
Pruefungsstress. Daher verabschiede ich mich erst einmal, da ich jetzt zu nix
anderem mehr komme. Ob ich dann ab 10.2. wieder nen funktionstuechtigen
Internet-anschluss von zu Hause aus habe, weiss ich noch nicht... ansonsten
ab mitte Maerz wieder
       Anthea

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



Wenn es jemanden interessiert... (Shakedbeer,  1. Feb 1996, 11:17:35):
Hi!

Vom 05.02. bis zum 16.02. werde ich wohl nicht oft im Mud anwesend sein.
Ich werde aber wohl ab und zu meine Mails und Rep-Files abfragen. Ich
hoffe, dass ich auch ein wenig zum BETA-lernen komme. ;)

Shakedbeer - weiss noch nicht, wie er es 2 Wochen ohne Mud schaffen soll.

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



Re: Wenn es jemanden interessiert... (Mupfel,  1. Feb 1996, 20:06:17):
~#! rn=Shakedbeer rt=823169855
~#! tid=823169855
Du machst BETA?

-mupfel-
(verstehen wir beide unter BETA das neuste projekt der SIMULA-macher?)

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



Re: Re: Wenn es jemanden interessiert... (Shakedbeer,  2. Feb 1996, 13:04:14):
~#! rn=Mupfel rt=823201577
~#! tid=823169855
Also. Ich mache BETA, da es von der UniDO leider als Programmiersprache
zum Vordiplom angesetzt wurde. Und zwar handelt es sich um Mjoelner
BETA. Das ist ne irre Sprache. Sie stellt alles ein wenig auf den Kopf.
So heisst 3->x; das gleiche wie sonst x:=3;

Ich hoffe, das hat Dir geholfen.
Shakedbeer - Mag BETA eigentlich ganz gerne.

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



Re^3: Wenn es jemanden interessiert... (Mupfel,  2. Feb 1996, 21:33:46):
~#! rn=Shakedbeer rt=823262654
~#! tid=823169855
ja genau das meinte ich :-) wusste garnicht das das wo gelehrt wird. habt
ihrn nettes handbuch oder so dafuer?

(aehm alles weitere per mudmail wuerd ich sagen :-)
-mupfel-

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



Re^4: Wenn es jemanden interessiert... (Shakedbeer,  5. Feb 1996, 11:43:29):
~#! rn=Mupfel rt=823293226
~#! tid=823169855
Nun...

Es gibt zu BETA genau ein Buch :( Ich schau mal nach und gebe Dir mal
die ISBN-Nummer. Es ist natuerlich englisch. Man kann einiges daraus lernen.
Wenn Du aber neu einsteigst kann ich Dir das Vorlesungsscript empfehlen.
Wenn Du eine Version von BETA hast, liegen aber auch im doc-Verzeichnis
ps-Dateien.

Shakedbeer - erwartet schon die BETA-Win95-Version, ohne aber Win95 gut
zu finden :)

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



Urlaub bis zur Klausur (Azzuro,  9. Feb 1996, 00:12:57):
Ich muss mich mal aufs lernen konzentrieren. Bin 10 Tage in Spielpause!
Machs gut meine liebe Frau, meine Kinder und der ganze Rest.
Azzuro

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



Re: Urlaub bis zur Klausur (Ulo,  9. Feb 1996, 12:54:49):
~#! rn=Azzuro rt=823821177
~#! tid=823821177
Ich werde Dich vermissen, mein Schatz :)

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



Falls es wen interessiert... (Horschd, 12. Feb 1996, 10:46:23):
Hi.

Falls es wen interessiert:
Ich bin die naechsten 1 1/2 bis 2 Wochen nicht hier, weil ich endlich
mal meinen Analysis-Schein bekommen muss...

Tschau,

Horschd

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



Kretek is weg! (Kretek, 12. Feb 1996, 15:44:27):
Hiho!

Nachdem in in den naechsten Wochen TIERISCHEN Stress habe (viele, viele
Klausuren, Hausarbeiten, 'ne Habilschrift Korrekturlesen, und aehnliche
Scherze...), werde ich wohl in absehbarer Zeit - wenn ueberhaupt - nur
sehr sporadisch, z.B. zum Mail lesen oder so reinschauen.
Bis wann ich wegbleibe, kann ich noch nicht so genau sagen, es kommt
darauf an, wieviel Arbeit in in welcher Zeit wegschaufeln kann...

Tuess einstweilen,

Kretek, der gestresste Polarfrosch


P.S.: Wer mir unbedingt was megawichtiges mitteilen will, der kann das ja
auch ueber RL-eMail machen: Peter.Szilassy@Uni-Passau.De


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



Re: Falls es wen interessiert... (Bloodyharry, 12. Feb 1996, 23:43:08):
~#! rn=Horschd rt=824118383
~#! tid=824118383
Fiel Glueck Horschd!

Bloody Harry - sucht typos..

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



wech (Toeter, 13. Feb 1996, 11:37:40):
Hoi,
ich mache mal ein wenig Urlaub vom Mud, bin aber weiterhin ueber die
anderen Muensteraner oder email erreichbar.
Bis bald, Toeter

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



12.04. bis 06.05. (Durian, 21. Feb 1996, 12:03:51):
Hallo Leute!

Endlich ist die Bestaetigung (und die Rechnung :-)) da, deshalb gebe ich es
mal eben bekannt. Aeh, vorher ... Catweazle, bitte nicht weiter lesen,
sonst lande ich wieder bei Lars ... er kann es naemlich nicht mehr
hoeren :-)

Also, vom 12.04. bis 06.05. erfuelle ich mir einen Traum und fliege in
die USA. Stichworte: Washington D.C., Atlanta, Walt Disney World, Florida
Keys, Miami Beach, New York City.

- Durian, zur Zeit aus gutem Grund auf McDonalds-Entzug :-)

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



Urlaub von Frankreich im Maerz (Ketos,  2. Mar 1996, 00:51:44):
[Verlegt von magier.quests, Ketos,  2. Mar 1996, 00:50:45]:
[Verlegt von magier.quests, Ketos, 26. Feb 1996, 22:06:16]:
Hallo liebe Leute,
im Maerz mache ich einen laengern Urlaub ausserhalb von Frankreich und ganz
ohne Morgengrauen. I will be back in April.

- Ketos -



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



Urlaub (Silvana,  6. Mar 1996, 13:22:50):
Ich brauch nen bischen Urlaub vom Gilden-Stress. Bin also die naechsten
1-2 Wochen nicht da. Li kuemmert sich so lange um die Gilde. Er hat
ja Schreibrechte.

  Silvana

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



urlaub (Romili, 11. Mar 1996, 17:27:37):
Hi Alle,

ich bin zwar die letzte Zeit seltener da, weil ich ziemlichen Stress auf
der Arbeit habe, aber die naechsten drei Wochen habe ich Urlaub und
werde mich auf Bali erholen :-).

danach hab ich hoffentlich wieder mehr Zeit zu mudden.

liebe Gruesse an alle

Romili.

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



Bambulko macht Urlaub! (Bambulko, 18. Mar 1996, 14:33:17):
Wegen eines Praktikums bei der DLR kann ich erst ab dem 15. April
reinschauen....dann vermutlich aus Bonn :-))

Bis dann...

   Bambulko das Wasserwesen

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



Freut Euch nicht zu frueh! (Lwaxana, 21. Mar 1996, 18:52:15):

Tja, auch wenn sich das Kills log jetzt erst mal von mir erholen kann, das
heisst doch nicht, dass ich nicht wiederkomme :)
Allerdings wohl erst in drei Wochen. (Es sein denn eine Gletscherspalte oder
die IRA erwischen mich, dann wirds wohl evtl laenger dauern *grins*)
Bis dahin erholt Euch gut von mir und sammelt neue Kraefte :)
Tschau Lwax die Nervensaege!

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



*seufz* (Schrumpfi, 22. Mar 1996, 23:13:47):
Hmm, eigentlich hat das jetzt mit Urlaub eher weniger zu tun...
Da ich jetzt wieder in die stinkige Arbeitswelt eingetreten bin und mich
langsam zu einer Workoholikerin entwickel, werd ich wohl nicht mehr so oft
hier sein..
Werd ab und an mal an nem WE rein schaun aber unter der Woche werd ich wohl
selten hier anzutreffen sein. *schnueff*
Ich hoff, ich hab mich bald ans arbeiten gewoehnt und werd anstatt nach der
Arbeit muede ins Bett zu fallen, doch mal ab und zu hier rein schaun
Schrumpfi

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



Zwangspause (Leusel,  1. Apr 1996, 13:56:18):
Da ich gerade meine Diplompruefungstermine bekommen habe, hab ich mich
spontan entschlossen, die naechsten 50 Tage mal nicht mehr vorbeizuschauen :)

Leusel (bibbert schon)

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



Re: Zwangspause (Morgoth,  1. Apr 1996, 14:24:30):
~#! rn=Leusel rt=828359778
~#! tid=828359778
viel glueck

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



Gruesse aus Tokyo (Toeter, 14. Apr 1996, 10:51:30):
[Verlegt von allgemeines, Ketos, 13. Apr 1996, 11:04:54]:
Hallo, Leute!
Viele Gruesse aus Tokyo.
- Ketos -


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



snief...fast zwei wochen (Morgoth, 25. Apr 1996, 13:19:01):
tja, ich hab noch 7 tage alten urlaub, den ich bis zum ende des monats
antreten muss. naja, also ich werde dann vom 29.4. bis zum 8.5. keine
sklaventreiberei mhr machen koennen. hoechstens mal am wochenende oder am 1.
mai.
also erholt euch gut in meiner abwesenheit, stellt nix dummes an, fackelt
muenster nicht ab und kappt keine leitungen.
in tiefster Trauer
Morgoth

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



Silvana (Li,  7. Mai 1996, 08:45:10):
Hi!
Ich soll Euch von Silvana ausrichten, dass sie diese Woche keine Zeit fuers
MUD hat. Sie wird aber wahrscheinlich naechste Woche wieder da sein.
i.A. Li

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



URLAUB!!! (Bambulko, 25. Mai 1996, 11:33:50):
Bin fuer ne Woche in Kopenhagen....Bis dann
Aeh am Niels Bohr Institut natuerlich :-))

Bambulko

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



Kein Urlaub (29.5.-2.6.) (Hate, 28. Mai 1996, 12:09:30):
Tja, kein Urlaub, aber ne Dienstreise. Nach Thessaloniki.

Hate.

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



Kretek->weg() (Kretek,  6. Jun 1996, 11:56:38):
... Oder anders gesagt: Ich goenne mir ein paar Tage im Land meiner Vaeter.
(Und meiner Vaeter Vaeter. Und meiner Vaeter Vaeter Vaeter. Und...)
Genauer gesagt: in Ungarn.
Nicht, dass ich jetzt erwarte, dass mich jemand vermisst oder so... **grins**

Ciao,
Kretek-ur

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



Naja, wenigstens etwas (Morgoth, 13. Jun 1996, 16:12:13):
Also eigentlich isses nur ein Tag, der 14.6.
Bienchen & Ich fahren naemlich Siborit und Fremder in .nl besuchen.
Bis Montag also. ;-)))
Morgoth

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



Grillen (Zardoz, 13. Jun 1996, 16:19:25):
Ich mache auch Urlaub, genauer gesagt gehe ich heute Abend ab 20:30 Grillen.
Wir sehen uns also erst morgen wieder.

Schoenen Urlaub wuenscht euch Zardoz!

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



Re: Grillen (Grimmborn, 13. Jun 1996, 18:00:30):
~#! rn=Zardoz rt=834675565
~#! tid=834675565

Natuerlich hast Du Unrecht: Du gehst schon um 19:30 grillen. Und ich
ebenfalls.

Allen Nichturlaubern einen schoenen Abend dann! :-)

Grimmborn der Atheist

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



Ronda muss arbeiten =;( (Ronda, 24. Jun 1996, 17:46:23):
So, nachdem ich schon sooo lange nicht mehr hier war, nun endlich die
Erklaerung:
ich mache grade ein Praktikum bei Miele (Trockner konstruieren =;) ) - 
und 10 von 15 Wochen hab ich schon hinter mir - spaetestens wenn ich die
hinter mir habe, werde ich mich wieder melden!
Ansonsten freu ich mich natuerlich auch ueber Mails (dazu komm ich etwas
haeufiger) - machts gut, bis bald - ich freu mich schon auf die Mud-suechtigen
Naechte!!!!
                Ronda
..
..

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



29.7.-11.8. (Morgoth, 21. Jul 1996, 20:18:45):
Urlauuuuub. 
See you in Berlin.
Morgoth

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



auch mal nen sinnlosen Artikel (Grimmborn, 22. Jul 1996, 09:50:22):

Ja, ich mach auch irgendwann Urlaub. Bis irgendwann, allerdings liegt das Ende
des Urlaubs spaeter als der Anfang. Und der Zeitpunkt steht auch nicht so
fest, ebensowenig wie die Dauer. Und am wenigsten steht fest wen das
interessieren sollte, aber das ist ja auch egal...

Grimmborn der Atheist knapp vorm Hitzeschlag

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



urlaub (Li, 26. Jul 1996, 09:27:56):
Hi!
Ich werde die naechten drei Wochen Urlaub machen und daher nur ab und zu im
MUD vorbei schauen. Wichtige Sachen bitte per mail an mich. Fernwestsachen
koennt ihr natuerlich auch an ulo "auslassen".
Bis denn,
Li

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



Notfall-Urlaub (Freund, 28. Jul 1996, 13:43:10):
Gruess Gott,

Ich werde spontan als Notfall-Helfer auf eine Ferienfreizeit fahren,
da dort die *beiden* maennlichen Betreuer ausgefallen sind.

D.h. fuer mich spontan Urlaub bekommen und ab nach Oesterreich...

D.h. fuer Euch keine GCMud1-Zuege mehr (Glueckwunsch Rochus, meine
Heimat wird Dein sein. ;) und keine Scripter-Ueberwachung mehr (sei
ruhig, Cat*, vielleicht denken sie nicht an Dich...;)...

In 2 Wochen wrde aehm werde ich wieder da sein, bis dahin viele
Gruesse von einem FREUNDlichen Betreuer...

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



Urlaub (Catweazle, 29. Jul 1996, 14:12:45):
Genehmige mir ebensolchen bis Sonntag. BIn aber falls ich Account bekomme
trotzdem evtl. drin.
YTC

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



wech (Wurzel,  8. Aug 1996, 17:37:14):
hi,
bin bis ca. 25.8. in frankreich, weitab von allen terminals...
wurzel

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



 Binne nicht tot (Schrumpfi, 13. Aug 1996, 19:21:05):
Hi
Ich fahr fuer n paar Tage nach Koeln oder fuer ne Woche oder was weiss ich :)
Bugs und Beschwerden bitte an Bendeigid wenden! ;-)
Schrumpfi

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



Spielpause! (Calum, 20. Sep 1996, 12:18:03):

Urlaub? Schoen waers... Stattdessen habe ich ein paar nette Pruefungen
anstehen, und mir deshalb bis 8. Oktober eine Spielpause verordnet.

Ciao, bis dann...
 - Calum -

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



Semesterstart :( (Shakedbeer, 13. Okt 1996, 22:00:16):
Hallo!

Da  ich  im  naechsten  Semester mal wieder etwas mehr Zeit mit dem Studium
zubringen  moechte,  werde  ich  wohl nicht mehr all zu oft im Mud zu sehen
sein.  (Vielleicht  noch  ein-zweimal  in  der  Woche.)  Wenn  es irgendein
Problem mit angeschlossenen Sachen von mir geben sollte oder wenn ich etwas
Anzuschliessendes  abnehmen soll, mailt mir das bitte und habt im naechsten
Halbjahr  etwas Verstaendnis, denn es werden einige Sachen sicherlich etwas
laenger brauchen. Ich vermisse das taegliche Mudden jetzt schon. ;)

Shakedbeer - hat gehoert, dass es ein Leben ausserhalb des Muds geben soll.

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



Re: Semesterstart :( (Thingol, 17. Okt 1996, 22:47:59):
~#! rn=Shakedbeer rt=845236816
~#! tid=845236816
Hi,

ich fange naechste Woche auch mit dem Semester an. Also werde ich nur ab
und zu hier um MG sein ...

cu Thingol.

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



Urlaub? Schoen waer's... (Grimmborn, 17. Feb 1997, 18:53:37):
~#! on=Kretek ot=856198156 og=anzeigen
Hallo, Leute!

Tja, es ist mal wieder soweit - das Semesterende rueckt in bedrohliche
Naehe, und damit auch die eine oder andere Klausur. Deswegen werde ich fuer
die naechsten paar Tage meine Aktivitaeten hier AEUSSERST gering halten,
sprich, ich nutze den beruehmten Spielpause-Befehl (denn ich kenne mich ja...)
Kann ich auch mit gutem Gewissen machen, denn mein Programmier-Pensum ist
erfuellt, da kann ich spaeter dann nahtlos weitermachen. Also, wann ich 
genau wieder komme, weiss ich noch nicht, aber es koennte schon so Anfang
Maerz werden.
Wer mich dringend vollabern will, kann das weiterhin per MUDmail machen
(Nachsendeauftrag ist gestellt), oder direkt an kretek@fmi.uni-passau.de

So long,
verwuestet mir das schoene Polar in der Zwischenzeit nicht, lasst das MG
stehen, klaut nicht allzu viele Palmen, und was halt sonst noch so anliegt,



       | /  |\  |--  ---  |--  | /
       |<   |/  |-    |   |-   |<
       | \  |\  |--   |   |--  | \

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



Urlaub? Schoen waer's... (Grimmborn, 24. Feb 1997, 12:04:16):
~#! on=Kretek ot=856779857 og=anzeigen
~#! on=Grimmborn ot=856202017 og=magier.urlaub
~#! on=Kretek ot=856198156 og=anzeigen
Hallo, Leute!

Tja, es ist mal wieder soweit - das Semesterende rueckt in bedrohliche
Naehe, und damit auch die eine oder andere Klausur. Deswegen werde ich fuer
die naechsten paar Tage meine Aktivitaeten hier AEUSSERST gering halten,
sprich, ich nutze den beruehmten Spielpause-Befehl (denn ich kenne mich ja...)
Kann ich auch mit gutem Gewissen machen, denn mein Programmier-Pensum ist
erfuellt, da kann ich spaeter dann nahtlos weitermachen. Also, wann ich 
genau wieder komme, weiss ich noch nicht, aber es koennte schon so Anfang
Maerz werden.
Wer mich dringend vollabern will, kann das weiterhin per MUDmail machen
(Nachsendeauftrag ist gestellt), oder direkt an kretek@fmi.uni-passau.de

So long,
verwuestet mir das schoene Polar in der Zwischenzeit nicht, lasst das MG
stehen, klaut nicht allzu viele Palmen, und was halt sonst noch so anliegt,



       | /  |\  |--  ---  |--  | /
       |<   |/  |-    |   |-   |<
       | \  |\  |--   |   |--  | \

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



Re: Urlaub? Schoen waer's... (Grimmborn, 24. Feb 1997, 12:05:38):
~#! rn=Grimmborn rt=856782256 rg=magier.urlaub
~#! tid=856782256
Nur weil das scheinbar in Vergessenheit geraten ist (die Rubrik hier war ja
laengere zeit unbenutzt): Die Rubrik magier.urlaub ist die einzige Rubrik, die
mit "magier" anfaengt, die uneingeschraenkt von Spielern gelesen werden kann.
Schreiben koennen sie hier natuerlich nicht.

Grimmborn der MPAtheist

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



Urlaub (Grimmborn,  7. Mar 1997, 16:03:15):
Auch wenns keinen interessiert: Ich bin wohl so fuer zwei Wochen weg,
vermutlich bin ich in der Woche vor Ostern wieder da.

Rastet nicht ganz aus, ich besuche lauter Leute, die Netzzugang haben so dass
ich unauffaellig zwischendurch nach dem Rechten sehen kann.

Hilfssheriff Grimmborn der Atheist

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



Daemon in Kur (Yantro, 25. Mar 1997, 17:22:37):

Jojo, es ist mal wieder so weit... bevor ich hier im MG wieder hunderttausende
Anfragen annehmen muss oder millionenfach erklaeren muss, was ich weiss und
was ich nicht weiss, schreib ichs einfach mal in die Muel^H^H^H^HZeitung:

ZARDOZ issss wech !!!

Ich bin nicht seine Mama, sein Anrufbeantworter und auch nicht sein Manager,
also fragt mich nie mehr, was er sich dabei denkt, wie er zu erreichen ist,
dass ich was ausrichten soll oder aehnliches. 

Er meinte nur, dass er Urlaub braucht, dass es ihn im Moment alles ankotzt und
da vor allem IHR! Aetsch.... "Dies ist ein doofes Mud.. kann man nicht mal
Spieler killen, ohne dass man Aerger kriegt... alles doof und unrealistisch!"
usw war sein Gegrummel, als er sich in eine Wolke stinkenden Nebels aufloeste
und in Richtung besserer Muds entschwebte...

Yantro, ders auch Leid ist, immer dieses "Wo ist Zardoz?"-Geplaerre zu
ertragen.

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



Re: Daemon in Kur (Schrumpfi, 27. Mar 1997, 18:06:28):
~#! rn=Yantro rt=859306957 rg=magier.urlaub
~#! tid=859306957
Jaja, ich gebs zu ICH bins schuld!
Schrumpfi streut sich Asche ueber ihr Haupt und zieht sich fuer Bendeigid das
Bueserhemd an.

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



Ciao (Zardoz, 13. Mai 1997, 10:36:11):
Ich mache hiermit fuer unbestimmte Zeit Urlaub vom MG und komme nur noch um
meine Mail zu lesen. Der Link nach Oesterreich ist halt zu gut geworden, um
hier noch rumzuhaengen... 


Ciao Zardoz

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



Und wech (Grimmborn,  3. Jun 1997, 19:33:49):
Bin bis naechsten Montag im Urlaub, und mit grosser Sicherheit nicht im mud.
Verlegt eure bloeden Artikel also selber.

Grimmborn der Atheist

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



Pruefung (Catweazle,  4. Jun 1997, 11:35:30):
Hi!

Da ich beabsichtige im Herbst meine Diplompruefungen zu machen, werde
ich im MG noch weniger Zeit haben als sonst. Ich moechte meine 
Aktivitaeten hier also auf ein notwendiges Minimum beschraenken. Unter 
Minimum verstehe ich dabei Party, Verein und manchmal Polizei.
Thanx, YTC

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



back (Grimmborn,  9. Jun 1997, 10:58:40):
Ja, ich bin zurueck.
Ja, es war schoen, danke der Nachfrage.
Ja, in Schweden sind die Maedels im Schnitt signifikant huebscher als in .de

GdA

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



Italien?! (Shakedbeer, 26. Jun 1997, 23:52:56):
Hallo Muddies...

...ich komme gerade vom Konzert des Studentensinfonieorchesters
in Dortmund. Dort habe ich die Pauken gespielt und bin eingeladen
worden ab Samstag 14 Tage in Italien mit dem Jugendsinfonieorchesters
des Landes NRW zu spielen (Carmen). Ich lasse mir das alles zwar noch
durch den Kopf gehen, aber wahrscheinlich werde ich das Angebot
annehmen und deshalb wohl nicht zum Dortmunder Stammtisch kommen und
die naechsten 14 Tage wohl nicht im Mud zu sehen sein.

Also machts gut.

Shakedbeer - vielleicht ab Samstag in Italien. *WINK*

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



Re: Italien?! (Guldukat, 27. Jun 1997, 23:36:42):
~#! rn=Shakedbeer rt=867361976 rg=magier.urlaub
~#! tid=867361976
shit, ich wusste, dass ich was vergessen hatte.
nu ist es freitag abend, 23.35 und der stammtisch laeuft in dortmund ... :(

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



spielpause (Larissa,  2. Jul 1997, 16:08:57):
Hoi,
ich mach ein weilchen Spielpause weil ich glaube, dass hier einige
bei der Wahl eines bestimmten EM etwas uebergeschnappt ist. Ist meine
persoenliche Meinung, vieleicht hab ich ja unrecht.

Gruesse, Lari.

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



Re: spielpause (Mupfel,  3. Jul 1997, 19:47:39):
~#! rn=Larissa rt=867852537 rg=magier.urlaub
~#! tid=867852537
Was hast Du gegen Zardoz? :-)

-mupfel-
P.S.: Manche Magier/Menschen aendern sich auch. Denk mal drueber nach.

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



Re: Re: spielpause (Boing,  4. Jul 1997, 08:54:19):
~#! rn=Mupfel rt=867952059 rg=magier.urlaub
~#! tid=867852537
Das kann sie nicht mehr lesen ... nur zur Info. :)
  Boing

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



pruefungszeit *wuerg* (Patryn,  9. Jul 1997, 12:57:01):
ich hab jetzt bis zum 8.8. spielpause und bitte darum, dass mich kein
erz wieder vorher freischaltet (und wenn ich noch so viel jammere :)
leider kann ich mich nich anders vom mud losreissen und ich hab derzeit mehr
hier zu tun als das ganze semester zuvor.

na dann ciao und *wink*

------
patryn jammert

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



Baumassnahmen (Angus, 11. Jul 1997, 11:42:16):
Hi auch!
Leider bin ich fuer die Zeit unserer Semesterferien ausgesperrt,
weil die hier bei uns bauen... (was auch immer...)
Vielleicht kann ich sporadisch mal reinschauen.
Mail erreicht mich ueber meine Firma:
    strich@dvse.de
Bis denne!
   -Angus.

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



urlaub (Li, 17. Jul 1997, 10:07:30):
Klein aberfein, ich mache dies und naechste Woche Urlaub, auch vom MUD.
wir sehen uns im August in alter Frische...
Li

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



Arbeit (Feuerwehr, 18. Jul 1997, 15:34:07):
Hi!

Um jede Menge Geld zu scheffeln, werde ich jetzt 5 Wochen arbeiten und dabei
nicht (oder nur gaz ganz kurz) ins MG kommen koennen. Vergesst mich nicht :)

     Feuerwehr.

P.S. Sowas wollte ich immer schonmal schreiben.

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



Wech (Grimmborn,  7. Aug 1997, 17:34:30):
Ich bin vom 8.8.-15.8. in Muenchen auf der IETF, bischen mbone-Uebertragungen
machen. Naja, nicht alleine. Werde wohl weniger im mud sein.
Wuerd mich ja gerne mit ein paar Muenchenern treffen, aber die Tagung geht
ziemlich von 9-22 Uhr, da ist wohl kaum was zu machen. Glueck gehabt, was?

Grimmborn der Atheist zieht schonmal den Stahlhelm an. Auf zur Task Force...

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



Auf den Spuren der Ahnen... (Kretek, 11. Aug 1997, 14:40:55):
... werde ich mich jetzt eine Woche lang quer durch das Land der
Magyaren bewegen. Nur fuer den unwahrscheinlichen Fall, dass mich
jemand vermissen sollte ;-)

Ciao,
KreteK (Exil-Ungar)

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



Re: Auf den Spuren der Ahnen... (Methedras, 12. Aug 1997, 11:32:54):
~#! rn=Kretek rt=871303255 rg=magier.urlaub
~#! tid=871303255
Ach, in die Nord-Tuerkei meinst Du, ins Land Deiner Vorfahren?
Na dann viel Spass beim Doener essen, 2tie. :-)

       Bergchen Methedras - froehlich grinsend

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



Re: Re: Auf den Spuren der Ahnen... (Kretek, 12. Aug 1997, 18:09:32):
~#! rn=Methedras rt=871378374 rg=magier.urlaub
~#! tid=871303255
Na warte, Du Gelbfuessler! Komm Du mir nochmal unter die Finger, Du...
Zermalmen werde ich Dich wie eine widerliche Kakerlake!
Schliesslich habe ich nicht umsonst einen abgeschlagenen Tuerkenkopf
im Wappen! **grummel**

KreteK
Nicht-Tuerke, Exil-Ungar

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



Bin fuer 2 Wochen weg... (Padreic, 25. Aug 1997, 15:02:31):
So, ich wende dem Mud ab morgen erstmal fuer zwei Wochen den Ruecken zu und
kann nur hoffen, dass es a) bei mir keine Bugs gibt und b) ich das Mud noch
wieder erkenne wenn ich wiederkomme :)
                                      Gruss Padreic

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



Wie die Rubrik... (Bendeigid,  1. Sep 1997, 10:21:02):
...schon sagt:
Ich mach mal eine Woche Abnstinenz vom MG. Da mich eh keiner vermisst, ist das
hier nur gegen die NNadW-Meldung.
Machts gut und bis zum 8.9. oder so...

Z'par Servu,
          Bendeigid

P.S.: heisst natuerlich Abstinenz. Streicht das eine n. ;)

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



Urlaub (Patryn, 10. Sep 1997, 01:23:01):
~#! on=Grimmborn ot=873847304 og=magier.entwicklung
So, ab kommenden Freitag bin ich fuer eine gute Woche nicht da. Und wenn
ueberhaupt kaum im MG. Aergert euch also selber...

Grimmborn der Atheist

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



Und wech.... (Morgoth, 12. Sep 1997, 13:18:04):
Bin ich, jawoll. Vom 15.9. bis zum 6.10. ;-))
Flames und gejammer an Patryn.
Bis denne.....
Morgoth

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



Urlaub (Li, 16. Okt 1997, 21:24:02):
ni hao!
eine Woche ist zwar nur eine woche, aber ich moechte meinen wohlverdienten
Jahresurlaub doch (stolz) verkuenden!
Eine Woche nordsee, dann am WE in Essen, und danach wieder im MUd.
bis denn!
Li

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



Urlaub, was sonst (Guldukat, 20. Nov 1997, 21:35:17):
So, ich bin ab montag 2 wochen wech. und wenn dann das MG wegen
umherstreunener papageien ueberlaueft und crasht, werdet ihr noch wuenschen,
dass ich die trigger wieder aktiviere! ;-)
Fuerteventura, zwei wochen Sonne! 

Segeln, Surfen, Strand, Sonne ... was gibts noch mit S?
Saufen, Sex

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



KreteK macht Pause (Kretek,  2. Dez 1997, 15:19:35):
Hallo, Leute!

Tja, Urlaub kann man's wohl nicht nennen, was da in naechster Zeit auf
mich zukommen wird, aber es ist auf jeden Fall mit Abwesenheit vom MG
verbunden:
Ich habe mich in einer schwachen Minute fuer's Examen angemeldet. Jetzt
muss ich erst mal meine Magisterarbeit basteln, und dann kommen noch
die ganzen Pruefungen. Vermutlich wird sich der ganze Schmonz bis ca.
Juli/August '98 hinziehen. In dieser Zeit werde ich mich hier (ich 
denke mal, aus verstaendlichen Gruenden...) ziemlich zurueckziehen und
hoechstens mal auf 'nen Sprung zum MPA lesen reinschauen. "Nachsende-
auftrag" bei der Post ist gestellt, d.h. MG-Mails erreichen mich auch
weiterhin (hoffe ich zumindest, gell, Loco?!). Im Zweifelsfall bzw. bei
gestiegenem Kommunikationsbedarf kann ich aber auch unter
kretek@antisocial.com direkt angemailt werden.
Macht's gut, treibt mir nicht zu viel Unfug, und versucht, das MG 
in einem wenigstens halbwegs wiedererkennbaren Zustand zu lassen, bis
ich mir das mal wieder in Ruhe anschauen kann, ja?

Ciao,
   KreteK

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



bin weg bis 7.1.98 (Boing, 22. Dez 1997, 18:01:19):
Jahreszeitbedingt bin ich bis zum 7.1.98 nicht mehr im Mud erreichbar.
Schoene Weihnachten und so,
  Boing

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



krank (Rikus, 22. Feb 1998, 15:08:59):
Hi,
die letzten 2 Wochen habe ich mit Fieber, Erkaeltung etc rumge-
legen, diese Woche werde ich noch eine Ohrenentzeundung ausku-
rieren muessen... Naja, seit 5 Jahren keine Erkaeltung gehabt... :)
Also falls was wegen FPs, ZTs etc ist, so bitte diese Woche
noch abwarten.

Danke, Rikus

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



Urlaub in Fernwest...aeh Fernost (Ulo, 11. Mar 1998, 16:23:41):

Hi, 
um Anregungen fuer Fernwest zu sammeln bin ich ab morgen bis zum 1.April
in Kyoto. (auf Kosten des Steuerzahlers :-))

Gruss,
Ulo

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



Re: Urlaub in Fernwest...aeh Fernost (Ark, 11. Mar 1998, 19:58:16):
~#! rn=Ulo rt=889629821 rg=magier.urlaub
~#! tid=889629821
Wenn's net schon zu spaet kommt: unbedingt zum Fushimi-Inari Schrein fahren,
liegt im Sueden, is mit der Keihan-Line von Sanjo aus in ein paar Minuten
zu erreichen und lohnt unbedingt! Dort durch alle torii gehen und
staunen, staunen ... is ein Supertrip fuer einen oder nen halben Tag.


              *** ARK * the * Magnificent ***


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



was man so urlaub nennt... (Wurzel, 17. Mar 1998, 23:40:33):
tja, eigentlich hat die rubrik einen falschen namen, jedenfalls fuer das
was mich "befallen" hat. urlaub ist es jedenfalls nicht, eher im gegenteil...
ein neues projekt wird mich wohl fuer drei bis vier monate, evtl. auch noch
laenger, nach muenchen verschlagen. da im hotel kaum internet-anschluesse
zu finden sind, wird sich meine taetigkeit hier wohl zwangslaeufig fuer
die zeit meiner abwesenheit deutlich reduzieren... aber freut euch nicht zu
frueh, i'll be back, wie arnold sagt.

wurzel

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



Re: was man so urlaub nennt... (Silvana, 17. Mar 1998, 23:42:58):
~#! rn=Wurzel rt=890174433 rg=magier.urlaub
~#! tid=890174433
Naja, nimm nen Laptop mit Linux und Gamedriver mit...

  Silvana - trennt sich nur selten laenger von ihrem HomeMud...

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



Re: Re: was man so urlaub nennt... (Grimmborn, 18. Mar 1998, 00:06:27):
~#! rn=Silvana rt=890174578 rg=magier.urlaub
~#! tid=890174433
Kommt immer drauf an. Ab einer bestimmten Klasse haben Hotels auch
Internetanschluss - und seis nur, weil ab einer bestimmten Klasse es auch
keine Rolle mehr spielt, dass man mitten am Tag ueber die Hotelanlage von
Muenchen nach Hamburg zum Provider telefoniert. Also: Ausreden gelten nicht!
(Und was ist das fuer ein Projekt ohne Netzanschluss?)

Grimmborn der Atheist

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



pruefung ahoi (Patryn,  6. Mai 1998, 21:15:20):
bis sonntag den 17.05. bin ich zu zwangsurlaub verpflichtet.
hab leider etwas pruefungszeug zu erledigen. wer was dringendes will,
mailts halt an hood.

------
patryn

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



Urlaub (Li, 18. Jul 1998, 12:16:12):
Ni hao!
Ganz kurzfristig, spontan und ueberhaupt mache ich eine Woche Ferien auf der
schoenen Nordseeinsel Foehr. 
Moege Fernwest bis dahin nicht zu sehr buggen .-)
bis denn, Zaijian
Li

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



weg (Grimmborn, 22. Jul 1998, 20:44:58):
OK, interessieren wirds wohl kaum einen, aber hier fuers Archiv:
Ich bin so ab dem 30.7. bis gegen den 24.8. in Urlaub. Und das auch noch
voellig ohne Netzanschluss. Wenn ich den kalten Entzug ueberlebt habe bin ich
also Ende August wieder da. Viel Spass dann hier, und geht pfleglich mit der
mpa um!

Grimmborn der Atheist

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



Jups, auch mich hats erwischt (Morgoth, 29. Jul 1998, 11:47:55):
Vom 17.8.-23.8. luemmel ich mich in sonner komischen Stadt namens Muenster
rum.
Vom 24.8.-28.8. werde ich die Zeit mit meinem geliebten Eheweib in Zuerich
verbringen.

Morgoth

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



Re: Jups, auch mich hats erwischt (Zuerileu, 30. Jul 1998, 01:34:36):
~#! rn=Morgoth rt=901705675 rg=magier.urlaub
~#! tid=901705675
Hi Morgoth,
aehmm du kommst nach Zuerich ? wenn du willst kann ich dich in Zuerich etwas
rumfuehren oder wir gehn zusammen etwas trinken. Ich meine schliesslich wohnen
in Zuerich nicht umsonst ein paar Mudder aus dem MG =:)

Tschau Alain

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



wech (Bierchen, 30. Jul 1998, 04:16:49):
hiho,
ab dem 30. so gegen mittag :) bin ich fuer einige wochen verschwunden,
waehrend der zeit (hihi) bugs an meinen files, wenn sie denn wichtig sein
sollten, an tilly schicken, der macht das dann schon (+ bugs auf dem rest der
feuerinsel :). fuer polar ist dann ja noch 112 da und fuers chaos 112 und
tilly.
bis dann mit einem satanischen grinsen im gesicht,
   - Bierchen -

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



Urlaub (Astar, 30. Jul 1998, 14:55:26):
HiHo!

Ich bin ab Heute Abend (30.7.) bis zum Treffen nicht im Mud, falls irgendwas
besonders wichtiges gemacht werden muss einfach mal Bloodyharry fragen.

Astar
  grinst Bloodyharry an...

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



Re: Urlaub (Bloodyharry,  1. Aug 1998, 23:24:53):
~#! rn=Astar rt=901803326 rg=magier.urlaub
~#! tid=901803326
He. Ich bin auch noch im Urlaub. Und eigendlcih garnich hier..

BH

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



Urlaub???? (Feuerwehr, 19. Aug 1998, 19:43:41):
Hi!

An alle, die es vielleicht lustig finden.

Ich bin in der naechsten Woche (24.-30.8) auf einer Schulung irgendwo am Ende
der Welt (leider ists keine Insel :-( ). Naja, vielleicht lern ich ja was :-)

Waehrend dieser Zeit herrscht Tilly ueber die Chaosgilde, macht euch also auf
abrupte, merkwuerdige und irgendwie fies aussehende Tode gefasst.

Aber vorher gehts noch auf die PARTYYYY!

    Feuerwehr.

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



ENDLICH!!! (Rikus, 24. Aug 1998, 22:33:50):
so, nachdem ich nun 2 Jahre mehr oder weniger keine Zeit fuer Urlaub hatte,
mach ich welchen vom 7.9. bis 11.10. und treibe mich die ganze Zeit in
Australien rum (Campen). Wer von Euch betreffs ZTs, FPs, Stupsen was
von mir moechte, sollte dies bitte diese Woche noch sagen, dass ich es
dann spaetestens naechste abarbeiten kann!

Rikus, reif fuer die Insel

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



Bin ne Woche weg (Tsunami,  1. Sep 1998, 17:43:50):
>>>>>>Entwarnung<<<<<<<<  Magier fuer eine Woche im Urlaub.

Schlagt nicht alles kaputt hier :)

Tsu.

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



Urlaub (was sonst) (Silvana, 12. Sep 1998, 02:26:57):
Man sollte es kaum glauben: Ich nutze die letzte Moeglichkeit, mit meiner
RL-Tochter ausserhalb der Schulferien in Urlaub zu fahren und bin
daher vom 21.Sept bis 5.Okt wech. Wer noch was von mir will, muss sich
also vorher melden oder gedulden.

  Silvana

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



ich komme wieder, keine frage... (Patryn, 10. Okt 1998, 21:42:03):
hi leute

wegen stark erhoehtem mudfrustspiegels ist es wieder mal zeit, eine weile
zu pausieren. wenn es dringende probleme gibt, schickts an meine
email-adr, meinen all(zu)bekannten zweitie bitte nich mit magierkrams
nerven. letztendlich beginnt ja auch noch das semester, mal wieder was
dafuer tun :)
ciao

------
patryn

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



Bin 1 Woche weg (Tsunami, 12. Okt 1998, 11:35:30):
Bin fuer ne Woche an einer Konferenz. *Ohne* Internetanschluss!
Hoffentlich ueberstehe ich die Entzugserscheinungen :)

P.S. fasst bitte nix an in meinem Verzeichnis...viele Sachen habe ich neu
raufgeladen aber noch nicht getestet...sonst muellt ihr den DEBUG zu ;)

In diesem Sinne, schoene Woche

Tsunami.

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



Bin im Urlaub vom 3.12.98-3.1.99 (Ketos, 30. Nov 1998, 21:12:47):
Hallo,

hurra das Ende der arbeitmuehen naht und dann nur noch Urlaub fuer den
Rest des Jahres. Vom 3.12-1.3.99 werde ich im Urlaub sein.

Viel Spass,

- Ketos -

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



Re: Bin im Urlaub vom 3.12.98-3.1.99 (Jimdigriz,  1. Dez 1998, 10:39:38):
~#! rn=Ketos rt=912460367 rg=magier.urlaub
~#! tid=912460367
Boah,

 bis 1.3.99 *NEID* ;-)
(naja im Subject stands wohl richtig)

JdG

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



Bin 2 Wochen weg (Tsunami,  8. Dez 1998, 15:32:06):
Huhu Leute,

Ich bin vom 9.12.98 bis am 21.12.98 weg. Leider werde ich in der Zeit wohl
nicht
im MG vorbeischauen koennen. Falls irgendetwas in der Mine buggt, bitte 
Bierchen oder Feuerwehr ins Schienbein treten :)))

Bis denne,

Tsunami.

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



Ich ich ich !!! (Morgoth, 14. Dez 1998, 12:26:06):
Vom 16.12. bis 10.1. hab ich Urlaub.

Da mein Schatz lernen muss, bin ich wohl oefter mal hier (wenn ich nicht zum
Proggen gezwungen werde).
Es lebe die Standleitung ! ;-))

M*

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



bin weg (Boing, 17. Dez 1998, 09:15:44):
Ich bin ab Samstag (19.12.) fuer 2 Wochen nicht erreichbar, wenn noch
etwas wichtiges ist, dann muss ich das bis morgen wissen.
  Boing

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



Urlaub (Bielefeld, 21. Dez 1998, 13:14:03):
Moin!

Ich hau dann auch mal ueber die Feiertage ab, vom 23.12. bis 2.1. werde
ich hier unter Garantie nicht anzufinden sein.

-Bielefeld

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



Silvanas Neujahrsnacht (Silvana, 27. Jan 1999, 03:51:57):
Es war einmal eine kleine Fee... 
Es geschah in der Neujahrsnacht dieses Jahres, dass sie, nachdem der uebliche
Krach verklungen war, wie jedes Jahr hinaus ins Freie trat und sich in ihren
geliebten Wald begab um das neue Jahr und die klare, wunderbar kalte Luft zu
begruessen.
Genuesslich legte sie sich zurueck, schaute ein paar Rehen zu, die sich
langsam wieder ins Freie trauten und betrachtete nachdenklich die Sterne. Und
so vergingen wohl einige Stunden, denn als unsere Fee schliesslich SEINER
gewahr wurde, begann es bereits zu daemmern.
Doch im Lichte des erstens Morgenrotes dieses ach so hoffnungsvollen, jungen
Jahres erkannte sie IHN: Ein Schatten von schier unmenschlicher Groesse, der
sich ihr langsam aber unaufhaltsam naeherte. Geboren nur zu einen einzigen
Zweck, naemlich unserer kleinen Fee das Leben zur Hoelle zu machen um sie
anschliessend vielleicht gar voellig zu vernichten.
Grosse Angst ueberkam da unsere kleine Fee, doch sie sagte sich: "Hexen kann
ich zwar nicht, aber zaubern kann ich wohl! Wenn ich schon mein Leben lassen
muss, so will ich es teuer verkaufen." Und so begab sie sich in ihren Turm und
begann alle Informationen zusammenzustragen, die sie ueber IHN finden konnte.
Es galt einen Zauber zu finden, dem ER nicht gewachsen war.

Ja, wird unsere kleine Fee diesen Zauber finden, habe die Rehe sich von ihrem
Schreck erholt und gibt es ein Leben nach IHN - dem Diplom? Erfahren Sie die
Antworten im naechsten Jahr, wenn es wieder heisst: Silvanas Neujahrsnacht.


PS: Um es mal prosaisch zusammenzufassen: Ich versuch dieses Jahr endlich mein
Diplom zu schaffen und werd dementsprechend wenig hier sein. Abgesehen von
Gildenbalance- und Rassen-EMaufgaben werde ich in diesem Jahr _rein garnichts_
hier tun. In Sachen Zauberer wendet Euch also bitte an Patryn.

Gute Nacht - Silvana

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



wech (Bierchen, 22. Feb 1999, 15:42:03):
Hiho,
mit allergroesster wahrscheinlichkeit bin ich gleich :) wech, und das fuer
gute 6 wochen. freut euch nicht zu frueh, 6 wochen vergehen schnell :)
bugs in polar ab sofort nur noch an 112 schicken (hoehoe) und den rest an
tilly.
gruss,
     - Bierchen -

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



Re: wech (Feuerwehr, 22. Feb 1999, 17:40:48):
~#! rn=Bierchen rt=919698123 rg=magier.urlaub
~#! tid=919698123

Hahahahahahaaaaa!

BEWARE!!!!

  Feuerwehr.

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



Und weg (Terrorist, 24. Feb 1999, 19:39:00):
Ich werde wohl erstmal nicht mehr erscheinen.
Ansprechpartner fuer die Gruft ist 112.

Gruende folgen noch

TERROR

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



Re: Und weg (Feuerwehr, 24. Feb 1999, 19:41:06):
~#! rn=Terrorist rt=919885140 rg=magier.urlaub
~#! tid=919885140


Hahahahahahaaaaa!

BEWARE!!!!

  Feuerwehr.

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



kleine Pause... (Mupfel, 26. Feb 1999, 18:50:39):
Aufgrund verschaerfter Aktivitaet (Megastress) in der Firma mache ich eine
kleine Pause bis 1. Mai. (seufz).

-mupfel-

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



Falls es jemanden interessiert... (Zook, 27. Feb 1999, 00:43:19):

Ich bin mal so ne Woche im Urlaub :) (hoffentlich
macht mich keine Lawine platt). 

Zook denkt . o O (hat doch sicher keinen interessiert, oder?)


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



Auch wenn es immer noch keinen interessiert... (Zook, 15. Mar 1999, 18:47:50):

Ich bin mal wieder im Urlaub... *grins*

Und zwar von Donnerstag, 18. Maerz bis Montag, 22. Maerz... 
Ein wenig in Madrid herumschauen... :))))

Wer Tips fuer Madrid hat, mails mir mal.. :)))

Zook.

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



wieder da... (Wurzel, 14. Apr 1999, 23:50:40):
es hat was laenger gedauert als urspruenglich geplant, aber jetzt bin ich
wieder da.
neue wohnung in neuer stadt, neuer job und neuer pc... naja.
ich danke allen, die mich mit reports, ideen und mails ueberschuettet haben,
fuer
ihre geduld. da mein hiesiger job sich leider nicht in acht stunden pro tag
erledigen laesst, kann es etwas dauern, bis ich den ganzen stapel abgearbeitet
habe, aber ich mache mich dran.

bis demnaechst in diesem theater

wurzel

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



Tschuess! (Feuerwehr,  4. Jun 1999, 23:24:41):
Hallo!

Ich werde euch jetzt verlassen. Ich werde wandern ueber duestere Pfade in die
Suempfe der Verzweiflung und in die Seens gewaltigen Leids. Doch graemt euch
nicht, denn in zwei Wochen, so die finsteren Maechte mir zur Seite stehen und
mich fuehren auf den sicheren Pfaden, werde ich zu euch zurueckkehren.

     Feuerwehr.

PS: Gildenfragen an Bierchen, Tilly, Swift.

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



kleine Pause (Mupfel,  7. Jun 1999, 23:57:56):
wegen stress im beruf und auch privat *seufz* leg ich mal ne kleine pause ein.
man sieht sich!

-mupfel-

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



kurzurlaub (Padreic,  8. Jun 1999, 13:52:34):
Ich wurde genoetigt kurzfristig am Donnstag fuer 4 Tage nach Prag zu fahren.
Bin also vom 10.06 bis zum 13.06 nicht im mud. Bei dringenden Problemen in der
Zeit dann also bitte an einen anderen EM wenden. Ansonsten arbeite ich die
ankommenden mails dann ab Montag wieder ab.

Padreic

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



malkurzwech (Tilly, 20. Jun 1999, 21:57:26):
Moin moin,
wahrscheinlich bin ich Ende kommender Woche wieder hier, also in knapp 2
Wochen. Eventuell frueher, wenns gut laeuft :-)

 - Tilly -

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



Kalabrien, 2 Wochen ;) (Bendeigid,  9. Jul 1999, 16:15:49):
Hi Kollegen,

ihr muesst jetzt fuer zwei Wochen (leider bis inclusive Fete) auf mich
verzichten, da ich mich in Sueditalien herumtreiben werde -
Internetanschlussfrei :)
Falls Bugs auftreten, nervt irgendeinen Erzi damit, falls nicht, schreibt mir
Lobesmails ;)

Tschuess bis 26.7. :)

Z'par Servu,
               Bendeigid

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



wech (Wurzel, 10. Jul 1999, 16:35:39):
bin erstmal fuer ca. zwei wochen in urlaub. wenn was mit den haeusern ist,
entweder etwas geduld oder an einen erzi eures vertrauens wenden :)

viel spass auf der party

wurzel

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



3 Wochen wech (Gor, 31. Jul 1999, 14:48:39):
Hi Leuts,
ich werde die naechsten 3 Wochen meinen Sommerurlaub machen.
Machts gut, buggt viel und macht schoene Gebiete.

Gruessle Gor

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



Bin eine Woche weg (Tsunami,  5. Aug 1999, 18:44:06):
Kaum RM muss ich den armen Feuerwehr schon wieder alleine lassen :))
Ich bin die naechste Woche vom 8.8. - 15.8. weg. Leider nicht ferienmaessig.

Machts gut und schmelzt mir nicht das Polargebiet ab!

Tsunami.

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



urlaub (Padreic,  9. Aug 1999, 17:49:55):
Ich fahr morgen frueh erstmal fuer 10 Tage weg und werde in der Zeit aller
vorraussicht nach auch keine email lesen koennen. Anschliessend werde ich zwar
wieder hier sein, aber wohl auch nur noch Abends, da dann einige Pruefungen
bei mir anstehn...

Padreic

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



Re: urlaub (Catweazle, 10. Aug 1999, 11:50:28):
~#! rn=Padreic rt=934220995 rg=magier.urlaub
~#! tid=934220995

Sturmfrei.....

YTC :)

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



Urlaub (Paracelsus, 31. Aug 1999, 12:02:28):
Hoi.

Ab Samstag bin ich zwei Wochen in Schottland. Nur fuer die, dies
interessiert.

Para*.

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



Re: Urlaub (Wim, 31. Aug 1999, 12:03:22):
~#! rn=Paracelsus rt=936100948 rg=magier.urlaub
~#! tid=936100948
Dein Freikontingent an Whisky ist bereits aufgebraucht, vermute ich?

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



Re: Re: Urlaub (Paracelsus, 31. Aug 1999, 12:03:38):
~#! rn=Wim rt=936101002 rg=magier.urlaub
~#! tid=936100948
Natuerlich.

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



Re^3: Urlaub (Wim, 31. Aug 1999, 12:03:50):
~#! rn=Paracelsus rt=936101018 rg=magier.urlaub
~#! tid=936100948
Mist.

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



Bin weg: 9.9.-20.9.99 (Tsunami,  7. Sep 1999, 09:07:24):
Huuhu!

Ich bin in den Staaten vom Donnerstag, 9.9. - Montag 20.9.
Nein, keine Ferien. Muss nen Vortrag geben, anstelle meines
Chefs in Washington DC und dann schau ich noch bei meinem 
potentiellen zukuenftigen Arbeitgeber in San Diego vorbei.
Also: Finger kreuzen, dass es klappt :))

Wenn was klemmt in Polar (was aber so gut wie nie der Fall ist):
Feuerwehr damit belaestigen. Er freut sich bestimmt darueber.

Biss denne,

Tsunami.

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



12.9. bis 2.10. (Rikus,  7. Sep 1999, 09:46:10):
gruss,
bin in obiger zeit nicht available, sondern in urlaub mit ark und ivo,
wenn man das erholung nennen kann :-)
wenn es also was wegen fps und zts gibt, bitte gleich mailen, ansonsten
wird es erst danach.

rikus

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



Re: 12.9. bis 2.10. (Ark,  7. Sep 1999, 18:38:42):
~#! rn=Rikus rt=936697570 rg=magier.urlaub
~#! tid=936697570
Wieso nicht, he? Das Spassmobil setzt sich am Montag in Bewegung *droh*

Wohl neidisch, weil Du schon am 02.10. zurueckkommst, was? Bei mir dauert der
ganze Spass uebrigens bis zum 05.10., aber das nur am Rande. Wenn mich die
beiden genug aergern, ueberarbeite ich einfach alles, was ich bisher
geschrieben habe, nochmal fallentechnisch:

unt bluemchen
Das Bluemchen laechelt Dich auffordernd an.

pfluecke bluemchen
Du versuchst, das kleine Bluemchen zu pfluecken. Leider musst Du erkennen,
dass Du dem hinterhaeltigen Blumenmonster in die Falle getappt bist.
Unheilvoll erhebt sich der bunte Humanoid hinter Dir.
Das Blumenmonster greift Dich mit tausend Dueften an.
Du versuchst Dich verzweifelt zu wehren.
Das Blumenmonster zerstaeubt Dich.
Dein Teddy knuddelt Dich ein letztes Mal.
[Tod:Ein paar duftende Bluemchen haben gerade ...

usw.


              *** ARK * the * Magnificent ***


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



Re: Re: 12.9. bis 2.10. (Patryn,  7. Sep 1999, 18:57:35):
~#! rn=Ark rt=936729522 rg=magier.urlaub
~#! tid=936697570
gibts ja schon...so aehnlich

------
patryn

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



Re^3: 12.9. bis 2.10. (Ark,  7. Sep 1999, 19:02:43):
~#! rn=Patryn rt=936730655 rg=magier.urlaub
~#! tid=936697570
Genau dieses aufseufzende, erleichternde Zuruecklehnen der Spieler brauche ich
*haemisch grins*
Weiter so, weiter so ... :-)


              *** ARK * the * Magnificent ***


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



Gletscherfee taucht ab (Silvana, 22. Sep 1999, 17:14:14):
Salve

Am Freitag werde ich meine heimischen Hallen hier auf Fels Nimmerkehr
verlassen und mich fuer gut 2 Wochen ans rote Meer begeben um dort
abzutauchen... Dass ich danach bei der Region Inseln einsteige ist aber nur
ein Geruecht. :) Bin ab 11.Oktober wieder zu erreichen - falls mich niemand
entfuehrt oder sowas...

  Silvana

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



Urlaub (Boing, 27. Sep 1999, 16:59:05):
Ich werde die naechsten 3 Wochen (bis 20. Oktober) gemeinsam mit Hobo
im Urlaub verweilen, lasst das Mud solange stehen ... :)
  Boing

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



Re: Urlaub (Hate, 27. Sep 1999, 19:45:39):
~#! rn=Boing rt=938444345 rg=magier.urlaub
~#! tid=938444345
Wir uebernehmen gerne ...

Hate.

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



Re: Urlaub (Morgoth, 28. Sep 1999, 07:38:50):
~#! rn=Boing rt=938444345 rg=magier.urlaub
~#! tid=938444345
Nein, ich hoffe doch, dass es weiter laeuft ;-)

Viel Spass !

M*

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



Reif fuer den Urlaub... (Padreic,  3. Okt 1999, 21:11:00):
Nun meine Klausur is endlich geschrieben und so nutz ich die Gelegenheit bevor
das Semester anfaengt nochmal eine Woche nach Rom zu fahrn. Ich wuensch Euch
viel Spass und lasst mir das mud steht :).

Padreic

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



urlaub bis ende der woche (Muadib,  4. Okt 1999, 13:50:45):
hi,

ich bin bis ende der woche wech :)

gruss

mua

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



Urlaub (Apollonia,  5. Okt 1999, 21:34:13):
Bin vom 6. bis 13. Oktober einschliesslich wech... Viel Spass.
Apo* (die Peitsche mal wegsteckend)

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



Re: Urlaub (Ark,  5. Okt 1999, 21:40:23):
~#! rn=Apollonia rt=939152053 rg=magier.urlaub
~#! tid=939152053
Ist das jetzt die ueberhastete Abreise auf den Andrang am Frankfurter
Stammtisch hin? Flucht? Alle Mudder, bitte vereitelt das!


              *** ARK * the * Magnificent ***


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



Re: Re: Urlaub (Apollonia,  5. Okt 1999, 21:43:56):
~#! rn=Ark rt=939152423 rg=magier.urlaub
~#! tid=939152053
Nein, das ist die ueberhastete Flucht ausm Buero, bevor die mich am Freitag
noch zum Arbeiten verdonnern und ich dann nie rechtzeitig raus komme (ich kenn
doch meine Pappenheimer)... abgesehen davon erfordert Kochen fuer ne Horde
Mudder schon die ein oder andere Vorbereitung... ;)
Apo* (nicht fluechtend, zumindest nicht vorm Stammtisch)

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



Sowas aenhliches wie Urlaub (Morgoth,  8. Okt 1999, 09:20:00):
Naja, auf jeden Fall bin ich wohl ab Montag (11.10.) fuer 1.5 Wochen nicht da.
Zumindest Tagsueber.

Viel Spass

M*

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



Unfreiwillig wenig Zeit (Highlander, 13. Okt 1999, 12:22:24):
Tja, so kann man sich auch "Urlaub" verschaffen - mein Controller ist
leider gestorben, aber nur soweit, dass man ihn noch
reparieren kann. Daher habe ich zZ kaum Gelegenheit, mal reinzuschauen.

  High "wenn's mal wieder laenger dauert" lander

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



Re: Urlaub (Boing, 20. Okt 1999, 15:09:34):
~#! rn=Boing rt=938444345 rg=magier.urlaub
~#! tid=938444345
Wow, ihr habt mich beim Wort genommen, das Mud laeuft noch. Ist ja 
unglaublich. :)
  Boing
PS: Und wehe jemand kommt auf die Idee, das mit meiner Abwesenheit in
   Verbindung zu bringen ...

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



Re: Re: Urlaub (Rochus, 20. Okt 1999, 15:10:21):
~#! rn=Boing rt=940424974 rg=magier.urlaub
~#! tid=938444345
Ich waere ja alleine nicht auf die Idee gekommen,
aber jetzt wo Du es sagst...

  Rochus

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



15.11.-29.11. (Hate, 12. Nov 1999, 09:47:33):
Macht nix kaputt.

Hate.

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



Urlaub ? Naja (Muadib, 28. Nov 1999, 14:22:02):
hi,

urlaub isses zwar nicht grade, dennoch bin ich bis zum 9.12 weg. vielleicht
komm ich mal zum we ans netz.

bya

muadib

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



Eine Woche weg (Tsunami,  9. Dez 1999, 14:45:29):

Ich bin vom 10.12. bis 17.12.99 in Washington.
Nein, kein Weihnachstshopping, sondern ein Vortrag.
Kann mich von dort aus leider nicht einloggen.

Wenn was klemmt in 'Polar' - was so gut wie nie der Fall ist -
bitte Feuerwehr belaestigen. Er freut sich bestimmt :))

Macht nix kaputt und frohes Mudden,

Tsunami.

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



Wohlverdient !! ;-)) (Morgoth, 15. Dez 1999, 10:29:26):
Vom 20.12.1999 bis zum 10.01.1900 !!!

M*

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



Urlaub vom 17.12. - 2.1 (Sniper, 17. Dez 1999, 03:18:24):
Moin Moin,

naja, eigentlich ist es nicht wirklich Urlaub, aber ich bin in dieser Zeit
nicht so oft da. Sollte also wider Erwarten was bei mir oder Patryn buggen,
dann wende man sich an einen Erzmagier seiner Wahl. Oder maile mir ;-)
Viel Spass ueber Weihnachten und ein gutes Rueberkommen ins Jahr 1900.

Sniper

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



eire (Muadib, 27. Dez 1999, 12:32:16):
hi,

bis zum etwa 6.1 werde ich nicht da sein, weil ich in Irland weile

gruss

muadib

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



Re: rente (Grimmborn,  6. Jan 2000, 14:24:10):
~#! rn=Grimmborn rt=947164827 rg=magier.urlaub
~#! tid=947164827
Leider konnte ich mangels Schreibrechten den Artikel in bekanntmachungen nicht
loeschen, aber natuerlich gehoert er hierhin. Bis ihn jemand aus
bekanntmachungen loescht, gibts ihn halt zweimal.

Grimmborn der Atheist. Wieder eine Rubrik ohne Rechte entdeckt...

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



Re: Re: rente (Padreic,  6. Jan 2000, 14:26:38):
~#! rn=Grimmborn rt=947165050 rg=magier.urlaub
~#! tid=947164827
Ich bin net in urlaub, schoen waers...

Padreic

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



Re^3: rente (Catweazle,  6. Jan 2000, 14:57:39):
~#! rn=Padreic rt=947165198 rg=magier.urlaub
~#! tid=947164827
Aber wo ist der Artikel hin? :-)

YTC

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



Re^4: rente (Rochus,  6. Jan 2000, 14:59:13):
~#! rn=Catweazle rt=947167059 rg=magier.urlaub
~#! tid=947164827
Von Padreic geloescht, weil er wollte dass alle ihn lesen :-)

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



Re: Re: rente (Boing,  6. Jan 2000, 19:31:15):
~#! rn=Grimmborn rt=947165050 rg=magier.urlaub
~#! tid=947164827
Der Artikel stand in bekanntmachungen schon ganz richtig, wenn ein
Erzmagier zuruecktritt oder ein neuer eingesetzt wird gibt es naemlich
immer einen Artikel in dieser Rubrik. Und dass Du (Grimmborn) in 
bekanntmachungen keine Loeschrechte hast ist schon so gewollt, 
schliesslich ist das sowieso eine Rubrik wo nur Erzmagier schreiben
duerfen.
  Boing

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



Re^3: rente (Grimmborn,  6. Jan 2000, 20:36:43):
~#! rn=Boing rt=947183475 rg=magier.urlaub
~#! tid=947164827
Tja, ich habe noch _nie_ einen Artikel absichtlich geloescht, der nicht von
mir war (und die zwei, drei mal, wo mir ein loesche artikel nr danebengegangen
ist, wenn ich meinen eigenen Artikel loeschen wollte, habe ich mich auch immer
zerknirscht entschuldigt). Loeschrechte habe ich ausschliesslich, damit beim
Verlegen Artikel nicht doppelt stehenbleiben, uebrigens durchaus auch in
Rubriken, wo man typischerweise keine solchen Rechte haben sollte
(polizei.beschwerden). Probleme mit meiner Verlegerei haben ausschliesslich
die Leute, die nicht fehlgeleitete Artikel mehrfach lesen wollen (ich nix
schuld, ist sich System), oder Leute, die sich faelschlicherweise fuer
unfehlbar halten und jede Korrektur als Sakrileg begreifen. War ja nicht der
erste Aufstand von Padreic deswegen.

In der Form wie Du den Artikel in bekanntmachungen geschrieben hast ist er ja
auch ok, aber so, wie er es geschrieben hatte (was er sicherheitshalber dann
selber geloescht hat damit keiner merkt wie peinlich das war) war das ein
reines Aufzaehlen seines Privatlebens. Ich habe nur den Dank an seinen Opi am
Ende vermisst, aber dafuer ists ja auch nicht in schmarrn gelandet...

Ach ja, und zu guter Letzt: Boing, einen Zensor zu zensieren, das ist ja nun
wirklich der Gipfel, das ist ja Quadratzensur...

Grimmborn der Atheist (sucht euch doch selber ne passende Rubrik...)

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



...waere schoen (Highlander, 14. Jan 2000, 23:31:38):
Leider aber habe ich keinen Urlaub, sondern darf mih fast
die ganzen naechsten vier Woche, Ausnahme Wochenenden, in Sindelfingen
zwecks Schulungen rumtreiben. Streiche Woche, setze Wochen in der Zeile
zwei vor dieser.
  HrT

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



Urlaub... :) (Zook,  4. Feb 2000, 10:29:32):
Ich bin vom 2000-03-04 bis zum 2000-03-18 in USA im Urlaub. 

Zook.

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



Re: Urlaub... :) (Wim,  4. Feb 2000, 22:20:19):
~#! rn=Zook rt=949656572 rg=magier.urlaub
~#! tid=949656572
Ja und? Ich bin wahrscheinlich den ganzen Maerz drueben, aber ist das ein
Grund Mudabstinent zu sein? Wofuer gibts kostenlose Ortsgespraeche zum ISP :)

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



Sublime in Altenhausen (Sublime, 11. Feb 2000, 20:29:21):
Huhu Ihr's ;)

Sublime verbringt jetzt bis Mittwoch abend in Altenhausen. Das liegt so ca.
50 Kilometer nordwestlich von Magdeburg und beherbergt mich und meinen Psycho-
logiekurs in einem dort stehenden alten Schloss. Vielleicht gibt's mir ja
ein paar Ideen, wie man ein bisschen altes Festungs- bzw. Burgflair rueber-
bringt.

Bis Mittwoch abend dann...
Sublime

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



Weg ... (Ark, 25. Feb 2000, 23:56:06):
hier ab naechster Woche Freitag. Kann sein, dass ich selten naechste Woche da
bin, deshalb schonmal die Ankuendigung. Bin am 13. wieder aus den USA zurueck.


              *** ARK * the * Magnificent ***


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



Re: Weg ... (Ark, 29. Feb 2000, 22:10:24):
~#! rn=Ark rt=951519366 rg=magier.urlaub
~#! tid=951519366
Tja, wie das Leben so spielt, habe ich mich entschlossen, doch nicht in die
USA zu fahren, da keine Zeit. Soll heissen, dass ich doch ab und zu naechste
Woche reinschauen werde. Schade :-(


              *** ARK * the * Magnificent ***


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



Re: Re: Weg ... (Sublime,  1. Mar 2000, 20:39:11):
~#! rn=Ark rt=951858624 rg=magier.urlaub
~#! tid=951519366
Mein Beileid ! ;(

Sublime

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



bin ca. ne Woche abwesend (Tsunami, 10. Mar 2000, 11:59:23):
Aus Fasnachtsgruenden (ja, hier in Basel heisst das Fasnacht und nicht
Fasching) bin ich mindestens bis naechsten Freitag nicht im Mud.

Fuer alle Interessierten, die wissen wollen, wie man 'richtig' Fasnacht
macht:  www.fasnacht.ch

Macht in der Zwischenzeit nicht alles kaputt! *taetschel*

Schoene Zeit,

Tsunami.

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



offline (Mupfel, 13. Mar 2000, 03:05:20):
Hallo

Ich bin bis etwa mitte April offline, und weder im MUD noch via ICQ zu
erreichen. Ich bemueh mich aber, einigermassen regelmaessig eMail zu lesen,
wenn also was ist:
jhoehne@gmx.net

-mupfel-

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



Re: NetdeadEnvironmentReconnected() (Bierchen, 19. Mar 2000, 21:41:11):
~#! rn=Mupfel rt=953498381 rg=magier.urlaub
~#! tid=953498381
weichei :)

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



Re: Re: NetdeadEnvironmentReconnected() (Mupfel, 19. Mar 2000, 21:41:55):
~#! rn=Bierchen rt=953498471 rg=magier.urlaub
~#! tid=953498381
und du??? ;)
-m-

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



Re^3: NetdeadEnvironmentReconnected() (Bierchen, 19. Mar 2000, 21:43:31):
~#! rn=Mupfel rt=953498515 rg=magier.urlaub
~#! tid=953498381
ich? ich bin gar nicht da, das ist ein script. jawoll. 

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



Pause... (Mupfel,  6. Apr 2000, 02:24:39):
Ich mach ma Pause. Wenn ich Urlaub bekomm, bin ich wieder da ;)

-mupfel-

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



urlaub (Muadib, 21. Mai 2000, 14:25:07):
ist es leider nicht, aber dennoch bin ich bis zum 27.05 nicht da.

gruss

muadib

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



Umzug (Rochus, 26. Mai 2000, 18:36:17):
Ich werde in den naechsten 2 Wochen wohl selten ins Mud kommen,
und WENN, dann wenig am Mud machen koennen, weil ich
nach Berlin umziehe und etwas beschaeftigt bin... :-)

  Rochus

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



YES ! (Morgoth, 31. Mai 2000, 15:17:21):
Von jetzt bis zum 13.6.

Tuess !

M*

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



Und wech... (Morgoth, 18. Jul 2000, 13:40:20):
und zwar von gleich bis zum 14.8. 
Pflegt meine Features schoen und sterbt fleissig. 

M*

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



wech (Rikus,  1. Aug 2000, 10:37:08):
Gruss,

falls ihr von mir noch was wegen ZTs, FPs, ... wollt, ich bin am Freitag
fuer 3 Wochen im Land des Guinness und Whiskys :)

Rikus

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



Urlaub (Grimmborn, 10. Aug 2000, 15:03:05):
Nicht dass das jemanden gross interessieren wuerde, aber ich bin bis etwa
26.8. in Urlaub. Und praktisch absolut unerreichbar.

Grimmborn der Atheist

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



Urlaub vom Urlaub (Tsunami, 11. Aug 2000, 02:09:01):
Huhu, 

Bin Sonntag bis Freitag im Urlaub und erhole mich von der
anstrengenden kalifornischen Sonne und dem schrecklich blauen Meer und 
den furchtbar gruenen Palmen und den blendend weissen Sandstraenden
und den furchtbar knappen Badeanzuegen der lokalen Schoenheiten (!!) 
und fahre ins ruhige und gemuetliche Las Vegas und nachher in ein paar
angrenzende Nationalparks.

So long und gut Feueroel sammeln,

Tsunami. Chefferienmacher.




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



Ne Woch weg (Paracelsus, 24. Aug 2000, 10:16:11):
Hi.

Ich mache zwar keinen Urlaub, bin aber fuer eine Woche auf einer
Konferenz in Wien.

Para*

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



Rest vom September im Urlaub (Ketos,  8. Sep 2000, 10:20:15):
Wir gehen in die Rockies.

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



urlaub (Fizban, 24. Sep 2000, 17:28:54):
Hi 
Ich werde von Montag an in Urlaub fahren und wahrscheinlich erst am 14.10.
wieder kommen lasst meine Npcs nicht buggen und bleibt anstaendig.
gruss Fizban

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



kein urlaub (Wurzel, 24. Sep 2000, 18:32:39):
urlaub ist es nicht... umzugsbedingt werde ich aber wohl doch einige tage
nicht da sein koennen. und telekom ist etwas schnarchnasig mit dem neuen
anschluss :( ich hoffe mal, adsl ist die wartezeit wert.
macht nix kaputt, mal sehen wie lange die uptime noch haelt :)

wurzel

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



Ebenfalls Wech (Gor, 24. Sep 2000, 20:33:20):
Bis naechsten Montag wech.... Amaryllis keummert sich um die Festung und CO ;)


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



Bin ... (Ark,  2. Okt 2000, 21:44:17):
... zwar nicht ganz im Urlaub, aber dienstlich und etwas freizeitlich vom
04.10.-13.10. in den USA. Alles, was bis dahin stirbt, kann nicht auf meinem
Mist gewachsen sein. Wenn doch, dann sollten sich alle an einen Magier Ihres
Vertrauens wenden. Mal schauen, ob das MG dann immer noch Up ist ;^)


              *** ARK * the * Magnificent ***


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



abtauchen (Muadib,  5. Okt 2000, 17:30:26):
ist bei mir angesagt vom 7.-23. oktober. 
hoffentlich seh ich noch die dreistellige uptime :)

muadib

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



So halb (Paracelsus,  9. Okt 2000, 16:37:14):
Aufgrund RL-Urlaubs werde ich den Rest der Woche wohl etwas seltener
da sein. Werde aber schon mal ein wenig den naechsten Baum ansaegen.

Paracelsus.

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



Unbestimmt ! (Morgoth, 13. Okt 2000, 15:34:13):
Soo,

ab Montag hab ich nen neuen Job, d.h. ich werd wahrscheinlich das Mudden
(erstmal) aufgeben. *seufz*
Ich bin dann wahrscheinlich nur noch abends mal von zu Hause drin, mal
schauen. Mails werde ich weiterhin ignorieren... ;-)

Read ya 

M*

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



Arbeit (Silvana,  6. Nov 2000, 18:17:14):
Nein, kein Urlaub. Im Gegenteil.

Hat ja so kommen muessen, irgendwann: Man hat mich ueberredet, eine feste
Anstellung anzunehmen. Zwra hab ich sehr felxible Arbeitszeiten, aber noch
keinen Internetanschluss im Buero. Das kommt erst, wenn die Telekom DSL
anschliessen kann, also Ende Januar. Bis dahin wird man mich wohl tagsueber
nur noch sehr selten hier zu Gesicht bekommen.

Das soll aber keine Entwarnung darstellen: Heute ist nicht alle Tage. Ich
komme wieder - keine Frage! ;-)

  Silvana

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



Re: Arbeit (Wurzel,  7. Nov 2000, 21:10:19):
~#! rn=Silvana rt=973531034 rg=magier.urlaub
~#! tid=973531034
telekom und dsl ist ein ziemlich langatmiges thema. nebenbei der hauptgrund,
warum ich derzeit nur ausgesprochen sporadisch hier sein kann... aber diverse
hotline-mitarbeiter haben schon angefangen genervt zu reagieren, kann sich
also nur noch um wenige monate handeln :(

wurzel

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



Dienstreisen (Xantus, 15. Nov 2000, 20:39:02):
Halloele.

Mein geschaetzter Arbeitgeber hat beschlossen, mich ein bischen in der
Weltgeschichte rumzuschicken. Daher lege ich das Mud erstmal ne
Weile auf tauendes Eis, bis ich wieder mehr Zeit hab.

Sanfte Gruesse
X

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



Uuuuurlaub!!! :) (Tsunami,  9. Dez 2000, 00:18:43):
Huhu,

ich nehme mir mal Urlaub von meinen Sommerferien in Kalifornien und reise
zurueck ins regnerische Europa ... muss wohl bekloppt sein ... anyway,
ich werde einen PC mit Modemanschluss haben und deshalb sporadisch reinschaun
koennen, falls was dringendes anliegt sollte ich also erreichbar sein, 
ansonsten frohe Weihnachten und guter Rutsch ins neue Jahr und gut metzel!

Tsunami, in der Schweiz vom 15.12.2000 - 03.01.2001

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



Weg (Paracelsus, 18. Dez 2000, 17:50:38):
So, ich mache jetzt erst mal einige Tage Urlaub und werde in der Zeit so
gut wie gar nicht da sein, nd wenn dann nur kurz zu spaeter Stunde.

Frohes Fest und guten Rutsch,

    Paracelsus

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



Verlaengerung (Paracelsus,  4. Jan 2001, 10:11:24):
Also nachdem ich mich jetzt durch den Muell in der MPA gekaempft habe
habe ich mich entschieden, meinen Urlaub um eine Woche zu verlaengern,
zumindest was das Mud angeht. Vielleicht hat der Kindergarten sich bis
dahin wieder etwas beruhigt.

Para*

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



Urlaub (Zook,  6. Jan 2001, 17:05:44):
Ich werde die naechste Zeit ein wenig Urlaub vom MorgenGrauen machen
und nur sporadisch mal vorbeischauen, um meine Emails zu lesen.

Zook.

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



dummdidumm :) (Patryn,  2. Feb 2001, 02:42:21):
ein studium waere echt cool...wenn da nicht die halbjaehrlichen pruefungen
draengen wuerden *g* nun denn, bis anfang maerz bin ich also am lernen,
mail-forward ist eh immer aktiv.
laufende sachen die mit mir zu tun hatten/haben nehme ich dann wieder auf.

------
patryn freut sich auf 4 wochen nichtlineare funktionalanalysis ;)

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



Nicht direkt Urlaub... (Zook,  3. Feb 2001, 15:09:13):
Hi, ich werde vom 18.02. an fuer ca. 6 bis 8 Wochen aus 
Studiengruenden in der Schweiz weilen und im Mud nur meine
Emails und die MPA checken koennen. Wichtige Dinge werde
ich auch bearbeiten.

Btw, fuer Statis o.ae. koennte man mich in der Zeit mit
Sicherheit begeistern. :)

Gruss, Zook.

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



Pause (Amaryllis, 11. Feb 2001, 14:57:40):
Hiho,

hm, "Urlaub" passt nun wirklich nicht. Bin die kommende Woche bei der Firma,
und werde da wohl entweder gar nicht oder nur sporadisch reinschauen koennen.
Wenn was bugt (z.B. bei den Zwergen) ist Gor beispielsweise ansprechbar - wenn
er nicht grad wieder ueber seinem grossen Repfile bruetet *fiesgrins*.

Lasst das Mud stehn :)

Ama*

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



Nicht da (Grimmborn, 12. Feb 2001, 22:43:02):
Ich bin von morgen bis etwa 4.3. nicht hier. Muesst ihr die mpa halt selber
sauber halten.

Grimmborn der Atheist

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



Re: Nicht direkt Urlaub... (Zook, 17. Feb 2001, 16:34:27):
~#! rn=Zook rt=981209353 rg=magier.urlaub
~#! tid=981209353
Zook kehrt nun Marburg den Ruecken.

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



Nix Urlaub, Arbeit ... (Ark, 17. Feb 2001, 16:48:20):
... aber dafuer nur ein paar Tage. In Nizza. Echt kein Urlaub. Wirklich ! Kein
Spass. Schlechtes Wetter. Rueckkehr schon naechste Woche. Leider.


              *** ARK * the * Magnificent ***


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



Fasnacht! (Tsunami, 26. Feb 2001, 21:22:34):
Bin vom 28.Feb - 12.Maerz in Basel.

Fasnacht.

Bei Problemen wendet euch an Zook. Der hat Zeit und hilft gerne...
*hehe*


Tsunami.

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



Re: Fasnacht! (Wurzel, 27. Feb 2001, 16:07:18):
~#! rn=Tsunami rt=983218954 rg=magier.urlaub
~#! tid=983218954
ticken in der schweiz die uhren anders? 28.2. ist in deutschland jedenfalls
aschermittwoch :) trotzdem viel spass

wurzel

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



Re: Re: Fasnacht! (Amaryllis, 27. Feb 2001, 16:08:21):
~#! rn=Wurzel rt=983286438 rg=magier.urlaub
~#! tid=983218954
sie ticken vor allem langsamer, Wurzel.
Vieeeeel laaaaangsaaaaamer... :)

Ama*

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



Re: Re: Fasnacht! (Tsunami, 28. Feb 2001, 01:42:56):
~#! rn=Wurzel rt=983286438 rg=magier.urlaub
~#! tid=983218954
Zwoelf Basler Fasnaechtler wurden enthauptet

Boese und blutruenstig ging es zu und her, berichtet die aelteste Nachricht
ueber fasnaechtliches Treiben am Rheinknie: Zwoelf Basler Fasnaechtler wurden
1376 gekoepft. Es war am Tag vor Aschermittwoch, als auf dem Muensterplatz ein
Turnier stattfand, bei dem durch Provokationen der Ritter ein Tumult entstand.
Die Buerger und ihre Frauen fuehlten sich bedroht, man griff zu den Waffen und
vertrieb die Adeligen, von denen vier ums Leben kamen. Das Volk musste schwer
dafuer buessen. In der Folge wurden zwoelf Buerger enthauptet, und Kaiser 
Karl IV. verhaengte die Reichsacht ueber Basel, entzog die Stadt damit dem
Schutz des roemisch-deutschen Reiches. Dieser verhaengnisvolle Tag ging als
die "boese Fasnacht" in die Basler Geschichte ein. Was sich in den Zeiten
davor an Fasnaechtlichem tat, wird fuer immer verborgen bleiben, weil beim
grossen Erdbeben 1356 die Stadt und ihre Dokumente fast vollstaendig zerstoert
wurden.

... nun zur eigentlichen Antwort, WARUM NACH Aschermittwoch:

Mit der Reformation 1529 wurde die Fasnacht in Basel auf Montag bis Mittwoch
nach Aschermittwoch gelegt. Damit wollte man die Katholiken aergern, fuer die
die Fastenzeit ja am Aschermittwoch beginnt. So festeten die reformierten
Basler, waehrend die Katholiken bereits am Fasten waren. Im Laufe der Zeit
entstand die Fasnacht, wie wir sie heute in Basel kennen. 

Tsunami. Aufklaerend. :)


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



Re^3: Fasnacht! (Tsunami, 28. Feb 2001, 01:46:38):
~#! rn=Tsunami rt=983320976 rg=magier.urlaub
~#! tid=983218954
Wer noch mehr dazu lesen will: www.baz.ch/fasnacht/   (Basler Zeitung)

Die haben ein paar ganz amuesante Artikel.

Tsunami. Im Fasnachtsfieber.

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



Re^4: Fasnacht! (Wurzel, 28. Feb 2001, 22:12:06):
~#! rn=Tsunami rt=983321198 rg=magier.urlaub
~#! tid=983218954
wieder was gelernt. wofuer die mpa doch manchmal gut sein kann... :)

wurzel

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



Wech (Silvana, 16. Mar 2001, 16:22:05):
Bin die naechste Woche lang nicht da und schau auch nicht rein. ;-)

  Silvana

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



Re: Re: Nicht direkt Urlaub... (Zook, 29. Mar 2001, 22:51:48):
~#! rn=Zook rt=982424067 rg=magier.urlaub
~#! tid=981209353
Zook wird morgen wieder nach Marburg retourniert. :)

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



Re^3: Nicht direkt Urlaub... (Wurzel, 30. Mar 2001, 00:58:31):
~#! rn=Zook rt=985899108 rg=magier.urlaub
~#! tid=981209353
nehmen die dich denn zurueck? oder annahme verweigert?

wurzel

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



Re^4: Nicht direkt Urlaub... (Amaryllis, 30. Mar 2001, 01:00:31):
~#! rn=Wurzel rt=985906711 rg=magier.urlaub
~#! tid=981209353
zurueck gehts schnell.

hin gehts laaaaaaangsam...

Ama*, Schwizer kennend :)

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



Urlaub (Fizban, 30. Mar 2001, 07:43:53):
HI 
werde mich erst mal nach der Klausurzeit eine Woche ausruhen also so gut wie
nie da.
Fizban

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



Uhrlaub (Willow, 30. Mar 2001, 08:50:06):
so, auch ich habe es geschafft - nach zaehem ringen mit meinem chef - mir 3
wochen urlaub am stueck zu genehmigen. daraus folgt - ich werde die 3 wochen
nur selten hier sein, aber wen kuemmerts ;)
Weidchen Willow ist jetzt schon entspannt

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



kurz weg da krank (Tsunami, 30. Mar 2001, 20:36:39):
mehr als 2 1/2 Wochen krank und immer noch nicht besser. War gestern beim
Arzt. Diagnose Kieferhoehlenentzuendung und in der Lunge ist auch was.

Darf jetzt 2 Wochen lang heftige Antibiotika schlucken. Darmflora bereits
getoetet, Durchfall hat nun eingesetzt... toll!

Ich mach mal kurz Pause vom Mud und Computern allgemein. Bekomme
fuerchterliche Kopfschmerzen, wenn ich zu lange auf den Schirm starre.

Mails lese ich, wenn also was wirklich ganz dringendes ist:

stoffler@scripps.edu

Hoffe ich bin bald wieder auf dem Damm.

Gruss,

Tsunami.

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



Urlaub (was sonst?) (Grimmborn,  4. Apr 2001, 01:06:52):
Ich bin vom kommenden Freitag an bis Ostermontag weg und auch richtig
abgeschnitten vom Netz. Nennt man, glaub ich, "Urlaub" oder so. Mal gucken wie
das wird. Passt halt selber auf die mpa auf.

Grimmborn der Atheist

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



Schon wieder weg (Grimmborn, 19. Apr 2001, 11:17:42):
Ich bin vom 21.4. - 25.4. nicht da. Klar, interessiert nicht gross, aber diese
Rubrik schlaeft ja sonst ein. Haltet halt die mpa sauber.

Grimmborn der Atheist

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



Auf unbestimmte Zeit verreist (Silvana, 20. Apr 2001, 09:56:07):
Nicht, dass es jemand interessiert... Ich hab die Nase gestrichen voll und
mach daher auf unbestimmte Zeit Urlaub vom MG. Sollte mich wider Erwarten doch
jemand vermissen... Flames an Bierchen, Orktoeter oder einen beliebigen
anderen Idioten Eures Vertrauens.

So long and thanx for all the fish - Silvana

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



Re: Auf unbestimmte Zeit verreist (Wurzel, 20. Apr 2001, 10:02:45):
~#! rn=Silvana rt=987753367 rg=magier.urlaub
~#! tid=987753367
doch, es gibt schon leute die das interessiert.
und es gibt auch leute, die das bedauern... nicht nur pappnasen, die
gibt es immer und ueberall. wenn ich mich ueber sowas aufregen wuerde,
haette ich mich vor fuenf oder sechs jahren schon geloescht.

wurzel trauert um jeden, der uns verlaesst.

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



Fuerteventura (Boing, 20. Apr 2001, 16:40:49):
Ich habe 2 Wochen Urlaub und werde die erste davon in der Sonne schmoren
und mir wahrscheinlich einen gewaltigen Sonnenbrand holen. Ich komme aber
wieder ... ;)
  Boing

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



Ich auch! Ich auch! (Tilly, 21. Apr 2001, 19:57:43):
Ich schliesse mich dem momentanen Trend mal an und werde auch ein
bisschen 'Urlaub' machen. Wir sehen uns spaetestens auf der Party
in Muenster oder danach wieder im MG ...

 - Tilly - 

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



Kein Urlaub, aber ... (Amaryllis, 27. Apr 2001, 12:10:28):
... ich habe die naechsten WocheN Vorstellungsgespraeche in ganz Deutschland
und werde darum nur sporadisch mal ins Mud schauen koennen. Muss der Sand eben
ohne meine Aufsicht gluehen :-)

Ama*

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



Re: Kein Urlaub, aber ... (Gloinson, 27. Apr 2001, 13:10:02):
~#! rn=Amaryllis rt=988366228 rg=magier.urlaub
~#! tid=988366228
Das wird ihn sicher richtig heiss machen. Den Sand.

Gloin(son)

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



Ganz normaler Urlaub.... (Zook,  4. Mai 2001, 10:36:25):
Hoi zsaemme!

Ja, so langsam steht der Jahresurlaub an. Vom 18. Mai bis 8. Juni werde
ich mich im Ausland aufhalten und mich ein wenig erholen.

Zook.

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



Abtauchen (Muadib,  9. Mai 2001, 15:37:56):
Von Samstag ab bin ich 2 Wochen in Urlaub.
*freu*

Muadib

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



Wech (Silvana, 16. Jun 2001, 13:32:19):
Bin ab Montag weg. Komme wieder. :)

  Silvana

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



Spielpause (Chuckylein, 20. Jun 2001, 17:22:04):
Huhu werde mir leider eine Spielpause auflegen muessen, wegen Problemen in der
Arbeit. Ich leg sie mal auf einen Monat fest, kann aber nich sicher sein das
ich sie nich verlaengern werde. Muss etz erstmal an mich denken.

Chuckylein


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



Jo! (Ark, 20. Jun 2001, 21:11:21):
Die Rubrik heisst zwar nicht magier.arbeit, doch ich schreib mal so, als
haette hier mein Arbeitgeber inseriert.

Herr Ark wird dem MorgenGrauen fuer die Zeit vom 24.06.01 bis 01.07.01 nicht
zur Verfuegung stehen, da er beruflich in Uebersee weilt. Dass er sich fuer
weitere drei Tage entschlossen hat, freizeitaehnliche Unternehmungen
wahrzunehmen, aendert nichts an obiger MorgenGrauen-Sperre. Fuer sie bedeutet
das, mit seinen zahlreichen Vertretungen (M), (R), (W), (E) und (G) Dinge zu
besprechen, die so dringend sind, dass sie keinen weiteren Aufschub dulden
koennen. Wir danken vielmals fuer ihr Verstaendnis.

MfG


              *** ARK * the * Magnificent ***


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



Hoffentlich schafft ihr es ... (Vanion, 22. Jun 2001, 18:11:12):
... mal 3 Wochen ohne meine bloeden Sprueche auszukommen. Ich nehm mir
naemlich ab Montag bis zum 14.07. eine Auszeit. 

So mich die Sucht nich in ein Internetcafe treibt, werde ihr also die nachsten
Wochen Ruhe vor mir haben.

V*, sich auf einen schoenen Urlaub freuend.

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



Erstmal off (Amaryllis, 23. Jun 2001, 23:58:15):
Hi,

da ich nun endgueltig nach Koeln umziehe (schoene Wohnung habe ich *juhuu*),
wird es wohl einige Wochen dauern, bis ich hier wieder auftauchen kann...
Umzug und Internetzugang sind da so Hindernisse :/

Aber freut Euch oder flucht, denn ich werde irgendwann wieder da sein :)

Dat Feeschae :)

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



Kein Urlaub, aber auch kein richtiges Netz... (Zook,  3. Jul 2001, 18:44:43):
Hoi zsaemme!

Jaja... eigentlich sollte alles besser werden und auch ein Netzanschluss
an meinem Arbeitsplatz vorhanden sein, aber erstens kommt alles anders
und zweitens als man denkt. Im Klartext: Leider habe ich am Arbeitsplatz
keinen Internetanschluss so wie ich ihn haben moechte und bis ich den
bekomme, da kann noch dauern. Ich bin daher die naechsten Wochen recht
sporadisch hier. Eventuell mal abends.

Gruss, Zook (not amused).

P.S.: Wer Typos findet, darf sie behalten. :-))

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



Wech (Grimmborn, 13. Jul 2001, 10:18:17):
Ich bin die gesamte naechste Woche weg. Ohne Netzzugang. Habt ihr ein
Glueck...

Grimmborn der Atheist

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



Re: Wech (Catweazle, 13. Jul 2001, 10:31:16):
~#! rn=Grimmborn rt=995012297 rg=magier.urlaub
~#! tid=995012297
Sturmfrei!! :-))

YTC

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



Poddugall (Ark, 13. Aug 2001, 19:44:22):
18.08.01 - 01.09.01 (oder war es doch 02.09.01?)
Tatort: die Algarve
Tatmotiv: schamloses Ausspannen
Taeter: ein vermutlich typischer Erholungstaeter, schon frueher durch freches
Ausnutzen gesetzlich festgesetzter betrieblicher Zwangslagen aufgefallen.
Waffen: vorsicht, der Taeter ist mit bunten Strandtuechern und scharfen
Sonnencremedosen bewaffnet, die er ohne Skrupel einsetzt.
Belohnung: fuer sachdienliche Hinweise, die zur Verlaengerung der Haftzeit am
Tatort fuehren, ist eine Belohnung in Hoehe von unbekannter "Arkfreien Zeit im
MG" ausgesetzt. Bitte wenden Sie sich an einen EM Ihres Vertrauens.


              *** ARK * the * Magnificent ***


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



Re: Poddugall (Tsunami, 13. Aug 2001, 20:13:27):
~#! rn=Ark rt=997724662 rg=magier.urlaub
~#! tid=997724662
Ich frag mich echt, wen Ark da wem ausspannen will.
Auf jeden Fall freuen wir uns auf viele und lange Arkfreie Zeit im MG :))

Tsunami.

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



Urlaub (Grimmborn,  2. Sep 2001, 07:52:09):
Ich bin denn mal fuer zwei Wochen weg. Nicht dass das eine Rolle spielen
wuerde, aber wenn ich hier schon schreiben kann muss ich das doch auch
ausnutzen...

GdA

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



Urlaub (Rikus, 14. Sep 2001, 15:04:12):
Kam leider erst zu 2 Tagen Urlaub dieses Jahr, deshalb jetzt 2 Wochen
Zelten an der Adria...

Rikus

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



Re: Urlaub (Gloinson, 14. Sep 2001, 17:46:48):
~#! rn=Rikus rt=1000472652 rg=magier.urlaub
~#! tid=1000472652
Kam leider erst zu 2 Monaten Semesterferien dieses Jahr, deshalb jetzt 2
Wochen Urlaub auf Gran Canaria...

Gloin(son) nimmt Martini mit (zollfrei)

PS: Gesellenstueck ist zum Braunwerden im Leichtgepaeck.

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



MUC (Amaryllis, 16. Sep 2001, 13:06:40):
Bin bis Ende naechster Woche eine Woche in Muenchen.

Ama*

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



mal was anderes (Wurzel, 17. Sep 2001, 00:03:57):
muss mal was anderes machen. bin ein paar tage nicht da, urlaub wuerde ich
das aber nicht nennen. auch wenn es keine bezahlte arbeit ist.

wurzel

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



CH! (Zook,  8. Okt 2001, 22:26:01):
Bevor ich es vergesse, bin von Mittwoch bis Sonntag in der Schweiz
im Kurzurlaub. :-)

Gruss, Zook.

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



noch eine Woche weg (Tsunami, 12. Okt 2001, 21:04:42):
Hallo,

mich hats boese erwischt: bei uns geht die Seuche um (unsere Klimaanlage
ist gekoppelt mit der vom Spital nebenan), alle husten und mich hats
besonders bloed erwischt: Lungenentzuendung. Bin seit letzem Montag im Bett,
Antibiotika fuer eine Kompanie Soldaten und Hustensirup bis fuer's naechste
Jahrtausend...

Werde naechste Woche kaum ins Mud reinschaun, ist mir zu schwindlig.

Gruss und *hust*

Tsunami.

P.S. NEIN, Anthrax geht bei uns nicht um.

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



Re: noch eine Woche weg (Tsunami, 22. Okt 2001, 20:10:28):
~#! rn=Tsunami rt=1002913482 rg=magier.urlaub
~#! tid=1002913482
Wieder da!

Tsunami, mehr oder weniger fit.

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



Langes Wochenende / Kurzurlaub (Grimmborn, 30. Okt 2001, 21:32:21):
Ich bin ab morgen ganz frueh bis irgendwann Sonntag Abend nicht da.
Heimaturlaub, Winzerbesuch und so.

Grimmborn der Atheist

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



wech (Rikus, 22. Nov 2001, 14:54:42):
Hi,
vom 24.11. bis 17.12. bin ich in Mexiko zu finden. Es gibt bei
Erfolg natuerlich einen FP!

Rikus

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



Re: wech (Ark, 22. Nov 2001, 15:05:46):
~#! rn=Rikus rt=1006437282 rg=magier.urlaub
~#! tid=1006437282
Dann wollen wir keinen Gedanken an Misserfolg verschwenden.


              *** ARK * the * Magnificent ***


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



Abgetaucht (Muadib,  9. Dez 2001, 17:34:21):
Hi,

die komplette naechste Woche werde ich wegen Fischeguckens nicht hier sein.

Bis denne

Muadib

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



Weihnachtsurlaub (Tsunami, 12. Dez 2001, 01:52:52):
Huhu ihrs,

ich bin vom 13.12.01 bis 07.01.02 in der Schweiz.

Werde aber oefter im Mud vorbei schaun.

ich wuensch euch allen frohe Festtage und eine besinnliche Weihnacht.

Tsunami.

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



Bisgen Urlaub und mehr (Ark, 21. Dez 2001, 17:00:25):
Hoi, frohe Weihnachten und guten Rutsch, wir lesen uns erst wieder im neuen
Jahr. Darueber hinaus laeuft mein Account an der Uni aus und damit sitze ich
erstmal auf dem Trockenen. Ab und an schau ich ueber das freundliche Java
Applet rein, allerdings laesst es sich so nun wirklich nicht richtig arbeiten
;^)
Fazit: 1) PC besorgen und 2) Vernetzen lassen und 3) Weitermachen.
Ich weiss nicht so recht, ob ich bis dahin (wann auch immer) als RM so aktiv
sein kann, deshalb stelle ich es unseren werten EMs anheim, an meinem Level
zum Wohle des Muds herumzupfuschen :-)
Bis hoffentlich bald.


              *** ARK * the * Magnificent ***


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



Re: Bisgen Urlaub und mehr (Wurzel, 21. Dez 2001, 21:54:14):
~#! rn=Ark rt=1008950425 rg=magier.urlaub
~#! tid=1008950425
zu 1): in laden gehen, kaufen, nach hause tragen, aufstellen. dauer: maximal
(fuer ungeuebte leute, also eher nicht fuer dich :) 5 stunden.
zu 2): internet by call, dauer: maximal 10 minuten.
zu 3): weitermachen!

wurzel

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



Ualaup :) (Amaryllis, 23. Dez 2001, 12:51:51):
Ich bin bis Anfang des naechsten Jahres in der Heimat...

Ama*, mal aus Koelle fluechten muessend.

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



Kurzwech (Ark, 18. Jan 2002, 18:12:02):
Bin naechste Woche fruehestens Donnerstag wieder da.


              *** ARK * the * Magnificent ***


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



Mal ne gute Bib besuchen... (Zook, 23. Jan 2002, 22:27:26):
Bin vom 1. bis 10. Februar in der Schweiz, schau aber in der Zeit immer
mal kurz hier herein. :-)

Zook.

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



*seufz* (Wurzel,  2. Feb 2002, 12:21:30):
berufsbedingt bin ich derzeit extrem selten da. ich hoffe, dass es ab maerz
wieder besser wird, aber momentan koennte ich eher mal auf auswaertige
stammtische gehen als in darmstadt oder karlsruhe...

wurzel

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



-> magier.arbeitsstress (Ragnaroek,  7. Feb 2002, 23:28:44):

berufsbedingt schaff's leider auch ich z.Zt. nur selten hierher. 
Werde voraussichtlich bis Ende Maerz nur gelegentlich hier sein, 
was aber nicht heisst, dass ich die einsamen Abende in fernen 
Hotelzimmern nicht fleissig (wenn auch offline) an meinen Sachen 
bastel...

::ragnaroek

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



Ak, schon wieder Ferien (Tsunami,  8. Feb 2002, 02:53:49):
Bin vom 12.Feb - 25.Feb in der Schweiz.

Ich mag ja die Mudparties jeweils verpassen aber die Basler Fasnacht lass ich
mir unter keinen Umstaenden entgehen. Zumal meine Clique dieses Jahr 
hundertjaehrig wird.

Tsunami, freut sich schon sehr, hat auch das Jahr durch fleissig Piccolo
geuebt.

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



Re: Ak, schon wieder Ferien (Gor,  8. Feb 2002, 07:53:44):
~#! rn=Tsunami rt=1013133229 rg=magier.urlaub
~#! tid=1013133229
Mit Prosecco?

Gor grinst sueffisant. };-)

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



Noch lange hin, ich hab aber grad Lust, es schon mal anzukunedigen... (Zook, 24. Feb 2002, 14:42:23):
Ich bin wohl vom 5. bis 19. Juni nicht im Mud, sondern weile in Korea. Ja,
richtig, da ist Fussball-WM und mit der hab ich auch ein wenig was zu tun ;)
Mehr verrate ich aber nicht ;)))

Gruss, Zook.

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



Re: Noch lange hin, ich hab aber grad Lust, es schon mal anzukunedigen... (Ark, 25. Feb 2002, 09:32:25):
~#! rn=Zook rt=1014558143 rg=magier.urlaub
~#! tid=1014558143
Crashed die dann?


              *** ARK * the * Magnificent ***


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



Re: Noch lange hin, ich hab aber grad Lust, es schon mal anzukunedigen... (Patryn, 26. Feb 2002, 08:35:44):
~#! rn=Zook rt=1014558143 rg=magier.urlaub
~#! tid=1014558143
na das sind ja ferne ankuendigungen ;)
also ich habe ab voraussichtlich mitte maerz keinen netzanschluss mehr
und auch keine ahnung, wann das wieder werden koennte.
nur so als vorabinfo wenn noch jemand was wirklich wichtiges hat *g*

-- 
patryn

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



Ne Woche weg (Amaryllis,  8. Mar 2002, 11:40:23):
Ama.

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



Re: *seufz* (Wurzel, 13. Mar 2002, 21:08:44):
~#! rn=Wurzel rt=1012648890 rg=magier.urlaub
~#! tid=1012648890
es ist jetzt maerz, und ich bin ueberhaupt wieder da. ob oefters, wird sich
in den naechsten tagen zeigen...
manchmal koennen jobs echt nervig werden. hobbyverzicht steht eigentlich nicht
in meinem vertrag.

wurzel

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



Uuuuuund wech ... (Vanion, 24. Apr 2002, 15:11:11):
... bin ich vom 3.6. bis zum 21.06.2002. 

Is zwar noch eine Weile hin, aber ich hab grad die Bestaetigung bekommen und
wollte dass ihr vor Neid erblasst, weil ich Urlaub hab, und ihr nicht :)

Ja mata,
V*

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



Weg (Ark, 24. Apr 2002, 20:44:58):
Fuer unbestimmte Zeit. Keine Panik, komme wieder, evtl. auch mal, um mich
abzulenken, bevor mir die Decke auf den Kopf faellt.

Manchmal lernt man erst im Tod wieder neu zu leben.


              *** ARK * the * Magnificent ***


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



Nur teilweise Urlaub... :-) (Zook, 12. Mai 2002, 15:33:29):
Hi, ich bin in der naechsten Woche dienstlich weg und dann ein wenig
im Urlaub; ich schaue immer mal rein. 

Rueckkehr ist irgendwann am 20. Mai abends.

Zook.

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



Zwei Wochen weg (Grimmborn, 22. Mai 2002, 07:47:21):
Auch wenn das nicht so ganz die passende Rubrik ist ("Urlaub" triffts nicht
wirklich): Ich bin vom 23.5.-4.6. weg, und wenn ueberhaupt nur sporadisch mal
hier. Sucht euch also in der Zeit jemand anderen zum Artikelverlegen, oder,
besser noch, benutzt gleich die richtigen Rubriken.

Grimmborn der Atheist

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



Abwesenheit I (Zook, 23. Mai 2002, 14:44:45):
Ich bin vom 27. Mai bis 2. Juni in Berlin und werde wohl eher nicht 
ins Mud hineinsehen.

Zook.

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



Abwesenheit II (Zook, 23. Mai 2002, 14:45:03):
Ja, und dann gehts ja noch Korea und das ist vom 7. bis 17. Juni.

Zook.

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



Re: Abwesenheit II (Mandragon, 23. Mai 2002, 16:44:38):
~#! rn=Zook rt=1022157903 rg=magier.urlaub
~#! tid=1022157903
Ihr tanzt um das Spielfeld, wenn die Nationalelf spielt?

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



Auch weg (Morgoth, 21. Jun 2002, 10:14:28):
Hu

ich hab vom 1.7. bis zum 19.7. Urlaub, bin also dann Tagsueber hier nichtmehr
idle, also nicht erschrecken.
Vielleicht setz ich mich auch mal an Orkhausen^2 :)

M*

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



Urlaub und co... (Humni,  9. Jul 2002, 11:33:40):
Huhu,

meinereiner ist ab Morgen bis zum Wochenende nicht da. Ausserdem bin ich vom
9.8. bis 25.8. ebenfalls nicht da (ja, einer der Gruende ist die MG-Party).

Also nutzt die Gelegenheit aber sprengt mein Repfile nicht, und lasst das
Polar stehen ;-)

Humni

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



urlaub? noe ;) (Patryn, 29. Jul 2002, 11:09:41):
ich wollte nur anmerken, dass ich entgegen anderslautenden geruechten nicht
gaenzlich inaktiv geworden bin. ich schlage mich nur weiter mit der telekom
herum,
um wieder einen heim-netzanschluss zu erhalten.
gut moeglich, dass es diese oder naechste woche endlich klappt, dann
werde ich auch diverse mails abarbeiten.

-- 
patryn

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



Eine Woche netzlos (Grimmborn,  2. Aug 2002, 16:50:38):
Ich bin vom kommenden Wochenende bis zum darauf folgenden so richtig in
Urlaub. Ohne Netz und doppelten BOden...

GdA

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



Urlaub? neee... (Amaryllis, 13. Aug 2002, 19:37:33):
Ich bin vom 19.08.-23.08. beruflich unterwegs und wohl nicht online
anzutreffen.

Die Vertretung in der Wueste uebernimmt Ark (gelle? :)), und Rikus muss sich
halt solange alleine mit seinen NPCs rumschlagen :)

Ama*

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



10.9. bis 7.10. (Rikus,  2. Sep 2002, 14:41:32):
... bin ich endlich mal wieder urlauben. Wenn ihr in dem Zeitraum was
an ZTs, Fps, Stupsen... wollt, dann meldet Euch noch bis Ende der Woche

Rikus, schon auf Namibia freuend

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



Urlaub... (Zook, 10. Sep 2002, 15:00:32):
Ich mache vom 20. bis 29. September Urlaub und bin in der Zeit wohl eher
nicht im MorgenGrauen anzutreffen.

Zook.

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



Kein Urlaub, aber nich zuhause. (Vanion, 19. Sep 2002, 21:49:55):
Hi,

ich bin vom 7. bis zum 18.10. in Dresden. Ich weiss noch nicht, ob ich da
einen Netzzugang hab. Im Zweifelsfall ist Mud-Urlaub ja auch mal nett.

V*, hofft gleich mal, dass sich in DD Gelegenheit fuer einen Stati ergibt.

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



Und wech... (Ark, 26. Sep 2002, 16:36:05):
Es hat mich endlich auch erwischt. Ab naechste Woche. Und zurueck ins Mud
komme ich erst so am 28.Okt. wieder. Bis dahin ess ich lecker koreanisch.


              *** ARK * the * Magnificent ***


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



Re: Und wech... (Vanion, 26. Sep 2002, 16:36:47):
~#! rn=Ark rt=1033050965 rg=magier.urlaub
~#! tid=1033050965
Ich spendiere mal glatt eine Runde echten und ehrlich gemeinten Neid!

V*, sind 1/10 der Gebote grad mal voellig egal.

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



Re: Re: Und wech... (Ark, 26. Sep 2002, 16:38:52):
~#! rn=Vanion rt=1033051007 rg=magier.urlaub
~#! tid=1033050965
Der koennte Dir vergehen, wenn Du hoerst, was die Leute, die mich grad
anpiepsen, so spontan denken: arme Hunde, Katzen, etc. bla bla. Mahlzeit ;^)


              *** ARK * the * Magnificent ***


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



Re^3: Und wech... (Gloinson, 26. Sep 2002, 16:41:59):
~#! rn=Ark rt=1033051132 rg=magier.urlaub
~#! tid=1033050965
Die sind bloss neidisch. Hau rein.

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



Abgetaucht (Muadib, 27. Sep 2002, 16:22:09):
werde ich sein ab Montag . In Mykonos. 
Mitte Oktober werd ich wieder da sein.

Muadib

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



Kurzurlaub... (Humni, 30. Sep 2002, 10:23:45):
... sowie berufliche Termine: Ich bin ab 1.10. kurz weg und ab Montag, 7.10.
wieder da, hoff ich mal...

Humni

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



Hatte Urlaub. (Catweazle,  1. Okt 2002, 15:20:05):
So, ich hatte gerade 3 Wochen Urlaub. Nicht das es was genutzt haette.

YTC

PS: Haeh? Vorher? Was, vorher? *prrrt* ...

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



Weitweg (Mandragon,  3. Okt 2002, 17:29:48):

Da ich vom 25.10 bis zum 21.11 in Mexiko weile, werde ich waehrend dieser Zeit
keinerlei Feature-Wuensche und Debugmeldungen bearbeiten.

Ma*

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



auch mal weg (Troy, 10. Okt 2002, 16:09:26):
Ich bewege mich gerade von einem Job zum anderen und bin deswegen bis
einschliesslich 31. Oktober nur sporadisch anzutreffen.

Troy

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



Urlaub (Amaryllis, 11. Okt 2002, 17:21:10):
Hi,

hab offiziell 3 Wochen Urlaub. Wird sich weisen, ob ich verreise oder
lerne/progge :)

Ama*

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



abtauchen und sonstiges (Muadib,  8. Nov 2002, 15:46:38):
werde ich vom 16.12 bis zum 17.01
hoffe ich

muadib

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



Urlaub ... (Vanion, 10. Nov 2002, 12:37:35):
... hab ich zwar nicht, aber demnaechst eine mir wichtige Pruefung. Ich werd
zwar wie immer anwesend sein, hab aber nich die Zeit fuer groessere Bugfixes.
Falls ihr Probleme/Bugs findet, koennt ihr mir die zwar trotzdem mailen, aber
ich werd wohl nich vor Dezember dazu kommen, mir die anzuschauen.

V* goennt sich mal etwas RL.

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



Dienstlich... (Zook,  6. Dez 2002, 13:24:43):
... von 2002-12-07 bis 2002-12-11 in Berlin, daher nicht im Mud.

Zook.

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



wieder mal ;) (Patryn, 10. Dez 2002, 22:53:11):
meine letzte studiumspruefung steht an...am 18.
bis dahin, spielpause, mail geht automatisch raus.

-- 
patryn

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



Kurzurlaub... (Zook, 19. Dez 2002, 16:06:05):
Da unsere Uni vom 24.12. an dicht gemacht wird (incl. Heizung aus), kann
ich fruehestens am 2.1. wieder ins Buero und da bietet es sich doch an,
vom 27.12. bis 5.1. in den Ski-Urlaub in die Schweiz zu fahren. Soll heissen,
ich bin in der Zeit eher nicht da. :-))) 

Gruss, Zook.

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



Nur noch 6.5 Stunden... (Morgoth, 20. Dez 2002, 09:07:00):
dann is Urlaub :)
Bis zum 13.1. :)

M*

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



Weihnachten und Sylvester .... (Mandragon, 20. Dez 2002, 13:57:09):

bin ich an diversen Orten in ganz Deutschland bei allerlei lieben Menschen.
Daher bin ich hoechstens sporadisch mal da ...

In kuerze: Ich bin vom 20.12.02 bis zum 5.1.03 weg ...

Ma* (wuenscht ein frohes Fest und nen guten Rutsch)

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



Uchlaup! (Amaryllis, 20. Dez 2002, 14:20:32):
23.12.-01.01.

Ama*

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



Auchwech (Grimmborn, 20. Dez 2002, 15:55:23):
Ich werde heute Abend meinen wirklich wohlverdienten Weihnachtsurlaub antreten
und auch im MG - wenn ueberhaupt - nur sehr sporadisch auftauchen. Irgendwann
gegen Ende des Jahres bin ich dann wieder zurueck.

Grimmborn der Atheist

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



Kein Urlaub, nur eingeschraenkte Anwesenheit (Zook, 14. Jan 2003, 16:25:54):
Aufgrund betrieblicher Umstrukturierungen werde ich moeglicherweise
schon ab morgen (vielleicht auch erst ab 1. Februar) auf das 
Internet (insb. auf das MorgenGrauen) fuer unbestimmte Zeit (ich 
rechner mit 2 bis 3 Wochen) verzichten muessen, so dass meine
Anwesenheit im Mud auf den Abend beschraenkt ist und dann entsprechend
kuerzer ausfallen kann. Dadurch werden nun einige Dinge liegen bleiben,
sorry dafuer. Desweiteren bitte ich schon jetzt um Verstaendnis, dass ich
auf Anfragen entsprechend knapp reagieren werde.

Gruss, Zook.

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



Ne, Arbeit, kein Urlaub... (Ark, 29. Jan 2003, 21:34:20):
...aber trotzdem die naechste Woche weg. Glasgow. Wirklich beruflich. Wer
kommt sonst auf die schwachsinnige Idee, Anfang Februar nach Schottland zu
fahren?


              *** ARK * the * Magnificent ***


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



Re: Ne, Arbeit, kein Urlaub... (Mandragon, 29. Jan 2003, 22:02:04):
~#! rn=Ark rt=1043872460 rg=magier.urlaub
~#! tid=1043872460
Hehe :-) Viel Spass mit dem Whiskey :-)

Ma*

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



Re: Re: Ne, Arbeit, kein Urlaub... (Rikus, 30. Jan 2003, 09:13:28):
~#! rn=Mandragon rt=1043874124 rg=magier.urlaub
~#! tid=1043872460
und bring ne schoene Flasche fuer mich mit :)

Rikus

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



In Bonn ... (Vanion, 31. Jan 2003, 12:55:21):
bin ich anfang Mai fuer zwei Wochen. Vielleicht ergibt sich ja was. Genauer
Termin steht noch nicht fest.

V*

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



Re: Ohne Worte ... (Patryn,  2. Feb 2003, 14:03:10):
~#! rn=Liara rt=1044190056 rg=schmarrn
~#! tid=1044190056
Da ich mal einen Anfang fuer meine Diplomarbeit finden muss, werd ich jetzt
immer zyklisch die Woche ueber abwesend sein. Mails kommen weiter an, ich
versuch die dann irgendwie Richtung Wochenende abzuarbeiten.
Wichtige offene Dinge versuch ich auch in der Woche mal irgendwo
reinzuschieben, Gilde und Driver z.B.

-- 
Patryn, sauber abgemeldet

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



Dienstlich... (Zook,  6. Feb 2003, 13:10:51):
... bin ich die ganze naechste Woche ausser Haus, kann also sein, dass ich
nicht im Mud auftauche. 

Zook.

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



Re: Kein Urlaub, nur eingeschraenkte Anwesenheit (Zook, 17. Feb 2003, 14:15:02):
~#! rn=Zook rt=1042557954 rg=magier.urlaub
~#! tid=1042557954
Im Ursprungsartikel angesprochener Sachverhalt ist eingetreten, so dass
Ihr nun tagsueber auf unbestimmte Zeit auf mich verzichten muesst. Ich
arbeite aber an einer sinnvollen Loesung... 

Zook.

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



Uchlaup! (Amaryllis, 20. Feb 2003, 18:06:27):

Hab bis einschliesslich Rosenmontag frei und bin deshalb nicht regelmaessig
da.

Ama*

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



Nur halb Urlaub (Humni, 25. Feb 2003, 14:56:06):
Huhu,

bin evtl. ab morgen mittag oder so (26.2.) fuer eine Woche nicht hier, kann
aber gut sein, dass ich doch noch ab und an reingucke, mal sehen.

Humni

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



Re: Nur halb Urlaub (Ark, 25. Feb 2003, 17:29:18):
~#! rn=Humni rt=1046181366 rg=magier.urlaub
~#! tid=1046181366
Oha, da melde ich mich prophylaktisch gleich mit ab. Typisch, kaum schliesst
man ne Quest an ... Humni boese. Ark weint. Sechs, setzen.


              *** ARK * the * Magnificent ***


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



Urlaub! (Zook, 18. Mar 2003, 15:35:00):
Ich bin vom 6. bis 14. April im Urlaub. Ist das nicht toll? Ich freu
mich auch schon wahnsinnig. :-)))

Zook.

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



Dienstlich... (Zook, 24. Mar 2003, 11:08:30):
... diese Woche fast nicht da. Bin dienstlich ein wenig unterwegs (Berlin,
Muenster) etc. Aber man sieht sich zum Bonn-Stati am Freitag. :-))

Zook.

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



Auch dienstlich... (Ragnaroek, 24. Mar 2003, 22:25:34):

Nachdem ich nun  nach bezwungenem Umzug dachte, ich bin ab dieser
Woche wieder mit vollem Einsatz zurueck, erhielt ich  gestern die
ernuechternde Meldung, dass ich arbeitsbedingt fuer die naechsten 
fuenf Wochen  nach Darmstadt abkommandiert werde und dort solange 
meine Zeit in irgendwelchen Hotels fristen werde.
Die sehnlich erwarteten Projekte wachsen jedoch weiter, wenn auch
nicht in geplanter Geschwindigkeit und Onlinepraesenz.
Irgendwann wird alles besser....
So long,

:ragna:

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



Re: Dienstlich... (Zook, 31. Mar 2003, 12:30:57):
~#! rn=Zook rt=1048500510 rg=magier.urlaub
~#! tid=1048500510
... bin ich diese Woche ziemlich zugeschuettet mit Arbeit (will ja bald
in Urlaub). Daher bin ich nur ganz selten online. Ich bin aber ueber
Mail erreichbar und versuche auch anfallende Dinge schnell abzuarbeiten.

Gruss, Zook.

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



Nochma Urlaub... (Zook, 31. Mar 2003, 12:31:31):
... aber nur ueber Ostern. Genauer: Vom 17. bis 22. April bin ich in der
schoenen Schweiz.

Gruss, Zook.

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



Urlaub!!! (Humni,  7. Apr 2003, 19:30:37):
Ja, wirklich Urlaub!

Und das heisst fuer Euch, ab dem 11. oder 12.04. bis irgendwann Ostern koennt
ihr metzeln wie ihr wollt, es wird Euch keine Gildenbalance snoopen und dann
sofort auf der Stelle abwerten...

Humni

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



Und nochmal abwesend... (Zook, 15. Apr 2003, 16:26:59):
Wenn ich aus der Schweiz komme, dann steht gleich wieder ne auswaertige
Dienstwoche an. Also rechnet am Gruendonnerstag (17. April) mal nicht mit
meiner Rueckkehr vor 28. April.

Zook.

PS: Wenn was Dringendes ist, kann man das dann mit mir am Stuttgart-Stati
besprechen :)

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



urlaub (Muadib, 17. Apr 2003, 15:53:46):
bis zum 11. mai hab ich urlaub
abundzu schau ich dann aber doch vorbei

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



urlaub (Rikus,  5. Mai 2003, 11:41:51):
Hi ihr,
bin bis Sonntag in Flitterwochen :)
Bis denne, Rikus

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



Abwesend... (Zook, 27. Mai 2003, 12:03:28):
... bin ich vom 28. Mai bis 3. Juni.

Zook.

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



Das WGT... (Ragnaroek,  4. Jun 2003, 11:13:31):
...dauert vom 5. bis zum 10. Juni. In dieser Zeit bin ich also
nicht hier :o)

:ragna:

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



Auch mal weg (Humni,  4. Jun 2003, 11:22:39):
Huhu,

ich werde ueber Pfingsten bei Rock am Ring sein, danach die Woche hab ich
Urlaub und keine Ahnung, ob ich da mal reingucke. Danach bin ich aber wieder
da.

Humni

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



Re: Auch mal weg (Amazora,  4. Jun 2003, 11:58:44):
~#! rn=Humni rt=1054718559 rg=magier.urlaub
~#! tid=1054718559
gruess james headfield von mir ;)

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



Da ich derzeit... (Zook,  4. Jun 2003, 18:27:30):
... dienstlich etwas stark eingespannt bin, werde ich in den kommenden
Wochen nicht so oft anwesend sein. Ich bin aber ueber Email erreichbar
und kuemmere mich weiterhin um meine Aufgabengebiete, soll heissen, es 
sollte nich mehr liegen bleiben als bisher schon... :)

Gruss, Zook.

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



Juchhe (Ark, 24. Jun 2003, 10:43:58):
Naechste Woche fuer eine Woche, wohl meist ohne Onlinezeit.


              *** ARK * the * Magnificent ***


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



Re: Da ich derzeit... (Zook, 25. Jun 2003, 21:54:49):
~#! rn=Zook rt=1054744050 rg=magier.urlaub
~#! tid=1054744050
Die Einspannung nimmt zu! Soll heissen: Ich weiss nicht, ob und wann ich 
eingeloggt sein kann.

Zook.

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



Vorankuendigung (Humni,  4. Jul 2003, 10:26:55):
Ist zwar noch was hin, aber ich werde vom 24. bis 27.7. wohl nicht hier
anzutreffen sein. Danach bin ich ab Dienstag in Brieselang, also kann es sein
(da ich Montag ne Konferenz hab) dass ich ab 24. gar nicht mehr hier bin, bis
nach Brieselang.

Humni

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



Paaarty (Vanion,  6. Jul 2003, 19:04:00):
Rechnet in der Partywoche eher nicht damit, dass ich oft online bin.

Einigen von euch werd ich RL auf die Nerven gehen. Da is ignorieren auch
schwieriger. :)

V*

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



Re: Paaarty (Zook,  6. Jul 2003, 19:06:47):
~#! rn=Vanion rt=1057511040 rg=magier.urlaub
~#! tid=1057511040
AOL, aber nicht nur wegen Party, bin die Woche auch dienstlich in HH und B.

Zook.

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



Rechnerprobleme (Ragnaroek,  6. Jul 2003, 22:02:00):
Wg. technischer Probleme (Systemplatten-Crash) bin ich derzeit 
nur gelegentlich kurz hier. Hoffe das Problem ist bald behoben...

:ragna:

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



Nicht wirklich Urlaub ... (Elizabeth,  8. Jul 2003, 17:18:30):
aber doch ein Abwesenheitsgrund ist mein Umzug nach Finnland am 1. August. Ich
komm wohl nicht zur Party und 
wie meinte doch jemand 'ich finds unhoeflich wenn man im Buero hoert 'ich fahr
dann mal innen Urlaub'. Also sag ich
jetzt schon Bescheid. Wird kein Urlaub, wie schon gesagt, und deshalb werd ich
Elizabeth hier auch aus dem Spiel nehmen.
Wer Kontaktmoeglichkeiten bis dahin knuepfen will, soll das tun, ansonsten
Adios und machts gut,
war eine schoene Zeit bei euch.

eli.

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



Noch ne Ankuendigung... (Humni, 11. Jul 2003, 14:33:11):
auch kein Urlaub, aber bis Mittwoch, den 16.07. bin ich wohl erstmal nicht
hier oder wenn dann nur kurz und kann kaum was machen. Ab morgen, den 12.07.
gilt diese aussage.

Humni

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



Die Toskanafraktion ... (Mandragon, 26. Jul 2003, 22:56:50):

faehrt doch nach Italien.

Ich bin vom 16.8.-23.8. ebenda. Wollte ja erst das freie Bett bei Bruno
Bruni mieten, aber hab mich dann doch fuer ne Basis am Gardasee entschieden,
da die Frauen schwimmen wollen ...

Viel Spass daheim :-)

Ma*

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



Uchlaup! (Amaryllis, 11. Aug 2003, 16:48:12):
Moin,

die Hitzewelle hat demnaechst ein Ende, denn Feechen geht vom 17.08.-07.09. in
den wohlverdienten Sommerurlaub. Wahrscheinlich werde ich zwischendurch mal
sporadisch da sein, aber die erste und letzte Woche bin ich definitiv weg.

Ama*

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



Urlaub (Zook, 11. Aug 2003, 16:50:26):
Ich glaube es noch nicht, aber meinem Kalender nach habe ich vom 14. bis 24.
August Urlaub---so nichts dazwischen kommt. 

Zook.

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



Und wech (Anthea, 14. Aug 2003, 18:17:42):
So, bis Anfang September lege ich nun eine "Spielpause" ein, da ich in der
Toskana keine grossen Versuche machen werde, ein Internetcaffee zu finden.

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



Nochma weg... (Zook, 25. Aug 2003, 10:23:43):
... diesmal dienstlich und zwar vom 26. August bis 31. August 2003.

Zook.

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



Spielpause (Mandragon, 28. Aug 2003, 15:45:12):

Da ich offensichtlich zu viel Chatte und zu wenig Diplomarbeit schreibe, habe
ich mir ab morgen eine zweiwoechige Spielpause verordnet. In dringenden
Faellen bin ich per ICQ oder im Homemud erreichbar.


Ma*

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



Re: Spielpause (Patryn, 28. Aug 2003, 17:52:58):
~#! rn=Mandragon rt=1062078312 rg=magier.urlaub
~#! tid=1062078312
Ich waer echt froh, wenn 2 Wochen irgendwelche Relevanz in meiner
Diplomarbeitsdauer haetten :)

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



Leider kein Urlaub, aber ... (Nyx, 28. Aug 2003, 19:50:41):
Wegen Umzugs und noch nicht vorhandenem Telefon-Anschlusses
muss mein armer Computer ca. einen Monat ohne Internet leben.
Falls er das ueberlebt, bin ich ca. Anfang September wieder
da.

Liebe Gruesse

La Nyx

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



Urlaub (Grimmborn, 29. Aug 2003, 14:54:31):
Vom 30.08. - 05.09. bin ich nicht hier. "Vermissen" ist sicher das falsche
Wort, aber sollte sich jemand wundern dass ich nicht da bin reicht ein "RTFM"
mit Hinweis auf diesen Artikel. 

Grimmborn der Atheist

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



Gottlose Zeit (Zook, 30. Aug 2003, 00:53:58):
Auf nicht absehbare Zeit stehe ich dem Mud ausgesprochen unregelmaessig
zur Verfuegung. Ich bitte insoweit um Verstaendnis und bitte Euch, etwaige
Anfragen o.ae. an einen anderen EM+ zu richten.

Zook.

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



France (Rikus,  1. Sep 2003, 14:36:26):
Hi,

bin vom 6.9.-28.9. dort Zelten. Wenn wer bis dahin noch was bzgl. ZTs,
FPs, EKs will, dann schnell melden. Diese Woche ist bei mir auch so schon
recht gut gefuellt...

Rikus, urlaubsreif

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



Sonne, Meer, ... Juheee (Seleven,  3. Sep 2003, 20:04:08):
Ich bin vom 6.9. genau eine Woche in Urlaub.

Gruss Seleven

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



Urlaubsreif (Ark,  5. Sep 2003, 18:25:29):
Ich habe keine RL Tanke mehr und nur noch 1 LP und 0 KP. Folgerichtig gebe ich
heute beruflich "ende" ein und spielpause mich da mal fuer 3 Wochen. Ob ich
hier dann mal reinschaue, weiss ich noch nicht. Ist gemein, aber wer was noch
drihingend von mir will, hat nicht mehr viel Zeit heute :-)


              *** ARK * the * Magnificent ***


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



OT (Amaryllis, 10. Sep 2003, 00:19:26):
Hi,

kein Urlaub, aber:
Aufgrund eines seit Wochen sich manifestierenden Problems in meinem Umfeld
(das ich bisher noch nicht abschaetzen wollte/konnte) muss ich erstmal ein
bisschen kuerzer treten.

Ich bin nach wie vor regelmaessig online und werde Mails/Kontakte pflegen,
aber habt bitte Verstaendnis, wenns auch mal was dauern kann. Dies richtet
sich insbesondere in Richtung der Dunkelelfen.

Ama"man kann sichs nicht immer raussuchen"ryllis.

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



Re: OT (Amaryllis, 10. Sep 2003, 00:27:28):
~#! rn=Amaryllis rt=1063145966 rg=magier.urlaub
~#! tid=1063145966
Hi,

selbstreplys sucken, ich weiss.

Um was klarzustellen:
Ich bin weder weg noch inaktiv noch sonstwas. Ich moechte nur entgegen meiner
Angewohnheit, Dinge nach Moeglichkeit zeitnah zu beantworten, bekanntgeben,
dass das auch mal etwas dauern kann.

Ich bin mir dessen bewusst, dass insbesondere die Gilde eine Betreuung braucht
und werde diese auch weiterhin nach besten Kraeften zeitnah regeln.

Gruss,
Ama (nicht fott, aber leider noch mehr beschaeftigt...)

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



Nur sporadisch da ... (Mandragon, 16. Sep 2003, 15:21:05):

bis naechsten Dienstag, wenn meine DSL-Volumenflat angeklemmt wird.
Dann wieder wie gehabt und dann werde ich auch mal die grosssse boese
Todo-Liste abarbeiten, die mir durch Bugs und die Balance verschafft wurde :-)

Ausserdem habe ich im Meer was brodeln gehoert ...

Ma*

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



Leider kein Urlaub... (Seleven, 17. Sep 2003, 19:37:10):
... aber Umzug.
Deswegen bin ich von Freitag an nur noch sporadisch da, aber per mail zu
erreichen.

Gruss Seleven

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



Tagung (Nonne, 19. Sep 2003, 08:36:12):
Ich will auch mal was hier reinschreiben:

Ich bin weg, ab heute bis Dienstag, haette gerne Urlaub, ist aber ne Tagung in
einem X Sterne Schloss mit lauter bekloppten Professoren und eingebildeten
Urlaubern. Ich hoffe, ich ueberlebe das.

Lasst das Mud stehen
Nonne.

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



auch mal weg... (Magdalena, 19. Sep 2003, 16:36:50):
Hallo zusammen :)
Ich bin fuer eine Woche auf Dienstreise in Italien.
Lasst so lang das MUD bitte stehen. Denn wenn was passiert, koennt ihr nicht
sagen, ich war's.
magda*, nimmt gern die schuld auf sich

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



weg sein (Troy, 23. Sep 2003, 18:28:33):
Ich habe Urlaub bis zum 19. Oktober. Vielleicht schaue ich zwischenzeitlich
mal kurz rein - ist aber eher unwahrscheinlich.

Troy

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



Re: Leider kein Urlaub... (Seleven, 28. Sep 2003, 19:48:29):
~#! rn=Seleven rt=1063820230 rg=magier.urlaub
~#! tid=1063820230
Bin fuer eine Woche noch mal erreichbar. Ab Freitag (3.10.? - zu faul zum
nachschauen :)) liegt mein naechstes Einloggdatum in den rosa Haenden der
Telekom.

Gruss Seleven

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



Urlaub (Twingi,  4. Okt 2003, 20:25:06):
Vom 17.Oktober bis zum 4.November schipper ich ein bisschen in den warmen
Gefilden einer fremden Inselwelt herum.
Lasst mir in der Zwischenzeit die Inseln des Morgengrauen nicht untergehen.
;-)

Twingi

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



Auch kein Urlaub (Humni,  8. Okt 2003, 20:20:04):
Huhu,

ich werde Ende des Monats umziehen. Bedingt dadurch und durch die Frage, dass
ich noch nicht sicher weiss, wann ich wieder einen Telefonanschluss habe und
dadurch, dass ich auch noch eine neue Wohnung suchen muss kann es in naechster
Zeit zu vermehrten Abwesenheitszeiten von mir kommen.

Humni

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



juichi-gatsu oosaka ni ikimasu. (Vanion, 10. Okt 2003, 23:11:40):
Wenn nix schief geht, werde ich vom 1. bis zum 15. November nicht das
MorgenGrauen sondern Osaka und Umgebung (Nara, Kyoto, Wakayama, Himeji - also
eigentlich ganz Kansai) unsicher machen.

Lasst das Mud stehen :)

V*

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



Der Ruf der Sonne... (Anysidora, 11. Okt 2003, 14:52:18):
...hat mich ereilt. ;)

Demzufolge bin ich vom 31.10. - 15.11.2003 nicht im Mud, sondern treibe mich
im warmen Kuba herum. :)
Freut euch also auf gut 2 Wochen MG ohne mich. (Ausser, das Internetkaffee ist
nicht so teuer, dann schau ich vielleicht doch mal rein ;))

Ansonsten nutzt die Zeit und erholt euch von mir, denn I'll be back oder wie
man das nennt *g*

Any*

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



umzug (Rochus, 14. Okt 2003, 20:00:02):
So, ich ziehe am 18. von Berlin nach Dortmund, d.h.
ich werde vom 17. 10. bis voraussichtlich 31. 10.
nicht hier anzutreffen sein... die Zeit brauche ich zum
Einrichten, da lohnt es sich nicht nen vollen Monat
Internetanschluss zu zahlen (muss mal schauen ob Ish auch
Monatsbruchteile berechnet, dann koennte es frueher werden :)

  Rochus

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



Kein Urlaub, aber kleine Zugangsprobleme (Seleven, 15. Okt 2003, 09:46:20):
Ich bin nun umgezogen, komme aber aufgrund technischer schwierigkeiten nicht
ins Netz. Bzw. wenn, dann nur ueber den unipool. Mails kann ich also abfragen,
nur schlecht moegliche bugs fixen.
Seleven ueber telnet.

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



... und wech! (Magdalena, 26. Okt 2003, 08:15:12):
huhu zusammen :)
naechste woche mittwoch werde ich mit gepacktem koffer richtung sueden
aufbrechen und gewiss nicht vor dem WE 8./ 9.11. auftauchen.
bleibt anstaendig (was auch immer ihr euch darunter vorstellt) - ich bin ja
bald wieder da :)
tschuessi
magda*
fuer euer heil IMMER betend

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



Re: ... und wech! (Magdalena, 26. Okt 2003, 08:16:30):
~#! rn=Magdalena rt=1067152512 rg=magier.urlaub
~#! tid=1067152512
oh --- ich vergass:
Raki jeden Taki!
und:
28 Grad :)
all inclusive
hae hae

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



Mal wieder Urlaub (Grimmborn, 10. Nov 2003, 13:43:19):
Ich bin von irgendwamm am 13.11. fuer den Rest des Monats in Urlaub. 
Sollte niemanden hier direkt beeintraechtigen, aber neidisch duerft ihr
allemal werden. 

Grimmborn der Atheist

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



Weg ... (Seleven, 11. Nov 2003, 17:59:39):
.... von Die, 18. Nov 2003, bis Mon, 21. Nov 2003 :)

Ich hoffe meine Elfen benehmen sich in der Zeit. :)

Gruss Seleven

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



Re: Weg ... (Seleven, 11. Nov 2003, 18:00:18):
~#! rn=Seleven rt=1068569979 rg=magier.urlaub
~#! tid=1068569979
24.10 mein ich :)

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



Re: Re: Weg ... (Ark, 13. Nov 2003, 19:31:20):
~#! rn=Seleven rt=1068570018 rg=magier.urlaub
~#! tid=1068569979
Fast ein Jahr? Wo arbeitest Du? Bekommst Du vollen Lohnausgleich? Wieviel
verdienst Du? Wo bewirbt man sich?


              *** ARK * the * Magnificent ***


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



Re: juichi-gatsu oosaka ni ikimasu. (Vanion, 17. Nov 2003, 06:55:35):
~#! rn=Vanion rt=1065820300 rg=magier.urlaub
~#! tid=1065820300
Hi,

Ich bin zurueck. Japan ist unglaublich. Ich kann nur jedem empfehlen auch, so
eine Tour zu machen. Lasst euch aber unbedingt auf die Leute ein. Sie sind
manchmal etwas komisch, und man muss sich an einige Sachen echt gewoehnen.
Aber das lohnt sich. (PS: An das Essen musste ich mich nicht gewoehnen, das
war unglaublich lecker, ich war eigentlich immer vollgefressen. Und trotzdem
bestaetigte meine Wage heut morgen meine Bestaetigung: 3kg abgenommen, in 2
Wochen :)

V*, faengt dank Jetlag heut sehr frueh an, die MPA abzuarbeiten.

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



Re^3: Weg ... (Seleven, 17. Nov 2003, 14:45:01):
~#! rn=Ark rt=1068748280 rg=magier.urlaub
~#! tid=1068569979
Ups, na ja: bevor ich noch mal falsche Daten poste: Ich bin von Morgen an, bis
einschliesslich Sonntag nicht hier. :)

Seleven. Student.

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



Wech... (Ark, 12. Dez 2003, 14:44:27):
...bin ich ab heute, so bis Anfang Januar. Kann sein, dass ich mal reinschaue,
kann aber auch sein nicht. Frohe Weihnachten schonmal und guten Rutsch
(....erster :-) ).


              *** ARK * the * Magnificent ***


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



Weihnachtsurlaub (Feigling, 19. Dez 2003, 21:37:37):
Endlich mal Urlaub :-) Vom 22.12. bis 5.1. verzieh ich mich
nach Oesterreich und werde nicht im Morgengrauen sein.

Alle Bugs nehm ich mit, also gibts hier eh nix fuer mich
zu tun ;-)

Allen schonmal ein schoenes Fest und nen guten Rutsch :-)

Feigling

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



Re: Weihnachtsurlaub (Amaryllis, 19. Dez 2003, 23:42:28):
~#! rn=Feigling rt=1071866257 rg=magier.urlaub
~#! tid=1071866257
Dito...

Endlich mal paar Tage frei, damit 2004 nicht allzuviel Resturlaub ueber
bleibt...

Frohes Fest, guten Rutsch, ab spaetestens 07.01. bin ich (mit hoffentlich
weniger Stress) wieder da :)

Ama*

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



weg (Nonne, 22. Dez 2003, 10:34:49):
Weg fuer ne Woche. Ich denke, ich bin am Samstag wieder da. Lasst das Mud
stehen.

Nonne.

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



zwangsurlaub (Magdalena, 22. Dez 2003, 20:56:12):
hallo zusammen :)
also ich verabschiede mich mal  fuer gut mind. 14 tage. heute morgen hat man
mich mittels gips ausser gefecht gesetzt und tippen geht nun eigentlich gar
nicht mehr. 
bitte kein mitleid oderx
*args
oder sowas - auch das wird wieder in ordnung kommen!
beginnt das jahr besser als ich es beendet habe! (das sollte nicht so schwer
sein)
tschuessi!
)
magda :)

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



Abwesend... (Zook, 29. Dez 2003, 10:19:37):
Ich bin vom 30. Dezember 2003 bis zum 5. Januar 2004 nicht[*] im Mud.

Zook

 [*] Falls doch, dann nur zufaellig und kurz.

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



Weg (Ark, 14. Jan 2004, 22:26:20):
Ab Samstag bis naechsten Freitag. Mal ab nach Orlando, keinen Urlaub machen.
Lasst mir hier alles stehen :-)


              *** ARK * the * Magnificent ***


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



Gruene Ferien (Nibel,  8. Feb 2004, 13:19:45):
Leider nicht wirklich Urlaub, aber WK bis zum 06.03. Werd uebers WE kurz
reinschauen, falls was sein sollt.
  - Nibel
-----------------------------------------------------------------------------



Kein Urlaub... (Zook, 13. Feb 2004, 11:32:04):
... aber ich werde in den kommenden Wochen weniger im Mud anwesend sein. 
Insofern bitte ich um Verstaendnis fuer eine langsamere Beantwortung Eurer
Anliegen... :)

Zook.

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



Uchlaup! (Amaryllis,  5. Mar 2004, 22:19:34):
Eine Woche.

Ama*, gezwungen, lanxam ihren Restuchlaup aufzubrauchn.

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



Re: Uchlaup! (Zook,  5. Mar 2004, 22:22:47):
~#! rn=Amaryllis rt=1078521574 rg=magier.urlaub
~#! tid=1078521574
GRATS!

Zook.

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



Urlaub, geplant, viel zu kurz (Zook, 12. Mar 2004, 09:45:56):
Hi, ich werde von heute bis Mittwoch Abend einige Tage in der schoenen 
Schweiz zum Zwecke der Erholung verweilen. 

Zook.

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



Zwei Wochen weg (Nonne, 16. Mar 2004, 12:14:59):
Bin aus privaten Gruenden ab morgen, 17.03. fuer zwei Wochen nicht hier, also
nicht meckern, wenn man von der Balance nichts hoert oder sich Sachen
verzoegern.

Nonne.

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



Re: Zwei Wochen weg (Nonne,  3. Apr 2004, 22:45:26):
~#! rn=Nonne rt=1079435699 rg=magier.urlaub
~#! tid=1079435699
Leider erweist sich die Krankheit meiner Mutter als etwas langwieriger als
zuerst angenommen, daher bin ich noch bis Ostermontag nicht hier, da meiner
Mutter Wohnung weder Rechner noch Internet hat.

Nonne.

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



Kein Urlaub, sondern... (Maarg,  7. Apr 2004, 09:37:28):
... Umzug.

Deswegen habe ich noch kein Netz zu Hause und bin bis auf weiteres nur
sporadisch hier.

Maarg

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



URLAUB!!! (Humni, 12. Apr 2004, 01:10:47):
Ich bin ab morgen mittag bis irgendwann naechstes Wochenede (morgen ist
uebrigens Montag, 12.4. oder so) unterwegs. Und damit nicht im MorgenGrauen.
Toetet solange bitte alle Monster oder macht was ihr wollt (hae?).

Humni

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



Auch Urlaub! (Miril, 12. Apr 2004, 01:14:55):
s.o.
Bei dringenden Fragen wendet Euch an Xetolosch, der kann euch sicher helfen.

Miril

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



1 Woche weg (Rikus, 10. Mai 2004, 15:38:07):
... wegen Tagung in Montreux.

Rikus

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



Abwesenheit (Bambi, 19. Jun 2004, 22:12:52):
Da ich in naechster Zeit ueber keinen privat nutzbaren Internetzugang
verfuege, bin ich allenfalls sporadisch hier. Falls Bugs auftreten, die mich
als Nicht-RM betreffen, schickt mir eine Mail. Ich werde mich bei naechster
Gelegenheit darum kuemmern.

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



Diverse Abwesenheiten. (Zook, 22. Jun 2004, 10:39:25):
Gruende gibt es viele, Abwesenheiten auch, im Ergebnis bin ich von 
Donnerstag, 24. Juni 2004 bis Montag, 5. Juli 2004 nicht im Mud.

Zook.

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



weck (Amaryllis, 28. Jul 2004, 21:52:00):
Hi,

auf Wunsch eines nicht naeher genannten Sukchens gebe ich hiermit bekannt,
dass ich erst Montag naechster Woche wieder hier sein werde.

Interessiert zwar kein Schwein, aber vielleicht bugt solange ja auch nix bei
den Delfen :)

Ama*

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



Auch wech ... (Vanion, 28. Jul 2004, 21:55:10):
Hi,

ich bin zwar erst ab Sa physikalisch weg, aber muss bis dahin noch eine
Pruefung vorbereiten. Rechnet also bis nach der Party nicht mit meiner
geistigen Anwesenheit.

Viel Spass beim Mud daemolieren,
V*

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



Re: Auch wech ... (Zook, 28. Jul 2004, 22:34:11):
~#! rn=Vanion rt=1091044510 rg=magier.urlaub
~#! tid=1091044510
Danke, bekommen wir hin!

Zook.

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



Auch mal Urlaub... (Humni,  9. Aug 2004, 12:06:35):
Nach den anstrengendn Halle-Tagen bin ich ab Mittwoch nicht mehr hier, wohl
fuer voraussichtlich eine Woche. Man rechne mit mir fruehestens ab 18./19.8.
oder so wieder.

Humni

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



Re: Auch mal Urlaub... (Miril, 10. Aug 2004, 22:28:37):
~#! rn=Humni rt=1092045995 rg=magier.urlaub
~#! tid=1092045995
Gleichfalls. Zieht bitte solange keine Stoepsel raus. Wehe da fehlen irgend-
welche Inseln, wenn ich wiederkomme :).

Ca. in einer Woche bin ich wieder da.

Miril

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



Re: Re: Auch mal Urlaub... (Zook, 10. Aug 2004, 22:29:23):
~#! rn=Miril rt=1092169717 rg=magier.urlaub
~#! tid=1092045995
> Wehe da fehlen irgendwelche Inseln,

Mift!

Zook.

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



Re^3: Auch mal Urlaub... (Morgoth, 10. Aug 2004, 22:29:41):
~#! rn=Zook rt=1092169763 rg=magier.urlaub
~#! tid=1092045995
Hey, das vLand ist keine Insel mehr

M*

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



Umzug (Bambi, 11. Aug 2004, 00:28:12):
Nachdem ich nun wieder einen Internetzugang habe, bin ich auch wieder
regelmaessig hier. Ich hoffe nur, dass ich meinem Linuxrechner in absehbarer
Zeit beibringen kann, dass er nun DSL anstatt ISDN nutzen soll.

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



Abwesend (Zook, 16. Aug 2004, 09:22:40):
Von Dienstag, 17. August 2004 bis wohl Sonntag, 22. August 2004 bin ich 
nicht im MorgenGrauen anzutreffen. 

Zook.

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



abgetaucht (Muadib, 23. Aug 2004, 09:45:42):
werde ich sein von 27.08 bis 10.09 dieses monats

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



Re: abgetaucht (Muadib, 23. Aug 2004, 09:49:58):
~#! rn=Muadib rt=1093247142 rg=magier.urlaub
~#! tid=1093247142
jaja
dieses jahres

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



Und wech (Morgoth, 27. Aug 2004, 18:46:51):
Von Sonntag dem 29.8. bis Freitag dem 3.9. bin ich in Rostock und wenn
ueberhaupt dann hier nur mit einem grossen J anzutreffen :)

M*

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



Uchlaup! (Amaryllis, 27. Aug 2004, 19:01:16):
Tach!

Ich habe bis zum 12.09. Uchlaup und bin deshalb nur unregelmaessig in dieser
Sendung anwesend :)

Ama*

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



weg (Rikus, 31. Aug 2004, 14:18:10):
ab 5.9. bin ich fuer 3 Wochen weg (Zelten in Italien). Wer bis diesen Freitag
noch ZTs, FPs... eingetragen, umgetragen usw. habe will, sollte sich schnell
melden...

Rikus

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



Arbeit ... (Vanion, 31. Aug 2004, 22:42:16):
Hi,

Studium, Arbeit und Urlaub zwingen mich dazu, bis ca zum 21.09. etwas kuerzer
zu treten. Danach wirds wohl wieder besser werden.

Gruesse,
V*
PS: Der Urlaub ist der kuerzeste Zeitraum in der Geschichte :)

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



Urlaub (Grimmborn,  6. Sep 2004, 10:13:08):
Wenn so viele andere Urlaub machen, will ich nicht abseits stehen: vom 11.9.
bis ungefaehr 23.9. bin ich nicht hier.

GdA[ex-R] OHdMuBdE  

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



Konferenz/Tagung (Zook,  7. Sep 2004, 10:41:25):
Bedingt durch eine Konferenz/Tagung bin ich bis Freitag nicht im Mud.

Zook.

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



www.donegal.de (Ark, 27. Sep 2004, 10:52:49):
Ab Donnerstag bis Sonntag mal Kurzurlaub in Irland zwecks Entlassung eines
Kollegen in die baldige Ehe. Oder Einpferchung. Je nach Betrachtungsweise.


              *** ARK * the * Magnificent ***


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



Abwesend... (Zook, 27. Sep 2004, 21:27:56):
... teils dienstlich teil privat.... auf jeden Fall guck ich mir mal die
NPD-Waehler in Sachsen an.

Zook bis Sonntag in Dresden.

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



Re: Abwesend... (Arathorn, 27. Sep 2004, 21:28:16):
~#! rn=Zook rt=1096313276 rg=magier.urlaub
~#! tid=1096313276
Klingt bisschen nach Zoobesuch... ;-)

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



Wech ... (Vanion,  3. Okt 2004, 16:13:50):
bin ich in der kommenden Woche und werde Koeln unsicher machen. Vermutlich
wird eher Koeln mich unsicher machen ... aber lassen wir die Details. Wichtig
ist, ich bin nicht erreichbar.

V*
PS: Warum heisst diese Rubrik eigentlich nicht magier.dienstreise?

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



Down Under (Ark, 15. Okt 2004, 15:38:56):
Abflug: 02.11.04
Rueckflug: 01.12.04 Ankunft.
Online: No Way.
Offline: Huzzah.


              *** ARK * the * Magnificent ***


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



Ueberwiegend internetlos .. (Vanion, 25. Okt 2004, 17:25:07):
.. bin ich vom 1. bis zum 12. November. Entsprechend selten werde ich zu sehen
sein.

Gruesse,
V*

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



Kurzurlaub (Nibel,  5. Nov 2004, 08:46:06):
Bin uebers WE in London, lasst mir den schoenen Wald stehn :) 
  - Nibel
-----------------------------------------------------------------------------



Urlaub (Grimmborn, 17. Nov 2004, 10:06:40):
Fuer alle, die es nicht interessiert, die diese Rubrik aber trotzdem nicht
abbestellt haben: Ich bin ab etwa Ende dieser Woche bis Nikolaus weg.
Weitestgehend noch nichtmal auf derselben Erdhalbkugel wie das MG. 

Grimmborn der Atheist

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



Urlaub (Arathorn, 26. Nov 2004, 00:05:29):
Hi zusammen,

da ich naechste Woche Urlaub habe, koennt Ihr damit rechnen, dass ich auch
tagsueber mal anwesend bin, nicht nur abends. ]:->

Gruss, Arathorn.

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



ich bin im urlaub (Muadib, 30. Nov 2004, 10:45:01):
vom 6.12 bis 13.12 einschliesslich

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



Re: ich bin im urlaub (Vanion, 30. Nov 2004, 18:19:03):
~#! rn=Muadib rt=1101807901 rg=magier.urlaub
~#! tid=1101807901
dito. aber vom 3.12. bis zum 14.12. mal schaun ob wir uns treffen, wenn wir ja
beide im urlaub sind.

v*

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



Weihnachten -> Urlaub <- Sylvester (Ark, 20. Dez 2004, 20:02:45):
Ein paar Tage Lissabon vom 27.12. bis 30.12. Rein dienstlich, versteht sich.
Urlaub gehoert ja quasi dazu. Als EM bin ich in Sachen portugiesische MUDs
unterwegs. Oder auch nicht. Jedenfalls weg.


              *** ARK * the * Magnificent ***


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



weihnachtsurlaub (Feigling, 22. Dez 2004, 21:47:10):
Hallo,

ich verzieh mich vom 23.12 bis zum 3ten Januar in den
verdienten Weihnachtsurlaub. Ich wuensch euch allen ein
schoenes Weihnachtsfest und nen guten Rutsch ins neue
Jahr (in dem ich hoffentlich wieder mehr Zeit fuers MG hab).

Feigling

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



Frohe Weihnachten! (Zook, 23. Dez 2004, 15:49:23):
Hallo zusammen, ich wuensche allseits frohe Festtage und einen guten
Rutsch ins neue Jahr. Ich werde fuer die Feiertage wohl kein Internet
haben.

Zook.

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



Re: Frohe Weihnachten! (Vanion, 23. Dez 2004, 18:12:24):
~#! rn=Zook rt=1103813363 rg=magier.urlaub
~#! tid=1103813363
dto.

V*

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



Oooolllleeee (Ark, 19. Jan 2005, 21:47:53):
24.01. - 27.01. auf Order Mufti. Da muss man natuerlich gehorchen. Aber
Barcelona hat sicher etwas Kurzweil ;^)


              *** ARK * the * Magnificent ***


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



Mischung (Zook, 26. Jan 2005, 22:57:50):
Eine Mischung aus Urlaub und dienstlichen Abwesenheiten fuehrt dazu, dass ich
vom 10. bis ca. 25 Februar nur selten online sein werde.

Zook.

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



Urlaub (Zook, 14. Mar 2005, 10:49:06):
Ich werde vom 26. Maerz bis 2. April 2005 in Suedfrankreich im Urlaub
weilen.

Zook.

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



Und wech! (Grimmborn, 14. Mar 2005, 16:53:41):
Ich bin, auch wenn das niemanden wirklich interessieren wird, ab morgen
Nachmittag bis Sonntag frueh weg, mehr oder weniger im Urlaub. Jedenfalls
dorthin, wos knapp 30 Grad hat.

Grimmborn der Atheist

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



Urlaub.... (Humni, 18. Mar 2005, 20:52:02):
Huhu,

meinereiner ist ab Osterdienstag bis zum Sonntag danach im Urlaub und wohl
ohne Internetzugang.

Miril auch.

Humni

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



Tiger on the road (Ark, 18. Mar 2005, 21:01:32):
Vom 06.04. bis 10.04. bin ich auf Mallorca, um ganz entspannt weiter die
Saisoneroeffnung auf einem anderen Golfplatz zu eroeffnen. Von haemischen
Bemerkungen bitte ich abzusehen, ich freue mich naemlich schon wie ein kleines
Kind :-)


              *** ARK * the * Magnificent ***


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



Abwesend bis 10.07. (Grimmborn, 21. Jun 2005, 11:42:14):
Ich bin ab heute Nachmittag nur noch sporadisch da, und ab Freitag dann gar
nicht mehr. Wer eine Postkarte aus Island haben will: meldet euch bei jemand
anderem der dorthin faehrt, ich hab nicht vor welche zu schreiben. 

Grimmborn der Atheist

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



Urlaub? (Miril, 27. Jun 2005, 15:33:03):
Vom 30.6. - 2.7.05 bin ich auf Klassenfahrt in dem Ort, der eigentlich nur
nen Bahnhof hat. Ob das nun hier in der richtigen Rubrik steht, bleibt
fraglich. Jedenfalls bin ich nicht hier, soweit ich das ueberblicke.

Miril

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



Endlich! (Ark, 12. Aug 2005, 18:47:21):
Der Zwerg verschwindet vom 06.09. bis 17.09. nach Spanien (Naehe Alicante).
Wehe, das Wetter schlaegt jetzt dort wieder um :-)


              *** ARK * the * Magnificent ***


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



Letztendlich (Muadib, 12. Aug 2005, 21:45:16):
verschwinde ich vom 19.08 fuer 2 Wochen nach Xlendi.

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



Re: Letztendlich (Vanion, 12. Aug 2005, 21:45:34):
~#! rn=Muadib rt=1123875916 rg=magier.urlaub
~#! tid=1123875916
Komischer Zufall.

Ich auch.

V*

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



Re: Re: Endlich! (Wurzel, 15. Aug 2005, 12:19:16):
~#! rn=Zook rt=1123888454 rg=magier.urlaub
~#! tid=1123865241
ha. zu gleicher zeit mache ich urlaub im schoenen odenwald. egal welches
wetter ist.

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



In der Zone (Miril, 26. Aug 2005, 14:53:45):
sind Humni und ich bis Sonntag Abend. Wird bestimmt sehr nett und wie ich
den Hobbit einschaetze sicherlich auch eine grosse Schlemmerei mit viel
Bier. 

Miril

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



UCHLAUP! (Amaryllis,  9. Sep 2005, 19:58:15):
Ich bin in ein paar Tagen fuer 14 Tage am Mittelmeer (Toskana).
Interessiert eh keinen, macht aber vielleicht irgendjemand neidisch :)

Ama*

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



Abwesend (Muadib, 22. Sep 2005, 13:28:07):
Aus beruflichen Gruenden bin ich bis Ende des Jahres leider unter der Woche
mit wenig Freizeit gesegnet und kuendige deshalb eine "kleine Abwesenheit" an.

Gruss
Muadib

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



Urlaub (endlich) (Feigling, 22. Sep 2005, 23:06:30):
Huhu,

endlich, das erste mal dieses Jahr schaffe ich Urlaub zu nehmen.
Ich bin deshalb vom 24.9. bis 3.10. mal nicht im Mud.
Vertreten tun mich alle Magier die genauso gut ideln wie ich ;-)

Feigling (ist gar nicht Feige, nur vorsichtig)

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



anti-urlaub (Wurzel,  5. Okt 2005, 17:26:48):
so. urlaub ist vorbei, und ich habe mir heute mal zeit genommen den alten
rechner zu reparieren. mit anderen worten: bin wieder da und gelegentlich
auch ansprechbar.

wurzel

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



14 Tage Teneriffa (Bambulko, 12. Okt 2005, 12:32:07):
Morgen frueh geht es fuer 14 Tage nach Teneriffa.

Bambulko

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



Re: 14 Tage Teneriffa (Zook, 12. Okt 2005, 12:39:13):
~#! rn=Bambulko rt=1129113127 rg=magier.urlaub
~#! tid=1129113127
grats

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



12.11 - 19.11 (Seleven, 11. Nov 2005, 16:45:31):
Huhu. Ich bin naechste Woche nicht da.

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



27.12.-3.1. (Miril, 27. Dez 2005, 11:04:17):
Sofern wir gleich hier wegkommen, sind Humni und ich eine Woche in Urlaub.
Rutscht alle gut (ins neue Jahr, nicht die Strasse entlang) und feiert 
schoen. Werden wir sicher.

Miril

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



Re: 27.12.-3.1. (Mupfel, 29. Dez 2005, 20:43:50):
~#! rn=Miril rt=1135677857 rg=magier.urlaub
~#! tid=1135677857
Ich kann bestaetigen, dass Miril und Humni im Urlaub sicher angekommen sind :)

-mupfel-

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



Wech im Norden (Ark, 30. Dez 2005, 00:24:40):
Vom 30.12. (hups, schon heut) bis 02. oder 03.01. Lasst mir alles stehen und
rutscht gut rueber ins neue Jahr ... und nicht auf den Strassen ;^)


              *** ARK * the * Magnificent ***


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



Eine Woche Aspen (Bambulko,  3. Feb 2006, 17:45:11):
So, morgen geht es fuer eine Woche nach Aspen. Leider nur zu einer Konferenz
und nicht als Urlaub. Dafuer muss ich nichts bezahlen :-)

Bambulko

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



Fee wird weggeknipst (Amaryllis, 11. Feb 2006, 19:37:43):
Hi,

ich muss Montag, 13.02., fuer grob geschaetzt 1 Woche bis 10 Tage zur OP ins
Krankenhaus. Falls nichts dazwischenkommt, sehe ich Euch hoffentlich bald
wieder.

Ama*

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



Klassenfahrt (Miril,  6. Mar 2006, 00:18:10):
vom 6.3.-9.3. bin ich in Berlin. Lasst die Inseln heil :)

Miril

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



Re: Gloinson die Piste runterschubse (Gloinson, 17. Mar 2006, 10:28:24):
~#! rn=Mesirii rt=1142587610 rg=seher.urlaub
~#! tid=1142587610
... und dabei Mesirii mitreissend mitreissen. Ebenfalss nur eine Woche.

Stammtisch im Zillertal nach Bedarf, einfach durchSMSen.


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



Abwesend  (Zook, 29. Mar 2006, 12:17:14):
Ich bin vom 3. bis 16. April nahezu dauerhaft nicht online; schaue ggf.
mal sporadisch herein.

Zook.

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



Abwsend (Muadib, 29. Mar 2006, 12:49:45):
ich bin ab donnerstag mittag ohne privaten internetzugang
die ansprechbarkeit kann daher etwas leiden

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



Weg bis Sonntag (Humni, 17. Apr 2006, 16:56:29):
Huhu,

Miril und meinereiner sind ab morgen (Dienstag, 18.4.) bis Sonntag (23.4.)
internetlos im Wendland. Darum dann auch nicht hier. Also, in der Zeit wird
nicht viel abgewertet, abgelehnt oder abgehaengt. Schade eigentlich.

Humni

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



.. waere schoen (Seleven, 29. Mai 2006, 17:36:25):
Mindestens eine Woche ohne Internezugang.
Seleven.

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



Ma uffscheppe... (Zook, 31. Mai 2006, 13:13:10):
Vom Sonntag, 11. Juni bis Samstag 17. Juni wird meine Expertenmeinung 
in Kiev benoetigt. 

Zook.

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



Schoen waers ... (Vanion,  3. Jun 2006, 00:23:43):
Ich bin seit Donnerstag im neuen Job und dadurch relativ viel in der Republik
unterwegs. Ob ich immer gut erreichbar sein werde weiss nur die fuer
UMTS-Empfang zustaendige Gottheit.

V*

PS: Bis September bin ich erstmal in Mannheim. Vielleicht ergibt sich ja was.

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



Re: Schoen waers ... (Ark,  3. Jun 2006, 00:55:29):
~#! rn=Vanion rt=1149287023 rg=magier.urlaub
~#! tid=1149287023
Ein Sohn Mannheims ... suess :-)


              *** ARK * the * Magnificent ***


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



Re: Re: Schoen waers ... (Vanion,  3. Jun 2006, 00:57:07):
~#! rn=Ark rt=1149288929 rg=magier.urlaub
~#! tid=1149287023
Brrr.

Warum gibts eigentlich fuer sowas keine Flamewar-Rubrik?

V*

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



Frankreich ruft! (Humni,  5. Jun 2006, 16:10:00):
Ja, es ruft mich. Und darum bin ich ab morgen (Dienstag, 6.6.) bis Sonntag
(11.6.) abends irgendwann hier nicht zu erreichen. Es sei denn, ich finde
einen netten Internetanschluss oder sowas, was ich aber derzeit bezweifle.

Humni

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



Re: Schoen waers ... (Boing,  6. Jun 2006, 10:28:12):
~#! rn=Vanion rt=1149287023 rg=magier.urlaub
~#! tid=1149287023
Mannheim ist ja ziemlich nah an Karlsruhe. Du weisst ja bestimmt dass
es in Karlsruhe jeden Donnerstag den Mud-Stammtisch gibt. :)
  Boing

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



Re: Re: Schoen waers ... (Vanion, 12. Jun 2006, 14:35:37):
~#! rn=Boing rt=1149582492 rg=magier.urlaub
~#! tid=1149287023
Ja, ich erinner mich :)

Mal gucken, wann es zeitlich passt.

V*

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



Bruessel (Amaryllis, 26. Jun 2006, 12:04:10):
Hi,

ich bin bis zum 30.06. geschaeftlich in Bruessel und daher erst danach wieder
erreichbar.

Gruss,
Ama*

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



Endlich Urlaub! (Grimmborn, 26. Jun 2006, 15:31:27):
Von Samstag an bin ich rund 10 Tage nicht da. Freudenspruenge sind
unangebracht, meine Informanten werden mich anschliessend detailliert ins Bild
setzen. 

Grimmborn der Atheist

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



Oeh... Segeln.. (Humni,  3. Jul 2006, 20:23:52):

Miril und ich sind ab morgen (4.7.) eine Woche (bis 11.7.) nicht da.

Humni

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



Kein urlaub... (Humni, 15. Sep 2006, 14:45:51):
... aber Klassenfahrt....

Ich bin naechste Woche unter der Woche nicht da. Am Wochenende komme ich
wieder. Also: Kein Humni vom 18.-22.9., es sei denn ich sehe ein Internetcafe.

Humni

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



Re: Kein urlaub... (Ark, 15. Sep 2006, 14:54:35):
~#! rn=Humni rt=1158324351 rg=magier.urlaub
~#! tid=1158324351
Sturmfreie Bude :-)


              *** ARK * the * Magnificent ***


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



Re: Re: Kein urlaub... (Humni, 15. Sep 2006, 14:58:57):
~#! rn=Ark rt=1158324875 rg=magier.urlaub
~#! tid=1158324351
Ich such schonmal die Wuppertaler Internetcafes raus...

Humni

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



Re^3: Kein urlaub... (Ark, 15. Sep 2006, 15:07:04):
~#! rn=Humni rt=1158325137 rg=magier.urlaub
~#! tid=1158324351
Mift. Karatekageheimaufwertaktion verschieben. Humni eine Klage wegen
mangelnder Aufsichtspflicht anhaengen. Macht erlangen. Die Weltherrschaft an
mich reissen. Neue Tabletten besorgen. Schlafen.


              *** ARK * the * Magnificent ***


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



Urlaub (Muadib, 20. Sep 2006, 14:44:47):
bin bis 20.10 weg

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



Weg vom 25.9 - 16.10 (Bambulko, 22. Sep 2006, 17:00:42):
So, bin von Montag bis Mittwoch in Polen bei einer Konferenz und dann von
Donnerstag bis zum 13.10 im Urlaub.

Bambulko

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



Silvesterurlaub (Zesstra, 18. Dez 2006, 22:21:56):
Huhu,

ich werde in Kuerze auch einige Zeit nicht da sein. Das betrifft erstmal
Weihnachten (tja, die Familie ruft), d.h. 24., 25. und teilweise den 26.12.

Und ab 27.12. bin ich eine Woche bis zum 3.1. im Silvesterurlaub. :-)
Netzzugang in der Zeit ist eher unwahrscheinlich, denk ich.
Waer schoen, wenn ihr das Mud in der Zeit nicht crasht, ich waer beim
naechsten Reboot gerne dabei (abgesehen davon, dass mir das jetzt noch zu
frueh ist. *g*). ;-))

Viele Gruesse,
Zesstra


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



Re: Silvesterurlaub (Humni, 27. Dez 2006, 10:05:56):
~#! rn=Zesstra rt=1166476916 rg=magier.urlaub
~#! tid=1166476916
Komisch, ich bin auch bis zum 3.1. nicht da. Also: Kein Spieler fressender
Drache bis zum 3.1.

Humni
PS: Ab gleich. Genau.

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



Wichtige Geschaeftsreisen ... (Ark,  8. Mar 2007, 21:13:27):
... fuehren mich vom 04.04. bis 22.04. nach Chiang Mai, Sukhotai, Ko Tao, Ko
Samui und Bangkok. Strategische Abschluesse sind zu erwarten. Im MG vertreten
mich souveraen Herr Zook, Herr Rikus, Dr. Zesstra, und der Rest des
Managements. Bitte sehen sie in dieser Zeit von irrelevanten Rueckfragen ab.
In 90% aller Faelle handelt es sich um ein Feature. Repfiles werden nicht
abgearbeitet. Am 23.04. bin ich vielleicht wieder fuer Sie da ... oder auch
nicht.


              *** ARK * the * Magnificent ***


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



Italienische Felsen... (Zook, 30. Mar 2007, 09:29:45):
... werden von mir vom 1. bis 8. April in Finale nieder gekaempft. Z

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



Irgendwo weit draussen im Wendland... (Humni,  8. Apr 2007, 18:07:38):
... werde ich weilen. Und zwar ab Dienstag, den 10.4. bis Sonntag den 15.4.
oder so.

Und Miril auch.

Also sind wir beide nicht vor Ort. In der Zeit werden also keine neuen Gilden
angeschlossen. Haha.

Humni

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



Urlaub (Amaryllis, 27. Apr 2007, 21:24:21):
Hi,

ja, Urlaub. Muss auch mal sein. Insbesondere, wenns noch Resturlaub von 2006
ist und ich seit >1,5 Jahren keinen Urlaub mehr hatte.

Ich feiere also Resturlaub ab und bin deshalb vom 05.05.2007-29.05.2007 nicht
verfuegbar (kann sein, dass ich in der Phase zwischen meinen 2 Wochen
Teneriffa und einer Woche Muenchen mal nen Tag reinschaue).

Lasst das Mud stehen, ich werde fuer Notfaelle nen Kollegen briefen.

Ama*, urlaubsreif.

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



13.6-28.6 in Portugal (Bambulko, 13. Jun 2007, 01:14:24):
siehe Titel...

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



Internet kaputt! (Humni, 14. Jun 2007, 16:47:03):
Hallo!

Bei mir zuhause ist das Internet kaputt - genauer gesagt, das Modem. Darum bni
ich derzeit nur sporadisch hier zu erreichen. Da ich bald umziehe und dort
einen fertigen ANschluss vorfinden werde werde ich mir auch kein neues solches
mehr kaufen.

Nur, dass Ihr Euch nicht wundert.

Ein boeser, schrecklicher Drache, der Euch eh nur gefressen haette.

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



Sommerparty: 21.7. - 29.7. (Zesstra, 19. Jul 2007, 22:07:55):
Huhu,

ich werde ab Sa zur MG-Sommerparty entschwinden und daher nicht im Mud weilen.
Ich wuensch allen, die nicht kommen (*sniff*) viel Spass in der Zeit und ein
stabiles Mud. (waere gut, es in der Zeit nicht zu crashen. *g*)
Sollte irgendwas wirklich dringendes meine Anwesenheit erfordert, haben
sicherlich einige Leute meine Mobiltelefonnr (oder die eines anderen auf der
Party) ich wuerde dann in dem Fall sehen, was ich tun kann, aber ich hoff,
dergleichen ist nicht noetig. ;-)

Viele Gruessem

Zesstra

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



Re: Sommerparty: 21.7. - 29.7. (Amaryllis, 19. Jul 2007, 22:10:36):
~#! rn=Zesstra rt=1184875675 rg=magier.urlaub
~#! tid=1184875675
Ich kann wegen Bereitschaft eh nicht, insofern bin ich eh 24/7 verfuegbar :(

Ama*

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



Bin dann mal weg... (Shakedbeer,  1. Aug 2007, 18:51:56):
...auch wenn ich schon lang nicht mehr da war. :o) Naja. Vielleicht bin ich
nach 3 Wochen Urlaub mal wieder oefter hier.

Datt Schuettelbier

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



Offline (Zook,  1. Aug 2007, 18:57:17):
Ich bin in den ersten zwei September-Wochen voraussichtlich
offline. Z

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



Urlaub (Grimmborn, 16. Aug 2007, 17:37:33):
Von morgen bis Ende des Monats bin ich nicht nur abwesend sondern tatsaechlich
in Urlaub. Macht was draus!

Grimmborn der Atheist

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



Abwesend... (Zesstra, 26. Aug 2007, 11:32:24):
Leider kein Urlaub, aber ich bin die kommende Woche von 28.-1.9. ohne
Netzzugang unterwegs und vermutlich auch morgen schon nicht oder kaum da.

Bis denne und habt Spass ;-)

Zesstra

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



16.09 - 07.10 (Seleven, 15. Sep 2007, 20:10:33):
Da bin icke mal RL auf d.inseln unterwegs.
Seleven

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



Klassenfahrt (Humni, 16. Sep 2007, 20:36:35):
huhu.

Urlaub ists wahrlich nicht. Aber vom 17-22.9. bin ich nicht da.

Humni

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



Weg (Humni,  2. Okt 2007, 00:52:35):
Und nochmal bin ich weg. Vom 3.-7.9. Komische Dinge tun, ihr wollt nicht
wissen, was.

Miril nehm ich mit, die ist dann auch nicht da. Aetsch.

Humni

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



Re: Weg (Humni,  2. Okt 2007, 01:01:18):
~#! rn=Humni rt=1191279155 rg=magier.urlaub
~#! tid=1191279155
Ich ersetze 9 durch 10 (also September durch Oktober). Und nein... die Dinge,
die wir tun, sind zwar komisch. Aber auf was fuer ideen ihr alle kommt, bloss
weil man fuer ein paar Tage wegfaehrt... tss.....

Humni

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



Ich hab Urlaub und ihr nicht... (Ark,  1. Nov 2007, 14:01:19):
Nelson wuerde sagen HAHA ... ich jedenfalls bin vom 08.11. bis 11.11. mal kurz
in Florenz ... muss da mal was nachforschen ... oder so. Hurra!


              *** ARK * the * Magnificent ***


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



Whisky-Tour (Zook,  5. Nov 2007, 10:21:15):
Vom 5. bis 11. November bin ich in Schottland. 

Zook.
.,

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



Paar Tage weg (Grimmborn, 23. Nov 2007, 15:23:43):
~#! on=Amaryllis ot=1195827580 og=bekanntmachungen
s.o.

Ama*

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



Re: Paar Tage weg (Grimmborn, 23. Nov 2007, 15:25:05):
~#! rn=Grimmborn rt=1195827823 rg=magier.urlaub
~#! tid=1195827823
Aufgrund von Rechteproblemen konnte ich den urspruenglichen Artikel leidern
icht loeschen. Aber Abwesenheit von Magiern gehoert tatsaechlich hier hin...

Grimmborn der Atheist

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



Vorankuendigung: Zook im Januar (Zook, 27. Nov 2007, 17:01:13):
Hallo zusammen, im Januar werde ich wenig bis gar nicht online sein
koennen und mich auch um wenige Dinge kuemmern koennen. Die Vertretung
fuer etwaige Themen uebernehmen meine Miterzmagier. Zook.

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



Mal weg ;) (Amaryllis, 10. Dez 2007, 19:48:54):
Hi,

vom 15.12.-29.12. flattere ich nach Teneriffa und bin deshalb
internet-technisch nicht erreichbar. Nein, ich lese auch kein Webmail, das
muss mal sein.

Endlich mal diesem kommerziellen seichten obernervigen Weihnachtsgedudel
entkommen...

Lasst das Mud stehen, die Serververtretung ist auch sporadisch weg.

Ama*

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



Abwesenheit (Grimmborn, 10. Dez 2007, 23:24:10):
Nicht Teneriffa, aber grob die Richtung (ok, ich gebs zu, ich koennte auf
einer unbeschrifteten Weltkarte Teneriffa nicht lokalisieren). Vom 11.12.
abends bis ungefaehr 18.12. morgens bin ich wohl mit eher ohne
Internetanschluss weg. 
Nicht dass das wen interessiert, aber diese Rubrik gibts ja nunmal.

GdA[ex-R] OHdMuBdE  

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



Weihnachts-Xidle... (Zesstra, 17. Dez 2007, 01:14:30):
Huhu,

wieder mal solls leider nicht sein, dass ich ueber Weihnachten im Mud bin,
meine Familie moechte mich sehen. Nur zu schade, dass es dort keinen
Netzzugang gibt, wuerde ja schon gerne zwischendurch vorbeischauen...
D.h. ich bin vom 23.12 bis zum 26.12 nicht hier im Mud anzutreffen.
Ich wuensche euch dann jetzt schonmal angenehme Feiertage, wie auch immer ihr
sie verbringt. ;-)

Viele Gruesse,

Zesstra

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



Eingeschraenkte Verfuegbarkeit bis Maerz (Zesstra,  9. Jan 2008, 22:00:24):
Huhu,

nein, leider kann ich keinen Urlaub machen, im Gegenteil. 
Allerdings werde ich die naechsten Wochen (bis Maerz) nicht so verfuegbar sein
wie bisher, da ich dabei bin, meine Dissertation zuende zu bringen. Ich werde
abends hoffentlich recht regelmaessig anwesend und ansprechbar sein, aber
ansonsten eher nicht.
Bastelarbeiten und Bugfixes meinerseits werden sich auch auf kleinere Sachen
beschraenken, sofern ich das nicht bereits fertig in der Schublade hab.
Wenn ihr nen Problem hat, bei dem euch auch ein anderer (Erz)Magier behilflich
sein kann, faend ichs toll, wenn ihr die zuerst ansprecht, falls nicht, koennt
ihr natuerlich auf mich zurueckkommen (ggf. per Mail). ;-)

Zesstra

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



Pruefungsvorbereitung (Esme, 20. Jan 2008, 18:58:01):
Hallo,
Da ich mich bis 19. Februar auf eine Pruefung vorbereiten muss, bin ich
bis dahin gar nicht bis selten da. Arathorn hat sich bereiterklaert
mich in Notfaellen zu vertreten, wenn es also Probleme gibt, die 
wirklich nicht warten koennen, wendet Euch bitte bis dahin an ihn.

Viele Gruesse,
Esme

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



Umzug (Rumata,  4. Feb 2008, 23:03:46):
...ist kein Urlaub

vom 14.2 bis zum 20.2 werde ich deshalb schwer zu erreichen sein.
Wenn die DSL Bereitstellung wie beim letzten umzug nicht 5 Jahre
dauert, sollte es bei dieser Pause bleiben :-)

Rum**

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



Abwesenheit bis Maerz (Zesstra, 13. Feb 2008, 22:23:12):
Huhu,

da sich mein Dissertations-Stress stetig erhoeht und ich daher momentan
keinerlei Zeit fuer Reboot-Basteleien am Mud eruebrigen kann, verabschiede ich
mich bis zum Maerz.
Es tut mir leid, dass das ausgerechnet jetzt sein muss, aber ich kann es mir
momentan in keinster Weise leisten, mich ablenken zu lassen, auch wenn das
bedeutet, dass die restliche Magierschaft alleine mit den Reboot-Wehwehchen
auskommen muss. Ich hoff, dass da nicht besonders viele Probleme auftauchen.
Leider bedeutet es aber auch, dass ich eine Reihe von Mudlib-Aenderungen nicht
mehr zum Reboot aktivieren/einspielen kann und wir da wohl weiterhin laengere
Zeit drauf verzichten muessen. Tut mir leid.

Viele Gruesse,
Zesstra

Zesstra

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



Nichturlaub (Grimmborn, 15. Feb 2008, 09:05:05):
Auch wenns kein Urlaub ist: vom 22.2. bis 6.3. bin ich zeitlich so weit
verschoben dass das fast sowas wie Abwesenheit ist. 

Grimmborn der Atheist

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



Fast wieder da (Esme, 22. Feb 2008, 11:37:57):
Ich bin im Wesentlichen wieder da, und ab ende naechster Woche
stehe ich dann vollstaendig zur Verfuegung. Also Wuensche,
Beschwerden, etc bzgl. Vland wieder an mich.
Gruss, Esme

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



Re: Abwesenheit bis Maerz (Arathorn, 26. Feb 2008, 20:54:32):
~#! rn=Zesstra rt=1202937792 rg=magier.urlaub
~#! tid=1202937792
Ich wurde gerade von Zesstra darauf hingewiesen, dass der Abgabetermin fuer
die Arbeit auf den 7.3. verschoben wurde/werden musste, und sich daher die
Abwesenheit hier im MG ebenfalls bis dahin verlaengern wird. Nur zur Info
fuer Euch.

Arathorn.

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



Re: Re: Abwesenheit bis Maerz (Gloinson, 26. Feb 2008, 21:22:13):
~#! rn=Arathorn rt=1204055672 rg=magier.urlaub
~#! tid=1202937792
Prima. Bis dahin und mehr (9. Maerz) bin ich mindestens auch ab Samstag
offline, Ich muss dringend Ried (A-6272) und die Gegend inspizieren.


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



Urlaub (Humni, 14. Mar 2008, 22:46:14):
Huhu,

meinereiner (und auch Miril) werden ab Sonntag, dem 16.3. bis Mittwoch, den
26.3., in Urlaub und damit aller drachenweitsichtigen Voraussicht nach, nicht
im Mud sein.

Humni

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



Nicht so richtig da... (Zook, 15. Apr 2008, 09:35:54):
Hallo zusammen, derzeit fehlen mir so die rechten
Moeglichkeiten, oefter im MorgenGrauen anwesend zu
sein. Ich bin allerdings per E-Mail gut erreichbar
und dringende Sachen werden auch von mir bearbeitet.

Zook.

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



Paging  Mr. Ark (Ark, 16. Apr 2008, 23:42:36):
Ja, ich komme schon ... ab 29.04. bis einschliesslich 10.05. muss ich ... aeh
... fuer dringende Geschaefte ... erm ... hmmm ... also kurz und gut, ich bin
wech. Trinken, rumfahren, Schottland begutachten. Vielleicht nicht in dieser
Reihenfolge. Aber auf alle Faelle. Bugs gibts dort hoffentlich nicht :-)


              *** ARK * the * Magnificent ***


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



Immer noch kein Urlaub... (Zesstra, 20. Apr 2008, 22:48:06):
Tach,

ich bin die kommende Woche vermutlich nicht da. Oder wenn, dann nur kurz
reingucken. Ich werde aber keine Zeit haben, mich um irgendwas zu kuemmern.
(Gut, das war die letzten 2 Wochen nicht soo viel anders...)
Ich hoffe, dass ich dann im Mai wieder mehr da bin.

Zesstra

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



Nur halb da (Chagall, 23. Apr 2008, 21:21:10):
Ich habe momentan sehr viel RL-Kram zu erledigen, so dass ich in den naechsten
Tagen/Wochen leider nicht so viel Zeit dem Mud widmen kann, wie ich gerne
moechte. Dringende Sachen (Bugs etc.) also bitte per Mail schicken.

MC

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



6.5 - 21.5 Oesterreich (Bambulko,  2. Mai 2008, 16:49:47):
siehe Titel

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



Nicht online: 4. bis 20. Juli 2008 (Zook, 24. Jun 2008, 11:37:44):
Bin wohl in der Zeit vom 4. bis 20. Juli 2008 eher nicht online. Z

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



Endlich Urlaub... (Zesstra, 15. Jul 2008, 21:12:32):
Huhu,

endlich ist es soweit: ich habe Urlaub. Vom 21. bis zum 3.8. werde ich in
Norddeutschland zelten gehen. Da das bedeutet, ohne Verbindung ins Netz
auszukommen, werde ich dementsprechend nicht anwesend und auch nur schlecht zu
erreichen sein.
Ich hoffe mal auf halbwegs Wetter und auf ein nettes Wacken Open Air am Ende
der 2 Wochen. ;-)

Zesstra

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



Kurzurlaub (Amaryllis, 22. Jul 2008, 21:04:14):
vom 24.07. bis einschliesslich 27.07.

Ama*

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



Nochmal Urlaub (Humni, 30. Jul 2008, 15:40:51):
Miril und ich sind nochmal im Urlaub. Bis Sonntag, 3.8.

Humni

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



Kurzweg (Ark, 10. Aug 2008, 21:18:27):
12.08. - 21.08.
I'LL BE BACK!


              *** ARK * the * Magnificent ***


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



Urlaub (Amaryllis, 27. Aug 2008, 15:38:07):
Hi,

vom 31.08. bis zum 14.09. bin ich im wohlverdienten Jahresurlaub und hier
deshalb nicht zugegen.

Ama*

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



Urlaub (Chagall, 27. Aug 2008, 20:39:32):
Bin vom 12.09 bis 22.09 im Italienurlaub und dort ohne Internetzugang.

MC

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



Frankreisch (Humni, 10. Sep 2008, 20:06:34):
Leider nur dienstlich, aber ich bin vom 15.9. bis 24.9. nicht da. Vielleicht
krieg ich da ja was programmiert, was ihr umhauen koennt, wenn ich
wiederkomme. Oder auch nicht. Versprechen tu ich nix.

Humni

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



Re: Frankreisch (Alkohol, 10. Sep 2008, 20:18:06):
~#! rn=Humni rt=1221069994 rg=magier.urlaub
~#! tid=1221069994
du hast zeit, auf dienstreisen zu programmieren?

Alki

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



Re: Re: Frankreisch (Zesstra, 10. Sep 2008, 20:19:00):
~#! rn=Alkohol rt=1221070686 rg=magier.urlaub
~#! tid=1221069994
Mhmm, arbeitest Du auf Dienstreisen >18h am Tag?

Zesstra

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



Re^3: Frankreisch (Alkohol, 10. Sep 2008, 20:21:23):
~#! rn=Zesstra rt=1221070740 rg=magier.urlaub
~#! tid=1221069994
schlaefst du da nicht?

Alki

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



Re^4: Frankreisch (Zesstra, 10. Sep 2008, 20:25:59):
~#! rn=Alkohol rt=1221070883 rg=magier.urlaub
~#! tid=1221069994
Naja, 6h-8h reichen doch zum Schlafen. IMHO bleibt auch auf Dienstreisen noch
etwas Freizeit ueber, auch wenns mal Ausnahmen gibt. Ob man die nun in der
Hotelbar verbringt oder programmiert... ;-) naja, bei Humni als Lehrer ists
leicht anders, aber ich denke nicht, dass er rund um die Uhr nur Schueler
betreut und schlaeft.

Zesstra

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



Re^5: Frankreisch (Gloinson, 11. Sep 2008, 01:27:36):
~#! rn=Zesstra rt=1221071159 rg=magier.urlaub
~#! tid=1221069994
Filettier la Franze!

Das ist ja clever. Jour du Patrimoine, effektiv Tag des offenen Denkmals ist
naemlich am 20.9./21.9. Und zumindest in Paris lohnt sich das wirklich. Ob sie
anderswo auch so tolle Denkmaeler aufmachen ... bestimmt.


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



weg (Amaryllis, 19. Sep 2008, 21:48:59):
Hi,

ich bin beruflich die ganze naechste Woche (21.09.-26.09.) unterwegs und darum
- wenn ueberhaupt - nur sporadisch anwesend.

Ama*

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



Ihr seid nicht allein ... :-) (Zook, 31. Okt 2008, 12:45:01):
RL-bedingt bin ich die kommenden Wochen sehr wenig online. In allen
Dingen vertritt mich Rumata. Mach Euch auf pflanzliche Vollwillkuer
gefasst! ;) 

Zook.

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



Urlaub (Grimmborn,  4. Nov 2008, 21:19:26):
Tatsaechlich echten Urlaub habe ich, und zwar ab morgen bis zum 17.11. Und
werde eher kaum hier sein. Lasst mir das MG stehen und so!

Grimmborn der Atheist

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



2 Wochen weg (Ark,  2. Dez 2008, 22:00:40):
19.12. - 03.01. ... bevor ich es vergesse.
Cochin, Kerala, India.


              *** ARK * the * Magnificent ***


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



Laengere Abwesenheit (Esme, 14. Dez 2008, 15:49:15):
Da das RL mich momentan zu sehr beansprucht, werde ich bis 
vorraussichtlich Ende Februar im Wesentlichen abwesend sein.
Ark hat sich bereiterklaert mich zu vertreten, sobald er wieder 
da ist.

Vielen Dank,
Esme

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



Langes WE (Amaryllis, 29. Dez 2008, 23:09:20):
Hi,

31.12. - 04.01.2009 (vermutlich) abwesend.

Ama*

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



Kein Urlaub mehr (Gloinson, 18. Jan 2009, 18:55:04):
Schade eigentlich. 4 Wochen Urlaub in 6 Wochen waren schon toll ;)


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



Abwesend (Amaryllis,  4. Feb 2009, 22:45:50):
Hi,

ich brauche aus persoenlichen Gruenden etwas Abstand und werde darum  -
vermutlich bis mind. Ende des Monats - abwesend sein.

Ama*

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



Osterferien ... (Humni, 25. Mar 2009, 19:11:27):
... und Humni und Miril werden vom 4.4. oder so bis zum 16.4. oder so nicht da
sein ....

Lasst das Mud stehen!

Humni

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



Kein Urlaub... (Chagall,  6. Apr 2009, 18:08:14):
...aber ich bin vom 20-25.04 (wenn nix mehr dazwischenkommt) zwecks
Wohnungssuche und Besichtigungen in Berlin.

MC

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



Abwesend (Zook,  7. Apr 2009, 15:13:43):
Ca. von 9. April bis 19. April 2009. Z

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



Re: Kein Urlaub... (Chagall,  8. Apr 2009, 17:20:51):
~#! rn=Chagall rt=1239034094 rg=magier.urlaub
~#! tid=1239034094
Bin nun doch schon vom 19.04-25.04. abwesend.

MC

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



Urlaub bis 24.4. (Gloinson, 17. Apr 2009, 01:03:32):
Franzoesisch, Arabisch, gelber Sand. Vielleicht faellt mir ja was fuer
Djelibeby ein ;)


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



Umzug (Chagall, 26. Mai 2009, 19:01:18):
In der Woche vom 08.06 - 12.06 ziehe ich um, bin also ab da nur sporadisch zu
erreichen. Die beiden drauffolgenden Wochen muss ich von der neuen Wohnung
noch zum alten Arbeitsplatz pendeln und werde deswegen wohl auch nicht allzu
lang anwesend sein.

MC

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



Ergebnisvermarktung... (Zesstra,  6. Jun 2009, 17:41:45):
Moin,

ich bin vom 7.6. bis zum 11.6. fuer meinen Arbeitgeber unterwegs und daher
nicht im Mud anzutreffen.
Bei akuten Problemen betet einfach Zook an. ;-)

Zesstra

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



Auch mal Urlaub (Humni, 30. Jun 2009, 18:09:01):
Meinereiner (und Miril) werden etwa vom 3. bis 13.7. nicht hier sein. Seid
nett zueinander und haut nur die Monster.

Humni

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



Sommerurlaub... 17.7. - 3.8. (Zesstra,  8. Jul 2009, 23:09:04):
Huhu allerseits,

Juchu, ich habe bald Urlaub. :-)
Und zwar werde ich vom 17.7. bis zum 3.8. unterwegs sein und unterwegs wenig
oder keine Gelegenheit zum Einloggen haben.
Achja, wuenscht mir gutes Wetter zum Zelten in den 2,5 Wochen. ;-)

Zesstra

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



Sommerurlaub (Amaryllis, 22. Jul 2009, 22:07:31):
Hi,

vom 25.07.2009-08.08.2009 befinde ich mich im wohlverdienten Sommerurlaub an
Kretas Straenden ;)
Lasst das Mud stehen ;)

Gruss,
Ama*

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



Mit Verlaub ... mein Urlaub ... (Ark,  4. Aug 2009, 02:39:51):
Vom 08.08. bis einschliesslich 15.08. ist die Tankstelle Ark aufgrund von
Urlaubsmassnahmen geschlossen. Tanken Sie bitte bei den Ketten EM, RM oder
einer kleineren Kette Ihrer Wahl.


              *** ARK * the * Magnificent ***


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



Bis 19.8. (Gloinson,  9. Aug 2009, 00:55:27):
... bin ich voraussichtlich offline. Im Falle des Falles des Fehlers in meinem
kleinen Aufgabenbereich werden meine Aenderungen notfalls zurueckgerollt
werden.

Gloin(son)


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



Urlaub (Zook,  7. Sep 2009, 09:39:04):
Bin vom 11. bis 20. September 2009 im Urlaub und ohne Netz. Zook.

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



Kein Urlaub (Humni, 15. Sep 2009, 17:18:34):
Aber Arbeits-Nicht-Da: Diese Woche stressbedingt nur wenig hier, naechste
Woche (21.-25.9.) nicht da.

Berliner fressen.

Humni

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



abwesend... (Amaryllis, 21. Sep 2009, 20:48:49):
...vom 27.09.2009 - 02.10.2009

Denkt dran: Waehlen gehen am 27.09.! Und zwar richtig ;-)

Ama*

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



Re: abwesend... (Chagall, 21. Sep 2009, 20:51:23):
~#! rn=Amaryllis rt=1253558929 rg=magier.urlaub
~#! tid=1253558929
Ja, hat mich auch gewundert. Der CDU-Typ hat nur seine Lakaien losgeschickt
und grinst von nahezu jedem Laternenmast runter. Thierse ist mir bei weitem
nicht so praesent aufgefallen, nur heute, als er seine Flyer verteilt hat.

MC

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



Re: Re: abwesend... (Amaryllis, 21. Sep 2009, 20:53:55):
~#! rn=Chagall rt=1253559083 rg=magier.urlaub
~#! tid=1253558929
Ich habe per Briefwahl gewaehlt. Haette mir vor 20 Jahren nicht vorstellen
koennen, dass ich einmal _so_ waehlen wuerde. Aber die Deppen wollen es ja
nicht anders.

Ama*

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



Urlaub bis 4.1. (Zesstra, 23. Dez 2009, 17:02:03):
Huhu,

ich werde vom 24.12. bis zum 4.1. kaum oder gar nicht im Mud anzutreffen sein,
da ich mich zum groessten Teil an Orten aufhalten werden, wo ich keinen
Netzzugang habe.

Ich wuensch euch ein paar schoene Feiertage und hoffentlich ein paar
Urlaubstage zum Entspannen nach dem Trubel.

Zesstra

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



Re: Urlaub bis 4.1. (Amaryllis, 23. Dez 2009, 21:20:15):
~#! rn=Zesstra rt=1261584123 rg=magier.urlaub
~#! tid=1261584123
Selber huhu,

da ich leider keinen Lastminute-Urlaub zu bezahlbaren Preisen mehr bekommen
habe, werde ich in meinem Urlaub vom 24.12. bis 4.1. oefters anwesend sein, zu
Eurem Leidwesen ;)

Frohes Fest und guten Rutsch von der MG-Serveradministration,
Ama*

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



Urlaub (Chagall, 14. Jan 2010, 17:02:07):
Bin vom 19.01 bis 26.01 auf Gran Canaria.

MC

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



Urlaub (Ark,  8. Mar 2010, 22:28:52):
01.03.10 - 23.03.10 Thailand.
Von Beileidsbekundungen jeglicher Art bitten wir abzusehen.
Fuer Reparaturen wenden Sie sich bitte an die bewaehrten Instanzen.
Nach der Erholperiode stehen wir Ihnen voraussichtlich wieder fit zur
Verfuegung. Wir bitten darum, das MUD pfleglich zu behandeln und besonders
friedlich zu Werke zu gehen. Ausser bei Monstern und NPC. Die muessen weg.
Logisch. Unfriedlich. Haut sie um. Sofort.


              *** ARK * the * Magnificent ***


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



Re: Urlaub (Ark,  8. Mar 2010, 23:22:38):
~#! rn=Ark rt=1268083732 rg=magier.urlaub
~#! tid=1268083732
Okok, Wunsch -> Vater -> Gedanke.
01.04.10 - 23.04.10. Zook hat mich durchschaut :-)


              *** ARK * the * Magnificent ***


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



Urlaub (Humni, 12. Mar 2010, 05:59:48):
Auch ich mache Urlaub. Miril auch.

Grob ab 26.3. bis zur Mudparty.

Humni

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



Re: Urlaub (Zesstra, 15. Mar 2010, 23:43:27):
~#! rn=Humni rt=1268369988 rg=magier.urlaub
~#! tid=1268369988
Ich schliesse mich Miril + Humni an und bin vom 27.3. bis zum 11.4. abwesend.

Zesstra

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



Re: Re: Urlaub (Gloinson, 15. Mar 2010, 23:44:20):
~#! rn=Zesstra rt=1268693007 rg=magier.urlaub
~#! tid=1268369988
Dito. Allerdings vom 17.3. bis zum 28.3. Damit sich das ergaenzt. Probleme im
Klerus bitte an Arkshat melden ;)


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



Urlaub (Amaryllis, 16. Mar 2010, 21:14:25):
Vor dem neuen Job gehts erstmal nochmal in Urlaub: 30.03.-13.04. - Mallorca

Ama*

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



Abwesend 30. Mai bis 6. Juni (Zook, 27. Mai 2010, 10:08:45):
Vom 30. Mai bis 6. Juni bin ich abwesend. Zook.

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



Ab morgen... (Humni,  2. Jun 2010, 21:58:12):
.. bin ich bis Sonntag weg. Waere vermutlich eh nicht aufgefallen, aber ich tu
das mal kund. Also, bis Sonntag, 6.6., hab ich wohl kein Internet.

Humni

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



Re: Ab morgen... (Gwen,  2. Jun 2010, 22:13:46):
~#! rn=Humni rt=1275508692 rg=magier.urlaub
~#! tid=1275508692
Faehrst Du auch nach Marburg? ;)
Gwen.

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



Re: Re: Ab morgen... (Humni,  2. Jun 2010, 22:17:29):
~#! rn=Gwen rt=1275509626 rg=magier.urlaub
~#! tid=1275508692
Nein. Nach Belgien.

Humni
PS: Miril nehm ich auch mit. Die ist dann auch nicht hier.

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



Re^3: Ab morgen... (Gwen,  2. Jun 2010, 22:24:37):
~#! rn=Humni rt=1275509849 rg=magier.urlaub
~#! tid=1275508692
Wenn Du nur keinen Internetanschluss haben willst,
reicht es aber, einfach nach Marburg zu fahren.
Hat das letzte Wochenende gezeigt.
Gwen.
PS: Hatte schon ueberrlegt, ob Zook darum so selten im MG war...

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



Re^4: Ab morgen... (Humni,  2. Jun 2010, 22:28:15):
~#! rn=Gwen rt=1275510277 rg=magier.urlaub
~#! tid=1275508692
Oh, cool. Nein, ich fahre nach Belgien, da gibts sicher Internet, aber
vermutlich nicht fuer mich.

Humni

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



Re: Re: Ab morgen... (Zook,  5. Jun 2010, 11:05:34):
~#! rn=Gwen rt=1275509626 rg=magier.urlaub
~#! tid=1275508692
wieso marburg?

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



Urlaub fuer fleissige Bienen (Ark, 29. Jun 2010, 00:13:07):
Deshalb eine Woche Urlaub: 09.07. - 16.07. incl.
Nicht Malle, sondern Mallorca. Sportlich betaetigen und so.


              *** ARK * the * Magnificent ***


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



Zesstras Sommerurlaub ;-) (Zesstra,  9. Jul 2010, 00:26:20):
Huhu allerseits,

auch fuer mich zeichnet sich der Sommerurlaub ab... Ich hoffe (mal wieder) in
diesem nen bisschen am MG basteln zu koennen.
Zunaechst einmal werde ich jedoch abwesend sein und zwar vom
24.7. bis zum 14.8.
Wer nach Brieselang kommt, kann mich dort treffen, ansonsten wuensch ich euch
schoene Sommerwochen in der Zeit. ;-)

Zesstra

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



auch weg (Gabylon, 18. Jul 2010, 12:19:37):
... und zwar eine ganze woche lang.

gab

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



Sommer (Zook, 22. Jul 2010, 11:10:45):
Ich bin vom 29. Juli bis 15. August 2010 weitgehend internetlos.

Viele Gruesse, Zook.

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



Auch Urlaub (Humni, 22. Jul 2010, 12:02:20):
Nach der Mudparty, bei der ich auch die ganze Woche sein werde, bin ich
nochmal vermutlich fuer eine Woche weg. (Und Miril wohl auch). Reinschauen ist
wenn sehr sporadisch.

Humni

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



Re: Auch Urlaub (Ark, 22. Jul 2010, 15:52:17):
~#! rn=Humni rt=1279792940 rg=magier.urlaub
~#! tid=1279792940
Wenn ihr glaubt, ich bin der Hausmann hier, dann ... :)


              *** ARK * the * Magnificent ***


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



Re: Re: Auch Urlaub (Zesstra, 22. Jul 2010, 15:53:14):
~#! rn=Ark rt=1279806737 rg=magier.urlaub
~#! tid=1279792940
Sicher doch, Du musst die Baustellen aufkehren, die wir hinterlassen.

Zesstra

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



Re^3: Auch Urlaub (Ark, 22. Jul 2010, 20:41:35):
~#! rn=Zesstra rt=1279806794 rg=magier.urlaub
~#! tid=1279792940
Crash oleeeee :)


              *** ARK * the * Magnificent ***


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



Re^4: Auch Urlaub (Shakedbeer, 24. Jul 2010, 14:53:52):
~#! rn=Ark rt=1279824095 rg=magier.urlaub
~#! tid=1279792940
Hi!

Bin genauso fuer zwei Wochen weg.

Shaky.

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



Nochmal kurz weg (Ark,  9. Aug 2010, 19:22:06):
15.09. - 22.09.
Definitiv dort kein Netz :-)


              *** ARK * the * Magnificent ***


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



Re: Nochmal kurz weg (Gwen,  9. Aug 2010, 19:23:08):
~#! rn=Ark rt=1281374526 rg=magier.urlaub
~#! tid=1281374526
Das heisst, Du faehrst nicht in ein Fischerdorf.
Gwen.

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



Re: Nochmal kurz weg (Ark, 20. Sep 2010, 14:49:50):
~#! rn=Ark rt=1281374526 rg=magier.urlaub
~#! tid=1281374526
Da man gemerkt haben duerfte, dass ich noch anwesend bin, folgende Erklaerung:
Ark musste verschieben in die erste Oktoberwoche ... abwesend 03.10. - 10.10.
Auf Sizilien mag es vielleicht Netz geben, und man braucht kein Visum ...
trotzdem bin ich da weg. Total. Macht-was-ihr-wollt-weg sozusagen :-)


              *** ARK * the * Magnificent ***


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



... (Gloinson,  7. Nov 2010, 02:58:29):
Zurueck aus unangekuendigtem Urlaub.


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



Re: ... (Zook,  9. Nov 2010, 11:21:46):
~#! rn=Gloinson rt=1289095109 rg=magier.urlaub
~#! tid=1289095109
War es denn schoen?
Zook.

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



Re: Re: ... (Gloinson,  9. Nov 2010, 11:30:18):
~#! rn=Zook rt=1289298106 rg=magier.urlaub
~#! tid=1289095109
Ja. Gran Canaria ist eine grossartige Insel mit allen Klimazonen auf 40km
Durchmesser und wir werden da wohl auch immer mal wieder hinfinden.


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



Silvesterurlaub (Zesstra, 26. Dez 2010, 12:20:47):
Oh, ganz vergessen, meinen Urlaub anzukuendigen...
Ich bin vom 26.12. bis zum 3.1. im Urlaub und allenfalls sporadisch anwesend.

Alles Gute fuers naechste Jahr!

Zesstra

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



Kein Urlaub, aber trotzdem abwesend (Chagall, 28. Dez 2010, 09:27:27):
Huhu,

aufgrund einer Fortbildungsmassnahme bin ich vom 23.01.2011 bis 24.01.2011 nur
sporadisch da (wenn ueberhaupt).

MC

PS: Ich will nicht nach Wiesbaden *jammer*

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



Urlaub klein (keine Nachfolgequest von Teleport gross!) (Ark,  4. Feb 2011, 23:03:16):
Vom 14.02. bis 21.02. in Barcelona. Lasst das MUD stehen :-)


              *** ARK * the * Magnificent ***


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



Kein Urlaub... (Humni, 27. Feb 2011, 13:09:11):
...aber die naechsten Wochen bis zum 22.3. evtl. erstmal weniger Anwesenheit
von mir hier. Man sollte nicht "aus Scheiss" ein Zweitstudium anfangen, wenn
man auf einmal die Pruefungen vor der Nase hat.

Und Vorankuendigung: Urlaub 17. bis 27.4.

Humni

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



Urlaub: 17.4. bis 27.4. (Zesstra, 11. Apr 2011, 21:59:50):
Huhu,

ich werde in der o.g. Zeit einen hoffentlich entspannenden
Pen&Paper-Rollenspiel-Urlaub machen. Kann sein, dass ich zwischendurch mal
reingucke, werde aber groesstenteils weg sein. Bei dringenden Problemen
(wehe!) haben div. Leute ja meine Telefonnr. ;-)

Zesstra

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



Re: Urlaub: 17.4. bis 27.4. (Humni, 13. Apr 2011, 21:38:27):
~#! rn=Zesstra rt=1302551990 rg=magier.urlaub
~#! tid=1302551990
Huhu,

ich werde auch nicht da sein. Im selben Zeitraum. Miril auch nicht.

Humni

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



Abwesend vom 22. April bis 2. Mai (Zook, 20. Apr 2011, 11:14:01):
Zook.

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



Urlaub: 2.8. bis 22.8. (Zesstra, 24. Jul 2011, 21:36:20):
Huhu allerseits,

ich werde am 2.8. mein Zelt packen und 3 Wochen lang unterwegs sein. D.h.
zwischen 2. und 22.8. muesst ihr ohne mich auskommen. Aber das schafft ihr
bestimmt! :-)

Zesstra

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



Urlaub: 12.8. bis 22.8. (Zook, 24. Jul 2011, 21:37:49):
Ich habe nicht ganz so viel Urlaub wie Zesstra, packe am 12.8. aber auch
mein Zelt und bin dann fuer Euch nicht zu erreichen. Ich weiss, schwere
Zeit, aber ich bin sicher, Ihr kommt damit zurecht!

Zook.

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



Urlaub: Ab 2.8. bis nach der Mudparty (Humni, 27. Jul 2011, 19:55:03):
Bei mir gilt analoges zu Zesstra. Bis dahin verspreche ich aber, die Ferien zu
nutzen, um oefter (ja, oefter!) da zu sein und neue Dinge zu bauen. Oder
andere zu reparieren.

Humni

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



Lissabon + Algarve, 13.08.-28.08. (Ark,  3. Aug 2011, 22:55:53):
Mal schaun, ob da verlaesslicher Sonne scheint als hier. See ya.


              *** ARK * the * Magnificent ***


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



Urlaub vom Urlaub (Gloinson, 21. Aug 2011, 21:15:13):
... bis 29. August verreist, daher sedimentieren alle guten und schlechten
Ideen bei mir, so dass dann nichts mehr zu sehen sein wird ;)


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



Sylvesterurlaub 2011... (Zesstra, 28. Dez 2011, 11:36:39):
Ganz vergessen...
Ich bin vom 28.12. bis 7.1. in Urlaub und bin allenfalls mal zwischendurch da.
(Aber vielleicht finde ich da ja mal Zeit, wieder was zu basteln.)
In dringenden Faellen (Crash oder so) haben einige Leute meine Telefonnr. und
ich schau dann, was ich machen kann.

Zesstra

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



Re: Sylvesterurlaub 2011... (Zook, 28. Dez 2011, 15:51:04):
~#! rn=Zesstra rt=1325068599 rg=magier.urlaub
~#! tid=1325068599
Ich werde wohl immer mal hinein sehen; meine Kontaktdaten 
sind zum Teil ja auch verbreitet. Also sollte alles im
administrativen Wuergegriff sein.
Zook

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



Caldra und Gloinson machen Urlaub bis 28.01. (Caldra, 15. Jan 2012, 20:37:10):
Urlaub im Schnee fuer eine Woche. Leider wird Gloinson nach dem Urlaub fuer
mindestens eine Woche erschoepft sein und Caldra einen Unfall haben, der ihn
eine Woche lang an ein internetloses Bett fesselt. Daher zwei Wochen.

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



Re: Caldra und Gloinson machen Urlaub bis 28.01. (Zook, 15. Jan 2012, 20:40:34):
~#! rn=Caldra rt=1326656230 rg=magier.urlaub
~#! tid=1326656230
Gute Genesung!
Zook.

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



Ausflug Thailand (Ark, 14. Feb 2012, 17:46:45):
Da mein Freund jetzt nach 8 Jahren mal endlich in die Poette kommt, bin ich
hochzeitsbedingt nicht da ... und ich muss auch noch ne Rede halten ... gut,
dass mein Thai nicht vorhanden ist :-) Achja, 6.3.-15.3.
Immerhin krieg ich schon > 30 Grad und ihr nicht ;)


              *** ARK * the * Magnificent ***


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



Ausflug vorbei (Gloinson, 18. Feb 2012, 18:40:54):
... und wieder da. Tenar ist schuld.


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



Nur kurz... (Humni,  8. Mar 2012, 20:02:12):
.. und normalerweise melde ich mich fuer solche Zeitraeume nicht ab, aber ich
bin ab heute bis nach dem Wochenende (vermutlich bis mindestens Dienstag)
nicht da.

Kann auch noch ein, zwei Tage laenger sein, ist gerade nicht ganz sicher.

Humni

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



Mal wech... (Humni, 22. Mar 2012, 16:12:16):
Huhu,

Miril und ich werden Anfang April (so richtig ab dem 1.4. - kein Witz, haha)
fuer 10 Tage verschwinden. Kann aber sogar sein, dass wir da Internet haben,
aber ob man Zeit zum Reinschauen findet - mal sehen.

Ansonsten verkuende ich nur mal, dass ich Klausurstressbedingt bis naechste
Woche Freitag (jaja, das ist direkt davor, ich weiss) gepaart mit
Arbeitsstress erstmal hier evtl. auch idle bzw. wenig da bin.

Humni

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



Re: Mal wech... (Zesstra, 27. Mar 2012, 20:03:48):
~#! rn=Humni rt=1332429136 rg=magier.urlaub
~#! tid=1332429136
Ich habe ueber Ostern auch Urlaub und werde definitiv vom 5.4. bis zum 11.4.
nicht da sein.

Zesstra

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



Umzugsurlaub... 15.-19.5. (Zesstra, 13. Mai 2012, 23:25:42):
Leider kein Urlaub, sondern ich ziehe in der zweiten Wochenhaelfte um. Von
Dienstag bis Samstag (evtl. auch Sonntag) werde ich wohl nicht hier sein und
groesstenteils auch ohne Zugang zum Mudrechner.

Zesstra

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



Urlaub 6.-10.6. (Humni,  5. Jun 2012, 18:47:26):
Miril und ich werden vom 6. bis zum 10.6. im Urlaub und damit nicht im Mud
anwesend sein.

Ein Drache

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



Urlaub vom 15.06 - 04.07 (Chagall,  5. Jun 2012, 18:52:43):
Huhu,

in der Zeit zwischen 15.06 und 04.07 bin ich im Urlaub. Wahrscheinlich sogar
ohne geregelten Internetzugang.

MC

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



wech... (Gabylon, 19. Jun 2012, 23:33:08):
... ab morgen fuer 10 tage. so richtig ohne technik und so.
lasst das struv stehen! :)

gab

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



Mal weg fuer 2 Wochen. (Ark, 24. Jun 2012, 21:39:03):
Vom 1.7. bis einschliesslich 15.7.
Lasst alles stehen :-)


              *** ARK * the * Magnificent ***


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



Urlaub (Zook, 25. Jun 2012, 07:02:58):
17.7. bis 24.7. im Urlaub; leider kann ich nicht zur Party
kommen. 

Seid brav.

Zook

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



Urlaub 28.7. - 13.8. (Zesstra, 27. Jul 2012, 23:07:07):
Huhu,

ich habe es tatsaechlich entgegen vieler Befuerchtungen geschafft, Urlaub zu
bekommen und auch noch ziemlich gut gelegen. D.h. ich bin ab morgen bis zum
13.8. abwesend und ohne Computer+Netz...
Also passt gut aufs Morgengrauen auf!

Zesstra

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



Re: Urlaub 28.7. - 13.8. (Amaryllis, 28. Jul 2012, 20:25:44):
~#! rn=Zesstra rt=1343423227 rg=magier.urlaub
~#! tid=1343423227
Ich bin ja auch noch da.

Gruss,
Ama*

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



Weg vom 31.07.-06.08.2012 (Arathorn, 31. Jul 2012, 14:03:21):
Wacken! Bis naechste Woche! :-)

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



Re: Weg vom 31.07.-06.08.2012 (Zook, 31. Jul 2012, 15:34:41):
~#! rn=Arathorn rt=1343736201 rg=magier.urlaub
~#! tid=1343736201
Wenn Du wieder aus dem Matsch aufgetaucht bist?

Zook

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



Urlaub 06.-12.08. (Bugfix,  5. Aug 2012, 19:03:56):
Moin,

Im genannten Zeitraum werde ich wenn ueberhaupt dann nur sporadisch anwesend
sein. Lasst die Gilde stehen.

BF

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



Re: Re: Weg vom 31.07.-06.08.2012 (Gwen,  6. Aug 2012, 00:18:32):
~#! rn=Zook rt=1343741681 rg=magier.urlaub
~#! tid=1343736201
Auftauchen ist das richtige Wort...
...bin auch wieder aufgetaucht.
Gwen.

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



Urlaub 12.08. bis 19.08. (Caldra, 11. Aug 2012, 13:37:54):
ich bin dann mal die Sonne geniessen!
Lasst Polar und Fiebersumpf heile!

Caldra

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



Ab auf die Insel ... (Zook,  5. Sep 2012, 10:51:24):
~#! on=Zook ot=1346834245 og=magier.schmarrn
... vom 20. bis 29. September 2012. Ja, auch 2 Tage
zum arbeiten, Rest ist Urlaub. Anwesenheit hier wird
gegen 0 gehen. Wenn Ihr was kaputt macht, muesst Ihr Euch 
eben die anderen EM+ greifen! ;) *G* 

Zook verteilt Besen zum Aufraeumen.

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



Kein Urlaub... (Humni, 12. Sep 2012, 22:12:44):
aber gerade ein wenig Stress, Arbeit und nebenbei noch anderer Kram.

Denke, ab Oktober habe ich ein wenig mehr Zeit.

Humni

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



Nicht da vom 14.-16.09.2012 (Arathorn, 14. Sep 2012, 01:10:26):
Moin,

siehe Subject. Spielefeld ruft. ;-)

A*n.

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



09.12. - 23.12. (Gloinson,  6. Dez 2012, 06:17:06):
Ziemlich wahrscheinlich ohne Netz, noch wahrscheinlicher ohne Motivation mich
an einen Rechner zu setzen.

Frohes verflucht und vergiftet sein! ;)


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



Re: 09.12. - 23.12. (Gloinson,  8. Dez 2012, 21:12:46):
~#! rn=Gloinson rt=1354771026 rg=magier.urlaub
~#! tid=1354771026
Streicht das.


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



Frohe Weihnachtstag! (Zook, 22. Dez 2012, 12:32:30):
Ich wuensche Euch allen frohe Weihnachtstage, ich entschwinde mal
ein wenig in die Tour der Feiern. 

Euch allen, Spielen und Magiern, danke ich fuer die vielen 
schoenen Stunden hier im MorgenGrauen. Und ich freue mich
auf ein ereignisreiches Jahr 2013!

Viele Gruesse, Zook

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



Urlaub 23.12. - 4.1. (Zesstra, 22. Dez 2012, 14:21:30):
Huhu,

ich bin jetzt auch ein bisschen im Urlaub. Zuerst Familienbesuche und so und
dann der Silvesterurlaub.
Ich werde ueber Weihnachten vermutlich am reinschauen, aber eher nur kurz.
Also, zusammenfassend: vom 23.12. bis 4.1. bin ich im wesentlichen weg.

Ich wuensche euch ein paar erholsame Tage und schon jetzt ein grandioses 2013!

Zesstra

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



Abwesend 3 Wochen (Ark,  3. Jan 2013, 18:10:00):
Thailand die vierte. Chiang Mai, Chiang Rai, Khmer Ruinen Suedosten (dies aber
noch Plan). Essen. Sonne. Relax&Enjoy.
Zeit: 19.01.-10.02.2013.
Have fun.
No bug here.


              *** ARK * the * Magnificent ***


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



Potentiell 11.Jan - 19.Jan (Gloinson, 10. Jan 2013, 18:06:22):
Skidingsbums. Unklar, ob Wifi. Besser waer, wenn nicht.

Wenn kein Wifi, dann ist auch Caldra nicht da. Aetsch!


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



Re: Potentiell 11.Jan - 19.Jan (Zook, 12. Jan 2013, 18:47:29):
~#! rn=Gloinson rt=1357837582 rg=magier.urlaub
~#! tid=1357837582
Kommt gesund wieder!
Zook

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



Re: Re: Potentiell 11.Jan - 19.Jan (Gloinson, 14. Jan 2013, 21:13:18):
~#! rn=Zook rt=1358012849 rg=magier.urlaub
~#! tid=1357837582
Hmja. Danke. Caldra ist ab jetzt nicht mehr zu trauen, der hat heute
ordentlich einen vor den Kopp bekommen. Seine Story dazu ist langweilig, meine
viel cooler, jedenfalls ist er wie ein gefaellter Baum umgekippt.

(Nix passiert, er ist genauso gaga wie vorher dank Helm.)


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



Urlaub 10.02. - 24.02. (Gloinson,  9. Feb 2013, 12:22:22):
Genau das.


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



Osterurlaub 25.3. bis 4.4. (Humni, 17. Mar 2013, 22:26:53):
Huhu,

meinereiner (und noch ein paar Leute) werden wohl vom 25.3. bis 4.4. in Urlaub
sein. Es gibt vor Ort wohl ein WLAN, aber das ist wohl laut Aussage der
Veranwortlichen nicht der Bringer. Rechnet also evtl. mit Abwesenheit.

Humni

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



Re: Osterurlaub 25.3. bis 4.4. (Zesstra, 22. Mar 2013, 19:20:04):
~#! rn=Humni rt=1363555613 rg=magier.urlaub
~#! tid=1363555613
Ich schliesse mich Humni an, d.h. auch ich werde in der Zeit vom 24.3. bis
zumindest 3.4. hier kaum anwesend sein.

Zesstra

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



Osterurlaub (Zook, 23. Mar 2013, 12:20:14):
Ich bin direkt ueber die Osterfeiertage nicht oft online,
dann vom 6. bis 13. April auch noch mal im Urlaub (bisschen
nach Ostern, aber man will ja nicht mit den ganzen "Ich muss
aber in den Schulferien fahren"-Leuten im Hotel herumhaengen.

Zook

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



Re: Re: Osterurlaub 25.3. bis 4.4. (Arathorn, 24. Mar 2013, 13:28:11):
~#! rn=Zesstra rt=1363976404 rg=magier.urlaub
~#! tid=1363555613
Dem schliesse ich mich ebenfalls an. Vielleicht gibts da Netz, aber selbst
wenn, werd ich das vermutlich nicht besonders intensiv nutzen.

Bis die Tage.
Arathorn.

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



Re^3: Osterurlaub 25.3. bis 4.4. (Zook, 24. Mar 2013, 13:34:03):
~#! rn=Arathorn rt=1364128091 rg=magier.urlaub
~#! tid=1363555613
Jaja, lasst mich nur allein!
Zook
,.
,

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



Urlaub 18.06 - 01.07. (Chagall, 12. Jun 2013, 21:26:07):
Huhu,

vom 18.06 bis 01.07 bin ich irgendwo in einem abgelegenen Ort an der
Adriakueste.

MC


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



Re: Urlaub 18.06 - 01.07. (Ark, 12. Jun 2013, 21:52:28):
~#! rn=Chagall rt=1371065167 rg=magier.urlaub
~#! tid=1371065167
Luxus! Ich hab erst August Uchlaup. (*mecker*)


              *** ARK * the * Magnificent ***


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



Urlaub 16.06.-28.06. (Arbeitsurlaub) (Gloinson, 12. Jun 2013, 22:50:33):
Deutschlandurlaub. Da eine Haelfte davon mit Caldra und Tenar bestritten wird,
koennte Anwesenheit und Aktivitaet gar gesteigert sein. Saemtliche Projekte
sofort bei Caldra zum Review vorlegen ... ;)


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



Slainthe math! (Ark,  9. Jul 2013, 23:12:04):
Vom 01.08. bis incl. 10.08. bin ich im Lande Lagavulins, Laphroaigs,
Cragganmores, Taliskers und Bowmores. Highland Games, Edinburgh, Blair Atholl
(da wohnen wir in der Naehe). Wind, Wetter, Sonne?! Seeluft, Wandern, Essen,
Sauf^H^H^H^HGeniessen. Kaminabende. Spiele. You get it :-)


              *** ARK * the * Magnificent ***


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



Sommerurlaub... (Zesstra, 10. Jul 2013, 23:23:27):
Huhu,

bei mir zeichnet sich jetzt auch der Sommerurlaub ab.
Dieses Mal schaff ich es sogar wieder zur Morgengrauen-Party-Campingwoche!
Yeay! (Freu mich, ein paar neue Gesichter zum Zelten zu sehen.)
Insgesamt bin ich vom 19.7. bis 5.8. unterwegs und ziemlich sicher nicht
online.

Zesstra

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



Mudparty (22.7.-28.7.) (Bugfix, 21. Jul 2013, 15:18:41):
Dann mach ich mal den Anfang. Vom 22.7.-28.7. werde ich in Hattingen auf der 
Mudparty und somit eher wenig bis garnicht im MG sein.

Macht nix kaputt wo ich zustaendig bin. ;-)

BF

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



Re: Mudparty (22.7.-28.7.) (Zook, 21. Jul 2013, 19:48:22):
~#! rn=Bugfix rt=1374412721 rg=magier.urlaub
~#! tid=1374412721
Ich schliesse mich da an.

Zook

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



Re: Re: Mudparty (22.7.-28.7.) (Humni, 22. Jul 2013, 02:51:34):
~#! rn=Zook rt=1374428902 rg=magier.urlaub
~#! tid=1374412721
Ich auch! Ich auch!

Humni
PS: Miril auch.

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



Kein Urlaub (Chagall, 29. Aug 2013, 09:46:00):
Huhu,

vom 06.10. bis 11.10.2013 bin ich auf einer Schulung in Muenchen und deshalb
wohl nur sporadisch hier.

MC

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



Unterwegs... (Zook, 11. Sep 2013, 17:42:44):
Ich bin bis zum 30. September recht viel dienstlich und so unterwegs
und habe nur bedingt Internet. Lasst alles stehen und seid lieb zu
den Erzmagiern.

Und den anderen.

Und untereinander.

Zook.

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



Urlaub bis 4.1. (Zesstra, 22. Dez 2013, 01:19:32):
Huhu,

ich bin jetzt bis zum 4.1. nur unregelmaessig/wenig/gar nicht online. Zuerst
die ueblichen Familienbesuche ueber Weihnachten und dann eine gemeinsame
Urlaubswoche mit diversen Muddern. :-)
Wenn was ist: eMail an mich und/oder Telefon (Nummer ist ja einigen bekannt.)
Ich wuensch euch moeglichst viel Ruhe waehrend der Feiertage und nen schoenes
2014 sofern wir uns nicht mehr bis dahin sprechen/sehen!

Zesstra

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



Re: Urlaub bis 4.1. (Humni, 22. Dez 2013, 10:50:51):
~#! rn=Zesstra rt=1387671572 rg=magier.urlaub
~#! tid=1387671572
Ich schliesse mich.. aeh.. an. Auch wenn ich ab und an sicher da sein werde.

Humni

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



Re: Re: Urlaub bis 4.1. (Bugfix, 23. Dez 2013, 09:29:01):
~#! rn=Humni rt=1387705851 rg=magier.urlaub
~#! tid=1387671572
Schliesse mich ebenfalls an, werd aber, wie Humni, sicher ab und an anwesend
sein.

BF

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



Re^3: Urlaub bis 4.1. (Zook, 23. Dez 2013, 09:47:48):
~#! rn=Bugfix rt=1387787341 rg=magier.urlaub
~#! tid=1387671572
Ich reihe mich auch ein, bin aber vll. schon einen Tag frueher 
wieder da und unterwegs immer mal on.

Zook

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



Re^4: Urlaub bis 4.1. (Ark, 23. Dez 2013, 16:32:51):
~#! rn=Zook rt=1387788468 rg=magier.urlaub
~#! tid=1387671572
Ich mach auch irgendwas und sag mal, dass ich Urlaub habe, ich bin mal da und
mal nicht. So. Damit habe ich nun auch etwas zur allgemeinen Ratlosigkeit
beigetragen. Ich wuensche allen Frohe Weihnachten und einen Guten Rutsch ins
Neue Jahr 2014 (diesmal auch wieder ohna die Maya, eh alles ein furchtbares
Missverstaendnis) (Anmerkung: der Weihnachtswunsch war wohl der einzige
gehaltliche Beitrag dieses Postings). Dann haut mal rein.


              *** ARK * the * Magnificent ***


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



Re^3: Urlaub bis 4.1. (Arathorn, 27. Dez 2013, 14:45:43):
~#! rn=Bugfix rt=1387787341 rg=magier.urlaub
~#! tid=1387671572
Ich schliess mich da auch mal an. Spaetestens am 4.1. wieder am Start.

Arathorn.

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



Weg bis 16.2. (Gloinson,  1. Feb 2014, 16:34:16):
Alle Bugs, die in der Zwischenzeit auftreten gehoeren den Goettern (*1).

Gloin(son)

(*1) Den Erzmagiern natuerlich auch. Aetsch.


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



Urlaub 298.02.-23.03. (Ark, 10. Feb 2014, 19:56:35):
Ich bin da dann mal weg, da duerft ihr andere aergern. Ich mach Bildungsreise
auf den Spuren der Khmer im Isaan (NO Thailand) und der Mon und Pyu (Myanmar).
Und kurz Spass Stopover in Bangkok. Muss sein. Gehaben sie ich wohl :D


              *** ARK * the * Magnificent ***


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



Urlaub und anderes (Humni, 18. Mar 2014, 18:30:45):
Huhu,

ich bin ueber Ostern im Urlaub, aber evtl. von da aus doch wieder ab und an
auch mal hier, vom 14.-23.4.

Und gerade staut sich bei mir einiges an Arbeit und Terminen, was ein wenig
mehr Abwesenheit, als ich gerne haette, nach sich zieht. Ich werde aber
versuchen, immer mal hier zu sein. Hat sich hoffentlich in ein oder zwei
Wochen erledigt.

Humni

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



Off vom 22. bis 29. Maerz 2014 (Zook, 21. Mar 2014, 10:05:12):

Ich bin vom 22. bis 29. Maerz eher offline. Ja, es ist Urlaub und
ja, wenn Ihr neidisch sein wollt, Ihr duerft es gerne sein.

Zook

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



Re: Off vom 22. bis 29. Maerz 2014 (Zook, 21. Mar 2014, 10:05:30):
~#! rn=Zook rt=1395392712 rg=magier.urlaub
~#! tid=1395392712
Ach ja, macht nix kaputt!

Zook

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



Re: Re: Off vom 22. bis 29. Maerz 2014 (Vanion, 22. Mar 2014, 22:51:07):
~#! rn=Zook rt=1395392730 rg=magier.urlaub
~#! tid=1395392712
Das sagst Du immer.

V*

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



Re^3: Off vom 22. bis 29. Maerz 2014 (Zook,  1. Apr 2014, 08:56:13):
~#! rn=Vanion rt=1395525067 rg=magier.urlaub
~#! tid=1395392712
Und hat wieder mal geklappt!
Zook

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



Re^4: Off vom 22. bis 29. Maerz 2014 (Gloinson,  1. Apr 2014, 10:26:09):
~#! rn=Zook rt=1396335373 rg=magier.urlaub
~#! tid=1395392712
Jetzt also wieder fit fuer die Tour de Hattingen?


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



Abwesend 11.4. bis 22.4. (Zesstra,  9. Apr 2014, 22:35:25):
Huhu,

ich bin vom 11.4. bis zum 22.4. wenig bis gar nicht da. Ich fahr naemlich in
Urlaub. ;-)
Im Falle dringender Faelle kennen div. EMs und Spieler meine Kontaktdaten...

Zesstra

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



03.08 - 19.08 (Chagall, 11. Apr 2014, 19:18:47):
Ist zwar noch eine ganze Weile, aber im Zeitraum vom 03.08 bis 19.08 lasse ihc
mich die Sonne von Florida auf mein Haupt scheinen.

MC

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



17.-28. April (Gloinson, 15. Apr 2014, 00:07:20):
Nicht offiziell da. Saemtliche Bugs des Klerus werden also auf die Zeit
gelegt, damit die EMs was zum Fixen haben.


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



Weg und offline 28.5. - 1.6. (Zesstra, 27. Mai 2014, 21:48:17):
Ich bin mal ein paar Tage (s.o.) Zelten... Und Musik hoeren... ;-)

Zesstra

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



Urlaub... 19.7. bis 3.8. (Zesstra, 15. Jul 2014, 23:37:16):
Huhu allerseits,

ich werde vom 19.7. bis zum 3.8. in Urlaub sein.
Anfangs beim MG-Zelten (da bin ich evtl. sporadisch mal da), die zweite Woche
eher gar nicht.
Ich denke, das Mud laeuft auch ohne mich weiter.
In dringenden Notfaellen haben die EMs und auch einige andere Leute
Kontaktdaten.

Zesstra

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



Mudparty (Bugfix, 20. Jul 2014, 23:32:00):
Moin,

Wegen Mudparty bin ich bis zum 27.7. wenn ueberhaupt dann nur sporadisch
online.

BF

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



Urlaub 03.08. - 19.08. (Chagall, 26. Jul 2014, 13:31:06):
Nur als Erinnerung, vom 03.08 bis 19.08 lasse ich mir die Floridasonne auf
mein Haupt scheinen.

MC

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



Re: Urlaub... 19.7. bis 3.8. (Arathorn, 29. Jul 2014, 16:18:55):
~#! rn=Zesstra rt=1405460236 rg=magier.urlaub
~#! tid=1405460236
Bin dann auch mal weg (29.7.-3.8.), Erreichbarkeit aehnlich wie Zesstras
in dem Zeitraum. ;-)

Lasst das Mud heile.

Gruss, Arathorn.

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



Urlaub, 09.08.-16.08. (Bugfix,  8. Aug 2014, 17:14:26):
Moin,

Im genannten Zeitraum werde ich mich, ohne verfuegbaren Internetanschluss, im
Urlaub befinden und somit nicht im Mud anwesend sein.

BF

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



Nochmal weg... (Humni,  9. Aug 2014, 21:19:34):
Miril und Humni sind vermutlich nochmal vom 10. bis 12. oder 13.8. in
Kurzurlaub.

Bis dann!

Humni

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



Re: Nochmal weg... (Ark,  9. Aug 2014, 21:47:00):
~#! rn=Humni rt=1407611974 rg=magier.urlaub
~#! tid=1407611974
Ey voll die freizeitorientierte Magierei hier, was soll das noch werden hier?
:)


              *** ARK * the * Magnificent ***


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



Re: Nochmal weg... (Vanion, 13. Aug 2014, 20:46:31):
~#! rn=Humni rt=1407611974 rg=magier.urlaub
~#! tid=1407611974
Die beiden haben einen Nordwest-Stati organisiert. Das zaehlt wohl als
arbeiten.

V*

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



Kein Urlaub... (Humni,  4. Sep 2014, 21:51:31):
... aber Dienstreise.

15.-19.9. ist vermutlich kein Drache da.

Ich fresse Euch trotzdem alle, da ich rfresse habe.

Humni

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



19. bis 27. Sep. 2014 (Zook,  8. Sep 2014, 22:01:52):
Ich muss da zwei Tage arbeiten. Rest Urlaub. Ja, auf Mallorca
arbeiten. Wirklich. Ihr koennt mir das glauben.

Zook
.-

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



Urlaub (Unbekannte Salzwueste Arktis, USA) (Ark, 15. Okt 2014, 20:44:28):
Ab morgen bis 28.10., lasst alles heile und schont die Geduld aller Magier.
So long.


              *** ARK * the * Magnificent ***


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



Urlaub... (Humni, 11. Nov 2014, 18:00:09):
... ist es nicht, eher das Gegenteil, aber ich bin den Rest der Woche wohl
nicht da.

Humni

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



Ueber Weihnachten ... (Notstrom, 17. Dez 2014, 20:25:54):
... genauer, vom 23.12. bis zum 27.12. bin ich voraussichtlich internetlos
bei der Familie. Ihr muesstet also in der Zeit mit normalem Strom auskommen.

Frohe Weihnachten!
                                                      Notstrom.

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



Re: Ueber Weihnachten ... (Ark, 17. Dez 2014, 20:42:06):
~#! rn=Notstrom rt=1418844354 rg=magier.urlaub
~#! tid=1418844354
:hat ein Notstromaggregat.


              *** ARK * the * Magnificent ***


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



Auch nicht immer da... (Humni, 19. Dez 2014, 14:45:04):
Auch ich bin ueber Weihnachten weg, danach dann ... vermutlich im Urlaub, wo
ich erfahrungsgemaess aber sogar oefter mal hier bin. Erstaunlich, faellt mir
gerade auf.

Humni

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



Up, up, and awayyyyy (Ark, 18. Feb 2015, 01:14:22):
Vom 28.02. bis 22.03. bin ich im Urlaub. Bugs und andere Aergerlichkeiten
werden gebeten, sich an die ueblichen Stellen zu wenden. Haftung wird nur in
begruendeten Notfaellen uebernommen. Ich bitte, das Morgengrauen nicht zu
veraergern, damit es morgen noch kraftvoll toeten kann.
So long.


              *** ARK * the * Magnificent ***


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



Re: Up, up, and awayyyyy (Zook, 18. Feb 2015, 11:50:49):
~#! rn=Ark rt=1424218462 rg=magier.urlaub
~#! tid=1424218462
Ich bin vom 21. Feb. bis 2. Mar. ebenfalls urlaubsbedingt abwesend; habe 
auch tendentiell eher kein Netz.

Zook

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



Auch mal weg (Humni, 27. Mar 2015, 21:07:30):
Huhu,

einige andere Personen sind auch weg, und auch wenn es am Urlaubsort
Netzempfang gibt, so mag es doch sein, dass man dort nicht regelmaessig
anwesend ist. Das Ganze gilt ab dem 29.3. bis zum 7.4. oder so.

Humni

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



Re: Auch mal weg (Zesstra, 27. Mar 2015, 21:37:26):
~#! rn=Humni rt=1427486850 rg=magier.urlaub
~#! tid=1427486850
Ich bin auch weg, vom 29.3. bis 6.4.
Vielleicht bin ich sporadisch mal da, aber nicht regelmaessig.

Zesstra

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



Auf einer Insel mit einem Berge ... (Gloinson, 14. Mai 2015, 11:54:40):
Vom 20. Mai bis 10. Juni. Nicht zwangslaeufig offline.


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



Zesstra lehnt sich etwas zurueck... (Zesstra, 26. Mai 2015, 22:26:59):
Huhu,

dies ist (leider) keine Urlaubsankuendigung an sich, aber passt trotzdem
hierher.

Die letzte Zeit werden die div. Wnsche und Problemchen, die an mich hier
herangetragen werden, mir etwas zuviel. Hinzu kommen zur Zeit berufliche und
sonstige private Notwendigkeiten, welche mich Kraft kosten. Diese unguenstige
Kombination fuehrt auch dazu, dass ich mich nicht mehr konzentriert um die
Erledigung der anfallenden Problemchen kuemmern kann.
Daher bin ich zu dem Schluss kommen, dass ich hier eine Weile etwas kuerzer
treten werde und meine knappe Zeit hier mit Dingen verbringen moechte, die mir
auch persoenlich Spass und Befriedigung bringen.

Ich moechte euch daher bitten, Anliegen und Wuensche, die meine Funktion hier
und nicht mich persoenlich betreffen, an die EM-Schaft im ganzen zu richten.

Zesstra

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



Re: Zesstra lehnt sich etwas zurueck... (Zook, 26. Mai 2015, 22:29:06):
~#! rn=Zesstra rt=1432672019 rg=magier.urlaub
~#! tid=1432672019
Einfach "mail erzmagier" und in der Regel wird das dann 
auch vom Team aus irgendwie weiter bearbeitet. Wenn 
es irgendwo klemmt oder Schwierigkeiten auftreten,
dann sprecht einfach mich direkt an.

Zook

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



Urlaub und so (Rhovan,  3. Jun 2015, 08:48:36):
Huhu, ich mache heute bis Sonntag aufs Out and Loud.

Bis zu meiner rueckkehr, wuensche ich euch viel spass.
Ich hab auch noch ein sehr detailverliebtes video fuer euch
https://youtu.be/AQte2nz80Is

Gruss
Rhovan

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



MG-Party und Wacken (Bugfix, 19. Jul 2015, 22:34:48):
Moin,

vom 20.-26.7. werde ich auf der MG-Sommerparty in Hattingen und vom 28.7.-3.8.
in Wacken sein. Aus Hattinge werde ich vermutlich das eine oder andere mal
online sein, aus Wacken eher nicht.

Bugfix

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



Re: MG-Party und Wacken (Rhovan, 20. Jul 2015, 00:05:05):
~#! rn=Bugfix rt=1437338088 rg=magier.urlaub
~#! tid=1437338088
Ich schliesse mich an, haenge aber noch 1 Woche so und 1 Woche Summer Breeze
mit drann.

Gruss
Rhovan

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



Re: MG-Party und Wacken (Zesstra, 20. Jul 2015, 10:42:39):
~#! rn=Bugfix rt=1437338088 rg=magier.urlaub
~#! tid=1437338088
Ich schliesse mich da an. Bin auch auch zwischen Hattingen und Wacken wenig
da.

Zesstra

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



Re: Re: MG-Party und Wacken (Ark, 21. Jul 2015, 00:28:35):
~#! rn=Zesstra rt=1437381759 rg=magier.urlaub
~#! tid=1437338088
Tja, ich werde arbeitsbedingt wohl nicht in Hattingen erscheinen. Und am
Wochenende muss ich noch ein verschobenes Geschenk einloesen. Irgendwie ein
bisschen ... doof.


              *** ARK * the * Magnificent ***


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



Re^3: MG-Party und Wacken (Zook, 26. Jul 2015, 20:09:35):
~#! rn=Ark rt=1437431315 rg=magier.urlaub
~#! tid=1437338088
Dabei haben wir uns so auf Dich gefreut!

Zook

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



Re: MG-Party und Wacken (Arathorn, 28. Jul 2015, 13:03:15):
~#! rn=Bugfix rt=1437338088 rg=magier.urlaub
~#! tid=1437338088
Dem Wacken-Teil schliesse ich mich an und bin dann mal weg. Danach noch
Dienstreise, kann also sein, dass ich mich die naechsten 10 Tage etwas
rar mache hier.

Lasst das Mud heile. :-)

Arathorn.

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



Abwesend vom 17.-21.9. (Zesstra, 12. Sep 2015, 00:15:12):
Huhu,

ich bin in der genannten Zeit nicht da. Und vermutlich auch die 2-3 Abende vor
dem 17. nur wenig richtig da.

Zesstra

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



Abwesend 17. bis 27. September (Zook, 14. Sep 2015, 18:44:51):
Hi, ich bin einmal 10 Tage eher offline.

Zook

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



Nur regulaerer Strom dieses Wochenende! (Notstrom,  1. Okt 2015, 17:30:37):
Huhu,

ich bin von heute abend bis Sonntag dort, wo ich keine Internetanbindung
habe. Falls Ihr trotzdem Strom benoetigt, nutzt bitte den normalen Strom
aus der Steckdose.

Lasst mir die Wueste heile!
Notstrom.

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



Mal ein paar Tage nicht da (Humni, 11. Okt 2015, 23:33:31):
Huhu ihr,

ich werde so ab morgen oder uebermorgen bis zum kommenden Wochenende wohl gar
nicht oder deutlich weniger hier sein. Fuer Miril gilt dasselbe.

Humni

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



Kurz ma wech. (Ark, 22. Okt 2015, 23:17:53):
Bis naechsten Mittwoch. CU.


              *** ARK * the * Magnificent ***


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



Abwesend vom 13.11-16.11 (Chagall,  9. Nov 2015, 20:23:51):
Huhu,

in der im Betreff genannten Zeit bin ich nicht im Mud, sondern in Hamburg
anzutreffen. Dort verschiess ich Unmengen von X8-Burstern und 8US und setze
auch diverse Resos.

MC

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



Abwesenheit (Notstrom, 20. Dez 2015, 11:08:09):
    Huhu,

ich werde vom 23.12 bis zum 26.12. meinen Urlaub unterbrechen und zu meinen
Eltern fahren. Bin die Zeit ohne Internet und somit auch nicht eingeloggt.

Notstrom.

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



Uchlaup! (Amaryllis, 21. Dez 2015, 01:28:23):
Hi,

vom 25.12.2015 bis 02.01.2016 bin ich im verdienten Weihnachtsurlaub.

Ama*

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



Urlaub vom 27.12.15-03.01.16 (Arathorn, 27. Dez 2015, 13:50:31):
Hallo zusammen,

ich bin im o.g. Zeitraum nicht zu Hause. Internetzugang vor Ort gibt's nicht,
aber kann sein, dass wir ueber Mobildinge irgendwie online sein koennen.
Ich will mal nicht zuviel versprechen, also lasst das Mud heile - fuer
Humni, Miril und Zesstra gilt naemlich dasselbe. ;-)

Arathorn.

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



Re: Uchlaup! (Zook,  3. Jan 2016, 20:36:44):
~#! rn=Amaryllis rt=1450657703 rg=magier.urlaub
~#! tid=1450657703
So tat ich es gleich.

Zook

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



Urlaub vom 12.03. - 02.04. (Ark,  9. Jan 2016, 09:25:33):
Hi,

in dieser Zeit bin ich weit weg, wahrscheinlich ohne Zugang zu irgendwas. Da
ich schusselig bin, schreib ich das lieber schonmal, denn nun gibt es kein
Zurueck mehr :-)

Endlich erfuellt sich ein kleiner Traum!


              *** ARK * the * Magnificent ***


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



Beruflich weg (Ark, 24. Jan 2016, 16:26:04):
Vom 29.-31. bin ich beruflich weg und nicht erreichbar (suedspanisches
Ausland).


              *** ARK * the * Magnificent ***


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



30.03.16 - 03.04.16 (Chagall, 14. Mar 2016, 11:29:35):
Huhu,

im Zeitraum vom 30.03.16 - 03.04.16 mache ich Kopenhagen unsicher und bin
deswegen hier nicht anzutreffen.

MC

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



20.-30.3.2016 (Arathorn, 20. Mar 2016, 12:59:41):
Bin im o.g. Zeitraum im Urlaub, habe aber gelegentlich Netz und kann 
reinschauen. Vermutlich werde ich aber nur dazu kommen, mich um wirklich
Dringendes zu kuemmern.

Gruss, Arathorn.

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



Re: 20.-30.3.2016 (Humni, 20. Mar 2016, 13:01:31):
~#! rn=Arathorn rt=1458475181 rg=magier.urlaub
~#! tid=1458475181
Schliesse mich an. Wie merkwuerdig. Fuer Miril gilt dasselbe.

Humni

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



Urlaub Ostern Sa/So (Notstrom, 26. Mar 2016, 00:00:50):
Huhu,

ich fahre morgen frueh weg und bin erst Sonntag abend wieder da. Bitte in der
Zwischenzeit nichts kaputtspielen, auch nicht bei Chilana. ;)

Frohe Ostern!
Notstrom.

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



Kurz mal weg. (Ark,  3. Mai 2016, 23:25:22):
5.5.-8.5. mal kleinen Kurzurlaub nach Den Haag. Nix kaputtmachen. Bitte :)



              *** ARK * the * Magnificent ***


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



27.05-30.05 (Chagall, 10. Mai 2016, 20:31:34):
Huhu,

in der im Betreff genannten Zeit bin ich mal wieder abwesend. Muss Burster
einsetzen, Resos deployen und noch viel anderes tun, z.B. viel Bier trinken.

MC

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



14.5.-30.05. (Gloinson, 10. Mai 2016, 21:59:46):
Ebenso abwesend. Vielleicht habe ich Netz, vielleicht habe ich auch Lust oder
Zeit mich einzuloggen, wenn nicht, dann lasst doch bitte die Gilde stehen.


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



Nochmal ein bisgen Urlaub (Ark, 11. Mai 2016, 22:23:17):

24.05.-29.05. kurz mal weg gen Osten. Dann leider erstmal dauer-hier :-)


              *** ARK * the * Magnificent ***


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



Urlaub... (Zesstra, 22. Jul 2016, 17:49:55):
Huhu...

ich werde vom 23.7. bis 9.8. Urlaub machen. In der Zeit werde ich vermutlich
nur gelegentlich reinschauen und einige von euch RL sehen. (vom 3. bis 7.8.
eher gar nicht).
Alle anderen: lasst das Mud stehen.

Zesstra

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



Re: Urlaub... (Bugfix, 22. Jul 2016, 19:19:06):
~#! rn=Zesstra rt=1469202595 rg=magier.urlaub
~#! tid=1469202595
Moin,

Dem kann ich mich so fast komplett anschliessen, einziger Unterschied ist,
dass es bei mir nur vom 24.7.-7.8. sein wird.

Bugfix

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



Re: Re: Urlaub... (Humni,  1. Aug 2016, 23:39:25):
~#! rn=Bugfix rt=1469207946 rg=magier.urlaub
~#! tid=1469202595
Miril und meinereiner sind ab morgen (2.8.) bis zum 11.8. wohl eher gar nicht
hier.

Humni

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



Re^3: Urlaub... (Arathorn,  2. Aug 2016, 14:54:01):
~#! rn=Humni rt=1470087565 rg=magier.urlaub
~#! tid=1469202595
Sieht bei mir genauso aus, bin allerdings "schon" am 8.8. wieder da.

Arathorn.

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



Mera Luna! (Zesstra, 10. Aug 2016, 23:00:28):
Ich bin von morgen bis Montag unterwegs und habe keinen Laptop etc. dabei.
Im Notfall ruft einfach die Goetter an.

Zesstra

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



Nochmal ... (Zook, 16. Aug 2016, 10:27:16):
Nachdem ich den letzten Urlaub nicht angekuendigt hatte, hier nun 
ein weiterer: Bin vom 8. bis 18. September nicht da.

Muss zwei Tage im Ausland arbeiten und mach dann noch ne Woche
Urlaub dort im Ausland. Wo? Ach so, ja auf Mallorca.

Zook

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



Re: Nochmal ... (Ark, 17. Aug 2016, 23:40:08):
~#! rn=Zook rt=1471336036 rg=magier.urlaub
~#! tid=1471336036
Nice Work-Life Balance.


              *** ARK * the * Magnificent ***


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



22.-28.08. (Bugfix, 19. Aug 2016, 21:56:12):
Moin,

Den genannten Zeitraum werde ich im Harz auf einem Campingplatz verbringen.
Vermutlich werde ich aber zumindest Abends ab und an online sein.

Bugfix

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



Abwensend vom 26.08 - 29.08. (Chagall, 24. Aug 2016, 13:05:57):

Huhu,

in der Zeit vom 26.08 bis 29.08 muss ich Breslau begruenen, bin also nicht
hier anzutreffen.

MC


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



Rar bis zum 19.9... (Humni,  9. Sep 2016, 22:42:34):
Hallo ihr,

nicht der Urlaub, nein, der Job ist es, der mich derzeit, gepaart mit anderen
Verpflichtungen, ein wenig kuerzer treten laesst. Dieser Zustand wird noch bis
zum 20.9. anhalten, danach habe ich hoffentlich wieder mehr Zeit.

Naechste Woche fresse ich jedenfalls Schueler, gut in Meersalz gesalzen. Fuer
andere ist es Klassenfahrt, fuer mich das groesste Salznaschwerk der letzten
Wochen ...

Humni

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



Abwesend 15.-18.09.2016 (Arathorn, 14. Sep 2016, 00:09:23):
Wie der Titel schon sagt, bin ich mal ein paar Tage weg. Vielleicht 
kann ich sporadisch mal kurz online kommen, aber eher nicht, weil ich auch
noch nicht weiss, ob ich ueberhaupt einen Rechner mitnehme.

Gruss, Arathorn.

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



Re: Abwesend 15.-18.09.2016 (Zesstra, 14. Sep 2016, 00:14:15):
~#! rn=Arathorn rt=1473804563 rg=magier.urlaub
~#! tid=1473804563
Ich bin in dieser Zeit auch unterwegs. Ich werde den Rechner mitnehmen, aber
weiss noch nicht, wieviel Zeit ich online verbringen werde. Im Zweifelsfall
macht einfach nix kaputt. ;-)

Zesstra

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



Abwesend vom 03.10 - 07.10 (Chagall,  1. Okt 2016, 17:35:46):
Huhu,

vom 03.10 bis 07.10 bin ich urlaubstechnisch abwesend.

MC

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



Mal kurz weg ... (Ark, 19. Okt 2016, 01:29:55):
Samstag 22.10. - 26.10. einschliesslich auf Kurzurlaub in Prag.
Bitte alles heile lassen. Es sind keine Bugs, nur uninformierte Spieler.


              *** ARK * the * Magnificent ***


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



Urlaub! (Notstrom, 20. Nov 2016, 20:25:44):
Huhu,

ich habe vom 21.11. bis zum 2.12. Urlaub, werde also anwesend sein.

Urlauburlauburlaub,
Notstrom.

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



Kurz ma wech. (Ark, 13. Feb 2017, 20:31:53):
Hi, bin fuer 3 Tage mal weg und voraussichtlich Freitag wieder da. Keine
Panik, das MG bleibt stehen (keine Garantie! kann aber sein. dann aber nicht
wegen mir. ich bin eh nicht an allem schuld, sondern nur die spieler. genau,
die spieler. man kann nicht ohne sie, hat aber nur probleme. ich muesste
laenger weg sein, aber ich bin nicht suechtig, nein. jetzt finde ich noch die
klammer, um zuzumachen ... echt -> ) <-


              *** ARK * the * Magnificent ***


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



Osterfrische...! (Zesstra,  7. Apr 2017, 21:51:32):
Huhu...

ich bin vom 8. bis 19.4. in Urlaub - zum Rollenspielen. ;-)
Ich gucke sicher zwischendurch mal vorbei, aber wenn ihr etwas von mir
braucht, schickt mir besser eine Mail, ggf. an die RL-Adresse.
Wenn etwas ganz dringend ist, z.B. Crash oder so, haben mehrere EMs und
Goetter meine Mobilfunknummer. ;-)

Zesstra

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



Re: Osterfrische...! (Humni,  8. Apr 2017, 23:56:41):
~#! rn=Zesstra rt=1491594692 rg=magier.urlaub
~#! tid=1491594692
Miril und meinereiner sind auch da. Es kann sein, dass es da Netzverbindungen
gibt. Aber ich weiss nicht, ob dem so ist. Sonst bis dann!

Humni

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



Ueber Ostern ... (Notstrom, 15. Apr 2017, 08:56:56):
... bin ich abwesend.

Frohe Feiertage,
Notstrom.

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



Abwesend (Zook, 19. Apr 2017, 15:46:56):
Ich bin weg vom 28. April bis 13. Mai 2017 (1 Woche Urlaub,
1 Woche Fortbildung).

Gruss,
Zook

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



Pause (Notstrom,  4. Jun 2017, 13:24:45):
Huhu,

ich habe beschlossen, eine Auszeit zu nehmen. Ich kann noch nicht sagen, wann
oder ob ich zurueckkehre. Falls es zu Problemen in meinen Gebieten kommt,
wendet Euch bitte an den zustaendigen RM. Falls es zu Problemen in meinen
Regionen kommt oder fuer mein Gebiet kein aktiver RM vorhanden ist, wendet
Euch bitte an einen EM.

Danke.
Notstrom.

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



Nicht so richtig da (25.06 - 30.06) (Chagall, 24. Jun 2017, 20:53:02):
Huhu,

vom 25.06 bis 30.06 befinde ich mich auf Dienstreise in Essen. Ich probiere ab
und an mal reinzuschauen, kann aber nichts versprechen.

MC

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



Urlaub 27.08-07.09. (Bugfix, 21. Aug 2017, 12:27:40):
Moin,

Im genannten Zeitraum werde ich in Urlaub sein und daher zumindest weniger
anwesend als sonst.

Bugfix

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



Erstmal wieder da (Notstrom, 19. Dez 2017, 12:34:16):
Huhu,

ich bin erstmal wieder da. Danke an diejenigen, die sich in meiner Abwesenheit
mit meinem Kram herumgeschlagen haben. Danke an Bugfix fuer einen netten,
unerwarteten Anruf. :)

Notstrom.

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



Ueber die Feiertage ... (Notstrom, 23. Dez 2017, 09:15:22):
... bin ich nicht da. Spaetestens am 27.12. sollte ich aber wieder da sein.

Frohes Fest,
Notstrom.

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



Abwesend (Zook, 29. Dez 2017, 10:14:08):
Hallo, ich bin von heute bis zum 5. Januar eher selten online.

Zook

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



Urlaub am 12.-13.2. (Notstrom,  9. Feb 2018, 17:16:23):
Huhu,

Montag und Dienstag habe ich Urlaub, bin also da und werde verstaerkt
debuggen und reparieren.

Notstrom.

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



Urlaub vom 25.3. bis 4.4. (Arathorn, 25. Mar 2018, 01:23:50):
Bin evtl. von dort aus kurz anwesend. Wenn was dringendes ist, bin ich 
per Mail erreichbar, aber rechnet nicht mit kurzfristiger Reaktion. ;-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Urlaub vom 25.3. bis 4.4. (Zesstra, 25. Mar 2018, 11:39:19):
~#! rn=Arathorn rt=1521937430 rg=magier.urlaub
~#! tid=1521937430
Da schliesse ich mich ganz genauso an. Wobei, komme vermutlich schon am
3.4.zurueck.

Zesstra

-----------------------------------------------------------------------------



Re: Re: Urlaub vom 25.3. bis 4.4. (Humni, 27. Mar 2018, 09:52:26):
~#! rn=Zesstra rt=1521970759 rg=magier.urlaub
~#! tid=1521937430
Ganz vergessen: Miril und ich sind auch dabei.

Komisch, irgendwie. So viele EMs gleichzeitig in Urlaub. Was die da nur
treiben werden?

Wenn die Fragen zu schlimm werden und ihr sie nicht mehr aushaltet, sagt
bescheid. Ich fress euch dann.

Humni

-----------------------------------------------------------------------------



Urlaub 20.04. bis 06.05. (Zook,  5. Apr 2018, 10:39:59):
Im angegebenen Zeitraum bin ich im Urlaub und eher nicht 
erreichbar. 

Zook

-----------------------------------------------------------------------------



Wacken 31.07. bis 05.08.2018 (Arathorn, 31. Jul 2018, 14:58:03):
Abwesend wegen siehe oben, fuer den Zeitraum von-bis siehe oben. ;-)

Humni und Miril auch, falls die beiden hier nix mehr posten.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Urlaub 4. bis 20.8. (Zesstra,  1. Aug 2018, 23:06:46):
Ich fahre ab dem 4.8. bis zum 20.8. in Urlaub. Ich denke nicht, dass ich viel
da sein werde (vielleicht auch gar nicht), da ich zelten fahre und die Ruhe
geniessen moechte.
Daher bitte an andere EM oder Goetter wenden, die kennen notfalls auch meine
Kontaktdaten.

Zesstra

-----------------------------------------------------------------------------



Urlaub 15.-30.08. (Bugfix, 12. Aug 2018, 11:58:56):
Moin,

Im genannten Zeitraum werde ich Urlaub machen und vermutlich deutlich weniger
anwesend sein als sonst.

Bugfix

-----------------------------------------------------------------------------



Urlaub 1.-8.10. auf Mallorca (Notstrom, 30. Sep 2018, 14:32:49):
... musste abgesagt werden, ich bin also ganz regulaer im Lande.

Notstrom.

-----------------------------------------------------------------------------



Urlaub 28.11.-02.12. (Bugfix, 28. Nov 2018, 22:40:11):
Moin,

Im genannten Zeitraum werde ich ohne Laptop in Stockholm unterwegs sein, also
macht nichts kaputt.

Bugfix

PS: Das oben war ein Irrtum. Macht alles kaputt, dann muss es jemand anders
fixen :-)

-----------------------------------------------------------------------------



Re: Urlaub 28.11.-02.12. (Notstrom, 28. Nov 2018, 22:42:11):
~#! rn=Bugfix rt=1543441211 rg=magier.urlaub
~#! tid=1543441211
Also, ich repariere da nix, weil ich ueber das Wochenende meine Eltern
besuche. :)

SNCR,
Notstrom.

-----------------------------------------------------------------------------



Re: Re: Urlaub 28.11.-02.12. (Deaddy, 28. Nov 2018, 22:45:41):
~#! rn=Notstrom rt=1543441331 rg=magier.urlaub
~#! tid=1543441211
Also ich wollte da mudden und meine Xties vor allem durch Vland, Gebirge und
Chaosgilde peitschen, mit allen lustigen Dingen die witzige Bugs ausloesen.

-----------------------------------------------------------------------------



Re^3: Urlaub 28.11.-02.12. (Humni, 28. Nov 2018, 23:22:20):
~#! rn=Deaddy rt=1543441541 rg=magier.urlaub
~#! tid=1543441211
Macht nur. Ich fix die Bugs. Alle.

Humni, schleckt sich das Maul.

-----------------------------------------------------------------------------



Weihnachten (Notstrom, 22. Dez 2018, 13:19:33):
Huhu,
ich bin vom 23.12. bis 26.12. weg und habe dort moeglicherweise kein Internet.
Ich wuensche Euch allen ein frohes, friedliches Fest.

Bis bald,
Notstrom.

-----------------------------------------------------------------------------



Erholungsurlaub 16.-23. Januar 2019 (Zook, 13. Jan 2019, 16:50:33):
Huhu, ich bin vom 16. bis 23. Januar 2019 im Urlaub. Habe wohl
gelegentlich Netz. Ich verlasse mich da aber einmal nicht drauf.

Zook

-----------------------------------------------------------------------------



URLAUP!!!!! (Humni, 14. Apr 2019, 00:00:56):
Nun ja. Ein Drache und einige andere sind ab morgen in Urlaub. Und vielleicht
nicht mehr hier. Vielleicht auch doch. Sehen wir dann.

Wir sehen uns sonst am Ende des Monats wieder.

Humni

-----------------------------------------------------------------------------



Abwesend bis 24.6. (Zesstra, 19. Jun 2019, 11:29:02):
Huhu allerseits,

ich werde bis zum 24.6. nicht oder wenig anwesend sein.
Bitte wendet euch bei Problemen in der Zwischenzeit an andere EM+.

Zesstra

-----------------------------------------------------------------------------



Re: Abwesend bis 24.6. (Humni, 19. Jun 2019, 12:05:38):
~#! rn=Zesstra rt=1560936542 rg=magier.urlaub
~#! tid=1560936542
Pah, das kann ich auch.

Bin ueber das lange Wochenende weg. Und danach werde ich auch erstmal einige
Tage keine Zeit haben.

Humni

-----------------------------------------------------------------------------



Urlaub ... (Notstrom,  9. Jul 2019, 10:43:08):
... hatte ich eigentlich nicht, war in den letzten Monaten aber eher, aeh,
sporadisch da. Das wird sich nun hoffentlich wieder aendern. Wenns irgend-
was bei den Kaempfern gibt, was ich wissen, ansehen oder aendern sollte,
meldet Euch also bitte nach wie vor auf bewaehrte Weisen.

BTW, auch wenn ich wenig da bin, gibt es eine Reihe von Leuten im Mud,
die mich RL erreichen und ins Mud schleifen koennen. Wenn was brennt, also
einfach mal bei den ueblich-verdaechtigen Magiern rumfragen.

Danke!
Notstrom.

-----------------------------------------------------------------------------



Re: Urlaub ... (Zook, 12. Jul 2019, 10:36:09):
~#! rn=Notstrom rt=1562661788 rg=magier.urlaub
~#! tid=1562661788
Ich bin in dem Zusammenhang auch verdaechtig.

Zook

-----------------------------------------------------------------------------



Urlaub vom 17. bis 24. Juli (Zook, 16. Jul 2019, 16:08:16):
Hallo, ich mache vom 17. bis 24. Juli Urlaub. Das kann bedeuten,
dass ich mehr oder auch weniger anwesend bin, je nachdem, was ich 
glaube, was meiner Erholung gut tut. 

Zook.

-----------------------------------------------------------------------------



Re: Urlaub vom 17. bis 24. Juli (Zook, 25. Jul 2019, 10:56:20):
~#! rn=Zook rt=1563286096 rg=magier.urlaub
~#! tid=1563286096
Bin wieder da.

Zook

-----------------------------------------------------------------------------



Abwesend vom 30.7. - 4.8.2019 (Arathorn, 30. Jul 2019, 14:48:56):
Huhu,

bin bis kommenden Sonntag nicht da und habe kein Netz und sowieso kein 
Geraet im Gepaeck, mit dem ich irgendwas tun koennte.

Arathorn.

-----------------------------------------------------------------------------



Urlaub vom 10. bis 25. August (Zesstra,  6. Aug 2019, 21:26:50):
Huhu,

ich bin vom 10. bis 25. August in Urlaub.
Um Zook zu zitieren: "Das kann bedeuten, dass ich mehr oder auch weniger
anwesend bin, je nachdem, was ich glaube, was meiner Erholung gut tut."
Vermutlich bin ich in der Zeit weniger aktiv als sonst.

Im Zweifelsfall bin ich ueber die anderen EM+ zu erreichen, sofern ihr nicht
selber RL-Kontaktdaten habt.

Zesstra

-----------------------------------------------------------------------------



Uchlaup! (Amaryllis,  6. Sep 2019, 20:55:23):
Moin,

ich bin in der kommenden Woche im Urlaub und daher nur sporadisch mal
anwesend.

Ama*

-----------------------------------------------------------------------------



Urlaub (Zook, 28. Sep 2019, 14:03:41):
Sersen, ich bin vom 30. Sep. bis 05. Okt. im Urlaub. 

Zook

-----------------------------------------------------------------------------



Urlaub 31.10. - 3.11. (Bugfix, 29. Okt 2019, 11:53:14):
Moin,

Im genannten Zeitraum bin ich in Urlaub und vermutlich sehr wenig oder gar
nicht da.

Bugfix

-----------------------------------------------------------------------------



Abwesend 03. bis 10. November 2019 (Zook,  6. Nov 2019, 09:14:26):
Hallo, 

diese Woche bin ich aufgrund von Reisen ziemlich abwesend; auch
RL-Mail wird die Dinge nicht wesentlich befoerdern. Ab kommender
Woche bin ich wieder "normal" da.

Zook

-----------------------------------------------------------------------------



Urlaub (Notstrom, 27. Nov 2019, 10:57:03):
Huhu,

ich habe im Zeitraum 4.12.-3.1. Urlaub, bin also voraussichtlich verstaerkt
anwesend. Ueber Weihnachten bin ich aber weg, ich melde mich dann noch mit
konkreten Daten.

Hth,
Notstrom.

-----------------------------------------------------------------------------



Ueber Weihnachten ... (Notstrom, 22. Dez 2019, 23:35:04):
... bin ich weg, konkret vom 23.12. bis zum 26.12. Vermutlich ohne Internet.
Lasst das Mud stehen. :)

Ruhige Feiertage!
Notstrom.

-----------------------------------------------------------------------------



24.-26.01.2020 nicht da (Arathorn, 23. Jan 2020, 00:36:47):
Siehe Betreff. Ich nehm dorthin, wo ich bin, keinen MG-Zugang mit, daher
koennte ich nichtmal was tun, selbst wenn ich wollte. :-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Kurz weg (Amaryllis, 23. Jan 2020, 21:45:08):
Tach,

ich bin bis zum Wochenende wg. eines kleinen Eingriffs in der Uniklinik und
vmtl. von dort aus leider offline...
Haette eigentlich schon frueher stattfinden sollen, aber da wurde mal wieder
ein "Boembchen" direkt neben der Klinik gefunden, was erst muehsam entschaerft
werden musste - solange waren die mit Evakuierungsmassnahmen beschaeftigt und
haben naturgemaess keine Neuaufnahmen akzeptiert.

Jaja, mehrmals im Monat finden sie hier in Koeln noch solche Altlasten. Das
wird uns wohl auch die naechsten 80 Jahre weiter beschaeftigen hier.

Wenn man sich Bilder von Koeln nach dem Krieg anschaut, auf denen quasi ausser
dem Dom kaum noch ein Stein auf dem anderen war...

Drueckt mir die Daumen
Ama*

-----------------------------------------------------------------------------



Weg von 26. Januar bis 1. Februar (Deaddy, 24. Jan 2020, 12:40:04):
Bin auf DR und haeng noch was urlaubsmaessiges dran, vermutlich tagsueber idle
an Mo, Di, Mi und dann tatsaechlich mal so ziemlich offline.

-----------------------------------------------------------------------------



Abwesend 13. bis 20. Juni (Zook, 12. Jun 2020, 17:08:53):
In der Zeit vom 13. bis 20. Juni 2020 bin ich im Urlaub. Ich
bin per E-Mail erreichbar, ansonsten eher selten online. Eine 
Aufgabe werde ich allerdings weiter bearbeiten. Eingeweihte wissen
mehr.

Zook

-----------------------------------------------------------------------------



Urlaub 29.07. - 2.08. (Bugfix, 29. Jul 2020, 12:38:56):
Moin,

Ich bin dann mal in Urlaub, viel Spass beim rebooten und so.

Bugfix

-----------------------------------------------------------------------------



Eine Weile Urlaub (Zesstra,  3. Dez 2020, 17:34:28):
Huhu zusammen,

ich habe mich entschlossen, eine Weile MG-Urlaub zu machen.

Ich wuensch euch ne schoene Adventszeit und kommt gut ins neue Jahr.

Zesstra

-----------------------------------------------------------------------------



Re: Eine Weile Urlaub (Deaddy,  3. Dez 2020, 18:12:22):
~#! rn=Zesstra rt=1607013268 rg=magier.urlaub
~#! tid=1607013268
Wohlverdient!

Ich hoff das RL nervt nicht zu sehr in der Zeit. :-)

-----------------------------------------------------------------------------



Offline (Amaryllis,  2. Feb 2021, 21:01:34):
Hi,

ich bin wegen einer OP vmtl. bis zum Ende der Woche aus dem Verkehr gezogen.
Lasst das Mud stehen...

Ama*

-----------------------------------------------------------------------------



Re: Offline (Arathorn,  2. Feb 2021, 21:03:12):
~#! rn=Amaryllis rt=1612296094 rg=magier.urlaub
~#! tid=1612296094
Alles Gute und gute Besserung! :-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Re: Offline (Amaryllis,  2. Feb 2021, 21:16:50):
~#! rn=Arathorn rt=1612296192 rg=magier.urlaub
~#! tid=1612296094
Danke.

In Anbetracht eines mangelnden Friseurs und unzureichender eigener
Faehigkeiten habe ich mir uebrigens gerade meine 5 Monate alte "Matte" inkl.
Vollbart in einen vollrasierten Schaedel (Glatze) verwandelt.
Ging erstaunlich flott, aber unglaublich, was da an Material runterkam. Sieht
nun etwas verboten aus, aber nach 2-3 Wochen ist das dann schon wieder ok. Und
vielleicht oeffnen dann ja auch langsam die Friseure wieder (die Oesis haben
ja schon wieder offen)...

Haette nie gedacht, dass ich mir mal eine solche Frisur verpassen muss, aber
was willste machen...

(Ist auch im Krankenhaus bequemer)

Ama*

-----------------------------------------------------------------------------



Nicht so oft online (Zook,  8. Feb 2021, 10:25:30):
Hallo zusammen,

ich kann derzeit nicht so oft online sein wie ich moechte. Wenn
es Abnahmen (Gesellenstuecke, Quests/Miniquests als Vertretung) oder
wichtige Absprachen gibt, bitte mailt mich einfach auf meiner 
RL-Adresse an, damit nichts verschuett geht oder zu lange liegen
bleibt.

Viele Gruesse,
Zook

-----------------------------------------------------------------------------



Weg (Notstrom, 16. Mar 2021, 20:08:20):
Hallo zusammen,

aufgrund der letzten Entwicklungen bin ich momentan zunehmend demotiviert,
weiterhin im Mud taetig zu sein. Das mag sich irgendwann mal wieder aendern,
aber bis dahin wendet Euch bitte bei Problemen an die Erzmagier.

Notstrom.

-----------------------------------------------------------------------------



Urlaub vom 6. bis 9. April (Zook, 31. Mar 2021, 12:03:31):
Hallo,

ich mache Urlaub vom 6. bis 9. April. Es kann daher sein,
dass ich mangels alternativem Urlaubsziel oefter im 
MorgenGrauen anwesend bin.

Zook

-----------------------------------------------------------------------------



Re: Urlaub vom 6. bis 9. April (Zook, 12. Apr 2021, 11:23:55):
~#! rn=Zook rt=1617185011 rg=magier.urlaub
~#! tid=1617185011
War dann doch eher abwesend, aber generell nicht so viel 
am PC/Internet. Nun aber zurueck.

Zook

-----------------------------------------------------------------------------



Urlaub 19.06. bis 03.07. (Bugfix, 18. Jun 2021, 23:36:28):
Moin,

Im genannten Zeitraum bin ich in Urlaub und vermutlich seltener anwesend.
Macht nicht zu viel in meinen Regionen kaputt, Arathorn hat schon genug zu
tun. ;-)

Bugfix

-----------------------------------------------------------------------------



RL (Bugfix, 16. Mar 2022, 17:50:23):
Moin,

Urlaub habe ich keinen, dafuer grade im RL viel anderen Kram. Nach dem 9.
April sollte das besser werden, bis dahin rechnet mit laengeren
Reaktionszeiten und wendet euch mit dringenden Problemen besser an einen
Erzmagier.

Bugfix

-----------------------------------------------------------------------------



Kein Urlaub, aber nicht so oft online (Zook, 23. Mar 2022, 15:53:35):
Hallo,

ich bin in der kommenden Zeit nicht so oft online. Ich 
versuche zumindest taeglich einmal hineinzusehen und mich dann
auch um die anstehenden Dinge zu kuemmern. 

Falls etwas liegen bleibt oder Ihr mich nicht online
erwischt, schreibt bitte unbedingt eine E-Mail.

Zook

-----------------------------------------------------------------------------



Wacken (Bugfix,  2. Aug 2022, 00:45:25):
Moin,

Ich bin dann mal bis Sonntag abwesend. Viel Spass in der Zwischenzeit und
macht nicht zu viel kaputt.

Bugfix

-----------------------------------------------------------------------------



Re: Wacken (Arathorn,  2. Aug 2022, 00:47:35):
~#! rn=Bugfix rt=1659393925 rg=magier.urlaub
~#! tid=1659393925
Achso, ja, guter Punkt. Ich bin auch dort, genauso wie Humni.
Lasst das Mud stehen. :-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Urlaub (Zook, 19. Sep 2022, 15:16:02):
Ich war zwei Wochen im Urlaub.

Zook

-----------------------------------------------------------------------------



Urlaub bis 02.01.2023 (Arathorn, 27. Dez 2022, 12:57:46):
Moin zusammen,

siehe Titel, ich bin bis 2.1. nur sporadisch da, aber voraussichtlich eher gar
nicht.

Guten Rutsch euch!

Gruss, Arathorn.

-----------------------------------------------------------------------------



Urlaub 14. bis 21. Januar 2023 (Zook, 11. Jan 2023, 23:49:51):
Hey, ich bin vom 14. bis 21. Januar 2023 im Urlaub und daher
wohl sehr selten online und auch meine privaten E-Mails 
werde ich nicht oft lesen.

Macht nix kaputt.

Zook

-----------------------------------------------------------------------------



Urlaub 3.3. bis 12.3. (Zesstra, 28. Feb 2023, 21:22:27):
Huhu,

ich bin vom 3.3. bis 12.3. abwesend und auch schlecht zu erreichen, weil ich
auf einem Boot auf dem Mittelmeer unterwegs sein werde. (Bei dem Blick in die
News hoffe ich, keinen Bedarf an Seenotrettung zu haben. Aber andererseits bin
ich ja privilegiert genug...)
Hoffe, ihr braucht mich nicht, aber Zook wird bestimmt mit euch sein! :-)

Zesstra

-----------------------------------------------------------------------------



Urlaub vom 2.4. - 12.4.2023 (Arathorn,  2. Apr 2023, 02:03:40):
Moin,

siehe Titel, bin im Urlaub und nur sporadisch da. Lasst das Mud stehen. :-)

Arathorn.

-----------------------------------------------------------------------------



22.05. - 02.06. (Bugfix, 17. Mai 2023, 21:03:36):
Moin,

im genannten Zeitraum bin ich in Urlaub. Dieses mal habe ich auch keinen
Laptop dabei, werde also tatsaechlich nicht online sein.

Bugfix

-----------------------------------------------------------------------------



28.5. - 4.6. (Zesstra, 18. Mai 2023, 12:28:58):
Huhu,

leider kein Urlaub, aber ich bin in der Zeit nicht gut erreichbar und wenn nur
mit div. Stunden Zeitversatz...

Zesstra

-----------------------------------------------------------------------------



Zook im Urlaub vom 7. bis 17. September 2023 (Zook, 31. Aug 2023, 10:20:21):
Zook im Urlaub vom 7. bis 17. September 2023

Macht nix kaputt.

Zook

-----------------------------------------------------------------------------



Deaddy weg bis Montag den vierten Dezember (Deaddy, 29. Nov 2023, 17:51:32):
Hi,

zwecks Urlaub bin ich da internetpraeventiert unterwegs.

LG
Deaddy

-----------------------------------------------------------------------------



Abwesend 23.12.23 - 26.12.23 (Chagall, 18. Dez 2023, 18:10:57):
In der im Betreff genannten Zeit bin ich abwesend und nur sehr eingeschraenkt
im Mud.

MC

-----------------------------------------------------------------------------



30.12.-01.01. (Arathorn, 30. Dez 2023, 10:45:40):
Heyho,

bin mal 2 Tage nicht da, wir sehen uns im neuen Jahr. Lasst das Mud stehen.

Arathorn

-----------------------------------------------------------------------------



Abwesend: 12. bis 29. Februar (Zook,  2. Feb 2024, 15:20:03):
Hallo, ich bin vom 12. bis 29. Februar 2024 im Urlaub und habe nur 
wenig Moeglichkeiten, mich einzuloggen.

Viele Gruesse,
Zook

-----------------------------------------------------------------------------



Urlaub vom 24.03. - 03.04.2024 (Arathorn, 21. Mar 2024, 22:06:06):
Hallo zusammen,

ich bin im o.g. Zeitraum nicht da und kann deswegen sehr wahrscheinlich fast
gar nicht bzw. nur sehr wenig hier sein. Ich werde wahrscheinlich meinen
Laptop mitnehmen, aber es ist besser, ihr lasst einfach das Mud stehen. :-)

Wenn was dringendes ist, koennen die anderen EM+ mich erreichen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Abwesend 04.05-06.05 (Chagall,  2. Mai 2024, 22:37:44):
Huhu,

aufgrund familiaerer Verpflichtungen bin ich vom 04.05. bis 06.05. abwesend.

MC

-----------------------------------------------------------------------------



12.-20. September im Urlaub (Zook, 10. Sep 2024, 16:36:46):
Hallo,

ich bin vom 12. bis 20. September tatsaechlich im Urlaub. Werde da 
wahrscheinlich aber eher mal oefter hier sein.

Und vor allen Dingen eine Sache abnehmen. Freut Euch schon einmal.

Zook

-----------------------------------------------------------------------------



Abwesend vom 20.09-23.09 (Chagall, 17. Sep 2024, 15:24:11):
Huhu,

im Zeitraum von 20.09. - 23.09. bin ich in Gelsenkirchen (bzw. Bochum) zum
European League of Football-Finale und daher hier abwesend.

MC

-----------------------------------------------------------------------------



Urlaub 06. bis 25. Januar 2025 (Zook, 21. Dez 2024, 15:22:15):
Hey, ich bin vom 06. bis 25. Januar im Urlaub. Wohl oft mit guter
Internetverbindung, aber der deutschen Zeitzone voraus und 
ggf. bin ich beschaeftigt.

Zook

-----------------------------------------------------------------------------



27.12. - 05.01. (Arathorn, 27. Dez 2024, 12:31:59):
Kurz zur Info, bevor ich's vergesse: ich bin im o.g. Zeitraum im Urlaub und
werde nicht hier sein. Wenn was Dringendes anliegt, die EM+ (und ggf. andere)
koennen mich erreichen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Abwesend vom 27.03. - 01.04. (Chagall, 26. Feb 2025, 20:01:38):
In der Zeit vom 27.03. bis 01.04. mache ich Edinburgh unsicher und bin daher
abwesend.

MC

-----------------------------------------------------------------------------



Abwesend vom 17. Maerz bis 7. April (Deaddy, 16. Mar 2025, 11:01:36):
Bin erreichbar (auf den Tag gesehen), aber nicht verfuegbar. Die erste Woche
ist Dienstreise, da bin ich tagsueber immer mal zwischendrin online, die
anderen beiden Wochen weiss ich noch nicht.

Zuendet nicht zu wenig an.

-----------------------------------------------------------------------------



Abwesend vom 13.04. - 23.04.2025 (Arathorn, 12. Apr 2025, 20:48:58):
Wie der Titel schon sagt, bin ich in dem angegebenen Zeitraum nicht da.

Lasst das Mud heile.

Arathorn.

-----------------------------------------------------------------------------



