Claudiu Persoiu

Blog-ul lui Claudiu Persoiu


Archive for 24 October 2008

Windows XP Service Pack 3

without comments

Microsoft a lansat de curand, SP3 pentru Windows XP.

Cum spuneam intr-un blog anterior, asta arata ca Microsoft inca nu va renunta la acest sistem de operare etc.

Intr-o zi, cineva a incercat sa acceseze o anumina aplicatie de la o anumita banca (bancile in general folosesc token, un sistem pentru autentificare, nu vreau sa spun decat ca acesta se poate genera ori din software cu un program sau hardware cu un dispozitiv), a incercat sa se autentifice asa cum face aproape zilnic dar… nimic, eroare dupa eroare. Dupa suficient timp pierdut si destule telefoane la banca a reperat si problema, sofware-ul nu este compatibil cu SP3.

Cum ce s-a intamplat mai sus nu m-a afectat chiar de loc sa va povestesc o alta problema care am intalnit-o eu personal. A trebuit sa fac un proiect zilele trecute folosind serverul Oracle (am folosit 10g). Din pacate… nu am reusit sa-l fac sa functioneze normal pe desktopul meu, am incercat pe laptop… la fel. Totusi in mod ciudat dupa ce l-am instalat pe o versiune de Win cu SP2 ca prin minune a mers (Win original, acelasi ca pe laptop).

Trebuie sa recunosc ca de mult nu am mai vazut un update care sa faca atat de multe probleme ca SP3, nu spun ca nu au mai fost si altele, dar… se pare ca povestea continua. Voi decideti daca faceti pasul spre SP3 sau… nu. Oricum putea sa fie si mai rau, daca nu mai pornea Apache sau MySQL?

Written by Claudiu Persoiu

24 October 2008 at 10:38 PM

Posted in Diverse

Tagged with

In ce mai programam azi?

without comments

M-am saturat, sunt mult prea multe limbaje de programare si scripting in ziua de azi.

De exemplu, daca vrei sa faci un site nu foarte complicat ai nevoie de:

  • HTML
  • CSS
  • JavaScript
  • PHP sau alt limbaj server-side.

Si totusi… aplicatiile web sunt totusi simple.

Poate o sa spuneti ca nu este o problema atat de mare pentru ca acestea au stuctura si “parinti” comuni.

Adevarat, sa incepem cu un limbaj cum este C (aparut in anul 1972). In anii “80 lumea avea sa cunoasca o noua abordare in lumea programarii, universul orientat obiect. Si a aparut C++ (1983). Totul era bine daca lucrurile ramaneau asa simple, dar nuu, a aparut si Objective C, un alt descendent obiectual (folosit de Apple in principal). Pentru ca lucrurile nu erau destul de “simple”, cei de la SUN s-au gandit sa faca un alt limbaj care avea sa fie obiectual in intregime. Si asa a venit pe lume Java. Microsoft au incercat sa preia acest limbaj dar din pricina unor probleme de licenta s-au hotarat sa faca limbajul lor mai bun si mai destept decat ce era deja pe piata. Iar dupa ceva vreme s-a nascut Fat-Frumos, sau C#. Si toate acestea pornind de la un singur limbaj…

Multi au impresia ca Pascal a murit undeva pe la finalul “80 inceputul “90, nu va inselati, dar inainte sa moara s-a transformat in Delphi, o versiune de Pascal orientata obiect.

Iar ca totul sa fie mai complicat, limbajul C# a fost proiectat de cel care a realizat compilatorul Turbo Pascal de la Borland.

Adevarul este ca nu s-a ajuns la un standard si nu cred ca se va ajunge prea curand, chiar daca majoritatea OS-urilor au la baza C.

