Bekövetkezett, ami már régen várható volt: nincs többé titok, immár mindenki megtudhatja, hogyan képes a világ legnagyobb keresője a szakadatlanul szaporodó weblapmilliárdok ellenére a másodperc töredéke alatt megválaszolni tetszőleges kérdést.

Az információ a Google belső köreiből szivárgott ki, és amilyen gyorsan megjelent a világhálón, olyan gyorsan el is tűnt. Csupán néhány tízezer internetező láthatta 2010. március 31-én (Közép-Európai idő szerint éjjel fél egy és 0:52 perc között.) Én szerencsére éppen neteztem, úgyhogy meg tudom osztani a titkot a magyar internetezőkkel. Linkeket tehát nem mutatok, minek. Úgyis a semmibe mutatnának. A tömör technikai dokumentumok és diagramok helyett pedig saját szavaimmal mondom el a lényeget. Jó?

Először az információforrásról: a G. J. monogrammal publikáló szerző a Google egyik programozója, aki azzal indokolta az információ nyilvánosságra hozatalát, hogy ennek a technológiának közkinccsé kell válnia, mert a világ számos problémájára nyújthat megoldást a hiperteljesítményű információkeresés. Mivel több mint fél órára nyilvánosságra került, valószínűleg G. J. elérte célját, de a Google sem kerül veszélybe, mert az ingyenes keresőszolgáltatással, és az ezt lehetővé tévő többszázezer számítógéppel eddig is csak olyan pénzügyileg jól elengedett gigászok tudták egyáltalán bármilyen szinten versenyre kényszeríteni, mint a Microsoft.

És akkor jöjjenek a technikai részletek.

Hogyan készítsünk a végtelenségig skálázható információkereső rendszert?

A titoknak nem egy nyitja van, hanem legalább három-négy. Az eddig is köztudott volt, hogy a Google nem használ semmilyen forgalomban lévő szoftvert a keresőmotor közelében, még az operációs rendszer szintjén sem. Az oprendszerük olyannyira Googlizált, hogy még a TCP/IP stack is saját fejlesztés. Hamarosan meg fogjuk érteni, miért.

Szintén közismert, hogy bár a Google-nek több százezer szervere van, ezek egyike sem komoly, drága szerverhardver, sokkal inkább hasonlít az otthonokban használt asztali számítógépekhez. Kezdetben talán pénzügyi okok (is) álltak a nagy gyártók redundáns, nagy rendelkezésre állású szervervasainak elkerülésében, mára azonban ez már a stratégia részévé vált.

Lássuk, Móricka hogyan gyorsítana fel egy lekérdezést. Valószínűleg egy adatbázisba hordaná az összes adatot, és építene rá egy indexfa-szerkezetet, amivel néhány lépésben lekérdezhető lenne tetszőleges adat. Az igazi probléma ezzel a megközelítéssel, hogy az adatmennyiség növekedésével (márpedig az exponenciálisan növekszik) a központi adattárolós, központi indexes módszer egészen bizonyosan meghal. Bizonyítékért nem kell messzire menni: már egy nagyobbacska elektronikus kereskedelmi weboldal is komoly teljesítményproblémákkal számolhat, ha az adatbázisát egy központi helyen tárolja.

Rendben, akkor osszuk szét az adatbázist és az indexeket több számítógépre! Itt egy újabb problémával szembesülünk: melyik gépen van az az adat, amit én keresek? Nyilvánvaló, hogy míg tíz adatbázis esetén van értelme sorra lekérdezni a számítógépeket, melyikük a nyerő, ezt már pár ezer számítógép esetén megkísérelni is felesleges, négyszázezerről nem is beszélve. Inkább rá kellene venni a gépeket, hogy maguktól jelentkezzenek, ha náluk van a keresett adat.

Hasonlat: ha egy osztályteremben megkérdezzük, ki tett rajzszöget a tanítóbácsi székére, egyszerre stimuláljuk az összes nebulót, de jó eséllyel csak az egyikük veszi magára a kérdést, és jelentkezik. A teljesítménynövekedés egyértelmű: nincs szükség arra, hogy a teljes osztályt egyesével kivallassuk. Skálázható ez a modell? Igen.

El tudunk képzelni egy olyan képet, hogy egy téren áll százezer ember, és hangosbemondón megkérjük, emelje fel a kezét, akit Kovács Dénesnek hívnak? Gyorsan megy? Mint a villám. Működne ez egymillió emberrel is? Igen, ha találunk olyan módszert, amivel kérdéseket lehet eljuttatni hozzájuk. Mondjuk egy rádióadás megfelelne…

Ha most valaki nekiállna a forgalomban kapható operációs rendszerekkel (Windows, Linux stb.) egy ilyen rendszer kifejlesztésének, falakba ütközne. Mégpedig azért, mert bár van olyan hálózati forgalomtípus, amivel sok-sok gépet meg lehet egyszerre szólítani (Multicast), és erre a gyártók építettek is terheléselosztó megoldásokat (Network Load Balancing), azok mindegyike süket és vak az adatokra. El tudja osztani a TCP/IP kéréseket és kész. De itt nem azt, hanem keresőkifejezéseket kell szétosztani, ráadásul több ezer gép között!

Ezzel vissza is érkeztünk ahhoz a ponthoz, hogy miért nem volt jó a fiúknak (Szergej Brin és Larry Page) semelyik operációs rendszer, miért kellett majdnem a nulláról írni maguknak egyet. Egyébként ez a lépés egyenesen zseniális abból a szempontból, hogy a kezdetekkor nem volt milliárdnyi weboldal, nem lehetett előre látni, hogy egyszer majd a végtelenségig kell növelni a kapacitást. És mégis, ezt az utat járták végig, mert folyamatosan szemük előtt tartották azt a célt, amit a kor konkurensei nem: mikroszekundumok alatt kell válaszolni a kérdésekre! Ehhez pedig a kilencvenes évek végének Pentiumaival már akkor is sok-sok, akár egy tucat gépre is szükség volt.

Tehát íródik egy search term load balancing mechanizmus, amely nem a TCP/IP kapcsolatokat szórja szét a szerverek között, hanem a keresőkifejezéseket, és nagyjából a következőképpen épül fel (ez itt az eredeti háromrétegű modell, ennél ez ma már bonyolultabb, akit érdekel, annak megírom):

A rétegek nevei:

  • Front End szerverek, ezek láthatók az internet felől. Ezekből viszonylag kevés van, néhány ezer.
  • Index- vagy keresőszerverek, ezeken elosztva található a világ összes weboldalának indexe (~szószedete), de maga a weboldal/dokumentum NEM! Ezekből már több tízezer van.
  • Tárolószerverek. A weboldalak és dokumentumok békésen szundikálhatnak a harmadik rétegben, a tárolószervereken. Ritkán van rájuk szükség: indexépítésnél és ha a felhasználó a találati listában arra kattint, hogy „kérem a Google által tárolt verziót” – vagyis tízezer lekérdezésenként egyszer. Tárolószerverből van a legtöbb: százezres nagyságrend.

Lássuk magát a keresési folyamatot!

  • legyen a keresendő kifejezés az alábbi két szó: „search term”. Ezt beírjuk a Google keresőjébe, Enter.
  • A felhasználók egy Front End számítógéppel találkoznak, a kérésünk befut ezek egyikéhez. A Front End gépek a kérést változatlan formában továbbkiabálják a második rétegben a hátuk mögött álló indexszervereknek, ahol a szószedet (és egy darabka környező szöveg) található. És ez itt a kulcs. Mármint az, hogy
    • a Front End gépek NEM állnak neki a keresés szétcincálásának, ehelyett úgy, ahogy van, továbbdobják a keresőszervereknek,
    • a keresőkifejezéseket mindegyik keresőszerver „hallja”, de csak az reagál, akinél a kért adat van.
  • A keresőszerverek adatbázisa fel van osztva az ABC alapján egy bizonyos algoritmus szerint (lásd később), azaz mindegyikük érzékeny bizonyos szavakra. A sokezer gép közül kettő fog „gerjedni”, az egyik az, amelyik az „s” betű környékéért felel („search” szó), a másik pedig az, amelyik a „t” betű környékéért felelős („term” szó).
  • A két „begerjedt” gép válaszol a Front Endnek, mely ekkor már tényleg dolgozni fog: összeállítja a sorbarendezett találatlistát (jobban mondva csak az első találati oldalt!) a két forrás alapján, és válaszol, mint a villám.

G. J. itt megjegyzi, hogy az eredeti kód hiányossága miatt a Google a mai napig nem tud úgynevezett „NEAR” kereséseket elvégezni, vagyis olyan lapokat visszaadni, ahol a „search” és a „term” szavak egymáshoz közel állnak. Az Altavista tudta. Az Infoseek tudta. Azok viszont mára garantáltan megdöglöttek volna a Google térnyerése nélkül is: nem lehetett őket elég jól skálázni. A hiányosság okait G. J., a renitens alkalmazott abban látja, hogy a search term load balancing kód mind a mai napig változatlanul ugyanaz, amit Szergej és Larry a 90-es évek végén készített. Senki nem mer hozzányúlni!

Egy dolog maradt hátra, a világ összes weboldalának indexelési algoritmusa. Hogyan osszunk szét X milliárd weboldal szavait pár tízezer gép között?

Az elosztási, indexelési algoritmus

Az elosztással az a probléma, hogy állandóan újra és újra kell osztani a weboldalakat, ahogy az interneten sokasodnak a lapok. Ennek ellenére egy eléggé egyszerű elosztás áll a rendszer hátterében, az alábbihoz hasonló: aaa-tól abb-ig az első gépé, abc-től ade-ig a második gépé stb.

