new todos

This commit is contained in:
2026-03-05 15:54:13 +01:00
parent 31a235763b
commit b429f884c4
10 changed files with 1042 additions and 1399 deletions

View File

@@ -1,4 +1,8 @@
[
(
name: "P5 rückmelden",
pattern: MonthlyOpt(dom: 10, months: ["March"]),
),
(
name: "Morello updaten",
pattern: Weekly(dow: "Monday"),
@@ -11,6 +15,10 @@
name: "Rechnung Gertrudenhof",
pattern: Monthly(dom: 1),
),
(
name: "Rechnung Remagen",
pattern: Monthly(dom: 1),
),
(
name: "Rechnung Sholti",
pattern: Monthly(dom: 1),

View File

@@ -168,7 +168,6 @@ fn update_notes(notes_path: &PathBuf, patterns_path: Option<PathBuf>) {
}
}
Pattern::Weekly { dow } => {
dbg!(dow, today);
let mut date_idx = latest_date.clone() + Duration::days(1);
while date_idx <= today {
dbg!(date_idx);

File diff suppressed because one or more lines are too long

5
linear_algebra_test.py Normal file
View File

@@ -0,0 +1,5 @@
n = [1, 2, -1]
d = 8
p = [3, 5, 7]
print(1)

147
notes.md
View File

@@ -1583,6 +1583,8 @@ Nicht zwingend heute
Hassan Schuldenliste:
02-23: 12.50
03-04: 15.50
03-05: 5.00
# 2026-02-24
@@ -1699,7 +1701,7 @@ Hassan Schuldenliste:
- [x] Cow Hours
- [x] Zuletzt geschickte Steuerunterlagen durchschauen
-> Das von vor paar Monaten waren von HTB erstellte Steuererklärungen, das jetzt waren AW von Finanzamt
- [ ] Localbenefits: PIN? Gebühren?
- [q] Localbenefits: PIN? Gebühren?
- [ ] Übersicht aktiver Verträge?
- [ ] island Hero Frame Vorschläge
- [ ] Mails schreiben für mündliche Prüfungen
@@ -1725,3 +1727,146 @@ Hassan Schuldenliste:
- [ ] Hold notary appointment for both Anteilskauf and GF-Abberufung
- [ ] Change Handelsregister (Notar does this)
# 2026-03-02
- [ ] Kino
- [x] Lennart GoT
- [x] Gita
- [x] Wojtek schreiben
- [ ] Remagen
- [ ] Zusammenfassung Remagen
- [ ] Mindmap Remagen
- [ ] Ella Media
- [ ] Vertragsentwurf erstellen
- [x] Pandasay 4, 8, 128px
- [ ] Morello updaten
- [p] Rechnung Gertrudenhof
- [p] Rechnung Remagen
- [p] Rechnung Sholti
- [ ] Sachbezüge überweisen
- [ ] Localbenefits
- [x] PIN
- [ ] Gebühren?
- [ ] Übersicht aktiver Verträge?
- [ ] island Hero Frame Vorschläge
- [ ] Mails schreiben für mündliche Prüfungen
- [ ] Ust Eigenbelege
- [ ] Büro nochmal anfragen?
- [ ] Weitere Leads Thomas
- [ ] Physik
- [ ] Führerschein informieren
- [ ] Finanzierung durch GmbH
- [ ] Fink: 65€/h?
- [ ] Theorie üben
- [ ] Bob
- [ ] csv Editor
- [ ] Wojtek & R1
- [p] Termin vereinbaren
- [ ] Hold GSV for Wojteks end at PL
- [ ] Hold notary appointment for both Anteilskauf and GF-Abberufung
- [ ] Change Handelsregister (Notar does this)
# 2026-03-03
- [x] Notar antworten
- [p] Kino
- [ ] Remagen
- [ ] Zusammenfassung Remagen
- [ ] Mindmap Remagen
- [ ] Ella Media
- [ ] Vertragsentwurf erstellen
- [x] Morello updaten
- [x] Rechnung Gertrudenhof
- [x] Rechnung Remagen
- [ ] Rechnung Sholti
- [x] Sachbezüge überweisen
- [x] Localbenefits
- [x] Gebühren?
-> Siehe Mail
- [ ] Übersicht aktiver Verträge?
- [ ] island Hero Frame Vorschläge
- [ ] Mails schreiben für mündliche Prüfungen
- [ ] Ust Eigenbelege
- [ ] Büro nochmal anfragen?
- [ ] Weitere Leads Thomas
- [ ] Physik
- [ ] Führerschein informieren
- [ ] Finanzierung durch GmbH
- [ ] Fink: 65€/h?
- [ ] Theorie üben
- [ ] Bob
- [ ] csv Editor
- [ ] Wojtek & R1
- [ ] Termin vereinbaren
- [ ] Hold GSV for Wojteks end at PL
- [ ] Hold notary appointment for both Anteilskauf and GF-Abberufung
- [ ] Change Handelsregister (Notar does this)
# 2026-03-04
- [x] SEO Meeting:
- Keine Kontaktmöglichkeit / kein Secondary CTA im Heroframe
- Keywords im gleichen Teich mit großen Fischen
- Erstempfehlung: Lokalseiten
- Nicht mit Sichtbarkeit warten
- Dynamische contents gehen nicht
- Basiert auf FTP-Zugang mit Wordpress
- [ ] Pandasay deployen
- [x] Kino
- [ ] Kino: Extraticket bestellen
- [ ] Remagen
- [x] Zusammenfassung Remagen
- [x] Mindmap Remagen
- [ ] Mindmap Remagen #2?
- [ ] Ella Media
- [ ] Vertragsentwurf erstellen
- [ ] Rechnung Sholti
- [ ] Übersicht aktiver Verträge?
- [ ] island Hero Frame Vorschläge
- [ ] Mails schreiben für mündliche Prüfungen
- [ ] Ust Eigenbelege
- [ ] Büro nochmal anfragen?
- [ ] Weitere Leads Thomas
- [ ] Physik
- [ ] Führerschein informieren
- [ ] Finanzierung durch GmbH
- [ ] Fink: 65€/h?
- [ ] Theorie üben
- [ ] Bob
- [ ] csv Editor
- [ ] Wojtek & R1
- [ ] Termin vereinbaren
- [ ] Hold GSV for Wojteks end at PL
- [ ] Hold notary appointment for both Anteilskauf and GF-Abberufung
- [ ] Change Handelsregister (Notar does this)
# 2026-03-05
LinkedIn-Notizen
- [ ] Pandasay deployen
- [ ] Kino: Extraticket bestellen
- [ ] Remagen
- [ ] Mindmap Remagen #2?
- [ ] Ella Media
- [ ] Vertragsentwurf erstellen
- [ ] Rechnung Sholti
- [ ] Übersicht aktiver Verträge?
- [ ] island Hero Frame Vorschläge
- [ ] Mails schreiben für mündliche Prüfungen
- [ ] Ust Eigenbelege
- [ ] Büro nochmal anfragen?
- [ ] Weitere Leads Thomas
- [ ] Physik
- [ ] Führerschein informieren
- [ ] Finanzierung durch GmbH
- [ ] Fink: 65€/h?
- [ ] Theorie üben
- [ ] Bob
- [ ] csv Editor
- [ ] Wojtek & R1
- [ ] Termin vereinbaren
- [ ] Hold GSV for Wojteks end at PL
- [ ] Hold notary appointment for both Anteilskauf and GF-Abberufung
- [ ] Change Handelsregister (Notar does this)

1
pandasay/.gitignore vendored
View File

@@ -1 +0,0 @@
target

1199
pandasay/Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +0,0 @@
[package]
name = "pandasay"
version = "0.1.0"
edition = "2024"
[dependencies]
image = "0.25.9"
showie = "2.0.1"
clap = { version = "4.5.60", features = ["derive"] }
textwrap = "0.16.2"
unicode-width = "0.2.2"

View File

@@ -1,47 +0,0 @@
use clap::Parser;
use image::load_from_memory;
use std::io::{self, Read};
mod speech;
#[derive(Parser)]
struct Args {
#[arg(short, long, default_value_t = 32)]
res: u8,
}
const BYTES_32: &[u8] = include_bytes!(
"/home/jan/pl/nextcloud/Pandaloop/Intern/logos/pl_logo_r1/logo_pixel_art_32.png"
);
const BYTES_64: &[u8] = include_bytes!(
"/home/jan/pl/nextcloud/Pandaloop/Intern/logos/pl_logo_r1/logo_pixel_art_64.png"
);
fn main() {
let args = Args::parse();
let mut input_buffer = String::new();
let _ = io::stdin().read_to_string(&mut input_buffer);
let bytes = match args.res {
32 => BYTES_32,
64 => BYTES_64,
_ => panic!("Res should be 32 or 64"),
};
let img = load_from_memory(bytes).expect("Failed to decode embedded image");
let s = showie::render(&img);
println!(
"{}\n{}",
speech::print(
&input_buffer.trim(),
&speech::FormatOptions {
think: false,
width: 300,
},
),
s
);
}

View File

@@ -1,110 +0,0 @@
use textwrap::wrap;
use unicode_width::UnicodeWidthStr;
pub struct FormatOptions {
pub think: bool,
pub width: u16,
}
struct Chars {
arrow: &'static str,
top: &'static str,
bottom: &'static str,
left: &'static str,
right: &'static str,
single_left: &'static str,
single_right: &'static str,
angled_up_right: &'static str,
angled_up_left: &'static str,
angled_down_right: &'static str,
angled_down_left: &'static str,
}
static SAY_CHARS: Chars = Chars {
arrow: "\\",
top: "-",
bottom: "-",
left: "|",
right: "|",
single_left: "<",
single_right: ">",
angled_up_right: "/",
angled_up_left: "\\",
angled_down_right: "\\",
angled_down_left: "/",
};
static THINK_CHARS: Chars = Chars {
arrow: "",
top: "",
bottom: "",
left: "(",
right: ")",
single_left: "(",
single_right: ")",
angled_up_right: "",
angled_up_left: "",
angled_down_right: "",
angled_down_left: "",
};
#[must_use]
pub fn generate(message: &str, format_opts: &FormatOptions) -> String {
let think = format_opts.think;
let width = format_opts.width;
let chars = if think { &THINK_CHARS } else { &SAY_CHARS };
let mut lines = wrap(message, width as usize);
let longest = lines.iter().map(|line| line.width()).max().unwrap();
format!(
"
{}
{}
{}
{}
{}",
chars.top.repeat(longest),
if lines.len() == 1 {
format!("{} {} {}", chars.single_left, lines[0], chars.single_right)
} else {
let mut result = format!(
"{} {}{}{}",
chars.angled_up_right,
lines[0],
" ".repeat(longest - lines[0].width() + 1),
chars.angled_up_left
);
lines.remove(0);
let last = lines.pop().unwrap();
for line in lines {
result = format!(
"{}\n{} {}{}{}",
result,
chars.left,
line,
" ".repeat(longest - line.width() + 1),
chars.right,
);
}
format!(
"{}\n{} {}{}{}",
result,
chars.angled_down_right,
last,
" ".repeat(longest - last.width() + 1),
chars.angled_down_left,
)
},
chars.bottom.repeat(longest),
chars.arrow,
chars.arrow,
)
}
pub fn print(message: &str, format_opts: &FormatOptions) -> String {
format!("{}", generate(message, &format_opts))
}