Mi se pare inuman sa trebuiasca sa inveti atatea limbaje de programare, iar in functie de ce ai nevoie in general schimbi limbajul, iar daca schimbi OS-ul de cele mai multe ori trebuie sa schimbi si limbajul (mai putin la limbaje cum ar fi Java). Incep sa cred ca este mai bine ca un limbaj din trecut sa dispara, pana la urma limbaje precum Cobol (1959) inca se mai folosesc, iar mult mai tanarul Pascal s-a dovedit depasit.

Oricum atunci cand invatati un limbaj sa nu aveti impresia ca o sa ajungeti sa deveniti un expet universal in el, un limbaj simplu cum este PHP are posibilitati nebanuite de multi si chiar daca trecem cu vederea lucruri cum ar fi PHP-GTK si PHP-QT tot mai ramand o groaza de framework-uri si module optionale.

In cazul unui limbaj cum este C nici nu mai are rost sa vorbim, acesta poate sa fie folosit pentru aproape orice, incepand de la drivere pana la pagini web inclusiv serverele pe care acestea ruleaza.

Pana si limbaje de scripting care pana nu de mult erau considerate “de jucarie” cum este JavaScript, pana si acestea au posiblitati nebanuite astazi, de la pagini web, pana la plug-inuri FireFox si nu numai.

Chiar si cand vine vorba de office, MS Excel suporta VB Script, pe cand Open Office suporta JavaScript.

O data ce ai intrat pe fagasul acesta al programarii, ar trebui sa ai multa rabdare si pasiune, altfel nu o sa iesi prea bine…

Written by Claudiu Persoiu

20 October 2008 at 6:53 PM

Posted in Diverse

Tagged with , ,

Drivere generice?

without comments

Multi nu inteleg ce inseamna un drivere generic desi ne lovim atat de des de acest termen.

Un driver generic, este un driver general. Sa zicem ca avem o placa video, driverul generic inglobeaza caracteristicile comune, sau mai bine zis, caracteristicile minime comune pentru a putea folosi componenta.
Microsoft Windows in general instaleaza drivere generice pentru placa video, de sunet si retea.

Din pacate aceste drivere nu ofera suport complet de cele mai multe ori, de ex la multe placi video driverul generic nu suporta functii avansate 3D, sau in cazul multor laptopuri rezolutia nativa. Fata de un CRT, monitoarele LCD functioneaza optim doar pe o singura rezolutie sau pe variatii la aceleasi proportii.

Concluzia, mergeti frumos pe site-ul producatorului de chipset (ATI, NVIDIA etc.) si instalati ultimul driver, acesta nu doar ca o sa va permina sa jucati jocuri mai noi, dar chiar in aplicatii office calitatea va fi mai buna.

Written by Claudiu Persoiu

20 October 2008 at 6:11 PM

Posted in Hardware

Tagged with

Cum scriem cod frumos

without comments

Inca de la primele bucati de cod scrise de programatori au aparut si primele probleme. De cand au aparut primii programatori a aparut si codul scris urat.

Cred ca fiecare carte respectabila de programare care explica de la inceput un limbaj se afla doua elemente importante, comentariile si reguli generale de scriere.

Eu la inceputurile mele de programare evident nu puneam nici un comentariu si nici nu ma omoram sa aranjez codul, toate astea pentru ca ma interesa sa mearga si… cam atat (mai ales ca nuprea mergeau din prima). Cu cat incepi sa lucrezi mai mult pe bucati de cod scrise de altii, incepi sa intelegi de ce sunt o inventie atat de buna comentarile si aranjarea in pagina.

De ce sa pierzi vremea ca sa aranjezi codul si sa-l comentezi? Hmmm, din perspectiva mea, pentru ca nu-mi place sa pierd vremea cautand bug-uri si incercand sa-mi dau seama ce am facut acum o gramada de vreme, sau chiar saptamana trecuta, orice programator prefera sa scrie cod nu sa-l repare. Munca pe care o depui acum o sa-ti fie rasplatita in timp.

Sa luam un exemplu:

