class_name Ursachen ## Woran ein Traum scheitert, und was im Tag davon zu sehen ist. ## ## Ein Traum hat eine Grundrate. Jede ungelöste Ursache bremst sie. Zwei ## ungelöste Ursachen bremsen doppelt -- deshalb lohnt es, alle zu finden. ## Sichtbar wird eine Ursache nur an den Tätigkeiten, die sie hervorbringt: ## wer nie in Gang kommt, räumt auf, recherchiert und schreibt Listen. ## ## Grundlage: Habit Reversal Training beginnt mit awareness training -- erst ## bemerken, dann ersetzen. Und Duhiggs goldene Regel: Auslöser und Belohnung ## bleiben, nur die Handlung dazwischen wird getauscht. ## spur: was davon in der Wohnung herumliegt. Wer hineingeht und hinsieht, ## weiß, wonach er im Tag suchen muss. static var LISTE: Dictionary = { "anfang": { "name": "Kein Anfang", "kurz": "kommt nie in Gang", "faktor": 0.30, "spur": "Handy auf dem Boden", "spur_text": "Das Handy liegt neben dem Tisch, der Bildschirm noch warm. Angefangen wird hier nicht.", }, "zeit": { "name": "Keine Zeit", "kurz": "der Tag ist voll", "faktor": 0.30, "spur": "Vollgeschriebener Kalender", "spur_text": "Jede Stunde im Kalender ist belegt. Für den Traum steht keine drin.", }, "kraft": { "name": "Keine Kraft", "kurz": "abends ist nichts mehr übrig", "faktor": 0.40, "spur": "Leere Dosen am Bett", "spur_text": "Drei leere Dosen neben dem Bett. Abends ist nichts mehr übrig.", }, "halt": { "name": "Kein Halt", "kurz": "fängt an und hört wieder auf", "faktor": 0.50, "spur": "Stapel ungeöffneter Briefe", "spur_text": "Ein Stapel ungeöffneter Briefe. Angefangen und liegen gelassen.", }, "grund": { "name": "Kein Grund", "kurz": "glaubt nicht mehr daran", "faktor": 0.40, "spur": "Verstaubter Koffer", "spur_text": "Ein Koffer voller alter Pläne, längst verstaubt. Daran glaubt hier niemand mehr.", }, } ## Tätigkeiten, die einen Traum aufhalten. Jede hat einen Auslöser und eine ## Belohnung -- genau die muss eine Ersatzhandlung wieder liefern. ## zeit: wann im Tag die Tätigkeit auftaucht. static var BLOCKER: Dictionary = { "putzflucht": { "name": "räumt auf statt anzufangen", "ausloeser": "eine große Aufgabe", "belohnung": "erfolg", "ursache": "anfang", "zeit": "tag", }, "recherche": { "name": "recherchiert statt anzufangen", "ausloeser": "Unsicherheit", "belohnung": "erfolg", "ursache": "anfang", "zeit": "tag", }, "liste": { "name": "schreibt eine Später-Liste", "ausloeser": "Überforderung", "belohnung": "ordnung", "ursache": "anfang", "zeit": "morgen", }, "jasagen": { "name": "sagt zu allem ja", "ausloeser": "eine fremde Bitte", "belohnung": "anerkennung", "ursache": "zeit", "zeit": "tag", }, "scrollen": { "name": "scrollt endlos", "ausloeser": "Leerlauf", "belohnung": "ablenkung", "ursache": "zeit", "zeit": "tag", }, "serie": { "name": "schaut eine Serie", "ausloeser": "Erschöpfung", "belohnung": "abschalten", "ursache": "kraft", "zeit": "abend", }, "wach": { "name": "bleibt wach", "ausloeser": "ein fremdbestimmter Tag", "belohnung": "zeit_fuer_sich", "ursache": "kraft", "zeit": "nacht", }, "kuehlschrank": { "name": "steht am Kühlschrank", "ausloeser": "Langeweile", "belohnung": "unterbrechung", "ursache": "kraft", "zeit": "abend", }, "spielen": { "name": "spielt noch eine Runde", "ausloeser": "Anspannung", "belohnung": "erfolg", "ursache": "halt", "zeit": "abend", }, "umschalten": { "name": "schaltet auf etwas anderes um", "ausloeser": "Widerstand", "belohnung": "neuheit", "ursache": "halt", "zeit": "tag", }, "klagen": { "name": "klagt am Telefon", "ausloeser": "Frust", "belohnung": "verbundenheit", "ursache": "grund", "zeit": "abend", }, "vergleichen": { "name": "vergleicht sich mit anderen", "ausloeser": "ein fremder Erfolg", "belohnung": "einordnung", "ursache": "grund", "zeit": "morgen", }, "mails": { "name": "räumt das Postfach auf", "ausloeser": "Leerlauf", "belohnung": "ordnung", "ursache": "anfang", "zeit": "morgen", }, "kaffee": { "name": "holt noch einen Kaffee", "ausloeser": "Unlust", "belohnung": "unterbrechung", "ursache": "anfang", "zeit": "tag", }, "perfekt": { "name": "feilt am Detail statt abzugeben", "ausloeser": "Angst vor dem Urteil", "belohnung": "ordnung", "ursache": "halt", "zeit": "tag", }, "plan_neu": { "name": "schreibt den Plan noch einmal neu", "ausloeser": "Unsicherheit", "belohnung": "ordnung", "ursache": "halt", "zeit": "tag", }, "snooze": { "name": "drückt auf Schlummern", "ausloeser": "Müdigkeit", "belohnung": "abschalten", "ursache": "kraft", "zeit": "morgen", }, "doesen": { "name": "döst auf dem Sofa weg", "ausloeser": "Erschöpfung", "belohnung": "abschalten", "ursache": "kraft", "zeit": "tag", }, "bestellen": { "name": "bestellt statt zu kochen", "ausloeser": "ein leerer Akku", "belohnung": "unterbrechung", "ursache": "kraft", "zeit": "abend", }, "nachrichten": { "name": "liest Nachrichten", "ausloeser": "Unruhe", "belohnung": "einordnung", "ursache": "zeit", "zeit": "morgen", }, "ueberstunden": { "name": "bleibt länger im Büro", "ausloeser": "fremde Erwartung", "belohnung": "anerkennung", "ursache": "zeit", "zeit": "abend", }, "absage": { "name": "sagt die Verabredung ab", "ausloeser": "ein voller Kopf", "belohnung": "zeit_fuer_sich", "ursache": "grund", "zeit": "abend", }, "waelzen": { "name": "wälzt die Sache im Bett", "ausloeser": "Stille", "belohnung": "einordnung", "ursache": "grund", "zeit": "nacht", }, } static var BELOHNUNG_TEXT: Dictionary = { "erfolg": "ein Erfolgserlebnis", "ordnung": "Ordnung", "anerkennung": "Anerkennung", "anschluss": "Anschluss", "abschalten": "Abschalten", "zeit_fuer_sich": "Zeit für sich", "unterbrechung": "eine Unterbrechung", "neuheit": "etwas Neues", "verbundenheit": "Verbundenheit", "einordnung": "Einordnung", "ablenkung": "Ablenkung", } static func ist_blocker(activity: String) -> bool: return BLOCKER.has(activity) static func ursache_von(activity: String) -> String: return str(BLOCKER[activity]["ursache"]) if BLOCKER.has(activity) else "" static func belohnung_text(schluessel: String) -> String: return str(BELOHNUNG_TEXT.get(schluessel, schluessel)) ## Blocker einer Ursache, die in dieses Zeitfenster passen. static func blocker_fuer(ursache: String, zeit: String) -> Array: var out: Array = [] for id in BLOCKER: if BLOCKER[id]["ursache"] == ursache and BLOCKER[id]["zeit"] == zeit: out.append(id) return out static func alle_blocker(ursache: String) -> Array: var out: Array = [] for id in BLOCKER: if BLOCKER[id]["ursache"] == ursache: out.append(id) return out