de ce nat-ul e o idee proastă

sâmbătă, 25 feb. 2012, 11:53

În ciuda faptului că e în uz de circa douăzeci de ani și în pofida aceluia că cea mai mare parte a Internetului îl folosește în cadrul rețelelor sale (de obicei locale), NAT-ul e o idee proastă. Invers, deși folosirea NAT pe scară largă e o idee teribil de proastă, cea mai mare parte a Internetului îl implementează [i] sub semnul unei ignoranțe crase.

Network Address Translation e un mecanism prezent în majoritatea routerelor din comerț, mecanism ce prelucrează adresele sursă și/sau destinație într-o comunicație între două entități, spre a le „deghiza” [ii] în raport cu entitatea-partener, care poate fi sursa în cazul adresei destinație și vice-versa în celălalt caz. În practică este mai des întâlnit cazul translatării adresei sursă pentru date care pleacă dintr-o rețea formată din mai multe entități ce partajează o singură adresă publică, cazul invers fiind cunoscut sub numele de port forwarding. (mai mult…)

  1. A se nota că folosesc termenul de NAT, deși mă refer în egală măsură și la omologul său PAT folosit peste TCP. []
  2. Termenul corect este „masquerading”. []

the legend of kyrandia

luni, 20 feb. 2012, 21:53

Începuturile genului aventură point-and-click – în care jucătorul își direcționează avatarul folosind aproape exclusiv mouse-ul – se regăsesc în timp pe undeva pe la jumatea anilor ’80, sub forma unor titluri suficient de obscure încât să-mi fie lene să le documentez acum în scriptele Cărămizilor. Cert e că primul exponent serios al genului a fost Maniac Mansion-ul de la Lucas Arts, urmat în 1990 de primul Monkey Island. Apoi cei mai în vârstă din gameri sunt familiari cu perioada de înflorire a genului, pentru că eu unul jucam (sau măcar auzeam de) Beneath a Steel Sky și Simon the Sorcerer și în 1997 când mi-am cumpărat primul PC.

Apropo de Simon the Sorcerer, The Legend of Kyrandia este un membru mai puțin cunoscut al seriei de jocuri de aventură, însă care are destule în comun cu cel dintâi, sau invers. Primul aspect cu care cel din urmă iese în evidență față de orice alt joc al genului este cel legat de echipa din spate, mai exact Westwood Studios, adică aceiași care au produs Dune II, seria Command and Conquer și Blade Runner. Ca o consecință, al doilea aspect e acela al calității uneori cinematografice a materialului produs de aceștia.

Acțiunea din The Legend of Kyrandia are loc într-un univers fantastic numit Fables & Fiends, în care un bufon pe nume Malcom le face felul regilor ținutului, după care îi caută pe vrăjitorii care îl băgaseră la pușcărie anterior – pentru că de-aia-s buni măscăricii, să îi bagi la temniță – pentru a le face și lor rând pe rând felul, pentru că de-aia-s buni măscăricii, să le facă felul vrăjitorilor plini de aere. Plus că ce poveste medievală ar avea vreun strop de credibilitate fără un joker malefic.

Ei și uite-așa unul din vrăjitori, Kallak, e prins de Malcom și transformat în piatră fix înainte ca Brandon, un fecior oarecare, să se întoarcă acasă de nu știm unde, Kallak fiind cică bunică-său sau cam așa ceva. Și nici nu trec două minute de joc și Brandon află că este ales, adică nu ales, ci Alesul™. E ales evident să salveze ținutul, adică natura, de Malcom cel distructiv și să-i ardă individului vreo două scatoalce în gură și să îl învețe minte. Firește că Brandon, confuz cum e el ca orice adolescent, nu știe ce să facă și începe să se plimbe prin ținut de nebun, căutând ajutor. (mai mult…)

cu cofunctori și matrice inversabile

duminică, 19 feb. 2012, 15:37

Articolul despre atom ne-a lăsat în pom cu o particularitate destul de neplăcută (și care dă spre inconsistență) a sistemului prezentat: toate reprezentările abstracte din cadrul acestuia sunt cu precădere duale, deci binare [i], pe când abordarea categorială e una ternară. Cu alte cuvinte, categoria ca construcție naturală a matematicii e formată din obiecte (notate de obicei \text{Ob}\;\mathcal{C}), săgeți între obiecte (notate de obicei \text{Hom}_{\mathcal{C}}(A,B)) și o operație \circ de compunere a săgeților care respectă două axiome [ii].

