Magamról

Saját fotó
Főiskolai, majd egyetemi diplomamunkáimtól kezdve világ életemben, adatok, adatbázisok, adattárházak (leginkább Oracle) környékén mozogtam. Mostanság adattárházasként, adatbányászként élem napjaimat.

2013. február 18., hétfő

Big Data csak hype lenne? II.


Nem hittem volna, hogy ilyen hamar sor kerül a második menetre. Az apropót az alábbi cikksorozat adta:

Big Data: Az adatok ébredése, avagy a társadalom újragondolása az adatsokaság nyomán
Big data sorozat (0. rész) – Mit jelent és mire jó a ’Big Data’?
Big data sorozat (1. rész) – Hype és valóság
Big data sorozat (2. rész) – Újratöltve
Big data sorozat (3. rész) – Szkepticizmus
Big data sorozat (4. rész) – Forradalmak
Big data sorozat (5. rész) – Szép remények
Big data sorozat (6. rész) – Pillanatkép

Előljáróban, roppant szélsőséges a véleményem a cikksorozattal kapcsolatban. Vannak totálisan érdektelen fejezetek, van amitől sírni tudnék, annyira kiábrándító, és van amivel nagyon egyetértek, meg sem tudtam volna ilyen frappánsan fogalmazni.

Lássuk a témákat, részleteket:

-1.RÉSZ

Sajnos nagyon szerkesztetlen a minusz egyedik rész. Körkörösen vissza-visszatér egy-egy aspektushoz, ismétlés jelleggel. Én próbáltam tömöríteni és szerkeszteni, de túl nagy sikert nem tudtam aratni evvel.

A mínusz egyedik rész rögtön in medias res etikai aspektussal nyit. Ha eddig csak etikai megfontolások megválaszolásával küzdöttek az adatbányászok, akkor a Big Datával ezeket az idevágó problémákat nyugodtan négyzetre emelhetik.

Ugyan a felvezető bekezdés 50-50%-os arányt sugall, hogy lehet jó és rossz célra egyaránt használni a Big Datát, de amikor a Big Data benyomul az egyes ember privát szférájába, aszerint, ahogy a cikk nyit, hozzágondolva, hogy az "egyes ember" érdemi kontrollja nélkül, azt nehéz védeni bármilyen nemes cél érdekében. Bár van a mondás, hogy "cél szentesíti az eszközt", azért ennek ilyetén látványos előretörése szerintem nem sok jóval kecsegtet, már rövid távon sem. Ha valaki ilyen aggályok felöl közelít a Big Datához, azt teljes szívvel meg tudom érteni.

Apropó költői kérdés: tud-e valaki akár csak egyetlen jó célt mondani abban a vonatkozásban, hogy mint dr.House úgy tekintünk az emberre, mint aki biztosan és mindig hazudik? Mert én nem tudtam ilyet konstruálni. Cikkben előkerül a cukorbetegség (detektálása), mint felhasználási terület. Ha egy pillanatra el is fogadjuk, hogy a cukorbetegség-detektálásnak a Big Data egy zseniális alternatívája (én erősen szkeptikus vagyok már ezzel a "zsenialitással" szemben is), azért ennek egy korábbi blogposztban vesézett active learning-es verziója sokkal barátibb és elfogadhatóbb. Minden konstruktivitásom meg pozitív életszemléletem mellett is, hányan vagyunk, akik engednénk, hogy például gyógyszergyárak gyűjtsék idevágó Big Data adatainkat?

Meg aztán az is felvetődik az emberben, cukorbetegségen túllépve, hogy mi van, ha viselkedés-analízis során a Big Data által gyártott prekoncepció a hibás, adott ember vonatkozásban? A szoftveres analízis "hazudhat", még akár tömeges léptékben is, csak az egyes ember nem? Én nem dobom sutba a Big Datát mindezek miatt, csak az ilyetén felhasználási megközelítéseket. Azt gondolom, a Big Data sokkal általánosabb ennél. A kést is lehet rossz célra is használni, meg a konyhában jó célra is.
A lényeg pedig abban rejlik, hogyan kapcsolódnak egymáshoz az emberek
Nem kérdés, a kapcsolatok, a kapcsolatokon futó interakciók óriási adatmennyiséget generálnak, és valóságos információs kincsesbánya. A hálózatkutatás már régóta fókuszál az ebben rejlő potenciálra. Mondjuk jó és rossz oldal világosan el tud válni itt is. Csermely Péter kutatásaiban jobban megbízom a magam részéről, mint egy-két kereskedelmi alkalmazásban, lásd pl.: Facebook.
A jövő sikeres társadalmi rendszereinek titka ennek megértésében rejlik. Túl kell lépni a komplexitás, az adatelemzés vagy a webes elemzés fogalomkörén, és az embereket is bele kell vonni a megfigyelésekbe. Az óriási adathalmazok ezt ígérik számunkra, betekintést kínálnak a mai technológiai társadalom rendszerébe. Ha az ember sikeresen megérti az összefüggéseket, akkor nekiláthat a hibák kiküszöbölésének, és erősebb rendszerek kiépítésének. Talán sikerülhet olyan pénzügyi rendszert létrehozni, amely nem dől össze, olyan kormányt választani, amely működőképes, vagy olyan egészségügyi rendszert, amely tényleg végzi a dolgát.
Na ezt a hagymázas képzelődést a társadalmi reformról valami iszonyú szörnyű volt olvasni - a hozzáilleszkedő további bekezdésekkel együtt. :o( Ez még akkor is felelmetesen hangzik, ha nem lenne semmi korrupció a világban. Mondjuk én a magam részéről nem is hiszek abban, hogy lenne az egésznek bármilyen reális alapja: szerencsére. Bár biztos fognak beleölni egy csomó pénzt, nincs kétségem felőle.

Mondjuk a cikk maga is, azért sorolja magától is a Big Data-problémákat:
(1) A fals összefüggések megállapítása persze nem kerülhető el
(2) Maguk az adatelemzők sem rendelkeznek túl sok intuícióval
(3) Új módszer elfogadtatása az emberekkel (itt a döntéshozókkal)
(4) Támadási felületet is jelent, egyfajta 'Nagy Testvér mindent lát' pozíciót. George Orwell sem volt ilyen kreatív, amikor az 1984-et írta....Ebben az új világban George Orwell egy fantáziátlan kívülálló.
Az én gondom az idevágó bármily jóindulatú szabályozási kísérletekkel, hogy nem látom számonkérhetőknek. Márpedig minden szabályozás annyit ér, amennyit sikerül belőle betartani.
Az internet generáció szülöttei lehetnek a legnagyobb ellenzők, hiszen (nem megbántva őket) olyan világban szocializálódtak, ahol a Facebook vagy a Google teljesen szabályozatlan és szabad. Azt képzelik, hogy rendelkeznek az adatokkal, amiket megosztanak, de lassan, nagyon lassan rá kell döbbenniük, hogy ebben a kérdésben kompromisszumokra lesz szükségük.
 Én azt gondolom analógiaként, hogy előbb volt atombomba, mint atomerőmű. Az egész témát nem valamiféle "jó cél"-nak megfelelés "drive-olja". A pénz sem, a motiváció sem onnan jön.


0.RÉSZ: Mire jó és mit jelent a Big Data?


Mi a Big Data és mi nem.?
  • A Big Data nem a Facebook bejegyzéseket vagy Google-keresésekre vonatkozó információkat tartalmazó adathalmaz, hanem az emberek tényleges viselkedéséről szóló információkat tartalmazza.
  • Az adathalmaz az emberi viselkedés nyomait követi figyelemmel. Az vagy, amit csinálsz, és nem az, amit állítasz magadról.
  • Az adathalmaz elemzése segíti előre jelezni a várható viselkedést – ha látunk egy adott viselkedési mintát, akkor következtethetünk a többire is annak alapján, mely társadalmi csoportról van szó.
  • Az adathalmaz a kapcsolatrendszerekre épül, főleg az emberi kapcsolatokra (szemben korábbi módszerekkel, melyek kihagyták az emberi tényezőt).
  • Igazán nagy mennyiségű adathalmaz esetében a statisztika jelentősége elveszik, hiszen szinte minden adat relevánsnak minősíthető.
  • Az ember ösztöneire, ítélőképességére szükség van ahhoz, hogy a fals összefüggéseket kiszűrjük.
  • Az adathalmaz társadalomkutatásra is felhasználható – összesített fogalmak helyett az egyének kapcsolatrendszereit helyezi előtérbe – a megszemélyesítés is egyszerűbb így.
  • A szakma prominensei közül sokaknak új még ez a módszer.
Na rögtön az első ponttól azonnal dobtam is egy hátast - a másodiktól már korábban is ugye. ;). Nem akartam hinni a szememnek, amikor olvastam. És ezt sikerült összhoznia annak az embernek (Sandy Pentland), akit a világ 7 legjobb adatbányásza közé sorolnak (Mi alapján is?). Vagy én vagyok nagyon eltévedve, vagy az komplett baromság, hogy a Big Datát a "viselkedés"-topikra redukáljuk. Már csak azért is, mert akkor Behavioral Big Datának kéne hívni. Ha már a definiciónál elkezdődne a sumákolás, akkor később ki fog hinni a szakmának?

A harmadik pont elfogadható állítás tud lenni (negyedikkel együtt). No nem abban a kontextusban, hogy a több adat definitive sikeresebb következtetéshez vezet (mert nem). Hanem, mert minőségi ujdonságot rejt magában potenciálisan a Big Data: az erősebb magyarázó erő tudhat jobb - például - prediktálást.

Szerintem az ötödik pont így ebben a formában nem állja meg a helyét (intuició alapján, azaz tévedhetek). Nyilván a statisztika önmagában nem elég a Big Data kezeléséhez. Azért én mégsem kukáznám az eszköztárból.

Hatodik pont maximálisan elfogadható. Csak gép itt is mindig kevesebb lesz, mint a gép+ember kombó. Amióta csak adatbányászat van, ez mindig így volt. És jelenleg én nem látok reális alapot olyatén spekuációkra, hogy ez meg tudna változni.

A hetedik-nyolcadik pont számomra űrtöltő felesleg: nem foglalkozom velük.

Mire jó a ’Big Data’?
  • Az adathalmazok elemzése során személyi adatokat használunk fel, így az adatvédelem kulcskérdés.
  • Óriási lehetőségek rejlenek új társadalmi rendszerek megteremtésében annak alapján, ahogy az emberi kapcsolatok szerveződnek, ez pedig segíthet egy igazságosabb és stabilabb világ megteremtésében.
  • Szintén nagy segítség lehet az olyan problémák kezelésében, mint a vírusok terjedésének megállítása vagy a globális felmelegedés mérséklése.
  • Az adat annál többet ér, minél szélesebb körben lesz megosztva, tartózkodni kell azok raktározásától.
  • A kormányok és a legtöbb cég üdvözölné az embereknek saját személyes adataik felett gyakorolt tulajdonjogát - a Google és a Facebook egyelőre kitartanak.
  • Az adatok megosztott formában sokkal erősebbek, megvédik az egyéneket az adataik központosításától.
