Ne trebuie o monedă de 23 de bani

Întrebare: ce faceți cu monedele pe care le primiți rest de la magazin? Și hai să nu ne gândim la cei mai fericiți dintre noi, pe care soarta i-a înzestrat cu un compartiment pentru monede la portofel. Să-i luăm de pildă, pe cei ca mine, care primesc în fiecare zi câte o mână de monede, apoi vin seara acasă, și le pun lângă celelalte monede, primite în zilele trecute. Și uite așa, se tot adună. Ieri am făcut fericită o vânzătoare de la non-stop, ducându-i la schimbat toata grămada, ce totaliza 15 RON(da, o sută cinzeci dă mii, numa metal). Privind la acea grămadă de monede, ce, pe zi ce trece, devenea deranjant de mare, am stat să mă gândesc care ar fi soluția pentru a diminua numărul de monede primite ca rest. Știu că se poate trișa, folosind cardul, dar încearcă să plătești cu cardul, atunci când iei pâine de la tanti de peste drum :P. În primul rând, am calculat câte monede primim în medie, ca rest, după ce cumpărăm ceva. Am făcut presupunerea că e la fel de probabil să primești orice sumă între 1 și 99 de bani, și am scris un mic script care să facă media(presupunând că vânzătoarea e suficient de amabilă să ne dea numărul minim de monede – just for other nerds: nu vă faceți griji, nu îi dăm bietei vânzătoare o problemă NP completă, ci alegem metoda greedy, care ce e drept, nu dă numărul minim de fiecare dată). Mi-a ieșit că pentru actualul sistem monetar(50, 10, 5 și 1 ban), primim în medie la un rest 4,94 monede. Dacă nu luăm în calcul monedele de 1 euro/dolar sau peste, americanii primesc în medie, ca rest, pentru o sumă cuprinsă între 1 și 99 de cenți, 4,16 monede(cu monede de 50, 25, 10, 5 și 1), iar cetățenii europeni din spațiul euro, doar 3,37 monede. Acuma nu vreau să fac din post-ul ăsta o nouă critică a sistemului românesc, aducând de pildă, ca argument, faptul că românii se simt mai nefericiți din cauză că au buzunarele mai grele(a trecut vremea când a avea buzunarul mare, era semn de prosperitate, acuma e semn că nu ai card), dar cifrele de mai sus vorbesc de la sine. Din fericire, am și soluția pentru a îmbunătăți semnificativ nivelul nostru de trai: o monedă de 23 de bani(cum secretul originalității e să-ți știi ascunde sursele, vă rog nu dați click aici). Cu o monedă de 23 de bani, numărul mediu de monede primite ca rest, devine 3,97. Practic am primi aproape cu o monedă mai puțin, de fiecare dată când cumpărăm ceva. .

Anunțuri
Published in: on August 29, 2010 at 23:05  Comments (4)  

Indecidabilitate și intractabilitate

Continuând seria de posturi de cultură generală pentru programatori(am mai zis că nu sună bine în română), o să încerc să alunec puțin dinspre tehnic înspre filosofic.

Este de bun simț să admitem că știința progresează, dovadă că în fiecare război se găsesc noi mijloace de ucide oameni(dacă ne gândim bine, și calculatoarele au fost construite tot cu ocazia războiului). Cu toate că progresează, în secolul 20 s-a ajuns la concluzia că știința nu ne va putea da niciodată toate răspunsurile.

O expresie filosofică a acestui adevăr o aduce Blaga, afirmând că nu putem trece, cu ajutorul cunoașterii, de limita impusă de Marele Anonim. O abordare mai pragmatică și recunoscută de lumea științifică vine de la Kurt Gödel, care prin 1931, arată nu numai că sistemul nostru de axiome este incomplet, ci și că nu avem cum să construim unul complet.

Ce înseamnă acest lucru? Păi axiomele sunt niște adevăruri pe care se bazează toate cunoștințele noastre. Pornind de la aceste axiome ca fundație, începem să construim: cărămidă cu cărămidă, găsim noi teoreme, dar la un moment dat vrem să punem undeva o cărămidă și nu putem, pentru că acolo lipsește fundația, și fără fundație nu putem construi. Nici o problemă, s-ar zice, mai punem fundație(aka acceptăm noi axiome), dar la un moment dat iar ajungem într-un punct unde nu putem construi. Gödel a demonstrat că în afară de sistemele triviale, oricâtă fundație am avea, tot nu vom putea construi orice. La un moment dat, se va enunța o teoremă, despre care nu vom putea ști dacă e adevărată sau nu, oricât ne-am strădui.

