-
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.
-
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.