Ezek pontok számomra alapvetően hamisak, egy rossz cél, rossz alkalmazására redukálva. :o(

Kezdve ott, hogy az lenne jó a Big Datában, hogy veszélyben az ember privát szférája, amivel külön kell foglalkozni (1. és 5.pontok)? Ez a legnagyobb előny? Akkor mi lehet a hátrány? ;)

A vírusterjedéssel, már a hálózatkutatás is régóta foglalkozik. Ehhez szerintem nem kell Big Data. Ez így ebben a formában számomra csak rosszízű marketing-bullshit, kedvcsinálónak és disznóságok elfedésére.

Nem hiszek a négyes pont realitásában. A gazdagabb és erősebb több adatot fog birtokolni, és tojni fog arra, hogy továbbossza. A történelem tanusága szerint legalábbis.

Egyedül a 6.pont az elfogadható és támogatható. Analógia: egy Facebookkal szemben szívesebben támogatja az ember mondjuk a Diaspora-kezdeményezést. Azt gondolom egyébként, hogy a Facebook jó előtanulmány lesz az egész Big Datához. Ha a Facebook topon marad és/vagy erősődik, akkor a Big Data félelmeknek is egyre reálisabb alapja lesz.


1.RÉSZ: Hype és valóság
...a Netflix saját algoritmusának hibája 0.95 volt (négyzetes hiba, RMSE) ami azt jelentette, hogy előrejelzési képességei meglehetősen gyengék voltak. 
Na ettől a bekezdéstől  megint dobtam egy hátast. A szakmai részeletekbe nem belemenve, csak annyit kérdeznék MIHEZ képest gyenge? És valószínűleg azért tarolnak az ajánlórendszerek (csak itthon Magyarországon is), mert gyengék. Ilyen szakmai alapokon akarunk "új társadalmat építeni"? ;) [Most arról nem beszélve, hogy ha már ilyen részletesen belement a cikk a Netflix-versenybe, illett volna magyar vonatkozást is mellétenni (hajszállal is kevesebbel maradt le a második helyezett magyar csapat)]
...az arra vonatkozó átlagos előrejelzési mutatót, miszerint hogyan fognak a nézők egy filmet értékelni, kevesebb, mint 0.1 csillaggal sikerült javítani, pontosítani.
Szakmailag ez még felháborítóbb bekezdés az én olvasatomban. Igen 0.1 csillaggal. De könyörgöm mihez képest?
Az elemzők oly módon állapítják meg ezeknek az elpártoló fogyasztóknak a számát, hogy az ún. ’lift’ módszert alkalmazzák (lift=speciális adatbányász módszer). 
És amikor az ember azt hinné már nem lehet fokozni a fokozhatatlan, akkor belefut ebbe a bekezdésbe.Nézzük:
(1) A LIFT nem módszer ebben a kontextusban tárgyalva, hanem (hatékonysági)mutató
(2) Az elpártoló fogyasztók számának előrejelzéséhez nem kell adatbányászat. Az elpártoló fogyasztók azonosításához kell az adatbányászat, ami azonosítás mellé aztán akciótervet kell tenni.
Ha valakit érdekel a LIFT, önreklámként itt egy korábbi posztom (ha már ennek a blognak is a nevében benne van a dolog. ;)
A bank és a telekommunikációs szektor harmic különféle elpártolási módját vizsgálták meg és meglepő módon – bár különböző adathalmazokat és algoritmusokat használtak – hasonló eredmények születtek. A top 1% elpártolóinak 9-11-es liftje volt
Először is ez így semmit nem ér: hiányzik az infó, hogy meddig élt a modell. Nem mindegy, hogy 1 hónapig, vagy 5 évig  produkált a modell ilyen LIFT-et. ;)
Másodszor, nekem nagyon nagy szerencsém lehetett, ráadásul itthon Magyarországon, amikor termékspecifikusan, Clementine-kalkulálta (szigorúbb) 40-szeres LIFT-et ostromoltam, de általánosan és hónapokon átívelően is konstans 20-szorosat tudtam felmutatni (objektív visszaméréssel). [Azt már nem is említve, hogy az erőszakosan mohó és telhetetlen megrendelő még ennek sem tudott örülni, hogy kenyértörésig vitte a recall-mutató adott pénzügyi konstellációban indokolatlan és inkorrekt minden határon túli javítását.]
Mindez azt jelzi, hogy az előrejelzés meglehetősen pontatlan módszer az elpártolás megfigyelése esetében.
Erre én már csak azt tudom mondani, parafrazálva Weöres Sándor költőt, hogy "az egész világ hülye, nekem a seggemben is fejem van". Féligazság persze van ebben is. Ha sikerül erősebb magyarázó változót találni, vagy van lehetőség call-centeres ügyfélhívásokat elemezni, akkor lehet jobb churn-modellt építeni, azaz lehet különbség churn-modell és churn-modell között, adott vállalaton belül is. Csak hát ezt le kellene írni, ugye.

Az aktuális részből hátralévő sorokkal már szerencsére nem kell foglalkoznom. Éppen elég tortúra volt az eddigiekkel. ;) A második részt is ignorálom (immáron kompletten), ugyanilyen alapokon. nagy szerencse, hogy van lehetőség felpörgetni az eseményeket, hiszen már így iszonyú hosszú ez a blogposzt.


3.RÉSZ: Szkepticizmus

Itt is elsősorban két dolog érdekes:
Volt egy forrás, amit referenciaként sokan megjelöltek előadásukban, ez pedig az IBM 4V elmélete: Volume, Velocity, Variety, Veracity (terjedelem, gyorsaság, sokszínűség, valódiság). A terjedelem adott, hiszen big data-ról beszélünk. A második V azt jelzi, az emberek milyen gyorsan akarnak hozzájutni az adott információhoz. A sokszínűség arra emlékeztet minket, hogy a big data egy szervezetlen adattenger, tele fotókkal, videókkal, nyílt végű válaszokkal. A valódiság pedig azt jelzi, hogy az adott információ korrekt és megbízható-e.
Egyszerű és nagyszerű. Mondjuk nem nehéz hasonlót megfogalmaznia az embernek. A pár nappal korábbi posztom vége felé hasonlót én is ígyekeztem elkövetni, kicsit más kontextusban, és saját kútfőből.
Ray Poynter szerint számos kulcstényező van, ami befolyásolja a big data-ban rejlő potenciált:
  1. A big data csak azt méri, ami meghatározott körülmények között történt. A matematikusok gyakran használják az interpoláció módszerét annak érdekében, hogy megbízható eredményt kapjanak (az értelmezési tartományon belüli értékek becslése). Ezzel szemben az extrapoláció (kikövetkeztetés) vagyis valaminek az előre jelzése mindig nehéz és problematikus. (Ilyenkor a a már valamennyire ismert értelmezési tartományon kívül eső szakaszokra adunk közelítést.)
  2. Ha egy inputhoz random vagy nem releváns adatokat kötünk, akkor az kevésbé egyértelművé válik. A megfelelő működéshez el kell távolítani ezeket a spontán, irreleváns adatokat. Ha például vásárlási adatokat gyűjtünk, és ennek során minden lehetséges adatot összeszedünk, akkor azt csak úgy értelmezhetjük, ha az irreleváns dolgoktól megszabadulunk – a nagyobb tehát nem feltétlenül jobb.
  3. Ha az összegyűjtött adatok egymással mind korrelációban vannak (multikollineárisak), akkor a legtöbb matematikai elemző módszer nem lesz sikeres – instabil előrejelzések születnek így.
  4. Néhány viselkedésmotívum meglehetősen kaotikus. Ha változtatunk az inputon, akkor változni fog az output – azonban előre nem jelezhető módon.
Nekem és első olvasatra az 1. pont roppant zavaros így ebben a formában.
Kérdéseim:
- A Big Datát nem akarjuk használni extrapolációra? Ez így nekem megmosolyogtatóan hangzik.
- Mi az hogy értelmezési tartomány ebben a kontextusban?  (Gondolom az időre gondolnak, például előrejelzésnél)
- Az előrejelzés, mint spéci osztályozás, rendelkezik avval a nagyszerű lehetőséggel, hogy visszamérhető múltbéli adatokon. Az egész extrapoláció-lány fekvése így kicsit másképpen néz ki nem? Plusz ezt talán meg lehetett volna említeni, nem?
- Az én olvasatomban az ignorálandó extrapoláció az, amikor a klímahisztizők, 100 év 0.75 fokos hőmérsékletemelkedéséből vízionálnak 8 fokos hőmérsékletemelkedést az elkövetkező pár tíz évben, méréses - Big Data - alapján..

 A 2-3-4 pontok így első ránézésre hellyel közzel rendbevannak, sőt érdemes szem elött tartani Big Datától függetlenül is.


4.RÉSZ: Forradalmak

A rész eleje megint ismétléssel indul azt ugrom.

Ami viszont utána jön, azt végre nagy örömmel olvastam. Csak ezért érdemes volt belevágnom ebbe a blogposztba. Kár hogy nullához konvergál azok száma, akik idáig eljutnak az olvasásban.

Azt godolom nagyon érdemes megfontolni. Különösen, hogy milyen hátrányban vagyunk itthon Magyarországon e téren.

A menedzsment öt kihívása