Revenind la calculatoarele noastre, nu știu câți și-au pus întrebarea ”Ce se poate calcula?” sau ”La ce întrebări ne poate răspunde calculatorul?”. Din mulțimea de întrebări posibile, nu o să le alegem pe cele de genul ”what is the answer to life the universe and everything”… asta e ușoară, răspunsul e 42(întrebați pe google dacă nu mă credeți). Ne vom lega de acum încolo de întrebările la care se poate răspunde cu DA sau nu, numite și probleme de decizie. Exemple de astfel de întrebări sunt ”Este 25 mai mare ca 20?”sau ”Se poate găsi un drum pe harta României, care să treacă prin fiecare oraș o singură dată?” sau încă ”Dacă rulăm algoritmul ăsta, o să se termine vreodată?”.

Evident, pentru întrebări de genul primeia, răspunsul se găsește imediat. Sărim deocamdată peste a doua, și ne uităm la cea de-a 3-a. Ca să o exprimăm mai precis, vrem să scriem un program care să analizeze un alt program, și să ne spună dacă se termină, sau buclează la infinit. Tot prin anii ’30, Alan Turing a demonstrat că un astfel de program nu se poate scrie. Spunem deci, că această problemă este indecidabilă. Desigur, putem să rulăm efectiv programul care se cere analizat, iar dacă se termină am câștigat: putem răspunde cu certitudine DA. Dacă în schimb după 10 minute sau după 10 luni, programul tot rulează, nu avem de unde ști dacă face calcule utile și la un moment dat va ajunge la rezultat, sau s-a împotmolit într-o buclă infinită.

Dacă ne întoarcem la a doua întrebare, care pentru cunoscători se numește problema ciclului Hamiltonian, observăm că putem găsi o soluție: încercăm fiecare drum posibil în parte, iar la un moment dat, fie am epuizat toate drumurile, fie am găsit un drum cu proprietatea cerută. Deși această abordare va da până la urmă un răspuns la întrebare, avem de încercat o groază de variante. Mai rău, pentru cei ce au citit postul anterior din această categorie, putem spune că algoritmul are o complexitate exponențială, adică să zicem că avem un calculator suficient de rapid care să rezolve problema pentru un anumit număr de orașe în timp rezonabil, dacă mai introducem chiar și un număr foarte mic de orașe în ecuație, nu se va mai găsi răspuns într-un timp acceptabil.

Partea cu adevărat proastă la problema de mai sus este că nici până în zilele noastre nu s-a găsit vreo abordare mai bună, care să rezolve problema în timp polinomial. Singurul lucru care mai salvează cât de cât situația este faptul că dacă cineva găsește din întâmplare un drum, putem verifica destul de repede(în timp polinomial) dacă soluția este corectă sau nu. De fapt, foarte multe probleme cu care ne întâlnim în practică au proprietatea de a li se putea verifica soluția în timp polinomial. Vom nota această clasă de probleme cu NP. Desigur, în această clasă de probleme intră și cele simple, care se pot rezolva în timp polinomial, a căror clasă o notăm cu P, deci avem P \subseteq NP.

Una dintre problemele mileniului, pentru care se oferă un premiu de 1 milion de dolari, este verificarea dacă e incluziune strictă, sau avem egalitate, între cele două clase de probleme. Partea care stă în calea egalității, e un anumit grup de probleme, numite NP-complete, sau intractabile, de genul celei amintite mai sus, pentru care nu s-a găsit încă un algoritm polinomial, dar nici nu s-a putut demonstra că nu ar exista. Este surprinzător faptul că toate aceste probleme, din domenii atât de diferite, se pot reduce în timp polinomial una la alta. De exemplu, dacă reușim să găsim o soluție în timp polinomial la problema împărțirii unei mulțimi de numere, în două mulțimi cu sume egale(pentru olimpicii la info care cred că au soluția, trebuie să repet că vreau timp polinomial, nu pseudopolinomial), vom putea rezolva în timp polinomial și problema ciclului Hamiltonian amintită mai sus.

Acest fapt remarcabil, posibilitatea reducerii, ne ușurează de multe ori viața în practică. Când întâlnim o problemă la care nu putem găsi soluție în timp polinomial, putem încerca să o reducem la o problemă NP-completă cunoscută, iar dacă reușim reducerea, înseamnă că am întâlnit o problemă cu care informaticienii și matematicienii se confruntă fără succes de decenii, și probabil ar fi cazul să ne petrecem timpul cu ceva mai util, de exemplu să încercăm să dăm o soluție aproximativă, sau să facem un backtracking cât mai optimizat.

