HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

Intézményesített hazugság

2020.02.03. 23:21 Travis.CG

A kutatás-fejlesztésben soha nem lehet tudni, hova lyukad ki az ember. Mivel az elérni kívánt célok az ismeretlen homályába vesznek, az oda vezető út is megtervezhetetlen. Természetesen kitűzhetünk olyan célokat, amelyek kevésbé homályosak, de az eredmény is olyan lesz: unalmas és semmit mondó.

A laboratórium falain kívül eső világ pont ellentétesen működik. Ott a kiszámíthatóság az elvárt. Senki nem akar reggelente azon gondolkodni, hogy jön-e a busz, mert a sofőr tesztel egy alternatív útvonalat. A busznak jönnie kell, és kész. A buszsofőrnek megvan, hogy mennyi utat kell megtennie, milyen gyorsan, és ezért mennyi pénzt kell kapnia. Az elvárt teljesítménytől való eltérés mérhető, felelősségre vonható, és megtorolható.

A probléma akkor kezdődik, ha ez a két világ összetalálkozik. Márpedig össze kell találkoznia, ez elkerülhetetlen. Például a tervezett és kiszámítható pénznek át kell vándorolni egy megjósolhatatlan kimenetelű kutatás felé. Végeredményként a kutatót ki kell fizetni. Ki kell fizetni egy olyan munkáért, ami nem mérhető.

Ezért a kiszámítható világ kiszámíthatóvá teszi a kiszámíthatatlant. Hogyan? Természetesen adminisztrációval. Az adminisztráció viszont embereket jelent, akiket alkalmazni kell. Egyfajta puffer zóna ez a két világ között, akár csak egy dimenzió kapu valamelyik tudományos-fantasztikus műben. Ezek a kapuk furcsa dolgokat csinálnak mindkét esetben.

Vegyünk egy olyan egyszerű esetet, mint amilyen a munkaidő nyilvántartás. A tervezett világ elvárja, hogy én meg tudjam mondani, mennyi időt töltöttem egy adott munkával. De én ezt nem tudom megmondani. Ha van egy szkript, amit két évvel ezelőtt megírtam, és fut három hétig. Akkor mennyit dolgozom? Amíg elindítom? Az két perc. Amíg fut éjjel-nappal? Esetleg amíg írtam a szkriptet?

A helyzet furcsasága, hogy bármelyik értéket írom be, az rossz lesz. Két percet nem írhatok be, mert azt mondják, nem dolgoztam eleget. Ötszáznégy órát nem írhatok be, mert nem hiszik el, és egyébként sem jogosultak túlórát kifizetni. A szkriptet meg azelőtt írtam, hogy elindult volna a projekt, tehát az nem ebből a munkából ment. Végeredményben azt kell mondjam, ha igazat írok, bajba kerülök.

Ha viszont hazudok, akkor minden rendben lesz. Ha beírom, hogy 8 órát dolgoztam, akkor a rendszer megnyugszik, a kis fogaskerekek boldogan forognak tovább. A papír A-helyről tovább tud vándorolni B-helyre, mert nincs benne "hiba".

Amint egy kutató több projekten is dolgozni kezd, több helyről kapja a pénzt, több adminisztrációval kell foglalkoznia. Itt viszont a interferencia lép fel. Nem lehet minden projektre 8 órát beírni, az arányoknak mégis érvényesülni kell. Ezért teljesen elfogadott, hogy olyan nyilvánvaló hülyeségeket írnak be kutatók, hogy az adott projekttel 2,3 órát dolgozott naponta.

Senki nem foglalkozik az ügy abszurditásával. Sőt, emberek, (adminisztráció címszóval) pénzt kapnak azért, hogy az igényeknek megfelelő hazugságot összeállítsák, majd egy másik helyen, másik emberek ezt az egész értelmetlen adathalmazt ellenőrzés céljából átnézik.

