luni, 11 iunie 2007

Combustia spontana

Aţi auzit de fenomenul de combustie spontană? Citez din ziarul Evenimentul: "Combustia umană spontană reprezintă aprinderea sau fumegarea corpului în absenţa unor surse externe de ardere. În combustia spontană clasică, arderea corpului este mai completă decît ar putea fi obţinută chiar şi în interiorul unui crematoriu.". Cum ar fi să te trezeşti din senin cuprins de flăcări :D? Cam nasol, nu? Mai multe informaţii găsiţi: aici sau aici!

Keep out of alcohol!

Evolutie sau creatie?

Ce părere aveţi despre teoria evoluţionistă a lui Darwin ? În ştiinţă a început tot mai mult să prindă ideea creaţionismului, al design-ului inteligent. Adică se adună din ce în ce mai multe dovezi împotriva teoriei evoluţioniste, sugerând posibilitatea ca Universul să fi fost creat de o Fiinţă Inteligentă. Voi ce părere aveţi ? Mie mi se pare mai logic să fi existat o Fiinţă Inteligentă la început, decât o grămadă de materie inertă, neînsufleţită, care printr-o explozie (aşa, dintr-o dată) să fi dat naştere Universului, în toată complexitatea lui, chiar şi în miliarde de ani. Mi se pare ilogic ca viaţa să apară din ceva mort. În acelaşi timp, trebuie să admitem că ceva a existat prima oară, o primă cauză, pentru că din nimic nu poate să apară nimic. Nimicul nu poate crea. Deci, dacă ceva a existat ca primă cauză, mi se pare mai uşor de acceptat ca această primă cauză să fi fost una inteligentă. E de neconceput pentru mine cum poate să existe materie fără cauză. Nu la fel de neconceput este să existe o cauză inteligentă, la rândul ei, fără de cauză... Mai mult, sunt unele animale care "sfidează" teoria evoluţiei, cum ar fi ciocănitoarea şi altele. Să presupunem că ea ar fi evoluat în timp. Ciocănitoarea are un înveliş elastic în jurul creierului, ca un burete, care amortizează şocurile. Dacă nu ar fi existat acolo acest înveliş de la început, în forma în care îl găsim astăzi, atunci ciocănitoarea şi-ar fi zdrobit creierii cand ar fi dat cu ciocul în copac în căutare de hrană şi ar fi murit. Aşa că astăzi n-ar trebui să existe ciocănitoare, pentru că o fiinţă moartă nu mai poate evolua, logic :). Şi totuşi există ciocănitoare şi nu-şi spulberă creierii prin copaci. Ăsta e doar un exemplu. Ele sunt multe. Vă sfătuiesc să vedeţi documentarul "Incredible creatures that defy evolution". Se găseşte şi pe eMule... Aştept părerile voastre în continuare...

marți, 5 iunie 2007

Firefox adauga TBODY automat la tabele

Azi am dat peste o chestie interesantă la muncă. Lucrând cu JavaScript şi DOM, am observat că Firefox adaugă automat tag-ul TBODY la orice tabel. De exemplu, dacă ai următorul cod:

<table><tr><td>test</td><td>x</td></tr></table>

Firefox îl vede în structura sa DOM ca fiind:

<table><tbody><tr><td>test</td><td>x</td></tr></tbody></table>

Asta îţi poate da ceva bătăi de cap până te prinzi de ce un cod js se comportă altfel în IE decât în FF.... Şi cine ştie ce alte şmecherii mai ştie Firefox :)

miercuri, 23 mai 2007

Tonic eficient pentru programatori :)

Îţi dezvălui reţeta mea contra oboseală (recomandat pentru programatori şi cei care stau mult în faţa calculatorului). Dacă vrei să te simţi mai odihnit, cumpără-ţi următoarele de la o farmacie:
1. Panax Ginseng (preferabil cu capsule de 700mg fiecare). Preţul ar trebui să fie de maxim 11 RON. Se iau două capsule pe zi (preferabil dimineaţa şi la prânz)

