{"id":2593,"date":"2012-04-07T10:00:17","date_gmt":"2012-04-07T07:00:17","guid":{"rendered":"http:\/\/daimon.me\/blog\/?p=2593"},"modified":"2012-04-07T12:45:00","modified_gmt":"2012-04-07T09:45:00","slug":"rezolvand-problema-gresita","status":"publish","type":"post","link":"http:\/\/daimon.me\/blog\/2012\/04\/rezolvand-problema-gresita\/","title":{"rendered":"&#8220;Rezolv\u00e2nd problema gre\u015fit\u0103&#8221;"},"content":{"rendered":"<div class=\"entry\">\n<p style=\"text-align: justify;\"><span style=\"color: #800000;\">Traducere a articolului &#8220;<a href=\"http:\/\/prog21.dadgum.com\/130.html\" target=\"_blank\"><span style=\"color: #800000;\">Solving the wrong problem<\/span><\/a>&#8221; de pe blogul Programming in the 21st Century. Judec\u00e2nd dup\u0103 adresa de e-mail a autorului, el se nume\u015fte James Hague.<\/span><\/p>\n<p style=\"text-align: center;\">~*~<\/p>\n<p style=\"text-align: justify;\">Ocazional, de\u015fi \u015ftiu c\u0103 nu-i o idee bun\u0103, arunc o privire peste discu\u0163iile ce se \u0163in asupra textelor mele, s\u0103 v\u0103d care-i atmosfera general\u0103, poate am f\u0103cut vreo eroare grosolan\u0103 pe care nimeni n-a catadicsit s\u0103 mi-o semnaleze. Cele mai suprinz\u0103toare comentarii au fost cele despre viteza cu care mi se \u00eencarc\u0103 saitul, \u015fi anume c\u0103 majoritatea paginilor implic\u0103 doar dou\u0103 cereri (n.t. <em>c\u0103tre server<\/em>) &#8211; fi\u015fierul HTML \u015fi fi\u015fierul CSS &#8211; un total mai mic de 10 kb, lucru considerat impresionant.<\/p>\n<p style=\"text-align: justify;\">O contribu\u0163ie la aceast\u0103 vitez\u0103 o are \u015fi norocul. Folosesc g\u0103zduire <em>shared<\/em>, \u015fi nu am control peste ceea ce fac alte saituri de pe serverul meu.<\/p>\n<p style=\"text-align: justify;\">Pe de alt\u0103 parte \u00eens\u0103, am o imagine clar\u0103 a modului cum interac\u0163ioneaz\u0103 oamenii cu un blog: \u00eel citesc. Persoana mea e singura excep\u0163ie &#8211; tot ce fac ceilal\u0163i oameni cu saitul este s\u0103 cear\u0103 fi\u015fiere \u015fi s\u0103 le citeasc\u0103. Nu e nimic magic \u00een a servi fi\u015fiere simple \u015fi statice. Ce-i surprinz\u0103tor este c\u0103 majoritatea celor ce implementeaz\u0103 software pentru bloging \u00eencearc\u0103 s\u0103 rezolve problema gre\u015fit\u0103.<\/p>\n<p style=\"text-align: justify;\">O baz\u0103 de date SQL \u00een care s\u0103 \u0163ii articole \u015fi pe care s\u0103 le aduci la cerere pentru a le potrivi \u00een tem\u0103? Asta e o solu\u0163ie ce rezolv\u0103 problemele administratorilor de bloguri, nu pe ale cititorilor &#8211; \u015fi totu\u015fi cititorii pl\u0103tesc pre\u0163ul printr-o pagin\u0103 ce se \u00eencarc\u0103 mai \u00eencet sau chiar nu se \u00eencarc\u0103 deloc ( spre exemplu, dup\u0103 ce prime\u015fte o men\u0163iune pe un sait important).<\/p>\n<p style=\"text-align: justify;\">C\u00e2ndva, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Sieve_of_Eratosthenes\" target=\"_blank\">Sita lui Eratostene <\/a>(un algoritm ce g\u0103se\u015fte numerele prime p\u00e2n\u0103 la o limit\u0103 superioar\u0103) era popular\u0103 pentru a compara limbaje de programare ca performan\u0163e. Algoritmul era bun dac\u0103 dispuneai de puterea de calcul necesar\u0103 &#8211; dar s\u0103 presupunem c\u0103 \u00ee\u0163i trebuiau primele 8000 de numere, pentru o aplica\u0163ie \u00een care timpul e un factor important. Te-ai mai chinui s\u0103 efectuezi calculele la fiecare rulare? Bine\u00een\u0163eles c\u0103 nu. <em>Deja le \u015ftii<\/em>. Ajunge s\u0103 rulezi programul o dat\u0103 \u00een timpul dezvolt\u0103rii aplica\u0163iei, \u015fi cu asta basta (n.t. <em>o dat\u0103 ob\u0163inut\u0103 lista de numere, ea poate fi consultat\u0103 \u00eentr-un fi\u015fier static<\/em>).<\/p>\n<p style=\"text-align: justify;\">Cookies pentru a urm\u0103ri vizitatorii? Scripturi Google Analytics? Ele rezolv\u0103 o problem\u0103 ce-i complet a de\u0163in\u0103torului de sait: &#8220;Cum fac s\u0103 \u015ftiu exact c\u00e2t trafic primesc&#8221;. Cititorilor nu le pas\u0103.<\/p>\n<p style=\"text-align: justify;\">Butoane pentru Google+ \u015fi Twitter \u015fi Facebook? Nu rezolv\u0103 problemele nicicui. Po\u0163i s\u0103 tweetui cu u\u015furin\u0163\u0103 \u015fi f\u0103r\u0103 un buton special. Saiturile de agregare precum Google Reader (ba chiar p\u00e2n\u0103 \u015fi motorul de c\u0103utare Google) au echivalentul unor butoane &#8220;like&#8221;, de ce s\u0103 te apuci s\u0103 duplici func\u0163ionalitate? Important este c\u0103 doar o mic\u0103 por\u0163iune din cititori \u00ee\u015fi bat capul s\u0103 foloseasc\u0103 astfel de butoane, \u00eens\u0103 toate imaginile \u015fi tot codul de scripting asociat cu ele \u00eencetinesc pagina pentru toat\u0103 lumea.<\/p>\n<p style=\"text-align: center;\">~*~<\/p>\n<p><span style=\"color: #800000;\">Am tradus articolul pentru c\u0103-mi pare a exprima o viziune aproape absent\u0103 \u00eentre internau\u0163ii rom\u00e2ni &#8211; indiferent de care parte a panoului de control se afl\u0103. Simplitate \u015fi elegan\u0163\u0103 ca filosofie de design, c\u00e2nd a\u0163i v\u0103zut a\u015fa ceva ultima oar\u0103 \u00een practic\u0103?<\/span><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Traducere a articolului &#8220;Solving the wrong problem&#8221; de pe blogul Programming in the 21st Century. Judec\u00e2nd dup\u0103 adresa de e-mail a autorului, el se nume\u015fte James Hague. ~*~ Ocazional, de\u015fi \u015ftiu c\u0103 nu-i o idee bun\u0103, arunc o privire peste discu\u0163iile ce se \u0163in asupra textelor mele, s\u0103 v\u0103d care-i atmosfera general\u0103, poate am f\u0103cut &#8230;<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-2593","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-fara","7":"anons"},"_links":{"self":[{"href":"http:\/\/daimon.me\/blog\/wp-json\/wp\/v2\/posts\/2593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/daimon.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/daimon.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/daimon.me\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/daimon.me\/blog\/wp-json\/wp\/v2\/comments?post=2593"}],"version-history":[{"count":1,"href":"http:\/\/daimon.me\/blog\/wp-json\/wp\/v2\/posts\/2593\/revisions"}],"predecessor-version":[{"id":2595,"href":"http:\/\/daimon.me\/blog\/wp-json\/wp\/v2\/posts\/2593\/revisions\/2595"}],"wp:attachment":[{"href":"http:\/\/daimon.me\/blog\/wp-json\/wp\/v2\/media?parent=2593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/daimon.me\/blog\/wp-json\/wp\/v2\/categories?post=2593"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/daimon.me\/blog\/wp-json\/wp\/v2\/tags?post=2593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}