Cum ajungem sa folosim un soft cu bug-uri Partea 2

16 11 2009

Partea 1

Pentru cine nu a citit prima parte, am asemănat creierul uman cu un calculator. O paralela simplistă e adevărat dar își face treaba în direcția care mă interesează.

Voi continua cu modul în care folosim rutinele provenite din diverse surse de care momentan voi face abstracție. Fiecare program sau principiu uman urmează un anume ciclu de dezvoltare. Se va pleca de la o versiune de baza pe care se vor face teste și în funcție de problemele aparute se fac revizii. La prima vedere acest sistem de lucru este suficient de satisfăcător. Însă trebuie să fim conștienți că ascunde anumite capcane.

În primul rând programele nu își arată defectele la primul test, ele uneori pot conține erori ascunse ce apar doar când sunt întrunite x condiții. Condiții ce de multe ori converg foarte rar, dar această raritate statistică care la un numar mare de indivizi va funcționa, la un individ poate avea consecințe dezastruase. Cu alte cuvinte, specia supravietuiește bine așa dar ție nu îți va pica bine să fii în rata de rebuturi fie ea și 6 sigma.

Procesul de validare al codului pe care creierul nostru îl execută este foarte util pentru operațiuni e complexitate mică și repetabilitate mare gen dus lingura la gură. În schimb în situații rarisime cum ar fi când crești un copil, problema e că programele după care vei acționa sunt cam netestate.

Astfel că riscurile sunt mari, e nevoie de a alege programe deja experimentate de un numar mare de persoane ca viața ta nu te ajută să validezi.

O alta capcană des întâlnită este dată de presupunerea că un program rulat destul de des este corect. Fază nașpa e că nu poți valida un program ca fiind corect decât când ai înteles perfect cum funcționează. Ori acest lux nu îl avem de cele mai multe ori, pentru ca folosim metode empirice de ce le mai multe ori. Cea mai dificilă situație este atunci când considerăm un program ca fiind corect. Îl aplicăm în asociere cu alte principii si îl folosim în demonstrații. Astfel o lipsă de întelegere completă a fenomenelor pe ne poate duce în situația de a ne păcăli singuri.

Cam cum ne păcălesc magicienii, când îți stabilesc niște premise false care te fac să nu înțelegi trucul.

Ce metode avem pentru a ne apăra de aceste capcane? Pai nu sunt simple si nu pot fi explicate, dar așa ca niște linii ajutătoare eu prefer să pun la îndoială cât mai des posibil orice principiu. Să fiu deschis la noile informații indiferent de sursă, că nu știi când cineva a văzut o altă fațetă a lucrurilor.

Cel mai rău lucru este să cataloghezi ca înțeles un fenomen neînțeles. Să stabileși empiric ceva ce nu ai demonstrat și teoretic sau stiințific. Cam cum considera lumea că a înteles cum e cu baia în evul mediu. Flexibilitatea în gandire este de mare importanță pentru a te putea adapta la un mediu puțin cunoscut și destul de dinamic ca acesta în care ne învârtim noi.

Urmează partea a 3-a.

Anunțuri




paralela minte-calculator partea1

16 11 2009

Creierul este un biocalculator.

Eu sunt programator și făcând o paralelă între un calculator si creierul uman am tras următoarele concluzii.

Un calculator poate fi folosit la două lucruri.

1. Să scrii cod ce urmează a fi executat.

2. Să execute codul.

Voi încerca să mențin paralela în termeni cât mai puțini tehnici, că este vorba de niște idei principiale.

Dacă mintea execută cod, poate să o facă pe un singur fir de execuție, unele minți mai performante pot părea că rulează două programe în paralel dar este ceva iluzoriu. Pur și simplu comută între ele foarte repede. Acesta este un lucru foarte important, o sa vă spun de ce.

Asta face ca mintea noastră să fie ocupată 100% cu un singur fir al gândurilor într-o unitate de timp, nu spun secundă sau minut.

Atunci cînd nu execută cod ea poate fi programată, sau cu alte cuvinte să învețe noi rutine ce le va folosi în situațiile viitoare. Programarea minții se poate face pe doua căi.

1. Preia informație din mediul înconjurător, cu ajutoarul senzorilor pe care o va combina în modul ei sofisticat folosind și rutinele deja învățate.

2.Un programator scrie cod ce apoi va putea să fie utilizat.

Când spun programator, ma gandesc la o sursă de informație ce poate fi influență divină sau sinele nostru.

Daca exclud această variantă tot ce ar rămîne este că suntem niște roboți foarte avansați care învață din mediu înconjurător. Fără existența unei surse de informații externe și care cumva să transceadă nivelul minții nu ar fi posibil ca din minte să vină ceva propriu. Ea ar reacționa pur și simplu la stimulii externi.  O situație pe care momentan eu personal nu sunt pregatit să o accept.

Stabilind aceste premise, trag concluzia că singurul momnat de valoare e când scrii tu codul. Când gandești tu cu capul tau ceva. restul esti robot. În mare nu am zis ceva nou dar am un scop totuși.

Partea a doua va fi despre cum putem lăsa programe eronate  sa ne conducă viața.