This commit is contained in:
Elouin 2024-07-31 16:17:49 +02:00
commit 6178771a55
4 changed files with 145 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
venv/

14
README.md Normal file
View file

@ -0,0 +1,14 @@
# Slides for Tech Talks 25
First run the python script:
```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 threadednames.py
```
Then get the PID of the script and do:
```
top -p <PID> -H -d 0.5
```

1
requirements.txt Normal file
View file

@ -0,0 +1 @@
pyprctl==0.1.3

129
threadednames.py Normal file
View file

@ -0,0 +1,129 @@
import threading
import time
import os
import signal
import pyprctl
slides = []
current_slide = 0
slides.append(("static", """Herzlich
Willkommen,
zur 26. Auflage
der Tech Talks
des Kassel Code
Meetups in der
Caricatura Bar"""))
slides.append(("static", """
Die Agenda fuer
Heute:
19:15 - 19:30
Begruessung
19:30 - 20:00
Talk No 1
Goodbye
Hydration
Resumable Pages
mit Qwik
Entdecke die
Macht der
Webcomponents
- Sven
20:00 - 20:30
Talk No 2
Capture The Flag
- Marlon
20:30 - 21:00
Talk No 3
Reverse
Engineering
old
Datastructures
From System
Programming
To The Web
and back!
- Enno
21:00 - 21:30
Pizza
21:30 - 22:00
Whats Next
"""))
slides.append(("walking", """ ______ ____ _ __ ___
/_ __/___ _/ / /__ / | / /___ < /
/ / / __ `/ / //_/ / |/ / __ \ / /
/ / / /_/ / / ,< / /| / /_/ / / /
/_/ \__,_/_/_/|_| /_/ |_/\____(_) /_/ """))
slides.append(("walking", """ ______ ____ _ __ ___
/_ __/___ _/ / /__ / | / /___ |__ |
/ / / __ `/ / //_/ / |/ / __ \ __/ /
/ / / /_/ / / ,< / /| / /_/ / / __/
/_/ \__,_/_/_/|_| /_/ |_/\____(_) /____/ """))
slides.append(("walking", """ ______ ____ _ __ _____
/_ __/___ _/ / /__ / | / /___ |__ /
/ / / __ `/ / //_/ / |/ / __ \ /_ <
/ / / /_/ / / ,< / /| / /_/ / ___/ /
/_/ \__,_/_/_/|_| /_/ |_/\____(_) /____/ """))
slides.append(("walking", """ ____ ______________ ___ ______
/ __ \/ _/__ /__ / / | / / / /
/ /_/ // / / / / / / /| | / / / /
/ ____// / / /__/ /__/ ___ |/_/_/_/
/_/ /___/ /____/____/_/ |_(_|_|_) """))
def create_named_thread(name: str, slide: int) -> None:
pyprctl.set_name(name)
while current_slide == slide:
time.sleep(1)
def create_walking_thread(name: str, slide: int) -> None:
nth = 0
while current_slide == slide:
pyprctl.set_name(name[nth % len(name):nth + 15])
nth = nth + 1
time.sleep(0.5)
def render_slide() -> None:
if slides[current_slide][0] == "static":
for line in slides[current_slide][1].split('\n'):
threading.Thread(target=create_named_thread, args=(line, current_slide)).start()
if slides[current_slide][0] == "walking":
for line in slides[current_slide][1].split('\n'):
threading.Thread(target=create_walking_thread, args=(line, current_slide)).start()
if __name__ == "__main__":
render_slide()
print(f"run: 'top -p {os.getpid()} -H -d 0.5' to view the presentation")
while True:
print(slides[current_slide][1])
nav = input("j -> Next, k -> previous, q -> quit : ")
if nav =='j':
current_slide += 1
if nav == 'k':
current_slide -= 1
if nav == 'q':
os.kill(os.getpid(), signal.SIGTERM)
if current_slide < 0:
current_slide = 0
if current_slide > len(slides) - 1:
current_slide = len(slides) - 1
render_slide()