Hogy pontosan hány karakteres szóhossznál van a tördelés, azt könnyű megbecsülni: ha tízezres nagyságrendű keresőszerver van, tízezerfelé kell osztani a világ összes angol nyelvű szavát, vagyis a három karakter nagyjából jó becslés (26^3=17576). Ebbe még beleszólnak bizonyos betűkombinációk előfordulási valószínűségei (aaa kezdetű szó egy sincs), valamint az a tény, hogy szóból lényegesen több van, mint weboldalból, meg hogy bizonyos szavakra sokkal több kérés érkezik, mint másokra, de ez már bonyolult matek, hagyjuk. Megvan nekem a képlet, de nem értem :)

(Na jó, bonyolítsuk még egy picit: minden indexszerver több testvérrel hagyományos terheléselosztási fürtben van, hogy egy milliók által keresett szót (sex, illetve választási évben Barack Obama) egyszerre több indexszerver is kezeljen, és elosztottan válaszolgatnak a Front Endeknek. Az indexek duplázását-triplázását, vagy számuk csökkentését automatikusan, a keresési igények függvényében végzik.)

Egy Google keresőgép tartalma

A második rétegben lévő keresőszerverek nem tárolják magukat a weboldalakat, csupán azok indexét (kivonatát), így egy gépre akár sok százmillió lap indexe fér fel, ami nem rossz arány!

Hogyan fér el egy gépre százmilliónyi leindexelt kulcsszó? Simán. A kulcsszavak átlagos hossza 5-6 bájt, de legyen tíz, azzal könnyebb számolni. Minden szó többmillió weblapon szerepel, az átlagos weblap URL-je mondjuk 70 bájt. Eddig 80 bájtnál tartunk. Most ezt szorozzuk meg százmillióval: nyolcmilliárdhoz jutunk, ami 8 GB, vagyis a mai asztali számítógépek esetében is a memóriában tartható, nem is kell a merevlemezre írni! És akkor az URL-ek tömöríthetőségét még nem is vettük figyelembe!

Ez persze durva egyszerűsítése a képnek, mert az indexnek nyilvánvalóan szerkezete van, az is helyet visz el, meg van egy csúnya trükk is: mivel a keresőket maximum az első tíz találati oldal érdekli, szavanként néhány tucat találatot elég a memóriában tartani, a többi ugyan megvan lemezen, de soha senki nem fogja valóban keresni (ha csak nem szűkít egy országra vagy weboldalra).

És ami a legszebb: a Google határozza meg, mit tart fontosnak, mit tart memóriában! Ez a Google Rank! Más sorrendben, más fontosság alapján kéred az adatokat? Nem lehet. Mindig Google Rank sorrendben kapod, maximum be van korlátozva egy országra, egy weboldalra stb.

Már közel a történet vége: a gyors kereséshez az kell, hogy a kulcsszóindex memóriában legyen. Mi van akkor a Google-számítógépek merevlemezén? A Google-oprendszeren és a 8 GB-nyi indexadaton kívül szinte semmi. Üres hely. Mivel azonban merevlemez kell a gépekbe, hogy legyen honnan bootolni és betölteni az indexadatbázist, és a legkisebb merevlemez ma már lassan 1 TB-os, a Google indexgépein hemzseg a „felesleges” tárolókapacitás. Nem véletlen, hogy iszonyat mennyiségű tárhelyet tudnak adni a Gmail postafiókokhoz!

Tök jó, nem?

Az eredeti doksi megvan nekem, nem merem ide kitenni, mert egy véletlen baleset esetleg leviszi a lábamat vagy a fejemet, de ha valaki kéri, elküldöm "titokban".


Talán már mindenki hallott arról a hülyeségről, hogy IP-címmel rendelkező villanykörte, én azonban láttam is ilyet, működés közben. Lehet belőle vagy 6 db a világon...

A múlt héten Redmondban jártam (már megint, úgy látszik az ottaniak zsebét nem apasztja holmi wálság, nekem meg mindegy, ha hívnak, megyek - bár már rosszul vagyok a jetlegtől) és a Security tanfolyamom során elvittek minket egy jövő háza szerű kéglibe, ahol - mondanom sem kell - telefonnal nyílik az ajtó, és beszél a motorbicikli. De ez még mind semmi! A konyhában járva egy érdekes displayra lettünk figyelmesek, ami a konyhapult volt maga. Ott tapogatta rajta a menüpontokat az idegenvezető, majd bevallotta, hogy a pult fából van. De akkor hogy a ménkőbe?

Hát úgy, hogy a pult fölé szerelt lámpa nem egyenletesen világít, hanem mint egy vetítő, azt világítja, amit mondanak neki. És van benne wifi, így hát távolról lehet vezérelni, mit világítson a munkalapra. Ezen a ponton vesztettem el a fonalat, mert kiakadt a tolmácsgépem a közelben sugárzó botmixertől, és nem hallottam, miként érzékelik, hogy valaki tapogatja a munkalapot, böködi a menüpontokat. És mi van, ha a konyhapulton a szokásos kupi van, és az egész vetítős próbálkozás 3D-re esik szét. Sajnos ezt nem tudom.

De azt tudom, hogy a jövőben a gyerekszoba falát nem kifestjük, hanem - az energiatakarékosság jegyében - körös-körül telibe vetítjük egy tetszőleges képpel, majd a szoba közepén gesztikulálva kiválasztjuk a zenetárból a megfelelő zenét. Vagyis a jövő gyerekszobájának kötelező eleme lesz az XBox-ra kifejleztett immár legendás, integetős távvezérlés, melynek momentán egyetlen pici baja van: négereknek nem működik. Nem rasszista, hanem a fekete végtagokat nem tudja kellő pontossággal elkülöníteni a háttértől. Ők így jártak.

De csodavillanykörtéjük lehet!

 


Avagy mi köze egy MPEG-kódolónak, a Renault gyárnak és egy FM-rádióadónak a nyelvtanuláshoz?

Öt éve nem tanulom az angolt, pedig minden nap gyakorlás sokat számítana. Nem tanulok, mert a korábbi, bevált módszerem elé súlyos akadályok gördültek, amikor Ford Escortomat öt éve egy Reanult Scenicre cseréltem. Ez azért történt, mert...

Iskolában sosem tanultam angolt. Tizenkét év orosz van a hátam megett (ubirájet urázsáj, nyeftyepramislennoszty), valamint francia szak a gimiben, és egy kis francia idegenvezetés, amiről - tényleg - még nem is írtam. Valaha perfekt voltam franciából, hö! (De már nem vagyok sajnos.)

Miután a történelem ilyen csúnyán kibabrált velem, hogy elvette tőlem az iskolai angoltanulás lehetőségét, felnőtt fejjel kezdtem neki, de már úgy, hogy megfertőződtem Makara György nyelvtanítási elveivel, vagyis a Relaxával. Ennek a lényegét hámoztam ki, vagyis azt, hogy a gyerekek is hallgatva, utánozva, nyelvtani magyarázat nélkül tanulják meg az anyanyelvüket. Így hát eldöntöttem, én is ezt az utat követem.

A módszerem a következő: fogsz egy hollywoodi filmet, megnézed magyarul (hogy értsd a sztorit), majd a hangját, és csak a hangját ezerszer meghallgatod autóban ülve, reggelenként a csúcsforgalomban. Hihetetlenül működik! I do understand, ami nem mondható el sok angoltanárról sem, beleértve a gyerekek ált. isk. angoltanárjáról sem - de ez egy másik szégyentörténet. Talán meglepő, de igaz, hogy a filmekben gyakorlatilag végig pofáznak. Nem úgy hinnéd, azt mondanád, sok a zene, soka háttérzaj, de nem, gyakorlatilag folyamatos a párbeszéd, és ez csak akkor derül ki, ha csak a hangra koncentrálsz.

Ezt az egészet még a kazettás magnó korszakában kezdtem el, úgy tizenix éve. VHS videó -> HiFi torony -> magnókazetta -> autó. Igen ám, de öt évvel ezelőtt átültem egy űrhajóba, amiben már csak CD-lejátszó volt, az is gyári. És itt elszakadt az angoltanulás folyamata, azóta is abból élek, amit a megelőző 6-7 évben összehallgattam. Mert miért?

Miért nem hallgattam cédén a filmek hangját? Mert ez lett időközben: AVI -> na ebből hogy a fenébe szedem ki a hangot? Pénzért? Én ugyan nem fizetek ezért! Évek teltek el dacosan, hogy én ugyan nem konvertálok pénzért. Mígnem egyszer csak felbukkant a színen az FFMPEG nevű parancssori alkalmazás, mely jelenleg a 0.5-ös verziónál tart, ami mindenből mindent tud csinálni. De tényleg! És olyan egyszerű használni, hogy

FFMPEG -i "csillagok háborúja.mov" csillagok.mp3

Kész! SOSE FIZESSETEK KONVERTÁLÁSÉRT! Egy csomó fizetős konverter is az ingyenes FFMPEG-et használja,ne dőjl be a grafikus felületnek!

Na de írjon belőle CD-lemezt a hóhér. Hova dugjam a kocsiban a pendrájvomat? A szivargyújtóba? Egyszer csak (pár év múlva, úgy 2006-ban?) jött a rönó, hogy mindössze 64 ezer Ft-ért beszerelnek nekem akciósan egy USB-foglalatot, és ezzel megoldják a problémámat. Hát mondom én egy ilyen nyúlfarknyi mütyürért nem fizetek több mint félszázezer forintot! Akkor várunk. És vártam. És igen, a technológiai fejlődés elhozta nekem a megváltást egy ötszáz forintos (!) FM rádióadó képében. Most így néz ki a képlet:

