-
Traim intr-o lume inconjurati de medii de programare. Incepand de la Adobe Dreamweaver si Eclipse pana la notepad fiecare din noi foloseste un mediu de programare, un IDE (Integrated development environment) sau pe romaneste “mediu integrat de dezvoltare”.
Fiecare firma si individ are preferintele lui in functie de limbaj, costuri, complexitate etc. Probabil cel mai folosit din punctul de vedere al webdesig-nerilor este Adobe Dreamweaver, ba chiar acesta este preferat si de foarte multi programatori. Eu personal am testat Zend Studio for Eclipse varianta trial si pot spune ca sunt impresionat, cand vine vorba de programare in PHP este un mediu complet utilat, dar nu voi intra in mai multe detalii.
Cu toate ca lumea este plina de IDE-uri, atat cu licente platite cat si open-source multe firma prefera varianta notepad sau chiar am intalnit la o firma editate folosind MC (Midnight Commander, foarte similar cu Windows commander dar pentru linux). Motivele sunt simple de cele mai multe ori, bani, obisnuinta, licenta incompatibila sau chiar lipsa de interes.
Eu unul pur si simplu nu pot sa-i inteleg pe cei care fac aceste alergeri, ok eu nu sunt designer si nici nu pretind ca sunt sub nici o forma dar fara un mediu cu WYSIWYG (What You See Is What You Get) ma simt terminat. Un mediu vizual poate sa creasca productivitatea considerabil si sa scada numarul de erori intr-un site, intr-un cuvand este o investitie nu o cheltuiala si ar trebui perceputa ca atare. Pentru mine sunt trei lucruri esentiale intr-un IDE: 1 sa aiba un editor WYSIWYG, 2 sa aiba autocomplete (nu pentru ca nu stiu sintaxa, dar ma ajuta sa scriu cod mult mai repede si mai corect), 3 sa aiba suport FTP ca sa pot lucra direct pe server. Daca tu nu folosesti asa ceva ar trebui sa te gandesti serios la asta, iar daca seful tau nu se gandeste la asta ar trebui sa te gandesti serios la care sunt prioritatile lui!
Concluzia, alege bine mediul de programare pentru ca el va determina cat de repede si bine vei lucra in continuare.
-
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?
-
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…
-
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.
-
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:
1while($row= mysql_fetch_array($rez)) 2 { 3 $dump=$row["ceva"]; 4 $$dump =$row["altceva"]; 5 } 6 $name=basename($_SERVER["PHP_SELF"]); 7 $query = 'select t.ceva, sum(a.altceva) as REZ from tabela t, altatab a WHERE 8adresa="'.$name.'" and t.val1=a.val2'; 9$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:
1while($row = mysql_fetch_array($rez)) { 2 $dump = $row["ceva"]; 3 $$dump = $row["altceva"]; 4} 5 6$name = basename($_SERVER["PHP_SELF"]); 7 8$query = "SELECT t.ceva, SUM(a.altceva) AS rez 9 FROM tabela AS t, altatab AS a 10 WHERE adresa='".$name."' 11 AND t.val1=a.val2"; 12$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.