A cégek csak akkor lesznek képesek learatni a big data mozgalom babérjait, ha kellően alkalmazkodnak a változásokhoz. Van öt terület, ami különösen fontos ebben a kérdésben.
VEZETÉS. ...mert olyan vezetői gárdával bírnak, amely egyértelmű célokat jelöl ki, definiálja a sikert, és a megfelelő kérdéseket teszi fel. A big data nem teszi feleslegessé a víziókat, az insightok fontosságát. Épp ellenkezőleg, ma is szükségünk van olyan vezetőkre, akik meglátnak egy nagyszerű üzleti lehetőséget, értik a piaci fejlődés menetét, kreatívak és céltudatosak, sajátos meglátásokkal rendelkeznek, van meggyőzőerejük, képesek a kemény munkára.
TEHETSÉGEK MENEDZSELÉSE. A legfontosabbak talán azok a képességek, amellyel megtisztítjuk és rendszerezzük az adatokat; hiszen az adatok manapság ritkán lelhetőek fel rendszerezett, strukturált formában. Az adatok megjelenítésének eszközei hasonlóan értékesek lesznek. ...áthidalni a korreláció és az ok-okozati összefüggések között lévő szakadékot. A legjobb adathalász szakemberek képesek az üzlet nyelvén beszélni, és segíteni a vezetői réteget abban, hogy olyan új megoldásokat találjanak... Nem meglepő, hogy pokoli nehéz ilyen szakembereket találni, mert óriási igény van rájuk a piacon. 
TECHNOLÓGIA. A big data terjedelmét, sebességét és sokszínűségét kezelni tudó technikák rendkívüli mértékű fejlődésnek indultak az utóbbi években. Ezek a technológiák nem vészesen drágák, a legtöbb használt szoftver nyílt forráskódú. Az egyik leggyakrabban használt keretrendszer, a Hadoop a beérkező adatokat olcsó lemezeken tárolja, emellett azok elemzésére is kínál eszközöket. Persze ezek az szoftverek olyan képességeket is igényelnek, melyek ma még hiányoznak a legtöbb IT-részleg fegyvertáraiból, melyeknek azon kell dolgozniuk, hogy a releváns belső és külső adatforrásokat eggyé integrálják. A technológiákra túlzott figyelmet fordítani nem szerencsés, de fontos összetevői a big data stratégiának.
DÖNTÉSHOZATAL. Egy hatékony szervezet működésének titka, hogy az információt és a döntéshozatal jogát a megfelelő személynek, személyeknek a kezébe adja. A big data korszakában, ahol az információ folyamatosan keletkezik és átalakul, a szakértői vélemény pedig sokszor nem azt jelenti, amit jelentenie kellene. Egy ügyes, szemfüles vezető olyan rugalmas szervezetet fog kialakítani, amelyben a „nem itt találták ki” szindrómát minimalizálja, a funkcionális együttműködést pedig maximalizálja. A problémát jól értő szakembereket össze kell hozni a megfelelő adattartalommal, de olyan szakemberekkel is, akik a megfelelő problémamegoldó technikákkal bírnak.
VÁLLALATI KULTÚRA. Az első kérdés, amit egy adatközpontú vállalatnak fel kell tennie: „Mit tudunk?” és nem az, hogy „Mit gondolunk?” Mindez paradigmaváltást igényel, el kell szakadni az ösztönös megérzések világától. Arra is szükség van, hogy egy sok helyütt tapasztalt rossz szokásnak véget vessünk: sok vállalat aposztrofálja magát adatközpontúnak, akik nem is vagy csak kevéssé azok. Túl gyakran látjuk azt, hogy a vezetők adatok sokaságával kozmetikázzák ki jelentéseiket, hogy úgy tűnjön, döntéseiket szigorúan adatokra alapozva hozták, pedig azok a szokásos HiPPO-módszerrel születtek. Aztán persze megkérték az alkalmazottakat, hogy számokkal, adatokkal is igazolják a döntés helyességét.

5.RÉSZ:Szép remények
  • Először is, a megkérdezettek nagy várakozásokkal tekintenek a módszer és annak potenciálja elé.
  • Másodszor, sokan még nagyon kezdők a témában. Nem rendelkeznek még azokkal a képességekkel, melyek a big datában rejlő lehetőségek kiaknázásához kellenek.
  • Harmadszor, a kérdőív eredményei gyakran széthúzóak – azt sejteti, hogy egyazon szervezet szakemberei sem mindig értenek egyet kulcskérdésekben, nem egyformán vélekednek azokról.
Tanulságos. Az ember intuitive is hasonlókat fogalmaz meg a környezetét látva.

 A hatodik részt ignorálom, az eddigiekhez képest jóval alacsonyabb infótartama miatt. A 7.részt még nem volt módom látni. De meglehet nem is túl nagy veszteség, a 4.rész minden pozitívuma ellenére sem. ;)

2013. február 16., szombat

Viselkedés közgazdaságtan egyes kérdései


Nem túlzok: minden idők talán legjobb cikkét (interjúját) közölte az index.hu, és szerencsére jó hosszan, informatívan. És jó látni végre, hogy nemcsak az interjúalany értelemes, hanem a kérdező is a feltett kérdéseivel. Érti a témát, rá tud fókuszálni lényegi kérdésekre. Már feltéve, hogy a kérdező maga kérdezett és nem az interjúalany segített rá. ;)  (Ezt ugye az olvasó nem tudhatja)

Az interjúban felbukkanó kutatópár mindkét tagja - adatbányász szemmel - érdekes és forró témában kutat, és mindkettejükkel készített nemrégiben interjú az index.hu. Én a frissebb Kőszegi Botond-interjú-val fogok foglalkozni alább, egy-egy gondolatkör kommentelése révén. Ami interjúhoz egyébként már a kedvcsináló is úgy frappáns, hogy nem irritáló:

- A dolgozók érzelmeivel is foglalkozni kell egy munkaadónak
- Hiba olyan befektetést választani, amit ügynök ajánl
- Megmagyarázza azt is, miért sikeres a rossz termék
- Hiába drága és rossz egy termék, ha egy egyébként sokszereplős piacon mindenki forgalmazza, akkor sikeres lehet, mert senki nem hívja fel a figyelmet a hibáira
- Hiba a múltbeli eredmények alapján tervezni a jövőt, mégis sokan ezt teszik
- Az emberek a veszteségtől jobban félnek, mint amennyire a nyereséget szeretnék
- És sokan a pénzt sem sajnálják, ha rosszat akarnak
Állítja Kőszegi Botond, a viselkedési közgazdaságtan magyar kutatója.

Igyekszem rövidre fogni magam, hiszen már az interjú is meglehetősen hosszú. :)

Kőszegi Botond: Az emberek tizede fizetne, hogy másnak rosszabb legyen
Szeidl Ádám: A pletyka nem olyan, mint hittük


Mit kutat, aki a közgazdasági viselkedéseket vizsgálja?
A viselkedési közgazdaságtan célja, hogy pszichológiailag pontosabb modellek segítségével jobban megértsük a gazdasági jelenségeket. A kutatási témám egy egyszerű megfigyelésen alapul: számos terméknél, mint például az ingatlanhitel vagy a hitelkártya, a fogyasztók jellemzően nem értik a tényleges költségeket, mert nem olvassák el az apró betűs részeket, és nem gondolnak bele, hogy mi minden lehet ott elrejtve.  Az ilyen félrevezető termékek piacáról elég keveset tudunk, ezért társzerzőimmel több szempontból is fogjuk vizsgálni. Az egyik első kérdésünk egy talány: sokakkal együtt mi is azt gondoljuk, hogy általában azok a piacok működnek jobban, és nyújtanak a fogyasztóknak jobb dolgokat, ahol nagyobb a verseny. De pont ilyen piacokon, mint például a hitelpiacokon, figyelhetünk meg gyakran félrevezető termékeket. Kérdés, miért van ez.
Az én adatbányász énem/terminológiám ezt úgy értelmezi, hogy a közgazdaságtani modellezés nem tökéletes: van benne még fejlődési potenciál, például azáltal, hogy erős - még akár eddigieknél is erősebb - magyarázóváltozókat talál és használ fel, modellépítés során.

Szenzációs gondolat úgy általában a hitelezést elővenni. Ez ma Magyarországon nagyon forró téma. Sok és sajnos hosszú távra ígérkező bajunk forrása; legfrissebben itt. Egy füst alatt mutatja azt is, hogy "van pénz" a témában, nem egy intellektuális onanizálásról van csak szimplán szó.  

Úgy általában a (deviza)hitelezést elég széles spektrumon szokás megítélni meg tárgyalni, kezdve a konteóktól. Magam nem vitatva a tényt, hogy a hitelezők sok ocsmány aljassságot követtek el a témában. igyekszem rendszer-szinten nézni a kérdést, és a rendszerbe kódolt problémákat - például előzetesen kivédhetetlen szabályozási anomáliákat - azonosítva, megérteni a történéseket, illetve azok mozgatórugóit.

Óriási gondolat és jó olvasni a szövegben, hogy piacgazdasági versenykeretek között, verseny és verseny között is van különbség.Mondhatni semmi meglepő nincs benne (nagy gondolatok jellemzőjeként), de ha erős mondások  ejthetők nyomában, akkor azért másképp néz ki a leányzó fekvése. :)

De a nem viselkedési, „sima” közgazdászok is arra törekszenek, hogy a modelljeik minél jobban írják le a valóságot. Mi itt a különbség?
Általánosítva azt lehet mondani, hogy a közgazdászok hagyományosan nem tartották különösebben fontosnak, hogy az emberi pszichológiát illetően pontos feltevésekből induljanak ki. Sokkal fontosabb volt, hogy az előrejelzéseik pontosak legyenek, hogy a modelljeikkel jól meg lehessen érteni gazdasági jelenségeket, és hogy fogódzót tudjanak adni hatékonyabb intézmények és szabályozások tervezésében. Ezekkel a célokkal mi viselkedési közgazdászok is teljesen egyetértünk, de úgy gondoljuk, hogy sokkal pontosabbak lehetünk, ha pszichológiailag pontos feltevések a kiindulópontok.
Kardinális és általános adatbányász-hibára hívja fel a figyelemet a fiatal kutató-interjúalany. Az előrejelzés-pontosság fontos, de önmagában sose elég. Azt már én tenném hozzá, hogy időben konstansan működő-nek, vagy elmászásának detektálhatónak kell lennie.  Az nem reális elvárás, hogy örök életre tökéletesen működjön egy modell. De tudni kell megállapítani,  mikor (és miért) jár le a modell szavatossági ideje. Nem mellesleg a közgazdasági modellezők is ezt a hibát követték el sokszor. Isszuk is a levét itthon is, a nagy világban "válság" formájában (emiatt is, de persze nemcsak emiatt).

Ezen felül persze, maximális nyitottsággal, mindig kell keresni erősebb magyarázó változókat a modellezéshez. Kvázi kimeríthetetlen kincsestára lehet nekik a világban, ráadásul újak is keletkezhetnek.

Akkor egy viselkedési közgazdász kidobja a közgazdaságtanban megszokott teljesen racionális ember képét, és keres valami újat?
Ezt egyáltalán nem mondanám, sőt építünk erre, csak olyan helyeken megváltoztatjuk, ahol ez pszichológiailag reális és fontos következményekkel járhat. De a módszereink teljesen közgazdasági módszerek, és a kérdéseink is közgazdaságtani kérdések.
Na ez a kérdés mondjuk gyengébb kérdésnek látszik szakmailag (az eddigiek alapján), mégis jó apropó némi félreértés tisztázásra Fontos látni, hogy nem nulláról indulva "leváltani" akarnak, hanem kiegészíteni, megújítani, ráadásul rendszeren belül.

Az egy érdekes aspektus, hogy mikor kell nulláról kezdve zöldmezősen új alapokat építeni, avagy csak új aspektussal kiegészíteni. Erre nehéz - ha nem egyenesen lehetetlen - ökölszabályt mondani. Az biztos, hogy az új aspektussal szemben elvárás, hogy erős legyen és látszódjon is az ereje. Míg megfordítva a lenullázás sokkal könnyebb, mint, nulláról építkezni, gyorsan, olcsón, hibamentesen.

Már volt szó róla a blogon. Nem elég, hogy egy világmegváltó ötlet jó és/vagy motivációja támogatható. Működőképes-nek kell lenni, kezdve avval, hogy esélyt kap a bizonyításra. Különben papíron marad csak. A mostani mondjuk most így "pénzügyi rendszer" tehát hiába kritizálható több fronton, azt nem lehet tőlük elvitatni, hogy működnek abban az értelemben, hogy kifejti hatását életünkre.