Bittorrent -> AVI -> FFMPEG -> MP3 -> USB -> FM adó -> Autórádió

Milyen egyszerű! Ha mellém állsz a piros lámpánál, te is meghallgathatod! FM 107.2!


Az oktatás az egyik legrégebbi szellemi tevékenység, amelyről írásbeli emlékeink vannak: az ókori filozófusok „tankörei” adták az emberiség mai tudásának olyan stabil alapját, amelyre mind a mai napig támaszkodhatunk. Nem mondhatjuk, hogy nincs elegendő történelmi példa előttünk az oktatás működésének leghatékonyabb módjáról: a személyes mentorkapcsolatról.

Az informatika elmúlt húsz évében folyamatos kísérletek történtek az oktatás automatizálására, de ezek valahogy sosem terjedtek el igazán egy bizonyos tudásszint felett. Igen, van, létezik és népszerű az e-learning, de valljuk be, hogy nem helyettesíti azt a képzési formát, amikor egy szakértő személyesen adja át tudását egy vagy több hallgatónak. lehet próbálkozni videókkal, foglalkoztató feladatokkal, de ezek nem adják az elmék összekapcsolódásának élményét, és mint ilyenek, az önálló tanulásnál, guglizásnál nemigen jelentenek többet – merthogy valójában öntanulást segítő kézi készülékek.

Ha megvizsgáljuk, mi zajlik egy tanteremben, azt látjuk, hogy egy csoportvezető oktató egy néhány fős csoport előtt állva osztja az észt, valamint – ha a tananyag ezt megköveteli – vezeti a közös gyakorlatot. Felületesen személve az „eseményt” úgy vélhetjük, hogy a csoport valóban csoportot képez, és a hallgatók valamilyen kapcsolatban vannak egymással. A helyzet azonban az, hogy nincs közöttük kapcsolat, és aki már próbált teamfeladatot kiosztani tanfolyami hallgatók számára, tudhatja, hogy még „erőszakkal” is nehéz ezt a fajta hallgató-hallgató kapcsolatot létrehozni. A valóság az, hogy minden egyes hallgató egy-egy kapcsolatban van az oktatóval, vagyis mindössze két elme kapcsolódik össze. Jobban mondva szegény oktatónak nehezebb a helyzete, mert ő minden hallgatóval kialakít egy páros kapcsolatot, ami szellemileg igencsak megterhelő – megint csak azt tudom mondani, aki csinálja, tudja, miről beszélek.

A páros elmekapcsolat alatt azt értem, hogy az oktató úgy irányítja a saját gondolatait és kommunikációját, hogy az a hallgatói visszajelzéseknek megfeleljen, vagyis a hallgatóság figyelmét, valamint magukat az „áldozatokat” ébren tartsa. Ez nem kis kihívás, és sok oktató nem is tud megbirkózni ezzel a feladattal. Olyan, mint a tányérzsonglőrködés: ha ezt a pálcát birizgálod, ez a tányér végre forogni kezd, de az ott a sor túlsó végén mindjárt, leesik…!

Vajon lehetséges-e a páros elmekapcsolatok számát emelni az oktató részéről? A hallgatók közti „csoporttudat” hiánya egy érdekes lehetőséghez vezet. Képes-e egy oktató egyszerre akár több száz hallgatóval páros mentális kapcsolatot kialakítani? És a válasz meglepő módon az, hogy igen. Érdekes módon amint a hallgatóság létszáma elér egy bizonyos szintet, a variabilitás megszűnik, így hát az oktatónak nem kell kétszáz különböző szellemi csatornát fenntartania, kétszáz tányért forgatnia a rúdon. Bőven elegendő, ha megáll tíznél – ami persze nagyon sok, de nem sokkal több, mint egy tanteremben. Az egyetemi előadások és a jó előadók bizonyítják, hogy ez a dolog lehetséges.

Sajnos túl sok „oktató” bizonyítja nap mint nap ennek az ellenkezőjét, de attól még, hogy sok-sok előadáson merülünk mély álomba nem jelenti azt, hogy ne lehetne izgalmas előadásokat tartani akár órákon keresztül is. Felkészültség, témakör, hangulat és sok más tényező együttállása kell hozzá, de lehetséges.

Ami esetleg meglepő, hogy a szellemi „kötelék” kialakításához nem szükséges a személyes jelenlét, a hallgatónak és az oktatónak nem kell ugyanabban a teremben összezárva lennie. Pontosan nem tudjuk meghatározni, hogy mi szükséges a kötelék létrejöttéhez, ezzel még adós nekünk a tudomány. Kísérleti alapon azonban már tudjuk, hogy az online oktatás, melyben a távoli hallgatók interneten kapcsolódnak be a „tantermi” oktatásba, a tananyag elsajátítását tekintve teljes értékű – persze más tekintetben az élmény korlátozott, de ami kimarad, az nem is nagyon kell.

Érdekes kérdés, hogy az oktató viszonylag kisméretű kameraképe miért nem zavarja a hallgatókat, azaz miért nem hiányzik nekik a teljes kép. Az egyik szempont valószínűleg az, hogy a kamerakép a megértéshez legszükségesebb metakommunikációs jeleket átviszi. Nincs az az óriási értelemtévesztési veszély, mint azt telefonon olykor tapasztaljuk. A másik szempont az egyidejűség: az online hallgató ugyanúgy egy folyamat részének érezheti magát, mint a helyben ülő hallgatók. A kamerakép elegendő információt tartalmaz az egyidejűség érzésének kialakulásához és fennmaradásához.

Ugyanakkor az is igaz, hogy az élőben közvetített előadás visszanézése már nem ér fel egy hollywoodi film izgalmával. Ha valaki az eddigieken felbuzdulva az élő, online oktatást videókkal szeretné helyettesíteni, ugyancsak fel kell kötnie a nadrágot -  vagy legalábbis fel kell találnia, mitől válik 40 órányi videó nemcsak végignézhetővé, de egyenesen élvezetessé. Erre is vannak bíztató kísérletek. Az egyik fontos dolog, amit tudunk, hogy míg élő előadásban 40 percet, vagy – rutinos előadó esetén – akár másfél órát is végig tudunk ülni, videó esetén ez az idő 18 percre zsugorodik. Ennyi idő után hollywoodi izgalmakhoz szokott lényünk óhatatlanul a távkapcsolóhoz nyúl, és keresni kezdi az „izgalmas jeleneteket”. A jelenség okára nincs kielégítő magyarázat – ehhez egyszerűen alkalmazkodnia kell mindenkinek, aki 800 órás képzési programot kíván videón közreadni. 18 perc után „és most valami egészen más (Monthy Python)” szükséges.

Erről (mármint a videós oktatásról) még össze kell szedni a gondolataimat. Az online oktatás azonban nem a jövő, hanem a jelen.


Mit hoz a jövő?

Published 2009. 09. 30. by Admin in Csodálatos informatika | IT Pro

Tegnap egy igen érdekes szellemi foglalkoztatón vettem részt: az IDC készít egy "jövőlátó" elemzést az informatikai piacon, és valahogy beleestem a hálójukba, az egyik interjúalany én lettem. Ott sorakoztak előttem az igen furfangosan megfogalmazott, megválaszolhatatlan kérdések, és volt másfél órám a feladatra. Ahogy törtem a fejemet a "mit okoz a jövő munkaerőpiacán a cloud computing" és hasonló kérdéseken, hirtelen igen élesen kirajzolódott előttem egy fejlődési út.

Hogy mit hoz a cloud? Kit érdekel? Nem ez a drámai töréspont a jövőben. Hanem az, hogy az internet végre valódi gazdasági eszközzé válik, valódi munkával és valódi pénzkereseti lehetőséggel - mindenki számára.

Mert ma mi van? Megnézheted a moziműsort, vehetsz cédét, letöltheted valamelyik idióta sorozat első X évadját, utalhatsz pénzeket az interneten - de kábé ennyi. Oppárdón, olvashatsz blogokat is. Megfigyeltétek, hogy a világ egyik fele hiányzik a netről? Pénzt kizárólag KÖLTENI lehet, keresni nem. (A szokásos "keressen sok pénzt távmunkával" nevű piramisjáték nem számít, rendben? :)))

Az internet ma egy félkarú óriás, illetve ha még az online szerencsejátékokat is beleveszem a képbe, egy félkarú rabló.

A jövő útja az internet valódi, egész és egészséges gazdasági szerepének megvalósulása, feltalálása lesz. Ne kérdezzétek, hogy hogyan, mert hiszen nincs még ez a dolog feltalálva (egy sikeresen működő modell már van, lásd lentebb). De érzem a térdkalácsomban, mint öreg mongol sivatagi halász a sirokkót. Az az aprócska tény, hogy ilyen szolgáltatást még nemigen találunk, nem kell, hogy elkeserítsen. Jönni fognak, mint ahogy annak idején, 1923-ban a villanyvasaló letarolta a kütyüpiacot. Nézd meg Jeff Bezos videóját 7 perc 30 másodperctől, hogy értsd, mire gondolok: http://www.ted.com/talks/lang/eng/jeff_bezos_on_the_next_web_innovation.html
Márpedig Jeff Bezos egy valaki, az Amazon alapítója, aki azért tett már egyet s mást legalább a félkarú internetgazdaság kialakításáért.

Ja igen, ez is TED-videó volt...

Nomármost. Ezek a ma még fel nem talált gazdasági szolgáltatások merőben különbőzőek lesznek egymástól, mint ahogy a weblapok is különböznek egymástól, mert hát a cégek különböznek egymástól - nyilván. De nem csak lukendfílben fognak különbözni, hanem szerkezetileg, filozófiailag és megvalósításilag is. És ez elvezet minket a jelenlegi homogén informatikától (minden cégnél tökugyanazt találjuk, oprendszer,levelezés, adatbázis) a merőben diverz informatikáig. A homogén informatikát cserében viszont megeszi a felhő. (Erre mindjárt mutatok egy konkrét példát is.)

