diff --git a/.obsidian/snippets/matugen.css b/.obsidian/snippets/matugen.css index 6d689fa..068094f 100644 --- a/.obsidian/snippets/matugen.css +++ b/.obsidian/snippets/matugen.css @@ -6,113 +6,113 @@ .theme-dark, .theme-light { /* ── Material You RGB helpers ──────────────────────────── */ - --mat-bg-rgb: 32, 15, 13; - --mat-surface-rgb: 32, 15, 13; - --mat-on-surface-rgb: 253, 219, 215; - --mat-primary-rgb: 255, 180, 172; - --mat-on-primary-rgb: 105, 0, 7; + --mat-bg-rgb: 32, 14, 14; + --mat-surface-rgb: 32, 14, 14; + --mat-on-surface-rgb: 254, 218, 217; + --mat-primary-rgb: 255, 179, 178; + --mat-on-primary-rgb: 104, 0, 19; /* ── Core Backgrounds ──────────────────────────────────── */ - --background-primary: #200f0d; - --background-primary-alt: #200f0d; - --background-secondary: #291715; - --background-secondary-alt: #2d1b19; + --background-primary: #200e0e; + --background-primary-alt: #200e0e; + --background-secondary: #291616; + --background-secondary-alt: #2e1a1a; /* ── Titlebar ──────────────────────────────────────────── */ - --titlebar-background: #200f0d; - --titlebar-background-focused: #291715; - --titlebar-text-color: #fddbd7; + --titlebar-background: #200e0e; + --titlebar-background-focused: #291616; + --titlebar-text-color: #fedad9; /* ── Borders & Dividers ────────────────────────────────── */ - --background-modifier-border: #5d3f3c; - --background-modifier-border-focus: #ae8884; - --background-modifier-border-hover: #ae8884; + --background-modifier-border: #5e3f3e; + --background-modifier-border-focus: #ae8786; + --background-modifier-border-hover: #ae8786; /* ── Text Colors ───────────────────────────────────────── */ - --text-normal: #fddbd7; - --text-muted: #e7bdb8; - --text-faint: #ae8884; - --text-on-accent: #690007; - --text-selection: rgba(255, 180, 172, 0.25); + --text-normal: #fedad9; + --text-muted: #e8bcbb; + --text-faint: #ae8786; + --text-on-accent: #680013; + --text-selection: rgba(255, 179, 178, 0.25); /* ── Accent & Interactive ──────────────────────────────── */ - --interactive-accent: #ffb4ac; - --interactive-accent-hover: #de1521; - --interactive-accent-rgb: 255, 180, 172; - --text-accent: #ffb4ac; - --text-accent-hover: #de1521; + --interactive-accent: #ffb3b2; + --interactive-accent-hover: #ff525d; + --interactive-accent-rgb: 255, 179, 178; + --text-accent: #ffb3b2; + --text-accent-hover: #ff525d; /* ── Hover & Active Modifiers ──────────────────────────── */ --background-modifier-hover: rgba(var(--mat-on-surface-rgb), 0.06); --background-modifier-active-hover: rgba(var(--mat-primary-rgb), 0.15); - --background-modifier-success: #0075b9; + --background-modifier-success: #2f9fa4; --background-modifier-error: #93000a; --background-modifier-error-hover: #ffb4ab; /* ── Obsidian Color Scale (--color-base-XX) ────────────── */ - --color-base-00: #200f0d; - --color-base-05: #200f0d; - --color-base-10: #1a0a08; - --color-base-20: #291715; - --color-base-25: #2d1b19; - --color-base-30: #392523; - --color-base-35: #452f2d; - --color-base-40: #5d3f3c; - --color-base-50: #ae8884; - --color-base-60: #e7bdb8; - --color-base-70: #fddbd7; - --color-base-100: #fddbd7; + --color-base-00: #200e0e; + --color-base-05: #200e0e; + --color-base-10: #1a0909; + --color-base-20: #291616; + --color-base-25: #2e1a1a; + --color-base-30: #392524; + --color-base-35: #452f2f; + --color-base-40: #5e3f3e; + --color-base-50: #ae8786; + --color-base-60: #e8bcbb; + --color-base-70: #fedad9; + --color-base-100: #fedad9; /* ── Semantic Colors ───────────────────────────────────── */ --color-red: #ffb4ab; - --color-orange: #98cbff; - --color-yellow: #ffb4ac; - --color-green: #0075b9; - --color-cyan: #8b1919; - --color-blue: #ffb4ac; - --color-purple: #ffb4ac; - --color-pink: #98cbff; + --color-orange: #70d6db; + --color-yellow: #ffb3b2; + --color-green: #2f9fa4; + --color-cyan: #8f0d21; + --color-blue: #ffb3b2; + --color-purple: #ffb3b2; + --color-pink: #70d6db; /* ── Headings ──────────────────────────────────────────── */ - --h1-color: #ffb4ac; - --h2-color: #ffb4ac; - --h3-color: #ffb4ac; - --h4-color: #98cbff; - --h5-color: #e7bdb8; - --h6-color: #ae8884; + --h1-color: #ffb3b2; + --h2-color: #ffb3b2; + --h3-color: #ffb3b2; + --h4-color: #70d6db; + --h5-color: #e8bcbb; + --h6-color: #ae8786; /* ── Links ─────────────────────────────────────────────── */ - --link-color: #ffb4ac; - --link-color-hover: #ffffff; - --link-external-color: #98cbff; - --link-unresolved-color: #ae8884; + --link-color: #ffb3b2; + --link-color-hover: #000000; + --link-external-color: #70d6db; + --link-unresolved-color: #ae8786; /* ── Tags ──────────────────────────────────────────────── */ - --tag-color: #ffffff; - --tag-background: #de1521; - --tag-border-color: #ffb4ac; - --tag-color-hover: #690007; - --tag-background-hover: #ffb4ac; + --tag-color: #000000; + --tag-background: #ff525d; + --tag-border-color: #ffb3b2; + --tag-color-hover: #680013; + --tag-background-hover: #ffb3b2; /* ── Checkboxes ────────────────────────────────────────── */ - --checkbox-color: #ffb4ac; - --checkbox-color-hover: #de1521; - --checkbox-border-color: #ae8884; - --checkbox-marker-color: #690007; + --checkbox-color: #ffb3b2; + --checkbox-color-hover: #ff525d; + --checkbox-border-color: #ae8786; + --checkbox-marker-color: #680013; /* ── Code Blocks ───────────────────────────────────────── */ - --code-background: #291715; - --code-normal: #fddbd7; - --code-comment: #ae8884; - --code-function: #ffb4ac; + --code-background: #291616; + --code-normal: #fedad9; + --code-comment: #ae8786; + --code-function: #ffb3b2; --code-important: #ffb4ab; - --code-keyword: #ffb4ac; - --code-operator: #98cbff; - --code-property: #e7bdb8; - --code-punctuation: #5d3f3c; - --code-string: #98cbff; + --code-keyword: #ffb3b2; + --code-operator: #70d6db; + --code-property: #e8bcbb; + --code-punctuation: #5e3f3e; + --code-string: #70d6db; --code-tag: #ffb4ab; - --code-value: #ffb4ac; + --code-value: #ffb3b2; /* ── Scrollbar ─────────────────────────────────────────── */ --scrollbar-thumb-bg: rgba(var(--mat-on-surface-rgb), 0.12); @@ -121,16 +121,16 @@ /* ── Inputs ────────────────────────────────────────────── */ --input-shadow: none; - --input-shadow-hover: 0 0 0 2px #ae8884; + --input-shadow-hover: 0 0 0 2px #ae8786; /* ── Graph View ────────────────────────────────────────── */ - --graph-node: #ffb4ac; - --graph-node-unresolved: #ae8884; - --graph-node-focused: #ffffff; - --graph-node-tag: #ffb4ac; - --graph-node-attachment: #98cbff; - --graph-line: #5d3f3c; - --graph-background: #200f0d; + --graph-node: #ffb3b2; + --graph-node-unresolved: #ae8786; + --graph-node-focused: #000000; + --graph-node-tag: #ffb3b2; + --graph-node-attachment: #70d6db; + --graph-line: #5e3f3e; + --graph-background: #200e0e; } diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 25f4efa..398ba1f 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,12 +13,12 @@ "state": { "type": "markdown", "state": { - "file": "00 Inbox/29593940 - Formal Languages.md", + "file": "00 Inbox/29593952 - Regular Languages.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "29593940 - Formal Languages" + "title": "29593952 - Regular Languages" } } ] @@ -78,7 +78,7 @@ } ], "direction": "horizontal", - "width": 200 + "width": 493.50418853759766 }, "right": { "id": "8a65bc0c1d4d98f2", @@ -184,11 +184,15 @@ }, "active": "140d404d9b2faf63", "lastOpenFiles": [ - "00 Inbox/29593952 - Regular Languages.md", - "00 Inbox/29593940 - Formal Languages.md", - "00 Inbox/29593935 - Kleene.md", - "30 Library/29593895 - atfl-st2026-l01-formal-languages-full.pdf", "00 Inbox/29593852 - Strings.md", + "00 Inbox/29593958 - Kleene star of languages.md", + "30 Library/29593962 - atfl-st2026-l02-finite-representation-of-languages-full.pdf", + "30 Library/normalize_name.sh", + "30 Library/atfl-st2026-l02-finite-representation-of-languages-full.pdf", + "00 Inbox/29593935 - Kleene.md", + "00 Inbox/29593940 - Formal Languages.md", + "00 Inbox/29593952 - Regular Languages.md", + "30 Library/29593895 - atfl-st2026-l01-formal-languages-full.pdf", "00 Inbox/29593929 - Alphabets.md", "30 Library/29592593 - ET_II_Folien_gesamt_020426.pdf", "30 Library/29592593 - 29592593 - ET_II_Folien_gesamt_020426.pdf", @@ -214,12 +218,7 @@ "00 Inbox/29593226 - ET_II_Folien_gesamt_020426.pdf.md", "10 Courses/02 - SoSe 2026/ET II/29592722 - Zeitabhängige Größen.md", "10 Courses/02 - SoSe 2026/ET II/29592709 - Klausur.md", - "10 Courses/02 - SoSe 2026/ET II/29592729 - Kirchhoffsche Gesetze.md", - "00 Inbox/29593224 - 29593223 - 29593223 - Elektrotechnik II.md", "20 Atlas", - "30 Library/ET_II_Folien_gesamt_020426.pdf", - "30 Library/d6d88eed747e389e597d2a19bb868ee6?cid=4b45b3a6f32c35a6d9ca5b1b07b760de", - "30 Library/wget-log", "10 Courses/01 - WiSe 2025_26/ET/images/beispiel_knotenregel.png" ] } \ No newline at end of file diff --git a/00 Inbox/29593958 - Kleene star of languages.md b/00 Inbox/29593958 - Kleene star of languages.md new file mode 100644 index 0000000..cf1b2b1 --- /dev/null +++ b/00 Inbox/29593958 - Kleene star of languages.md @@ -0,0 +1,25 @@ +--- +created: 2026-04-08 10:38 +course: "[[29593850 - Automationtheory]]" +topic: kleene +related: "[[29593940 - Formal Languages]]" +type: lecture +status: 🔴 +tags: + - university +--- +## 📌 Summary + +> [!abstract] +> + +--- + +## 📝 Content + +The _Kleene star_ $L^*$ of a language $L subset Sigma^*$ is the set of all strings (including the empty string $epsilon$) that can be generated by arbitrary concatenation of strings in the language, that is +> $L^* := union.big_(n >= 0) L^n$ + +> [!EXAMPLE] +> For $L = {01}$ one has $L^* = {epsilon, 01, 0101, 010101, ...}$ +> $= {(01)^n bar n >= 0}$ diff --git a/30 Library/29593962 - atfl-st2026-l02-finite-representation-of-languages-full.pdf b/30 Library/29593962 - atfl-st2026-l02-finite-representation-of-languages-full.pdf new file mode 100644 index 0000000..527104e Binary files /dev/null and b/30 Library/29593962 - atfl-st2026-l02-finite-representation-of-languages-full.pdf differ diff --git a/30 Library/normalize_name.sh b/30 Library/normalize_name.sh new file mode 100755 index 0000000..ebef027 --- /dev/null +++ b/30 Library/normalize_name.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Check if a filename was provided +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi + +TARGET="$1" + +# Check if the file actually exists +if [ ! -f "$TARGET" ]; then + echo "Error: File '$TARGET' not found." + exit 1 +fi + +# Get creation time (%W). +# Note: Returns 0 or '-' if the filesystem doesn't support birth time. +BTIME=$(stat -c %W "$TARGET") + +# Fallback to last modification time (%Y) if birth time is unavailable +if [ "$BTIME" -eq 0 ] || [ "$BTIME" == "-" ]; then + BTIME=$(stat -c %Y "$TARGET") +fi + +# Calculate the minute-based timestamp (equivalent to Math.floor(ms / 60000)) +# Since stat returns seconds, we divide by 60. +FORMATTED_DATE=$(( BTIME / 60 )) + +# Define the new name +NEW_NAME="${FORMATTED_DATE} - ${TARGET}" + +# Perform the rename +mv "$TARGET" "$NEW_NAME" + +echo "Renamed: '$TARGET' -> '$NEW_NAME'"