Asamblorul

Bogdan Ontanu este un subiect generos, dar n-am scris pina acum despre el deoarece si-a desfasurat activitatea in neoliticul Internetului romanesc, pe cind Ideile se impreunau cu Eterul prin intermediul conturilor moca de Xnet si doar la ceas de seara, ca atunci era mai ieftin impulsu’ la Romtelecom. Desi forma de protoprostie intrupata in Bogdan este bine studiata in mediul academic, n-am vrut sa va indrept atentia catre trecut, atita timp cit prezentul este intesat de atitia mineri, militieni, profeti si alte subspecii de intelectuali care se zbat pentru a ne atrage atentia. Iata insa ca Viorel, un codexpert cel putin atipic prin faptul ca se preocupa in principal cu raspunsurile la obiect, ignorind aproape total exemplul Cucuscian, a decis sa faca jonctiunea intre trecut si prezent. Cind un incepator pingarit de miinile negre ale minerului a intrebat de unde poate sa-si procure un asamblor pentru a-si pune capat zilelor, Viorel a raspuns:

Încearcă şi acest asamblor interesant:

Bogdan Valentin Ontanu, autorul acestui asamblor interesant si posesorul site-ului oby.ro, este un fel de Aristotel al mileniului 3: prozator, filosof, game designer, virusolog, parinte de sistem de operare dar, mai presus de toate, programator ASM. El si-a asigurat locul in cartile de istorie de la scolile ajutatoare cind, in 2001, a anuntat ca lucreaza la RTS-ul Hostile Encounter, ce va avea urmatoarele caracteristici:

  • cel mai tare RTS 2D
  • Jucabilitate mai buna sau la fel de buna ca Star [adica Starcraft, in caz ca v-ati prins dar nu vreti sa credeti – n.r.]
  • Cel mai tare AI ( cu invatzare, dropuri surprize)
  • Poveste originala, fulminanta (si culmea aproape reala)
  • scris in ASM

Inainte de a studia jucabilitatea, povestea fulminanta sau taria, sa ne intrebam de ce vrea Bogdan sa scrie tot jocul in ASM. Din fericire, FAQ-ul cu reminiscente codexpertice de pe site ne lamureste:

We know ASM well. ASM is also very easy to learn
Argumentul e cladit pe proverbul “drumul cunoscut e cel mai scurt”. Cu alte cuvinte, Bogdan nu e in stare sa invete altceva, asa ca foloseste ce stie, indiferent ce implica asta. Also, “we” adica el.

There will allways be ASM code in a GAME so: Why NOT write all in ASM?
Dupa ce a auzit la Teleenciclopedia ca 57% din corpul uman e apa, Bogdan si-a extras creierul si l-a inlocuit cu apa, devenind astfel al doilea cel mai cunoscut programator hidrocefal din Romania.

Speed is of the essence in GAMES. ASM is 100% up to 300% faster than today “optimized” compiler
Iata ca frica de compilatoare si masini de scris automate facea victime cu mult inainte ca Minerul sa-i dea glas pe codexpert. Sa vedem cum se traduce asta in practica:

Cerinte de sistem pentru Starcraft, scris in C++ de catre fraieri:

  • CPU: 90 MHz Pentium I
  • RAM: 16 MB

Cerinte de sistem pentru Hostile Encounter, scris in ASM de catre Bogdan Ontanu:

  • CPU: 400 MHz Pentium II
  • RAM: 64 MB

Nu rideti. Codul ASM al lui Bogdan chiar este de 3 ori mai rapid decit codul amatorilor ce utilizeaza C++, dar necesita de 4.5 ori mai multi megaherzi d-astia deoarece Hostile Encounter e de 3*4.5 = 13.5 ori mai bun decit Starcraft. Dovada in screenshot-urile alaturate:

Starcraft

13.5 * Starcraft

Sint sigur ca se vor gasi guri rele care vor spune ca screenshot-ul din dreapta arata de maxim 7-8 ori mai bine decit cel din stinga, nicidecum de 13.5 ori. Lor le voi atrage atentia ca ignora faptul ca desi este facut de amatori, Starcraft este, totusi, un joc lansat, pe cind Hostile Encounter este inca in dezvoltare, deci are suficient timp pentru a-si realiza potentialul. In plus, trebuie sa vezi jocul in actiune ca sa-ti dai seama ca performanta de 1350% nu e investita doar in grafica ci si in AI si in modul in care toate elementele se imbina fluid, rezultind intr-o experienta ce atinge dezideratul initial de “cel mai tare RTS 2D”. Din fericire exista un demo care poate convinge pe oricine.

