Re: Van-e különbség (Magázás és tegezés)

Azok számára, akik látják, hogy a mai kultúra miben tér el a régebbi és a modern kultúra, biztosan találkoztak a magázódás és tegeződés kérdéseivel. Úgy érezhetjük, a kérdés fontos, de a pontos miértet nehéz megfogni.

Tompika írása is ezt a kérdést feszegeti. Mi a lényeges különbség a tegeződés és a magázódás között? Erre reflektálnék itt is most. Azért itt, mert a válaszom hosszabb lenne, mint az eredeti kérdés, amivel azért a dolog hozzászólás jellegét ki lehetne hangsúlyozni. És mielőtt belefognék a dologba, szeretném felhívni a figyelmet arra, hogy az alább olvasható dolgok az én személyes véleményemet tükrözik, és a forrásmegjelölés határozottan pontatlan lesz (nincsenek előttem a források, és amikor írom, akkor nem is vagyok netközelben, hogy ott esetleg utánanézzek); ha lesz valamikor időm rá, utánajárok pontosabban.

Azok számára, akik látják, hogy a mai kultúra miben tér el a régebbi és a modern kultúra, biztosan találkoztak a magázódás és tegeződés kérdéseivel. Úgy érezhetjük, a kérdés fontos, de a pontos miértet nehéz megfogni.

Tompika írása is ezt a kérdést feszegeti. Mi a lényeges különbség a tegeződés és a magázódás között? Erre reflektálnék itt is most. Azért itt, mert a válaszom hosszabb lenne, mint az eredeti kérdés, amivel azért a dolog hozzászólás jellegét ki lehetne hangsúlyozni. És mielőtt belefognék a dologba, szeretném felhívni a figyelmet arra, hogy az alább olvasható dolgok az én személyes véleményemet tükrözik, és a forrásmegjelölés határozottan pontatlan lesz (nincsenek előttem a források, és amikor írom, akkor nem is vagyok netközelben, hogy ott esetleg utánanézzek); ha lesz valamikor időm rá, utánajárok pontosabban.

Miután ez a viselkedésünket, szocializációnkat érintő kérdés, a teljesen műszaki jellegű megközelítés használhatatlan (kár, mert leginkább ehhez értek), de azért próbálom valamelyest precízen (talán a szükségesnél precízebben) körüljárni a kérdést. Állításom nagyjából az lenne, hogy a magázódás és tegeződés megkülönböztetése alapvetően csak és kizárólag kulturális kérdés.

Manapság társadalmunk arra az elvre épül, hogy mindenki egyenlő (vagy legalábbis egyenlőnek született). Természetesen ezt lehet orwelli értelemben szemlélni (az unalomig ismert “Minden állat egyenlő, de egyes állatok egyenlőbbek a többinél.”), de most nem ez a célom. Korábban ez viszont nem volt így: az ókori Rómában a patríciusok rendje magasabb rangú volt, mint a plebs, és a középkori világra jellemző volt, hogy a papság, illetve különösen a nemesség rangja magasabb volt.

A nemesség körében mondjuk elég eszelős dolgok voltak, példákért ajánlom az érdeklődők figyelmébe Ráth-Végh István gyűjteményes műveit az emberi butaságról (alighanem pontatlanul idézem a címet, de pl. a Butaság dícsérete rémlik). Ebben szerepeltek olyan dolgok, hogy XIV. Lajos francia király mindennapjaihoz tartozott, hogy bizonyos emberek körüllengték, és ezt a lehető legnagyobb kegyként élték meg.

Magyarországon is hasonló volt a helyzet – a különböző társadalmi szerepek különböző rangokat jelentettek, és ez magával vonta (és ezek egy része csak vér szerint terjedt), és erre a két világháború között egy hihetetlenül tekintélyelvű társadalmi szerveződés épült rá (pl. enyhén szólva nem volt jellemző ellentmondani a családfőnek). Ezt parodizálta egy rövid írás (sajnos a szerzőre nem emlékszem, sem a címre, de ha úgy adódik, kikeresem). A lényege, hogy egy relatíve magas rangú ember lezuhant a szakadékba, de egy ágban megkapaszkodott. Egy másik ember elkezdte felhúzni, és közben megszólította az áldozatot, de tévesen, azt hiszem, méltóságos urat. Erre az felháborodottan felkiáltott, hogy de hát én tekintetes úr vagyok (ha jól emlékszem), és elengedte az ágat, amelyben kapaszkodott. Szörnyet halt…

