PdfLatex – eps fájlok kezelése 2. felvonás

Lassan be kell adni a diplomatervet, szóval ideje megírni a hiányzó részeket. Ok, kicsit csalok a dolog kapcsán, hogy én az őszi TDK-mat bővítem ki/írom át diplomatervvé. Ezért még olyan nagyon nem vagyok elkésve.

A korábbi tapasztalatok alapján nekiálltam, hogy először is frissítsek egy keveset a munkakörnyezetemen. Komoly probléma volt a TDK beadás környékén, hogy egy-egy fordítás egy-két percig tartott. Amikor trial and error módon próbálja az ember a hibákat javítani, akkor hasznos, ha ennél gyorsabb.

Némi kutatás, illetve intelligencia után előkerült a probléma: régebben már itt is leírtam, akkor az eps fájlokból generált fájlokat átmásoltam a temp mappába, mondván, ott jó helyük van. A helyzet az, hogy hála ennek a sornak, a későbbi fordításokkor is mindig újra kellett generálni a pdf fájlokat, nem vette észre, hogy megvannak, és nem változtak.

Most kihagytam ezt a kimeneti mappa beállítást, és így már nincs szükség erre az újrafordításra.

Sőt, sikerült még tovább egyszerűsítenem a képbeillesztési folyamatot: nincs szükség a .eps kiterjesztés megadására a \includegraphics{csp} hívásnál – a program megfelelően kitalálja. Az epstopdf csomagra attól még szükség van!

És ami még szebb: lehet definiálni egy alapértelmezett mappát a képek kereséséhez, hogy ne kelljen a „../img/csp” jellegű módon hivatkozni minden egyes képre:

\graphicspath{{../img/}}

Fontos! Az itt megadott útvonal végére kell a “/” jel, ugyanis egyszerű stringkonkatenáció történik a háttérben. El lehet kezdeni keresni a hibát, ha az ember ezt nem tudja.

Hogy muzsikál ez az új rendszer SVNnel párosítva? Majd az idő eldönti. De a gyorsított fordítás sokat ér a trial and error fázisban. 😀

Projektbemutató videóval

Úgy néz ki, egyelőre Balage Debug Visualisation projektje még fut egy darabig, nem ért véget azzal, hogy megkapta rá a jegyét. Nemrég volt egy újabb release, most pedig én egy régi ígéretemnek tettem eleget, és készítettem hozzá egy bemutató videót.

A videó nagyon egyszerű: megmutatom, hogy egy komplex debug eljárás esetén (hiszen egy másik Eclipse példányban futtatott plugin projektet tesztelek vele) hogyan használható ez a plugin.

Mindenesetre jöjjön a lényeg:

Úgy néz ki, egyelőre Balage Debug Visualisation projektje még fut egy darabig, nem ért véget azzal, hogy megkapta rá a jegyét. Nemrég volt egy újabb release, most pedig én egy régi ígéretemnek tettem eleget, és készítettem hozzá egy bemutató videót.

A videó nagyon egyszerű: megmutatom, hogy egy komplex debug eljárás esetén (hiszen egy másik Eclipse példányban futtatott plugin projektet tesztelek vele) hogyan használható ez a plugin.

Mindenesetre jöjjön a lényeg:

Megfelelő igény esetén esetleg arról is fogok beszélni, hogy hogyan készült a videó – most csak annyit mondanék róla, hogy teljesen nyílt szoftverek felhasználásával készült – eltekintve a youtube felületén hozzáadott annotációktól.

Ami viszont vicces volt, hogy feltölteni macerás: a fájl lassan töltődik fel, és időnként megszakadt közben a net – ebben az esetben pedig az AJAX-os feltöltő script végtelen ciklusba került, és nem töltött fel semmit, de nem is vette észre, hogy vége a dalnak. Talán majd egyszer ezt is javítják (vagy nekem javul meg a netem 😀 ).