Acum ca am stabilit faptul ca Bogdan este cu adevarat o minte luminata a programarii ASM si nu numai, este timpul sa ne aplecam asupra talentului sau de prozator, de unde izvoraste povestea jocului, “fulminanta si culmea aproape reala”. Fundalul actiunii din Hostile Encounter este un o imbinare magistrala a unor idei de baza din scientologie, crestinism, Lorin Fortuna si practic orice SF de cacat din ultimii 50 de ani, relatata cu maiestria unui elev care n-a trecut de clasa a 3-a desi a incercat de 8 ori. Opera este atit de complexa incit sfideaza orice tentativa de a face un rezumat ce ar putea incapea in acest articol, asa ca va invit sa cititi aici schita realizata de autor. Marturisesc ca eram cu sufletul la gura atunci cind Satana voia ca urmatoarea recolta sa aiba 7 “typo logical DNA code”, in timp ce Dumnezeu insista sa bage 12. Pentru cei care nu dau skip la dialoguri, avem aici inca 3 fragmente scrise in aceeasi limba frumos curgatoare a lui Shakespeares ce imping firul epic cu pulanul in coaste de la Iisus, gheizere sfinte si retele neuronale pina la Zamolxis si hackeri romani.

Printr-o inexplicabila si cruda omisiune a Divinitatii, talentul lui Bogdan cu pixul acopera doar sfera cuvintelor, nu si pe cea a formelor. Acest obstacol a fost insa usor depasit, caci s-a gasit imediat un suflet de artist care sa completeze sufletul de prozator-asamblor al subiectului nostru. Un suflet de artista, mai exact, caci slava pentru grafica de exceptie se cuvine Adinei, care, conform spuselor lui Bogdan, a si cistigat “premiul artistic” la concursul “SF Rom” cu o imagine din joc. Privind in galeria intitulata inexplicabil “Artwork” resimtim un sentiment de goliciune, caci din pacate concursul respectiv s-a pierdut in negura vremurilor si nu putem vedea celelalte lucrari care au participat si n-au cistigat. Imaginati-va doar cum erau alea, daca au fost declarate mai proaste ca asta (intutulata, intr-un act de suprema ironie involuntara, ugly_thing.jpg):

De ajuns insa cu Hostile Encounter. Desi e un capitol important din activitatea lui Bogdan, nu e singurul. Trebuie sa mentionam macar in treacat Solar OS, sistemul de operare scris de Bogdan in – ati ghicit – ASM. Dupa cum putem citi in parabola A Day with Solar OS, acesta este primul sistem de operare care pune o intrebare de ordin filosofic hackerilor:

Yes I know you can break me, but since it is so easy by design, there is also no glory in doing this… so why doing it? Creation and Construction my friend are much more honorable, valuable and harder to achieve than entering a simple house that has no locked doors or “windows”. Besides my core shell is read only, small, simple, fast and does not auto run nothing. How on this Earth are you going to convince me to compile and insert your code into my GUI Kernel?

Sublim. Un nou concept in sfera securitatii aplicatiilor: security by philosophy. OS-ul iti vorbeste de dincolo de “GUI Kernel” si face apel la umanitatea ta, ca o poezie de Elena Farago:

De ce m-ai prins în pumnul tau,
Hacker frumos, tu nu stii oare
Ca-s mic si eu si ca ma doare
De ce ma strangi asa de rau?

Fratii mei ceilalti se joaca
Cu hackerii toti, dar eu
Nu pot alerga ca dansii,
Ca sunt scris in ASM!

Bogdan Ontanu lucreaza in prezent la AVIRA, unde sper ca incearca sa patenteze aceasta manevra filosofica si s-o inglobeze in produsul antivirus al companiei.

Mai sint multe de zis despre acest Om Al Renasterii si din fericire avem unde: Bogdan are un forum dedicat ideilor si proiectelor sale. Recomand cu caldura parcurgerea sectiunii “Evolution of Human Race”, unde vizionarul programator ASM continua discutii de pe alte forumuri sub forma de monolog, atingind subiecte de interes maxim si dind solutii pentru iesirea omenirii din criza morala si materiala in care se afla. De exemplu, aici gasim o aspra critica la adresa CERN, care a construit degeaba LHC-ul. Daca l-ar fi consultat intii pe Bogdan, ar fi aflat in primul rind ca trebuia facut in ASM si in al doilea rind ca “whatever technological advancement we might achieve it does not matter until we do not solve our darkness inside“.