2. Spirulină de la OZONE (500mg per capsulă). Preţul e în jur de 9 RON. Se iau 4-8 capsule pe zi (recomandat 2 dimineata, 2 la pranz şi două seara).

3. Multiminerale, FARA vitamine (sunt făcute în SUA, găseşti pe la farmaciile naturiste). Preţul e în jur de 9 RON.


Panax Ginseng şi Spirulina sunt produse 100% naturale (extract de plante), aşa că don` worry, be happy :). După 2-3 zile de tratament ar trebui să te simţi mai odihnit. Iar dacă vrei ceva pentru ochi, îţi recomand Eridiarom (extract de afine) sau Vitavision (tot pe bază de afine).

Spor la treabă!

duminică, 20 mai 2007

Mate-Info sau Politehnică...pentru liceeni...

Pentru că şi eu eram nehotărât la vremea mea unde să ştudiez, la Mate-Info sau automatică, încerc să dau nişte sfaturi pentru absolvenţii de liceu.


În primul rând, gândeşte-te pe ce vrei să mergi (programare, hardware sau ambele). La Politehnică se pune mai mult accent pe parte de hardware, ai materii ca electrotehnica, chimia, fizica, mate la greu etc. Deci pentru "softişti" nu recomand Politehnica. Dacă te interesează hardware-ul sau vrei şi programare şi hardware, atunci mergi la Politehnică.


În al doilea rând, gândeşte-te ce vrei să faci pe timpul facultăţii. Dacă vrei să te axezi doar pe studiu, e ok să mergi la Poli, dar dacă ai planuri de angajare în timpul facultăţii, e exclus. N-o să ai timp şi de una şi de alta şi în mod sigur o să ai probleme cu restanţele...Programul e mult mai strict la Poli decât la Universitate, se ţine cont mai mult de prezenţe, ai mai mult de învăţat (şi, în mare parte, lucruri care nu-ţi vor folosi în viitor), pe când la Mate-Info programul e lejer, cursurile nu sunt obligatorii (eu nu merg nici la seminarii şi laboratoare, decât când e nevoie şi mă descurc aşa), deci poţi să ai şi un mic job. Despre cursurile de la Mate-Info, vă spun cam ce se face în primul an: algebră, analiză, geometrie analitică, programare procedurală ( C ), programare orientată pe obiecte ( C++ ), algoritmi şi structuri de date, algoritmica grafurilor, limbaje formale şi automate, logică matematică şi computaţională, arhitectura sistemelor de calcul (uite şi ceva hardware pentru doritori, facem şi ceva limbaj de asamblare aici).


Gândeşte-te bine!

PHP şi sănătatea...

Ţi s-a întâmplat vreodată să dai peste vreun bug tâmpit şi să te chinuieşti 5 ore să-l depistezi, după care îţi dai seama că ai uitat o literă pe undeva sau că IE are un bug? Ţi s-a întâmplat să vrei să arunci PC-ul pe geam? Să blestemi calculatorul cu tot neamul lui şi cu cine l-a inventat ? Să te întrebi la ce mai există Microsoft? Mi s-a întâmplat mie azi... Mi se întâmplă mai rar, dar bine :D... Aşa că, dragă cititor, PHP dăunează sănătăţii, te scoate din minţi uneori. Programarea, în general, cam dăunează. Mai bine învăţam să tricotez ciorăpei pentru bebeluşi :)... Ce frumos ar fi un birou cu salon de masaj în camera cealaltă, frigider plin de răcoritoare, muzică bună... (acum Eros citeşte şi începe să construiască un salon de masaj =))).

Clase sau funcţii, marea dilemă...

Dacă te întrebi la ce să te mai chinuieşti cu o clasă când poţi face un include cu o grămadă de funcţii, încerc să-ţi dau câteva motive în favoarea clasei:

  1. O clasă este o structură care poate încapsula uşor variabile (adică proprietăţi) şi funcţii (adică metode). Diferenţa dintre un fişier de include cu variabile şi proprietăţi este că nu poţi crea două "instanţe" ale funcţiilor şi metodelor. Mai precis, să zicem că am o clasă db, care se ocupă cu conectare şi operaţii asupra unei baze de date. În proiectul meu trebuie să lucrez la un moment dat cu două baze de date, mai precis am nevoie să fac o copie a unei tabele, aşa că dintr-o bază fac selecţii şi în cealaltă fac inserări ale rezultatelor. Având o clasă, chestia asta e foarte uşor de făcut. Doar creez două obiecte de tip db cu proprietăţile corespunzătoare fiecăruia (host, user, db, pass, conexiune persistentă sau nu etc.). Apoi pot să fac:

    $continutTabel=$db1->select("tblUseri","nVarsta, cUsername");
    $rezultate=$db1->arrayAsociativ($continutTabel);
    for($i=0;$i<count($rezultate);$i++)
    $db2->insert("tblUseri","nVarsta, cUsername", array($rezultate[$i]["nVarsta"], $rezultate[$i]["cUsername"]));


    Şi aşa am făcut o copie de conţinut de la o bază de date la alta. Treaba se schimbă dacă aş fi avut doar un include cu nişte funcţii şi variabile (însă nu devine prea complicat dacă transmiţi ca parametru la orice query link-ul corespunzător la baza de date). Exemplul nu e foarte concludent, dar sunt cazuri în care folosirea claselor e mult mai potrivită. O să mă mai gândesc la nişte exemple.

  2. Un motiv simplu: cod mai structurat şi mai lizibil. În plus, clasele au capacitatea de moştenire, ceea ce poate fi "handy" uneori. Deci, dacă am o clasă de bază, pot crea o altă clasă care să moştenească proprietăţile şi metodele clasei de bază şi să le extindă cu noi metode şi proprietăţi.

  3. Este mult mai simplu să transmiţi proprietăţile unui obiect oarecare prin sesiune decât să salvezi o grămadă de variabile pe sesiune. Folosind codul $_SESSION["myobject"]=serialize($obiect); unde $obiect e o instanţă a unei clase, proprietăţile acestui obiect la momentul dat sunt salvate în variabila de sesiune myobject. Apoi, având această variabilă, la o schimbare de pagină sau refresh, pot să fac $obiect=unserialize($_SESSION["myobject"]); ceea ce îmi reconstruieşte obiectul iniţial cu proprietăţile pe care le-am salvat. Acum, dacă în include-ul meu aveam 50 de variabile de care am nevoie, ar trebui să le salvez pe toate în sesiune, rând pe rând (doar dacă nu le am într-un array, dar atunci codul deja devine mai greoi şi mai ilizibil în include), ceea ce e muncă de sisif!

  4. Este mult mai uşor să grupezi funcţii şi metode sub un anumit nume. Să luăm iar exemplul cu clasa db. La fiecare apel de functie aş avea $db-> ca prefix. Asta mă ajută să înţeleg uşor despre ce fel de operaţie e vorba (o operaţie asupra bazei de date) atunci când citesc codul şi să ştiu în ce clasă să mă uit ca să găsesc codul. Pe când, dacă vreau să fac cod cât de cât lizibil într-un include, aş avea nume de metode gen db_select, db_insert etc. La clase nu mai trebuie să mă mai ocup eu de astea, pentru că nu e nevoie.


Pe scurt, uite care-s avantajele claselor: capacitatea de a crea mai multe instanţe, fiecare cu proprietăţile ei; capacitate de moştenire; cod mai lizibil şi mai structurat; capacitate de (de)serializare a obiectului; funcţia constructor care se apelează automat la crearea obiectului, fără să o mai apelezi matale (ştim noi că programatorii sunt mai leneşi).

Sper că ai înţeles acum :)