# Hakaton u Novembru

**URL:** <https://forum.dmz.rs/t/hakaton-u-novembru/310>\
**Category:** Event\
**Created:** [October 4, 2023, 1:34pm UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310 "2023-10-04T13:34:14Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![fram3d](https://forum.dmz.rs/user_avatar/forum.dmz.rs/fram3d/32/1858_2.png) [@fram3d](https://forum.dmz.rs/u/fram3d)\
**Post date:** [October 4, 2023, 1:34pm UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310/1 "2023-10-04T13:34:14Z")

</div>

Postavite ovde predloge za temu za hakaton u Novembru.

Evo nekih predloga za pocetak:

- Pisanje tutoriala
- Sajt decentrale
- Pisanje za Libre casopis
- Game jam - Pravljenje nove igrice/igrica
- Animacije i grafika za Decentralu

---

<div class="post-metadata">

**Author:** ![eegor](https://forum.dmz.rs/user_avatar/forum.dmz.rs/eegor/32/308_2.png) [@eegor](https://forum.dmz.rs/u/eegor)\
**Post date:** [October 5, 2023, 10:31pm UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310/2 "2023-10-05T22:31:40Z")

</div>

Basic lightweight clipboard manager for linux \<3 xD

---

<div class="post-metadata">

**Author:** ![fram3d](https://forum.dmz.rs/user_avatar/forum.dmz.rs/fram3d/32/1858_2.png) [@fram3d](https://forum.dmz.rs/u/fram3d)\
**Post date:** [October 6, 2023, 9:46am UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310/3 "2023-10-06T09:46:49Z")

</div>

Super ideja 🙂 Mislim da bi to mogli lagano 😃

---

<div class="post-metadata">

**Author:** ![eline](https://forum.dmz.rs/user_avatar/forum.dmz.rs/eline/32/250_2.png) [@eline](https://forum.dmz.rs/u/eline)\
**Post date:** [October 6, 2023, 4:06pm UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310/4 "2023-10-06T16:06:35Z")

</div>

Koji display server? X11/Wayland?

---

<div class="post-metadata">

**Author:** ![fram3d](https://forum.dmz.rs/user_avatar/forum.dmz.rs/fram3d/32/1858_2.png) [@fram3d](https://forum.dmz.rs/u/fram3d)\
**Post date:** [October 6, 2023, 8:38pm UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310/5 "2023-10-06T20:38:04Z")

</div>

Je li moze isti app za oba? Da li wayland komplikuje to iz bezbednosti?

---

<div class="post-metadata">

**Author:** ![eline](https://forum.dmz.rs/user_avatar/forum.dmz.rs/eline/32/250_2.png) [@eline](https://forum.dmz.rs/u/eline)\
**Post date:** [October 7, 2023, 12:23am UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310/6 "2023-10-07T00:23:07Z")

</div>

U teoriji verovatno može, ali bi zahtevalo da praktično imaš 2 programa u jednom, što po meni nije prihvatljivo rešenje. Takođe bitno je i šta se tačno misli pod clipboard manager - pošto je neke stvari trivijalno implementirati, dok su druge (skoro) nemoguće bez ogromnih žrtvi (bezbednost, performanse, ergonomija, itd.).

> Da li wayland komplikuje to iz bezbednosti?

Wayland i x11 arhitektura clipboard-a i cele te priče nije ‘značajno’ različita, barem koliko sam ja upoznat. Vecina detalja (tj razlika) se nalazi u implementaciji, i zato i mislim da nije moguće spojiti ih u jedan program.

Cela arhitekture clipboard je dosta zanimljiva (barem meni). Mentalni model u kome program ‘kopira’ _nesto_ u clipboard je potpuno netačna, pravo ‘kopiranje’ se zapravo nikad ne desi (barem u ‘idealnom’ slucaju). Ako nekoga zanima, mogu ovih dana napisati blogpost na tu temu 😅 .

---

<div class="post-metadata">

**Author:** ![eegor](https://forum.dmz.rs/user_avatar/forum.dmz.rs/eegor/32/308_2.png) [@eegor](https://forum.dmz.rs/u/eegor)\
**Post date:** [October 7, 2023, 2:37pm UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310/7 "2023-10-07T14:37:53Z")

</div>

Da se razumemo, razlog što sam to predložio je što mi kosa opada od copyQ i sličnih, pa reko kad već pitate 😂 Ja sam na x11, i jedino što mi treba jeste poslednjih 10-20ak unosa, kao što je win to rešio. Sve ostalo mi je iskreno overkill.

---

<div class="post-metadata">

**Author:** ![eegor](https://forum.dmz.rs/user_avatar/forum.dmz.rs/eegor/32/308_2.png) [@eegor](https://forum.dmz.rs/u/eegor)\
**Post date:** [October 7, 2023, 2:48pm UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310/8 "2023-10-07T14:48:24Z")

</div>

Voleo bih da pročitam, ako te ne mrzi da pišeš, jako si to kriptično plasirao xD

---

<div class="post-metadata">

**Author:** ![eline](https://forum.dmz.rs/user_avatar/forum.dmz.rs/eline/32/250_2.png) [@eline](https://forum.dmz.rs/u/eline)\
**Post date:** [October 7, 2023, 3:34pm UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310/9 "2023-10-07T15:34:31Z")

</div>

Ovo je pokusaj objašnjenja clipboard-a u X11 display server-u. (nista od blog  
posta za sad xd)

Za početak, ‘clipboard’ je zapravo ‘selection’ ili selekcija. Postoji vise od  
jedne seleckije, i sve su nezavisne. Broj selekcija u teoriji nije ogranicen,  
ali da bi neka aplikacije koristila selekciju ona mora da zna nesto o njoj -  
sto znaci da ako kreiramo sopstvenu selekciju X ne mozemo ocekivati da svi  
programi vec znaju kako da koriste tu selekciju.

Selekcije predstavljaju formu IPC-a (tj inter process comunication, ili - medju  
procesne komunikacije). X11 server tu ima ulogu brokera ili scheduler-a.

Ta komunikacija izgleda (pojednostavljeno) ovako:

- aplikacija A objavi X11 serveru da ona ‘poseduje’ selekciju X
  - ovde aplikacija A ne ‘kopira’ nista, samo kaze da ako neko zatrazi tu  
selekciju, X11 moze aplikaciji A da prosledi taj zahtev

- aplikacija B zatrazi X11 serveru da ispise selekciju X u Y
- X11 server prosledi tu poruku aplikaciji koja poseduje selekciju X (u ovom  
slucaju aplikaciji A)
- aplikacija A ispise selekciju X u Y

Naravno, u stvarnosti, selekcije se ne zovu X, Y i Z, vec postoje 3  
standardizovane selekcije (barem zadnji put kad sam ja proverio):

- PRIMARY (to je clipboard ‘rezervisan’ za skroll dugme na mišu)
- SECONDARY
- CLIPBOARD (ovaj je ‘obicno’ ctrl+c clipboard)

Pocetak problema:

Ovo deluje jednostavno zato sto za za sad nismo pomenuli cinjenicu da nekad  
zelimo da kopiramo nesto sto nije tekst, kao ni da nekad razlicite aplikacije  
razumeju iste podatke na razlicite nacine (kopiranje slike u vim kopira link ka  
slici, barem ako je sve dobro implementirano i konfigurisano).

Znaci onaj deo “aplikacija B zatrazi X11 serveru da ispise selekciju X u Y” je  
zapravo “aplikacija B zatrazi X11 serveru da ispise selekciju X u Y u (formatu)  
Z”.

Ovaj deo je resljiv, samo dodaje kompleksnost. U praksi znaci da aplikacija A  
treba da zna kako da ispise selekciju X u formatu Z - sto nije uvek slucaj.

Ali tu nije kraj problemima - sta se desi ako se aplikacija koja poseduje  
selekciju X, ugasi (ispravno ili neispravno, tj, ili je mi ugasimo, ili se desi  
neka greska koja je abort-uje). Onda, ako aplikacija B zatrazi selekciju X, X11  
nema kome da prosledi zahtev, jer niko ne poseduje selekciju X vise, i  
aplikacija B moze da se slika 🙂

Jedan od resenja je clipboard manager (CM na dalje) koji bi stajao između  
klijenta (aplikacije A) i X11 servera, i kada aplikacija A objavi da poseduje  
selekciju X, CM bi presreo zahtev, poslao ‘lazni zahtev’ da CM zahteva da  
aplikacija A ispise selekciju X u Y (to je neka interna baza CM-a), a tek bi  
onda obavestio X11 server da CM poseduje selekciju X.

Ovo deluje kao da resava dobar deo problema, ali u nekim slucajevima nije  
prihvatljivo - sta ako aplikacija ima osetljive dokumente, tada nije bas  
sigurno da tek tako ispise selekciju CM-u.

Ovo je skraceno koliko sam mogao a da u isto vreme ostane informativno 😅

Wayland ediciju ostavljam za drugi put. Hvala sto ste dosli na moj Ted Talk 😅

---

<div class="post-metadata">

**Author:** ![fram3d](https://forum.dmz.rs/user_avatar/forum.dmz.rs/fram3d/32/1858_2.png) [@fram3d](https://forum.dmz.rs/u/fram3d)\
**Post date:** [October 17, 2023, 9:57am UTC](https://forum.dmz.rs/t/hakaton-u-novembru/310/10 "2023-10-17T09:57:05Z")

</div>

Evo glasanje onda za temu hakatona u Novembru

_Poll ([view on site](https://forum.dmz.rs/t/hakaton-u-novembru/310/10))_