Concluzia pe care cititorul ar trebui să o tragă din cele citite mai sus, este că nu orice problemă se poate rezolva cu ajutorul calculatorului, și chiar și pentru cele care se pot rezolva, nu putem găsi tot timpul o rezolvare care să dea soluția în timp acceptabil. Cu toate acestea, putem construi soluții imperfecte, care să ajute utilizatorul, și care să încerce să se apropie cât mai mult de perfecțiune.

Published in: on Februarie 19, 2010 at 16:53  Comments (3)  

The big O

Fiindcă în viața reală nu prea se mai întâmplă nimic intersant, am decis să scriu o serie de articole legate de calculatoare. Asta și deoarece temele abordate de mine până acum nu se prea potrivesc cu titlul blogului ”Just a coder”. Categoria nou creată se numește ”General knowledge for programmers”(parcă nu ar suna bine în română), și doresc să scriu o serie de post-uri, despre concepte des întâlnite în viața de coder, dar de care lumea se cam sperie. Posturile din această categorie nu se vor exhaustive, nici măcar pe departe. Tot ce doresc să prezint e un skimming prin conceptele abordate, după care cititorul interesat poate da un search pe Google pentru a se documenta corespunzător.

Post-ul de azi se referă la notația asimptotică, numită în engleză ”the big O notation”, și se adresează în special celor care au nedumeriri atunci când aud că un algoritm are complexitatea O(n^2), în timp ce altul are doar O(n \log n).

Complexitatea unui algoritm nu e altceva decât o măsură a numărului de operații pe care algoritmul îl face. Să zicem că avem un algoritm care găsește elementul maxim dintr-un vector oarecare(sau dacă vreți, listă).

Dacă cititorul s-a încumetat să ajungă până aici, probabil îi este familiar conceptul de vector, și știe că pentru a determina elementul maxim, trebuie să inițializeze o valoare cu primul element, apoi să o compare pe rând cu celelalte. Mai concret vorbind, dacă vrem să aflăm care este cel mai înalt elev din clasă, le cerem să intre pe rând pe ușă, punându-l pe primul drept etalon. De fiecare dată când intră cineva mai înalt decât etalonul, elevul mai înalt devine etalon. Evident, ultimul elev rămas drept etalon este cel mai înalt din clasă.

Până acum probabil ne-am dat deja seama că numărul de operații depinde de numărul de elemente din vector, sau de numărul de elevi din clasă, pe care în general îl notăm cu n. Mai exact, operațiile efectuate pentru determinarea maximului sunt comparații, în număr de n-1(deoarece pe primul element nu avem cu cine îl compara). Cu toate acestea, vom zice că algoritmul are complexitatea O(n), și nu O(n-1). În primul rând, acel 1 nu este relevant, pentru că oricum programul va face anumite operații de inițializare, pe care nu trebuie să le luăm în calcul, și în al doilea rând, faptul că îl luăm doar pe n, ne simplifică mult calculele, și ne ajută de multe ori să ”vedem” mai bine problema.

Așa cum multă lume își poate imagina, la apelul unei funcții care face ceva util, se fac anumite operații(punere parametri de apel și adresă de întoarcere pe stivă, inițializare variabile, etc. – dacă aceste operații nu sunt cunoscute, cititorul nu trebuie să își facă griji, deoarece sunt irelevante în acest post -). Vine atunci întrebarea ”de ce aceste operații nu se iau în considerare când măsurăm complexitatea?”. Răspunsul este că această complexitate nu trebuie să ne dea numărul exact de pași efectuați de algoritm, ci ne interesează mai mult cum se modifică acest număr de pași, dacă dimensiunea datelor problemei se modifică.

De exemplu, dacă avem un algoritm cu complexitate O(n), care rulează pentru n=1000, timp de 10 secunde, și îl mărim pe n cu 1, folosind regula de trei simplă, obținem un timp de execuție de 10.01 secunde, care practic nu diferă în mod vizibil de primul. Chiar dacă îl dublăm pe n, vom dubla doar timpul de execuție, la 20 de secunde, care rămâne tot în limitele rezonabile.