A valós gazdasági internetes szolgáltatásra ma ismert példa a Google Adwords. A baloldali képen az első olyan humanoid látható, aki jövedelemszinten a Google Adwordsból befolyó összegekből él. Egy zenetanár. A jövedelemmegosztás egy olyan ötlet, ami munka- és pénzkereseti lehetőséget ad bárki számára az interneten, legyen az fiú vagy lány, idős vagy öreg, és még a bőrszín sem számít. Nagyon érdekes, hogy a jövedelemmegosztás stratégiáját a régi, veterán cégek nem tudják bevezetni, mert vállalati kultúrájuk a minden fillér megragadásán alapul, és nem is tudnak lemondani a jelen bevételeik X százalékáról egy jövőbeni nagyobb árbevétel reményében. Túl kockázatos. De a Google, az meg tudta csinálni, hiszen a hirdetési piacon kezdetben a nulla dollárt kellett felosztania a rendszerben, és arról könnyedén le tudott mondani. Minél régebbi, megalapozottabb üzlettel rendelkezik tehát valaki, annál képtelenebb az új modellre áttérni.

Na ilyen jellegű, más embereket bevonó, tisztán netes gazdasági ötletekre számítok a közeli jövőben. Nem konkrétan a jövedelemmegosztásra, hanem bármire - ami még nincs is feltalálva. És nem csak Google-méretekben, természetesen. Az internetes gazdaságban is lesz kis- közepes- és nagyvállalkozás. Milliószámra fognak létrejönni a világon.

Mit értek azon, hogy a homogén informatikát megeszi a felhő? Maga a cloud, mint egy marék számítógép, nemigen hoz drámai változást. Annál inkább a szolgáltatással felvértezett cloud, mint amilyen például a Google Wave lesz. (Grrrrrrrr! Már megint a Google! Steve Ballmer ismét kihajít egy széket az ablakon...)

Ma az van, hogy minden egyes cég saját levelezőrendszert, mi több, komplett saját belső informatikát üzemeltet. Nemrégiben végeztem egy felmérést a Boltamarson tagsági adatbázisán: a tagok 60%-a gmail-es címmel regisztrált. Gmail-es címe egyszerűen mindenkinek van, annak is, aki tagadja. Hogy ezt hogy csinálta a Google, az jó kérdés, hiszen őelőtte is létezett ingyenes emailszolgáltatás, de egyik sem ért el globális méreteket. Éppen ezért valószínű az a jövőtrend, hogy a Wave is egy lökéshullámmal el fog terjedni a magánszemélyek körében. Igen ám, de minden magánszemély dolgozik valahol, tikpikusan egy munkahelyen. A Google stratégiája szerintem az lesz, hogy alulról megpróbálja beharapni a vállalati levelezés mintegy 90%-át. És hát - van rá esélye. Ki ne cserélné le a pénzért vásárolt, pénzért karbantartott levelezőrendszerét egy "ingyenesre", amelyhez még személyzet sem kell? Tudom, biztonság, meg bizalmas adatok, de ez a piaci ellenfeleken kívül senkit nem érdekel. Ki látott már titkosított emailt? (Én láttam, bevallom.) A vállalati levélforgalom 110%-a titkosítatlanul, teljesen olvashatóan száguldozik a világhálón. Ezt a biztonsági szintet nem lehet alulmúlni :)

De ez csak egy (konkrét) példa. Példa arra, hogy...

A levelezés egy olyan szolgáltatás, mely jelenleg szerteszét szórva, de pontosan ugyanúgy működik minden egyes vállalatnál (oké, van vagy 3-4 féle SMTP-szerver a világon, de ez a lényegen nem változtat). Madártávlatból ránézve az internetre "tisztán látszik", hogy ez a dolog ilyenformán nem hatékony, ott nyüzsög a sok-sok informatikus, melyek mindegyike pontosan ugyanazt csinálja, csak éppen egyiknek sem tölti ki a munkaidejét ez a munka. Az egész úgy, ahogy van, központosítható, sőt, központosításért kiált. Most jön a lényeg: nem a levelezés az egyetlen olyan standard szolgáltatás, amit a mai vállalati informatikai rendszerek nyújtanak, és lazán kiszervezhetők egy felhőbe. Adatbázis. Fájlmegosztás. Webszerver. SAP. Sorolhatnám.

Azt látjuk, hogy igen jelentős informatikai munkaerő szabadul fel azáltal, hogy az elaprózott szolgáltatásokat egy nagy közös helyre visszük. Ezrek, százezrek kereshetnek új elfoglaltságot maguknak, mert a dédelgetett vállalati rendszerük nem belső rendszer többé. Vajon lesz-e mit csinálniuk az informatikán belül? Igen, lesz. Az imént láttuk, hogy a valódi internetes gazdaság tömegesen fog igényelni informatikusokat.

Most jön az a rész, ahol önmagunkat is hasbaszúrom: kiválóan lehet egyen-rendszergazdákat képezni a tanfolyamainkon, hisz úgyis mindegyiknek ugyanarra a skillsetre van szüksége, hiába vergődünk a specializáción. Oprendszer, email, adatbázis, web. Ez kell. Egyformák, mint két tojás. De mi a fenét fogunk kezdeni majd akkor, ha nem lesz két egyforma munkakör, mert a szabványos munkát beszippantja egy felhő, és ami marad az meg biodiverz? Ezen réáérek öt év múlva gondolkodni.

 


Szerintem idén az adózási fegyelem drámai romlását figyelhetjük majd meg, melynek oka maga az APEH. Én bolod, az "egyszerűsített" SZJA-bevallást választottam, ezért már órák óta ezzel foglalkozom. Meg fogom tudni csinálni a sok-sok házi feladatot, de egyértelmű, hogy aki NEM informatikus, az garantáltan nem. Normális földi halandók már az elején hanyattesnek a feladványon, mivel az URL, ahova el kell látogatni: https://egybe.apeh.hu.

Ide figyelj, APEH! Az emberek nem tudják, mi az a http és/vagy https! És nem csináltatok átirányítást http-ről https-re, ezzel az ügyfelek 97%-át elveszítitek, mert nem tudnak mit kezdeni azzal, hogy a megadott url helyett egy google lekérdezés jön be Surprised

De az is csak azokon a gépeken, ahol Google Toolbar telepítve van. Szerencsére a Google Toolbar egy vírus, mindenféle szmájligyűjteménnyel meg ridzsisztri-gyorsítóval települ, tehát adottnak vehetjük, hogy fent van a népek gépén. Tehát ott tartunk, hogy kap egy frankó Google-keresési eredményt. What next?

Ha esetleg megugorja valaki az URL-problémát, akkor jön az, hogy kap egy PDF-et (ez O.K.) és egy XML-t melynek a kiterjesztése .KRIXKRAX Laughing (.xkr) Na ezzel mi legyen? Hát ehhez telepíteni kell az APEHJAVA progit. Ez szépen le van írva ugyan, de annyi erő már nem volt a weblap készítőjében, hogy be is linkelje, hogy hol a túróban leledzik ez a bizonyos APEHJAVA, ezért a következő negyed órában ezt keresgéltem az apeh.hu-n. Annyi doksit találtam, mint a fene, ez nagyon dicséretes, de a letölthető progi megtalálása kihívás, mert a tucatnyi doksiba, mely mind erre hivatkozik, még véletlenül sem tettek linket. Egy út van: a progi megtalálása azon az EGYETLEN helyen, ahol van. Ne kérdezzétek, hol van, mittudomén, egyszer csak rábukkantam. Itt veszíti el az APEH az első rejtvény megoldóinak 70%-át, így most már csak minden egymilliomodik magyar állampolgár tart az APEH-hel az úton. No akkor menjünk tovább.

Letőtődik ez a JAR dolog. Erről megint tudnom kellene, mi a f...szösz, szerencsére a laptopomon a gyerekek szoktak internetes játékokat játszani, ezért JAVA már van rajta.

No akkor indítsuk el a frissiben, és hibátlanul telepített APEHJAVA progit, aminek a Desktopon lett egy ikonja. Lássuk:

Mit nekem összerendelés? Kit érdekel? Majd jól megnyitom kézzel azt a .krixkrax kiterjesztésű XML-fájlt. Csakhogy nem lehet, mert a Megnyitás úgy tűnik, valami más fogalmat takar, merthogy fájlokat megnyitni - na azt nem lehet vele:

Kezdem elveszíteni a lelkesedésemet, de a kitartásom még megvan, lássuk az újabb házi feladatot, mely esetében egyébként az egymilliomodnyi lelkes felhasználó ismét megtizedelődik: elveszítettük a vállalati alkalmazottakat: hogy a pitlibe legyenek ők rencergazdák???

Egyébként van megoldás, be kell hívni a gyereket, aki majd jól meghekkeli a vállalati számítógépet, és lesz itt rencergazda hamarost. Folytassam? Most elmegyek ebédelni, utána folytatom.

"Nem adom fel, míg egy darabban látsz!" - a kaja után visszajövünk.

Ebéd után a rencergazda (én) megcsinálja a hozzárendelést, melynek hatására a hibaüzenet eltűnik, de semmi más hatással a dolog nem jár. A proggy továbbra is üresen indul el, és a megnyitás továbbra sem bírható működésre. Ellenben a batch file nevének tanulmányozásával kiderül, hogy itt vélhetőleg nem megnyitásról, hanem beimportálásról van szó, ezért bátortalanul ugyan, de hősünk megpróbálkozik az Adatok->XML állomány megnyitása olvasásra menüponttal, és közben reszket a térde, hogy ez a bigyó ne rondítsa össze a krixkraxomat!