Tudna erre konkrét példát mondani?
Ilyen az önkontrollproblémák területe. Mindennapi jelenség, hogy eltervezünk valamit, amit meg akarunk csinálni, például leszokunk a dohányzásról vagy elkezdünk spórolni, de végül mégse tesszük meg, mert kényelmetlen, vagy más ügyek mindig fontosabbak lesznek. Ez egy jól ismert pszichológiai megfigyelés, de hihetetlen módon alig vizsgálták közgazdászok. Pedig el lehet képzelni, hogy mennyi fontos gazdasági következménye van, a megtakarításoktól kezdve az egészséges életmódon át a tanulásig vagy a munkáig rengeteg dolgot érint – mindent, ahol hosszú távra kell tervezni, de aztán nap mint nap kell dönteni.
Az én idevágó analógiám informatikai természetű. Hányszor van, hogy van egy elvárt működésről valamiféle prekoncepciónk, aztán valami mégsem úgy megy a rendszerben. Szállóige a szakmában, hogy: "a program nem azt csinálja, amit szeretnél, hanem amire programoztad!"

Szóval az van, hogy mint egyének el vagyunk átkozva, és a hosszú távú célokat mindig lejjebb rangsoroljuk a rövid távúakhoz képest?
Nem feltétlenül, az ember felismerheti magán a jelenséget, és megpróbálhat tenni ellene. Megkérheti például a barátait, hogy pofozzák meg, ha rágyújt. Érdekes vonatkozása a viselkedési közgazdaságtani kutatásnak, hogy az ilyenfajta önmegismerést segítheti, és ha kell, egyéni szinten is hozzájárulhat a hibák ellensúlyozásához. De a viselkedési közgazdaságtani meglátások azért a szabályozáson keresztül segíthetnek a leginkább.
Gyengének látszik a kérdés, de ismét rá lehet világítani kulcsfontosságú momentumra.Igen a "hosszútáv" és "rövidtáv" egy érdekes magyarázóváltozó. Kérdés elég érdekes-e, elég fontos-e, van-e nála erősebb esetleg.A jó magyarázó-változó - azonosítás, jó cselekvéssorozatot indukálhat. 

Milyen módszerekkel kutatnak?
A kutatásunk célja, hogy matematikai modellek segítségével rendszerezzünk általános jelenségeket, és megkülönböztessük a jó és rossz gondolatmeneteket a jelenségek vizsgálatakor. Visszatérve mondjuk a félrevezető termékek példájára, egy közgazdász azt mondhatná – sokan mondták is –, hogy egy olyan piacon, ahol nagy a verseny, a versenytársaknak érdeke felfedni az ilyen termékek jellemzőit, hiszen ezzel előnyre tehetnének szert a fogyasztóknál. Így, szól az érv, előbb-utóbb eltűnnek a félrevezető termékek a piacról. De fel lehet tenni azt a kérdést, hogy ez mikor történik meg és mikor nem. Másik érdekes dolog, hogy ezek a termékek nem az égből szállnak alá, valakiknek ki kell találni azt, hogy mondjuk egy hitelszerződésbe hova lehet rejtett költségeket elhelyezni, és hogyan kell őket hatásosan leplezni. Ilyen szempontból ez kutatás-fejlesztésnek tekinthető, de nem a szó szokásos értelmében, mert ez egy rossz irányú k+f. Érdemes megtudni, hogy mi az ösztönzője a cégeknek arra, hogy ilyen, általunk kizsákmányoló innovációnak nevezett k+f-re költsenek, és hogy ez hogyan zajlik.
Óriási öröm volt olvasni a kérdésre adott választ. Igen; egy adatbányásznak is leghőbb vágya kell legyen a szakmailag megalapozott, valóságot jól közelítő, jó gondolatmenet (amihez óhatatlanul és egyaránt szükséges követelmény többek között a pontos megfigyelés, tárgyilagosság és fantázia)

Az (adatbányász) etika is előkerül. Ha lehetséges apróbetűs szövegezéssel tömegeket átverni tudományos alapon, akkor ez ugyan pénzt hoz, mégsem támogatandó.

Azt is lássuk be, hogy az ember átverhető, rögtön kezdve a jóhiszeműségével, időhiányával visszaélve (leterheltségén, stresszén keresztül). De aki még kétkedő és igyekszik meg tud is alapos lenni, ha nem szakterületét érintő témában kell döntenie, hiányozhat neki információ, aminek vége lehet, hogy nem lát át pontosan a szitán. Olyan ez mint a bűvészet. Illuzióba kerülhetünk, csak itt nem tapsolunk a végén.

Vannak már eredmények ezekben a témákban?
Az első példánál maradva igaz, hogy a versenytársak hátrányos termékjellemzőinek felfedésével jól lehetne versenyezni, de rá lehet jönni, hogy van egy komoly hátránya is. Ha elmondom a fogyasztónak, hogy a versenytársam hitelkártyája miért drága, milyen extra költségeket kell majd fizetnie, akkor a fogyasztó nemcsak arra fog rájönni, hogy az enyém olcsóbb, hanem arra is, hogy az egész konstrukció alapvetően egy drága termék. Emiatt sokan nemcsak a versenytárstól nem fognak ilyet venni, de tőlem se. Ez egy elég erős hátrány, ezért sokszor nem érdeke egy szereplőnek felfedni a versenytárs termék hátrányait. És pont akkor nem jellemző az ilyesmi, ha nagyon rossz a termék. Tehát ha olyan rossz az egész termékcsalád, hogy igazából senkinek nem lenne érdemes megvenni egyik terméket sem, akkor még egy versenytársnak sem érdeke soha elmondani egy termék valódi jellemzőit. Sokszor ezért éppenséggel a legrosszabb termékeket dobhatják nyereségesen a piacra a cégek.
Az én konklúzióm: pontosan kell azonosítani, mi az illúzió és mi az tényleg, ami valóban annak is látszik ami. 

Vannak ebben kulturális különbségek, lehetséges, hogy mondjuk a norvég fogyasztók kevésbé hajlamosak félreérteni egy termék költségeit, mint a magyarok?
Sajnos nagyon kevés tapasztalati adatokon nyugvó kutatás született eddig erről, ezért kifejezetten kulturális különbségekről nem tudok. Ugyanakkor szabályozásbeli különbségekről igen: van, ahol sokkal szigorúbban korlátozzák, hogy mit lehet árulni, és pontosan hogyan.
Én ezt a kultúrális topikot jobban nyitva hagynám, mint a kutató interjó alany tette ebben a pár betűben. Még vidék és főváros között is lehet markáns különbség (tárgyunk szempontjából is). A kultúrák közötti kultúrális különbség is lehet fontos tényező. 

Akkor a mostani kutatásától is várhatunk valamilyen szabályozási javaslatot?
Mindenképpen. A kutatásunk, sőt általában az ilyen jellegű kutatások egyik fő célja, hogy az eredmények beépüljenek a szabályozásba. Persze azért ezt a befejezéshez közeledve érdemes várni, először ugyanis pontosan meg kell értenünk a helyzetet.  De mondok erre egy példát egy kicsit régebbi kutatásomból.  A mostani szerzőtársammal készítettünk korábban egy kifejezetten ingatlanhitelekre és hitelkártyákra vonatkozó tanulmányt, ami az önkontrollproblémákból indult ki. Abból indult ki, hogy az emberek hajlamosak fölvenni túl nagy összegű hitelt, mert azt hiszik, hogy majd úgyis gyorsan vissza tudják fizetni, de aztán mégsem tudják ezt megtenni, és extra büntetéseket fizetnek rá. Ezzel gyakorlatilag a hitelnyújtó kihasználja az említett önkontrollproblémát. Itt többek közt az volt a javaslatunk, hogy csökkenti a problémát, ha megtiltjuk a kis késésekért nagy büntetéseket kirovó konstrukciókat.
Bizony-bizony nem elég szabályozni: jól is kell szabályozni, jól megértett alapokon. és persze, teljesen (mindent lefedően), ellentmondásmentesen, minimálisan (redundanciamentesen), közérthetően, használhatóan stb. Ez nem "mission impossible", egyébként? ;)

A felhozott példa a szövegben nagyon tanulságos. Érdemes belegondolni!

Ha fel tudnánk mérni a veszteségeket is, akkor viszont túlzottan tarthatnánk egyes termékektől, nem?
Igen, a viselkedési közgazdaságtan másik nagy területe épp a veszteségkerüléshez kapcsolódik. A dolgok hatását ugyanis jellemzően nem önmagában ítéljük meg, hanem másokhoz viszonyítva. Például a fizetésünknél általában nem azt nézzük, hogy hány kiló kenyér jön ki belőle, hanem hogy a barátaink fizetéséhez, vagy mondjuk az elvárásainkhoz, céljainkhoz képest mennyi. Ez egyébként az úgynevezett referenciafüggő preferenciák elmélete. Ezen belül fontos jelenség, hogy a viszonyításnál a veszteségektől jobban tartunk, mint amennyire a nyereséget szeretjük. A legtöbben például visszautasítanának egy olyan játékot, amiben egyenlő eséllyel nyerhetnek tízezer forintot vagy veszthetnek nyolcezret. Ez a játék átlagban nyereséges, de a nyolcezer forintos veszteség fájdalmasabban hangzik nekik, mint amennyire csábító a tízezres nyereség. Ennek szintén rengeteg hatása van a gazdasági viselkedésre, például a pénzügyi kockázatvállalásra vagy az árakhoz és a bérekhez való viszonyra.
Óriási gondolat a "referenciafüggő preferencia" azonosítása. Símán meglehet, hogy csak ennek kifejtése külön blogposztot megérdemelne, márcsak a hálózatos analógia apropóján is.

Itt van szerepe annak, hogy valaki képzett-e közgazdaságtanból? Azt várná az ember, hogyha valaki átlátja, hogy pozitív egy játék várható értéke, akkor inkább rábólint.
Van, a veszteségkerülés általában alacsonyabb a képzettebbek vagy a magasabb IQ-val rendelkezők körében, de azért náluk is jelentős. Például nagyon sikeres, több millió dolláros vagyonnal rendelkező amerikai befektetőknek felajánlották közgazdászok, hogy egyenlő eséllyel nyerhetnek 550 dollárt vagy veszthetnek ötszázat, és a nagy részük visszautasította a játékot. Ez azért érdekes, mert a saját befektetéseikben ennél lényegesen kockázatosabb pozíciókat viszont gyakran felvállaltak. Az az igazság, hogy a veszteségkerülés elég erős és általános jelenség.
Tanulság? Kell tudni okosan játszani, és hozzá következetesnek lenni tudni. Mondani persze könnyű. :o)

