Update emory, memory, tools (+1 ~3)
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
# 2026-02-14 (Sâmbătă)
|
||||
# 2026-02-14 (Vineri)
|
||||
|
||||
## Daily Audit - 09:30
|
||||
- 3 probleme găsite
|
||||
- yt_download.py lipsă (referit în night-execute jobs)
|
||||
- 6 cron jobs active nedocumentate în cron-jobs.md
|
||||
- 4 scripturi nedocumentate în TOOLS.md
|
||||
- Propuneri trimise pe #echo-work
|
||||
## Procesate
|
||||
|
||||
### YouTube
|
||||
1. **Talk to Claude on 3CX Phone System Tutorial** (NetworkChuck) - tutorial cum să vorbești cu Claude Code prin telefon, 3CX gratuit + Raspberry Pi + 11Labs + Whisper API. Salvat: `kb/youtube/2025-02-13_talk-to-claude-3cx-phone.md`
|
||||
2. **Cum să pornești sistemul limfatic? 4 metode** (Vladimir Colun) - vibrație, lovituri dinamice, dușuri contrast, detox digestiv. Salvat: `kb/youtube/2025-02-14_sistem-limfatic-4-metode.md`
|
||||
|
||||
## Note
|
||||
- Marius a trimis link-urile pe Discord #echo
|
||||
- Primul link venit seara (23:35 București), al doilea dimineața (08:40 București)
|
||||
- Ambele procesate imediat cu transcript + TL;DR + quote-uri + idei
|
||||
|
||||
@@ -48,6 +48,25 @@
|
||||
"video": "https://www.youtube.com/watch?v=hY67Fqd44tI",
|
||||
"tldr": "3. **Dușuri contrast:** Ai încercat vreodată? Dacă nu, ai fi dispus să începi doar cu picioarele? (progresiv, cum recomandă Colun)"
|
||||
},
|
||||
{
|
||||
"file": "notes-data/projects/grup-sprijin/biblioteca/fisa-2026-02-19-umbra-iarna-din-suflet.md",
|
||||
"title": "Fișă Întâlnire Grup Sprijin",
|
||||
"date": "2026-02-14",
|
||||
"tags": [
|
||||
"grup-sprijin"
|
||||
],
|
||||
"domains": [
|
||||
"sprijin"
|
||||
],
|
||||
"types": [
|
||||
"fisa"
|
||||
],
|
||||
"category": "projects",
|
||||
"project": "grup-sprijin",
|
||||
"subdir": "biblioteca",
|
||||
"video": "",
|
||||
"tldr": ""
|
||||
},
|
||||
{
|
||||
"file": "notes-data/tools/cron-jobs.md",
|
||||
"title": "Cron Jobs - Lista completă",
|
||||
@@ -78,7 +97,7 @@
|
||||
},
|
||||
{
|
||||
"file": "memory/2026-02-14.md",
|
||||
"title": "2026-02-14 (Sâmbătă)",
|
||||
"title": "2026-02-14 (Vineri)",
|
||||
"date": "2026-02-14",
|
||||
"tags": [],
|
||||
"domains": [],
|
||||
@@ -89,7 +108,7 @@
|
||||
"project": null,
|
||||
"subdir": null,
|
||||
"video": "",
|
||||
"tldr": "- Propuneri trimise pe #echo-work"
|
||||
"tldr": "- Ambele procesate imediat cu transcript + TL;DR + quote-uri + idei"
|
||||
},
|
||||
{
|
||||
"file": "notes-data/coaching/2026-02-13-dimineata.md",
|
||||
@@ -4874,8 +4893,8 @@
|
||||
"title": "Proiect: Vending Master - Integrare Website → ROA",
|
||||
"date": "2026-01-30",
|
||||
"tags": [
|
||||
"integrare",
|
||||
"vending-master"
|
||||
"vending-master",
|
||||
"integrare"
|
||||
],
|
||||
"domains": [
|
||||
"work"
|
||||
@@ -5355,12 +5374,12 @@
|
||||
}
|
||||
],
|
||||
"stats": {
|
||||
"total": 314,
|
||||
"total": 315,
|
||||
"by_domain": {
|
||||
"work": 88,
|
||||
"health": 46,
|
||||
"growth": 140,
|
||||
"sprijin": 30,
|
||||
"sprijin": 31,
|
||||
"scout": 2
|
||||
},
|
||||
"by_category": {
|
||||
@@ -5371,7 +5390,7 @@
|
||||
"exercitii": 4,
|
||||
"health": 2,
|
||||
"insights": 21,
|
||||
"projects": 172,
|
||||
"projects": 173,
|
||||
"reflectii": 3,
|
||||
"retete": 1,
|
||||
"tools": 6,
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
# Fișă Întâlnire Grup Sprijin
|
||||
|
||||
**Data:** Joi, 19 februarie 2026, ora 18:00
|
||||
**Tema:** Umbra — Iarna din suflet
|
||||
|
||||
---
|
||||
|
||||
## 1. Check-in (15-20 min)
|
||||
|
||||
**Întrebare de deschidere:**
|
||||
- Ce s-a întâmplat în ultimele două săptămâni?
|
||||
- Cum te simți acum? Ce emoții aduci cu tine în seara asta?
|
||||
- Dacă starea ta de acum ar fi un anotimp — care ar fi?
|
||||
|
||||
**Format:** Fiecare pe rând, fără întreruperi, fără sfaturi. Doar ascultare.
|
||||
|
||||
---
|
||||
|
||||
## 2. Cadrare: Ce este Umbra? (10 min)
|
||||
|
||||
**De citit/spus grupului:**
|
||||
|
||||
Toți avem părți din noi pe care le ascundem — de alții, dar mai ales de noi înșine. Nu neapărat lucruri "rele". Pot fi calități, emoții, dorințe pe care le-am învățat că nu sunt ok. Le-am pus într-o cutie și am aruncat cheia.
|
||||
|
||||
Carl Jung le-a numit **Umbre**. Nu sunt dușmani. Sunt părți din noi care așteaptă să fie văzute.
|
||||
|
||||
Două lucruri importante despre umbre:
|
||||
- **Consumă energie** ca să le ținem ascunse. E ca și cum ai ține un balon sub apă — nu e greu o secundă, dar dacă îl ții toată ziua, te epuizează.
|
||||
- **Ne influențează fără să știm.** Ne irită la alții exact ce nu acceptăm la noi. Ne sabotează în moduri pe care nu le înțelegem.
|
||||
|
||||
Vestea bună: nu trebuie să le "reparăm". Trebuie doar să le vedem. Să le acceptăm că sunt acolo. Asta singură eliberează energie.
|
||||
|
||||
**De ce facem asta azi:** Nu pentru a rezolva ceva. Ci pentru a privi cu curiozitate, într-un loc sigur, unde nimeni nu judecă. Fiecare explorează cât vrea și cât se simte confortabil. Nu e nicio presiune să împărtășești mai mult decât simți.
|
||||
|
||||
---
|
||||
|
||||
## 3. Exercițiu: Cele 4 întrebări ale Umbrei (30 min)
|
||||
|
||||
**Cadrare (2-3 min):**
|
||||
|
||||
Următoarele întrebări sunt ca niște oglinzi. Nu au răspunsuri corecte sau greșite. Scopul nu e să analizezi, ci să observi — ce apare? Ce simți când citești întrebarea? Uneori prima reacție (chiar și "nu știu" sau un discomfort) e cel mai sincer răspuns.
|
||||
|
||||
**Întrebările** (fiecare primește foaia, 10-12 min reflecție individuală, în liniște):
|
||||
|
||||
1. **Ce te irită la alții?** Gândește-te la cineva care te-a deranjat recent. Ce anume te-a supărat? Unde ai și tu acea trăsătură — poate în altă formă, poate mai mică?
|
||||
|
||||
2. **Ce ascunzi despre tine?** Ce parte din tine nu arăți lumii? Ce ar fi surprinzător pentru alții să afle despre tine?
|
||||
|
||||
3. **Ce ai face dacă nu te-ar judeca nimeni?** Dacă ai fi complet liber de privirea celorlalți — ce ai spune, ce ai face, cum ai trăi diferit?
|
||||
|
||||
4. **Ce complimente refuzi sau minimizezi?** Când cineva îți spune ceva frumos, ce respingi? "A, nu e mare lucru..." — ce e în spatele acelui refuz?
|
||||
|
||||
**Instrucțiune:** Alege 1-2 întrebări care "te prind". Scrie liber pe foaie, fără cenzură. Nimeni nu va citi ce scrii.
|
||||
|
||||
**Împărtășire în grup (15-18 min):**
|
||||
- Cine vrea să împărtășească ceva din ce a descoperit?
|
||||
- Fără sfaturi, fără "și eu la fel". Doar ascultare și "mulțumesc".
|
||||
- E ok să spui "am descoperit ceva dar nu vreau să împărtășesc acum" — și asta e valid.
|
||||
|
||||
---
|
||||
|
||||
## 4. Reflecție: Tristețea ca mesager (15 min)
|
||||
|
||||
**Cadrare (2-3 min):**
|
||||
|
||||
Uneori simțim tristețe, gol, lipsă de sens — mai ales iarna, când e întuneric devreme și frigul pare că intră și înăuntru. Reacția normală e să vrem să scăpăm de aceste stări. Dar dacă am privi altfel?
|
||||
|
||||
Tristețea, golul, lipsa de motivație — nu sunt dușmani. Sunt **mesageri**. Vin să ne spună ceva despre o nevoie pe care nu o vedem.
|
||||
|
||||
La fel cum iarna nu e moartea naturii, ci **odihna** ei — poate și iarna din suflet are un rost. Sub zăpadă, rădăcinile cresc.
|
||||
|
||||
**Exercițiu (5 min, individual):**
|
||||
- Dacă tristețea ta (sau golul, sau oboseala) ar avea glas — **ce ți-ar spune?**
|
||||
- **Ce nevoie** exprimă? (odihnă? conexiune? sens? recunoaștere? libertate?)
|
||||
- Scrie 2-3 rânduri.
|
||||
|
||||
**Împărtășire (7-8 min):**
|
||||
- Cine vrea să spună ce a "auzit"?
|
||||
- Același format: ascultare, fără sfaturi.
|
||||
|
||||
---
|
||||
|
||||
## 5. Încheiere (10 min)
|
||||
|
||||
**Întrebări de închidere (fiecare răspunde pe scurt):**
|
||||
- Cu ce pleci de aici în seara asta?
|
||||
- Ce ai observat nou despre tine?
|
||||
|
||||
**Provocare pentru următoarele 2 săptămâni (opțional):**
|
||||
Când simți o emoție pe care vrei să o "dai la o parte" — oprește-te o secundă și întreabă-o: "Ce vrei să îmi spui?"
|
||||
|
||||
---
|
||||
|
||||
## Note practice
|
||||
|
||||
- Pregătește foi A4 și pixuri pentru exercițiul de scriere
|
||||
- Apă pentru toată lumea
|
||||
- Scaune în cerc, lumină mai blândă dacă se poate
|
||||
- Cronometrează exercițiile — e ușor să se depășească timpul la împărtășire
|
||||
|
||||
---
|
||||
|
||||
## După întâlnire
|
||||
|
||||
**Ce a mers bine:**
|
||||
|
||||
|
||||
**Ce aș face diferit:**
|
||||
|
||||
|
||||
**Observații despre grup:**
|
||||
|
||||
@@ -29,6 +29,12 @@ try:
|
||||
if dejavu_path.exists():
|
||||
pdf.add_font("DejaVu", "", str(dejavu_path))
|
||||
pdf.add_font("DejaVu", "B", "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf")
|
||||
oblique_path = Path("/usr/share/fonts/truetype/dejavu/DejaVuSans-Oblique.ttf")
|
||||
if oblique_path.exists():
|
||||
pdf.add_font("DejaVu", "I", str(oblique_path))
|
||||
bold_oblique = Path("/usr/share/fonts/truetype/dejavu/DejaVuSans-BoldOblique.ttf")
|
||||
if bold_oblique.exists():
|
||||
pdf.add_font("DejaVu", "BI", str(bold_oblique))
|
||||
pdf.set_font("DejaVu", "", 10)
|
||||
use_dejavu = True
|
||||
else:
|
||||
@@ -37,6 +43,42 @@ try:
|
||||
pdf.set_font("Helvetica", "", 10)
|
||||
use_dejavu = False
|
||||
|
||||
def render_rich_text(pdf, text, use_dejavu, size):
|
||||
"""Render text with inline **bold** and *italic* formatting."""
|
||||
font_name = "DejaVu" if use_dejavu else "Helvetica"
|
||||
# Remove links but keep text
|
||||
text = re.sub(r'\[(.*?)\]\(.*?\)', r'\1', text)
|
||||
# Split on bold/italic markers, process segments
|
||||
# Pattern: **bold**, __bold__, *italic*, _italic_
|
||||
parts = re.split(r'(\*\*.*?\*\*|__.*?__|\*.*?\*|_.*?_)', text)
|
||||
for part in parts:
|
||||
if not part:
|
||||
continue
|
||||
if part.startswith('**') and part.endswith('**'):
|
||||
pdf.set_font(font_name, "B", size)
|
||||
pdf.write(5, part[2:-2])
|
||||
pdf.set_font(font_name, "", size)
|
||||
elif part.startswith('__') and part.endswith('__'):
|
||||
pdf.set_font(font_name, "B", size)
|
||||
pdf.write(5, part[2:-2])
|
||||
pdf.set_font(font_name, "", size)
|
||||
elif part.startswith('*') and part.endswith('*') and len(part) > 2:
|
||||
try:
|
||||
pdf.set_font(font_name, "I", size)
|
||||
except:
|
||||
pass # italic not available, keep current font
|
||||
pdf.write(5, part[1:-1])
|
||||
pdf.set_font(font_name, "", size)
|
||||
elif part.startswith('_') and part.endswith('_') and len(part) > 2:
|
||||
try:
|
||||
pdf.set_font(font_name, "I", size)
|
||||
except:
|
||||
pass
|
||||
pdf.write(5, part[1:-1])
|
||||
pdf.set_font(font_name, "", size)
|
||||
else:
|
||||
pdf.write(5, part)
|
||||
|
||||
# Parse markdown line by line
|
||||
lines = markdown_content.split('\n')
|
||||
i = 0
|
||||
@@ -77,28 +119,25 @@ try:
|
||||
# Bullet point
|
||||
elif line.strip().startswith('- ') or line.strip().startswith('* '):
|
||||
text = line.strip().lstrip('-*').strip()
|
||||
# Use simple dash for bullet
|
||||
pdf.multi_cell(0, 5, '- ' + text, ln=True)
|
||||
pdf.write(5, '- ')
|
||||
render_rich_text(pdf, text, use_dejavu, 10)
|
||||
pdf.ln(5)
|
||||
|
||||
# Numbered list
|
||||
elif re.match(r'^\s*\d+\.\s', line):
|
||||
text = re.sub(r'^\s*\d+\.\s', '', line)
|
||||
pdf.multi_cell(0, 5, text, ln=True)
|
||||
elif re.match(r'^\s*(\d+\.)\s', line):
|
||||
m = re.match(r'^\s*(\d+\.)\s(.*)', line)
|
||||
prefix = m.group(1) + ' '
|
||||
text = m.group(2)
|
||||
pdf.write(5, prefix)
|
||||
render_rich_text(pdf, text, use_dejavu, 10)
|
||||
pdf.ln(5)
|
||||
|
||||
# Regular text with formatting
|
||||
else:
|
||||
# Clean up markdown markers but keep structure
|
||||
text = line.strip()
|
||||
|
||||
# Remove inline markdown
|
||||
text = re.sub(r'\*\*(.*?)\*\*', r'\1', text) # Bold
|
||||
text = re.sub(r'__(.*?)__', r'\1', text) # Bold
|
||||
text = re.sub(r'\*(.*?)\*', r'\1', text) # Italic
|
||||
text = re.sub(r'_(.*?)_', r'\1', text) # Italic
|
||||
text = re.sub(r'\[(.*?)\]\(.*?\)', r'\1', text) # Links
|
||||
|
||||
if text:
|
||||
pdf.multi_cell(0, 5, text, ln=True)
|
||||
render_rich_text(pdf, text, use_dejavu, 10)
|
||||
pdf.ln(5)
|
||||
|
||||
i += 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user