Itt egy kis kitérő: elsőre egy fatálas error jön, miszerint nincs meg az űrlap, erről rémlik valami, visszamegyek az eredeti levélhez, és valóban, le kell tölteni a 0853E űrlapkitöltő plugint. Most már ügyesebb vagyok, megtalálom a letöltési részt az apeh honlapján - szinte már felből tudom a websitemap-et.

Jesssssssssssssssssssz! Ez kellett neki! Még nincs délután kettő, és már látom az elektronikus adóbevallásomat! Tippeljünk: a magyar lakosság hány tízmilliomod része fogja kiválasztani pont az XML állomány megnyitása menüpontot?!?! Ok. Na most akkor mi is jön? Olvassuk tovább.

Adnom kell egy plusz pontot az apehnek is, mert a levelükben le van írva ez az XML-importálás, tényleg, és valóban.

Most jön az, hogy feladom. Merthogy megnyílt nekem a hetvenkétfejű sárkány. Egy gyors szkennelés a leírásban, hagy mennyi időm van a projektre, május 20-ig kell eljutnom a célvonalig, oké, akkor még hadd éljen egy picit a hetvenkétfejű, száznegyvennégyfülű sárkány:


Felsőfokú tanulmányaim során a matek volt az egyik legérthetetlenebb, legunalmasabb tantárgyam. Vizsgára felkészüléskor (amikor egyszerre félévnyi bizonyítást kellett volna elsajátítani) igencsak nehezemre esett elolvasnom a matematikai regényeket, mert sajnos a beleékelődő képletek zavarták a folyamatos olvasást.

Erre húsz évvel később hasonló levezetésekkel fárasztom a tisztelt nagyérdeműt. Mivel tudom, hogy viszonylag kevesen matekoznak munkahelyükön, egyszerű képlettel kezdjük, hogy a berozsdásodott fogaskerekek fokozatosan indulhassanak be. De kérem, ne add fel a harmadik oldalon! Ha kell, lapozz vissza, olvasd újra! Ha megemészted az RSA-t, soha többé nem fogod ugyanúgy látni a világot. Kitartás!

Gyermekkoromban minden nyári szünetben több hetet vidéken, nagyapáméknál töltöttem. Volt ott minden, mit városi gyerek csak rajzfilmen vagy kifestőkönyvben lát: háziállatok, kukoricagóré, lovaskocsi stb. Nagyapám minden évben elkápráztatott az alábbi "matematikai" bravúrral, s én minden évben újra és újra rácsodálkoztam, hogy mik vannak:

1. számmisztika

  • Gondolj egy számot.
  • Adj hozzá hatot. (No mi lesz?)
  • Szorozd meg hárommal. (Megy ez!)
  • Vond ki belőle a gondolt szám háromszorosát. (Ugye még ez is megy fejben?)
  • Az eredmény: 18

Ha kicsit jobban belegondolunk, hamar rájövünk a "trükk" nyitjára.

(X+6)* 3 - 3X = 3X + 6 * 3 – 3X

azaz 3X kiesik, marad 3 * 6 = 18

Engem ezzel a feladvánnyal már húsz éve nem lehet megetetni.

Rivest, Shamir, Adleman

Ez a három úr azon néhány kiválasztott elméleti matematikus közé tartozik, akik eredményeiket a gyakorlatban is hasznosítani tudták. A többi matematikus "csak" bebizonyítja, hogy végtelen számú prímszám van, vagy kiszámolja Pí értékét négymillió jegyig - egyszóval semmi aprópénzre válthatót nem alkot.

A mi embereink azonban 1977-ben megalkották a nyílt kulcsú titkosítás máig el nem avult, fel nem tört algoritmusát, amellyel komplett iparágakat teremtettek. Sőt! Gondoljunk a digitális aláírásról szóló törvényre - a hármak bandája tehát országokat is mozgat!

Annyira egyszerű az RSA-algoritmus képlete, hogy valószínűleg a dolog nem is működik. Fogjuk a titkosítanó dokumentumot, felemeljük egy gigantikus hatványra, majd az eredményen maradékos osztást végzünk... és ezzel látszólag elveszítjük az eredeti dokumentumot. De mégsem, mert ha egy másik hatalmas számmal az eredményt ismét meghatványozzuk, majd megint modulóját vesszük, visszakapjuk az eredeti doksit. Hmmm. De miért? És meddig? Mi az esélye és veszélye annak, hogy az RSA-t megtörik?

E sok kérdésre egyelőre nem adom meg a választ, először ugyanis ismét számmisztikázunk. Hatványozni fogunk, így számológép használata javasolt!

2. számmisztika

  • Gondolj egy számot (jelöljük T-vel). (2 és 10 között, különben kiakad a számológép.)
  • Most keress egy tetszőleges prímszámot (jelöljük N-nel), mely nagyobb, mint az előző szám. (Ugye tudod, mi a bánat az a prímszám? Neeem? A prímszámok olyan csodaszámok, amelyeknek egyen és önmagukon kívül nincs egész osztójuk. Például: 2,3,5,7,11,13,17 stb. )
  • Emeld a gondolt számot az (N-1). hatványra.
  • Vedd az eredmény moduloját N-nel (modulus = maradékos osztás)
  • A maradék: 1


Matekul ez így fest:

T(N-1) mod N = 1 (ha N nagyobb mint T, és N prímszám)

A fenti "trükk" megfejtéséhez már némileg több beleérzőképesseg kell. De nem túl sok. Ez Fermat kistétele (Pierre de Fermat, XVII. Szd.), Euler pedig bebizonyította, hogy a képlet minden prímszámmal működik, ha a prímszám nagyobb, mint a gondolt szám. Ezek a prímszámok tudnak valamit, amire a többi szám nem képes. Vegyük például ezt a másik, hasonló kiszámolót:

3. számmisztika

  • Gondolj egy számot (T). (2 és 10 között, különben kiakad a számológép. Ne ugyanazt, mint az előbb!)
  • Most keress egy tetszőleges prímszámot (N), mely nagyobb, mint az előző szám.
  • Emeld a gondolt számot N. hatványra.
  • Vedd az eredmény moduloját N-nel
  • A maradék: a gondolt szám.

Ez már igen érdekes! Matekul kifejezve:

T ^ N mod N = T (ha N nagyobb mint T, és N prímszám)

Ez valójában nem más, mint a fentebbi, második számmisztikai egyenlet, melynek mindkét oldalát megszoroztuk T-vel. Íme előttünk az RSA-algoritmus alapja, egy hatványozós, modulós képlet, mely visszaadja az eredeti számot! Ez a játék azonban egyfelhasználós, az RSA-t viszont párban kell játszani (Titkosító, Megfejtő), másrészt ki engedte meg, hogy egy modulós képlet mindkét oldalát büntetlenül megszorozzuk T-vel? Ki mondta, hogy igaz marad az egyenlet? Egyelőre zsákutcába jutottunk. Tegyük félre egy pillanatra a játszadozást. Mi is a cél?

Ariadné, Indiana Jones és a függvények

Célunk egy olyan függvénypár találása, melyek egymást kiegészítve visszavisznek a kiindulóponthoz. Ha a két függvény egyikét a Titkosító, másikát a Megfejtő alkalmazza, ugyanazt az adatot kapjuk vissza. Ilyen függvénypárokat igen egyszerű találni, mivel gyakorlatilag mindegyik ilyen. Legyen a titkosítás például az, hogy a titkosítandó számhoz hozzáadunk egyet (hű, de bonyolult!):

Adat + 1 = titok

Ebben az esetben a kiegészítő függvény, mely az eredeti adatot visszaadja:

Titok – 1 = adat

Ugyanilyen formán a világ számtalan függvénye használható gagyi nyílt kulcsú titkosításra az y=2x+4-től a négyzetre emelésig, de egytől egyig mind gyatra, mert tulajdonképpen nincs is szükségem a fordított függvényre - bőven elég, ha az eredeti műveletsorozatot lépésről lépésre visszafelé hajtjuk végre. Ariadné függvények, mert húzzák maguk után a fonalat, amelynek segítségével bármilyen bonyolult labirintusból kitalálunk. De vegyük csak Indiana Jones példáját. Bemegy egy barlangba, ahol a háta mögött leomlik a fal, árvíz mossa el a hidakat, karók jönnek ki a földből, és ha még ez sem elég, hát meggyullad valami. Ott áll hősünk a barlang legmélyebb pontján bezárva, látszólag reménytelenül (orra előtt a dinkák ősi bálványszobra), de ebben a siralmas helyzetben hirtelen megtalálja a kivezető utat ábrázoló térképet. Ha nem Indiana Jones kavarodott volna be a barlangba, biztos nem talált volna ki, erről tanúskodnak a falak mentén némán üldögélő csontvázak. (Hollywood nem spórol a dramaturgiai kaptafákkal.)

Ez kell nekünk! Olyan függvény, melybe ha besétáltunk, visszaút nincs többé. Hiába próbálkozunk a lépések fordítottjával, a mennyezetről lezuhant szikla utunkat állja. Kijutni csak akkor tudunk, ha a bálvány talpa alól kihúzzuk a térképet. Na ez az RSA. Aki nem tudja, hogy a bálvány lába alatt van a térkép, az meghal.