Be tudna mutatni még más jellegű eredményeket is?
Egy másik szemléletes példa az lehet, hogy az emberek hajlamosak szisztematikusan, tehát módszeresen elkövetni bizonyos statisztikai hibákat. Ha egy kosaras bedobja ötször a labdát, akkor gyakran azt hisszük, hogy formában van, és a következő is bemegy, vagy ha egy befektetési alap jól teljesített az elmúlt években, akkor hajlamosak vagyunk azt hinni, hogy továbbra is így fog tenni. Pedig gyakorlatilag nagyon pici vagy semmilyen alapja nincs ezt hinnünk. Ilyen típusú hibára még a statisztikából doktoráltak is hajlamosak.
De jó volt olvasni. Ez a statisztikai-hiba topik is visszatérő téma itt a blogon. Attól, hogy valaki ötször sikeresen prediktált, nembiztos, hogy hatodszor is sikeresen fog. Mindenki egyenlő prediktálás-sikerességi eséllyel indul (persze csak ebből a szempontból). (Én a másik oldalt is hangsúlyozni szoktam: minden kimenetelt szoktak prediktálni, azaz valakinek mindig igaza lesz. A nagy feladvány az, hogy meg kell találni kinek).

A cégek erre rá is játszanak a befektetési alapok értékesítésénél, amikor az ember orra elé teszik, hogy mi nem ígérünk semmit, de azért nézd meg, milyen szépen muzsikált eddig ez az alapunk.
Abból indult ki az egész kutatásunk, hogy ezekre a hibákra a cégek nyilván reagálni fognak, még ha nem is tudatosan. A befektetési alap nagyon jó példa. Ha elindítok nyolc alapot, amik teljesen másba fektetnek, akkor az első évben mondjuk négy jól fog teljesíteni, abból a második évben is kettő, és a harmadik évben is egy. Ezzel az egy szuperül teljesítő alappal már elindulhatok házalni, a többit pedig csendben elhallgatom.
Bizony-bizony. Ismét csak rendszer-szinten kell gondolkodni. A tényezők helyes mérlegelésével. Ami persze nagyon nehéz.

De ezen nem segítenek valamennyit azok a kötelező tájékoztatók, amik felméretik az ügyféllel a saját kockázatvállalási hajlandóságát, befektetési időtávját és egyebeket?
Abban segíthetnek valamennyire, hogy az ügyfél eldöntse, az alapok milyen szélesebb kategóriájából – például biztonságos vagy kockázatosabb alapokból – érdemes választani. De abban nem, hogy az ügyfél a neki legjobb alapot válassza. A pénzügyhöz nem értőknek, tehát a legtöbb fogyasztónak főleg azt kellene néznie egy ilyen alapnál, hogy mennyi a kezelési költség. Abból ugyanis, hogy a múltban jól teljesített az alap, abból semmi nem következik a jövőre nézve, viszont a kezelési költséget biztosan le fogják vonni. A fogyasztók mégis a múltbeli hozamokat nézik, ezért van annyi alap, aminek magas a kezelési költsége.
És ha bekapcsolódik még egy ügynök a folyamatba, aki rábeszél bizonyos alapokra, az ront vagy javít a helyzeten?
Ezt most még nem tudjuk pontosan megmondani, mi is épp dolgozunk egy velük foglalkozó tanulmányon, de egyelőre rosszul fest a kép. Általában rossz dolgokat ajánlanak a befektetőknek, és ez logikus is: jutalékért dolgoznak, és akinek magas a kezelési költsége, az több jutalékot tud visszacsorgatni. Így az ügynök a rossz terméket fogja ajánlani. Akinek az lenne a szerepe, hogy segítsen a fogyasztóknak, az lehet, hogy átlagosan pont az ellenkezőjét csinálja, tisztelet a kivételnek.
Az üzenet ismét csak az, hogy vagy reálisan megalapozott legyen az ügynökben való megbízás, vagy lássa át valaki a teljes egészet. Óriási kihívás, lehetetlen küldetésnek látszik ez is. Marad a szimpla egyszerű józan paraszti ész? ;) 

Vannak olyan jó szabályozási gyakorlatok, amiket átvéve javíthatnánk ezen a helyzeten?
A probléma elég összetett, és nem is tudom pontosan, hogy a magyar szabályozás mit vett át eddig. Nem egyértelmű, de jó iránynak tűnik, ha átalakítjuk a piac egész működési modelljét, és nem a cégektől kapnak jutalékot az ügynökök, hanem közvetlenül a befektető fizeti őket. Ha nekem kell fizetnem neki, a befektetési alapnak pedig tilos, akkor könnyen javulhat a helyzet. Maguktól ezt a befektetők viszont nem szívesen csinálnák, mert megszokták, hogy ilyen díj nincs, komoly veszteségnek élnék meg, miközben a mostani rejtett díjakat nem veszik észre.
Komoly adatbányász-vonatkozása van ennek a témának is, és volt már szó róla a topikban. Én úgy szoktam fogalmazni, nem az a "májer"-adatbányász, aki a legnagyobb bevételt tudja felmutatni (bár nyilván fontos indikátor ez is), hanem, aki a legnagyobb profitot a megrendelőjénél.

Vannak még olyan területek, ahol érdemes módosítani a teljesen racionális emberképünkön? Érezzük például, hogy van olyan, hogy nagylelkűség vagy harag, aminek a gazdasági döntéseinknél is kell legyen hatása.
Igen, a szociális preferenciák területe is elég komoly terület, ez azzal foglalkozik, hogy hogyan viselkedünk olyan döntéseinknél, amik másokat is befolyásolnak. Nem mindig, de sok helyzetben hajlamosak vagyunk nagylelkűen viselkedni, például másoknak segíteni, és amikor így teszünk, az több okból is lehet. Lehet egyszerű altruizmus, amikor különösebb feltétel nélkül fontos nekem, hogy neked jó legyen. Lehet kölcsönösség, te rendes voltál velem, és most én is az akarok lenni veled. De lehet az is, hogy nem érdekel, mi van veled, csak fontos nekem, hogy mit gondolnak rólam mások, ezért leszek nagyvonalú.
Például az altruizmus-ról sok unintelligens dolgot lehet olvasni szerte a neten, magyarul is. Én nem merülnék most bele, mert túl nagy téma, és ez a poszt már így is túl hosszú.

Ezt a tudást hol lehet jól felhasználni?
Ezek főleg a szervezetek működésének megértését fogják segíteni. A munkavállalók ugyanis kapnak pénzt a teljesítményükért, ezért is dolgoznak, de részben rajtuk múlik, hogy mennyire hasznosan. Itt nagy szerepe van annak, hogy az emberek segítenek-e egymásnak, fontos-e nekik az egész szervezet működése. Izgalmas kérdés, hogyan lehet ilyet létrehozni.
Na ez a "szervezeti működés" topik az én mostan életemben is aktuálisan forró téma.  Kérdés mennyire van az ember saját magára utalva a kérdésben. ;)

És mi helyzet az ellenkezőjével, a negatív érzelmekkel?
Ez is létezik, és ez is többféle okból lehet. Lehet egyszerűen az irigység, amikor csak azt akarja valaki, az okoz neki örömet, hogy a másiknak rossz vagy legalábbis neki jobb legyen. Ez nem annyira gyakori, az emberek 10-15 százaléka hajlamos olyan mértékű irigységre, hogy pénzt hajlandó azért áldozni, hogy a másiknak rosszabb legyen. Gyakoribb, ha valami sérelem ért, rosszat tettél velem, akkor utána hajlamos leszek áldozni csak arra, hogy neked is rossz legyen. Ebből aztán kialakulhatnak rossz egyensúlyok, amikor mindketten csak azért teszünk rosszat egymásnak, mert a másik is. Az önzőség bizonyos okait mi is fogjuk vizsgálni Szeidl Ádám kollégámmal.
Ez az ellentett "önzés" annyira szomorú topik, hogy egyenesen fájdalmas mégcsak belegondolni is.

Hogyan?
Egy egyszerű megfigyelésből indulunk ki. Egyértelmű, hogy az emberek a döntéseik során nem tudnak minden létező információt figyelembe venni, ezért csak a döntésbefolyásoló tényezők, a lehetőségek kicsi, legkézzelfoghatóbb részének figyelembevételével hoznak döntéseket. Például, ha azért akar valaki edzeni, hogy egészségesebb legyen, az elég nehéz dolog, nehéz motiválnia magát, amikor eldönti, hogy eddzen-e: a pillanatnyi fájdalom nagyon kézzelfogható, míg a haszna – hogy a jövőben minden nap pár grammal könnyebb lesz – nem kézzelfogható. Ezért hajlamosak vagyunk a fájdalomra figyelni inkább. És ugyanez a meglátás alkalmazható a szociális preferenciákra is.
Kardinális motivum az emberi döntéshozatal tanulmányozásában, ez a "kézzelfoghatóság".

A konkrét hatások megelőzik az általánosakat?
Igen, legalábbis szerintünk. Azt gondoljuk, az emberek sokszor azért hajlamosak önzők lenni, például károsítani a környezetet vagy adót csalni, mert a tetteik másokra mért kára nagyon nem kézzelfogható, ezért könnyű nem figyelembe venni őket. Ha én adót csalok, az mit számít, ez annyira kevéssé károsít meg másokat, hogy észre sem veszik. Vagy mit számít, hogy autóval megyek bevásárolni, szinte mérhetetlenül kicsi az én részem a környezetszennyezésben. És részben ezért van az is, hogy például az adócsalás sokkal inkább elfogadott, mint a lopás. Ha ellopok egy pénztárcát pár ezer forinttal, annak a kára nagyon kézzelfogható, pedig kisebb kár a társadalomnak, mint az adócsalás, még ha az százezres értékű is.
Mennyire így van, akkor is, ha ennél azért összetettebbnek látszik a kérdés.
Amúgy meg a "konkrét és általános" szintén perdöntő motívum.

2013. február 14., csütörtök

Enterprise-level Form & DB architektúra


Feladat:
- Képernyő-formokon keresztül kell Oracle - később esetleg MSSQL vagy más? - adatbázisokba adatokat rögzíteni (+valamiféle menürendszer)
- Open-Source/Free alapok, elsődleges követelmény. Ettől még egy másik blogposztban át lehet tekinteni a commercial vonalat is. ;)
- Általános - enterprise-szintű - legyen a megoldás, ahogy a blogposzt címe is hangsúlyozza.
- Vendor-független technológia előnyben. Egy Oracle-Apex ebből a szempontból nem egy jó biznisz.
- Jellemzően CRUD(=Create Read Update Delete) a feladat, de azért jó, ha van perspektíva bonyolultabb üzleti logikára, szebb és/vagy jobb felhasználói képernyő-megjelenítésre, customizálásra.
- 100%-ban (erős) Windows7 munkaállomásokból áll a vállalati környezet, miközben a szerverek már nem annyira (kliens-szerver architektúra előnyben?)
- 100%-ban intranetes megoldás kell, bármiféle internetes megspékelési követelmény nélkül
- Ami specialitás (viszonyítási alapként): Legacy-rendszereknél a drága (alapból és rendes doksi+oktatás nélkül 8 millás) illetve kiváltandó kliens-szerveres Uniface helyére kell más.
- Riportálni nem kell tudni (csak képernyő-formot és menüt kezelni), mert a riportálás Oracle BI-alapú.URL-lel persze egy APEX-ből is ki lehet vezetni egy OBIEE-t, de kérdés, hogy ez mennyire elegáns, vet-e fel szakmai kétségeket.
Emiatt a bulettpoint miatt elmondhatom, hogy nem vagyok annyira offtopik - saját blogomban :))  [Zárójelesen megjegyzendő az nem igazán várható el, hogy ne is tudjon riportálni az eszköz/technológia, csak az maximum, hogy ne legyen égbekiáltó a különbség]