Persze nem állítom, hogy minden nemes/rangos ember így viselkedett. Voltak köztük tiszteletre méltó éppúgy, mint nagykutyák (akik az erősebb kutya jogán, vagy éppen csatatéri eredményre alapulva szerezték meg címüket), mint különféle ingyenélők. De a lényeg az egészben, hogy valamiképpen tisztelettel kellett megközelíteni ezeket az embereket. Ennek a tiszteletkifejezésnek egyik formája a magázás.

Manapság már mindenki egyenlő, a korábbi tekintélyelvűség megszűnőben van (szerény véleményem szerint túlságosan is, de ez most nem tartozik ide). Éppen ez adja aktualitását a kérdésnek, hogy mi értelme van megkülönböztetni a kétféle társalgási módot.

A szokásos érv, hogy a tisztelet megadásának módja a magázás, a maga módján helytálló, de erre nem ez az egyedül lehetséges mód, és a magázva is lehetünk tiszteletlenek (szokásos példa: menjen a fenébe). A helyzet az, hogy a szándékot máshogy is ki lehet fejezni. Hogy megszüntethető-e ez a forma? Természetesen igen.

Ahogy közismert, a mai angol nem használ magázást (pedig Nagy-Britanniában nagyon komoly hagyományai vannak még a nemességnek is). Valamelyik skandináv országban pedig a király mondta meg a nemeseinek, amikor túl bonyolult lett a címek használata, hogy fejezzük be, és inkább tegeződjenek. A történet kapcsán két érdekes gondolat van: egyrészt a király a hatalmánál fogva megmondhatta a többi embernek, hogy mi a társadalmi etikett, így ez eredményesnek volt tekinthető, ugyanakkor nem követelte meg mindenkitől: azt mondta, hogy ha valaki a régi, magázós formát használja, azt ő is magázza. Így egy-két generáció alatt a helyzet megoldódott, és a magázás tulajdonképpen megszűnt.

Következtetés: a magázás nem követelmény, könnyedén megkerülhető. De ez társadalmi összhangot igényel. A munkahelyi közösségek lassan megszüntetik, a fiatalok már a boltba lépve is tegezik a fiatal eladókat, illetve fordítva. Ez persze nem jelenti, hogy azt mondom, helyből szüntessük be a megkülönböztetést. Ahhoz túl sokan vannak, akik mást szoktak meg. De hosszabb távon igenis lehetséges út, hogy egyszerűsítjük az életünket a magázás elhagyásával. De ez a jövő zenéje, jelenleg együtt kell élni ezzel a kettősséggel, és szűk körben folytathatjuk a felszámolást – ha ehhez van kedvünk. A választás rajtunk áll…

TDK – egy nagy projekt utóélete

Az elmúlt időszak egyik fontos eseménye volt az, hogy részt vettem a kari TDK konferencián. Ez azzal járt, hogy az elmúlt néhány hónapban minden ismerősömet azzal kergettem az őrületbe, hogy legtöbbet erről beszéltem velük…

Most viszont az egész véget ért, ideje számot vetni, értékelni, ami elkészült, és a tanulságokat levonni.

Az elmúlt időszak egyik fontos eseménye volt az, hogy részt vettem a kari TDK konferencián. Ez azzal járt, hogy az elmúlt néhány hónapban minden ismerősömet azzal kergettem az őrületbe, hogy legtöbbet erről beszéltem velük…

Most viszont az egész véget ért, ideje számot vetni, értékelni, ami elkészült, és a tanulságokat levonni.

Számomra ez nagy projekt volt: 4 hónap kódolás, 1 hónap dolgozatírás, és mellé még ez-az kapcsolódott (pl. prezentáció készítése). A méretre jellemző még, hogy 5000 sor Java kódot írtam (ez nagyobb, mint bármilyen projekt, aminek a fejlesztésébe belefolytam, és a többi projektet ráadásul nem is egyedül kódoltam), valamint [intlink id=”609″ type=”post”]61 oldal dokumentációt[/intlink] (szintén rekorder méret), ráadásul angolul.