Oktatók és hallgatók

Teljesen kiakadtam. Lehet, hogy teljesen feleslegesen, és túlreagálom a helyzetet, de teljesen felháborított a dolog. Egész pontosan arról van szó, hogy valamelyik kollega hogyan minősítette az oktatást hőn szeretett egyetemünkhöz: http://bash.hu/67045

Nem másolom be, hogy mit írt, ugyanis teljesen felháborítónak tartom. Mi is a problémám vele? Több is van.

Teljesen kiakadtam. Lehet, hogy teljesen feleslegesen, és túlreagálom a helyzetet, de teljesen felháborított a dolog. Egész pontosan arról van szó, hogy valamelyik kollega hogyan minősítette az oktatást hőn szeretett egyetemünkhöz: http://bash.hu/67045

Nem másolom be, hogy mit írt, ugyanis teljesen felháborítónak tartom. Mi is a problémám vele? Több is van.

Ezek közül a legelső az, hogy a tapasztalataim alapján teljesen alaptalan a helyzet: az előző öt évben összesen egyszer kerültem olyan helyzetbe, amit lehetne úgy értelmezni, hogy valaki a katedra túloldaláról visszaélt volna a hatalmával velem szemben. Jó, ez önmagában még nem jelent sokat – én a „szociális helyzetem” miatt (értsd: sok a tanár a családban) könnyen átérzem a túloldal problémáit. Igen, én még a karon sokat szidott CS tanszék kapcsán sem jutottam negatív tapasztalathoz. Lehet, hogy szerencsém volt, de nem tudom.

Egy másik nagyon súlyos problémának érzem, hogy a kollega durván és sértő módon általánosítva a teljes doktoranduszi karról mond véleményt. Erősen negatív véleményt. Ráadásul, ahogy kiolvasható (jó, ez szubjektív), ezt a kar „népszerűsítésének” céljából tehette. Pedig sokkal jobb lenne, ha az esetleg meglevő ilyen embereket ki lehetne cserélni nyitottabb, kooperatívabb emberekkel, amihez arra lenne szükség, hogy a doktoranduszi helyhez szükséges feltételt minél többen teljesítsék. Ehhez viszont a jó képességű embereket inkább ide kéne csábítani, mint elriasztani. Márpedig a tanári kar ilyen szintű leminősítése inkább elriasztja az embereket.

És amit a legrosszabbnak tartok: a bejegyzés 107+ minősítést ért el a hivatkozott oldalon (és ebből 8+ az előző másfél órában bukkant fel, amióta megjelent a poen levelezőlistán). Az egy dolog, hogy valaki tesz egy efféle megjegyzést; magáról állít ki szegénységi bizonyítványt, de az, hogy ezt sokan biztatják, pozitívan értékelik, az egészen más helyzetet állít elő. (Megjegyzem, a bash.hu elég sok bejegyzés hasonlóan sérti az én konzervatív felfogásomat, de most ebbe az irányba nem kívánok elmenni.)

Nem tudom, más hogy van az itt felsorolt panaszaimmal, de nagyon szívesen meghallgatnám mások véleményét. Más találkozott olyan esettel, hogy valaki a tanári oldalról visszaélt volna a hatalmával? Más nem gondolja ezt a helyzetet felháborítónak? Minden kapcsolódó véleményt szívesen hallgatok, hátha valaki felnyitja a szememet, hogy miért reagálom én túl a helyzetet.

Miért nem olvas a magyar?

Aki bedőlt a hatásvadász címemnek, elnézést – ezt a kérdést nyilvánvalóan nem fogom megválaszolni. De hogy nem olvas, az tény – én személy szerint olyan nemrég érettségizettet is ismerek, aki saját bevallása szerint semmit sem olvas, még a kötelezőket sem.

De hogy miért is írok erről a témáról? A hétvégén volt szerencsém összehasonlítani John Grisham egyik könyvének magyar és angol változatát. Úgy gondolom, a problémámat a következő képpel egyszerűen szemléltethetem.