Kiegészítő (jellemzően saját) szempontok:
- Legkisebb „lábnyomú” (footprint), pehelysúlyú (lightweight) legyen: gyors indulású futtató-alkalmazás, kis méretű natív exe előnyben.
- Üzleti logika text-alapon kereshetően, átláthatóan legyen 100%-ban. Egy Oracle Forms .fmb-i kerülendők tehát. ;)
- Atomgyors (hogy növelje a felhasználói élményt)
- Flexibilis legyen a végtelenségig
- 3rdparty library-k integrálása teoretice is, valós gyakorlati életben is.
- Minél könnyebb legyen benne fejleszteni: Java Swing és/vagy SWT-nél és/vagy QT-nél egyszerűbben.
- Minél teljesebb felhasználói élményt adjon rögzítői oldalon.Nálam maximális alázattal - saját egoista szempontjaimról lemondva - az elsődleges fókusz a felhasználón van, aki használná az általam fejlesztett formokat. Inkább én mint fejlesztő és/vagy üzemeltető dolgozzak kicsit többet, mert az én munkám sokkal kevesebb lenne így is összességében.
- Szép legyen a form. Nálam a „szép form” legszebben a régi Delphis 3rdparty bővítményes eszkökészlettel volt implementálható.
- Billentyűzet-támogatás elegáns legyen (ne egerészni kelljen a rögzítőnek).
- Könnyű legyen módosítani a formokat, bővíteni formokkal/alkalmazásokkal a vállat informatikai eszköztárát.
- Könnyű legyen fejleszteni. Egy Java horizontálisan(API-k) és vertikálisan(mélység) a legkomplexebb nyelv. Kérdés, hogy egy .NET és C# mennyivel egyszerűbb. Illetve ahogy a programozási nyelveknél van 3GL/4GL (magasabb szintű programozás nyelvi struktúrák), úgy a formoknál is van magasabb szintű form-használat (kódírási minimalizálással).
- Meglévő vállalati készségek minél jobb újrahasznosítása, minél kevesebb "új" tanulásával.
- Minél kevesebb és/vagy kisebb hibázási lehetőség,
- Minél jobb és gyorsabb debug- meg hibajavítási lehetőségek.
- Könnyű legyen üzemeltetni. Nálam a könnyű egy régi exe lecserélése egy újra például ;) És nem alkalmazás-szerver leállítása, újraindítása, hibák kezelése stb.
- Ad absurdum, a fejlesztő környezet installja is legyen egyszerű: kicsi cuccként, még akár .zip-ből is valamilyen alkönyvtárba kicsomagolhatóan.
- 64-bites natív támogatás (esetleg), kliens-szerver architektúra esetén.
- A fejlesztő környezet minél kevésbé legyen „egzotikus”, abbahagyott fejlesztésű, kevéssé dokumentált stb (esetleg).
- Minél tömegesebben legyen oktatva, elterjedtség szempontjából. Ha már egyszer nem Uniface.
- Legyen magyar szakirodalom. Nem azért, mert a fejlesztők nem tudnak angol szakirodalmat olvasni, hanem, mert magyar szakirodalom megjelenése, kritikus tömegű magyar felhasználói tömeget érint, amelyre a szakkönyvkiadó érdemesnek lát szakkönyvet megjelentetni cost-benefit alapokon.
- Legyen "mainstream" a megoldás. ha már egy drága egyedi Uniface kerül lecserélésre. Az nem jó trend, ha csak egy valaki ért hozzá a vállalatnál, majd ő is elmegy a nagy fluktuáció közepette. De ez csak egy elv: a megoldás szakmaisága, elvszerűsége előrébbvaló ebben a blogposztban.
- "Faltól-falig" számolt költségek minimalitása. Hiába ingyenes egy APEX akár egy Oracle XE-vel is. Ez csak licence költség. Gondoljunk bele MSSQL-nél külön fenn kell tartani egy Oracle adatbázist vassal (ad absurdum négy hardver réteggel: MSSQL,Oracle,Web,Kliens-böngésző). Meg üzemeltetéssel, karbantartással, mainstreamből kilógó szaktudásigénnyel (nem triviális CRUD esetén), munkaidővel, stb.. Amit nem ellensúlyoz eléggé másik oldalon a felhasználói élmény. Nem véletlen, hogy ingyen adja az Oracle annak aki beugrik neki. ;)
- Repository-használat üldözendő technológia, amitől még az APEX sem tudott szabadulni, pedig az Oracle Forms, Reports, Designer is belebukott korábban (illetve némileg párhuzamosan). Egy Oracle BI Suite már nem is Oracle adatbázist használ repository információk alá. ;)
- Bármilyen ActiveX üldözendő technológia
- Opcionálisan érintőképernyő-lehetőség
- Opcionálisan Android-lehetőség

A blogposzt célja:
- a tárgybeli intellektuális szakmai kihívást,
- minél szélesebb körűen és tárgyilagosan, 100%-ban szakmai alapokon végiggondolni a témát,
- perdöntően a magam számára illetve nem "igehirdetés" céllal,
- előnyök-hátrányok vonatkozásában,
- a meglévő információk alapján,
- a tévedés jogát fenntartva,
- a minél maximálisabb tisztánlátás érdekében.
Azaz egész egyszerűen magamnak tartozom avval, hogy leírom a konklúziómat és megosztom.

Elöljáróban:
- Gondolatmenetemben a mi „NEM” irányából közelítek a mi „IGEN” irányába, vagyis ami legkevesebb kompromisszum mellett a legtöbb értéket tudhatja nyújtani az én értelmezésemben.
- Az informatikában – az én tapasztalatom szerint nem nagyon szokott lenni „fekete-fehér” szituáció. Minden előny mellé vaskos hátrányok szoktak párosodni.
- Nagyon ritkán van olyan, mint kivételesen szerencsésen ebben az esetben, hogy ultimate megoldást tudok találni (minden szempontból legjobbat), jelentősebb hátrány nélkül, úgy hogy még súlymátrixot csinálni is feleslegesnek tűnik.


1.    LEGKEVÉSBÉ AJÁNLOTT ARCHITEKTÚRA: háromréteges architektúrába ágyazott: Webserver / J2EE-alkalmazásszerver / Portál-motor

Előny:
* Szakmai mainstream ajánlja
* Magyarországon is van rá tapasztalat
* Van magyar nyelvű szakirodalom: ami ott fontos szempont, hogy magyar felhasználói igények kritikus tömegét jelezheti.
* Free/Open Source
* Enterprise-szintű megoldás

Hátrány:
* Szakmai filozófiám szerint; alapvetően téves koncepció esetünkben. A tágabb internetes világban működő architektúrát egy szűkebb másképpen is viselkedő intranetes világba besuvasztani, annak specialitásainak figyelmenkívül hagyásával nem igazán szerencsés.
* Ráadásul intranetes világban erős túllövés/felüllövés ilyet használni.
* Csípőből kell egy alkalmazásszerver a középső rétegbe (költség), vagy egy meglévőt tovább terhelni.
* Szerver-oldali a terhelés, nem pedig kliens-oldali.
* Fenti miatt: nem a legoptimálisabban skálázható fefelé a megoldás.
* Alkalmazás-frissítés a legnehézkesebb, legköltségesebb: időigénye, potenciális problémái miatt. Ne feledjük külön szakma a deployment, nagyobb cégeknél csak evvel foglalkozó kollégával.
* Javánál szerintem nincs is nehezebb cucc (nyelv+API). Olyan kiterjedtségű és komplexitású.
* Minden szinten óriási overhead tehát
* Windows-specifikus végfelhasználói élmény (vizuális elemek, billentyűzethasználat könnyedsége, stb) itt a leginkább fékezett habzású
* Ha újat kell tanulni, nem érdemes a legnagyobbat markolni, ha gyorsaságon és sikerességen van a fő fókusz. Arról már nem is beszélve, hogy a profi Java-tudáshoz évek és/vagy felsőoktatási tapasztalatok kellenek.
* Nem tud előny lenni, hogy Linux-ra is működőképes
* Úgy a legdrágább (beruházás+fejlesztés+üzemeltetés), hogy gyakorlatilag semmi kézzelfogható előnye nincs, hátránya viszont nemkevés.

2.    MINIMUM EGY FOKKAL JOBB ARCHITEKTÚRA: .NET és C#, Free Visual Studio Express Edition-nel vagy C++ és QT

Azt az egy specialitást külön kiemelve, hogy QT-nál van QML az üzleti logikának, ami szimpatikusan vonzó feature lehet.

Pythonnal kombinálva a QT-t már meg lehet gondolni.A kombinációnak van valós hozzáadott értéke esetünkben. Nekem legalábbis tetszik. :)
* Mainstreambe illeszkedik még akár Magyarországom is.
* Gyors-egyszerű
* 3rdparty libek és következményei.
* Jellemző hátrány nélkül.
* STB.

A tárgybeli két cucc érzékelésemben egyformán jó vagy nem jó, azt leszámítva, hogy az előbbi
* elterjedtebb
* egybe összerakott (nem összevadászandó)
* könnyebben tanulható/használható.
* mindez releváns hátrány nélkül a másikhoz képest.

Így a továbbiakban csak NET és C#-t tárgyalom.

Előny:
* Szakmai mainstream másik „best” ajánlata
* Magyarországon is van rá tapasztalat, hogy aktuálisan ezt választják.
* Free és részlegesen Open Source
* Enterprise-szintű megoldás
* 32&64 bit architektúra egyaránt szépen támogatott régóta.
* Van benne data-aware komponenes, más szóval data binding (vizuális kontroll és adat könnyű összerendelhetősége)
* Kliens-oldali terhelést ad, szimpatikusan kétrétegű kliens-szerver architektúrában.
* Tökéletes a skálázás: új felhasználó egyszerűen csak egy új desktop.
* Egyszerű alkalmazásfrissítés: exe-csere
* Elérhető Windows-specifikus végfelhasználói élmény (vizuális elemek, billentyűzethasználat könnyedsége, stb) teljesnek mondható
* Ami a tárgyhoz kell, azt messzemenőkig tudja szépen és jól.
* Van magyar nyelvű szakirodalom: ami ott fontos szempont, hogy magyar felhasználói igények kritikus tömegét jelezheti.