Să ne închipuim acum un algoritm de complexitate O(2^n), care rulează tot pentru n=1000 timp de 10 secunde. Dacă îl mărim pe n doar cu 1, cunoscând că 2^{n+1} = 2 \cdot 2^n, ne dăm seama că timpul de execuție se dublează. Dacă îl mărim pe n cu 10 doar, adică de la 1000 la 1010, timpul de execuție va crește de 2^{10} = 1024 ori, adica de la 10 secunde la aproape 3 ore. Timpul este încă rezonabil, dacă lucrăm la o problemă suficient de importantă, cât să merite să așteptăm 3 ore, dar ce ne facem de exemplu dacă ne trece prin cap să dublăm dimensiunea datelor problemei? Astfel de probleme se numesc probleme intractabile, și vom discuta mai multe despre ele într-un post viitor.

Am observat mai sus că pentru calcularea complexității unui algoritm, nu trebuie să ținem cont de constantele aditive care apar, deoarece acestea nu influențează semnificativ numărul de operații, atunci când dimensiunea datelor problemei se modifică. Vestea bună este că ”big O” ne scapă nu doar de constantele aditive, ci și de alte neplăceri.

Să luăm un alt exemplu, calcularea sumei elementelor de deasupra diagonalei principale, a unei matrici. Aceste elemente sunt în număr de 1 + 2 + \ldots (n-1) = \dfrac{n(n-1)}{2}, deci acesta este numărul de adunări pe care îl vom face. Dacă scriem acestă valoare sub formă polinomială, avem \dfrac{1}{2} n^2 - \dfrac{1}{2} n. Ca să trecem la notația asimptotică, trebuie să-l luăm doar pe n la puterea cea mai mare, fără a ”căra” după noi constantele multiplicative, aditive, sau puteri mai mici ale lui n, deoarece pentru valori suficient de mari ale acestuia, doar puterea cea mai mare din polinom va contribui semnificativ la creșterea numărului de operații. Vom obține complexitatea pentru această problemă O(n^2). Denumirea de notație asimptotică vine de la conceptul de asimptotă din matematică, dar n-o să intru în detalii aici.

Ar trebui ca deja să ne fi prins de șmecherie : pentru a calcula complexitatea unui algoritm, putem număra operațiile efectuate, fără a ține cont de detalii, iar acea valoare, deși oarecum aproximativă, ne va da o bună estimare a creșterii numărului de operații, la creșterea dimensiunii datelor problemei.

O ultimă chestiune, pentru a răspunde la o întrebare pe care unii cititori și-ar putea-o pune: ”Cum numărăm operațiile, de ajungem uneori la logaritmi, în formula complexității?”. Pentru a răspunde la această întrebare e necesar să cunoaștem conceptul de arbore binar. Chiar dacă o problemă nu specifică în mod explicit această structură, rezolvarea o poate sugera, prin împărțirea structurii de date în două jumătăți egale, și aplicarea algoritmului pe fiecare jumătate. Astfel, devine necesară parcurgerea unui astfel de arbore de la rădăcină, până la o frunză, ceea ce face ca numărul de operații să fie proporțional cu înălțimea acestuia. Un exercițiu pe care îl las pe seama cititorului care nu a adormit încă, este verificarea sau demonstrarea faptului că înălțimea unui arbore binar echilibrat este de ordinul \log_2 n, unde n este numărul de noduri al arborelui.

Published in: on Februarie 5, 2010 at 01:54  Lasă un comentariu  

Partidul Piratilor

Rasfoind net-ul, am aflat si eu azi despre acest partid, si ma simt dator sa ii fac putina reclama.

De ce ar trebui sa ne intereseze despre asta? Pentru ca in timp ce imi citesti blogul, probabil folosesti un Windows piratat, probabil asculti un mp3, sau te gandesti sa te uiti la un film, pe care tocmai l-ai luat de pe un torrent. Inca de prin anii ’90, toti cei ce folosesc un software fara sa-l plateasca, sau indraznesc sa dea prietenilor o muzica sau un film sunt numiti pirati. Asa ca hai sa recunoastem, suntem pirati cu totii.

Generalizand putin lucrurile, ajungem la problema accesului la informatie. Societatea umana a evoluat, datorita faptului ca a fost capabila sa-si transmita informatiile de la o generatie la alta. In plus, sa comparam progresul tehnologic din perioada in care cartile se gaseau doar sub forma de manuscrise cu cel de dupa inventia tiparului.

In zilele noastre, avem mijloace mult mai eficiente de a raspandi informatia. Mijloace la care acum un secol, nici macar nu se putea visa.