Sokféle új dolgot próbáltam ki menet közben (vagy használtam nagyobb méretben, mint korábban): Eclipse alapú fejlesztés, kényszerkielégítés (CSP/CLP) vagy éppen nagy dokumentumok szerkesztése LaTeXben. És persze Java rulez:D

Ami kicsit fájdalmasabb rész, az a tanulságok levonása: sajnos sikerült a szükségesnél kicsit nagyobbat markolni, aminek az lett a vége, hogy a befejezés kicsit rohanós lett. Ráadásul bejött a szokásos problémák egyike, mármint sikerült belefutni egyes implementációs/elvi szintű problémákba, amik megkerülésére vannak ötletek, de azért még időt igényel.

Ráadásul a negyedik-ötödik hónapra a kezdeti lelkesedés is elfogyott, így a morál csökkent. Valószínűleg könnyebb lenne fenntartani a lelkesedést, ha lenne még egy ekkora állat, aki hajlandó a projekttel foglalkozni – különösebb ellentételezés nélkül – azzal sajnos nem tudok szolgálni, munka viszont van bőven… Persze álmodozni lehet.

Ami még hasonlóan fontos kérdés, hogy hasznos volt-e a befektetett energia. Na, ez az, ami jó kérdés: rövid távon kifejezetten nehéz aprópénzre váltani, amit összeszedtem (pláne, hogy a cucc még nem is 100%-os), de hosszabb távon remélhetőleg hasznosabb lesz: felhasználható diplomamunkába, esetleg cikkekhez, doktoranduszi kutatási téma alapja lehet, stb.

De legalább az a veszély nem fenyeget, hogy a projekt hirtelen véget ér. A hiányokat lehet pótolni, illetve néhány újdonságot is lehet csinálni. De addig is irány a régi grind…

Ja, és megpróbálok majd gyakrabban írni az oldalra. 🙂 Tudom, ilyet már mondtam, de próbálkozni lehet. Mások újévkor fogadnak meg mindig olyan dolgot, amit nem tartanak meg, én ezért nem ígérek semmit senkinek – elég lesz magammal elszámolnom.

Update: amit elfelejtettem, az az, hogy szeretnék köszönetet mondani mindenkinek, aki bármilyen aprósággal hozzájárult a munkához, gondolok itt azokra is, akik nem szerepelnek a dokumentáció köszönetnyilvánításában. Tényleg mindenkinek nagyon hálás vagyok.

Modelltranszformációk statikus analízise – TDK dolgozat

A beadott TDK dolgozatom – előadás is megvolt belőle. Figyelem: not for the faint hearted! Nem vállalok semmilyen felelősséget az okozott szellemi leépülésért. Viszont arra jó lehet, hogy megnézd, hogyan ne írj angolul 😀

A beadott TDK dolgozatom – előadás is megvolt belőle. Figyelem: not for the faint hearted! Nem vállalok semmilyen felelősséget az okozott szellemi leépülésért. Viszont arra jó lehet, hogy megnézd, hogyan ne írj angolul 😀

Navigáció IPAQ módra

A probléma azóta foglalkoztat, hogy szerencsé[s/tlen] felhasználója lettem egy HP Ipaq rx3715-nek. Aki [intlink id=”552″ type=”post”]olvasta[/intlink], tudja hogy volt már egy próbálkozásom lecserélni az operációs rendszert, amivel sikeresen megátkozták a kütyüt, de sajnos az a projekt befulladt, így marad a Windows Mobile 2003SE, ezen kell megoldanom a navigációt. Az integrált GPS vevő hiánya által okozott hardveres korlátot egy NAVILock bluetooth vevő oldotta fel. A problémát már csak a megfelelő program kiválasztása okozza.

Kézenfekvő megoldásként elöször Aeromap merült fel, hiszen a kütyühöz vásárláskor kaptam egy licensz kódot hozzá, ami ráadásul a honlapról letölthető újabb verziókkal is működik. Az Aeromap teljeskörű navigációt ad Magyarország területére, a legtöbb városban házszámszintű térképpel, útvonal-kereséssel és hangos irányítással. Remekül működik, amíg határon belül maradunk, Magyarország határát átlépve viszont kiesünk a nagy semmibe. Bár ritkán járok külföldön úgy, hogy térképre is lenne szükségem (mivel nem egyedül vagyok), de úgy döntöttem körülnézek más megoldások után, főleg az ingyenesen hozzáférhető szoftverek területén.