In caz ca n-ati inteles, va traduc eu: pentru Bogdan nu conteaza bosonu’ Higgs si compilatoarele, ca la el in minte e bezna.

Tags: , , , , , , , , , , , , , , , , , , ,

21 Responses to “Asamblorul”

  1. Tomis Says:

    Referitor la raspunsul lui Knuth (oare unde am mai vazut poza din profil?) http://codexpert.ro/forum/viewtopic.php?f=5&t=2217#p14386

    movaps este o instructiune obscura iar eu cred ca acest asamblor este folosit pentru lucruri interesante din domeniul IT, dar nu jocuri si alte prostii ci hacking.

    In plus ma mir ca asamblorul interesant nu a protestat la incercarea de a i se baga pe gat registri pe 128 de biti. Porcariile astea capitaliste de la Intel cu SSE-uri exista ca sa mai stoarca niste bani, oricum nu se folosesc pentru lucruri serioase.

  2. Mihnea Says:

    Se pare ca o parte din SSE se foloseste totusi pentru lucruri serioase, deoarece interesantul asamblor stie unele opcode-uri: xorps, cvtpi2ps, addss, rcpps etc. Singura problema e ca la prima vedere nu prea poti sa bagi si sa scoti chestii din registrii aia ca sa si folosesti opcode-urile in cauza, dar un programator ASM care se respecta poate incarca valori intregi cu una din instructiunile cvt* (dar doar packed, alea scalare sint pentru amatori) dupa care isi construieste singur floatu’ cu andps, orps si radacini patrate.

  3. thefatredguy Says:

    Railor, atunci cand a fost scris asambloru’ nu era SSE, numai MMX parca.

  4. Mihnea Says:

    Ba era, vezi mai sus. Cred ca stie si niste opcodeuri de sse2. Cu movu’ are el ceva…

  5. BloodRain Says:

    Mi se pare putin overqualified pentru a fi pus pe site. Nu cred ca un programator average e in stare sa scrie un RTS, fie el si 2D(presupun ca functioneaza cat de cat). 13.5 * Starcraft i-a dat cu overflow.

  6. Mihnea Says:

    Ia-l de pe site si vezi cit de cit merge. Orice student care a ajuns prin puterile proprii in anul 3 poate face asa ceva. Pe de alta parte, nu orice student ar spune ca le va da rusine lu’ blizzard in asm sau ca va trezi responsabilitatea sociala in crackeri cu os-ul lui scris in asm. Poti fi un imbecil sinistru chiar daca stii sa programezi cit de cit.

  7. Luca Says:

    Un nenea deapana cheastii despre munca depusa la Starcraft:
    http://www.codeofhonor.com/blog/tough-times-on-the-road-to-starcraft

  8. Mihnea Says:

    Un bou. Daca ar fi scris totul in asm, ar fi terminat sigur in 2 luni. In plus, ar fi trebuit sa ceara sfatul codexpertilor in legatura ca listele alea; Cucu le-ar fi spus imediat ca-s pentru tocilari, iar Silviu le-ar fi propus sa le inlocuiasca cu structuri.

  9. Luca Says:

    […]And some link fields were even stored in C unions with other data types to keep memory utilization to a minimum.

    So the game would blow up all the time. All the time.

  10. BloodRain Says:

    “Poti fi un imbecil sinistru chiar daca stii sa programezi cit de cit.” – asta mi se pare destul de ciudat, dar evident se cam aplica in cazul de fata…

    “Orice student care a ajuns prin puterile proprii in anul 3 …” – Am jucat putin jocul. Supraestimezi ce te invata in facultate. Eu sunt in anul 4. Probabil multi dintre cei pe care ii cunosc n-au ajuns pe forte proprii, dar stiu putini care ar reusi sa scrie asa ceva(fara sa le ia 2 ani).

    Tot cred ca e mult mai bun decat cei de care s-a facut misto pana acum pe aici. Daca tipul chiar are impresia ca ce a facut el pe acolo e 3% din starcraft, red alert sau age of empires are o problema grava, dar totusi de cati ca silviu ardelean crezi ca e nevoie ca sa faca ceva asemanator?

  11. Luca Says:

    Chestiunea este ca era copil cred cand se apucase de joc. Adica au trecut 11 ani totusi. Tipul e mai “deosebit”, de pilda e amuzanta aia cu “The Large Hadron Colider”.

    Clar ca e above average in programare insa cred ca site-ul asta e si pentru aia mai priceputi dar care trag chiftele.

    Si cred ca e cu atat mai amuzant cand gasesti o persoana, zic eu talentata totusi, care se deda la cugetari filosofice de weekend (precum cele de dupa prea mult vin). Curat caz de Dr Jekyll and Mr Hyde!

    Oricum sunt convis ca avem ceva de invatat din ambele aspecte ale tipului. :)

  12. Mihnea Says:

    What he said (tocmai scriam si eu acelasi lucru). Sint de acord ca, spre deosebire de Silviu, asta pare sa aiba mai mult de 2 neuroni, dar e tot degeaba daca din ei rasar idei d-astea cu proiectu’ Venus, eliminarea beznei interioare, omnipotenta ASM-ului si OS-uri cu FPS counter.

    Sau altfel spus, pentru mine faptul ca asta e mai bun decit ceilalti protagonisti de pina acum sporeste valoarea comica a timpeniilor pe care le emite.

    Edit: nu e bun criteriul ala cu 2 ani, ca eroului nostru i-a luat cel putin atit sa produca ce se vede pe site.

  13. dezea Says:

    ontanu e tatal asm-ului din ro si poate chiar international.. asta pentru ca nu cred ca mai exista vreun om asa de dedicat in a folosi asm. si eu il folosesc intens dar in proiecte ceva mai mici si mai putin complexe. sa il folosesti pentru a face un sistem de operare, joc rts sau compiler e nebunie curata!.. felicitari

  14. thefatredguy Says:

    Daca ontanu e tatal asm-lui (din ro si international), se pune intrebarea cine e mama asm-ului (din ro si international) ?

  15. dezea Says:

    thefatredguy, pragmaticule, daca e insurat.. mama asmului e nevasta-sa, asta daca asmul nu e rezultat din alta casatorie. nu mai diseca atat niste cuvinte pentru ca sunt doar cuvinte, nu cifre.

  16. silea Says:

    dezea, ne mixezi si noua ceva?

  17. dezea Says:

    daca nu te deranjeaza ca mixez doar in limbaj de asamblare a sunetelor :))

  18. i8080 Says:

    Am incercat (de cateva ori) sa ma “register” in forumul lui Bogdan ( oby.ro/os/ ) insa n-am reusit.
    Scriptul de captcha ma tot avertizeaza ca am introdus gresit codul…

    Nu inteleg cand a avut timp Bogdan sa scrie Solar_OS ?! (caci o viata de om are doar 50 de ani)

  19. autohtonul Says:

    cred ca silea a incercat o gluma cu referinte Knuth-iene vis-a-vis de asamblorul (M)MIX.

  20. Toto Says:

    Pe cand o sa recunoasteti ca aveti o frustrare cam mare legata de faptul ca omul programeaza in assembler si ca ii place asta? Ce vreti ma de la el? N-are voie sa spuna ca face jocuri mai tari decat cele care exista? Si ce daca spune asta? Nu cumva e mai deranjant ca sunteti ca niste babe barfitoare neputincioase?

    Sau trebuie sa-si ceara aprobare de la voi plus stampila pe aviz?

    Voi credeti ca daca faceti mistouri de el sunteti neaparat calificati drept mai buni/destepti/frumosi ca el? Nu inteleg: ce pana mea vreti sa obtineti? Tineti neaparat sa dati intr-un om care cel mai probabil nu v-a facut nimic rau? In felul asta aratati voi lumii inconjuratoare ce oameni normali sunteti voi si ce inteligenta acceptata social aveti?

    Omul are si partea rea din el, care daca predomina si are tehnologie pe mana, ghiciti ce se intampla: toate cacaturile posibile pe care le vedem in jur. In Romania, ca aveti voi ca programatori salarii mari si o duceti bine fata de restul nu inseamna automat ca le si stiti pe toate. Sedeti jos la locul vostru, nu va ambalati. Nu v-a cerut nimeni sa-i cititi poeziile, lucrarile literare sau ce mai are el. Dar voi vorbiti sa nu taceti, sunteti, per ansamblu, un fel de validator de-al lui Bogdan. Va puteti intitula ca niste software-uri pline de bug-uri: Bogdan’s Unwanted Buggy Validators :)))

    Programatorii vietii, vedeti-va de treaba.

    Te-ai mai apucat si tu, tembe, sa scrii ditai articolul in care bestelesti munca omului degeaba. Ai vrea sa-l anulezi, dar nu poti, asta-i problema.

    Cum zicea Ceausescu: “Asezati-va cuminti la locurile dumneavoastra”

  21. Mihnea Says:

    https://en.wikipedia.org/wiki/Poe%27s_law

Leave a Reply

Optionally add an image (JPEG only)