Dar in calea acestui acces la informatie, sta copyright-ul…

Stiati ca pana in 2038, este ilegal sa reciti poezia „Zdreanta”, in public?

Din statutul Partidului Piratilor :

Art. 4 În conformitate cu programul său politic, Partidul Piraţilor:

a) promovează valori precum accesul neîngrădit la informaţie, ştiinţă şi artă, libertăţiile personale, dreptul neîngrădit la liberă exprimare şi dreptul la intimitate.
b) promovează iniţiative care să conducă la apariţia unor norme legale care să oblige instituţiile statului să respecte drepturile constituţionale ale cetăţenilor

O alta problema cu care se confrunta Romania este conservatorismul in privinta tehnologiei, din partea parlamentului. Ati auzit probabil de proiectul „one laptop per child”.

Oare de ce copii romani nu au primit laptopuri?

Pentru ca proiectul legislativ nu a trecut de parlament. Pentru ca senatorii nostrii n-au fost in stare sa inteleaga faptul ca un laptop e bun, chiar daca nu ruleaza Microsoft Word pe el, si ca exista alternative free la acesta.

Momentan, Partidul Piratilor strange semnaturi pentru a se infiinta. In alte tari europene, acesta exista, si chiar e reprezentat in Parlamentul European. Chiar daca e la inceput, merita suport din partea noastra.

Published in: on Septembrie 8, 2009 at 00:10  Lasă un comentariu  

Modemul vietii

Venind acasa de sarbatori, ca tot omul, vreau si eu sa-mi mearga internetul. Poate ca cer prea mult de la viata, tinand cont ca in alta parte a lumii, oamenii nu au ce pune pe masa, dar din moment ce platesc un abonament lunar pentru el, consider ca mi se cuvine.
Locuind la tara, singura varianta ramane batranul Romtelecom, cu al sau Clicknet. Nu ma plang ca merge prost netul in sine(desi e loc si de mai bine), dar problema care scoate fire albe e modemul SpeedTouch 330. Cu aceasta ocazie, recomand celor ce vor sa-si puna clicknet sa ceara neaparat de la Romtelecom un alt tip de modem.
Atunci cand mi l-am luat, aveam Windows XP, si totul a mers ca uns. S-a instalat frumos, si in cateva minute faceam trafic la care pe vremea dial-up-ului nici n-as fi visat.
Intre timp, am devenit ceva mai pretentios in materie de sisteme de operare, si acuma, in particular vin acasa cu un dual-boot Kiwi 8.12(bazat pe Ubuntu 8.10) si Windows 7.
Problema cu Linux-ul e veche, prima data cand am incercat Ubuntu, am incercat destule frustrari pana sa fac sa mearga conexiunea la net(necazul constand in faptul ca pentru a cauta solutii, ai nevoie sa fii conectat). Intre timp, am descoperit Kiwi, care e facut special pentru romani, si include driverele si tot ce e necesar. Din pacate, noua versiune de kernel nu mai suporta Speedtouch 330(oare de ce fix al meu dintre toate tipurile de modem de la Romtelecom?), dar exista sperante ca va fi suportat in Ubuntu 9.10.
La Windows 7 ma asteptam sa mearga, mai ales ca a primit driver-ele de XP fara nici o retinere.
Mi s-a blocat installer-ul, si mi-a venit ideea geniala sa scot si sa reintroduc cablul USB. Si iata primul blue screen din windows 7. Sa stiti ca in Windows 7 au modificat pana si blue screen-ul. Acuma intai numara ceva pana la 100, apoi se restarteaza calculatorul.
Dupa mai multe incercari de reinstalare, soldate cu acelasi ecran prietenos, am renuntat la ideea de a folosi softul de pe CD, si am incercat sa fac o noua conexiune din Control Panel, care, surpriza, a mers.
Toata povestea asta imi aminteste de cea a lui Richard Stallman, cum a ajuns sa fondeze Free Software Foundation. Cica prin anii 80′ el lucra intr-o cladire cu mai multe etaje, si avea imprimanta cu un etaj mai sus. Dupa ce dadea print, vroia sa stie daca s-a tiparit sau nu, fara sa urce scarile. In trecut, mai facuse el treaba asta, modificand soft-ul de la imprimanta sa trimita un mesaj dupa ce s-a facut tiparirea cu succes. Numai ca de data asta, softul de la imprimanta era in format binar, asa ca nu mai putea fi modificat.
Iata ca dupa 20 de ani, ne confruntam cu aceeasi problema.
Nu ma astept ca lumea sa adopte software-ul liber. Societatea nu a ajuns inca la un asemenea nivel al evolutiei. Companiile soft inca se lupta sa stoarca cat mai mult de la client, si se concentreaza mai mult asupra tehnicilor comerciale, decat asupra calitatii programelor.
Dar la partea hardware, tot nu inteleg. Ce ii retine sa faca driverele libere, pentru ca tot utilizatorul sa se poata bucura de componenta cumparata, indiferent de ce sistem foloseste? Sunt destui fanatici pe netul asta care ar adapta driverele moca, numai sa aiba acces la sursa.
Si ca sa nu considerati ca frustrarea mea cu modemul este una singulara, va dau un exemplu mult mai elocvent: Laptop-urile cu sistem de operare preinstalat. Si cand zic sistem de operare preinstalat, ma refer la Windows Vista, care pentru a suplini lipsa calitatii, ne este „bagat pe gat” impreuna cu aproape toate modelele noi de laptop. Ati incercat sa instalati XP pe un astfel de laptop? Eu am incercat. In unele cazuri am si reusit, dupa ce am rascolit netul pana m-am saturat, ca sa caut drivere modificate, sa mearga si cu XP.
Sarbatori fericite!