Definiția o generalizează pe cea a monoidului, care-i în fapt și la urma urmei o categorie cu un singur obiect care-i de fapt o mulțime M, ale cărei elemente sunt săgeți în categoria dată, iar compunerea e operația binară de compunere a monoidului. Definiția generală a monoidului dă de fapt un triplet format dintr-un obiect și două morfisme, într-un mod analog cu monadele, dar astea nu-s legate de discuția noastră. (mai mult…)

  1. Și iată cum am comis și erezia de a folosi numere în cadrul unor teorii care fac abstracție de acestea la un nivel fundamental. []
  2. Mai exact asociativitatea operației și existența unui element neutru []

anatomia modelului proprietar

sâmbătă, 18 feb. 2012, 20:00

Cuvântul „proprietar” are în limba română un înțeles înrudit cu, însă diferit de cel folosit în cele ce urmează. Proprietarul este astfel cel care deține, posesorul, stăpânul. Ideea de software proprietar sau de model proprietar al software-ului este împrumutată din englezescul „proprietary software”, pentru care nu știu să existe o altă traducere în română.

O analiză a modelului proprietar, cu avantajele și dezavantajele sale, nu ar putea exista în lipsa unei plasări în contextele spațial și temporal a acestuia. Spațiul este pur și simplu economia de piață, cu agenții dânsei (i)raționali și în număr foarte mare [i]. Contextul temporal merge în ambele sensuri, cel trecut fiind exact, iar viitorul fiind alcătuit dintr-o mulțime de perechi eveniment-probabilitate.

Se întâmplă astfel că software-ul s-a încadrat destul de bine în clasa proprietății intelectuale, el fiind mai aproape de ceva abstract precum poezia decât de ceva concret; vorba aia, dintr-un punct de vedere pur teoretic vorbind softurile nu se uzează în timp. Deși pe vremea primelor calculatoare programabile nu se gândea mai nimeni să scoată bani din software, programarea fiind o chestie destinată exclusiv specialiștilor în arhitecturi de calculatoare (adică acelora care și proiectau mașinile de calcul), odată cu evoluția lingvisticii computaționale și a puterii de calcul o serie de indivizi s-au gândit că soluțiile software pot fi vândute pentru cele câteva sute sau mii de calculatoare existente în anii ’70. Astfel s-au scos bani buni din sisteme de operare precum variante Unix sau din programe pentru inginerie sau calcul de înaltă performanță, deci cam din singurele lucruri la care erau folosite calculatoarele pe vremea aia. (mai mult…)

  1. Cu excepția cazurilor când sunt foarte puțini, de exemplu unul singur. []

despre atom

duminică, 12 feb. 2012, 14:42

Cu toate că mecanismul abstractizării se poate dovedi a fi o durere în proverbialul posterior în cazul unor construcții complexe cum este cea a limbajului, conceptualizarea [i] este în general o unealtă deosebit de puternică de descriere a universurilor, fie ele reale sau închipuite.

Acest fapt implică posibila folosire a unor mijloace de reprezentare mai la îndemâna gânditorului de rând decât formalismele seci prezente în fizică. Abordarea are bineînțeles avantaje și dezavantaje, un avantaj fiind acela că nu limitează definiția atomului la cea fizică, definiție care oricum se bate cap în cap cu cea inițială [ii], deoarece atomii descriși în tabelul lui Mendeleev pot fi scindați prin fisiune nucleară în particule așa-zis subatomice, termenul de „subatomic” fiind în sine un fel de oximoron. Dezavantajul principal e acela că am putea risca să intrăm în contradicție cu metodele științei, dat fiind faptul că uneltele pure ale gândirii (logica și matematica) pot să ducă foarte ușor la contradicții între lumea abstractă și cea reală, deoarece de la Gödel știm că nu există sisteme de reprezentare complete. Îmi e greu să cred că vom ajunge acolo, însă. (mai mult…)

  1. Apropo, conceptul asociat unui obiect dat poate fi descris foarte elegant în termeni categoriali. Astfel, un functor fixat ar putea fi văzut drept operator de conceptualizare. Poate nu-i întâmplător faptul că termenul de „functor” a apărut prima dată într-o carte de lingvistică. []
  2. Grecescul „atomos” referă prin definiție la „indivizibil” sau „care nu poate fi tăiat”. []