while($row= mysql_fetch_array($rez))
   {
   $dump=$row["ceva"];
   $$dump =$row["altceva"];
   }
   $name=basename($_SERVER["PHP_SELF"]);
   $query = 'select t.ceva, sum(a.altceva) as REZ from tabela t, altatab a WHERE
adresa="'.$name.'" and t.val1=a.val2';
$result = mysql_query($query);

Se intelege repede din codul de mai sus care este rezultatul. Dar daca acest cod este ascuns printre alte cateva sute/mii de linii de cod, deja nu se mai intelege nimic.

Cateva probleme:

  • codul nu este ordonat, macar daca nu il comentezi ARANJEAZA-L!!! Nu te gandi niciodata ca o faci pentru altcineva, de cele mai multe ori tot eu fac debuging pe un script facut de mine, dar cand trebuie sa urmaresc logica altcuiva… ganduri necurate imi strabat mintea.
  • fii consistent, in general atunci cand lucrez pe un script care nu e facut de mine incerc sa pastrez consistenta modului de scriere (daca exista) a celui care a scris bucata de cod, asa nu o sa trebuiasca sa urmaresti doua moduri de scriere iar totul o sa fie mult mai vizual.
  • scrierea conform standardului, chiar ieri aveam o discutie despre diferenta intre JOIN si conditie in WHERE in Oracle, concluzia a fost ca nu reduc performanta. Trebuie sa recunosc, nici eu nu foloseam aceasta tehnica pana nu de mult, dar o interogare scrisa aranjat o sa fie mult mai usor de inteles ulterior. Chiar daca nu o faci conform standardului, macar sa fie aranjata, cand sari de doua tabele si ai gresit ceva o sa fie mult mai usor sa urmaresti ce ai facut.
  • scrie interogarile pe mai multe linii. MySQL nu intoarce erori explicite de multe ori, spune doar zona in care a gasit o eroare, atunci cand sunt pe mai multe linii vei afla si linia cu probleme. Un alt mare avantaj este ca poti sa comentezi cu usurinta o linie.

Varianta “frumoasa” a codului de mai sus ar fi ceva de genul:

while($row = mysql_fetch_array($rez)) {
  $dump = $row["ceva"];
  $$dump = $row["altceva"];
}

$name = basename($_SERVER["PHP_SELF"]);

$query = "SELECT t.ceva, SUM(a.altceva) AS rez
          FROM tabela AS t, altatab AS a
          WHERE adresa='".$name."'
          AND t.val1=a.val2";
$result = mysql_query($query);

Parca arata altfel nu? Evident se poate aranja si mai mult dar eu unul sunt multumit daca gasesc asa ceva in codul altcuiva.

Un blog interesant despre Lazy Ones (lenesi) este aici.

Written by Claudiu Persoiu

18 October 2008 at 3:27 PM

Posted in PHP

Tagged with ,

Gata cu xp?

without comments

Dupa prima prelungire a perioadei de disponibilitate pentru sistemul de operare windows XP parea ca acesta va iesi usor usor din scena. Dar la scurt timp dupa ce anuntul ca Win XP va fi retras de la vanzare (iar), a aparut Service Pack 3.

Nu este ceva iesit din comun sa lansezi un ultim SP cand te pregatesti sa abandonezi un sistem de operare. Totusi de aceasta data lucrurile nu au stat tocmai asa, o rata scazuta de adoptie a noului OS Win Vista, a determinat prelungirea datei pana cand “batranul” XP va disparea din rafturi.

Acum ca perioada de gratie expira, o noua stire apare, Microsoft prelungeste (iar) termenul pana cand OS-ul va mai fi disponibil. Se pare ca o sa mai putem cumpara Win XP pana in vara anului viitor.

O veste buna, in special pentru cei care vor sa acizitioneze sisteme ultra-portabile care nu dispun de o putere de calcul suficient de mare pentru Win Vista.

