Koós Andor - személyes weboldal

Üdvözöllek a weboldalamon! Koós Andor vagyok, az ELTE informatika kar hallgatója és az Eötvös Collegium tagja.

Elérhetőségek

Elérhetőségek Matrix-on a @esvagy:esvagy.com címen érhetsz el.
Szolgáltatás Cím
Matrix @esvagy:esvagy.com

Tartalom

Az oldalak tartalma röviden Ezen oldal további részében magamról olvashatsz, a szoftverfüggetlenség oldalon a szoftverfüggetlenség fontosságágát részletezem saját szempontból, a Matrix fiók felállítása oldalon pedig ehhez adok egy részletes leírást, továbbá a Matrix működésével kapcsolatos fontosabb dolgokat írom le.
Magamról Software-függetlenség Matrix fiók felállítása
Ezen oldal további részében rólam tudhatsz meg többet. Itt a szoftverfüggetlenség fontosságát részletezem saját szempontból. Saját matrix fiók létrehozásához segédlet, továbbá működéssel kapcsolatos dolgok.

Magamról

Régebben több egyszerűbb játékot is készítettem, ezek elérhetőek az itch.io oldalamon. A már nem használt github oldalam itt elérhető.

NixOS

Az elmúlt időszakban a saját NixOS konfigurációm felállításán dolgoztam, és az általam használt szoftverek nyílt forráskódúra cserélésén. A NixOS egy Linux disztribúció, amely egy funkcionális nyelv (nix) segítségével lehetővé teszi, hogy egy környezetet (legyen az egy egész operációs rendszer vagy csak egy shellben használható fejlesztői környezet) determinisztikusan, megismételhetően leírjunk. Ez többek között úgy érhető el, hogy a projekt része egy csomag kezelő is, amely nix derivációk segítségével (nix kódok, amely ‘futtatása’ eredményeként egy csomagot épít, pl. firefox) determinisztikusan képes csomagokat építeni. Ezek a csomagok később az os-ben vagy egy shell fejlesztői környezetben használhatóak.

Saját szerver használata avagy self-hosting

Az előbb említett nyelv használatával egy szerver is determinisztikusan felállítható. A jelenleg megjelenített oldal a saját, NixOS-el felállított szerveremen található, az esvagy.com domain erre a szerverre mutat. A szerver igazából egy régi, nem használt laptopom, ami új esélyt kapott, és jelenleg a szoftverfüggetlenségem elérésében segít. Ezen a szerveren fut a matrix fiókom is, de több, privát szolgáltatás is fut saját használatra.

Nextcloud

A Nextcloud egy felhőtárhelynek használható alternatíva a Google drive és a Onedrive helyett, de ennél sokkal többre is alkalmas, az egész Google vagy Microsoft által nyújtott felhőcsomag lecserélésére alkalmas, 100%-ig nyílt forráskódú szoftver. Felhőtárhely mellett használható képgalériaként, zenelejátszóként (akár zeneszerverként is Ampache vagy Subsonic protolok segítségével), jegyzetek szinkronizálására, naptárak és teendők szinkronizálására (WebDAV és CalDAV). Tárhelyként biztonságos, mert saját hardveren fut, így nem nézhet bele egy harmadik fél, aki üzemelteti. Ezek mellett a fájlok automatikusan verzió kezelve vannak, így ha véletlenül egy hibás fájl kerülne feltöltésre, vagy törlődne a fájl, több régebbi verzió is elérhető, és a fájlok megoszthatóak jelszóval, felhasználói bejelentkezés nélkül is. Továbbá vannak applikációk, amik elérhetőek, de én jelenleg nem használok, viszont említésre méltóak, például a nextcloud használható egy real time chat applikációként is (teams alternatíva), online irodai alkalmazások használatára (Microsoft és Google docs alternatíva), de jelszókezelő plugin is elérhető. Sok nextcloud-hoz adható applikáció létezik, és természetesen ezek is mind nyílt forráskódúak.

Matrix

A matrix egy decentralizált valós idejű chat applikáció, amit több nyílt forráskódú projekthez is használnak kommunikációs platformként. A valós idejű chatelés mellett használható hanghívások és videóhívások lebonyolítására is. A platform E2EE-t használ, így az üzeneteink nem érhetőek el más számára még akkor sem, ha a szerveren lévő adatokat olvasni tudják. A matrix-hoz több féle kliens is elérhető és mivel saját szerveren fut, ezért nem mondhatja meg egy harmadik fél, hogy hogy lehet és hogy hogy nem lehet használni (pl. a discord felhasználási feltételek tiltja más kliens használatát). Továbbá a matrix-on elérhetőek hidak a már meglévő üzenetszolgáltatásokhoz, így például a discordon vagy facebookon feladott üzenetek is elérhetőek matrix-on és vice versa, így elég egy üzenet szolgáltatást használni sok helyett, és a meglévő kontaktok továbbra is elérhetőek lesznek ha nem váltanak matrix-ra.