Published in: on Aprilie 18, 2009 at 20:08  Comments (1)  

Windows 7

Intr-o dupa-masa in care ma plictiseam, mi-a venit ideea sa-l incerc. XP-ul imi crapase de aproape 2 saptamani(traiasca virusii de la laboratoare), si desi nu ii simteam lipsa, am zis ca „tre’ sa am si io wingoz pe calc”. Cum de XP m-am cam plictisit, iar Vista n-are ce sa caute la mine pe laptop, mi-am zis sa-l incerc.

Dupa ce a stat o dupa-masa intreaga sa se downloadeze, mi l-am instalat dimineata urmatoare. Va prezint in continuare, cateva impresii:

In primul rand, la instalare am avut doua surprize placute, si una neplacuta. Surpriza placuta a fost timpul foarte scurt, cam 25 de minute, mult mai bun ca la XP. Apoi, mi-a venit sa-l pup cand am vazut ca recunoaste driverele pentru XP. Acuma vine si partea neplacuta: Imediat dupa instalare, 9.5GB ocupati, dintre care 7.5GB doar folderul cu Windows. Chestia asta cam miroase a Vista.

Ca tot vorbeam de Vista, m-am uitat si la consumul de memorie RAM. Acuma, in timp ce scriu, cu cateva aplicatii deschise, consuma cam 850MB. Ceva mai bine ca la Vista, dar tot nu pot intelege unde se scurge atata memorie. La urma urmei, un GNOME cu Compiz(pentru necunoscatori, un desktop de Linux, cu efecte in stil Aero), care are cam aceleasi efecte grafice, consuma maxim 300. In rest, pare a se misca bine, mai ales ca am un procesor de moda veche(32 de biti, un singur nucleu) care mai e si AMD pe deasupra, si o placa video nu tocmai performanta. Surprinzator ca nu a crapat pana acuma.

screenshot din Windows 7

screenshot din Windows 7

In continuare, doua lucruri „good to know”:
In primul rand, am simtit de la inceput lipsa butonului „Show Desktop”. Cautand pe forumuri, am citit tot felul de idei, care mai de care. Amintesc printre ele, constructia unui script pentru „Show Desktop”, si adaugarea unei scurtaturi catre el pe taskbar. Pana la urma am gasit si solutia. Windows 7 are butonul respectiv, chiar in dreapta ceasului. Necazul e ca nu scrie nimic pe el. Daca nu citeam undeva, nu l-as fi observat.
Un alt lucru legat de desktop ar fi micsorarea icon-urilor, care dupa parerea mea sunt mult prea mari. Dupa indelungi cautari, am gasit solutia si la asta. Si din cate am auzit, merge pe orice Windows: se tine Ctrl apasat, si se face scroll cu mouse-ul.

Morala: Desi e inca beta, Windows 7 merge binisor. Ce e drept, nu se compara cu Ubuntu, nici macar cu Windows XP, daca vorbim in termeni de stabilitate si siguranta, dar totusi merita incercat. O sa va mai tin la curent cu impresii.

Published in: on Aprilie 9, 2009 at 15:10  Comments (1)