Első lépésként a Google Maps Mobile felé vetettem a tekintetem, ami a Google maps térképeit használja, amiket közvetlenül az internetről tölt le, és képes GPS alapján pozicionálni is. Apró probléma, hogy ha nincs útközben folyamatos internet kapcsolat, akkor nincs térkép se. Ráadásúl az újabb verziókban megjelent egy idegesítő bug (vagy feature?), miszerint a program csak és kizárólag GPRS vagy UMTS kapcsolattal tud az internethez csatlakozni, Wifi-n keresztűl nem hajlandó. Bár ez megkerülhető, ha az ember keres egy megfelelően régi verziót, de láthatóan ez a program nem arra lett kitalálva, amire én használnám. Az rx3715 nem telefon, nem lehet mobil hálózathoz csatlakoztatni, így nincs internetkapcsolatom út közben.

A következő állomás az Open Street Map wikije volt, ahol van egy kimerítő felsorolás a programokról, melyek elérhetővé teszik egy átlag felhasználó számára az OSM térképeket. A felsorolásban több WM program is szerepel, melyek többsége java-t igényel, így számomra nem jöhet szóba (egyelőre, megfelelő JVM-et keresni egy WM 2003 kütyüre nem egyszerű, és nem tárgya a jelen cikknek). A natív programok közül kettőt emelnék ki, melyekkel kicsit többet foglalkoztam.

A Bluemapia egy főleg hajózásra kifejlesztett program. Az érdekessége az, hogy több ingyenes térképszolgáltatóról is képes adatot gyűjteni, közöttük a fent említett OSM, a Google Maps és a Microsoft Map. Azonban sajnos internet kapcsolat nélkül ez sem működik, akkor sem, ha letöltjük a térképeket offline tárolóba.

Utoljára a TurboGPS-t néztem meg, ami alapvetően offline adatokkal dolgozik, bármilyen raszterizált képet meg lehet neki adni térképként, megadva a kép sarkainak koordináltáit, és erre képes rápozicionálni a GPS koordinátákat. Ahhoz, hogy ilyen térképeket kapjunk, használhatjuk az OSM automatizálható letöltőjét, majd a letöltött képeket át kell neveznünk a térképeket a poziciójuknak megfelelően a következő leírás alapján: http://www.turboirc.com/forum/index.php?topic=117.0.

Sajnos egyelőre a nyílt forráskódú alternatívák nem versenytársai az olyan kereskedelmi megoldásoknak, mint az Aeromap vagy az iGo, főleg Windows Mobile rendszeren. Linux alapú eszközön jobb a helyzet, bár útkeresés, illetve irányított navigáció csupán néhány projekt tervei közt szerepel, megvalósított módszert még nem láttam. Talán egyszer megoldom azt is, hogy laptopomhoz csatlakoztassam a GPS vevőt. De ez egy másik történet lesz.

LaTeX szerkesztés OSX-en