Written by Claudiu Persoiu

13 October 2008 at 9:51 PM

Posted in Diverse

Tagged with ,

Ce inseamna o aplicatie buna

without comments

Cam asta ar trebui sa ai in minte cand faci o interfata.
your app

your app

Written by Claudiu Persoiu

5 October 2008 at 10:51 AM

Posted in Diverse

Tagged with

Cum sa nu-ti distrugi calculatorul – ghid simplu pentru incepatori

with one comment

Pe cat de ridicol suna pe atat de adevarat este.

Cateva tehnici de supravietuire pentru laptopuri:

  • Nu lovi tastatura, tastatura de laptop nu este o tastatura normala, de fapt o tastatura normal este cam cat un laptop. Sistemul de prindere al tastelor se bazeaza pe cleme, in cazul desktopurilor se bazeaza in general pe niste mici ventuze. Deci incearca sa folosesti degetele pentru a tasta, nu pumnii, si incearca sa tastezi de la nivelul tastelor, CALCULATORUL NU ESTE O MASINA DE SCRIS!
  • Nu dormi cu laptopul in priza! Bateria de la laptop este facuta sa functioneze ca… o baterie, asa cum nu e bine sa stai tot timpul cu telefonul la incarcat asa nu e bine sa stai cu bateria la incarcat! Principiul folosit este o celula galvanica, mai pe scurt niste particule trec intr-o parte, iar cand bateria se incarca se intorc de unde au plecat. In momentul cand ciclurile de descarcare-incarcare nu se executa complet in mod repetat, bateria pierde atat capacitatea de a se incarca cat si capacitatea de a se descarca la maxim.
  • Un laptop este portabil dar nu este recomandabil sa-l scoti la plimbare cat timp functioneaza! HDD-urile SSD au o proprietate foarte importanta, sunt compacte si nu au elemente mecanice. HDD-urile clasice insa nu, ele se bazeaza pe componente mecanice, respectiv niste platane (discuri) si niste capete de citire si scriere magnetice, ca la un pickup, dar fara sa atinga discul. In momentul in care acesta este oprit, capetele se retrag intr-un locas special care le impiedica sa se miste, insa cand acestea functioneaza acestea stau foarte aproape de platane. Cand survine un soc in timpul functionarii exista posiblitatea ca acestea sa atinga platanul, moment in care apar defectiunile fizice (bad-uri), si pierderea irecuperabila a acelor sectoare.
  • Nu face server din laptop! Un laptop nu este facut sa fie server! Un laptop este facut sa lucrezi cat lucrezi pe el apoi sa-l opresti, nu sa-l lasi zi si noapte sa stea sa lucreze. Un laptop se va incinge mult mai mult decat un desktop pentru ca acesta nu are loc sa se ventileze corespunzator iar in timp va genera din ce in ce mai multe probleme plecand de la aceasta aparent simpla problema.
  • Nu brusca laptop-ul! Doar pentru ca este portabil asta nu inseamna ca este facut sa-l folosesti pe post de minge de fotbal. Desi un laptop este mult mai “inchegat” decat un desktop, acesta are parti care cedeaza la socuri, precum: CD-ROM, HDD-uri non SSD, ventiloatoare, monitor si chiar carcasa, evident lista poate continua, depinde de soc. Folositi genti si rucsace pentru laptopuri, acestea au staturi suplimentare de protectie pentru a disipa energia.