Forgejo

A forgejo egy Github alternatíva, saját projektek verziókezeléséhez és szervezéséhez. Minden lényeges funkcióját tudja a Githubnak, és egy projekt migrálása néhány kattintás, így egy könnyen használható alternatíva, amelyen a saját jelenlegi projektjeim vannak. A projektjeim lejjebb olvashatóak.

Federáció

Egy chat applikációnál fontos, hogy ezt több ember is használni tudja. Viszont felhasználókat létrehozni a saját szerveren kellemetlen. Nem szeretnénk, hogy ha valakinek írni akarunk, akkor létre kelljen hozni az ő szerverén egy felhasználót, és más kérdés, hogy akkor melyikünk szerverét használjuk üzenésre. Továbbá nem szeretnénk más adatait a saját tárhelyünkön tárolni. Erre a megoldás a federáció: több szerver egymással kommunikál, így mindenki csak a saját szerverén kell, hogy létrehozzon egy fiókot. Ha valakinek üzenetet küldünk, akkor tudnunk kell a szervere címét is, és amikor elküldjük az üzenetünket, akkor a szerverünk az ő szerverének elküldi az üzenetet. Így létrejön egy decentralizált hálózat szerverek között, ami robosztusabb a centralizált alternatíváknál, ahol elég, ha egy szerver kiesik, és senki nem tud senkinek üzenni. Ez az arhitektúra pontosan ugyan az, mint amit az e-mail szolgáltatások használnak. Sajnos ez manapság már nem elterjedt, és egy nagy cégtől függ az, hogy tudunk -e mással kommunikálni. Szerintem elfogadhatatlan az, hogy ahhoz, hogy egy másik emberrel kommunikáljunk, el kell fogadni egy harmadik fél feltételeit, ami több esetben a szabadságunkat vagy a privátságunkat limitálja. Ezért fontos a federáció, mivel ha a mi szerverünkön vannak az adatok, akkor mi döntjük el, hogy mi történik az adatainkkal, vagy hogy hogy kívánjuk használni az adott szoftvert. Természetesen a matrix federációval működik, de a nextcloud is biztosít federációt más szerverekkel, így meg tudunk osztani fájlokat másokkal más szervereken, tudunk nextcloud-on is kommunikálni másokkal, meg tudjuk osztani a naptárunkat egy másik szerveren lévő felhasználóval, vagy meg tudunk egy közös időpontot beszélni találkozásra. Továbbá a forgejo-ban tervezett funkcionalitás a federáció, így egy másik felhasználó projektjéhez kontributálhatunk, üzenhetünk, vagy segíthetünk akkor is, ha a felhasználó egy másik szerveren van. Így a federáció segítségével biztosíthatjuk, hogy a használt szoftvereinkben ne legyenek a felhasználói szabadságunkat limitáló megkötések.

Software-függetlenség

A szoftverfüggetlenség fontosságáról még egy külön oldalon is szó lesz, ezért ezt itt most nem részletezem jobban.

Projektjeim

Ebben a részben főleg a jelenleg futó projektjeimről lesz szó, amelyek jelenleg a NixOS konfigurációim.

NixOS desktop

A desktopomon használt nixos konfiguráció elérhető itt. Jelenleg nem a legszebb kódot tartalmazza, de egy működő konfiguráció. A konfig felhasználja a nixos által nyújtott új lehetőségeket, mint például a nixos specializációkat, amelyek a meglévő rendszer egy kisebb részét módosítják, és így például létrehozható egy produktív specializáció, amit akkor lehet használni, amikor az ember produktív szeretne lenni. Ebben a specializációban például néhány csomag hiányzik az eredeti rendszerhez képest, ezek például a játékok csomagai, továbbá a specializáció engedélyez egy szolgáltatást, amely a kontraproduktív URL-eket elérhetetlenné teszi, így is megnehezítve azt, hogy az ember kiessen a fókuszált állapotából. A konfiguráció itt elérhető:

NixOS desktop

Nixvim

A nixvim a neovim egy nix által konfigurált változata. Ennek segítségével egyszerre a felhasznált csomagok és a konfigurációs fájlok is rögzítve lesznek, így a saját preferált szövegszerkesztő programom mindenhonnan elérhető lesz, akár egy parancs futtatásával is. A repo elérhető itt:

Nixvim

A futtatáshoz elég egy parancsot futtatni egy olyan rendszeren, amin a nix elérhető:
nix run git+https://git.esvagy.com/esvagy/nixvim