Ugyancsak a múltkor ígértem meg [[Dokumentumszerkesztés OSX-en Stampie módra|dokumentumszerkesztés kapcsán]], hogy írok részleteket a [[http://texlipse.sourceforge.net/|TeXlipse]] beállításáról úgy, hogy minden jól menjen a gépen. Az akkori ígéretben még az is benne volt, hogy akkor nem találkoztam még a koncepció gyermekbetegségeivel. De ennek ellenére érdemes lehet leírni, hátha más is fel tudja használni az itt leírtakat.

Talán éppen emiatt merem azt mondani, hogy érdemes lehet megvizsgálni akár más platformokra is, amiket itt leírtam, mert a TeXlipse szinte mindenhol működik, és a többi platformra is van pdfsync-képes program.

Fontos megjegyzés: a TeXlipse a verziószáma ellenére helyenként még kicsit nehézkesen használható, főleg, ha bizonyos új komponensekkel kerül együttes felhasználásra, de ennek ellenére jól használható TeX környezet kialakítására alkalmas.

Ugyancsak a múltkor ígértem meg [[Dokumentumszerkesztés OSX-en Stampie módra|dokumentumszerkesztés kapcsán]], hogy írok részleteket a [[http://texlipse.sourceforge.net/|TeXlipse]] beállításáról úgy, hogy minden jól menjen a gépen. Az akkori ígéretben még az is benne volt, hogy akkor nem találkoztam még a koncepció gyermekbetegségeivel. De ennek ellenére érdemes lehet leírni, hátha más is fel tudja használni az itt leírtakat.

Talán éppen emiatt merem azt mondani, hogy érdemes lehet megvizsgálni akár más platformokra is, amiket itt leírtam, mert a TeXlipse szinte mindenhol működik, és a többi platformra is van pdfsync-képes program.

Fontos megjegyzés: a TeXlipse a verziószáma ellenére helyenként még kicsit nehézkesen használható, főleg, ha bizonyos új komponensekkel kerül együttes felhasználásra, de ennek ellenére jól használható TeX környezet kialakítására alkalmas.

De mielőtt belecsapnék a lecsóba, még egy ügyes OSX-es programra szeretném felhívni a figyelmet: a [[http://texlipse.sourceforge.net/|Skim]] nevű PDF nézegető program sokkal alkalmasabb a LaTeX kimenetének nézegetéséhez, mint a beépített Preview nevű program (ami azért a rossztól még mindig távol áll, de hát az Apple programjait is felül lehet múlni 🙂 ). Miért is? Az egyik hasznos dolog, hogy bizonyos esetekben be lehet állítani, hogy automatikusan töltse be a megváltozott pdf fájlt, és tudja a pdfsync nevű dolgot.

Ezek mik is? Hogyan is lehet őket használni? Haladjunk sorban. A módosított fájlok újratöltése egy hasznos lehetőség, hiszen így lehetővé válik, hogy a Skimre átváltva mindig a legfrissebb változatot lássam. Hogyan kell igénybe venni? Először is a Preferences ablak Sync fülén engedélyezni kell a Check for file changes kapcsolót. Ezután, ha észleli, hogy a megnyitott fájl frissült, megkérdezi, hogy be akarjuk-e tölteni. Azért nem tölti be automatikusan, mert ha a fájlhoz tartoztak nem mentett megjegyzések, kijelölések, akkor azok elvesznek. De a kérdésnél rögtön megjelenik az Auto kapcsoló, amivel a folyamat automatizálható – egészen a Skim leállásáig. Zsír.

Amivel még sok jót lehet kezdeni, az a pdfsync. Ez egy viszonylag modern megközelítés, alapvetően az a célja, hogy bizonyos metaadatokat állítson elő, amivel meg lehet állapítani, hogy a pdf fájl melyik sorához a tex forrás melyik sora tartozik (tudomásom szerint alapvetően pdf fájlokhoz képes szinkronizálni, aminek az egyik oka lehet, hogy az [[http://itexmac.sourceforge.net/pdfsync.html|OSX-specifikus LaTeX-szerkesztő]] számára készült el az elején, OSX-en pedig a ps, illetve dvi fájlokkal nehéz mit kezdeni, a pdf-et viszont gyárilag hihetetlenül kényelmesen kezeli. És ez az oka annak is, hogy a LaTeX-et a pdflatex fordítóval érdemes fordítani… Na mindegy, visszatérve a pdfsynchez, ez a metaadat csak akkor használható, ha mind a szerkesztő, mind a nézegető képes értelmezni az adatokat. Az én esetemben ez fennállt, csak megfelelően be kellett állítani a rendszert.

A Skim beállítása viszonylag egyszerű: az előbb emlegetett Sync lapon vannak a kapcsolódó beállítások. Miután a TeXlipse-et nem ismeri, kénytelen voltam egyedi sablont beállítani. A TeXlipse dokumentáció [[http://texlipse.sourceforge.net/manual/build.html|vonatkozó részei]] alapján létrehoztam egy egyszerű script fájlt (be lehetne írni az egyedi paraméterek közé is, de külön fájlban jobban kezelhető), és a fájl tartalma a következő lett:

java -classpath /Applications/eclipse/plugins/net.sourceforge.texlipse_1.2.2/texlipse.jar net.sourceforge.texlipse.viewer.util.FileLocationClient -p 55000 -f $2 -l $1

Itt a classpath-nál meg kellett adni a telepített texlipse jarját (sok sikert a kikereséséhez a plugin mappából 🙂 ), a FileLocationClient egy hozzáadott érték, a -p után pedig egy portszámot kell megadni, amit a TeXlipse beállítások között is szerepeltetni kell (nyilván ugyanazt a számot 🙂 ).

A Skim pdfsync paraméterei között egyrészt ezt a fájlt kellett megadni, másrészt paraméternek a %line “%file” paramétereket kell megadni – ezek segítségével lehet visszahívni a szerkesztőt. Ha más szerkesztőt akarunk használni, akkor nyilván a szerkesztő dokumentációjából kell kiszedni a dolgokat. De például az Aquamacs különösebb beállítás nélkül is viszi a szolgáltatást.

Mindenesetre nézzük akkor, hogy mit kell beállítani az Eclipse-ben, hogy működjön. Először is a TeXlipse számára kell a Skimet felvenni megjelenítőként – itt viszont nem a szokásos Skim.app/Contents/MacOS/Skim hívást kell megtenni, hanem egy külön script segítségével kell értesíteni, azaz a Skim.app/Contents/SharedSupport/displayline elemet kell megadni futtathatóként a TeXlipse számára, míg paraméterekként a %line %file %texfile értékeket (a leírások ajánlják a %file és a %texfile értékek idézőjelek közé helyezését, mert ekkor szóközt tartalmazó fájlok esetén is működik, de nálam úgy nem működött a rendszer – a Skim nem találta meg a hivatkozott fájlt).

Ja, igen, a beállítás helye: Eclipse Preferences, TeXlipse/Viewer Settings, és itt lehet felvenni egy új nézőprogramot. A Viewer input format értéke pdf, az Inverse search support értéknek a “Viewer runs external command” értéket kell megadni, és be kell jelölni a “Viewer supports forward search” jelölőnégyzetet. És ha ez megvan, akkor a nézőprogramok listája alatt a megfelelő portszámot be kell állítani.

Na, ha ez megvan, akkor lehet tesztelni. A tex fájl elejére még hozzá kell adni a pdfsync package-et, és jöhet a menet.

Sajnos nálam nem sikerült minden esetben futtatni a megoldást: abban az esetben, ha a forrásfájl, a létrehozott pdfsync fájl és a pdf fájl egy mappában volt, nem több fájlból állt a tex projekt, és nem használtam bibtex-et. Szóval sajnos nem csak a gyakorlatban lényegtelen esetekben nem működött, hanem sajnos elég sokszor… De amikor működött, akkor a Command + 4 (win-esek, linuxosok: ctrl+4) billentyűkombinációval az Eclipse-ből a pdf fájl megfelelő részére ugrott, a pdf fájlból pedig a Command+Shift lenyomása mellett kattintva lehetett visszaugrani az Eclipse-be. Sajnálom, hogy ez most nem működik.

Ha valakinek ezt sikerül jobban működésre bírni, esetleg képes megoldani a rendes futtatást, érdekelnek a részletek.

Ma sikerült egy másik problémakörbe belefutnom a LaTeX szerkesztés kapcsán. A gond akkor lép fel, ha megpróbáljuk SVN-en osztani a LaTeX projekt mappát, és különböző mappában vannak a forrásfájlok és az ideiglenes fájlok. Hihetetlenül idegesítő tud lenni, hogy minden egyes fordításkor (amit gyakorlatilag minden mentés triggerel), és hibaüzenetek nagy tömegét kapom, hogy nem tudta átmozgatni az elkészült ideiglenes fájlokat, mert nem sikerült felülírnia a fájlokat – hála annak, hogy az nem került feltöltésre az SVN szerverre.

Az egyedüli lehetséges megoldás az volt, hogy az ideiglenes fájlokat hozzá kellett adni az svn:ignore változóhoz, hogy ne akarja őket egyáltalán feltölteni az SVN szerverre. Ehhez a projekt jobb gombos menüjéből a Team/Add Property… pontja alatt felbukkanó ablakban kellett adatokat megadni: megadtam a paraméter nevét (svn:ignore), beállítottam, hogy a szabály rekurzívan teljesüljön minden erőforrásra, és a következő értékeket adtam meg a beviteli mezőbe:
*.aux
*.bbl
*.blg
*.bst
*.dvi
*.idx
*.lof
*.log
*.toc
temp
tmp
main.synctex.gz

Ez a megoldás megszüntette a problémát, ezzel lehetővé téve, hogy tovább működtessem a rendszert.