Miért írok minderről? Kit érdekel ez? Azért írok, mert hála nekem, a hazugság gyártás új szintre emelkedett. Ugyanis a papírok kitöltése annyira bonyolulttá vált, hogy valakinek az az elképzelése támadt, hogy automatizálni kellene. Én pedig imádok automatizálni dolgokat. Pláne, ha olyan értelmetlen dolgokról van szó, mint a projektidő nyilvántartás. Értelmetlen alatt azt értve, hogy időt és energiát kell rá áldozni.

A programnak Windows alatt kell futnia, mert az adminisztrátorok csak azt használnak, és nem fognak a kedvemért mást telepíteni. Ezért csakis a C# jöhetett szóba, hogy a felhasználói felületet minél egyszerűbben elkészíthessem. Az is nyilvánvaló volt, hogy kell egy adatbázis, ahol tárolom a szükséges adatokat, amire a LocalDB volt az egyik logikus jelölt.

Kérdés, mit tároljunk az adatbázisban? Először jó fiú módjára olyasmiket akartam tárolni, ami az igazságot tartalmazza. Ahogy egyre többet és többet megtudtam a rendszer működéséről, rájöttem, hogy teljesen felesleges bármit is tárolni a munkaidőről. Nem csak a fent vázolt jelenségek miatt, hanem azért is, mert a csoportvezetők gyakran visszamenőleg is meggondolhatják magukat a pénz felhasználásáról. Teszem azt, X PhD hallgató helyett Y-t jelölik ki, hogy a projekten dolgozott.

Ezt úgy fogalmazták meg nekem, hogy a program eredményének "időben visszafelé is módosíthatónak kell lennie". Francokat! Ez csak azt jelenti, hogy az algoritmusnak tetszőleges időintervallumon kell tudnia hazudni. Nem egy adat tároló kellett nekik, hanem egy adat generátor. Tárolni csak a hazugságok paramétereit kell. Ez jó, mert egyszerűbb lett az adatbázis struktúrája.

Egyetlen problémám sokáig az volt, hogy miként jelenítsem meg a végleges táblázatot. Megrajzolhatom GDI-vel, ami nem tűnt túl jó ötletnek, mert minden formázási paramétert nekem kell leprogramozni, és a végtelenségig finomítani. Ez nyilvánvalóan sok időt vesz igénybe. Ha Linux alatt lettem volna, szívbaj nélkül egy LaTeX forrást állítottam volna elő, amit kedvemre PDF-é konvertálok. Sajnos C# alatt nem sok PDF készítő modult találni.

A másik megoldás, ha előre elkészített komponenssel dolgoznék. Régen volt egy Grid, amit a Visual Basic-es múltam során használtam (igen, mindenkinek van sötét korszaka), de a mostani implementáció (DataGridView) nekem nem tűnt elég paraméterezhetőnek.

Aztán eszembe jutott, hogy a táblázat lehetne közönséges HTML, amit egy WebBrowser komponenssel megjelenítek. CSS-el úgy formázom, ahogy akarom, ráadásul a komponens képes kinyomtatni a tartalmát egy szimpla metódus hívással. Túl szép, hogy igaz legyen!

Egyébként az is. Nem tudom, miért, de a nyomtatás során fejlécek és láblécek jelennek meg szükségtelen szövegekkel, amiket képtelenség kikapcsolni! Illetve az egyetlen módja, hogy kikapcsoljam, ha módosítom a Registry-t. Már kezdtem elfelejteni, hogy Windows-on vagyok.

A problémát úgy lehet megkerülni, ha nem egyből nyomtatok, hanem a Nyomtatási előnézet dialógust hívom meg, mert akkor a felhasználónak van lehetősége kikapcsolni azt. Nem a legjobb megoldás, mert a felhasználónak még egyet kell klikkelnie feleslegesen.

Így született meg a FatLiar program.

Szólj hozzá!

Címkék: programozás filozofálás

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr9915417276

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása