<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5766252029856730808</id><updated>2011-09-26T17:15:32.569+03:00</updated><category term='timetracking'/><category term='seo'/><category term='antreprenoriat'/><category term='elastic computing'/><category term='jquery'/><category term='promovarea educatiei'/><category term='javascript'/><category term='heatmap'/><category term='java'/><category term='tag cloud'/><category term='debugging'/><category term='introducere'/><category term='web 2.0'/><category term='imblanzirea bestiei'/><category term='serial-optiuni'/><category term='javaweb'/><category term='md5'/><category term='upb'/><category term='profiling'/><category term='securitate'/><category term='interfete web'/><title type='text'>interFETE WEB</title><subtitle type='html'>Interfete web - promovam educatia superioara!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-6464153774888121103</id><published>2011-07-10T10:22:00.003+03:00</published><updated>2011-07-10T10:35:36.217+03:00</updated><title type='text'>Materiale de construcții la un click distanță!</title><content type='html'>Salut!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;De astăzi poți &lt;a href="http://www.asteroid.ro"&gt;comanda materiale de construcții online&lt;/a&gt;, din fotoliul tău de acasă. Dacă ești din Galați, deocamdata :D Presupun ca oricine s-a săturat să fie alergat de meșter ca să cumpere tot felul de materiale, bineințeles, cu mașina proprie. Momentan plata este la livrare, dar în viitorul apropiat vei putea plăti și cu cardul!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Happy shopping!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-6464153774888121103?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/6464153774888121103/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2011/07/materiale-de-constructii-la-un-click.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6464153774888121103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6464153774888121103'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2011/07/materiale-de-constructii-la-un-click.html' title='Materiale de construcții la un click distanță!'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-8047348725763998440</id><published>2010-12-27T22:24:00.002+02:00</published><updated>2010-12-27T22:25:20.892+02:00</updated><title type='text'>Cabinet medical online</title><content type='html'>Totul se informatizeaza incet-incet.&lt;div&gt;Asa si &lt;a href="http://ecografie-galati.ro/"&gt;Cabinetul de Ecografie dr. Frangu Irina&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;Acolo, ecografia dvs. e pe maini bune!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-8047348725763998440?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/8047348725763998440/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2010/12/cabinet-medical-online.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/8047348725763998440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/8047348725763998440'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2010/12/cabinet-medical-online.html' title='Cabinet medical online'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-4210791905458833063</id><published>2010-03-17T09:26:00.002+02:00</published><updated>2010-03-17T09:32:15.156+02:00</updated><title type='text'></title><content type='html'>Cateva retete din categoria "reteta zilei", la GastroWiki:&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://gastrowiki.ro/Ficat_de_pui_prajit"&gt;Ficat de pui prajit&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://gastrowiki.ro/Ciorba_de_vacuta"&gt;Ciorba de vacuta, testata la Newcastle, de Otilia!&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gastrowiki.ro/Placinta_cu_dovleac"&gt;Placinta de dovleac&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://gastrowiki.ro/Fasole_verde_cu_carne_de_pui"&gt;Fasole verde cu carne de pui&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Pofta buna!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-4210791905458833063?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/4210791905458833063/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2010/03/cateva-retete-din-categoria-reteta.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/4210791905458833063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/4210791905458833063'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2010/03/cateva-retete-din-categoria-reteta.html' title=''/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-6573762693976768465</id><published>2010-03-11T14:18:00.002+02:00</published><updated>2010-03-11T14:21:35.745+02:00</updated><title type='text'>GastroWiki reloaded</title><content type='html'>Revenim cu vesti despre GastroWiki!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Avem o gramada de retete:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Feluri principale: &lt;a href="http://www.gastrowiki.ro/index.php?title=Categorie:Feluri_Principale"&gt;http://www.gastrowiki.ro/index.php?title=Categorie:Feluri_Principale&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Deserturi: &lt;a href="http://www.gastrowiki.ro/index.php?title=Categorie:Deserturi"&gt;http://www.gastrowiki.ro/index.php?title=Categorie:Deserturi&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Revenim in curand si cu alte noutati!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-6573762693976768465?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/6573762693976768465/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2010/03/gastrowiki-reloaded.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6573762693976768465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6573762693976768465'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2010/03/gastrowiki-reloaded.html' title='GastroWiki reloaded'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-3067187863093107713</id><published>2010-03-11T09:53:00.001+02:00</published><updated>2010-03-11T09:54:27.841+02:00</updated><title type='text'>www.gastrowiki.ro</title><content type='html'>Astazi lansam un nou proiect. Nu este legat de facultate, si este inca in forma Beta.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enciclopedia romaneasca de retete 100% traditionale:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.gastrowiki.ro"&gt;www.gastrowiki.ro&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Intrati si gatiti! E bun, ca la mama acasa.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-3067187863093107713?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/3067187863093107713/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2010/03/wwwgastrowikiro.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/3067187863093107713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/3067187863093107713'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2010/03/wwwgastrowikiro.html' title='www.gastrowiki.ro'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-125071802556164590</id><published>2009-01-11T18:18:00.008+02:00</published><updated>2009-01-13T20:29:07.936+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>jQuery, interfete web la superlativ</title><content type='html'>De ce avem nevoie de o librarie JavaScript?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-&lt;/span&gt; browser-ele nu interpreteaza toate la fel "portia" HTML + CSS + Javascript pe care o "servesc"; un layer de abstractie care sa ascunda de noi acest crud adevar, ar fi numai bun&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-&lt;/span&gt; primitivele JavaScript sunt suficient de rudimentare cat sa nu-ti permita sa faci mai nimic usor&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; e una din solutiile pentru aceste probleme:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-&lt;/span&gt; este mic (varianta "minima" are 15kb)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-&lt;/span&gt; este rapid (l-am folosit in productie, si se comporta extrem de bine)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-&lt;/span&gt; este compatibil cu CSS1-CSS3 si &lt;span style="font-style: italic;"&gt;cross-browser&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Pentru niste exemple "live", va recomand:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-&lt;/span&gt; un tutorial cu exemple, la &lt;a href="http://docs.jquery.com/Tutorials:Live_Examples_of_jQuery"&gt;http://docs.jquery.com/Tutorials:Live_Examples_of_jQuery&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-&lt;/span&gt; &lt;a href="http://docs.jquery.com/Main_Page"&gt;documentatia jQuery&lt;/a&gt;: langa fiecare functie se regaseste si un exemplu de folosire al ei&lt;br /&gt;&lt;br /&gt;Sa trecem acum la treburi mai tehnice. &lt;span style="font-weight: bold;"&gt;Iata cum arata un hello world in jQuery:&lt;/span&gt;&lt;br /&gt;&lt;pre style="font-weight: bold;"&gt; $(document).ready(function(){&lt;br /&gt;alert("Hello, world!");&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;In primul rand, nu va speriati de semnul dolar ($) - este un nume de functie permis in JavaScript. In al doilea rand, va invit sa observati faptul ca jQuery implementeaza concepte din programarea functionala, in exemplul nostru fiind transmisa ca parametru o functie anonima. Daca doriti un articol introductiv usurel despre programare functionala, va recomand cu caldura: &lt;a href="http://www.joelonsoftware.com/items/2006/08/01.html"&gt;Can your programming language do this?&lt;/a&gt;, de &lt;a href="http://www.joelonsoftware.com/AboutMe.html"&gt;Joel Spolski&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;jQuery se bazeaza pe cateva principii de programare sanatoase, care fac codul mult mai clar si mai scurt:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;filtrare:&lt;/span&gt; principala functionalitate a functiei $() este de a filtra elementele din arborele DOM. &lt;a href="http://docs.jquery.com/Selectors"&gt;Sintaxa este usor de invatat&lt;/a&gt; si este asemanatoare cu altele de care v-ati mai lovit&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;chaining:&lt;/span&gt; ati observat probabil constructia $(document).ready(): orice functie jQuery intoarce obiectul asupra careia a actionat functia, modificat; aceasta este o constructie standard in multe framework-uri, precum &lt;a href="http://www.hibernate.org/"&gt;Hibernate&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;manipulation: &lt;/span&gt;chiar daca rezultatul filtrarii este format dintr-unul sau mai multe elemente, toate pot fi modificate in acelasi stil; operatii standard: adaugare/stergere clasa CSS, modificarea textului nodului, ascunderea elementelor; daca nu va ajung functionalitatile predefinite, nu-i nici o problema, puteti defini propria: &lt;span style="font-weight: bold;"&gt;$(criteriu filtrare).each(function(node) { /* cod aici */ });&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;suporta plugin-uri&lt;/span&gt;: permite definirea de plugin-uri, si gasiti de toate pentru toti, de la elemente grafice construite peste aceasta librarie (exista chiar &lt;a href="http://ui.jquery.com/"&gt;jQuery UI&lt;/a&gt;). Printre cele mai folositoare, enumar: tree-uri si tabele&lt;/li&gt;&lt;/ul&gt;Sperand ca v-am convins sa-l incercati, va urez spor la programat!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-125071802556164590?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/125071802556164590/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2009/01/jquery-interfete-web-la-superlativ.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/125071802556164590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/125071802556164590'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2009/01/jquery-interfete-web-la-superlativ.html' title='jQuery, interfete web la superlativ'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-1288734051582527509</id><published>2009-01-09T22:04:00.004+02:00</published><updated>2009-01-11T10:51:50.567+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><category scheme='http://www.blogger.com/atom/ns#' term='tag cloud'/><title type='text'>Tag cloud pe blogger</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Tag_cloud"&gt;Ce este un tag cloud?&lt;/a&gt; O metoda simpla si placuta de a vizualiza frecventa tag-urilor asociate cu post-urile dvs. Amintindu-mi de acest concept web2.0-ish, m-am hotarat sa-l implementez pe blog-ul nostru. Am cautat un widget folosind tool-ul de la blogger pentru editarea layout-ului paginii, dar nu am gasit nimic care sa:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;arate frumos, "clean"&lt;/li&gt;&lt;li&gt;sa nu aiba reclame asociate&lt;/li&gt;&lt;/ul&gt;Dupa ce am cautat putin pe google, am dat peste aur: &lt;a href="http://phy3blog.googlepages.com/Beta-Blogger-Label-Cloud.html"&gt;http://phy3blog.googlepages.com/Beta-Blogger-Label-Cloud.html&lt;/a&gt;. Gasiti acolo explicatii pas cu pas despre cum se face, iar rezultatul il puteti vedea chiar la noi pe site. Imi pare rau daca nu va plac culorile, dar eu nu prea am simt artistic :)&lt;br /&gt;&lt;br /&gt;Spor la blog-arit!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-1288734051582527509?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/1288734051582527509/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2009/01/tag-cloud-pe-blogger.html#comment-form' title='1 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/1288734051582527509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/1288734051582527509'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2009/01/tag-cloud-pe-blogger.html' title='Tag cloud pe blogger'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-2879613428652757070</id><published>2009-01-08T21:15:00.004+02:00</published><updated>2009-01-09T21:46:11.157+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javaweb'/><category scheme='http://www.blogger.com/atom/ns#' term='profiling'/><category scheme='http://www.blogger.com/atom/ns#' term='imblanzirea bestiei'/><title type='text'>Profiling-ul aplicatiilor web in Java</title><content type='html'>&lt;span style="font-weight: bold;"&gt;"4% din cod ocupa 50% din timpul de rulare al unui program" - Donald Knuth&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Deci se merita sa gasim cei 4% pentru ca optimizarea lor va avea efecte substantiale. &lt;a href="http://jamonapi.sourceforge.net/"&gt;Jamon&lt;/a&gt; este un tool care ne permite monitorizarea operatiilor dintr-o aplicatie web Java, si una din metodele de a se integra intr-o aplicatie web este sub forma unui &lt;span style="font-style: italic;"&gt;filtru&lt;/span&gt;. Standardul J2EE specifica prezenta unor &lt;a href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/InterceptingFilter.html"&gt;filtre intr-o aplicatie web&lt;/a&gt;, care permit interceptarea tuturor request-urilor si efectuarea unor actiuni la interceptare. Sunt necesare doar cateva linii de cod (in afara de plasarea jar-ului Jamon la locatia potrivita), si le puteti gasi la sfarsitul articolului. Frumusetea solutiei oferite de el este ca nu este nevoie sa schimbati codul aplicatiei deja scrise, are performante foarte bune (pot spune ca l-am vazut implementat in productie cu succes) si este de un real ajutor!&lt;br /&gt;&lt;br /&gt;Ce stie sa monitorizeze? Timpul de rulare, exceptiile aruncate, si diverse statistici matematice legate de acestea, pentru:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;request-uri HTTP&lt;br /&gt;&lt;/li&gt;&lt;li&gt;accesul la baza de date, printr-un driver JDBC de tip proxy, care are rolul de a intercepta apelurile catre baza de date, sa le dea mai departe catre driver-ul care trebuie sa le execute, si sa monitorizeze timpul de acces&lt;br /&gt;&lt;/li&gt;&lt;li&gt;apelurile catre metodele oricarei &lt;span style="font-style: italic;"&gt;interfete&lt;/span&gt; Java: creaza un proxy dinamic la runtime, care monitorizeaza apelurile dvs. si le da mai departe; o metoda de a implementa acest lucru este folosind &lt;a href="http://java.sun.com/j2se/1.3/docs/guide/reflection/proxy.html"&gt;API-ul Dynamic Proxy&lt;/a&gt;, care are suport nativ in JVM-urile recente&lt;/li&gt;&lt;/ul&gt;Cum arata monitorizarea unui cod folosind Jamon? Foarte simplu!&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Monitor mon = MonitorFactory.start(opName);&lt;br /&gt;/* Code being timed */&lt;br /&gt;mon.stop();&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-2879613428652757070?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/2879613428652757070/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2009/01/profiling-ul-aplicatiilor-web-in-java.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/2879613428652757070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/2879613428652757070'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2009/01/profiling-ul-aplicatiilor-web-in-java.html' title='Profiling-ul aplicatiilor web in Java'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-2879869660577062128</id><published>2009-01-07T20:18:00.006+02:00</published><updated>2009-01-07T21:31:56.332+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='antreprenoriat'/><category scheme='http://www.blogger.com/atom/ns#' term='elastic computing'/><title type='text'>Utility computing</title><content type='html'>Azi m-am dus sa platesc chiria la garsoniera, intretinerea, curentul, si factura pentru &lt;a href="http://aws.amazon.com/ec2/"&gt;puterea de calcul inchiriata de la Amazon&lt;/a&gt; luna asta. Ceeeeeee?? Da, ati citit bine. Puterea de calcul se poate inchiria si ea cu ora, dupa nevoi. Amazon a lansat &lt;a href="http://aws.amazon.com/ec2/"&gt;EC2&lt;/a&gt;, Elastic Compute Cloud, o infrastructura cu foarte multa putere de calcul din care puteti inchiria o bucatica (sau mai mult, dupa nevoi), contra unui tarif orar.&lt;br /&gt;&lt;br /&gt;Daca vreti ca urmatoarea data cand un site serios publica un link catre site-ul dvs., server-ul web din sufragerie cu 512 MB RAM si un Apache antic si exploit-abil la maxim sa nu ia foc pentru ca a incercat sa serveasca 10 clienti simultan, aveti nevoie de conceptul de "elastic computing". Si Amazon, pentru ca nu-i sta gandul numai la vandut carti, va arata viitorul internetului si al &lt;a href="http://inter.feteweb.eu/"&gt;interfetelor web&lt;/a&gt;. Care este mult mai mult decat HTML/CSS/Javascript..&lt;br /&gt;&lt;br /&gt;Configurezi o masina virtuala, iti instalezi pe ea ce soft-uri vrei, o uploadezi la Amazon. Controlezi prin intermediul unui web-service pe cate "instante" sa ruleze, si ai controlul individual asupra instantelor (via un shell, unde ai acces root, sau prin web-service, din care pot fi chiar si resetate!). Instantele sunt de mai multe tipuri, cea mai ieftina fiind:&lt;span style="font-weight: bold;"&gt; Small Instance (Default)&lt;/span&gt; 1.7 GB of memory, 1 &lt;span class="caps"&gt;EC2&lt;/span&gt; Compute Unit (1 virtual core with 1 &lt;span class="caps"&gt;EC2&lt;/span&gt; Compute Unit), 160 GB of instance storage, 32-bit platform.  &lt;span style="font-style: italic;"&gt;Asta te costa $0.10/h pentru Linux si $0.125/h pentru Windows.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vrei ca atunci cand ai oprit instanta datele tale sa ramana inregistrate pentru posteritate? Nimic mai simplu, exista &lt;span style="font-weight: bold;" class="h3"&gt;Elastic Block Store&lt;/span&gt; care este un storage expus ca un &lt;a href="http://en.wikipedia.org/wiki/Block_device#Block_devices"&gt;block device&lt;/a&gt; catre instante, caruia i se poate face back-up si replicare automat. &lt;span style="font-style: italic;"&gt;Practic, nu te intereseaza unde sunt stocate datele tale, dar sunt accesibile din toate instantele la modicul pret de $0.1 / GB / luna&lt;/span&gt; (da, nu ti le tin la nesfarsit decat daca platesti :D). Mai platesti si $0.1 pentru fiecare milion de request-uri I/O asupra "discului" respectiv.&lt;br /&gt;&lt;br /&gt;Accesarea unei instante se traduce in trafic pe internet. Nimic mai simplu, esti taxat si pentru asta. $0.10/GB pentru trafic incoming si $0.17/GB pentru trafic outgoing. Ai nevoie si de adrese IP? Bani sa ai, ca Amazon ti le da si pe-alea... Iti mai cumperi si domeniu, introduci intrarea DNS care mapeaza host-ul catre IP-urile date de Amazon si ai un hosting de toata frumusetea.. platit cu ora! Si cu disponibilitate 99.95%.&lt;br /&gt;&lt;br /&gt;Nu va speriati de numere. Daca faceti un calcul simplu, o sa vedeti ca iesiti mult mai ieftin daca cumparati aceste servicii de la ei, decat sa:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;cumparati propriile server-e&lt;/li&gt;&lt;li&gt;aveti grija sa le ventilati (deja de la cateva calculatoare incolo trebuie o instalatie de aer conditionat mai serioasa)&lt;/li&gt;&lt;li&gt;platiti un om care sa le "monitorizeze" - sysadmin-ul (nu uitati ca la noi taxele reprezinta peste 50% din costurile salariale)&lt;/li&gt;&lt;li&gt;platiti omul suficient de bine a.i. sa fie dispus sa se trezeasca noaptea ca sa nu aveti downtime prea mare..&lt;/li&gt;&lt;/ul&gt;Sigur, puteti sa cumparati servicii de hosting obisnuite. Dar ele nu sunt facute pentru site-uri web care scaleaza. Si nu beneficiaza de suport tehnic 24/7 profesionist. E o solutie care s-a demonstrat ca functioneaza, nu trebuie sa faceti experimente. Nu e timp de asta.&lt;br /&gt;&lt;br /&gt;..si e nemaipomenit pentru &lt;a href="http://en.wikipedia.org/wiki/Startup_company"&gt;start-up-uri&lt;/a&gt;, pentru ca &lt;span style="font-weight: bold;"&gt;nu presupune o investitie initiala mare&lt;/span&gt;. Spor la facut website-uri scalabile si de succes!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-2879869660577062128?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/2879869660577062128/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2009/01/utility-computing.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/2879869660577062128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/2879869660577062128'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2009/01/utility-computing.html' title='Utility computing'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-4250859929679108493</id><published>2009-01-03T12:45:00.006+02:00</published><updated>2009-01-03T16:26:42.386+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='securitate'/><category scheme='http://www.blogger.com/atom/ns#' term='md5'/><title type='text'>MD5 a cazut</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;La multi ani, 2009!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;De revelion, cercetatorii in domeniul securitatii au demonstrat ca &lt;span style="font-weight: bold;"&gt;MD5&lt;/span&gt;, creat de faimosul Ronald Rivest, unul din co-autorii Cormen-ului, &lt;span style="font-weight: bold;"&gt;nu este sigur pentru a fi folosit in PKI &lt;/span&gt;(Public Key Infrastructure). Folosind un &lt;a href="http://www.crunchgear.com/2008/12/30/md5-collision-creates-rogue-certificate-authority/"&gt;atac bazat pe o coliziune de hash MD5,&lt;/a&gt; au reusit sa creeze un CA fals care sa garanteze pentru un website rauvoitor. Combinat cu &lt;a href="http://en.wikipedia.org/wiki/DNS_cache_poisoning"&gt;DNS cache poisoning&lt;/a&gt;, si cu o metoda recenta descoperita de &lt;a href="http://en.wikipedia.org/wiki/Dan_Kaminsky"&gt;Dan Kaminski&lt;/a&gt; de a face acest lucru, un rau-voitor va poate fura datele cartii de credit astfel:&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Isi creaza un CA fals, care va garanta autenticitatea unui website fals&lt;/li&gt;&lt;li&gt;Isi alege "tinta", sa spunem &lt;a href="http://www.bcr.ro/"&gt;www.bcr.ro&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Otraveste cache-ul unui server DNS la care apelati cu un IP fals pentru hostname-ul bcr.ro&lt;/li&gt;&lt;li&gt;Gazduieste la acel IP un webserver care livreaza o pagina foarte asemanatoare cu victima, care expune un certificat public semnat de CA-ul fals&lt;/li&gt;&lt;li&gt;Cand deschideti o conexiune sigura criptata HTTPS pentru a introduce datele card-ului dvs., raufacatorul le va prelua si va efectua tranzactii in locul dvs.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt; Gasiti mai multe detalii (tehnice) mai jos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ce e un certificat digital si la ce foloseste?&lt;/span&gt; Un certificat este un fisier care contine niste date de identificare publice, si o semnatura a unui Certification Authority (prescurtat de acum CA), care garanteaza veridicitatea datelor. Daca reusesti sa strecori datele dorite de tine si sa falsifici semnatura CA-ului, poti sa te dai drept cine vrei:) Un exemplu real-life ar fi cartea de identitate: contine numele tau si niste elemente de siguranta ale Politiei Romane ca sa garanteze ca e (aproape) imposibil sa fabrici tu unul.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ce este o pereche (cheie privata, cheie publica)?&lt;/span&gt; Cele doua chei sunt 2 numere folosite in algoritmii de criptare asimetrici, astfel incat:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;data fiind cheia publica, este foarte greu de reconstituit cheia privata (necesita un efort computational enorm - vezi de exemplu &lt;a href="http://en.wikipedia.org/wiki/Discrete_logarithm"&gt;problema logaritmului discret&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;un mesaj criptat cu cheia publica poate fi decriptat doar folosind cheia privata&lt;/li&gt;&lt;/ul&gt;O analogie putin fortata cu real-life ar fi ca unui infractor ii este greu sa fabrice uneltele necesare pentru realizarea elementelor de siguranta de pe o carte de identitate, chiar daca el detine o C.I.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ce este un rezumat al unui mesaj? Ce este MD5?&lt;/span&gt;&lt;br /&gt;Rezumatul unui mesaj este un numar, de lungime fixata, calculat folosind un algoritm determinist pe baza unui mesaj de lungime oricat de mare. In limbaj popular, este folosit termenul "hash". MD5 este o astfel de functie de hash.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cum poate fi folosita o astfel de pereche pentru semnarea unui mesaj?&lt;/span&gt;&lt;br /&gt;Daca cheile au fost generate cu un algoritm potrivit, atunci cheia privata poate fi folosita pentru a calcula un numar bazat pe un rezumat al mesajului, iar cheia publica pentru a valida faptul ca cel care a semnat mesajul detine intr-adevar cheia privata. Observam ca trebuie ca algoritmul de semnare trebuie sa aiba proprietatea ca este greu de "fabricat" o semnatura dat fiind un mesaj, sau greu de fabricat un mesaj plauzibil data fiind o semnatura.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cum folosesc browser-ele un certificat?&lt;/span&gt; Pentru o conexiune sigura (&lt;a href="http://en.wikipedia.org/wiki/Https"&gt;HTTPS&lt;/a&gt;), browser-ul va examina certificatul pe care il publica un site pentru a stabili ca la IP-ul de la celalalt capat al conexiunii se afla "cine trebuie". Pentru ca user-ul este interesat sa transmita date "sensibile", el le va cripta folosind cheia publica expusa in certificat, si detinatorul cheii private (si numai el!) le va putea decripta. Singura problema ramasa este asocierea cheii publice cu website-ul (hostname-ul). Aici intervine certificatul publicat de site, el fiind semnat de un CA.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Si cine imi garanteaza ca acest CA e de incredere? &lt;/span&gt;Exista 2 tipuri de ca: root CA si celelalte. Root CA sunt mari si cunoscute, iar certificatele lor sunt incluse in browser-e. Pentru a determina ca un CA e de incredere, un browser urmeaza algoritmul:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;daca certificatul CA-ului curent se afla in lista mea de root CA, inseamna ca e de incredere&lt;/li&gt;&lt;li&gt;daca certificatul CA-ului curent este semnat de un alt CA, atunci ce mai am de verificat este CA-ul care a semnat, si reiau algoritmul pentru el&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Bun, si pana la urma, care e problema?&lt;/span&gt; Pai totul se bazeaza pe sistemul CA-urilor. Tu te bazezi pe ele ca sa verifici ca un site este cine pretinde ca este. Daca cineva gaseste o metoda sa creeze un CA malitios, acesta poate garanta pentru un website care nu are certificatul corect. Algoritmul de semnare al certificatului unui CA folosea pana nu demult MD5, care este vulnerabil la atacuri de tipul "coliziune": poate fi fabricat un mesaj asemanator cu cel initial astfel incat hash-urile MD5 sa coincida. Asadar, poate fi fabricat un certificat asemanator cu cel initial, cu acelasi hash MD5, si atunci cele doua vor avea aceeasi semnatura digitala, doar ca in cel falsificat am introdus ce informatii am dorit noi. Deci fara a sti cheia privata, am semnat un mesaj in care am pus continutul dorit de noi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-4250859929679108493?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/4250859929679108493/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2009/01/md5-cazut.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/4250859929679108493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/4250859929679108493'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2009/01/md5-cazut.html' title='MD5 a cazut'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-2556386115807577101</id><published>2008-12-30T12:59:00.002+02:00</published><updated>2008-12-30T13:01:20.140+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><category scheme='http://www.blogger.com/atom/ns#' term='timetracking'/><title type='text'>Time-tracking</title><content type='html'>Nici un proiect web 2.0 nu va avea succes daca nu va fi gata la timp, si nu va fi executat intr-un mod organizat. Cititi &lt;a href="http://inter.feteweb.eu/component/content/article/62-my-intervals"&gt;articolul lui Razvan de pe site&lt;/a&gt; ca sa va puneti in tema cu solutia pe care o foloseste el. Si credeti-ma, la el functioneaza :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-2556386115807577101?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/2556386115807577101/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/time-tracking.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/2556386115807577101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/2556386115807577101'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/time-tracking.html' title='Time-tracking'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-7517968571204897944</id><published>2008-12-30T12:02:00.002+02:00</published><updated>2008-12-30T12:58:10.246+02:00</updated><title type='text'>Te simti aparat de un "captcha"?</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Captcha"&gt;Captcha&lt;/a&gt; este imaginea enervanta de pe site-uri, scrisa stramb de nu o puteti descifra si voi, menita sa impiedice calculatoarele sa-si creeze automat conturi pe site-urile respective. Pentru ca daca au reusit acest lucru, veti fi mai devreme sau mai tarziu tinta unui spamming intens, sau al unui &lt;a href="http://en.wikipedia.org/wiki/Denial-of-service_attack"&gt;DOS&lt;/a&gt; / &lt;a href="http://en.wikipedia.org/wiki/Ddos#Distributed_attack"&gt;DDOS&lt;/a&gt; attack.&lt;br /&gt;&lt;br /&gt;Vazand pe site-ul unor colegi binevoitori asa ceva:&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;&lt;a href="http://interfeteweb.schibucuresti.ro/news.php"&gt;http://interfeteweb.schibucuresti.ro/news.php&lt;/a&gt;, mi-am adus aminte ca am citit pe Slashdot ca nu ar fi chiar complicat sa recunosti multe clase de captcha, ba mai mult s-au gasit niste rusi care sa recunoasca pe cel de la Gmail cu eficienta de 20%. Astfel, ei au reusit sa economiseasca foarte multi bani, deoarece plateau niste negrisori sa citeasca Captcha cu 1 cent / bucata.&lt;br /&gt;&lt;br /&gt;Ca sa va ingroziti si mai tare, iata 2 dintre site-urile pe subiect care mi-au placut:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://caca.zoy.org/wiki/PWNtcha"&gt;http://caca.zoy.org/wiki/PWNtcha&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cs.sfu.ca/%7Emori/research/gimpy/"&gt;http://www.cs.sfu.ca/~mori/research/gimpy/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Pe scurt, se pare ca captcha-ul colegilor mei ar fi chiar foarte simplu de recunoscut automat. Cu prima ocazie, o sa incerc si eu de curiozitate. Desi captcha este o idee extraordinara, din pacate de multe ori ea este doborata de o executie slaba / amatoriceasca:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Like any security system, design flaws in a system implementation can prevent the theoretical security from being realized. Many CAPTCHA implementations, especially those which have not been designed and reviewed by experts in the fields of security, are prone to common attacks."&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-7517968571204897944?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/7517968571204897944/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/te-simti-aparat-de-un-captcha.html#comment-form' title='2 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/7517968571204897944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/7517968571204897944'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/te-simti-aparat-de-un-captcha.html' title='Te simti aparat de un &quot;captcha&quot;?'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-6218043242692760437</id><published>2008-12-29T13:32:00.005+02:00</published><updated>2008-12-29T22:24:03.397+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='heatmap'/><category scheme='http://www.blogger.com/atom/ns#' term='seo'/><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><title type='text'>Heatmap - cat de "fierbinte" e site-ul tau?</title><content type='html'>Mi-am adus astazi aminte de o idee geniala pe care am vazut-o cu cateva luni in urma: &lt;a href="http://en.wikipedia.org/wiki/Heatmap"&gt;heatmaps&lt;/a&gt;. Pe scurt, se inregistreaza folosind JavaScript unde se da fiecare click pe pagina si astfel se pot evidentia grafic &lt;a href="http://crazyegg.com/images/heatmap.jpg"&gt;zonele unde se face click mai des&lt;/a&gt; (sau unde sta mouse-ul mai des). Fiindca atunci cand user-ul face click, se si uita unde (hopefully..), zonele cele mai "fierbinti" sunt candidatii ideali pentru:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a plasa continutul pe care vreti sa-l promovati&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a identifica elementele grafice care au cel mai mare succes&lt;/li&gt;&lt;/ul&gt;Una din solutiile online apreciate este: &lt;a href="http://www.crazyegg.com"&gt;www.crazyegg.com&lt;/a&gt;. Dispun atat de servicii platite cat si de un serviciu free, care permite monitorizarea a 4 pagini si a unui maxim de 6000 de afisari / luna. Suficient pentru noi. In interfata Google Analytics puteti vedea ceva in aceeasi idee, "Site Overlay", ca un entry in meniul "Content".&lt;br /&gt;&lt;br /&gt;Instalarea CrazyEgg este foarte simpla, dupa inregistrarea la ei pe site si setup-ul de acolo, se include un script in template-ul siteului, tot la sfarsit, in zona unde ati pus si Google Analytics.&lt;br /&gt;&lt;br /&gt;Pana data viitoare, cand va voi arata primele rezultate ale heatmap-ului, va doresc "La multi vizitatori"!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-6218043242692760437?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/6218043242692760437/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/heatmap-cat-de-fierbinte-e-site-ul-tau.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6218043242692760437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6218043242692760437'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/heatmap-cat-de-fierbinte-e-site-ul-tau.html' title='Heatmap - cat de &quot;fierbinte&quot; e site-ul tau?'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-6004292130804126773</id><published>2008-12-29T10:29:00.005+02:00</published><updated>2008-12-29T14:28:59.359+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seo'/><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><title type='text'>Cum sa-ti afli pozitia pe google?</title><content type='html'>Am investit 30 de minute azi dimineata pentru a gasi un program / site care sa-mi calculeze automat pozitia pe google. Peste jumatate nu functionau, iar din cele care functionau, nu dadeau rezultate bune. Sfatul meu este sa luati calea cea mai sigura:&lt;br /&gt;&lt;br /&gt;http://www.google.ro/search?hl=ro&amp;amp;q=interfete+web&amp;amp;btnG=Căutare+Google&amp;amp;meta=&lt;span style="font-weight: bold;"&gt;&amp;amp;num=100&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Adaugand sectiunea bold la sfarsit, il fortati pe nenea Google sa afiseze rezultatele cate 100 pe pagina. Good old FireFox va poate asista apoi cu keyword search (Ctrl-F). In caz ca nu apareti pe prima pagina (cum e si cazul nostru:) ) , insistati pe paginile urmatoare.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-6004292130804126773?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/6004292130804126773/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/cum-sa-ti-afli-pozitia-pe-google.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6004292130804126773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6004292130804126773'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/cum-sa-ti-afli-pozitia-pe-google.html' title='Cum sa-ti afli pozitia pe google?'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-386505312817911399</id><published>2008-12-27T10:40:00.005+02:00</published><updated>2008-12-29T14:29:20.219+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seo'/><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><title type='text'>De ce n-are ursul coada?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;... sau de ce nu merge sa-ti maresti PageRank-ul daca postezi un link pe Wikipedia catre site-ul tau.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mai deunazi va povesteam despre colegii mei inventivi care &lt;a href="http://inter-feteweb.blogspot.com/2008/12/seo-dirty-clean-cool.html"&gt;s-au gandit sa posteze pe Wikipedia un link catre site-ul lor&lt;/a&gt;. PageRank a fost gandit ca fiind direct corelat cu probabilitatea ca un user sa ajunga pe site-ul respectiv, navigand din link in link, dar pe o scara logaritmica. Deci ar fi trebuit sa creasca.&lt;br /&gt;&lt;br /&gt;Totusi, cei de la Google s-au gandit inaintea noastra ca ar putea sa se intample asa ceva, si au introdus atributul &lt;a href="http://en.wikipedia.org/wiki/Nofollow"&gt;"rel=nofollow"&lt;/a&gt; pentru link-uri. Pe scurt, acesta spune crawler-ului care se afla pe pagina curenta sa nu urmeze link-ul respectiv, sau daca il urmeaza, sa nu modifice ranking-ul paginii catre care e link-ul.&lt;br /&gt;&lt;br /&gt;Si cum nu o data au patit-o cei de la Wikipedia, orice link editabil de un utilizator de pe site-ul lor are automat nofollow setat. Puteti alege o pagina de pe Wikipedia la intamplare, sa dati view source, si sa va convingeti si singuri.&lt;br /&gt;&lt;br /&gt;Happy SEO-ing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-386505312817911399?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/386505312817911399/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/de-ce-n-are-ursul-coada.html#comment-form' title='1 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/386505312817911399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/386505312817911399'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/de-ce-n-are-ursul-coada.html' title='De ce n-are ursul coada?'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-5890966065514541923</id><published>2008-12-24T13:15:00.004+02:00</published><updated>2008-12-24T13:57:22.224+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>Debug-area unei aplicatii Java in timp ce ruleaza</title><content type='html'>Zilele astea m-am lovit de urmatoarea problema: o aplicatie Java se blocheaza (aparent) fara motiv. Pentru ca nu am acces la codul sursa al aplicatiei, am procedat in felul urmator (treaba se desfasoara pe un sistem *nix):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;am aflat PID-ul JVM-ului in care e rulata aplicatia (daca ea se numeste "Test", un &lt;span style="font-style: italic;"&gt;ps ax | grep Test&lt;/span&gt; e suficient)&lt;/li&gt;&lt;li&gt;am facut un core dump pentru procesul respectiv: &lt;span style="font-style: italic;"&gt;gcore pid_no&lt;pid&gt; &lt;/pid&gt;&lt;/span&gt;(va rezulta un fisier numit &lt;span style="font-style: italic;"&gt;core.&lt;pid&gt;&lt;/pid&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;pid_no&lt;/span&gt;). Acesta contine spatiul de adresa al JVM-ului (pe romaneste, toata memoria pe care o accesa JVM-ul in timp ce rula, inclusiv executabilul sau incarcat in memorie)&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;am apelat &lt;span style="font-style: italic;"&gt;which java&lt;/span&gt; pentru a determina calea catre JVM-ul default (sa speram ca va aflati in cazul simplu in care ati compilat cu javac-ul corespunzator JVM-ului default)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;acum totul e simplu: &lt;span style="font-style: italic;"&gt;jstack &lt;cale-catre-jvm&gt;&lt;pid&gt;&lt;span style="font-style: italic;"&gt;path_to_jvm core.pid_no. &lt;/span&gt;&lt;/pid&gt;&lt;/cale-catre-jvm&gt;&lt;/span&gt;Acesta ne va intoarce cate un stack trace pentru fiecare thread care ruleaza, impreuna cu informatia de debug asociata; drept bonus, are si deadlock detector asociat&lt;/li&gt;&lt;/ul&gt;Happy debugging!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-5890966065514541923?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/5890966065514541923/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/debug-area-unei-aplicatii-java-in-timp.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/5890966065514541923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/5890966065514541923'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/debug-area-unei-aplicatii-java-in-timp.html' title='Debug-area unei aplicatii Java in timp ce ruleaza'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-79917299030739366</id><published>2008-12-22T21:40:00.005+02:00</published><updated>2008-12-29T14:29:42.910+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><category scheme='http://www.blogger.com/atom/ns#' term='javaweb'/><category scheme='http://www.blogger.com/atom/ns#' term='imblanzirea bestiei'/><title type='text'>Aplicatii web in Java (3) - Struts 1.x + Tiles</title><content type='html'>Daca dupa &lt;a href="http://inter-feteweb.blogspot.com/2008/12/plicatii-web-in-java-2-spring-framework.html"&gt;articolul trecut&lt;/a&gt; nu v-am convins sa optati pentru facilitatile MVC ale Spring, puteti sa folositi solutia consacrata (are niste dezavantaje, dar odata ce v-ati obisnuit cu el se poate lucra rapid): &lt;a href="http://struts.apache.org/"&gt;Struts&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Struts are un controller care parseaza URL-urile si apeleaza clase Java (numite "actiuni") pentru a crea si popula un model care va fi dat mai departe la layer-ul de view (realizat de obicei cu JSP). O actiune poate sa decida randarea paginii sau redirectionarea (interna) catre un alt URL (care va avea asociata o actiune).&lt;br /&gt;&lt;br /&gt;Daca insa doriti sa faceti un "mashup", sau sa creati module reutilizabile responsabile pentru randarea unor bucati de pagina, veti constata limitarea Struts. Intr-un site scalabil, fiecare bucata de pagina este randata de un serviciu web separat, si deci care poate fi relocat pe un alt server (sau grup de servere), iar Struts nu suporta aceasta paradigma.&lt;br /&gt;&lt;br /&gt;Aici intervine &lt;a href="http://tiles.apache.org/"&gt;Tiles&lt;/a&gt;, un plug-in de Struts care lucreaza cu layout-uri. Un layout specifica pozitiile in care trebuiesc inserate "tile"-urile din care este format si este descris in limbaj JSP. Reprezentarea cea mai generala a unui tile este un URL, care poate reda la randul sau un alt layout, si asa mai departe.&lt;br /&gt;&lt;br /&gt;Cum afla o "actiune" care sunt parametrii request-ului HTTP facut de utilizator? Aceasta este una din cele mai simpatice facilitati ale Struts-ului, numita auto-populare: intr-o asociere URL-actiune se mentioneaza si o clasa Java numita Form (ActionForm), care este un bean ai carui membri sunt setati automat de catre Struts inainte de a apela actiunea. Actiunea va primi ca parametru un Form auto-populat si validat. Validarea se face de asemenea inainte de apelarea actiunii, iar rutinele sunt configurate separat fata de actiuni. Avantajele acesti abordari:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;se separa clar validarea datelor de crearea modelului&lt;/li&gt;&lt;li&gt;actiunea poate presupune ca lucreaza cu date valide&lt;/li&gt;&lt;/ul&gt;In curand vom incepe sa postam si tutoriale pas cu pas despre crearea unei aplicatii web, si atunci aceste explicatii abstracte vor fi cu adevarat folositoare.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-79917299030739366?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/79917299030739366/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/aplicatii-web-in-java-3-struts-1x-tiles.html#comment-form' title='1 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/79917299030739366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/79917299030739366'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/aplicatii-web-in-java-3-struts-1x-tiles.html' title='Aplicatii web in Java (3) - Struts 1.x + Tiles'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-3108867701401826616</id><published>2008-12-22T18:09:00.005+02:00</published><updated>2008-12-29T14:30:27.229+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seo'/><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><title type='text'>SEO - dirty, clean, cool</title><content type='html'>In episodul de astazi o sa va povestesc despre tehnicile SEO folosite de toti concurentii pentru valoroasele puncte la I.E. Eu le-as imparti in 3 categorii:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;dirty: fac orice numai ca sa iau 5 sutimi la IE&lt;/li&gt;&lt;li&gt;clean: sunt baiat cuminte si respect regulile de bun simt, dar n-am nici o idee geniala&lt;/li&gt;&lt;li&gt;cool: am o idee meseriasa, si toata lumea intra pe site din cauza ei&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dirty&lt;/span&gt; (sunt convins ca mai sunt si altele, doar de astea am auzit eu):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;se pune ca homepage la calculatoarele din laborator pagina&lt;/li&gt;&lt;li&gt;se editeaza pe wikipedia link-uri catre site&lt;/li&gt;&lt;li&gt;se inscrie site-ul in 9999 directoare web, la gramada, si homepage-ul va arata oribil (temporar, pana cu o zi inainte de prezentarea proiectului :P)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;se pun &lt;span style="font-weight: bold;"&gt;teme rezolvate &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;si &lt;span style="font-weight: bold;"&gt;se incurajeaza colegii sa le copieze de pe site&lt;/span&gt; - la un laborator o colega a insistat sa iau rezolvarea laboratorului de pe site-ul lor; dar, baiat incapatanat cum ma stiti, am refuzat&lt;/li&gt;&lt;li&gt;se folosesc tehnici de tipul link-farm&lt;/li&gt;&lt;li&gt;se pun pe Yahoo Messenger status-uri de tipul "Sexxx!!" cu link catre site-ul propriu (o colega are tot timpul acest status :P)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Clean:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Google sitemap: se face submit la un xml catre google care sa ii descrie acestuia structura site-ului, importanta fiecarei pagini si viteza cu care se schimba fiecare pagina. Pentru ca folosim Joomla, am ales &lt;a href="http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,202/Itemid,35/"&gt;Joomap&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Google analytics: observ cuvinte cheie des folosite pentru a regasi site-ul meu si incerc sa optimizez pentru ele (din pacate pentru noi, acele cuvinte n-o sa fie niciodata mult doritele "Interfete web" :P)&lt;/li&gt;&lt;li&gt;Google AdSense: activez AdSense si in mod obligatoriu crawler-ul imi va vizita mult mai des pagina, pentru ca acum Google are interesul sa determine care sunt cele mai potrivite reclame de afisat&lt;/li&gt;&lt;li&gt;Fac site-ul sa foloseasca google-friendly links: chiar daca folosesc o tehnologie dinamica de prezentare (gen PHP), parametrii nu se pot separa doar folosind ? si &amp;amp;, ci si alte caractere, spre exemplu "-": http://mysite.com/index.php-key1=value1-key2=value2. Aici Joomla ne ajuta cu o optiune care poate fi activata din Global Settings, si genereaza automat link-uri friendly.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Inscriu site-ul in mai multe search engine-uri, nu numai in Google&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Cool:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fac misto de site-urile altora, si o fac intr-atat de bine incat lumea incepe sa-mi citeasca blog-ul. E o idee foarte faina, doar ca la un moment dat s-a degradat calitatea criticilor.&lt;/li&gt;&lt;li&gt;Atunci cand colegii isi bat capul cu o problema mai deosebita, le dau un raspuns scurt si un link catre site, unde se gaseste solutia completa (de preferat totusi sa nu fie rezolvarea unei teme..)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fac un site bazat pe o idee interesanta: mi-au ramas in minte 2, unul in mod text (!!!) si unul care avea ca logo "interfete sexy" - desi continutul nu avea nici o legatura cu titulatura&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-3108867701401826616?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/3108867701401826616/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/seo-dirty-clean-cool.html#comment-form' title='1 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/3108867701401826616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/3108867701401826616'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/seo-dirty-clean-cool.html' title='SEO - dirty, clean, cool'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-6667934876839012562</id><published>2008-12-22T14:29:00.006+02:00</published><updated>2008-12-29T14:30:57.584+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><category scheme='http://www.blogger.com/atom/ns#' term='javaweb'/><category scheme='http://www.blogger.com/atom/ns#' term='imblanzirea bestiei'/><title type='text'>Aplicatii web in Java (2) - Spring Framework</title><content type='html'>Revenim cu episodul 2 al serialului "Java demistificat":&lt;br /&gt;&lt;br /&gt;De aceasta data, ne vom concentra asupra framework-ului Spring. Relatia sa cu componentele unei aplicatii J2EE este asemanatoare cu cea dintre placa de baza si componentele de pe ea. El ne ofera platforma pentru a dezvolta corect si repede servicii care sa reprezinte functionalitatea aplicatiei noastre. Principalele sale functionalitati sunt:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;container-ul cu Inversion of Control&lt;/span&gt;: container in care se inregistreaza obiecte Java, care implementeaza o interfata, sub un nume unic dupa care vor putea fi regasite ulterior. Container-ul suporta si operatia de regasire a unui obiect, intorcandu-ne un obiect care se comporta identic cu obiectul inregistrat (apelurile de metode din interfata au aceleasi efecte vizibile de catre utilizator). Rezultatul este diferit de obiectul initial in cazul in care se doreste interceptarea metodelor acestuia, cu diverse scopuri (AOP fiind unul dintre ele). Care este totusi avantajul fata de un container obisnuit, sau de un simplu HashMap? Dependentele intre obiecte se specifica declarativ in fisiere de configurare, programatorul nu trebuie sa se concentreze sa propage o referinta la un obiect O1 catre obiectul O2, container-ul facand acest lucru automat.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;framework AOP:&lt;/span&gt; framework care permite interceptarea apelurilor de metode catre obiectele inregistrate in container si aplicarea unor "advice-uri" inainte sau dupa apelul metodei. Un advice poate fi o simpla log-are, sau poate chiar decide ca apelul de metoda sa nu aiba loc. Numele metodelor interceptate pot fi specificate folosind expresii regulate, astfel incat denumirea consistenta a metodelor le asigura 'on the fly' proprietati interesante. Principala utilizare a AOP-ului consta in executia unei metode care citeste/scrie in baza de date in cadrul unei tranzactii, fara a specifica acest lucru programatic. Aceasta duce si la evitarea tranzactiilor nested, o evidenta si periculoasa bataie de cap.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;framework MVC:&lt;/span&gt; desi suporta plugin-uri care fac acelasi lucru (cel mai cunoscut fiind Struts), Spring ne ofera o implementare home-made de MVC. Principiul de functionare al MVC-ului este urmatorul: input-ul unei aplicatii uzuale J2EE este un request HTTP, care este preluat de catre un controller principal al aplicatiei (provided by Spring), care-l ruteaza catre un controller specializat (implementat de programator). Controller-ul specializat construieste un model (o structura de date), posibil prin consultarea starii aplicatiei (deci baza de date) si o intoarce catre controller-ul principal, acesta delegand afisarea modelului catre una din tehnologiile disponibile, in functie de context. O metoda cunoscuta de noi si studiata la L.P.D. este JSP, dar nu este singura. Pentru o mai buna intelegere, recomand vizualizarea pozei de la urmatorul link: &lt;a href="http://static.springframework.org/spring/docs/2.5.x/reference/images/mvc.png"&gt;http://static.springframework.org/spring/docs/2.5.x/reference/images/mvc.png&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;framework de acces la baza de date: &lt;/span&gt;desi de multe ori este mai simplu sa folosim JDBC, care ne permite sa trimitem direct query-uri SQL scrise de noi catre baza de date si sa examinam rezultatele, acesta are o sumedenie de dezavantaje. In primul rand, eficienta cade cu totul in sarcina programatorului, ceea ce creste costurile de dezvoltare a produsului (fiind nevoie de programatori mai capabili). In al doilea rand, se scrie foarte mult cod de rutina pentru a traduce rezultatul query-urilor, prezentat sub forma tabelara in forma orientat-obiect. Ambele probleme sunt rezolvate de un framework de persistenta. Rolul acestuia este urmatorul: ii dam informatii despre structura bazei de date si sfaturi despre cum sa optimizeze accesul la ea, declarativ, si el preia ambele responsabilitati mentionate mai sus: genereaza query-uri SQL pentru a prelua rezultatele de care avem nevoie (sau pentru a le inregistra, dupa caz), si transforma aceste rezultate tabelare in obiecte gata de folosit mai departe.&lt;/li&gt;&lt;/ul&gt;Desi Spring contine mult mai multe componente, acestea mi s-au parut mie mai folositoare in practica. In prezent a ajuns la versiunea 3.0 si mai multe detalii pot fi regasite la: &lt;a href="http://www.springsource.org/"&gt;http://www.springsource.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-6667934876839012562?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/6667934876839012562/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/plicatii-web-in-java-2-spring-framework.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6667934876839012562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6667934876839012562'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/plicatii-web-in-java-2-spring-framework.html' title='Aplicatii web in Java (2) - Spring Framework'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-8399407219954145270</id><published>2008-12-03T12:53:00.003+02:00</published><updated>2008-12-03T12:55:57.664+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='promovarea educatiei'/><category scheme='http://www.blogger.com/atom/ns#' term='upb'/><title type='text'>UPB vs. ASE</title><content type='html'>Eternul si fascinantul "flame war" este tratat de o colega intr-un post:&lt;br /&gt;&lt;a href="http://mist-iweb.blogspot.com/2008/10/choose-life-choose-ase-not.html"&gt;http://mist-iweb.blogspot.com/2008/10/choose-life-choose-ase-not.html&lt;/a&gt;&lt;br /&gt;As adauga ca si completare ca in general nu poti sa le ai pe toate: timp liber mult, relaxare, dobandirea multor cunostiinte, antrenarea neuronilor. Ziua are doar 24 de ore :) Si nu e neaparat rau sa refuzi sa alegi varianta usoara.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-8399407219954145270?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/8399407219954145270/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/upb-vs-ase.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/8399407219954145270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/8399407219954145270'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/upb-vs-ase.html' title='UPB vs. ASE'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-8067227670030883770</id><published>2008-12-02T22:06:00.003+02:00</published><updated>2008-12-29T14:31:30.086+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><category scheme='http://www.blogger.com/atom/ns#' term='javaweb'/><category scheme='http://www.blogger.com/atom/ns#' term='imblanzirea bestiei'/><title type='text'>Aplicatii web in Java (1)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Site-uri web in java .. complicat? Cumplit? Provocare?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Simti ca te pierzi in multitudinea de fisiere de configurare XML si in sutele de acronime de tipul JSP, JSTL, RMI, JAX-RPC? :) Nu-i nici o problema, ai nimerit unde trebuia. In 2 timpi si trei miscari iti explicam conceptele de baza pentru a putea intelege mai usor ce ai de facut.&lt;br /&gt;&lt;br /&gt;Ingrediente:&lt;br /&gt;* o bucata JBoss, ne-maruntita&lt;br /&gt;* trei bucati framework-uri, asortate: Spring, Struts si Hibernate&lt;br /&gt;* niscaiva cunostiinte despre XML si Java, dupa gust si posibilitati&lt;br /&gt;&lt;br /&gt;In continuare, vom descrie fiecare din ingrediente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;JBoss: "application server"&lt;/span&gt;, asculta conexiuni TCP/IP (by default pe portul 80), si in functie de calea request-urilor, mapeaza aceste request-uri catre "aplicatii" Java, care vor prelucra mai departe request-ul HTTP, livrand in final o pagina cu continut HTML (de obicei) catre clientul HTTP care a facut cererea.&lt;br /&gt;&lt;br /&gt;O astfel de aplicatie este o aplicatie normala Java. Nu are chiar metoda Main(String[] args), dar are un fisier web.xml numit "deployment descriptor", care descrie o serie de "filtre" si "servlets", precum si alte configurari, care stabileste care metode din codul Java vor fi apelate atunci cand request-ul contine anumite pattern-uri.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Spring: framework "bun la toate"&lt;/span&gt;, ale carui principale "arme impotriva concurentei sunt":&lt;br /&gt;- container-ul cu Inversion of Control - mentine niste obiecte (le putem asemana daca vreti cu niste variabile globale in contextul unei aplicatii web) instantiate in memorie si are grija ca anumiti membri ai lor sa fie setati automat, asa cum este specificat in niste fisiere de configurare (XML, bineinteles:) )&lt;br /&gt;- suporta framework-uri de persistenta: bune la casa omului, cand motorul curent de baze de date nu-ti mai satisface nevoile; in caz de "nevoie", se migreaza datele de la un engine de baze de date la altul, se modifica configurarile framework-ului de persistenta (can be a pain in the ass sometimes..) si voila, nu a trebuit modificata aplicatia cu nimic&lt;br /&gt;- suporta "Aspect Oriented Programming": interceptarea unor apeluri de functii si rularea unor "advice-uri" la momente cheie din viata apelurilor respective. Folosind "advice-uri" putem specifica declarativ ca vrem ca anumite metode care modifica baza de date sa fie tranzactionale, de exemplu, sau ca vrem sa faca numai citiri (si la prima scriere sa se genereze o eroare)&lt;br /&gt;- suporta MVC, atat sub forma de plugin, cat si prin propriul framework, Spring MVC&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Struts: workflows, web-pages, MVC, input-forms, validation&lt;/span&gt;&lt;br /&gt;Toate aceste cuvinte cheie definesc succint pe bunul nostru prieten Struts. Si el foloseste fisiere de configurare XML, pentru ca nu a vrut sa fie oaia neagra a familiei J2EE. Si suporta si plugin-uri, si de toate, numai ca sa va aduca voua pe ecrane paginile voastre favorite. Struts face practic afisarea si nu face altceva decat sa mapeze anumite path-uri la servleti JSP, care pot fi precedati de "actiuni" care "populeaza" "form-uri" si forwardeaza mai departe la alte "actiuni". Nu va speriati, nu e chiar atat de rau pe cat pare.. pana cand dati de internationalizare :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Hibernate: unul dintre cele mai folosite framework-uri de persistenta&lt;/span&gt;. Incearca sa abstractizeze accesul la baza de date prin mai multe metode:&lt;br /&gt;- defineste un limbaj HQL, asemanator cu SQL, care apoi este translatat in dialectul nativ al bazei de date folosita&lt;br /&gt;- defineste (folosind XML, evident:) ) mapping-uri intre obiecte Java ("POJO" - Plain Old Java Objects) si randuri in baza de date&lt;br /&gt;- ne ofera API-uri de interogare a bazei de date, care acum este privita ca si continand obiecte (cel mai cunoscut este Criteria API)&lt;br /&gt;- ofera o arhitectura de cache avansata, pluggable, cu suport pentru cache distribuit, absolut necesar daca vreti ca site-ul web sa nu ruleze numai pe un singur server&lt;br /&gt;&lt;br /&gt;In episodul urmator, va vom povesti despre JBoss, si cum sa imblanzim aceasta "bestie".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-8067227670030883770?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/8067227670030883770/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/aplicatii-web-in-java-1.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/8067227670030883770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/8067227670030883770'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/aplicatii-web-in-java-1.html' title='Aplicatii web in Java (1)'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-2510853585115342112</id><published>2008-12-02T19:33:00.002+02:00</published><updated>2008-12-02T20:23:21.166+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='introducere'/><category scheme='http://www.blogger.com/atom/ns#' term='serial-optiuni'/><title type='text'>Ce optiuni avem pentru realizarea unui site web?</title><content type='html'>Acesta este primul post dintr-o serie menita sa informeze tanarul public despre diversitatea optiunilor de care dispune pentru realizarea unui site web :) Noi nu promovam mituri de genul &lt;span style="font-style: italic;"&gt;"tehnologia X e cea mai buna" &lt;/span&gt;si discutii interminabile in contradictoriu pe teme asemanatoare.&lt;br /&gt;&lt;br /&gt;Care sunt cele mai bune tehnologii pentru realizarea unui site web? Paaaai.. raspunsul la aceasta intrebarea este: &lt;span style="font-weight: bold;"&gt;depinde&lt;/span&gt;. Ca in orice problema inginereasca, trebuie sa ne alegem uneltele in functie de necesitati.&lt;br /&gt;&lt;br /&gt;Primul lucru, trebuie sa ne hotaram daca site-ul va avea continut dinamic sau nu. Daca nu, trebuie doar sa ne alegem un editor preferat de &lt;a href="http://en.wikipedia.org/wiki/Html"&gt;HTML&lt;/a&gt; static si &lt;a href="http://en.wikipedia.org/wiki/Css"&gt;CSS&lt;/a&gt; si sa ne apucam de treaba :) Putem sa inseram si niste &lt;a href="http://en.wikipedia.org/wiki/Javascript"&gt;JavaScript&lt;/a&gt; pentru a adauga sare si piper in interfata grafica, eventual sa ne folosim de &lt;a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29"&gt;AJAX&lt;/a&gt; pentru a obtine niste efecte si mai spectaculoase. &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dar odata ajunsi sa ne punem problema unui site web cu continut dinamic, avem cateva decizii foarte dificile de luat. Nu trebuie sa ne gandim de la inceput la ceva foarte complicat, care suporta zeci de mii de utilizatori concomitent, dar trebuie sa avem in vedere si aceasta posibila (desi improbabila:) ) evolutie.&lt;br /&gt;&lt;br /&gt;Astfel, inainte sa ne apucam de codat, trebuie sa ne alegem:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Motorul de baze de date care sa deserveasca site-ul&lt;/li&gt;&lt;li&gt;Limbajul cu ajutorul caruia generam continutul HTML dinamic&lt;/li&gt;&lt;li&gt;Framework-ul MVC pentru limbajul ales&lt;/li&gt;&lt;li&gt;Framework-ul de persistenta (trebuie sa ne propunem de la inceput sa fim independenti de motorul de baze de date folosit, altfel vom avea mari dureri de cap dupa)&lt;/li&gt;&lt;li&gt;Un tool de bug-tracking&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Un tool de project-management&lt;/li&gt;&lt;/ul&gt;Aceste articole isi propun sa completeze continutul cursului de Interfete Evoluate, pentru a oferi o imagine completa asupra pasilor de urmat pentru realizarea unui site in mod profesionist.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-2510853585115342112?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/2510853585115342112/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/ce-optiuni-avem-pentru-realizarea-unui.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/2510853585115342112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/2510853585115342112'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/12/ce-optiuni-avem-pentru-realizarea-unui.html' title='Ce optiuni avem pentru realizarea unui site web?'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-5277354721858266584</id><published>2008-11-23T20:17:00.003+02:00</published><updated>2008-11-23T20:25:26.610+02:00</updated><title type='text'>Concurrent Task Tree - Part 1</title><content type='html'>Tema numarul 2 la frumoasa materie "Interfete evolutate" ne propune sa modelam interfata site-ului blogger.com folosind un programel ce poate fi download-at de la adresa &lt;a href="http://giove.cnuce.cnr.it/ctte.html"&gt;http://giove.cnuce.cnr.it/ctte.html&lt;/a&gt;.&lt;br /&gt;Cum eu nu am folosit niciodata o interfata de blogging am inceput sa ma joc putin cu acest blog pentru a vedea ce se poate face pe un blog.&lt;br /&gt;Am sa revin cu detalii despre ceea ce voi reusi sa fac.&lt;br /&gt;(acesta este primul meu post pe un blog; n-a fost chiar atat de greu :))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-5277354721858266584?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/5277354721858266584/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/11/concurrent-task-tree-part-1.html#comment-form' title='2 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/5277354721858266584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/5277354721858266584'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/11/concurrent-task-tree-part-1.html' title='Concurrent Task Tree - Part 1'/><author><name>Razvan Dinu</name><uri>http://www.blogger.com/profile/02141079136722447295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_VF0Riz_TpYM/SSmbsm1b2pI/AAAAAAAAAAM/Vxs3ZTEjUZw/S220/eu3.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-8447271898138092591</id><published>2008-11-07T07:48:00.002+02:00</published><updated>2008-11-07T08:13:56.267+02:00</updated><title type='text'>Adobe : Proiecte de diploma</title><content type='html'>La cursul de SPRC, a fost prezentata oferta de proiecte de diploma de la Adobe. S-au impartit tricouri, cani si mingiute de la Adobe celor care raspundeau la o intrebare (cu ocazia aceasta am aflat ca Yahoo inseamna toparlan, el fiind un acronim de la &lt;em&gt;"Yet Another Hierarchical&lt;/em&gt; Officious Oracle", si ca Adobe inseamna casa de chirpici).&lt;br /&gt;Proiectele de diploma au fost descrise in felul urmator (O descriere oficiala gasiti pe http://edu.myadobe.ro/?page_id=21) :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;strong&gt;1. Automated testing for AIR/Flex applications (AMP team)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;    Acest proiect se pare ca a aparut din incapacitatea dezvoltatorilor de a adapta metoda de testare automata existenta la AIR/Flex. Sarcina studentului ar fi sa studieze aceasta metoda de testare, sa afle care este motivul pentru care crapa si sa se propuna o varianta functionala (va fi nevoie si de un prototip).&lt;br /&gt;    S-a insistat putin pe ideea ca cea mai mare parte a timpului va fi petrecuta reflectandu-se la idee (eu ma gandeam ca va fi debugarea platformei lor) si nu codand efectiv. Este indicat sa stiti putin JavaScript si ActionScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;strong&gt;2 Online create site wizard (Dreamweaver team)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;    Echipa de dreamweaver doreste sa dezvolte template-urile din dreamweaver pentru a fi mai flexibile. Din pacate nu am inteles foarte bine ce va presupune acest proiect, dar s-a insistat pe ideea ca este destul de usor sa se realizeze.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;strong&gt;3 Photoshop Express and other Adobe online applications integration (Dreamweaver team)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;    Peste acest proiect s-a trecut foarte repede, ideea fiind sa se poata downloada/uploada imagini in aplicatiile Adobe.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;strong&gt;4 Mining Adobe Community Help Logs to Provide Business Intelligence (Web Infrastructure team)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;    Din dorinta de a asculta de cererile utilizatorilor, se doreste sa se implementeze o solutie de cautare prin logurile de help ale comunitatii Adobe, si sa se afle care sunt problemele intalnite cel mai des la produsele Adobe pentru a le fixa.&lt;br /&gt;    In cazul in care inventati o metoda nou de prelucare a informatiilor, sau scoateti informatii noi din loguri aceasta metoda va fi patentata si veti fi rasplatiti cu 10.000$.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;5 JBoss JMX administration and monitoring console (Platform EE team)&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;    Parerea celor de la Adobe este ca serverul JBoss este dificil de folosit datorita interfetei greoaie, prin urmare se doreste sa se foloseasca JMX pentru a se construi o interfata prietenoasa in Flex.&lt;br /&gt;&lt;br /&gt;Pentru a aplica la aceste proiecte trimite-ti un CV pe adresa educatie@adobe.com si domnului profesor Cristea cu tema pe care doriti sa o abordati. Un sfat al celor de la Adobe este sa le trimiteti si un proiect interesant, sau un link catre un site pe care l-ati realizat. Un criteriu foarte important va fi entuziasmul cu care veti aborda proiectul.&lt;br /&gt;Termenul limita de trimitere a CV-urilor pare sa fie 15 noiembrie, urmand a fi interviuri pana pe 2 decembrie cand se vor stabili finalistii (http://edu.myadobe.ro/?p=227)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-8447271898138092591?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/8447271898138092591/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/11/adobe-proiecte-de-diploma.html#comment-form' title='1 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/8447271898138092591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/8447271898138092591'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/11/adobe-proiecte-de-diploma.html' title='Adobe : Proiecte de diploma'/><author><name>Radu</name><uri>http://www.blogger.com/profile/14990307918292174682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-1518634903634663966</id><published>2008-11-04T10:06:00.006+02:00</published><updated>2008-11-04T10:16:31.040+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='promovarea educatiei'/><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><title type='text'>Flickr API, si cum ne va ajuta el sa promovam UPB</title><content type='html'>Desi este disponibil in mai multe "flavors", am optat pentru accesul la API-ul Flickr prin intermediul XML-RPC. Pentru folosirea acestuia este nevoie de un application key, care este dat user-ului in momentul in care isi inregistreaza aplicatia.&lt;br /&gt;&lt;br /&gt;O scurta documentatie pentru fiecare API call se gaseste la: &lt;a href="http://www.flickr.com/services/api/"&gt;http://www.flickr.com/services/api/&lt;/a&gt;. Posibilitatile sunt nenumarate, enumar doar cateva:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;parcurgerea listei de contacts&lt;br /&gt;&lt;/li&gt;&lt;li&gt;manipularea imaginilor (adaugare, stergere, tagging)&lt;/li&gt;&lt;li&gt;comment management&lt;/li&gt;&lt;li&gt;interfatare cu geo-tagging&lt;/li&gt;&lt;/ul&gt;Pentru aplicatii in Java, exista libraria &lt;a href="http://sourceforge.net/projects/flickrj/"&gt;flickrj&lt;/a&gt; care va scuteste de multe batai de cap, oferind niste interfete Java care sunt un wrapper pentru apelurile XML-RPC.&lt;br /&gt;&lt;br /&gt;Ne propunem sa folosim acest API pentru &lt;span style="font-weight: bold;"&gt;promovarea educatiei superioare &lt;/span&gt;prin uploadarea de poze si tagging-ul lor automat pe Flickr, crescand astfel vizibilitatea &lt;span style="font-weight: bold;"&gt;Universitatii Politehnica Bucuresti&lt;/span&gt; prin intermediul &lt;span style="font-weight: bold;"&gt;interfetelor web&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-1518634903634663966?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/1518634903634663966/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/11/flickr-api-si-cum-ne-va-ajuta-el-sa.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/1518634903634663966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/1518634903634663966'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/11/flickr-api-si-cum-ne-va-ajuta-el-sa.html' title='Flickr API, si cum ne va ajuta el sa promovam UPB'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5766252029856730808.post-6956746125076960560</id><published>2008-11-03T19:15:00.001+02:00</published><updated>2008-11-04T10:16:53.183+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='promovarea educatiei'/><category scheme='http://www.blogger.com/atom/ns#' term='interfete web'/><title type='text'>Interfete web - inceputul!</title><content type='html'>Buna ziua tuturor cititorilor nostri!&lt;br /&gt;&lt;br /&gt;Odata cu lansarea acestui blog, lansam si site-ul companiei, cu un specific mai deosebit: folosirea interfetelor web pentru promovarea educatiei superioare. Detalii.. in curand.&lt;br /&gt;&lt;br /&gt;Pana atunci, va rugam sa ne vizitati: &lt;a href="http://feteweb.uv.ro/"&gt;http://feteweb.uv.ro/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5766252029856730808-6956746125076960560?l=inter-feteweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inter-feteweb.blogspot.com/feeds/6956746125076960560/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://inter-feteweb.blogspot.com/2008/11/interfete-web-inceputul.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6956746125076960560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5766252029856730808/posts/default/6956746125076960560'/><link rel='alternate' type='text/html' href='http://inter-feteweb.blogspot.com/2008/11/interfete-web-inceputul.html' title='Interfete web - inceputul!'/><author><name>Andrei Ismail</name><uri>http://www.blogger.com/profile/14509448951334763995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