Aki bedőlt a hatásvadász címemnek, elnézést – ezt a kérdést nyilvánvalóan nem fogom megválaszolni. De hogy nem olvas, az tény – én személy szerint olyan nemrég érettségizettet is ismerek, aki saját bevallása szerint semmit sem olvas, még a kötelezőket sem.

De hogy miért is írok erről a témáról? A hétvégén volt szerencsém összehasonlítani John Grisham egyik könyvének magyar és angol változatát. Úgy gondolom, a problémámat a következő képpel egyszerűen szemléltethetem.

The Client angolul és magyarul

Aki esetleg nem látja: kétszer akkora egy lap területe, és a magyar változat emellett észrevehetően vastagabb (500 oldal -> 600 oldal).

Hogy ez miért is rossz? Egy: a könyv túl nagy, nem túl kényelmes kézbe venni. Kettő: a folyó szöveg betűtípusa akkora, hogy a gyorsolvasókat (akik közé sorolom magamat is) visszafogja, egyszerűen nem tudja átlátni. Három: kicsit „fenyegető” a mérete, különösen annak, aki nincs hozzászokva a rendszeres olvasáshoz. Négy: nem is beszélve arról a szempontról, hogy hány fát kellett ezért kivágni, illetve mennyivel emeli ez a lappazarlás a könyvek árát.

És ebben a viszonylatban más könyv kapcsán láttam olyat, hogy az angol nyelvű kiadás olcsóbb volt, mint a magyar… No comment.

Törött ablakok és hitelek

Az utóbbi időben volt szerencsém elolvasni néhány érdekes írást programozástechnikáról. Ez nem arról szól, hogy a Java/C#/C++/Lisp nyelven jó programokat írni (noha az is hasznos olvasnivaló lehet), hanem inkább afféle ötleteket mutat, amik a programozási munka menedzsmentjéhez tartoznak.

Igen, erről nem véletlen, hogy egyeseknek a [[A programozás technológiája|PT]] jut eszébe, de szerintem annál jóval gyakorlatiasabb dologról van szó. 🙂 Persze ezt az én erőteljesen elfogult véleményem mondatja csak velem, nyilván másnak ugyanolyan használhatatlan dologról van szó.

Az utóbbi időben volt szerencsém elolvasni néhány érdekes írást programozástechnikáról. Ez nem arról szól, hogy a Java/C#/C++/Lisp nyelven jó programokat írni (noha az is hasznos olvasnivaló lehet), hanem inkább afféle ötleteket mutat, amik a programozási munka menedzsmentjéhez tartoznak.

Igen, erről nem véletlen, hogy egyeseknek a PT jut eszébe, de szerintem annál jóval gyakorlatiasabb dologról van szó. 🙂 Persze ezt az én erőteljesen elfogult véleményem mondatja csak velem, nyilván másnak ugyanolyan használhatatlan dologról van szó.

Nem tudom, mennyire ismert a „törött ablakok elmélete” (Broken Window Theory), ezért megpróbálom röviden összefoglalni. A fő gondolata, hogy ha egy civilizált környéken betörik egy ablak (lehet autóé, házé), és senki nem foglalkozik vele – itt most nem arra gondolok, hogy aki betörte, annak bűntudata lesz tőle, de azt beleértem, hogy a javítás idejére bedeszkázzák, – akkor ez közepesen hosszú távon (akár néhány hónap alatt) az egész környéken a környék leromlásához, illetve a(z akár súlyosabb) bűnesetek számának növekedéséhez vezethet.

Ez a hatás nagyjából úgy keletkezhet, hogy az emberek azt látják, hogy más nem foglalkozik a problémákkal, ezért nem érzi úgy, hogy neki is tennie kell valamit. Ha valaki kételkedik az állítás igazságában, gondoljon bele, hogy hol szedne fel nagyobb eséllyel véletlenül elejtett papírzsebkendőt: a Nyugatinál a metróaluljáróban vagy egy öt csillagos hotelben a francia Riviérán.