Az ilyen függvényeket csapda (trapdoor) függvényeknek nevezzük. Az első működő példával Diffe és Hellmann rukkolt elő 1976-ban, pontosan a második számmisztikára alapozva. Most pedig lássuk, mi kell még:

  • Moduloaritmetika és kongruencia
  • Relatív prímek
  • Euler fíje
  • A szorzás, mint a helyzet megmentője

Sajnálom, hogy csalódást kell okoznom. Itt komolyra fordul a dolog. A gyengébb idegzetűek ne olvassák el a vonal alatti részt!


1. Moduloaritmetika, kongruencia

Ha az a cél, hogy beomoljon az alagút, keresve sem találhatnánk jobb matematikai műveletet a modulonál, vagyis a maradékos osztásnál. Oly kiválóan fejbecsapja az áldozat számot, hogy az eredményből soha nem leszünk képesek visszaállítani az eredetit. A modulo, vagy maradékos osztás életünk szerves részét képezi. Amikor azt mondjuk, ma kettőkor végzek a munkahelyemen, akkor valójában 14 óráról beszélünk, modulo 12. Modulo 12-vel fejbevágva a 14 tulajdonképpen egyenlő 2-vel. Ezt a furcsa egyenlőséget a matematikában kongruenciának hívják, és hármas egyenlőségjellel jelölik. Bármely szám bármely másikkal képzett moduloját igen könnyű vizualizálni. A

127 mod 21 = 1

nem más, mint egy 21 "órából" álló számkör, melyre a 127-et "felcsavarjuk". Többször körbefut, majd a vége valameddig elér a 21-es számkörön. Ez a maradék a modulo végeredménye. A fenti írásmód a „hétköznapi”. Ugyanez matekul:

127 º 1 (mod 21)

Ennek olvasata: a 127 valójában ugyanaz, mint az egy, ha modulo 21-ben gondolkozunk. A 2-kor végzek matekul így fest:

14 óra º 2 óra (mod 12-ben gondolkodva)

Hol találunk még modulót mindennapjainkban? Hát a számítógépeinkben. A mai elterjedt processzorok 32 bitesek, ami tulajdonképpen annyit jelent, hogy 2^32-nel modulálnak minden egész számon végzett matematikai műveletet. Ha túl nagy fába vágjuk a fejszénket, a túlcsordulás miatt könnyen azon kaphatjuk magunkat, hogy

1 + 1 º 256 + 1 + 1

Hármas egyenlőségjellel persze. De akkor már bánhatjuk. Modulo a hét napjai (mod 7), a beszélt nyelv (220V= kettő-húsz, azaz mod 100) stb. Modulo mindenütt.

Érdekes, és később hasznunkra válik majd, hogy a moduloaritmetikában (szinte) bármikor fejbecsaphatjuk a művelet tagjait a modulussal, a számítás előtt, vagy a végeredményen - egyre megy. Példa:

Most 11 óra van. Mennyit mutat majd a vekker 27 óra múlva?

1. számítás: a modulo a végeredményre sújt le:
11+27 = 38 º 2 (mod 12 esetén)

2. számítás: a moduloval már a kedzőértékeket fejbecsapjuk
27 º 3 (mod 12-vel lecsapva)
11 º 11 (mod 12-vel lecsapva. Nem változik)
11 + 3 = 14 º 2 (mod 12)

Ez a trükk ráadásul nemcsak összeadásra, hanem könnyen belátható módon gyorsított összeadásra, vagyis szorzásra is működik! Egy tyúk levágásának és feldolgozásának ideje 3 óra (forralás, belezés, belsőségek megtisztítása, darabolás, csomagolás, fagyasztás). Sajnos 50 élő tyúkot kaptunk vidékről bele a panellakás kellős közepébe. Ha délelőtt 11-kor kezdem, vajon fent lesz-e a napocska, amikor befejezem? Egyedül csinálom, a feleségem nem ért hozzá (nem sokat nyaralt vidéken gyermekkorában). Mivel a napocska hollétére vagyok kíváncsi, mod 24-gyel dolgozom:

1. számítás: mod 24 a végeredményre
3 * 50 = 150 º 6 (mod 24) A nap épp kelőben lesz.

2. számítás: mod 24 a kiindulási adatokra
50 mod 24 º 2 (mod 24)
2 * 3 = 6. A nap épp kelőben lesz.

Hogy én beledöglök-e a több mint hatnapi megszakítás nélküli tyúkpucolásba? Nem érdekes... Ennél sokkal fontosabb, hogy a moduloaritmetika bármikor bevethető. Például, ha egy moduloszámítás során kezdene elszaladni az eredmény a végtelen felé. Csak lesújtunk rá a moduloval, és rögtön nyugton marad, mi pedig számolhatunk tovább.

2. Relatív prímek

Megy még a prímtényezőkre bontás? Hatodik osztályos anyag. És hogy kapom meg két szám legnagyobb közös osztóját? Segítek.

Prímtényezőkre bontás:
18 = 2 * 3 * 3
30 = 2 * 3 * 5

A legnagyobb közös osztó (LKO)kiszámítása
Az LKO két szám közös prímtényezőinek szorzata. A fenti esetben a 2, és a 3 közös, így 18 és 30 legnagyobb közös osztója 6.

Ha két szám prímtényezői egyáltalán nem egyeznek, a legnagyobb közös osztójuk 1, a két szám relatív prím egymáshoz képest. Példa:

28 = 2 * 2 * 7
45 = 3 * 3 * 5

Prímtényezőikben nincs közös, legnagyobb közös osztójuk 1. A 28 és a 45 egymáshoz képest relatív prímek. Hogy mi a csudára jó ez nekünk? Hát kipróbálhatjuk, hogy a hatványozós-modulós játék (a 3. számmisztika) egészen biztosan csak akkor működik-e, ha N prím, vagy netalán a relatív prímek is eleget „tudnak”, és elég, ha N relatív prím T-hez képest?

HA a hatványkitevőt fel tudnánk bontani két részre, valahogy így:

N=P*Q (ami ugyebár addig nem megy, amíg ebben a számjátékban N kötelezően prím) akkor

T(P*Q) º T (mod N)

ugyanazt adná, a hatványozást pedig két különböző emberre bízhatnánk

Titkosító: T ^ P º R (mod N nyomása alatt)

Megfejtő: R ^ Q º T (mod N)

miénk is lenne az RSA.

1. próba:
T=5 (a titkosítandó szám)
N=6 (relatív prím T-hez, ha nem hiszi, számolja ki)
56 mod 6=...1

Jaj. Ez nem az eredeti szám, ez biza nem 5. Ez nem jött be. Euler! Segíts!

3. Euler fíje

Mitől működik... a 3. számmisztika? Jobban utánaolvasva kiderül, hogy a hatványkitevő csak prímszámok esetén ugyanaz, mint a modulus (N), és ott is csak azért, mert "véletlenül" így jön ki minden prímszámnál. A hatványkitevő ugyanis nem más, mint a modulus relatív prímjeinek száma + 1. Ez jó bonyolultan hangzik, úgyhogy vegyünk példákat:

9-hez képest relatív prímek (azaz a legnagyobb közös osztójuk 1): 1, 2, 4, 5, 7 és 8. Összesen 6 darab.
7-hez képest relatív prímek: 1,2,3,4,5 és 6. (Azaz minden nála kisebb szám, merthogy a 7 maga prím.) Összesen megint 6 darab.

Euler a görög f (fi) betűvel jelölte azt, hogy egy számnak hány relatív prímje van. Így f(9) = 6, és f(7) szintén 6 (bár merő véletlenségből annyi, nincs semmi köze a 7-nek a 9-hez). Prímszámoknál borzasztó egyszerű kiszámítani:

f (N) = N-1

minthogy mindegyik nála kisebb szám relatív prímje egy prímnek. A 3. számmisztika kijavítva:

T f (N)+1 º T (mod N)

Lássuk az előző példát, hátha így összejön!

2. próba
T=5 (a titkosítandó szám)
N=6 (relatív prím T-hez, 2*3 legnagyobb közös osztója 5-tel: 1)
f(6)=1 és 5, azaz összesen 2 darab

5 ^ (2+1) mod 6 = ...jaj de izgulok ... = 5!

Hurrá! visszakaptuk az eredetit! Pedig a matekozáshoz használt N nem is prím! Ki meri azt állítani, hogy a 6-os prímszám? Elégtelen!

Ez már majdnem RSA, csak egyfelhasználós.

RSA!

Itt buktunk el az előbb: ha a hatványkitevőt fel tudnánk bontani két részre, valahogy így:

f (N)+1=P*Q

ami most már megy, mert a 6 messze nem prím, akkor

T ^ (P*Q) º T (mod N után)

jól működne, a hatványozást pedig két különböző emberre bízhatnánk

Titkosító: T ^ P mod N = R
Megfejtő: R ^ Q mod N = T

és miénk lenne az RSA.

3. próba:
A fenti példában a hatványkitevő 3. Ezt sajna csak így lehet szorzótényezőkre bontani: 1*3. Az 1 nem valami "jó" hatványkitevő, ugyanis nem csinál semmit a hatványozás során. Már megint kicsúszott a markunk közül ez a nyomorult RSA, de nem adjuk fel!

4. A szorzás, mint a helyzet megmentője

A második számmisztika gyúrása (emlékeztetőül, ez volt az):

T ^ (N-1) º 1 (mod N)

Most már tudjuk (Euler segített), ez valójában

T ^ f (N) º 1 (mod N-nel kupánvágva)

Mindkét oldalt emeljük négyzetre:

T ^ f (N) * T ^ f (N) º 1 * 1 (mod N)

Most köbre:

T ^ f (N) * T ^ f (N) * T ^ f (N) º 1 * 1 * 1 (mod N)

Bízvást menne negyedik hatványra is... Írjuk fel a köböst a hatványkitevők összevonásával:

T ^ 3*f (N) º 1 (ne feledd: mod N!)

Ebben az a röhej, hogy a moduloaritmetika miatt a hármas helyén akármilyen szám állhat, és nem zavarja köreinket! Hoppá! Így ha a f(N)+1 felbontása olyan suta lenne, mint az előző bekezdésben (1 és 3 jött ki), semmi gond, mert ennek akárhányszorosa, azaz K*f(N)+1 éppoly jó felbontási alany, így:

2+1 helyett bátran megpróbálkozhatunk akár a

7*2+1 (=15) felbontásával: 3 és 5.

Sokadik nekifutás: 4. próba
T=5 (a titkosítandó szám)
N=6 (relatív prím T-hez, 2*3 legnagyobb közös osztója 5-tel: 1)
f(6)=1 és 5, azaz összesen 2
K*f(N)+1=7*2+1=15=P*Q. P=3, Q=5

Titkosító: T ^ P mod N=R, azaz 53 mod 6=5
Megfejtő: R ^ Q mod N=T, azaz 55 mod 6=5

RSA-zunk!!!!!

A publikus kulcs P és N
A privát kulcs Q és N

Egy hétköznapi példa

A hét napjaival fogunk titkosítani. Az egyszerűség miatt az év negyedik napja lesz a titkosítottan átküldött infó, a modulus pedig 7, azaz vasárnap. Azért választottam ezt a példát, mert ebben oly természetes a modulus!

T=4, csütörtök (a titkosítandó szám)
N=7, azaz egy naptárlap napjainak száma (relatív prím T-hez, legnagyobb közös osztója 4-gyel: 1)
f(7)=1, 2, 3, 4, 5 és 6, azaz összesen 6 nála kisebb relatív prímje van
K*f(N)+1=4*6+1=25=P*Q. P=5, Q=5 (ez bénaság, a két hatványkitevő sose legyen egyforma, de mi csak gyakorlunk)

A titkosítás valójában a naptár előrepörgetése rengeteg nappal, így rengeteg lappal. Ahol az előrepörgetés megáll, megnézzük milyen napot írunk (ez a Mod 7).

Titkosítás: T ^ P mod N=R, azaz 45 mod 7=2, azaz kedd. Ezt küldöm el a partneremnek.
Megfejtés: R ^ Q mod N=T, azaz 25 mod 7=4, azaz csütörtök.

A publikus kulcs P és N, azaz 5 és 7. Lássuk, pusztán ennek birtokában, hekkerként  vissza tudjuk-e fejteni az eredeti napot. A modulo miatt sok "vért" veszítettünk, gyakorlatilag fogalmunk sincs, hogy hány napot rohantunk előre, kizárólag a maradék maradt. Ennélfogva T akármi lehet, mert végtelen sok olyan szám van, amit ha P-edik hatványra emelünk, majd mod 7-tel lefejezünk, keddet ad eredményül. Visszaút nincs. Előre pedig csak azok hatolhatnak, akik ismerik Q-t, a privát kulcsot.

Kulcsgenerálás

Már tudjuk, hogy a modulusnak nem kell prímszámnak lennie, bőven elég, ha relatív prím a titkosítandó adathoz. Vajon hogy a csudába biztosítható, hogy a modulus:

  • Oltári nagy szám legyen 
  • Relatív prím gyakorlatilag bármihez (fontos.doc például) 
  • Meg tudjuk állapítani a f-jét (relatív prímjeinek számát) 
  • f-je felbontható legyen két egész szám szorzatára

Hmm. Ez igazán nehéz feladatnak tűnne, ha vakon bökdösnénk a számok között. E helyett okosan a következőt tesszük:

  • Veszünk két hatalmas prímszámot, X és Y (www.mersenne.org és egyéb módszerek) 
  • Ezek szorzata lesz N, a modulus, ami ugyan nem prím, de mivel két elvetemülten nagy prímszám szorzata, gyakorlatilag bármilyen nagy számhoz relatív prím lesz 
  • Mindkét prímszámnak tudjuk a f-jét (prímszámokról lévén szó X-1 és Y-1), így N f-je is adott: f=(X-1)*(Y-1) 
  • Ezután felbontjuk f-t két szám szorzatára (P és Q). Nem nehéz, hisz "K*f(N)+1 éppoly jó felbontási alany", lásd fenn. P és Q ideális esetben egymáshoz képest relatív prím, de ez nem szükséges feltétel 
  • A nagy prímszámokat elhajítjuk. Többé nem kellenek.

A kulcspárok pedig P, N és Q, N

Gyenge pontok

Az RSA gyenge pontja nem az algoritmus, hanem a kulcsgenerálás. Mivel N része a publikus kulcsnak, az RSA addig „él”, amíg nincs jobb módszer N prímtényezőkre bontásához, mint a próbálgatás. 

Ellenőrzés

Ne mondd, hogy elsőre feldolgoztad. Nem igaz. Most légy szíves olvassa el ezt a fejezetet elölről. Ami nem megy elsőre, majd megy másodikra. Ami nem megy másodikra, majd sikerül harmadikra. Ami nem megy harmadikra...


Ezt a cikket vagy 8 éve követtem el, még a (megboldogult) BYTE magazin hasábjain, de most egy baráti kérdés kapcsán újra felmerült, hát idepasztázom. Egyébként ez a kérdés régóta foglalkoztat, íme egy geg 2004-ből a témában.

Domain Naming System? Nem, ezúttal dezoxiribo-nukleinsav.

Amerikai tudósok feltérképezték az emberi DNS-t, az elejétől a végéig, a fejétől a farkáig. Joggal kérdezhetitek, hogy mit keres a szerves kémia és a mikrobiológia e tényleg csodálatra méltó tudományos eredménye a mi informatikai „boncasztalunkon”?

Azért, mert informatikai vonatkozású a felfedezés. Arról ugyanis nincs szó, hogy bárki értelmezni tudná az emberi DNS tartalmát: a hír mögött összesen annyi áll, hogy sikeresen, ám gépiesen és bután lekörmölték egy (1) emberi sejt örökítő anyagának 12 gigabitnyi információját. Ám az értelmezés még hátravan. Megtalálták az emberi faj rosette-i kövét , amelyet tökéletesen le is másoltak, ám attól az még értelmezhetetlen hieroglifakupac maradt. A tudóscsoport vezetője be is vallotta: most jön a neheze. Ő mintegy 20 évnyi munkát becsült, amely arra kell, hogy meg is fejtsék a titkosírást. Megjegyzem: a lemásoláshoz 5 év, nemzetközi összefogás, és néhány milliárd dollár kellett az emberiség részéről, míg ugyanezt az infót egy egysejtű 80 másodperc alatt képes bitről bitre lekopizni - teljesen egyedül és ingyen. Ami pedig az értelmezést illeti: 20 év munkája (plusz nemzetközi összefogás, plusz néhány milliárd dollár) kell ahhoz, hogy megértsük azt, amit egy élő sejt simán olvas?

Mert mi is történik az egyedfejlődés során? Ahogy a sejtek sokasodnak a megszületendő magzatban, mindegyik megkapja a közös tudás egy példányát, a DNS-t, és mindegyik sejt kiolvassa belőle pontosan azt a szakaszt, ami rá vonatkozik: tüdőgümő legyen belőle, vagy nyálkahártya? Vagyis mindegyik sejt rendelkezik egy adathordozóval (ez a DNS) és egy olvasó-berendezéssel, amely kiolvassa az adott sejt felépítésére vonatkozó fejezetet. Olyan, mint egy lyukkártya, meg egy olvasó. A DNS információtartalma az evolúció során igencsak megváltozott (tehát a kód írható, jobban mondva íródik), a legelső DNS kialakulásáról azonban sejtelmünk sincs.

DNS-kódolás

Még olyan bonyolult képleteket is, mint amely magát az embert definiálja, le tudunk írni egyesek és nullák sorozatával, vagyis binárisan, s máris kiválóan olvassák számítógépeink. Ha ugyanezt az információtömeget „emberi fogyasztásra alkalmas” formában szeretnénk tárolni, valamilyen ABC-t, egy 32 különböző jelből álló kódrendszert használnánk. Ha már itt tartunk, idézzük fel, hogyan is működnek a tömörítőprogramok? Mi a tömörítés alapja? Az, hogy a tárolandó adathoz optimális kódrendszert rendelve csökkentjük a tároláshoz szükséges helyet. 

Vajon a DNS információja tömöríthető-e? Vagy optimális a kódolása? Vizsgáljuk meg a DNS kódolását közelebbről!

Én húszféle aminosavból állok. Ön is. Minden élőlény minden sejtjének minden fehérjéje ugyanabból a húsz aminosavból épül fel, Alanintól Valinig. Elvileg tehát egy húszbetűs (valójában 21, mert egy STOP jel is kell, mely jelzi, hogy hol ér véget egy mondat) ábécére van szükségünk, vagyis összesen 21 különböző jelet kell ábrázolnunk egy bájton. Mit csinálna a WinZIP, ha csak 21 különböző bájt lenne egy tömörítendő fájlban? Eldobná a 8 bites bájtot, és helyette 5 biteset választana, hisz ennyi elegendő, sőt sok is a feladatra (2^5=32). Tekintve, hogy a DNS kettős spiráljában úgynevezett komplementer írásmódot „használunk”, hogy ha sejtosztódáskor széttekeredik, mindkét fele tökéletesen kiegészülhessen a párjával, csak páros számú „betűnk” lehet.

