new todos
This commit is contained in:
@@ -1,4 +1,8 @@
|
|||||||
[
|
[
|
||||||
|
(
|
||||||
|
name: "P5 rückmelden",
|
||||||
|
pattern: MonthlyOpt(dom: 10, months: ["March"]),
|
||||||
|
),
|
||||||
(
|
(
|
||||||
name: "Morello updaten",
|
name: "Morello updaten",
|
||||||
pattern: Weekly(dow: "Monday"),
|
pattern: Weekly(dow: "Monday"),
|
||||||
@@ -11,6 +15,10 @@
|
|||||||
name: "Rechnung Gertrudenhof",
|
name: "Rechnung Gertrudenhof",
|
||||||
pattern: Monthly(dom: 1),
|
pattern: Monthly(dom: 1),
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
name: "Rechnung Remagen",
|
||||||
|
pattern: Monthly(dom: 1),
|
||||||
|
),
|
||||||
(
|
(
|
||||||
name: "Rechnung Sholti",
|
name: "Rechnung Sholti",
|
||||||
pattern: Monthly(dom: 1),
|
pattern: Monthly(dom: 1),
|
||||||
|
|||||||
@@ -168,7 +168,6 @@ fn update_notes(notes_path: &PathBuf, patterns_path: Option<PathBuf>) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Pattern::Weekly { dow } => {
|
Pattern::Weekly { dow } => {
|
||||||
dbg!(dow, today);
|
|
||||||
let mut date_idx = latest_date.clone() + Duration::days(1);
|
let mut date_idx = latest_date.clone() + Duration::days(1);
|
||||||
while date_idx <= today {
|
while date_idx <= today {
|
||||||
dbg!(date_idx);
|
dbg!(date_idx);
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
5
linear_algebra_test.py
Normal file
5
linear_algebra_test.py
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
n = [1, 2, -1]
|
||||||
|
d = 8
|
||||||
|
p = [3, 5, 7]
|
||||||
|
|
||||||
|
print(1)
|
||||||
147
notes.md
147
notes.md
@@ -1583,6 +1583,8 @@ Nicht zwingend heute
|
|||||||
|
|
||||||
Hassan Schuldenliste:
|
Hassan Schuldenliste:
|
||||||
02-23: 12.50
|
02-23: 12.50
|
||||||
|
03-04: 15.50
|
||||||
|
03-05: 5.00
|
||||||
|
|
||||||
# 2026-02-24
|
# 2026-02-24
|
||||||
|
|
||||||
@@ -1699,7 +1701,7 @@ Hassan Schuldenliste:
|
|||||||
- [x] Cow Hours
|
- [x] Cow Hours
|
||||||
- [x] Zuletzt geschickte Steuerunterlagen durchschauen
|
- [x] Zuletzt geschickte Steuerunterlagen durchschauen
|
||||||
-> Das von vor paar Monaten waren von HTB erstellte Steuererklärungen, das jetzt waren AW von Finanzamt
|
-> 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?
|
- [ ] Übersicht aktiver Verträge?
|
||||||
- [ ] island Hero Frame Vorschläge
|
- [ ] island Hero Frame Vorschläge
|
||||||
- [ ] Mails schreiben für mündliche Prüfungen
|
- [ ] Mails schreiben für mündliche Prüfungen
|
||||||
@@ -1725,3 +1727,146 @@ Hassan Schuldenliste:
|
|||||||
- [ ] Hold notary appointment for both Anteilskauf and GF-Abberufung
|
- [ ] Hold notary appointment for both Anteilskauf and GF-Abberufung
|
||||||
- [ ] Change Handelsregister (Notar does this)
|
- [ ] 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
1
pandasay/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
target
|
|
||||||
1199
pandasay/Cargo.lock
generated
1199
pandasay/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -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"
|
|
||||||
@@ -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
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -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))
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user