Hátrány:
* Túl általános célú, túl nagy overheaddel, túl kevés kézzelfogható előnnyel
* Ha van könnyebb, pehelysúlyúbb,célnak jobban megfelelő eszköz, akkor érdemesebb azt használni.
* Gigantikus (tehát nagyrészt felesleges) cucc, mind install-anyagában (teljes verzióban 4GB-os DVD-t tölt meg), mind erőforrás-használatában.
* Isten összes erőforrása kevés neki. 2GB RAM nem éppen baráti neki.
* ActiveX-szel bővíthető leginkább, ami szerintem üldözendő technológia
* A P/Invoke tudhat problémát okozni, ha nem csak hivogatni kell benne, hanem oda-vissza adatcserélgetni is, adott esetben intenzíven.
* A szükséges API sokkal általánosabb célú és ezért sokkal komplexebb és nehézkesebb, sok kódolási overheaddel.
* Az üzleti logika jó ha textes állományokban van (két irányból is módosíthatóan, kereshetően). Ha ez el is érhető, biztos nem triviális ebben az esetben.
* Tanulás szempontjából majdnem(?) olyan nehéz, sok és komplex, mint a Java
* A legvastagabb magyar könyvek is ebben a témában jelennek meg perdöntően, 1000+ oldalas nagyságrendben és hol van még akkor a referencia.
* Ha el is érhető egyetlen exe az nem triviális, nagy méretű és semmiképpen nem natív.
* Ha újat kell tanulni, nem érdemes a legnagyobbat markolni, ha gyorsaság és sikeresség a fő fókusz. Arról nem is beszélve, hogy az itteni profi tudáshoz évek kellenek.


3.    EGY POTENCIÁLIS ÁM OLVASATOMBAN  NEM AJÁNLOTT LEHETŐSÉG: Oracle-APEX

Előny:
* Magyarországon is van rá tapasztalat
* Van korábbi tapasztalat a vállalatban, házon belül van már: nincs is ellenállás irányába (?)
* Free/Ingyenes, ha már van Oracle (de azért nem nulla költségű)
* Korrekt data binding
* Nagyon egyszerű elkezdeni használni: és ha a default-használat elég, az lehet előny.
* Ha újat kell tanulni egy csapatnak, akkor az eddigiekhez képest ez a legkönnyebb, legtöbb sikerélményt adó (kezdetben legalábbis)
* Kétrétegű architektúra (aminek azért van hátránya is), jól illeszkedik vállalatunk architektúrájába.

Hátrány:
* Szakmai közvélemény kifejezetten nem ajánlja, legtöbbször üldözi vagy megtűri: részben jogosan, részben nem.
* Magyarországi multiknál is megfigyelhető az üldözése: igaz konkréten esetünkben ez kevéssé érdekes szempont.
* Nem vendor-független technológia, ha már nem általános, enterprise-szintűt keresünk.
* Én elképzelésemben egy Oracle-alkalmazáshoz egy kis APEX form-kezelés lehet jó, míg általános célú, sok felhasználós "enterprise" form-kezeléshez már nem jó architektúra, szerintem.
* Elején említett "faltól-falig számolt" összköltségek meglehetősen magasak.
* Mintha tendencia lenne az MSSQL térnyerése, Oracle mellé (vállalatnál is, másutt is). Az APEX viszont csak Oracle mellett tekinthető értelmes alternatívának (mégha FreeTDS-sel, még akár *nix alól is elérhető, még akár egy MSSQL is, még akár szabványos ODBC-vel is) Lásd hozzá az elején taglalt szempontokban részletesebb kifejtett problémákat.
* Adatbázis-oldalon keletkezik a terhelés, miközben az Oracle-szervereknek éppen elég feladatuk van anélkül is a konkrét esetünkben/vállalatunkban.
* Sok felhasználó mellett előjöhetnek szerver-performanciális gondok, miközben kvázi parlagon maradnak a jó kis Win7-es desktopok.
* Rettenetes a skálázása: nemvéletlen, hogy ingyen beetet vele az Oracle. Nem elég gépet bővíteni/venni pluszba, hanem az Oracle licence és support költségek is ugranak, a processzor alapú licencelés miatt. Azért az igaz, hogy egy Oracle XE-t azért nem olyan könnyű kinőni egy adott szint alatt.
* Még alkalmazás-szerverben is sokkal jobb a skálázás 1:8-hoz, mint Oracle-adatbázisban.
* APEX-ben alkalmazott repository technológia olvasatomban üldözendő.Az OBIEE sokkal kultúráltabb. Nem véletlenül: az APEX Oracle-fejlesztés, míg az OBIEE akvirált cucc.
* Elkezdeni az APEX-ben fejleszteni látványosan triviálisan könnyű. A customizálás nagyon nehéz már, már könyvhegyek vannak hozzá. Meglehet nehezebb, mint a .NET és C#, és akkor már ugye.... ;)
* Windows-specifikus végfelhasználói élmény teljessége itt is erősen kérdéses számomra (vizuális elemek, billentyűzethasználat könnyedsége, stb), akárcsak egy Uniface-hez képest is.
* Van egy előnye, ami konkrétan hátrány esetünkben: látványosan tud riportálni, viszont riportoló eszköz már van ugye (OBIEE), amihez ugyan tud link vezetni, de kérdés mennyire elegánsan. Két helyen semjmiképpen nem kéne riportolni. Illetve elég lenne csak a 100% pure form-kezelés megoldása
* Alkalmazás-frissítésben is el tudok képzelni egyszerűbbet.
* Digitalis footprintben is van kisebb.
* Nem tud előny lenni, hogy Linux-ra is működőképes
* Nincs magyar nyelvű szakirodalom, azaz itthon kevéssé használják talán, hogy érdemes lenne magyarítani valamilyen könyvet hozzá.
* Jó szakember elég drága hozzá.


4.    SZERINTEM LEGJOBB ARCHITEKTÚRA: Lazarus-FreePascal kombó

Előny:
* Free/OpenSource, folyamatosan fejlesztett: ez szerintem nagyon fontos, hogy megvan itt is.
* 32&64 bit architektúra egyaránt szépen támogatott régóta.
* Kliens-oldali terhelést ad, szimpatikusan kétrétegű kliens-szerver architektúrában.
* Tökéletes a skálázás: új felhasználó egyszerűen csak egy új desktop.
* Enterprise-szintű megoldás
* Ami legszélesebb értelemben szükséges a feladathoz azt messzemenőkig és a legelegánsabban adja.
* Elérhető Windows-specifikus végfelhasználói élmény (vizuális elemek, billentyűzethasználat könnyedsége, stb) teljesnek mondható, és ami fő ActiveX nélkül.
* Vele elérhető felhasználói élmény, a kereskedelmi Delphi szintjét is meg tudja akár ütni.
* Data Binding alapból adott benne és korrekten.
* Legkisebb digitális lábnyom, pici natív exe stb.
* Egyszerű alkalmazásfrissítés: exe-csere
* Az üzleti logika is tömören, text-ekben, minimális overheaddel reprezentálódik: nagyon könnyű módosítás, beletanulás.
* Customizálás úgy általános, hogy egyszerűségét és eleganciáját koherensen megtartja.
* Azaz APEX-hez kvázi hasonlóan egyszerű az indulás, de a továbblépés már sokkal könnyebb
* Van magyar nyelvű szakirodalom: ami ott fontos szempont, hogy magyar felhasználói igények kritikus tömegét jelezheti.
* A Pascal a legegyszerűbb, legmagasabb szintű, tömegeknek még mindig (legrégebb óta) legtanítottabb nyelv az átlalános célú programozási nyelvek között.
* Könnyebb benne kevésbé hibás programot írni, a nagy átlagnak.
* Case-elágazások szépen magas szinten programozhatók
  case x of
    'a'..'z','A'..'Z':
      writeln('betu');
    '0'..'9':
      writeln('szam');
    '[',']','(',')':
      writeln('zarojel');
    else
      writeln('egyeb jel');
  end;
* Hasonlóan magas szintű IF is, például IN-használattal.
* Nincs feleslegesnek tűnő typecast-követelmény.

Hátrány:
* Én egyet tudok felhozni: szakmai mainstream még nem igazn ajánlja, legalábbis az első kettőhöz képest. Mondjuk azt gyanítom, hogy nem szakmai megfontolásból, hanem információhiányból eredően és/vagy marketing-érdekek mentén inkább elsősorban.

Záróbekezdés:

Szakmai Java-levlistán is megfürdettem a témát, nagy szerencsémre és örömömre 86 levelet generálva a közösségben. :o):

Ott az alábbi alternatívák hangzottak legalább egyszer, perdöntően kronológiai sorrendben..
Amiről a fentebbiekben nem beszéltem azokról egy-egy jellemző mondatot is írtam.

(1) APEX (MSSQL-hez Unix ulatt FreeTDS)
(2) Lazarus+FreePascal
(3) .NET (Visual Studio Express-es) és C#
(4) Web/J2EE-alkalmazás
(5) PHP (ma hallottam mástól)
(6) központi helyen egy jar-ban egy swinges app + webstart vagy bat
(7a) "Ha tényleg nem kell üzleti logika, akkor node.js szerveroldalon az adatbáziskapcsolathoz és ezt REST eleressel ext.js megjelenítés megteszi. Kevés Javascript tudással egy jó programozó indulásnak elég... "Nem mellesleg Ext 4-től MVC alapon tudsz fejleszteni vele (sokkal átláthatóbb lesz az
egész")
(7b) "Egyébként nem lesz megkerülhető a jövőben és egyre több próbálkozás van az OO JS verziók kifejlesztésére, többek közt az általam ma már említett Anders Hejlsberg (programozási nyelv fejlesztő zseni) is nekiállt egynek TypeScript (open source): http://www.typescriptlang.org/"
(7c) "ExtJs ->teljesen független a háttértől, tehát kiszolgálhatja jersey, vagy spring, vagy akar .net is, bármi ami json-t tud előállítani" Ez a megoldás óriási vitát váltott ki a levlistán.
(8) GWT vagy IceFace (vagy PrimeFaces az előbbi lassulása miatt)
(9) "Python és QT - tud exe-be fordulni, tanulhatóságot/használhatóságot, elterjedtséget, sebességet illetően a pályán lehet."
(10) "Groovy és Grails: gyors prototipizálással. Paper prototype: JPA-Spring-Vaadin"
(11) "Én is javasolnék egyet ami még nem volt: Vaadin. (http://www.vaadin.com). Érintőképernyős pluszok, Android-kapcsolat"
(12) "Ha csak a CRUD a feladat, szerintem a Spring ROO jó alternativa lehet. https://vaadin.com/springroo"
(13) "Mi nemrég KendoUI-jal raktunk össze egy alkalmazást, de most lehet, hogy twitter bootstrap-et valasztanánk es jQuery. One page app, szerver oldalom meg amit akarsz. Közötte json rest."
+1 Kódgenerálás topik. Csak azért említem így külön, mert ez is vihart kavart a levlistán. ;)

Utóirat:
A topik nem konstruáló agymenés eredményterméke, hanem való élet konkrétan valós problémájából merített.

Egyébként az Oracle-APEX (+ Oracle XE) nyert,  alapvetően rövid átfutású improvizatív alapokon, indoklás nélkül, hatalmi szóval eldöntve.

De ez semmit nem von le abból, hogy élvezettel foglalkoztam a témával. :)

2013. február 13., szerda

Egy Oracle-SQL demó-feladat