Si cateva tehnici generale de supravituire:

  • Un calculator cool are o viata mai buna. Nu, nu ma refer la iMac, ma refer la racire, daca un ventilator da semne ca moare, schimba-l! In general e mult mai ieftin sa schimbi un ventilator decat o sursa, un procesor, o placa video sau un HDD, pastreaza calculatorul la rece(dar nu in frigider)! Daca nu poti sa inlocuiesti din varii motive un ventilator, cauta o solutie, exista o sumedienie de dispozitive pentru racire pe piata care pot sa-ti inghete calculatorul.
  • Impamanteaza-l! Am spus-o de prea multe ori, prea multor oameni si totusi tot mai aud pe cate unul cum se plange ca la un fulger a ramas fara jumatate de calculator. Calculatorul produce oricum energie statica, un mic experiment, lasa calculatorul sa functioneze cateva minute, apoi incearca sa atingi carcasa si un fier cu impamantare, se va forma un arc si vei simti cam cata energie ar trebui sa se descarce de fapt (probabil vei spravietui, dar eu nu garantez). Componentele de baza din calculator sunt facute in asa fel incat supratensiunile sa fie directionate cate exterior, adica carcasa. Cu alte cuvinte daca ai supratensiuni in calculator, nu neaparat ca a fulgerat afara pe cablul tau de net, se poate sa ai un scurt de orice fel in calculator, tensiunea suplimentara va fi directionata spre carcasa iar calculatorul se va inchide automat. Daca nu exista un mod ca energia statica sa fie eliminata din carcasa aceasta nu o sa aiba unde sa mearga si… se va descarca un componentele legate de carcasa. Nu o data a fost cazul cand o mica sarma legata de calculator putea reduce costul reparatiei de la jumatate de calculator la cel al unei placi de retea, sunet etc. E valabil si pentru monitoare.
  • Nu forta mufele! Mufele nu sunt facute sa scoti si sa bagi o zi intreaga dispozitive in ele, sau… sunt, dar nu cu ciocanul. Am vazut de multe ori mufe USB rupte, placi de retea sticate si chiar mufe de tastaturi. Daca a intrat dar nu merge din prima, daca o sa impingi a doua oare mai tare tot nu o sa mearga.
  • Nu trage de cabluri si folositi cabluri corespunzatoare! Daca un cablu este prea intins poate sa strice mufa. Daca un cablu este stricat poate sa stice si dispozitivul. In general cablurile sunt relativ ieftine, de multe ori merita sa iei un cablu bun de la magazin decat sa folosesti cablul vechi al unui vecin care il tinea aruncat prin camara.
  • Flositi suruburi! Toate gaurile alea care sunt in calculator au fost facute cu un scop! Inteleg, poate nu vrei sa pui toate cele 4 suruburi la CD-ROM, dar nici sa pui 1 nu e tocmai ok. Daca o placa nu este bine fixata, aceasta se poate misca din tot felul de motive, gen bagi un cablu in ea, il scoti, il intinzi, etc. Toate aceste mici ajustari pot sa strice iremediabil componenta, de asta sloturile AGP mai noi vin cu un conector de siguranta, este semnul de neincredere al producatorului. Plus ca vei constata ca un HDD sau un CD-ROM fixat este mai silentios.
  • Nu te grabi cand schimbi ceva sau adaugi ceva! E mai bine sa o iei incet de la inceput decat sa stai apoi sa cauti de ce nu mai porneste calculatorul.
  • Nu inlocuiti componente fara sa fiti siguri ca sunt compatibile! Daca ti se pare ca o componenta nu se potriveste, nu o forta! Manuale se gasesc relativ usor, iar acestea pot sa arate daca o componenta este compatibila sau nu.
  • Citeste manualul! Manualele sunt facute cu un scop! Daca nu sti unde intra un jumper sau un led nu il baga in primii pini care-ti ies in cale, in acest mod pot sa strici iremediabil alte componente! Daca nu ai manual cauta pe net! Internet-ul este plin de tot felul de manuale si tutoriale, de multe ori e mai ieftin sa cauti un manual decat sa cauti o componenta de schimb.

Urmand aceste mici reguli, calculatorul o sa aiba sanse mai mari sa mai supravietuiasca inca o zi!

Written by Claudiu Persoiu

2 October 2008 at 10:30 PM

Posted in Hardware

Tagged with