Hogy ez hol jön a programozáshoz? Az elv ott is alkalmazható: ha nem foglalkozol a kis hibákkal, akkor aki később kapcsolódik, azt fogja látni, hogy az elődje sem gondoskodott róla, hogy elkerülje ezeket, ő sem fog vele foglalkozni (annyira). Aki dolgozott már ilyen kóddal, az tudja, miről beszélek. 🙂

Mik ezek a kis hibák? Warningok, hiányzó dokumentáció, nem kifinomult hibakezelés, gányolás… Lehetne még sorolni. És ezeket többnyire csak akkor lehet megfelelően kezelni, ha mindenki az első pillanattól fogva odafigyel ezekre, különben annyira elszaporodnak, hogy a kezelésük szinte reménytelen (próbált már valaki 1000-es nagyságrendben warningokat javítgatni?).

Jó, mi a teendő olyankor, amikor közeleg a határidőt, és még rengeteg mindent implementálni kell? Nos, ekkor jön a Brute Force Development: kódolunk, gányolunk, és reménykedünk, hogy működni fog. Gondolhatnánk, hogy ez rossz, de a gyakorlatban elkerülhetetlen. Ez nagyon gyakran „törött ablakokhoz” vezethet (nem, most kivételesen nem arról beszélek, hogy a legálisan beszerzett Windows-unk crackeltté válik 🙂 ).

Természetesen ez rossz, de mivel elkerülhetetlen, ezért kénytelenek vagyunk kezelni. Erre a kezelésre ad egy módszert a technológiai tartozás (Technical Debth) fogalma.

Ez a valós életbeli adósságok fogalmához kapcsolódik: felveszünk hitelt, hogy valami lehetőséget időben kihasználjunk (nem kell 20 évet várnunk egy lakásra, és közben albérletben élni, hanem most beköltözünk), de ez nincs ingyen (20 évig fizetjük a részletet). Akkor ne vegyünk fel hiteleket? De, ha van valami helyzet, amit így értelmesen kihasználhatunk, hosszabb távon pénzt spórolhatunk meg, akkor fel lehet venni, de ésszel. Nagyon oda kell figyelni a hitelek visszafizetésére (lásd még: válság 🙂 ).

A programozásban ehhez hasonlóan, ideiglenesen nem a legjobb, legügyesebb, legszebb megoldást választjuk, hanem rosszabb megoldást választunk, tákolunk, gányolunk. És mondjuk magunknak dokumentáljuk, hogy mik ezek a részek, és ezzel foglalkozni kell. Mi lehet ennek az értelme? Határidő, esetleg azt mondani, hogy ha működik, akkor kiadjuk, és utána belül foltozzuk a következő verzió fejlesztésének első lépéseként.

De természetesen itt is figyelni kell, ugyanis ha túl sok efféle dolgot hagyunk benne a rendszerben, akkor később ennek az lehet a következménye, hogy ahhoz, hogy új funkciót adjunk hozzá, nagyságrendekkel több munkát kell befektetni, mint az ideális lenne.

Saját tapasztalataim alapján is igazolni tudom ezt az elvet: az elmúlt héten a saját kódomat próbáltam nagyságrendekkel javítani, hogy új funkciókat adjak hozzá. Ok, vettem a fáradtságot, hogy +20% munkával javítsam azt, amit a TDK előtt BFD-vel befejeztem (visszafizettem a technológiai tartozás egy részét), annak érdekében, hogy a rendszer jobban használható legyen.

Remélem, hasznos/érdekes, amit most felvetettem, ha másnak van véleménye, kiegészítése, nagyon szívesen veszem bármilyen formában, más tapasztalataiból tanulni igenis jó dolog. 🙂