Az 5 bites kódolás 32 különböző lehetőséget jelent, ami elegendő lenne 21 jel tárolásához, de már némi hibadetektáló kód, például paritás képzéséhez kevés. Pedig jó lenne, ha a másolási hibák „kibuknának” még mielőtt háromfejű egyfogú szárnyas óriásgiliszták lepnék el a földet.

A DNS valóban tartalmaz hibadetektáló kódot is, így 5 helyett 6 bit kellene, s máris 20%-kal megnöveltük a jelek, s így a DNS-lánc hosszát, ami már nem fér be a sejtbe, átfúrja a sejtfalat. Hát éppen emiatt mondott le a Teremtő a bináris kódolásról, és használ helyette kvaternáris kódot (négyes számrendszer), ahol 1 „bit”, nem két értéket vehet fel, hanem négyet, és ezzel éppúgy 4^3=64 féle „szót”, azaz esetet tárolhatunk, mint 2^6-nál. A DNS-spirál hossza ezzel éppen feleakkora, mint az előbb (6 helyett 3 darb négyes számrendszerbeli „bit”), és így már simán elfér a sejtben. Hát nem zseniális? Kicsit nehéz fejben számolni a kvaternáris kóddal, de csak azért, mert rég voltunk már másodikosok - az általános iskolások viszont kiválóan tudnak bánni vele.

Komplementer írás

A komplementer írás lényege, hogy az ABC mindegyik betűjéhez testvért választunk, akivel kézen fogva jár. Ha az ABC-nk a következő betűket tartalmazza: EKLMNOPT, akkor mindegyikhez „testvért” kell rendelni, valahogy így:
E párja N; K párja O; L párja P; M párja T, s ha ezután leírunk valamit, akkor azonnal aláírjuk a komplemensét is:
• KOMPLEMENT: mondandó, a DNS-spirál főszárára írva
• OKTLPNTNEM: komplemens, a DNS-létra másik szárára írva
A komplementer írás belátható módon csak páros számú jel esetén működik, mert ha páratlan lenne - akkor páratlan lenne. Nem, ez nem palindrom, hanem komplementer. Na jó, itt egy palindrom is, bár semmi köze a DNS-hez:

Rám német nem lel elmentem én már Laughing

Miért legjobb a négyes számrendszer?

A kettes számrendszer túl hosszú DNS spirált adna. Belátható, hogy valójában ez a kódolás az elemi bitek „lebutítása”, két értékessé zsugorítása miatt a létező kódolások közül a leghosszabb „betűket” adja. Akkor a PC-k miért így működnek? Azért, mert a négy aritmetikai alapműveletet csak ebben a számrendszerben lehet megvalósítani 1-2 tranzisztorral (ÉS-kapuk és VAGY-kapuk felhasználásával).

A hármas és ötös számrendszer kiesik, mert azokkal páratlan számú „betű” állítható elő, amellyel nem lehet komplementáris kódolást alkotni, amely viszont a DNS osztódási módja miatt nélkülözhetetlen.

A négyes számrendszer a bitek felokosításával, vagyis, hogy 1 bit már nem csak kettő, hanem négy (0,1,2 és 3) értéket vehet fel jelentősen rövidebb jelsorozattal írhatja le ugyanazt, amit a bináris. Gondoljunk csak arra, hogy egyedül szegény számítógép kínlódik a bináris kóddal, míg például ha kinyomtatunk egy kódot, már négyes (BCD), nyolcas (oktális) vagy tizenhatos (hexadecimális) kódolást használunk, mert például a hexa éppen negyedannyi papírt fogyaszt, mint a bináris, s ráadásul sokkal szemléletesebb a
02A9 F905 6A9C
mint a
00101010 1001111 1100100 0001010 1101010 10011100

A hatos számrendszer pedig azért nem jó, mert bár páros, a „bitek” számának növelésével túl nagy lépésekben nő a lehetséges „betűk” száma: 6 után 36, majd 378. A 36 kevés, mert nincs hely hibadetektáló kódra, a 378 meg irdatlanul sok. A nyolcas számrendszerrel nem kalkulált a Teremtő.

Információsűrűség

Ma már mindenkinek lehetősége lenne arra, hogy egy DVD-n, vagy a modernebbek egy pendrájvon a zsebében hordja a saját genetikai kódját. Ennek ugyan nem lenne semmi értelme, hisz minden egyes sejtünkben ott van ez az információ, a DNS-spirál nevű adathordozóra írva összesen 6 x 10^10 négyes számrendszerű „bit”. Könnyen kiszámolható, hogy ez másfél gigabájtnak felel meg. Minden egyes mikroszkóp alatt alig kivehető sejtben egy fél DVD anyaga! A sejtben lévő DNS-spirál pedig oly kicsiny, hogy az elektronmikroszkóp is zavarba jön tőle! Azt hiszem, van még mit tanulni a természettől az információtárolásban, hisz a DVD trilliószor akkora tárgy, mint a DNS kettős spirálja…

Honnan jöttünk?

Vegyük észre, hogy nem maga a DNS kettős spirálja a csoda, hanem az általa leírt információ. DNS-spirálban kódolva vagy kinyomtatva, esetleg DVD-re írva az információ ugyanazt jelenti: az éti csiga testi felépítését. Annyira zseniális, hogy az emberben önkéntelenül felmerül a kérdés: az ősleves vajon mennyi idő alatt főz ki egy ilyen komplett rendszert merő véletlenségből?

Az Egyesült Államokban egyetemistákkal (tehát még nyitott agyú emberkékkel) végeztek egy kísérletet: tárgyak fényképét mutatták nekik, és el kellett dönteniük, hogy létrejöhet-e a képződmény véletlen útján. Kezdetben egyszerű tárgyak szerepeltek, mint kavics (igen, létrejöhet), tégla (nem, azt ember alkotja), patak (igen), szfinx a sivatagban (nem), a hold fotója (igen), egy autó (nem, ilyen véletlen nincs), egy ember (hopp, néhány másodperces töprengés, majd: IGEN!). Na de kérdem én, ha egy papucsállatka egymilliószor bonyolultabb „gép”, mint a laptopom, és tizenhatmilliótrilliószor bonyolultabb, mint egy tégla, akkor miért nincs arra példa, hogy X millió év alatt természetes úton előálljon egy tégla, s néhány milliárd év alatt egy laptop? Miért nem képes a sivatagi szél szfinxet faragni? A papucsállatka a maga primitívségében borzasztóan tökéletes. Gépek vagyunk, kémiai miniüzemek, amelyek egy lyukszalag, a DNS feldolgozására képesek. Ám lyuxalagot írni nem tudnak gépeink, csak olvasóval vagyunk felszerelve. Az élet alapja, a DNS tervezési okokból read only számunkra. Nekünk nincs írási jogunk, nehogy eltoljunk valamit. Majd talán húsz év múlva meghackelik a tudósok de addig csak gondolkozzunk:

Ki írta a kódot?

Az információ véletlen születéséről ismerős lehet az a gondolatkísérlet, hogy ha leültetünk egy majmot egy írógép elé, és az elkezd véletlenszerűen klimpírozni a billentyűkön, akkor vajon mennyi idő szükségeltetik ahhoz, hogy megírja Tom Sawyer kalandjait. Elvileg előbb-utóbb megírja eredetiben, majd újabb néhány milliárd év múlva magyarul is. Tehát a DNS elvileg véletlenül is keletkezhetett. De van itt egy bökkenő: a majom klimpírozását egy intelligencia dolgozza fel, és dönti el, hogy most éppen zagyvaságot gépel, vagy - merő véletlenségből - éppen nem. Tehát azáltal válik az információ információvá, hogy valaki számára jelent a jelsorozat valamit. Minden egyes sejt számára természetesen jelent valamit a DNS, hisz ez alapján építkezik, tehát megvan a „célszemély”, aki eldönti, hogy infó-e az infó. A sejt DNS-olvasója is keletkezhetett véletlenül. De annak a valószínűsége, hogy a 12 gigabites lyuxalag (DNS) és az ezt hibátlanul olvasó kémiai gép egyszerre véletlenül létrejön, kerek nulla.

Ha valóban a véletlen művei vagyunk, akkor az egyiknek milliárd évekkel előbb létre kellett jönnie, mint a másiknak.

Ennek menete hasonló lenne a következőhöz: képzeljük el Joseph-Marie Jacquard urat, amint éppen a lyukszalagos kötőgép feltalálásának felénél tart, bambán álldogál a műhely közepén kezében egy Budmil póló elkészítését vezérlő lyukszalaggal, és halvány fogalma sincs arról, hogy mire való, mert az olvasó feltalálásánál még nem tart, ergo számára is ismeretlen az általa készített szalag tartalma. Vagy fordítva: éppen tűreszelővel reszeli a mechanikus olvasót, mely majd a kötőgép fejét fogja vezérelni, de még nem tudja, hogy mire lesz jó, mert az egész gép működése, s a szalag kódrendszere még nem állt össze a fejében. Ugye badarság?

What is the Matrix?

A Matrix egy sci-fi film, mely egyfajta furcsa logika alapján képes leírni a bennünket körülvevő világ minden furcsaságát, kanálhajlítástól jövőlátásig, hisz amit mi valóságnak hiszünk, azt egy számítógép vetíti az agyunkba, a szörnyű valóság viszont az, hogy valamennyien kocsonyában fekszünk, és robotok uralkodnak felettünk, melyek teljesen kiszabadultak a felügyeletünk alól. Szaporodnak, fejlődnek stb. Az a furcsa a Matrixban, hogy az alkotók nem vették észre: a történet szóról szóra igaz, csak mi vagyunk az elszabadult, és evolúcióval jó messzire elfajzott gépek. Biorobotok.


Hőskor. Az internet kora.

Az életnek nincs célja és nincs értelme. Az életnek szépsége van.