Imádom a tárgybeli műfajt, egy időben, még évekkel ezelött gyűjtöttem is őket, sőt még SQL szakmai-levlistára is igyekeztem megirogatni őket. És bizony jó régen volt már, hogy sikerült beleszaladnom ilyen demó-feladatba. Amiről csak beszélgetni sem triviális, hát még megcsinálni.

Eredetileg nem terveztem blogposztot írni róla, főleg, hogy a blogot alapvetően és elsősorban adatbányász-témáknak tartom fenn. De a 2001(?) óta létező SQL levlista-accountom rakoncátlankodik és nem enged be levelet róla, így mérgemben csak blogposztba írom meg az egészet. :)

Az alábbi feladat a "való világ"-ból vevődött, azaz nem szimpla konstruáló agymenés végterméke :o) -> egy durva reverse engine projekt indukálta.

A feladat lépésenként végrehajtva nyilván triviális, a kérdés az, hogy egyetlen SQL-ben megy-e? ;)

Táblák és mezők:

PARTNER(partner_id,partner_nev)

TRANZAKCIO_TIPUS(tranzakcio_tipus_id, tranzakcio_tipus_megnev) –41 rekord van benne

TRANZAKCIO(tranzakcio_id,partner_id,tranzakcio_tipus_id,tranzakcio_datum) –vannak további mezők is persze,csak első körben nem érdekesek.

Kapcsolatok:

PARTNER -< TRANZAKCIO – 1:N

TRANZAKCIO_TIPUS -< TRANZAKCIO – 1:N


1.Feladat:

Kell a TRANZAKCIO táblából olyan 41 rekord(~tranzakcio_id), hogy minden tranzakciótípust le kéne fedni egy tranzakció-rekorddal olymódon, hogy ->

(1) Legkevesebb partnerrel. A konkrét esetben a maximum, hogy egy partner 18 különböző tranzakciótípust tud lefedni. (Igazándiból ez a fontos kritérium.)

(2) Ha a maximumnál (18) két vagy több partner is lenne, akkor azt a partnert kell választani, akinek a legutolsó lefedésre kandidáló tranzakciója a legfrissebb/legkésőbbi dátumú.

(Ha úgy egyszerűbb lehet tetszőlegesen "ahogy esik úgy puffan" jeligével is választani közöttük)


2.Feladat(-nehezítés):

Kell a TRANZAKCIO táblából 41 rekord, azaz minden tranzakciótípust le kéne fedni egy tranzakció-rekorddal (tranzakcio_id) olymódon, hogy -> Azt a legfrissebb tranzakció-rekordot kell kiválasztani adott tranzakciotípushoz, ahol

(1) A legtöbb mező van kitöltve

(2) Különböző értékekkel (azaz rekordon belül például nem lehet két egyforma dátum).


Utóirat1: azt gondolom ezutóbbi már lépésenként sem triviális.

Utóirat2: 

Jövő évben lesz, hogy 20 éve SQL-ezem, de olyanra nem emlékszem, hogy 8 napig írtam volna egyetlen SQL-t.:o))

A minap ez is megesett: többszáz tábla több ezer mezőjéből kellett reverse engine-lnem 526 db (legértékesebb) mező üzleti töltési logikáját, úgy, hogy perdöntően se primary key, se foreign key nem volt (csak elvétve és véletlenszerűen), az egyedüli indulásnál megkapott segítségem egy bonyolult form-hierarchiával bíró képernyős alkalmazás volt, ahol egyetlen módosítás is nagyon hosszú idő volt (csak általa soha napján sem végeztem volna a feladattal, ha nem találok gyorsabb megoldás-megközelítést).

A végeredmény egy 132 KB-os 3.050 soros SQL lett, ami még gyenge tesztrendszeren is, sőt order by -jal visszaadta 39 sec alatt az összes adatot többszázezer rekordnál. Jó érzés volt látni munkám gyümölcsét, illetve látni az Oracle rdbms robosztusságát. :)

2013. február 5., kedd

Big Data csak hype lenne?


Ezt a posztot az Andego blog alábbi nagyszerű poszt-sorozata indukálta.

Mém neve - Big Data I.rész
Mém neve - Big Data II.rész
Mém neve - Big Data III.rész

Sajnálom, hogy lemaradtam a szerző gyors körkérdéseiről, így amit most leírok, arról nem tudható, hogy mennyire jött volna csípőből, egyáltalán mennyire visszás egy blogposztban előhozni, így felmelegítve, másodkézből. Viszont érdekes a topik, nekem szívügyem is, úgyhogy félre a kétségekkel. :o)

I.
1. kérdés: Szerinted mit jelent a “Big Data” kifejezés? (ha fogalmad sincs, akkor azt írd ide!)

Nekem erre három definicióm van, egyiket a szerző is említette, de úttörő-becsszó, hogy nekem is eszembejutott. :o) Fontossági sorrendben:

(A) Az a méretű és/vagy komplexitású dataset, ahol a ráépülő alkalmazás-tervezés elmozdul a párhuzamos adatfeldolgozás irányába. Azt gondolom, ez egyszerre komoly és éles vízválasztó: "párhuzamos"-an gondolkodni egészen másképp kell. Ez a "párhuzamosság" mára mondhatni paradigma(-váltás), ahogy a big data is az - a kvázi nulla másodperces, null költséget igénylő eredmény-elérési követelményekkel.

(B) Komoly - értsd például IBM SPSS Modelerben triviálisan nem abszolválható - előfeldolgozást igényel a dataset, a további érdemi feldolgozáshoz. Értelmezésemben ilyen például a multmédiás adatbányászat kis és nagy léptékben egyaránt.

(C) Az IBM SPSS Modeler nem bír megbírkózni mondjuk 24 órán belül a datasettel. Ez képlékeny dolog, mert az eszköz is, a hardver is, az algoritmusok is fejlődhetnek. Ami ma nem fut le, holnap lefuthat. (Ezt a megközelítést említette a szerző a poszt-sorozatában)


2. kérdés: Hány MB/GB/TB felett beszélünk Big Data-ról?

Erre a kérdésre nem szívesen válaszolok, ugyanis nem minden a méret. ;)

Nem mindegy ugyanis, hogy sok milliárd rekordunk van pár mezővel, mezők mindegyike kitöltve.
Avagy van 15.000 mezőnk, asszimmetrikusan tele null-okkal, adott esetben lényegesen kevesebb rekord mellett (és persze ugyanakkora tárigénnyel) - lásd Orange-versenyt. Ezt a feladatot ugyanis például Oracle alatt nem igazán lehet praktikusan kezelni. ;)

Van egy másik érdekes aspektus is. Magyarországi adatbányászként más dataset-méretekkel szembesülök, mint egy Google vagy eBay.A Cloud és Big Data iránti érdeklődés-lankadást én szeretem ilyesmi okokra visszavezetni.

Én azt szeretem hangsúlyozni,hogy ha a méret és a komplexitás szorzata egy küszöbérték felett van, akkor beszélhetünk Big Data-ról. És akkor itt utalnék vissza az 1.kérdéshez illetve szempontjaihoz.


3. kérdés: Mennyire vagy biztos a 2.-es kérdésre adott válaszod helyességében? (0% ->100%-ig bármit írhatsz)

100%-ig biztos vagyok. ;) Ebben a kései pillanatban. Azonban akár már holnap is el lehet bizonytalanítani ;)


4. kérdés: Ha látsz egy Big Data cikket, akkor erre hogyan reagálsz? (“biztosan elolvasom” -> … -> “undorodva elfordulok”, de bármit írhatsz, akár azt is, hogy még nem találkoztál ilyen cikkel!)

Nagyon jó kérdés!  Ami kevés cikkel találkoztam az borzasztó volt; mindennel foglalkoztak csak érdemi problémákkal nem. A jó cikket azonnal felhabzsolnám, persze a habzsolásig kell némi munka/energia-befektetés is a dologhoz.


II.
A poszt-sorozat 3.része rendkívül inspiráló volt.

A. Kompetencia

Például egy adatbányász-projekt aspektusai
- közgazdász
- informatikus
- statisztikus/matematikus
- CRM szakértő (én ide "businessman"-t írnék, a CRM túl specifikusnak tűnik)
- projektvezető

Én azonnal megemlíteném az aspektusok közötti kommunikáció problémáját.

- Miképpen döntsön egy projektvezető, hogy érdemes-e újabb iterációt tenni, vagy egy újabb algoritmust kipróbálni? Belefér-e? Miképpen tudja a kérdés megválaszolását a matematikus korrekt alapokon megtámogatni? Netán még akkor is probléma ez, ha az aspektusok egy emberen belül ütköznek? ;)

- Hogy viselkedjen az üzleti ember? Pláne, ha mondjuk a másik odalon van (megrendelőként)? Mi alapján mit mondjon?

Én egyébként idevágóan nem kompetenciahiányt írnék, hanem  "kompetencia-krízist". Egyszerre kell egyre több mindenhez érteni egyre mélyebben, egyre rövidebb idő alatt, egyre olcsóbban.


B. Frusztráció

"A Big Data egyik nagy ígérete, hogy a rengeteg adaton szükségszerűen jobb modellek készíthetők. Ez látszólag így is van.  Ha megkérdezünk egy adatbányászt, hogy még plusz adatokat kér vagy egy jobb modellező algoritmust, akkor 10-ből 9 biztosan több adatot fog kérni."
Na ezt bizony én másképp látom, még ha egyedül is maradok vele világban.

1.ellenvetésem: szerintem szó nincs arról, hogy a több adat jobb eredményt hoz. Van amikor igen és van amikor nem. Bizonyítani is lehet, hogy egyes dimenzióredukciós eszközök (még akár a PCA is) adott eseetben úgy csökkentik a méretet, hogy jobb eredményt indukálnak: lásd waveletek, idősorok, szövegbányászat stb.

2.ellenvetésem. nem elég adott pillanatban a legjobbat produkálni. Ugyanilyen, ha nem sokkal fontosabb, az időben való állandó minőség, vagy ha nem állandó, akkor legalább - folyamatvezérelten - menedzselhető minőség szállítása. És akkor arról a trivilitásról már nem is beszélve, hogy a KPI-ok (specificity, recall, accuracy, precision) perdöntően egymás rovására javíthatók csak sokszor.

3.ellenvetésem: szó se róla volt olyan mellrák-diagnosztikai-verseny, ahol egy-két rekord volt csak a (true) tanítóminta, ott tényleg vágyott az ember egy kicsivel több adatra, de nem gondolnám, hogy a napi gyakorlatunkban ez lenne a fő probléma. Engem bizony a jobb modellező algoritmus sokszor jobban felvillanyoz. ;)

Ettől még a szerzőnek maximálisan igaza van. A frusztráció napi gyakorlat ebben a vonatkozásban is. Főleg Magyarországon... ;)


III.
Végül, hogy a poszt címének kérdésére is válaszoljak. Ahogy zajlanak a témában a történések, az bizony sokszor kelti az emberben a rosszízű hype érzését. Azonban lássuk be valós exponenciálisan robbanó problémáról van szó. egyre többől kell egyre kevesebb erőforrással egyre jobb minőséget kicsiholni. És ezt még a válság sem tudja átírni.