<?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-301324996193914987</id><updated>2011-09-25T06:52:34.188-07:00</updated><category term='online'/><category term='Adobe'/><category term='PHP'/><category term='Handshake'/><category term='User Interface'/><category term='noutati'/><category term='Google Analytics'/><category term='Activitate LEC'/><category term='tutoriale'/><category term='Flex'/><category term='MIDlet'/><category term='XML'/><category term='SSL'/><category term='TLS'/><category term='Adobe ActionScript'/><category term='Java'/><category term='securitate'/><category term='Web'/><category term='ASP.NET'/><category term='LTM'/><category term='Excel'/><title type='text'>Blog Line Education Center</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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>53</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-3614035984236557471</id><published>2010-03-02T02:11:00.000-08:00</published><updated>2010-03-02T02:23:57.532-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Ne-am mutat pe LEC Academy!</title><content type='html'>Începând de azi, blogul nostru se va muta pe &lt;a href="http://lec-academy.ro/"&gt;www.lec-academy.ro&lt;/a&gt;. Aşadar, vă aşteptăm acolo pentru a vizualiza zilnic un tutorial video sau scris despre Java, PHP, Microsoft Office, dar şi articole cu noutăţi din industria IT.&lt;br /&gt;&lt;br /&gt;Tutorialele se vor axa pe exemple clare, concise, practice şi desigur vor avea şi câteva elemente de teorie, pentru a le înţelege mai bine. &lt;br /&gt;&lt;br /&gt;Unele articole vor conţine noutăţi din industria IT, lansări de produse/servicii utile vouă, pasionaţilor de programare, precum şi anunţarea unor evenimente organizate de Line Education Center, cum ar fi &lt;a href="http://lec-academy.ro/lec-technology-meetings-editia-a-ii-a/"&gt;LEC Technology Meetings&lt;/a&gt;, sau chiar evenimente desfăşurate de alte organizaţii.&lt;br /&gt;&lt;br /&gt;Pentru a fi la curent cu articolele şi tutorialele de pe &lt;a href="http://lec-academy.ro/"&gt;LEC Academy&lt;/a&gt; vă invităm să vă abonaţi prin &lt;a href="http://www.lec-academy.ro/feed"&gt;RSS&lt;/a&gt; la pagina noastră sau să vă abonaţi la &lt;a href="http://lec-academy.ro/newsletter/"&gt;newsletterul nostru lunar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Aşteptăm comentariile voastre pe &lt;a href="http://www.lec-academy.ro"&gt;LEC Academy&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-3614035984236557471?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/3614035984236557471/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2010/03/ne-am-mutat-pe-lec-academy.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3614035984236557471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3614035984236557471'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2010/03/ne-am-mutat-pe-lec-academy.html' title='Ne-am mutat pe LEC Academy!'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-3316474042754935657</id><published>2010-02-13T12:28:00.000-08:00</published><updated>2010-02-19T14:16:48.135-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noutati'/><title type='text'>Open Source, Linux şi Interoperabilitate în contextul noilor tehnologii web</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;img alt="Linux" height="125px" src="http://www.epanorama.net/blog/wp-content/uploads/2009/10/linux.jpg" style="float: left;" width="104px" /&gt;&lt;b&gt;&amp;nbsp;IDG Romania&lt;/b&gt; vă invită la &lt;b&gt;Open Source, Linux şi Interoperabilitate în &amp;nbsp;contextul noilor tehnologii web&lt;/b&gt;, cel mai important eveniment dedicat &amp;nbsp;tehnologiilor Linux şi Open Source.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;Evenimentul va avea loc pe data de &lt;b&gt;23 februarie 2010&lt;/b&gt;, la &lt;b&gt;Hotelul &amp;nbsp;Capital Plaza&lt;/b&gt;, din Bucureşti.&lt;/div&gt;&lt;br /&gt;Împreună cu partenerii IDG se vor dezbate următoarele subiecte:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;aplicaţii Web şi infrastructuri Web 2.0&lt;/li&gt;&lt;li&gt;securitate şi sfaturi practice din perspectiva auditorului de securitate&lt;/li&gt;&lt;li&gt;virtualizare&lt;/li&gt;&lt;li&gt;cloud computing&lt;/li&gt;&lt;li&gt;interoperabilitate şi nu numai&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Inregistraţi-vă gratuit până pe 18 februarie 2010 pe site-ul evenimentului: &lt;a href="http://www.idg.ro/evenimente/linux2010/"&gt;http://www.idg.ro/evenimente/linux2010/&lt;/a&gt; sau la adresa de email: venetia [at] idg.ro.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-3316474042754935657?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/3316474042754935657/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2010/02/open-source-linux-si-interoperabilitate.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3316474042754935657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3316474042754935657'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2010/02/open-source-linux-si-interoperabilitate.html' title='Open Source, Linux şi Interoperabilitate în contextul noilor tehnologii web'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-4190074082001055988</id><published>2010-02-03T08:24:00.000-08:00</published><updated>2010-02-03T08:39:18.600-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>LEC recrutează!</title><content type='html'>&lt;div style="color: black; font-family: Verdana,sans-serif; text-align: justify;"&gt;Dorim să recrutăm un nou membru pentru echipa noastră. Mai jos ai mai multe detalii: &lt;/div&gt;&lt;br /&gt;&lt;div style="color: black; font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;Ce ar trebui să ştii:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;HTML, CSS şi JavaScript&lt;/li&gt;&lt;li&gt;să lucrezi în wordpress&amp;nbsp;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;cunoştinţe despre designul interfeţe grafice&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;cunoştinţe generale de IT (de exemplu, cum să configurezi o reţea sau cum să reinstalezi windows-ul)&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;ar fi super dacă există ceva experienţă anterioară, însă în primul rând ne interesează dorinţa de a învăţa şi de a face ceva fain&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Ce ar trebui să faci:&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;să te ocupi de dezvoltarea şi administrarea unui site în wordpress&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;să predai cursul de CSS, HTML şi JavaScript&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;să te ocupi de buna funcţionare a calculatoarele din LEC&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Ce îţi vom oferi:&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;program cu adevărat flexibil: în medie va trebuie să fii la birou cam 6 ore pe zi. Chiar nu ne pasionează postura de decor de birou, cât mai ales rezultatele pe care le obţii :)&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;acces gratuit la trainingurile LEC&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;bineînţeles un salariu&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="color: black; text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Dacă eşti interesat, aşteptăm un &lt;b&gt;email cu CV-ul tău&lt;/b&gt; pe adresa daniel.nastase [at] leconline.ro&lt;/span&gt;&lt;a href="mailto:daniel.nastase@leconline.ro" style="font-family: Verdana,sans-serif;" target="_blank"&gt;&lt;span class="il"&gt;&lt;/span&gt;&lt;/a&gt; .&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-4190074082001055988?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/4190074082001055988/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2010/02/lec-recruteaza.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4190074082001055988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4190074082001055988'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2010/02/lec-recruteaza.html' title='LEC recrutează!'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-6118677242909253773</id><published>2010-02-02T12:08:00.000-08:00</published><updated>2010-02-02T12:16:49.174-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Follow-up Adobe AIR Boot Camp</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Sâmbătă, 30 ianuarie, a avut loc &lt;b&gt;&lt;a href="http://line-education-center.blogspot.com/2009/12/adobe-air-boot-camp.html"&gt;Adobe AIR Boot Camp&lt;/a&gt;&lt;/b&gt;, eveniment organizat de &lt;b&gt;Line Education Center&lt;/b&gt; şi &lt;b&gt;Adobe Romania&lt;/b&gt;.&amp;nbsp; &lt;/div&gt;&lt;div align="center"&gt;&lt;img alt="Abode" height="110px" src="http://www.jmu.edu/bookstore/images/adobe-logo.jpg" width="110px" /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Workshopul a început la 12:00, iar de-a lungul a 3 ore, participanţii, cu laptopul în faţă, au facut multe exerciţii practice în Flash Builder 4. Mihai Corlan, platform evangelist la Adobe Systems şi trainer la această ediţie Adobe AIR Boot Camp a răspuns la întrebările celor prezenţi şi a reuşit să se adreseze tuturor nivelelor de cunoştinţe în acest limbaj de programare, prin exemplele concrete date.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;b&gt;Fotografiile&lt;/b&gt; de la Adobe AIR Boot Camp le găsiţi pe pagina &lt;a href="http://www.facebook.com/pages/Bucuresti-Romania/Line-Education-Center-Evenimente-si-cursuri-IT-in-Bucuresti/146076483912"&gt;&lt;b&gt;Facebook&lt;/b&gt;&lt;/a&gt; a LEC-ului.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Pentru cei care nu au participat la acest eveniment, aveţi mai jos câteva linkuri utile:&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Flash Builder 4 Beta: &lt;a href="http://labs.adobe.com/"&gt;http://labs.adobe.com&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Materialul de curs: &lt;a href="http://corlan.org/downloads/air2/"&gt;http://corlan.org/downloads/air2/&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Tour de Flex – Aplicaţie AIR care te învaţă cum să foloseşti componentele Flex: &lt;a href="http://www.adobe.com/devnet/flex/tourdeflex/"&gt;http://www.adobe.com/devnet/flex/tourdeflex/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Dacă dintre cei prezenţi la acest eveniment doresc să împărtăşească aici experienţa Adobe AIR Boot Camp, sunt bineveniţi să scrie câteva rânduri.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-6118677242909253773?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/6118677242909253773/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2010/02/follow-up-adobe-air-boot-camp.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/6118677242909253773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/6118677242909253773'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2010/02/follow-up-adobe-air-boot-camp.html' title='Follow-up Adobe AIR Boot Camp'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-5192816052975481376</id><published>2010-01-24T04:44:00.000-08:00</published><updated>2010-01-24T05:59:27.452-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutoriale'/><title type='text'>Videotutorial.ro</title><content type='html'>&lt;img alt="Tutorial" height="72px" src="http://lh3.ggpht.com/_FgoM8wZT79U/S1w_9eupbSI/AAAAAAAAAWw/5eqHMbZ6eMw/s144/videotutorial.png" style="float: left;" width="72px" /&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;a href="http://videotutorial.ro/"&gt;Videotutorial.ro&lt;/a&gt; este un site care îţi face viaţa mai uşoară atunci când ai&amp;nbsp; probleme cu calculatorul. Aici, sub forma unor filmuleţe puteţi găsi o mulţime de tips&amp;amp;tricks: de la cum să instalezi windowsul de pe un stick usb bootabil până la cum să-ţi faci un forum de la 0.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;De asemenea, dacă nu găseşti ceea ce cauţi (evident, legat de calculatoare), poţi să-i întrebi pe administratorii acestui site, iar aceştia îţi vor răspunde, poate chiar sub forma unui nou videotutorial. &lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;LEC vă recomandă următoarele:&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;&lt;a href="http://www.videotutorial.ro/?p=560"&gt;Cum se face un website simplu in html si putin css&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;a href="http://www.videotutorial.ro/?p=251"&gt;Crearea unei baze de date cu phpmyadmin&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;a href="http://www.videotutorial.ro/?p=912"&gt;Cum se face un forum de la 0 cu xampp si phpbb&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;a href="http://www.videotutorial.ro/?p=1008"&gt;Cum sa ne protejam prin backup datele impotriva incidentelor nedorite&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-5192816052975481376?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/5192816052975481376/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2010/01/videotutorialro.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/5192816052975481376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/5192816052975481376'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2010/01/videotutorialro.html' title='Videotutorial.ro'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_FgoM8wZT79U/S1w_9eupbSI/AAAAAAAAAWw/5eqHMbZ6eMw/s72-c/videotutorial.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-8856359788932576937</id><published>2010-01-19T07:18:00.000-08:00</published><updated>2010-01-19T07:29:26.134-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Video traininguri LEC</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Incepând de azi, pe paginile unor traininguri LEC puteţi vizualiza exemple de module ale acestora. De asemenea, puteţi downloada o parte din documentaţia folosită la cursuri.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;object height="300" width="400"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8827247&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8827247&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;a href="http://leconline.ro/curs-it/curs-css-javascript" style="text-decoration: none;" target="_blank"&gt;Pagina trainingului CSS si Javascript&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;b&gt;&lt;a href="http://leconline.ro/curs-it/curs-css-javascript" style="text-decoration: none;" target="_blank"&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;&lt;a href="http://leconline.ro/curs-it/curs-css-javascript" style="text-decoration: none;" target="_blank"&gt;&lt;object height="300" width="400"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8837096&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8837096&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;a href="http://leconline.ro/curs-it/curs-css-javascript" style="text-decoration: none;" target="_blank"&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;a href="http://leconline.ro/curs-it/curs-net" style="text-decoration: none;" target="_blank"&gt;Pagina trainingului .NET training  in C#&lt;/a&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;b&gt;&lt;object height="300" width="400"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8836574&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8836574&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;a href="http://leconline.ro/curs-it/curs-java-incepatori.html" style="text-decoration: none;" target="_blank"&gt;Pagina trainingului Fundamentals of Java Programming&lt;/a&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;b&gt;&lt;object height="300" width="400"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8838143&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8838143&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;b&gt;&lt;a href="http://leconline.ro/curs-it/php-advanced.html" style="text-decoration: none;" target="_blank"&gt;Pagina trainingului PHP Advanced&lt;/a&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&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/301324996193914987-8856359788932576937?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/8856359788932576937/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2010/01/video-traininguri-lec.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8856359788932576937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8856359788932576937'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2010/01/video-traininguri-lec.html' title='Video traininguri LEC'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-4876353339554790756</id><published>2010-01-19T06:00:00.000-08:00</published><updated>2010-01-19T14:49:33.561-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Un nou training: Adobe ActionScript si Flex</title><content type='html'>&lt;img alt="Abode" height="72px" src="http://onflex.org/images/Fx.png" style="float: left;" width="72px" /&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;Line Education Center&lt;/b&gt;, în colaborare cu &lt;b&gt;Adobe Romania&lt;/b&gt; va organiza un &amp;nbsp;&amp;nbsp;nou training, &lt;a href="http://leconline.ro/curs-it/adobe-actionscript-si-flex.html" style="text-decoration: none;"&gt;&lt;b&gt;Adobe ActionScript şi Flex&lt;/b&gt;&lt;/a&gt;. Acesta va începe pe data de &lt;b&gt;22 &amp;nbsp;&amp;nbsp;februarie&lt;/b&gt; şi se va desfăşura în fiecare luni, între orele 18:15 şi 21:15, pe o &amp;nbsp;&amp;nbsp;perioadă de 8 săptămâni.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Toţi cei care vor participa la acest training vor primi o &lt;b&gt;licenţă gratuită de FlexBuilder&lt;/b&gt; în valoare de 179 de euro.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;Conceptele predate în acest curs şi exemplele utilizate reprezintă un punct de plecare foarte bun pentru cei care vor să experimenteze Adobe ActionScript şi frameworkul Flex. Flex permite celor care nu sunt obişnuiţi să lucreze cu tool-urile vizuale din &lt;b&gt;Flash&lt;/b&gt;, să dezvolte &lt;b&gt;Rich Internet Application&lt;/b&gt; cu elemente avansate de interfaţă şi interacţiune cu utilizatorul.&lt;br /&gt;&lt;br /&gt;Mai jos, puteţi vizualiza un filmuleţ de prezentare a acestui curs: &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;object height="300" width="400"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8827764&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8827764&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Verdana,sans-serif; text-align: justify;"&gt;&lt;a href="http://leconline.ro/curs-it/adobe-actionscript-si-flex.html" style="text-decoration: none;"&gt;&lt;b&gt;Mai multe detalii găsiţi pe pagina acestui training.&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-4876353339554790756?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/4876353339554790756/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2010/01/un-nou-training-adobe-actionscript-si.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4876353339554790756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4876353339554790756'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2010/01/un-nou-training-adobe-actionscript-si.html' title='Un nou training: Adobe ActionScript si Flex'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-29127933328632850</id><published>2010-01-11T15:01:00.000-08:00</published><updated>2010-01-14T05:30:23.153-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Analytics'/><title type='text'>Start în Google Analytics</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Google Analytics&lt;/b&gt; este un serviciu web gratuit de monitorizare a traficului care vă oferă vouă, deţinătorilor de site-uri/bloguri, informaţii despre cum ajung acolo vizitatorii voştri şi cum interacţionează pe acestea. Pentru a-l activa este necesară crearea unui &lt;a href="https://www.google.com/accounts/NewAccount"&gt;cont Google&lt;/a&gt; şi urmărirea &lt;a href="http://www.google.com/support/googleanalytics/bin/static.py?page=guide.cs&amp;amp;guide=19779&amp;amp;topic=19783"&gt;instructiunilor simple de aici&lt;/a&gt;. Rapoartele vor fi disponibile în maxim 24 de ore dupa ce aţi configurat Google Analytics pe site-ul/blogul vostru.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Odată ce aţi accesat Google Analytics există posibilitatea să vă pierdeţi printre atâtea rapoarte, grafice şi probabil nu veţi ştii cum să le citiţi, combinaţi astfel încât să interpretaţi cât mai bine comportamentul cititorilor voştri. Mi-am propus pe viitor să vă spun some tips&amp;amp;tricks despre Google Analytics, aşa că vă sugerez să urmăriţi blogul LEC.&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Voi începe deocamdată să vă povestesc pe scurt interfaţa şi utilitatea câtorva rapoarte de acolo. Aşadar, dashboard-ul e ca un centralizator al tuturor informaţiilor pe care le doriţi în front page-ul Google Analytics. Bineînţeles, la început, acest tablou de bord are presetate de Google cateva rapoarte, însă odată ce vedeţi utilitatea tuturor, le veţi putea adăuga pe cele mai eficiente prin simplul "drag and drop".&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Pe scurt, câţiva termeni pe care îi veţi întâlni frecvent:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Visits&lt;/b&gt; - numărul vizitelor (de câte ori cineva a intrat pe site)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Pageviews&lt;/b&gt; - numărul total de pagini vizitate&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Pages/visit&lt;/b&gt; - numărul mediu de pagini vizitate (aşa cum se vede şi în nume, este raportul dintre numărul de pagini vizitate şi numărul vizitelor)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Bounce Rate&lt;/b&gt; - procentul de vizitatori care au vizualizat o singură pagină a site-ului (de exemplu home page) şi au ieşit, fără să mai continue să intre şi pe alte pagini (de exemplu pagina de servicii oferite, pagina de contact etc)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;Average Time on Site&lt;/b&gt; - timpul mediu petrecut de un vizitator pe site&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&lt;b&gt;% New Visits&lt;/b&gt; - procentul de vizite noi&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;div align="center"&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3KK7i084W2w&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/3KK7i084W2w&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Aceşti indicatori se pot măsura pe anumite intervale de timp. Aşa cum observaţi, în partea centrala de sus, aveţi un grafic care pe axa Ox are anumite perioade de timp (puteţi selecta un grafic după zile, săptămâni sau luni). De asemenea, puteţi selecta intervalul în care doriţi să măsuraţi un indicator cantitativ.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt; De exemplu: aveţi un blog din octombrie 2008. Să zicem că în noiembrie şi decembrie 2009 aţi scris mai multe articole decât de obicei şi doriţi să vedeţi dacă procentul de vizite noi a crescut faţa de septembrie şi octombrie. Acest lucru vă este permis de Google Analytics prin compararea celor două perioade. Sub grafic veţi vedea creşteri sau scăderi ale indicatorilor (ideal ar fi să aveţi creşteri la toţi indicatorii, mai puţin la bounce rate). &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Să vă explic puţin indicatorul de &lt;b&gt;bounce rate&lt;/b&gt;. Aşa cum l-am definit mai sus, acesta reprezintă cât la sută din vizitatorii dintr-o anumită perioadă au părăsit imediat site-ul, fără să mai viziteze şi alte pagini. Se calculează raportând numărul de vizite ale unei singure pagini la numărul total de vizite. Un vizitator poate să facă bounce în momentul în care apasă pe linkul unui alt site (link prezent pe site-ul vostru şi se deschide în acelaşi tab), închide pagina respectivă, scrie altă adresă în acel tab, sesiunea de stat pe acel site expiră (a uitat deschisă acea pagină mai mult de 30 de minute) sau apasă pe butonul "Back". Este normal, de exemplu, să aveţi un bounce rate ridicat (cam 70 - 80 %) dacă este vorba de un blog, deoarece vizitatorul părăseşte imediat pagina după ce a citit ultimele articole. Acest lucru este valabil şi cu site-urile care prezintă doar conţinut. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;Însă ce se întâmplă atunci când aveţi bounce rate ridicat la un site prin care vreţi să vindeţi ceva? Despre asta vă voi spune în următorul articol despre Google Analytics. Dacă aveţi sugestii, întrebări, nu ezitaţi să le scrieţi. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-29127933328632850?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/29127933328632850/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2010/01/start-in-google-analytics.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/29127933328632850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/29127933328632850'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2010/01/start-in-google-analytics.html' title='Start în Google Analytics'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-8763482582797064917</id><published>2009-12-21T10:11:00.000-08:00</published><updated>2010-01-14T05:30:57.229-08:00</updated><title type='text'>Servicii Web publice. Exemplu de parsare REST cu PHP şi SimpleXML (YouTube, Flickr &amp; Twitter API)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: verdana; font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Web_service"&gt;Serviciile Web&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; reprezintă un mod de schimb de date pe Web (pe Internet) prin &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"&gt;protocolul HTTP&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;. Acest schimb de date se poate face între mai calculatoare, chiar dacă au arhitecturi şi sisteme de operare diferite. Deci, serviciile Web sunt &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Cross-platform"&gt;cross-platform&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;.&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;Pentru a putea comunica mai uşor, se foloseşte un limbaj de tip &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Markup_language"&gt;markup&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; (de tip plain text) precum &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/XML"&gt;XML&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; sau &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/JSON"&gt;JSON&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;. Datele transmise cu XML sau JSON nu necesită criptare/decriptare (pot fi percepute şi de către om, nu doar maşină :) ), iar mesajul (un şir de caractere de dimensiune relativ mică) ajunge foarte repede la destinaţie. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;Există mai multe tipuri de servicii Web, cele mai utilizate fiind &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/XML-RPC"&gt;XML-RPC&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;, &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/SOAP_%28protocol%29"&gt;SOAP&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; şi &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/REST"&gt;REST&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;. Prin intermediul lor, o companie permite accesul utilizatorilor la baza sa de date. În dependenţă de informaţia pe care o pune la dispoziţie, compania decide dacă serviciul Web va fi privat (acces autorizat) sau public (acces tuturor utilizatorilor).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;În acest articol voi descrie doar codul PHP de parsare a REST-urilor, mai multe informaţii despre fiecare serviciu Web în parte găsiţi în articolul anterior - &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://line-education-center.blogspot.com/2009/12/follow-up-lec-technology-meetings.html"&gt;Follow-up LEC Technology Meetings - editia a II-a&lt;/a&gt; .&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;span style="font-size: 100%;"&gt; &lt;b&gt;YouTube API&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;Spre exemplu compania Google pune la dispoziţie accesul public la resursele sale prin intermediul serviciilor Web publice. Acestea pot fi accesate cu XML-RPC, SOAP şi REST. Mai jos voi exemplifica &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://wapedia.mobi/ro/Parsare"&gt;parsarea&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; unui XML accesat prin REST de pe YouTube API cu limbajul &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://php.net/"&gt;PHP&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; şi librăria &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://md.php.net/manual/en/class.simplexmlelement.php"&gt;SimpleXML&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;. XML-ul primit prin REST de la Google este de tip &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Atom_%28standard%29"&gt;Atom&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;. Mai multe specificaţii despre Atom Feed Type găsiţi pe &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_video_feeds.html"&gt;Google Code Data API&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;. &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;Pentru a căuta o listă de filme pe YouTube voi accesa un &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/URI"&gt;URI&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;, unde se află un XML (REST) cu rezultatul căutării. REST-ul parsat se află la următorul URI: &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://gdata.youtube.com/feeds/api/videos"&gt;http://gdata.youtube.com/feeds/api/videos&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; . La acest URI se adaugă parametri tip HTTP_GET, URI-ul final devenind:&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;a href="http://gdata.youtube.com/feeds/api/videos?q=cat&amp;amp;orderby=viewCount&amp;amp;max-results=10&amp;amp;start-index=1"&gt;http://gdata.youtube.com/feeds/api/videos?q=cat&amp;amp;orderby=viewCount&amp;amp;max-results=10&amp;amp;start-index=1&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; .&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Clasa YoutubeParser&lt;span style="font-weight: normal;"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: verdana; text-align: justify;"&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="font-family: monospace;"&gt;&lt;/span&gt;/**&lt;br /&gt;* YoutubeParser&lt;br /&gt;* parseaza REST de pe YouTube&lt;br /&gt;*&lt;br /&gt;* by Dumitru Glavan&lt;br /&gt;*&lt;br /&gt;*/&lt;br /&gt;class YoutubeParser&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * URL curent de parsare&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;protected $_url = '';&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * XML-ul curent returnat de catre server&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;protected $_xml;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Adresa la care se vor adauga parametrii si metoda de REST&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * si se va accesa serverul pentru cautare&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;protected $_youtubeSearchUrl = 'http://gdata.youtube.com/feeds/api/videos';&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Functia constructor&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param string $get - parametrii pentru search&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function __construct($get = '')&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$this-&amp;gt;setUrl($get);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$this-&amp;gt;_xml = new SimpleXmlElement($this-&amp;gt;_url, null, true);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Setter pentru URL-ul de search&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param array $get&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function setUrl($get = '')&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$this-&amp;gt;_url = $this-&amp;gt;_youtubeSearchUrl . '?' . $get;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Getter pentru URL-ul de search&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param null&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function getUrl()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;return $this-&amp;gt;_url;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Parsare REST si decodare statistici&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param null&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function getStats()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;return $this-&amp;gt;_xml-&amp;gt;children('http://a9.com/-/spec/opensearchrss/1.0/');&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Parsare REST si decodare mesaje&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param null&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function getVideos()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$videos = array();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;foreach ($this-&amp;gt;_xml-&amp;gt;entry as $entry) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$video = array();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;//noduri din mamespace-ul :media&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$media = $entry-&amp;gt;children('http://search.yahoo.com/mrss/');&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$video['title'] = $media-&amp;gt;group-&amp;gt;title;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$video['description'] = $media-&amp;gt;group-&amp;gt;description;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;// URl pentru player-ul Video&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$attrs = $media-&amp;gt;group-&amp;gt;player-&amp;gt;attributes();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$video['url'] = $attrs['url'];&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;// Video thumbnail&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$attrs = $media-&amp;gt;group-&amp;gt;thumbnail[0]-&amp;gt;attributes();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$video['thumbnail'] = $attrs['url'];&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;// nodul &lt;yt:duration&gt; pentru lungimea filmului&lt;/yt:duration&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$yt = $media-&amp;gt;children('http://gdata.youtube.com/schemas/2007');&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$attrs = $yt-&amp;gt;duration-&amp;gt;attributes();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$length = $attrs['seconds'];&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$video['length'] = sprintf("%0.2f", $length/60);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;// nodul &lt;gd:rating&gt; pentru rating-ul filmului&lt;/gd:rating&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$gd = $entry-&amp;gt;children('http://schemas.google.com/g/2005');&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;if ($gd-&amp;gt;rating) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;  $attrs = $gd-&amp;gt;rating-&amp;gt;attributes();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;  $video['rating'] = $attrs['average'];&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;} else {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;  $video['rating'] = 0;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$videos[] = $video;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;return $videos;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 100%;"&gt;&lt;b&gt;Sursa finală&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; a aplicaţiei se află în repository la: &lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;&lt;a href="http://code.assembla.com/public_rest_parser_example/subversion/nodes/flickr?rev=1"&gt;http://code.assembla.com/public_rest_parser_example/subversion/nodes/flickr?rev=1&lt;/a&gt; .&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;b&gt;Flickr API&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;Pentru accesarea pozelor de pe Flickr voi folosi specificaţiile REST de pe Flickr API. Pentru a accesa acest API este nevoie de a crea un Yahoo developer key la &lt;span style="white-space: pre;"&gt;&lt;a href="http://www.flickr.com/services/api/misc.api_keys.html"&gt;http://www.flickr.com/services/api/misc.api_keys.html&lt;/a&gt;&lt;span style="white-space: normal;"&gt;. Cu această cheie voi putea accesa XML-urile prin REST de pe Flickr API. Mai multe informaţii despre Flickr REST şi API găsiţi la &lt;span style="white-space: pre;"&gt;&lt;a href="http://www.flickr.com/services/api/"&gt;http://www.flickr.com/services/api/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;Pentru a căuta poze pe Flickr voi parsa un XML de la un URI de forma: &lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;a href="http://api.flickr.com/services/rest/"&gt;http://api.flickr.com/services/rest/&lt;/a&gt; . &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;Dupa adăugarea parametrilor HTTP_GET voi obţine URI-ul: &lt;a href="http://api.flickr.com/services/rest/?api_key=XXX&amp;amp;method=flickr.photos.search&amp;amp;text=cat&amp;amp;per_page=20&amp;amp;page=1"&gt;http://api.flickr.com/services/rest/?api_key=XXX&amp;amp;method=flickr.photos.search&amp;amp;text=cat&amp;amp;per_page=20&amp;amp;page=1&lt;/a&gt; . Clasa pentru lucrul cu Flickr API e asemanatoare cu cea de YouTube API:&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;b&gt;Clasa FlickrParser:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;code&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;* FlickrParser&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;* parseaza REST de pe Flickr&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;*&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;* by Dumitru Glavan&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;*&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;class FlickrParser&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * URL curent de parsare&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;protected $_url = '';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * XML-ul curent returnat de catre server&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;protected $_xml;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * Adresa la care se vor adauga parametrii si metoda de REST&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * si se va accesa serverul pentru cautare&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;protected $_flickrRestUrl = 'http://api.flickr.com/services/rest/';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * Flickr Personal API Key - trebuie modificat cu o cheie proprie&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;protected $_apiKey = 'XXX';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * Metode de accesare API Flickr&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;protected $_apiMethods = array('search' =&amp;gt; 'flickr.photos.search',&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;        &lt;/span&gt;   'photo_info' =&amp;gt; 'flickr.photos.getInfo',&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;        &lt;/span&gt;  );&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * Functia constructor&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * @param string $get - parametrii pentru search&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public function __construct($get = '')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;$this-&amp;gt;setUrl($get);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;$this-&amp;gt;_xml = new SimpleXmlElement($this-&amp;gt;_url, null, true);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * Setter pentru URL-ul de search&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * @param array $get&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public function setUrl($get = '')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;$this-&amp;gt;_url = $this-&amp;gt;_flickrRestUrl . '?api_key=' . $this-&amp;gt;_apiKey . '&amp;amp;method=' . $this-&amp;gt;_apiMethods['search'] . '&amp;amp;' . $get;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * Getter pentru URL-ul de search&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * @param null&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public function getUrl()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;return $this-&amp;gt;_url;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * Parsare REST si decodare statistici &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * @param null&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public function getStats()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;return $this-&amp;gt;_xml-&amp;gt;photos-&amp;gt;attributes();&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * Parsare REST si decodare mesaje &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; * @param null&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public function getPhotos()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;$photos = array();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;foreach ($this-&amp;gt;_xml-&amp;gt;photos-&amp;gt;children() as $entry) {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;$attr = $entry-&amp;gt;attributes();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;$photo = array('id' =&amp;gt; (string)$attr-&amp;gt;id,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;      &lt;/span&gt;   'owner' =&amp;gt; (string)$attr-&amp;gt;owner,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;      &lt;/span&gt;   'secret' =&amp;gt; (string)$attr-&amp;gt;secret,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;      &lt;/span&gt;   'server' =&amp;gt; (string)$attr-&amp;gt;server,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;      &lt;/span&gt;   'farm' =&amp;gt; (string)$attr-&amp;gt;farm,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;      &lt;/span&gt;   'title' =&amp;gt; (string)$attr-&amp;gt;title,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;      &lt;/span&gt;  );&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;$photo['url'] = "http://farm{$photo['farm']}.static.flickr.com/{$photo['server']}/{$photo['id']}_{$photo['secret']}.jpg"; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;$photo['photopage'] = "http://www.flickr.com/photos/{$photo['owner']}/{$photo['id']}/"; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;$photos[] = $photo;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;return $photos;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;b&gt;Varianta finală&lt;/b&gt; a codului o puteţi descărca de la: &lt;span style="line-height: normal;"&gt;&lt;a href="http://code.assembla.com/public_rest_parser_example/subversion/nodes/flickr?rev=1"&gt;http://code.assembla.com/public_rest_parser_example/subversion/nodes/flickr?rev=1&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="line-height: 14px; white-space: pre;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-size: 100%;"&gt;&lt;b&gt;Twitter API&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: 100%;"&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;Twitter.com pune la dispoziţie un API public pentru a accesa mesajele unui utilizator sau după anumite keywords. Mai multă informaţie despre specificaţiile REST se găsesc la &lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;&lt;a href="http://apiwiki.twitter.com/Twitter-API-Documentation"&gt;http://apiwiki.twitter.com/Twitter-API-Documentation&lt;/a&gt;&lt;span style="white-space: normal;"&gt; .&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;Pentru căutare după keywords se va accesa un URI de forma &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://search.twitter.com/search.atom"&gt;http://search.twitter.com/search.atom&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; . După adăugarea parametrilor HTTP_GET: &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;a href="http://search.twitter.com/search.atom?q=cat&amp;amp;rpp=15&amp;amp;page=2"&gt;http://search.twitter.com/search.atom?q=cat&amp;amp;rpp=15&amp;amp;page=2&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; .&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;b&gt;Clasa TwitterParser:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;/**&lt;br /&gt;* TwitterParser&lt;br /&gt;* parseaza REST de pe Twitter&lt;br /&gt;*&lt;br /&gt;* by Dumitru Glavan&lt;br /&gt;*&lt;br /&gt;*/&lt;br /&gt;class TwitterParser&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * URL curent de parsare&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;protected $_url = '';&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * XML-ul curent returnat de catre server&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;protected $_xml;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Adresa la care se vor adauga parametrii si metoda de REST&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * si se va accesa serverul pentru cautare&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;protected $_twitterSearchUrl = 'http://search.twitter.com/search.atom';&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Adresa la care se vor adauga parametrii si metoda de REST&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * si se va accesa serverul pentru preluarea mesajelor user-ului&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;protected $_twitterUserTimelineUrl = 'http://twitter.com/statuses/user_timeline.atom';&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Functia constructor&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param string $params - parametrii pentru search&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function __construct($params = array())&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$this-&amp;gt;setUrl($params);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$this-&amp;gt;_xml = new SimpleXmlElement($this-&amp;gt;_url, null, true);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Setter pentru URL-ul de search&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param array $params&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function setUrl($params)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;if (isset($params['tip']) &amp;amp;&amp;amp; ($params['tip'] == 'user')) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$this-&amp;gt;_url = $this-&amp;gt;_twitterUserTimelineUrl . '?';&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;} else {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$this-&amp;gt;_url = $this-&amp;gt;_twitterSearchUrl . '?';&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;unset($params['tip']);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$get = '';&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;foreach ($params as $param =&amp;gt; $val) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$val = urlencode($val);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$get .= "$param=$val&amp;amp;";&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$this-&amp;gt;_url .= $get;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;return $this-&amp;gt;_url;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Getter pentru URL-ul de search&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param null&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function getUrl()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;return $this-&amp;gt;_url;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Parsare REST si decodare statistici&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param null&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function getStats()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;return $this-&amp;gt;_xml-&amp;gt;children('http://a9.com/-/spec/opensearchrss/1.0/');&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Parsare REST si decodare mesaje&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param null&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function getTwitts()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;//Container temporar mesaje&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$twitts = array();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;//Parcurgem nodurile cu mesaje&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;foreach ($this-&amp;gt;_xml-&amp;gt;entry as $entry) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$twitt = array('date' =&amp;gt; $this-&amp;gt;formatDate((string)$entry-&amp;gt;published),&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;      &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;   'title' =&amp;gt; (string)$entry-&amp;gt;title,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;      &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;   'link' =&amp;gt; '',&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;      &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;   'content' =&amp;gt; (string)$entry-&amp;gt;content,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;      &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;   'avatar' =&amp;gt; '',&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;      &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;   'author' =&amp;gt; array('name' =&amp;gt; (string)$entry-&amp;gt;author-&amp;gt;name,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;           &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; 'uri' =&amp;gt; (string)$entry-&amp;gt;author-&amp;gt;uri,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;           &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;      &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;  );&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$attr = $entry-&amp;gt;link[0]-&amp;gt;attributes();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$twitt['link'] = (string)$attr-&amp;gt;href;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$attr = $entry-&amp;gt;link[1]-&amp;gt;attributes();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$twitt['avatar'] = (string)$attr-&amp;gt;href;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;$twitts[] = $twitt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;return $twitts;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;/**&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * Formateaza o data in format human readable&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; * @param string $date&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; *&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt; */&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;public function formatDate($date)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;return date('d, M Y H:i');&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 100%;"&gt;&lt;b&gt;Aplicaţia finală&lt;/b&gt; se găseşte la:&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; &lt;/span&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;&lt;a href="http://code.assembla.com/public_rest_parser_example/subversion/nodes/twitter?rev=1"&gt;http://code.assembla.com/public_rest_parser_example/subversion/nodes/twitter?rev=1&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: 100%; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;Clasele pentru parsare au fost create de mine pentru a exemplifica simplitatea lucrului cu SimpleXmlElement şi implementează funcţionalitatea minimă pentru aceasta. Ele pot fi modificate şi completate cu noi funcţionalităţi de către oricine. Alte idei şi sugestii sunt binevenite. :)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-8763482582797064917?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/8763482582797064917/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/12/servicii-web-publice-exemplu-de-parsare.html#comment-form' title='3 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8763482582797064917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8763482582797064917'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/12/servicii-web-publice-exemplu-de-parsare.html' title='Servicii Web publice. Exemplu de parsare REST cu PHP şi SimpleXML (YouTube, Flickr &amp; Twitter API)'/><author><name>Dumitru Glavan</name><uri>http://www.blogger.com/profile/11834874013143798700</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_tJ6j40zpcAU/Sw53xkY006I/AAAAAAAACRI/iti990iENvs/S220/demeter.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-7047404464911531288</id><published>2009-12-17T07:16:00.000-08:00</published><updated>2010-01-04T02:28:08.439-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Adobe AIR Boot Camp</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;LEC&lt;/strong&gt; împreună cu &lt;strong&gt;Adobe Romania&lt;/strong&gt; vor organiza &lt;strong&gt;Adobe AIR Boot Camp&lt;/strong&gt;. Acest eveniment se va desfăşura sub forma unui mini-training de 3 ore în care veţi învăţa să folosiţi Flash Builder 4 pentru a crea proiecte AIR cu frameworkul Flex, a le compila şi depăna. Veţi face atat exemple simple de genul "Hello World", cat si exemple mai complicate care vă vor ajuta să vă familiarizaţi cu unele tehnologii din API-ul AIR (local database, encrypted storage, chromless UI, native processes etc).&lt;/span&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://www.jmu.edu/bookstore/images/adobe-logo.jpg" alt="Abode" width="150px" height="150px" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Dacă veţi veni cu laptopul vostru veţi putea face toate exerciţiile practice pe durata desfăşurării cursului. Trainingul va fi tinut de &lt;span style="font-weight: bold;"&gt;Mihai Corlan&lt;/span&gt; de la Adobe şi &lt;span style="font-weight: bold;"&gt;Daniel Năstase&lt;/span&gt; de la Line Education Center.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;În cadrul Adobe AIR Boot Camp va fi anunţat şi cursul pentru tehnologia Adobe Flex în cadrul Line Education Center.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Ce sunt Adobe Flex şi Adobe Air ?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Flex este un framework, care are la bază limbajul Action Script, cu ajutorul căruia putem construi aplicaţii interactive. Aceste aplicaţii pot fi puse atât într-un browser (prin Flash Player runtime) cât şi pe desktop prin Adobe Air. Mai multe detalii despre Flex, puteţi găsi în &lt;strong&gt;&lt;a href="http://line-education-center.blogspot.com/2009/12/follow-up-lec-technology-meetings.html" target="_blank"&gt;prezentarea ţinută de Mihai Corlan&lt;/a&gt;&lt;/strong&gt;, Platform Evangelist Adobe, la cea de-a doua ediţie a LEC Technology Meetings. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Adobe AIR Boot Camp va fi concentrat doar pe realizarea aplicaţiilor desktop, folosind Flex. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Când şi unde se va desfăşura Adobe AIR Boot Camp ?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Evenimentul va fi pe data de 30 ianuarie 2010, între orele 12.00 si 15.00, la sediul Adobe Romania (Anchor Plaza, etaj 9, Bd. Timisoara 26Z). &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Cât costă şi ce trebuie să fac pentru a mă înscrie ?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Participarea la eveniment este gratuită. Pentru a te înregistra pentru acest eveniment trebuie sa trimiti un mail pe adresa andreea.gemene[ at ]leconline.ro cu titlul "Adobe AIR Boot Camp" în care să îţi spui numele şi dacă mai vii şi cu altcineva. În cazul in care vii însoţit trebuie precizat numele celui care te va însoţi şi adresa sa de mail. Numărul de locuri va fi restricţionat la 30 de participanţi, iar rezervarea locurilor se va face în ordinea trimiterii email-urilor de înscriere. &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-7047404464911531288?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7047404464911531288/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/12/adobe-air-boot-camp.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7047404464911531288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7047404464911531288'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/12/adobe-air-boot-camp.html' title='Adobe AIR Boot Camp'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-4604221690306084080</id><published>2009-12-13T12:48:00.000-08:00</published><updated>2009-12-14T05:17:54.824-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><category scheme='http://www.blogger.com/atom/ns#' term='LTM'/><title type='text'>Follow-up LEC Technology Meetings - editia a II-a</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;&lt;a href="http://line-education-center.blogspot.com/2009/12/lec-technology-meetings-update-editia-2.html" target="_blank"&gt;LEC Technology Meetings&lt;/a&gt;&lt;/strong&gt; a avut loc sâmbătă, 12 decembrie, în Salonul Mare al &lt;strong&gt;ceainăriei Green Tea&lt;/strong&gt;. Am avut parte de nişte participanţi pasionaţi cu adevărat de PHP, studenţi la Universitatea Politehnica Bucureşti, Academia de Studii Economice, Universitatea Bucureşti şi tineri care lucrează în domeniul programării.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Prima prezentarea a fost a lui &lt;strong&gt;Dumitru Glavan&lt;/strong&gt;, trainer LEC, care le-a povestit invitaţilor cum se poate lucra cu web services în PHP. Dumitru le-a pregătit şi un mic concurs la sfârşit: cine răspundea corect la o întrebare, primea un premiu. Sperăm că a fost o surpriză plăcută pentru câştigător.&lt;/span&gt; &lt;span style="font-family:verdana;"&gt;Mai jos, puteţi viziona prezentarea "Web Services - Core of Web 2.0 Social Media Communication. Chewing up Google, Yahoo and Twitter APIs with PHP":&lt;/span&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;object width="200" height="100"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8159076&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8159076&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;La a doua prezentare, &lt;strong&gt;Mihai Corlan&lt;/strong&gt;, platform evangelist la Adobe Systems a explicat conceptele de "RIA (Rich Internet Applications)" şi "Flex framework". Mai jos este prezentarea "Building RIA with PHP and Flex":&lt;/span&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;object width="200" height="100"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8169470&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8169470&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;A urmat &lt;strong&gt;Tudor Barbu&lt;/strong&gt;, trainer LEC, cu o prezentare orientată pe limbajul de programare din Vim &amp;amp; Zend Framework, iar &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;în încheiere, &lt;strong&gt;Victor Mihaiu&lt;/strong&gt;, responsabil cu dezvoltarea site-ului &lt;a href="http://www.joined.ro/"&gt;www.Joined.ro&lt;/a&gt;, a purtat o discuţie liberă cu cei prezenti la LTM despre cum am putea să ne folosim de social networks astfel încât să ne realizăm obiectivele.&lt;/span&gt; &lt;span style="font-family:verdana;"&gt;Mai jos, puteţi viziona prezentarea lui:&lt;/span&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;object width="200" height="100"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8158861&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8158861&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Pe parcursul acestui eveniment, s-au savurat din ceaiurile şi prăjiturile gustoase de la Green Tea.&lt;/span&gt;&lt;div align="center"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/rac3p4wR4DJQDaPMpDgKOw?feat=embedwebsite" target="_blank"&gt;&lt;img src="http://lh4.ggpht.com/_FgoM8wZT79U/SyVMoqU0jqI/AAAAAAAAAPk/ozD4dY3e9Do/s144/DSC08287.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/qsJjYNGkQVn7glUR_4tOUg?feat=embedwebsite" target="_blank"&gt;&lt;img src="http://lh6.ggpht.com/_FgoM8wZT79U/SyVMpts-nqI/AAAAAAAAAPw/hTvzO_ZoUrU/s144/DSC08299.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/4ueAS9c-U9qfBC0990gvNg?feat=embedwebsite" target="_blank"&gt;&lt;img src="http://lh3.ggpht.com/_FgoM8wZT79U/SyVNfExFVkI/AAAAAAAAAQI/TAjSafAWsmI/s144/DSC08313.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;span style="font-family:verdana;"&gt; Echipa LEC speră că v-aţi simţit bine şi că aţi acumulat multe cunoştinte noi, utile.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Vă aşteptăm şi la celelalte ediţii!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-4604221690306084080?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/4604221690306084080/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/12/follow-up-lec-technology-meetings.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4604221690306084080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4604221690306084080'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/12/follow-up-lec-technology-meetings.html' title='Follow-up LEC Technology Meetings - editia a II-a'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_FgoM8wZT79U/SyVMoqU0jqI/AAAAAAAAAPk/ozD4dY3e9Do/s72-c/DSC08287.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-3749339977571543475</id><published>2009-12-02T10:50:00.000-08:00</published><updated>2009-12-04T04:19:07.442-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noutati'/><category scheme='http://www.blogger.com/atom/ns#' term='online'/><title type='text'>Launch48 Romania - acceptă provocarea şi implică-te în dezvoltarea unui business online în doar 2 zile!</title><content type='html'>&lt;div align="center"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;img src="http://www.launch48.com/wp-content/uploads/2008/12/launch48_logo.png" alt="Launch48 Romania" width="206px" height="65px" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Dacă te pasionează domeniul aplicaţiilor web, internetul, business-ul online, îţi doreşti să creezi noi contacte şi să traieşti o experienţă inedită, contra cronometru, atunci vino la Launch48 Romania!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Când şi unde?&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Launch48&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, cel mai interesant şi antrenant eveniment dedicat antreprenorilor existenţi sau viitori din mediul online londonez va avea loc în premiera în România, în perioada &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;7-9 decembrie&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, în cadrul celei de-a treia ediţii &lt;/span&gt;&lt;a href="http://www.netcamp.ro/" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;NetCamp&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, un eveniment marca Evensys, organizat în parteneriat cu &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Microsoft, Nokia, Kaspersky şi BCR&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Cum funcţionează Launch48?&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;Participanţi din domenii variate de activitate şi cu nivele diferite de experienţă în industria online se reunesc în echipe de lucru pentru a concepe, planifica, dezvolta şi lansa împreună una sau mai multe aplicaţii online, în doar 2 zile de activitate, plecând de la o serie de idei propuse şi alese prin vot democratic. Echipele formate sunt consiliate pe parcursul celor 48 de ore de mentori şi un board, format din specialişti cu experienţă în domeniu.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Cum poţi participa?&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Launch48 Romania&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; va oferi tuturor celor implicaţi o experienţă inedită şi o excelentă ocazie pentru a aprofunda domeniul antreprenoriatului online. Dacă îţi doreşti să te implici în proiect, te poţi &lt;/span&gt;&lt;a href="http://www.netcamp.ro/2009/inscriere-launch48.php" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;înscrie aici&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;. Grăbeşte-te, mai ai la dispoziţie doar 3 zile!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;De ce merită să te implici?&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Launch48 Romania&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; îţi va oferi oportunitatea unică de a te perfecţiona în domeniul tău, de a învăţa prin implicarea efectiva în dezvoltarea unei idei, de a colabora cu o serie de cunoscuţi profesionişti locali şi de a-ţi testa propriile abilităţi şi limite, lucrând sub presiunea celor 48 de ore pentru atingerea unui obiectiv concret.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Cum se va desfăşura?&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;Vor exista patru etape în desfăşurarea Launch48 Romania: trimiterea ideilor de proiecte, selecţia ideilor şi formarea echipelor, dezvoltarea proiectelor şi prezentarea lor în cadrul evenimentului &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;NetCamp&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, pe data de &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;9 decembrie&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;. Detalii complete poţi regăsi la &lt;/span&gt;&lt;a href="http://www.netcamp.ro/2009/launch48.php" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;http://www.netcamp.ro/2009/launch48.php&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Ai o întrebare?&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;Intră atunci în comunitatea &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Launch48 Network Romania&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, o pagina de forum realizată cu sprijinul HotNews - &lt;/span&gt;&lt;a href="http://forum.hotnews.ro/index.php?showtopic=5626" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;http://forum.hotnews.ro/index.php?showtopic=5626&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.  Vei găsi locul ideal pentru a face schimb de impresii, cunoaşte noi oameni şi testa idei în premieră.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-3749339977571543475?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/3749339977571543475/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/12/launch48-romania-accepta-provocarea-si.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3749339977571543475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3749339977571543475'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/12/launch48-romania-accepta-provocarea-si.html' title='Launch48 Romania - acceptă provocarea şi implică-te în dezvoltarea unui business online în doar 2 zile!'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-3008683037314301575</id><published>2009-12-02T03:03:00.000-08:00</published><updated>2009-12-17T03:55:45.744-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>LEC Technology Meetings - update ediţia 2</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;LEC Technology Meetings se va desfăşura &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;sâmbătă, 12 decembrie&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, în ceainăria &lt;/span&gt;&lt;strong&gt;&lt;a href="http://www.greentea.ro/ro/" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Green Tea&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, începând cu &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;ora 12:10&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;img src="http://lh6.ggpht.com/_FgoM8wZT79U/SxepIIlq7YI/AAAAAAAAAKg/kGxqzHhfRgE/s288/LTM.png" alt="logo" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;Pentru această ediţie, tema principală va fi &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;tehnologia PHP&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, iar programul prezentărilor este următorul:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Web Services - Core of Web 2.0 Social Media Communication. Chewing up Google, Yahoo and Twitter APIs with PHP&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;Speaker: Dumitru Glavan, Trainer LEC&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Past and Future - Vim &amp;amp; Zend Framework&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;Speaker: Tudor Barbu, Trainer LEC&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Building RIA with PHP and Flex&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;Speaker: Mihai Corlan, Platform Evangelist | Adobe Systems &lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;How social networks make things happen!&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;Speaker: Victor Mihaiu, Responsabil Dezvoltare &lt;/span&gt;&lt;a href="http://www.joined.ro/" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;www.Joined.ro&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;După cum observaţi, avem un &lt;strong&gt;invitat special&lt;/strong&gt;, şi anume &lt;strong&gt;&lt;a href="http://corlan.org/" target="_blank"&gt;Mihai Corlan&lt;/a&gt;&lt;/strong&gt;, platform evangelist la Adobe Systems. Acesta ne va vorbi despre aplicaţiile RIA (Rich Internet Applications). Se spune că acestea ar schimba jocul, în timp ce aplicaţii precum Gmail, Buzzword, TAAZ Makeover ar schimba regulile jocului. Pentru a crea o aplicaţie RIA se foloseşte Flex framework, iar în aceasta prezentare vom afla informaţiile elementare despre Flex şi despre conectarea unui client Flex cu un PHP backend.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Fiecare prezentare va dura între 30 şi 40 de minute, iar conţinutul va fi strict legat de elemente practice şi de noutate.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Când şi unde ?&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Evenimentul se va desfăşura &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;sâmbătă, 12 decembrie&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, între orele 12:10 si 15:00, în Salonul Mare al &lt;/span&gt;&lt;strong&gt;&lt;a href="http://www.greentea.ro/ro/" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Ceainăriei Green Tea&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; (Str. Dr. Burghelea, nr. 24). &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Harta o găsiţi &lt;/span&gt;&lt;a href="http://www.greentea.ro/ro/639/contact/" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;aici&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/vfQxnhKjUtU_njkKov7Utg?feat=embedwebsite" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;img src="http://lh3.ggpht.com/_FgoM8wZT79U/SxZTOWCTXxI/AAAAAAAAAJU/ZZw3nG6Iqo8/s144/Green%20Tea%201.png" height="100px" weight="100px" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/OfGAudRgN5Bx6Zx2P-CQxg?feat=embedwebsite" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;img src="http://lh5.ggpht.com/_FgoM8wZT79U/SxZTOhgcVuI/AAAAAAAAAJY/zeVMdTivcA8/s144/Green%20Tea%202.png" height="100px" weight="100px" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/q63ugSpuDppj9KULyg_SpQ?feat=embedwebsite" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;img src="http://lh6.ggpht.com/_FgoM8wZT79U/SxZVfR5S_cI/AAAAAAAAAJ0/JZgcSvviZr8/s144/Green%20Tea%203.png" height="100px" weight="100px" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Cât costă ?&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Participarea la acest eveniment nu implică niciun cost, eventual consumaţia care se va face la &lt;/span&gt;&lt;a href="http://www.greentea.ro/ro/629/meniu/" target="_blank"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Green Tea&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Ce trebuie să fac pentru a mă înscrie ?&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Pentru înscrieri trebuie să trimiteţi un mail pe adresa &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;andreea.gemene[ at ]leconline.ro&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; cu subiectul &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;LEC Technology Meetings - editia 2&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, în care vă spuneţi numele şi eventual dacă veţi mai veni şi cu alţi însoţitori. &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Numărul de locuri este limitat la 30&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, iar înscrierile se vor face în ordinea mail-urilor primite. După ce veţi trimite mail, veti primi un mail de confirmare, dacă mai sunt locuri sau nu.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Poate veni oricine ?&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Da. Acesta este un eveniment deschis, la care poate participa oricine este interesat de subiect. Pot participa atât cei care au urmat cursurile LEC (nu neapărat doar cele de PHP), cât şi prieteni de-ai voştri care sunt pasionaţi de tehnologie.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&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/301324996193914987-3008683037314301575?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/3008683037314301575/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/12/lec-technology-meetings-update-editia-2.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3008683037314301575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3008683037314301575'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/12/lec-technology-meetings-update-editia-2.html' title='LEC Technology Meetings - update ediţia 2'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_FgoM8wZT79U/SxepIIlq7YI/AAAAAAAAAKg/kGxqzHhfRgE/s72-c/LTM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-2142656277234794945</id><published>2009-11-25T14:44:00.000-08:00</published><updated>2009-11-26T05:37:28.793-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='TLS'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='securitate'/><category scheme='http://www.blogger.com/atom/ns#' term='Handshake'/><title type='text'>Transmiterea securizată a datelor – modelul SSL</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;b&gt;SSL&lt;/b&gt; (Secure Socket Layer), numit şi &lt;b&gt;TLS&lt;/b&gt; (Transport Socket Layer), este un protocol care permite ca două aplicaţii să comunice într-un mod securizat. În cazul transmiterii datelor pe Web – Serverul comunică cu Clientul prin protocolul &lt;b&gt;HTTPS&lt;/b&gt; şi nu HTTP.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Cum funcţionează SSL?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Deobicei datele circula de la Client spre Server şi vice-versa în mod text şi pot fi citite şi modificate de oricine poate prelua comunicarea dintre Client şi Server. Pentru ca acest lucru să nu se întâmple, protocolul SSL criptează informaţia care circulă prin canalele din internet şi verifică dacă proprietarul serverului este cel real. În modul acesta, clientul poate fi sigur că s-a logat pe site-ul băncii sale şi nu a trimis datele spre un alt server care ar putea să profite de datele contului său.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Modelul SSL foloseşte tehnica de “&lt;b&gt;public/private key encryption&lt;/b&gt;”. O &lt;b&gt;cheie publică&lt;/b&gt; este un string compus din litere şi cifre care se foloseşte la criptarea mesajelor astfel, încât numai proprietarul cheii publice îl poate citi. Acest mesaj, însă, poate fi descifrat doar dacă a fost criptat cu o cheie privată. Cheile funcţionează şi pe invers: mesajele criptate cu o &lt;b&gt;cheie privată&lt;/b&gt; pot fi decriptate cu o cheie publică.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;SSL Handshake: Identitate şi securitate&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;a href="http://2.bp.blogspot.com/_tJ6j40zpcAU/Sw5xzUYgvrI/AAAAAAAACQs/hoymcoVQSsE/s1600/SSL.GIF"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Spre exemplu Maria doreşte să îşi acceseze contul bancar de pe www.bancamariei.ro. Browser-ul Mariei începe o conecţiune HTTPS cu serverul www.bancamariei.ro şi transmite acestuia un string generat aleator pe care îl vom numi “&lt;b&gt;noroc&lt;/b&gt;”.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Serverul www.bancamariei.ro va începe conecţiunea cu Maria şi va trimite browser-ului ei două lucruri: &lt;b&gt;cheia sa publică&lt;/b&gt; criptată într-un certificat SSL şi “noroc” criptat cu &lt;b&gt;cheia sa privată&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Browser-ul Mariei va decripta mesajul de “noroc” cu cheia publică primită de la server. Dacă mesajul decriptat este identic cu cel transmis de Maria mai înainte spre server – atunci serverul sigur este www.bancamariei.ro , căci numai cheia privată de pe server poate cripta mesajul în aşa fel încât să poată fi decriptat cu cheia publică.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Să presupunem că Ion este un administrator de reţea şi monitorizează această comunicare de pe Internet. Până acum el a putut prelua din discuţia Client – Server cheia publică a băncii şi mesajul “noroc” a Mariei. Dar el nu are cheia privată a serverului, astfel, el nu poate cripta mesajul ca să îl trimită clientului. Deci, Ion nu poate să o păcălească pe Maria.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Problema identităţii&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Dar ce s-ar fi putut întâmpla dacă Ion intervenea din start în discuţia dintre Maria şi bancă? Ce se întâmplă dacă browser-ul Mariei ar fi discutat de la început cu serverul fals al lui Ion? În cazul acesta Ion ar fi putut genera cheia sa privată pentru a cripta mesajul “noroc” şi păcăli browser-ul Mariei că PC-ul lui este banca. Nu e bine!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Pentru aceasta, comunicare prin SSL dintre Client şi Server nu se rezumă doar la cheia publică. Cheia publică face parte dintr-un certificat SSL, emis de către o companie autorizată, în care browser-ul Mariei are încredere. După instalarea browser-ului pe calculatorul Mariei acesta deja conţine &lt;b&gt;cheile publice a diverse companii autorizate&lt;/b&gt; ca GoDaddy, VeriSign şi Thawte ce emit certificate SSL. Companiile care doresc să deţină o conexiune securizată cu clienţii trebuie să cumpere un certificat SSL de la una dintre companiile autorizate de mai sus.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Certificatul SSL se compune din cheia publică a băncii şi un bloc de date ce pot identifica banca, &lt;b&gt;criptate cu cheia privată a emiţătorului de certificate&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Când serverul băncii trimite certificatul spre browser-ul Mariei, acesta decriptează certificatul cu cheia publică a emiţătorului de certificate. Dacă certificatul este fals – decriptarea eşuiază. Dacă certificatul este valid – în datele decriptate apare cheia publică a băncii şi informaţia despre bancă. Dacă prin informaţia despre bancă nu e inclusă şi adresa băncii (www.bancamariei.ro) - Maria primeşte un mesaj de eroare şi conecţiunea se întrerupe.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Să ne întoarcem la Ion. Poate acesta să se dea drept Bancamariei? Nu, deoarece nu are cheia privată a emiţătorului de certificate pentru a cripta certificatul SSL.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;După verificarea certificatului, comunicare dintre Maria şi bancă poate continua.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;După Handshake: criptare simetrică chei&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Browser-ul Mariei şi serverul băncii ar putea comunica şi mai departe prin schimb de certificate, însă aceasta necesită prea multe calcule şi resurse pe serverul băncii şi ar putea încetini mult conecţiunea cu banca la un moment dat dacă sunt logaţi prea mulţi clienţi simultan.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Pentru aceasta browser-ul Mariei, după ce a verificat identitatea băncii, transmite băncii o cheie de criptare “simetrică” (pe care o va folosi şi Clientul şi Serverul de acum încolo) şi un algoritm nou de criptare serverului. Această modalitate de criptare este mai simplă şi va cripta datele mult mai uşor pe tot parcursul comunicării Client – Server.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Dar ce face Ion? El poate vedea cheia “simetrică” şi tipul algoritmului transmis către server de către browser-ul Mariei? Da, însă cheia “simetrică” încă este criptată cu cheia publică a băncii şi nu poate fi decriptată decât de către bancă cu cheia sa privată.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Acum Maria şi banca comunică cu ajutorul unei chei simetrice pe care o cunosc numai ei. Această cheie se mai numeşte “master secret”.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Tot procesul de autentificare şi comunicare este schiţat în imaginea de mai jos (click pentru a o mări):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJ6j40zpcAU/Sw5ySCKlVOI/AAAAAAAACQ0/F8-w6eWM0RY/s1600/SSL.GIF"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 231px; height: 320px;" src="http://2.bp.blogspot.com/_tJ6j40zpcAU/Sw5ySCKlVOI/AAAAAAAACQ0/F8-w6eWM0RY/s320/SSL.GIF" alt="" id="BLOGGER_PHOTO_ID_5408385856663016674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Apache şi OpenSSL&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Pentru Apache se poate instala modulul &lt;b&gt;OpenSSL&lt;/b&gt; care funcţionează fără a cumpăra neapărat un certificat SSL. Cu OpenSSL se pot genera certificate proprii, însă, aceste certificate nu sunt autorizate de nici o companie. În acest caz browser-ul clientului îl va întreba pe acesta dacă vrea sau nu să accepte un certificat de comunicare ne semnat de o companie autorizată. Clientul ar putea renunţa la vizitarea paginii dacă nu cunoaşte deţinătorul certificatului.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Resurse SSL&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Tutorial de instalare a modulului OpenSSL pentru Apache:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="http://www.debianadmin.com/install-and-configure-apache2-with-php5-and-ssl-support-in-debian-etch.html"&gt;http://www.debianadmin.com/install-and-configure-apache2-with-php5-and-ssl-support-in-debian-etch.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;De aici se pot cumpăra certificate SSL:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="http://www.verisign.com/ssl/ssl-information-center/"&gt;http://www.verisign.com/ssl/ssl-information-center/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="https://www.godaddy.com/gdshop/ssl/ssl.asp"&gt;https://www.godaddy.com/gdshop/ssl/ssl.asp&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&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/301324996193914987-2142656277234794945?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/2142656277234794945/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/11/transmiterea-securizata-datelor-modelul.html#comment-form' title='1 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/2142656277234794945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/2142656277234794945'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/11/transmiterea-securizata-datelor-modelul.html' title='Transmiterea securizată a datelor – modelul SSL'/><author><name>Dumitru Glavan</name><uri>http://www.blogger.com/profile/11834874013143798700</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_tJ6j40zpcAU/Sw53xkY006I/AAAAAAAACRI/iti990iENvs/S220/demeter.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tJ6j40zpcAU/Sw5ySCKlVOI/AAAAAAAACQ0/F8-w6eWM0RY/s72-c/SSL.GIF' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-7646738956130521869</id><published>2009-11-25T04:49:00.000-08:00</published><updated>2009-11-25T05:45:20.387-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noutati'/><title type='text'>StumbleUpon</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;strong&gt;&lt;a href="http://www.stumbleupon.com/home/" target="_blank"&gt;StumbleUpon&lt;/a&gt;&lt;/strong&gt; nu este o noutate, având în vedere că a fost lansat la sfârşitul anului 2001. Eu l-am descoperit acum un an şi mi se pare un tool dinamic bun, atunci când chiar vrei să afli informaţii doar din aria ta de interes.&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://www.sajithmr.com/wp-content/uploads/2008/03/stumbleupon-1.jpg" alt="StumbleUpon" width="180px" height="180px" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Sistemul de navigare este simplu. Îţi creezi un cont, îţi instalezi toolbar-ul, îţi alegi domeniile şi subdomeniile care te interesează - lista o găseşti pe pagina profilului tău şi începi să stumble, prin click-ul unui singur buton.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;Totuşi, nu ar fi mai simplu să foloseşti în continuare un search engine?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ba da, atunci când cauţi ceva exact. De exemplu, care sunt regulile dintr-un joc de baschet? Dar atunci când ai timp şi doreşti să afli mai multe informaţii despre acel sport, îţi recomand StumbleUpon deoarece aici sunt filtrate paginile cu ratings (adică recomandate de alţi utilizatori StumbleUpon - care sunt deocamdată în număr de 8 713 417).&lt;br /&gt;&lt;br /&gt;Mai multe informaţii găsiţi pe &lt;a href="http://www.stumbleupon.com/aboutus/" target="_blank"&gt;pagina lor de prezentare&lt;/a&gt; sau urmărind acest &lt;a href="http://www.stumbleupon.com/productdemo/" target="_blank"&gt;video&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Voi aţi folosit StumbleUpon?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-7646738956130521869?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7646738956130521869/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/11/stumbleupon.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7646738956130521869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7646738956130521869'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/11/stumbleupon.html' title='StumbleUpon'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-7457325334482137000</id><published>2009-11-24T09:29:00.000-08:00</published><updated>2009-11-25T03:54:26.905-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>MS Office - Learn how to use IT the right way</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;strong&gt;&lt;a href="http://www.leconline.ro/ms-office" target="_blank"&gt;MS Office - Learn how to use IT the right way&lt;/a&gt;&lt;/strong&gt; a avut loc luni, 23 noiembrie, în sala Unirii a &lt;a href="http://www.hotelroyalbucharest.ro/" target="_blank"&gt;Hotelului Royal&lt;/a&gt;. Este primul eveniment axat pe partea de Microsoft Office organizat de noi şi ne-am bucurat că invitaţii ne-au onorat cu prezenţa lor.&lt;br /&gt;&lt;br /&gt;Prima prezentare a fost a Andrei Marin, specialist HR, care a purtat o discuţie liberă cu participanţii despre modalităţile de evaluare a unui potenţial angajat şi despre competenţele pe care ar trebui să le aibă orice angajat, indiferent de poziţia pe care o ocupă într-o companie. Am avut parte chiar şi de un exerciţiu interactiv, prin care invitaţii au decis pe cine ar trebui să angajăm sau nu, în funcţie de soft skills şi hard skills.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/c4RaYEcighJuTxHkfsvtHQ?feat=embedwebsite" target="_blank"&gt;&lt;img src="http://lh4.ggpht.com/_FgoM8wZT79U/Swwp-f9iyrI/AAAAAAAAAE4/nlfqp-2LHkw/s144/IMG_6675.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/D6cLJuhe2qQHfNSLLrPWhQ?feat=embedwebsite" target="_blank"&gt;&lt;img src="http://lh5.ggpht.com/_FgoM8wZT79U/Swwp-WpPwjI/AAAAAAAAAE8/ZZE-eY_MzMs/s144/IMG_6677.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/cpmialneEFxV9VnZoK5BOQ?feat=embedwebsite" target="_blank"&gt;&lt;img src="http://lh3.ggpht.com/_FgoM8wZT79U/Swwqyx7rnTI/AAAAAAAAAFU/OczzMF0BkUk/s144/P1030754.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;A urmat Sorin Stancu, trainer LEC, care le-a arătat invitaţilor câteva lucruri utile care se pot face în Excel. Datorită timpului scurt, trainerul s-a axat mai mult pe partea finală a unor exerciţii în Excel, însă promitem ca la următoarele ediţii ne vom concentra mai în detaliu asupra unor probleme cu care vă confruntaţi zilnic la birou.&lt;br /&gt;&lt;br /&gt;Desigur, a fost şi o scurtă pauză, unde invitaţii au interacţionat între ei. Evenimentul s-a încheiat cu prezentarea lui Daniel Năstase, trainer LEC, care ne-a învăţat ce ar fi bine şi ce nu ar fi bine să folosim în prezentările realizate în PowerPoint.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt; &lt;div&gt;&lt;a href="http://picasaweb.google.com/lh/photo/HI2ft-4MvPmgRMhe9P-d8Q?feat=embedwebsite" target="_blank"&gt;&lt;img src="http://lh6.ggpht.com/_FgoM8wZT79U/Swwp-hTfmnI/AAAAAAAAAFA/gUvrjuH6jTA/s144/IMG_6685.jpg" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/td&gt;&lt;br /&gt;&lt;td&gt; &lt;div&gt;&lt;a href="http://picasaweb.google.com/lh/photo/R1z37Fk6S9OYKraOBgtucA?feat=embedwebsite" target="_blank"&gt;&lt;img src="http://lh5.ggpht.com/_FgoM8wZT79U/Swwp-h6qfBI/AAAAAAAAAFE/3kf8caD6j-8/s144/IMG_6686.jpg" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/td&gt;&lt;br /&gt;&lt;td&gt; &lt;div&gt;&lt;a href="http://picasaweb.google.com/lh/photo/2-6iDVyChu9ol5-hnQppEQ?feat=embedwebsite" target="_blank"&gt;&lt;img src="http://lh3.ggpht.com/_FgoM8wZT79U/Swwp-3ef4SI/AAAAAAAAAFI/_PxurKyb2Pc/s144/IMG_6690.jpg" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;În urma completării formularului de feedback, Ana Hajdău - Administrative Coordinator &lt;a href="http://www.synergetica.ro/" target="_blank"&gt;Synergetica&lt;/a&gt; si Mihaela Tănasă - Compensation&amp;Benefit Specialist &lt;a href="http://www.azadea.com/index.asp" target="_blank"&gt;Azadea&lt;/a&gt; au câştigat un training la &lt;a href="http://www.leconline.ro/curs-it/curs-excel" target="_blank"&gt;Excel for Business&lt;/a&gt;, care se va desfăşura în perioada 7-8 decembrie, iar Dana Vladuţ - Project Manager &lt;a href="http://www.synergetica.ro/" target="_blank"&gt;Synergetica&lt;/a&gt; şi Gabriela Irinuca Văduva - Coordonator Marketing si Comunicare &lt;a href="http://www.ecdl.com" target="_blank"&gt;ECDL&lt;/a&gt; la &lt;a href="http://www.leconline.ro/curs-it/microsoft-powerpoint-workshop.html" target="_blank"&gt;PowerPoint Workshop&lt;/a&gt;, care se va desfăşura în data de 9 decembrie.&lt;br /&gt;&lt;br /&gt;Următoarea ediţie va avea loc la începutul lunii februarie. Vă aşteptăm şi atunci!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-7457325334482137000?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7457325334482137000/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/11/ms-office-learn-how-to-use-it-right-way.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7457325334482137000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7457325334482137000'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/11/ms-office-learn-how-to-use-it-right-way.html' title='MS Office - Learn how to use IT the right way'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_FgoM8wZT79U/Swwp-f9iyrI/AAAAAAAAAE4/nlfqp-2LHkw/s72-c/IMG_6675.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-4311396683569832061</id><published>2009-11-17T07:05:00.000-08:00</published><updated>2009-12-01T13:43:24.741-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Editia 2 - LEC Technology Meetings</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Din motive tehnice cea de-a doua ediţie &lt;/span&gt;&lt;a href="http://line-education-center.blogspot.com/2009/11/lec-technology-meetings-editia-2.html"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;LEC - Technology Meetings&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; se va defăşura sâmbătă, 12 decembrie. Intervalul orar va rămâne acelaşi, 18.30 - 20.30, însă cel mai probabil locaţia va fi alta. Vom anunţa noua locaţie cât mai curând posibil. &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;În cazul în care cineva a făcut o rezervare pentru data de 19 noiembrie aceasta va fi valabilă şi pentru data de 12 decembrie.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-4311396683569832061?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/4311396683569832061/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/11/editia-2-lec-technology-meetings.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4311396683569832061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4311396683569832061'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/11/editia-2-lec-technology-meetings.html' title='Editia 2 - LEC Technology Meetings'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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-301324996193914987.post-8462067238398382128</id><published>2009-11-13T05:52:00.000-08:00</published><updated>2009-11-13T08:33:33.284-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noutati'/><title type='text'>Google Wave</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;strong&gt;Ştiţi de Google Wave?&lt;/strong&gt; Este cel mai nou proiect Google, definit de utilizatori ca fiind un instrument online de comunicare şi colaborare în timp real.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://leestone.co.uk/daily/wp-content/uploads/2009/08/Google-Wave-logo.jpg" alt="Google Wave" width=200px height=180px /&gt;&lt;/div&gt;&lt;br /&gt;Până în 2010, Google Wave va fi disponibil în varianta de testare beta. S-au trimis deja 100 000 de invitaţii, în septembrie, cu scopul de a primi sugestii de îmbunătăţire. Odată ce eşti pe "val", vei putea trimite mai departe şi tu invitaţii prietenilor tăi. Poţi solicita o invitaţie &lt;a href="https://services.google.com/fb/forms/wavesignup/" target="_blank"&gt;aici&lt;/a&gt;, însă nu garantez promptitudinea deoarece chiar ei declară: "Invitations will not be sent immediately. We have a lot of stamps to lick."&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Şi totusi, de ce este atât de special?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Personal, imi place să cred că e un upgrade al e-mailurilor cu multe reply-uri: poţi comunica în timp real cu un grup de oameni. În momentul în care scrii în wave (acea căsuţă) ceilalţi văd asta şi pot veni în acelaşi timp cu feedback: idei, imagini, videoclipuri, URL-uri, hărţi şi alte aplicaţii.&lt;br /&gt;&lt;br /&gt;Dacă eşti interesat să afli mai multe despre Google Wave, poţi găsi informaţii pe &lt;a href="http://wave.google.com/help/wave/about.html" target="_blank"&gt;pagina lor de prezentare&lt;/a&gt; sau poţi urmări următorul filmuleţ:&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/p6pgxLaDdQw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/p6pgxLaDdQw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ca şi utilizator Wave, tu ce beneficii ai mai descoperit în Google Wave?&lt;/strong&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-8462067238398382128?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/8462067238398382128/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/11/google-wave.html#comment-form' title='2 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8462067238398382128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8462067238398382128'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/11/google-wave.html' title='Google Wave'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-3346616616420071730</id><published>2009-11-11T04:45:00.000-08:00</published><updated>2009-11-13T02:01:48.941-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>LEC Technology Meetings editia 2</title><content type='html'>Cea de-a doua editie a seriei de evenimente LEC Technology Meetings se va desfasura joi, &lt;b&gt;19 noiembrie&lt;/b&gt;, incepand cu &lt;b&gt;ora 18.30,&lt;/b&gt; in club &lt;b&gt;Maya&lt;/b&gt;.  Daca &lt;a href="http://line-education-center.blogspot.com/2009/09/lec-technology-meetings-editia-1.html"&gt;prima editie&lt;/a&gt; a fost dedicata technologiei Java,  aceasta editie va fi dedicata PHP-ului. Deocamdata sunt confirmate urmatoarele prezentari:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;Web Services - Core of Web 2.0 Social Media Communication. Chewing up Google, Yahoo and Twitter APIs with PHP&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Speaker: Dumitru Glavan, trainer LEC&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;Past and Future - Vim &amp;amp; Zend Framework&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Speaker: Tudor Barbu, trainer LEC&lt;br /&gt;&lt;br /&gt;Fiecare prezentare va dura intre 30 si 40 de minute, iar continutul va fi strict legat de elemente practice si de noutate.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cand si unde ?&lt;/b&gt;&lt;br /&gt;Evenimentul se va desfasura joi19 noiembrie, intre orele 18.30 si 20.30, in club Maya (Calea Mosilor nr. 138). Mai jos aveti o harta cu locatia exacta.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_h_KMvWvn4DA/Svq2ggobOuI/AAAAAAAABCs/Za-uDyjQHts/s1600-h/harta_maya2.jpg" style="text-decoration: none;"&gt;&lt;img src="http://4.bp.blogspot.com/_h_KMvWvn4DA/SqkzzhP2gCI/AAAAAAAAA_U/bxg64GAbFCM/s320/harta_maya2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5379888190061969442"  style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cat costa ?&lt;/b&gt;&lt;br /&gt;Nu costa nimic, decat eventuala consumatie care se va face de la bar.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ce trebuie sa fac pentru a ma inscrie ?&lt;/b&gt;&lt;br /&gt;Pentru inscrieri trebuie sa trimiteti un &lt;b&gt;mail &lt;/b&gt;pe adresa daniel.nastase@leconline.ro cu subiectul &lt;b&gt;LEC Technology Meetings - editia 2&lt;/b&gt;, in care va spuneti numele si eventual daca veti mai veni si cu alti insotitori. &lt;b&gt;Numarul de locuri este limitat la 40&lt;/b&gt;, iar inscrierile se vor face in ordinea mail-urilor primite. Dupa ce veti trimite mail, veti primi si din partea mea un mail de confirmare, daca mai sunt locuri sau nu.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Poate veni oricine ?&lt;/b&gt;&lt;br /&gt;Da. Acesta este un eveniment deschis, la care poate participa oricine este interesat de subiect. Pot participa atat cei care au urmat cursurile LEC , cat si prieteni de ai vostri.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-3346616616420071730?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/3346616616420071730/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/11/lec-technology-meetings-editia-2.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3346616616420071730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3346616616420071730'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/11/lec-technology-meetings-editia-2.html' title='LEC Technology Meetings editia 2'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_h_KMvWvn4DA/SqkzzhP2gCI/AAAAAAAAA_U/bxg64GAbFCM/s72-c/harta_maya2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-7694580918990061888</id><published>2009-11-09T02:54:00.000-08:00</published><updated>2009-11-09T10:44:11.357-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Share and win!</title><content type='html'>&lt;div style="text-align: justify;"&gt;Începând cu data de 21 noiembrie, se vor forma grupe noi pentru următoarele traininguri:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;21 noiembrie - &lt;a href="http://www.leconline.ro/curs-it/curs-java-incepatori.html" target="_blank"&gt;Java Fundamentals&lt;/a&gt;&lt;/li&gt;&lt;li&gt;23 noiembrie - &lt;a href="http://www.leconline.ro/curs-it/php-advanced.html" target="_blank"&gt;PHP Advanced&lt;/a&gt;&lt;/li&gt;&lt;li&gt;7 decembrie - &lt;a href="http://www.leconline.ro/curs-it/curs-excel" target="_blank"&gt;Excel for Business&lt;/a&gt;&lt;/li&gt;&lt;li&gt;9 decembrie - &lt;a href="http://www.leconline.ro/curs-it/microsoft-powerpoint-workshop.html" target="_blank"&gt;Microsoft PowerPoint Workshop&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;strong&gt;Vrei să câştigi un training &lt;a href="http://www.leconline.ro/" target="_blank"&gt;Line Education Center&lt;/a&gt;, la alegerea ta? Dacă da, uite ce îţi propunem să faci:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Scrie pe blogul tău un articol despre trainingurile noastre. Prezintă-le şi demonstrează-le cititorilor tăi beneficiile şi avantajele &lt;a href="http://www.leconline.ro/cursuri" target="_blank"&gt;cursurilor LEC&lt;/a&gt;. Iar dacă i-ai convins, spune-le ca atunci când se vor înscrie la un training LEC să mentioneze la rubrica "Observaţii" ca de la tine au aflat. Şi nu uita să postezi la comentariile acestui articol linkul către blogul tău.&lt;br /&gt;&lt;br /&gt;Creativitatea ta va fi măsurata şi recompensată prin numărul de prieteni care vor lua parte la un training LEC, începând cu data de 21 noiembrie.&lt;br /&gt;&lt;br /&gt;Aşadar, cine reuşeşte să convingă câţi mai mulţi prieteni să participe la un training LEC, va beneficia la rândul lui de un &lt;strong&gt;&lt;a href="http://www.leconline.ro/cursuri" target="_blank"&gt;curs LEC&lt;/a&gt; la alegere&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Aşteptăm comentariile tale. Share and win!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-7694580918990061888?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7694580918990061888/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/11/share-and-win.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7694580918990061888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7694580918990061888'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/11/share-and-win.html' title='Share and win!'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-1766874537092657291</id><published>2009-11-09T02:43:00.000-08:00</published><updated>2009-11-09T02:52:37.743-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Iar câştigătorii de la How To Web sunt..</title><content type='html'>..&lt;strong&gt;Simian Mihnea&lt;/strong&gt;, student la Facultatea de Automatică şi Calculatoare şi &lt;strong&gt;Radu Ioana&lt;/strong&gt;, studentă la Facultatea de Matematică şi Informatică. Aceştia vor beneficia de un training gratuit de la &lt;strong&gt;Line Education Center&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Mulţumim celor care şi-au manifestat interesul pentru trainingurile noastre şi sperăm să ne întâlnim şi la alte astfel de evenimente! De asemenea, felicitări echipei &lt;strong&gt;How To Web&lt;/strong&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-1766874537092657291?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/1766874537092657291/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/11/iar-castigatorii-de-la-how-to-web-sunt.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/1766874537092657291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/1766874537092657291'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/11/iar-castigatorii-de-la-how-to-web-sunt.html' title='Iar câştigătorii de la How To Web sunt..'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-2426675968280306058</id><published>2009-10-30T04:56:00.000-07:00</published><updated>2009-10-30T05:17:04.364-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Dacă vei veni la How To Web..</title><content type='html'>..vei avea posibilitatea de a câştiga unul dintre trainingurile &lt;strong&gt;&lt;a  href="http://www.leconline.ro/cursuri" target="_blank"&gt;Line Education Center&lt;/a&gt;&lt;/strong&gt;, care se vor începe în luna martie 2010.&lt;br /&gt;&lt;br /&gt;Pentru a participa la acest concurs, va trebui să completezi un mic formular prin care te vei abona la newsletterul lunar LEC. Simplu, nu? &lt;br /&gt;&lt;br /&gt;Acest formular fizic il vei primi când vei intra în sala EC105 din cadrul facultăţii de Automatică şi Calculatoare, locul de desfăşurare &lt;strong&gt;How To Web&lt;/strong&gt;, sau îl poţi lua direct de la noi, de la &lt;strong&gt;Learning Corner&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;Aşadar, dacă eşti interesat de Java, PHP, CSS, .NET, Microsoft Excel, Microsoft PowerPoint, nu uita să participi la acest concurs.&lt;br /&gt;&lt;br /&gt;Te aşteptăm la &lt;strong&gt;&lt;a href="http://www.how-to-web.net/" target="_blank"&gt;How To Web&lt;/a&gt;&lt;/strong&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-2426675968280306058?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/2426675968280306058/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/10/daca-vei-veni-la-how-to-web.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/2426675968280306058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/2426675968280306058'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/10/daca-vei-veni-la-how-to-web.html' title='Dacă vei veni la How To Web..'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-808593594399765372</id><published>2009-10-21T08:31:00.000-07:00</published><updated>2009-10-22T07:00:00.406-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>How To Web</title><content type='html'>&lt;div style="text-align: justify;"&gt;Pe data de 31 octombrie, &lt;strong&gt;&lt;a href="http://www.leconline.ro" target="_blank"&gt;LEC&lt;/a&gt;&lt;/strong&gt; va fi prezent la prima conferinţă dedicată web-ului din România, &lt;strong&gt;&lt;a href="http://www.how-to-web.net/" target="_blank"&gt;How To Web&lt;/a&gt;&lt;/strong&gt;, aceasta având loc în incinta Facultăţii de Automatică şi Calculatoare.&lt;br /&gt;&lt;br /&gt;Pe durata întregii zile vor avea loc prezentări ale temelor şi tehnologiilor de actualitate din domeniul Web-ului. Printre speakeri se numără &lt;strong&gt;&lt;a href="http://vladimiroane.com/" target="_blank"&gt;Vladimir Oane&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href="http://fusu.ro/" target="_blank"&gt;Călin Fusu&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href="http://vladstan.com/" target="_blank"&gt;Vlad Stan&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href="http://lemnaru.com/" target="_blank"&gt;George Lemnaru&lt;/a&gt;&lt;/strong&gt; şi mulţi alţii. Mai multe detalii despre desfăşurarea evenimentului găsiţi şi în &lt;strong&gt;&lt;a href="http://www.how-to-web.net/agenda/" target="_blank"&gt;agenda How To Web&lt;/a&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Pe lângă aceste conferinţe, în pauze, veţi putea discuta cu câţiva dintre cei care crează cele mai interesante proiecte online din web-ul românesc, veţi putea afla mai multe informaţii despre cărţi, cursuri şi alte surse de informare specifice acestui domeniu şi desigur, vă puteţi relaxa la o cafea împreuna cu speakerii, schimbând păreri despre cele văzute sau prezentate.&lt;br /&gt;&lt;br /&gt;Nu rataţi această ocazie de a interacţiona cu oameni pasionaţi de IT ca şi voi!&lt;br /&gt;&lt;br /&gt;Ne vedem la &lt;strong&gt;&lt;a href="http://www.how-to-web.net/" target="_blank"&gt;How To Web&lt;/a&gt;&lt;/strong&gt;?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-808593594399765372?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/808593594399765372/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/10/how-to-web.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/808593594399765372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/808593594399765372'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/10/how-to-web.html' title='How To Web'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-6027652507987133406</id><published>2009-10-13T05:13:00.000-07:00</published><updated>2009-10-13T05:14:03.853-07:00</updated><title type='text'>Bill Gates - The first rule</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: 13px; color: rgb(51, 51, 51); line-height: 19px; "&gt;&lt;span class="text" style="font-style: italic; "&gt;"The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency."&lt;br /&gt;&lt;span style="font-style: italic; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="text"&gt;&lt;span style="font-weight: bold; "&gt;Bill Gates &lt;/span&gt;[&lt;a href="http://www.quotedb.com/quotes/3854" style="color: rgb(102, 102, 153); "&gt;link&lt;/a&gt;]&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-6027652507987133406?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/6027652507987133406/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/10/bill-gates-first-rule.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/6027652507987133406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/6027652507987133406'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/10/bill-gates-first-rule.html' title='Bill Gates - The first rule'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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-301324996193914987.post-2767062935151266324</id><published>2009-10-07T05:30:00.000-07:00</published><updated>2009-10-12T14:18:13.618-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Grupe noi</title><content type='html'>Dupa cum v-ati obisnuit deja, la sfarsitul lunii octombrie vor incepe trainingurile Line Education Center pentru grupe noi.&lt;br /&gt;&lt;br /&gt;&lt;div align=center&gt;&lt;a href="http://picasaweb.google.com/lh/photo/2KHFkB6JGBq4655T_bGYAQ?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_FgoM8wZT79U/StOcFkdM_cI/AAAAAAAAAC4/NrOhdCOtE9E/s400/Afis%20copy.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;14 octombrie - &lt;a href="http://www.leconline.ro/curs-it/microsoft-powerpoint-workshop.html" target="_blank"&gt;Workshop Microsoft PowerPoint&lt;/a&gt;&lt;/li&gt;&lt;li&gt;15 octombrie - &lt;a href="http://www.leconline.ro/curs-it/curs-excel" target="_blank"&gt;Workshop Microsoft Excel&lt;/a&gt;&lt;/li&gt;&lt;li&gt;26 octombrie - &lt;a href="http://www.leconline.ro/curs-it/curs-java-incepatori.html" target="_blank"&gt;Java Fundamentals&lt;/a&gt;&lt;/li&gt;&lt;li&gt;27 octombrie - &lt;a href="http://www.leconline.ro/curs-it/curs-java-avansati" target="_blank"&gt;Java Advanced&lt;/a&gt;&lt;/li&gt;&lt;li&gt;28 octombrie - &lt;a href="http://www.leconline.ro/curs-it/curs-java-incepatori.html" target="_blank"&gt;Java Fundamentals&lt;/a&gt;&lt;/li&gt;&lt;li&gt;28 octombrie - &lt;a href="http://www.leconline.ro/curs-it/curs-php" target="_blank"&gt;Initiere in PHP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;29 octombrie - &lt;a href="http://www.leconline.ro/curs-it/curs-css-javascript" target="_blank"&gt;CSS, HTML si JavaScript&lt;/a&gt;&lt;/li&gt;&lt;li&gt;30 octombrie - &lt;a href="http://www.leconline.ro/curs-it/curs-net" target="_blank"&gt;.NET training in C#&lt;/a&gt;&lt;/li&gt;&lt;li&gt;31 octombrie - &lt;a href="http://www.leconline.ro/curs-it/curs-php" target="_blank"&gt;Initiere in PHP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;31 octombrie - &lt;a href="http://www.leconline.ro/curs-it/microsoft-office-for-business.html" target="_blank"&gt;Microsoft Office for Business&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Va asteptam la trainingurile noastre!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-2767062935151266324?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/2767062935151266324/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/10/grupe-noi.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/2767062935151266324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/2767062935151266324'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/10/grupe-noi.html' title='Grupe noi'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_FgoM8wZT79U/StOcFkdM_cI/AAAAAAAAAC4/NrOhdCOtE9E/s72-c/Afis%20copy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-8529709506646711016</id><published>2009-10-02T03:46:00.000-07:00</published><updated>2009-10-02T03:49:03.797-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='User Interface'/><title type='text'>Google Style</title><content type='html'>&lt;p&gt; Jen Fitzpatrick, principala responsabila pentru user interface al produselor Google:&lt;/p&gt;&lt;embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=-6459171443654125383&amp;amp;hl=en&amp;amp;fs=true" style="width:400px;height:326px" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash"&gt;&lt;/embed&gt; &lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: 13px; color: rgb(51, 51, 51); font-style: italic; line-height: 19px; "&gt;&lt;blockquote&gt;Google is a tool that gives you exactly what you want, when you want it; not everything you could possibly ever want all the time.&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-8529709506646711016?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/8529709506646711016/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/10/google-style.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8529709506646711016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8529709506646711016'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/10/google-style.html' title='Google Style'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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-301324996193914987.post-4366454495498165107</id><published>2009-09-22T03:05:00.000-07:00</published><updated>2009-09-22T05:34:17.693-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>LEC Technology Meetings - editia 1</title><content type='html'>&lt;div style="text-align: justify;"&gt;Lec Technology Meetings a avut loc sambata, 19 septembrie, in &lt;a href="http://www.club-maya.ro/" target="_blank"&gt;club Maya&lt;/a&gt;. Este primul eveniment de acest tip organizat de LEC si ne-am bucurat sa vedem invitatii atat de dornici de a afla cat mai multe informatii despre Java, tema acestei prime editii.&lt;br /&gt;&lt;br /&gt;Daniel Nastase a dat tonul acestui eveniment, povestind despre ideea acestei intalniri, apoi despre conceptul "learning by doing", atat de putin familiar sistemului de educatie romanesc, dar nu si LEC-ului.&lt;br /&gt;&lt;br /&gt;A urmat Catalin Boja care a vorbit despre dezvoltarea aplicatiilor pentru telefoanele mobile folosind tehnologia Java, despre provocarile pe care le impune acest mediu, despre evolutia J2ME si despre primii pasi care trebuie facuti de catre cineva care este interesat de acest domeniu.&lt;br /&gt;&lt;br /&gt;Cristian Olaru, software developer la IBM, a prezentat dezvoltarea aplicatiilor web folosind Java si in special un studiu de caz despre aplicatia care sta in spatele &lt;a href="http://www.javaromania.com/" target="_blank"&gt;www.javaromania.com&lt;/a&gt;. In urma sesiunii de intrebari de la aceasta prezentare, un participant a fost premiat cu cartea &lt;a href="http://www.librarie.net/carti/18697/Java-expert-editia-Stefan-Tanasa-Cristian-Olaru-Stefan-Andrei" target="_blank"&gt;Java de la 0 la expert&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Desigur, intre prezentari au existat pauze, unde invitatii au interactionat intre ei si au putut vorbi deschis cu speakerii despre proiectele lor. Evenimentul s-a incheiat cu o scurta prezentare a lui Daniel insotita de exemple practice privind dezvoltarea interfetelor grafice folosind JavaFx.&lt;br /&gt;&lt;br /&gt;Mai jos gasiti prezentarile sustinute sambata si cateva fotografii in care este surprinsa atmosfera acestei intalniri.&lt;br /&gt;&lt;br /&gt;Voi ce parere aveti despre aceasta initiativa? Ce alte teme v-ar interesa?&lt;br /&gt;&lt;br /&gt;Va asteptam la urmatoarele editii!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_2029749"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/danielnastase/prezentare-1-ltm" title="Prezentare 1 - LTM"&gt;&lt;/a&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=prezentarej2me-090921065752-phpapp01&amp;amp;stripped_title=prezentare-1-ltm"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=prezentarej2me-090921065752-phpapp01&amp;amp;stripped_title=prezentare-1-ltm" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_2029769"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/danielnastase/dezvoltarea-aplicatiilor-web" title="Dezvoltarea Aplicatiilor Web"&gt;&lt;/a&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=dezvoltareaaplicatiilorweb-090921070307-phpapp02&amp;amp;stripped_title=dezvoltarea-aplicatiilor-web"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=dezvoltareaaplicatiilorweb-090921070307-phpapp02&amp;amp;stripped_title=dezvoltarea-aplicatiilor-web" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_2029760"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/danielnastase/introducere-in-java-jx" title="Introducere In Java Jx"&gt;&lt;/a&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=introducereinjavajx-090921070032-phpapp02&amp;amp;stripped_title=introducere-in-java-jx"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=introducereinjavajx-090921070032-phpapp02&amp;amp;stripped_title=introducere-in-java-jx" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/daniel.nastase/LTMEditia1?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_h_KMvWvn4DA/Srdzqmkwv1E/AAAAAAAABAw/YfUiqUjotcA/s160-c/LTMEditia1.jpg" style="margin: 1px 0pt 0pt 4px;" height="260" width="260" /&gt;&lt;/a&gt;&lt;a href="http://picasaweb.google.com/daniel.nastase/LTMEditia1?feat=embedwebsite" style="color: rgb(77, 77, 77); font-weight: bold; text-decoration: none;"&gt;&lt;br /&gt;LTM - editia 1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-4366454495498165107?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/4366454495498165107/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/09/lec-technology-meetings-editia-1.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4366454495498165107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4366454495498165107'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/09/lec-technology-meetings-editia-1.html' title='LEC Technology Meetings - editia 1'/><author><name>Andreea Gemene</name><uri>http://www.blogger.com/profile/07826012349365700173</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_QeX4Hu0eL6M/Surf3Eza29I/AAAAAAAABqQ/zCr7KPbaeC4/S220/pixelas.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_h_KMvWvn4DA/Srdzqmkwv1E/AAAAAAAABAw/YfUiqUjotcA/s72-c/LTMEditia1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-7929072337197916363</id><published>2009-09-10T10:02:00.000-07:00</published><updated>2009-09-10T10:14:47.245-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>LEC Technology Meetings</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_h_KMvWvn4DA/SqkzzhP2gCI/AAAAAAAAA_U/bxg64GAbFCM/s1600-h/harta_maya2.jpg"&gt;&lt;/a&gt;Incepand din luna septembrie Line Education Center va lansa o noua intiativa sub denumirea de &lt;span style="font-weight:bold;"&gt;LEC Technology Meetings&lt;/span&gt;. Aveti mai jos mai multe detalii despre acest eveniment.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ce ?&lt;/b&gt;&lt;br /&gt;Pe scurt, ideea este: ne vom aduna intr-o locatie si vom povesti despre o anumita tema, special aleasa pentru editia respectiva. Evenimentul va contine o serie de prezentari sustinute de trainerii din LEC si de invitati din industrie.&lt;br /&gt;&lt;br /&gt;Pentru prima editie am ales ca tema &lt;b&gt;tehnologia Java&lt;/b&gt;, iar programul prezentarilor este urmatorul:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;Dezvoltarea de aplicatii pentru telefoane mobile folosind J2ME&lt;/span&gt;&lt;/b&gt; &lt;div&gt;Speaker: Catalin Boja, trainer LEC&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;Dezvoltarea aplicatiilor Web folosind Java / studiu de caz: &lt;a href="http://www.javaromania.com/mengine/mainContent.html?t=0"&gt;www.javaromania.com&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;a href="http://www.javaromania.com/mengine/mainContent.html?t=0"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;  Speaker: Cristian Olaru, software developer IBM&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;Dezvoltarea de Rich User Interfaces folosind JavaFx&lt;/span&gt;&lt;/b&gt;  &lt;/div&gt;&lt;div&gt;Speaker: Daniel Nastase, trainer LEC&lt;div&gt;&lt;br /&gt;Fiecare prezentare va dura intre 30 si 40 de minute, iar continutul va fi strict legat de elemente practice si de noutate.&lt;br /&gt;&lt;br /&gt;La aceasta prima editie il vom avea ca invitat special pe domnul Cristian Olaru, autorul cartii &lt;a href="http://www.librarie.net/carti/18697/Java-expert-editia-Stefan-Tanasa-Cristian-Olaru-Stefan-Andrei"&gt;Java de la 0 la expert&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cand si unde ?&lt;/b&gt;&lt;br /&gt;Evenimentul se va desfasura &lt;b&gt;sambata 19 septembrie&lt;/b&gt;, intre orele 11.00 si 13.30, in club Maya (Calea Mosilor nr. 138). Mai jos aveti o harta cu locatia exacta.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://4.bp.blogspot.com/_h_KMvWvn4DA/SqkzzhP2gCI/AAAAAAAAA_U/bxg64GAbFCM/s320/harta_maya2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5379888190061969442" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 180px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Cat costa ?&lt;/b&gt;&lt;br /&gt;Nu costa nimic, decat eventuala consumatie care se va face de la bar.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ce trebuie sa fac pentru a ma inscrie ?&lt;/b&gt;&lt;br /&gt;Pentru inscrieri trebuie sa trimiteti un mail pe adresa &lt;a href="http://www.blogger.com/daniel.nastase@leconline.ro"&gt;daniel.nastase@leconline.ro&lt;/a&gt; cu subiectul LEC Technology Meetings - editia 1, in care va spuneti numele si eventual daca veti mai veni si cu alti insotitori. &lt;b&gt;Numarul de locuri este limitat la 40&lt;/b&gt;, iar inscrierile se vor face in ordinea mail-urilor primite. Dupa ce veti trimite mail, veti primi si din partea mea un mail de confirmare, daca mai sunt locuri sau nu.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Poate veni oricine ?&lt;/b&gt;&lt;br /&gt;Da. Acesta este un eveniment deschis, la care poate participa oricine este interesat de subiect. Pot participa atat cei care au urmat cursurile LEC (nu neaparat doar cele de Java), cat si prieteni de ai vostri care sunt pasionati de technologie.&lt;br /&gt;&lt;br /&gt;Cea de-a doua editie LEC Technology Meetings se va desfasura in luna octombrie.&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/301324996193914987-7929072337197916363?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7929072337197916363/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/09/lec-technology-meetings.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7929072337197916363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7929072337197916363'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/09/lec-technology-meetings.html' title='LEC Technology Meetings'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_h_KMvWvn4DA/SqkzzhP2gCI/AAAAAAAAA_U/bxg64GAbFCM/s72-c/harta_maya2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-7666959399330164568</id><published>2009-08-26T08:40:00.000-07:00</published><updated>2009-08-26T09:31:30.901-07:00</updated><title type='text'>Tabela de ipoteze cu o singura variabila (Data table)</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;In acest articol voi prezenta tabela de ipoteze cu o singura variabila (data table) .&lt;/div&gt;&lt;div&gt;In imaginea de mai jos sunt cateva date despre un potential credit : suma imprumutata este de 100000 u.m. , rata anuala a dobanzii este de 5% si perioada de creditare , exprimata ca numar de luni , este de 120 . &lt;/div&gt;&lt;div&gt;In tabelul din aceeasi imagine avem inscrise diferite valori ale ratei anuale a dobanzii (aria de celule B8:B18)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LxVkMPSPIGs/SpVZnYRUD2I/AAAAAAAAAFc/XnPlAxNFuFw/s1600-h/imagine+ti+11.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 265px; height: 320px;" src="http://1.bp.blogspot.com/_LxVkMPSPIGs/SpVZnYRUD2I/AAAAAAAAAFc/XnPlAxNFuFw/s320/imagine+ti+11.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5374300263401394018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;In celula C7 este inscrisa functia PMT , functie care calculeaza rata ce trebuie platita lunar pentru un credit ale carui date sunt cele prezentate anterior . Primul argument al functiei este rata lunara a dobanzii , de aceea apare B2/12 , B2 fiind rata anuala a dobanzii . Al doilea argument este numarul de plati ce se vor efectua sau perioada de creditare exprimata in luni .&lt;/div&gt;&lt;div&gt;Iar al treilea argument este suma imprumutata . Inaintea functiei s-a trecut semnul "-" deoarece functia PMT are intotdeauna ca rezultat un numar negativ .&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LxVkMPSPIGs/SpVYTclFzsI/AAAAAAAAAFU/ticRMRxxQLM/s1600-h/imagine+ti+1.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LxVkMPSPIGs/SpVYOHo5bxI/AAAAAAAAAFM/qz9InkxM-kM/s1600-h/imagine+ti+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 144px;" src="http://1.bp.blogspot.com/_LxVkMPSPIGs/SpVYOHo5bxI/AAAAAAAAAFM/qz9InkxM-kM/s320/imagine+ti+2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5374298729928552210" /&gt;&lt;/a&gt;Asadar vrem ca folosind tabela de ipoteze cu o singura variabila sa aflam care ar fi valoarea ratei ce trebuie achitatalunar pentru fiecare dintre valorile ratei lunare a dobanzii , valori ce sunt inscrise in coloana B8:B18 .&lt;div&gt;Intai selectam toata aria de celule  in care vom crea scenariul , adica B7:C18 , ca in imaginea de mai jos .&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LxVkMPSPIGs/SpVYJqTiXmI/AAAAAAAAAFE/NT7fIsgZO4c/s1600-h/imagine+3+ti.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 180px;" src="http://4.bp.blogspot.com/_LxVkMPSPIGs/SpVYJqTiXmI/AAAAAAAAAFE/NT7fIsgZO4c/s320/imagine+3+ti.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5374298653334855266" /&gt;&lt;/a&gt;Apoi in meniu mergem la Data si alegem Table . Va aparea casuta pentru tabela de ipoteze , ca in imaginea de mai jos .&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LxVkMPSPIGs/SpVYDZqSBiI/AAAAAAAAAE8/5mUnhZDHCXs/s1600-h/imagine+ti+4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 222px; height: 126px;" src="http://3.bp.blogspot.com/_LxVkMPSPIGs/SpVYDZqSBiI/AAAAAAAAAE8/5mUnhZDHCXs/s320/imagine+ti+4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5374298545787635234" /&gt;&lt;/a&gt;In una dintre cele doua rubrici (Row input cell sau Column input cell) va trebui sa introducem adresa de celula pe care , pentru a fi creat scenariul , vrem sa o inlocuim in functia PMT aplicata in celula C7 , cu toate valorile variabilei rata anuala a dobanzii , din aria B8:B18 . &lt;/div&gt;&lt;div&gt;Aceasta adresa este in cazul nostru chiar B2 . Functia aratand in felul urmator : PMT(B2/12;B3;B1) ,vrem sa fie create functii PMT in care B2 , adica rata anuala de 5 % , sa fie inlocuita pe rand cu toate valorile din aria B8:B18 .&lt;/div&gt;&lt;div&gt;Am stabilit asadar care adresa de celula din functia initiala va trebui inlocuita pe rand de diferitele valori ale variabile a.i. sa putem crea scenariul propus. Mai departe va trebui sa stabilim in care dintre cele doua rubrici (Row input cell sau Column input cell) vom introduce adresa B2 . Acest lucru se va stabili in functie de cum sunt distribuite , intr-o coloana sau intr-un rand , valorile cu care vrem sa inlocuim pe B2 in functia initiala . Deoarece valorile ratei anuale in functie de care vrem sa cream scenariul sunt distribuite intr-o &lt;b&gt;coloana&lt;/b&gt; a foii de calcul , vom introduce B2 in zona &lt;b&gt;Column input cell , &lt;/b&gt;ca in imaginea de mai jos . &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LxVkMPSPIGs/SpVXu2vGMiI/AAAAAAAAAE0/LVsJreXuYe0/s1600-h/imagine+5+ti.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 219px; height: 320px;" src="http://1.bp.blogspot.com/_LxVkMPSPIGs/SpVXu2vGMiI/AAAAAAAAAE0/LVsJreXuYe0/s320/imagine+5+ti.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5374298192815206946" /&gt;&lt;/a&gt;Dupa apasare butonului OK  tabela pe care am transformat-o in tabela de ipoteze va arata astfel:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LxVkMPSPIGs/SpVXohhYIxI/AAAAAAAAAEs/XIWwvwnE9vE/s1600-h/imagine+ti+6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 261px; height: 320px;" src="http://2.bp.blogspot.com/_LxVkMPSPIGs/SpVXohhYIxI/AAAAAAAAAEs/XIWwvwnE9vE/s320/imagine+ti+6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5374298084041302802" /&gt;&lt;/a&gt;Am creat in felul acesta diferite scenarii pentru suma ce ar trebui achitata lunar catre banca in functie de diferite valori ale ratei anuale a dobanzii . &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/301324996193914987-7666959399330164568?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7666959399330164568/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/08/tabela-de-ipoteze-cu-o-singura.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7666959399330164568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7666959399330164568'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/08/tabela-de-ipoteze-cu-o-singura.html' title='Tabela de ipoteze cu o singura variabila (Data table)'/><author><name>Sorin Stancu</name><uri>http://www.blogger.com/profile/04636234951790691644</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LxVkMPSPIGs/SpVZnYRUD2I/AAAAAAAAAFc/XnPlAxNFuFw/s72-c/imagine+ti+11.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-8675242878021339556</id><published>2009-07-28T14:25:00.000-07:00</published><updated>2009-07-30T12:30:36.560-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>Lucru cu fisiere XML in ASP.NET</title><content type='html'>&lt;span style="font-weight: bold;"&gt;XML &lt;/span&gt;(E&lt;span style="font-weight: bold;"&gt;x&lt;/span&gt;tensible &lt;span style="font-weight: bold;"&gt;M&lt;/span&gt;arkup &lt;span style="font-weight: bold;"&gt;L&lt;/span&gt;anguage) reprezinta un limbaj de marcare prin care pot fi definite structuri ierarhice de date in fisiere de tip text. Acest limbaj a fost definit pentru a permite implementarea unei metode independenta de tehnologiile Web si pentru gestiunea bazelor de date existente care sa fie utilizata la descrierea si utilizarea datelor.&lt;br /&gt;&lt;br /&gt;Principalele caracteristici ale tehnologiei XML sunt:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;defineste un limbaj de marcare asemanator HTML si SGML;&lt;/li&gt;&lt;li&gt;definita pentru a permite descrierea structurilor de date si al datelor;&lt;/li&gt;&lt;li&gt;utilizata pentru a transporta date intre aplicatii si platforme diferite;&lt;/li&gt;&lt;li&gt;bazata pe utilizarea fisierelor text cu extensia .xml;&lt;/li&gt;&lt;li&gt;independenta de platformele hardware si software;&lt;/li&gt;&lt;li&gt;implementata de browser-ele Web existente&lt;/li&gt;&lt;li&gt;datele descrise formeaza o structura ierarhica.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Datele descrise prin limbajul XML sunt stocate in fisiere text cu extensia .xml in care trebuie respectate o serie de reguli (o descriere completa a limbajului poate fi gasita la &lt;a href="http://www.w3.org/XML/"&gt;www.w3.org/XML/&lt;/a&gt;):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;limbajul este case-sensitive facand diferenta intre literele mari si mici;&lt;/li&gt;&lt;li&gt;tag-urile de descriere a datelor sunt definite de utilizator, spre deosebire de HTML unde sunt predefinite;&lt;/li&gt;&lt;li&gt;structura ierarhica trebuie sa contina un element radacina;&lt;/li&gt;&lt;li&gt;un element poate contine text, unul sau mai multe elemente sau nimic;&lt;/li&gt;&lt;li&gt;orice eticheta de inceput trebuie sa aiba asociata o eticheta de inchidere; daca elementul este gol, atunci eticheta de inceput poate fi inchisa prin simbolul /;&lt;/li&gt;&lt;li&gt;numele etichetelor trebuie sa inceapa cu o litera; numele xml, Xml, XML sunt rezervate;&lt;/li&gt;&lt;li&gt;comentariile sunt inserate intre &lt;!-- si --&gt;;&lt;/li&gt;&lt;li&gt;trebuie pastrata structura ierarhica si elementele trebuie sa fie imbricate in mod corespunzator (ordinea de inserare a etichetelor de inchidere este inversa celei de inserare a etichetelor de deschidere);&lt;/li&gt;&lt;li&gt;elementele pot avea atribute ale caror valori pot fi definite utilizand ghilimele sau apostrof.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Daca se doreste stocarea informatiilor despre angajatii unei firme intr-un fisier XMl, atunci o forma simpla de definire a acestuia este:&lt;br /&gt;&lt;br /&gt;&amp;lt;angajati&amp;gt;&lt;br /&gt;&amp;lt;angajat id=”123”&amp;gt;&lt;br /&gt;&amp;lt;nume&amp;gt;Popescu Ion&amp;lt;/nume&amp;gt;&lt;br /&gt;&amp;lt;departament&amp;gt;Clienti&amp;lt;/departament&amp;gt;&lt;br /&gt;&amp;lt;functie&amp;gt;Manager&amp;lt;/functie&amp;gt;&lt;br /&gt;&amp;lt;/angajat&amp;gt;&lt;br /&gt;&amp;lt;angajat id=”123”&amp;gt;&lt;br /&gt;&amp;lt;nume&amp;gt;Gheorghe Anca&amp;lt;/nume&amp;gt;&lt;br /&gt;&amp;lt;departament&amp;gt;Vanzari&amp;lt;/departament&amp;gt;&lt;br /&gt;&amp;lt;functie&amp;gt;Casiera&amp;lt;/functie&amp;gt;&lt;br /&gt;&amp;lt;/angajat&amp;gt;&lt;br /&gt;&amp;lt;/angajati&amp;gt;&lt;br /&gt;&lt;br /&gt;Pentru a permite o validare sumara a documentului XML si pentru a indica setul de caractere utilizat la descrierea continutului, la inceputul fisierului se da o declaratie de tipul&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;&lt;br /&gt;Aceasta informatie nu este obligatorie insa repreinta o zona de descriere a documentului XML.&lt;br /&gt;&lt;br /&gt;Pentru a afisa si prelucra aceste date dintr-o aplicatie ASP.NET se vor utiliza clase definite in framework-ul .NET si la care programatorul are acces prin API-ul (application programming interface) parser-ului XML inclus in framework. Acest parser implementeaza standardul XML DOM (Document Object Model) definit de consortiul W3C (www.w3.org/DOM) si reprezinta un document XML sub forma unei structuri arborescente in care elementele sunt reprezentate de noduri.&lt;br /&gt;In namespace-ul System.Xml sunt definite clasele:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XmlReader &lt;/span&gt;– clasa abstracta utilizata pentru a citit date dintr-un fisier XML&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XmlTextReader &lt;/span&gt;– implementeaza un parser XML derivat din XmlReader ce nu face validari si ce permite doar operatia de citire;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XmlWriter &lt;/span&gt;- abstracta utilizata pentru a scrie date intr-un fisier XML;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XmlTextWriter &lt;/span&gt;– implementeaza o clasa derivata din XmlWriter ce permite generarea unui document XML;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XmlDocument &lt;/span&gt;– implementeaza un parser XML  conform specificatiilor XML DOM;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XmlNode &lt;/span&gt;– clasa asociata unui singur nod dintr-un document XML;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XmlNodeList &lt;/span&gt;– gestioneaza o lista de obiecte XmlNode;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XmlElement &lt;/span&gt;– un element din documentul XML&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XmlAttribute &lt;/span&gt;– reprezinta un atribut al unui element din documentul XML&lt;/li&gt;&lt;/ul&gt;Daca se considera o pagina ASP.NET in care exista un buton si un label, LabelAngajati, conform structurii&lt;br /&gt;&amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:Button ID=&amp;quot;Button1&amp;quot; runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;Button1_Click&amp;quot; Text=&amp;quot;Lista angajati&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:Label ID=&amp;quot;LabelAngajati&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;, afisarea datelor angajatilor din documentul XML la activarea butonului este realizata prin functia&lt;br /&gt;&lt;br /&gt;&lt;p&gt; protected void Button1_Click(object sender, EventArgs e)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;XmlDocument doc = new XmlDocument();&lt;br /&gt;&lt;br /&gt;//deschidere document XML local&lt;br /&gt;&lt;br /&gt;doc.Load(Server.MapPath(&amp;quot;angajati.xml&amp;quot;));&lt;/p&gt;&lt;br /&gt;&lt;p&gt; LabelAngajati.Text = &amp;quot;&amp;quot;;&lt;br /&gt;&lt;br /&gt;  //generare lista noduri de tip angajat&lt;br /&gt;&lt;br /&gt;  XmlNodeList lista = doc.GetElementsByTagName(&amp;quot;angajat&amp;quot;);&lt;br /&gt;&lt;br /&gt;  //parcurgere lista noduri&lt;br /&gt;&lt;br /&gt;  foreach (XmlNode angajat in lista)&lt;br /&gt;&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;  //preluarea valoare atribut nod curent&lt;br /&gt;&lt;br /&gt;  string id = angajat.Attributes[&amp;quot;id&amp;quot;].Value;&lt;br /&gt;&lt;br /&gt;  //preluare valori noduri fiu &lt;br /&gt;&lt;br /&gt;  string functie = angajat[&amp;quot;functie&amp;quot;].FirstChild.Value;&lt;br /&gt;&lt;br /&gt;  string nume = angajat[&amp;quot;nume&amp;quot;].FirstChild.Value;&lt;br /&gt;&lt;br /&gt;  string departament = angajat[&amp;quot;departament&amp;quot;].FirstChild.Value;&lt;br /&gt;&lt;br /&gt;  //afisare date preluate din fisierul XML&lt;br /&gt;&lt;br /&gt;  LabelAngajati.Text += &amp;quot;&amp;lt;strong&amp;gt;Angajat :&amp;quot; + nume + &amp;quot; - &amp;quot; + id + &amp;quot;&amp;lt;/strong&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt;  LabelAngajati.Text += &amp;quot;Functie :&amp;quot; + functie + &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt;  LabelAngajati.Text += &amp;quot;Departament :&amp;quot; + departament + &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;  &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;ce este abonata la evenimentul Click al controlului. In secventa anterioara, preluarea textului asociat unui element se realizeaza prin proprietatea FirstChild a nodului. Acelasi rezultat este obtinut, pentru valorile de tip text, prin proprietatea InnerText. De exemplu, extragerea numelui se face si prin&lt;br /&gt;&lt;br /&gt;string nume = angajat["nume"].InnerText;&lt;br /&gt;&lt;br /&gt;Un exemplu practic al utilitatii documentelor XML este dat de prelucrarea informatiilor cu privire la cursul valutar. Banca Nationala a Romaniei furnizeaza zilnic informatii valutare prin intermediul unui document XML publicat la adresa http://www.bnr.ro/nbrfxrates.xml. Transferand datele pe baza acestui suport este permisa realizarea unei multitudini de aplicatii, diferite ca tehnologie, pentru afisarea cursului valutar.&lt;br /&gt;Prelucrarea documentului XML se face prin intermediul claselor .NET descrise anterior, insa se pune problema accesarii acestui fisier. Solutia eficienta este data de accesarea la distanta a documentului, iar acest lucru este posibil prin intermediul metodei Load a obiectului XmlDocument&lt;br /&gt;&lt;br /&gt;doc.Load("http://www.bnr.ro/nbrfxrates.xml");&lt;br /&gt;&lt;br /&gt;Parcurgerea ratelor de schimb se face cautand nodurile Rate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-8675242878021339556?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/8675242878021339556/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/07/lucru-cu-fisiere-xml-in-aspnet.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8675242878021339556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8675242878021339556'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/07/lucru-cu-fisiere-xml-in-aspnet.html' title='Lucru cu fisiere XML in ASP.NET'/><author><name>Catalin</name><uri>http://www.blogger.com/profile/05122050058515697000</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-301324996193914987.post-365479871615270372</id><published>2009-07-22T08:02:00.000-07:00</published><updated>2009-07-22T09:13:15.387-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><title type='text'>VLOOKUP intre doua foi de calcul</title><content type='html'>&lt;div&gt;In aceasta prezentare vom vedea cum se foloseste functia de cautare pe verticala (VLOOKUP) atunci cand tabela de consultare se afla in alta foaie de calcul decat cea in care aplicam functia . &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Avem asadar in prima foaie de calcul (Sheet 1) o tabela cu incasarile relaizate de mai multi agenti de vanzare ai unei firme in mai multe tranzactii efectuate . Codurile fiecaruia dintre agenti sunt trecute in prima coloana a tabelei  , iar in a treia coloana sumele incasate in diferite tranzactii efectuate de acestia . Folosind functia vlookup va trebui ca pe cea de-a doua coloana sa completam numele fiecarui agent in functie de cod . &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LxVkMPSPIGs/SmcvqO2ievI/AAAAAAAAAEk/0GK5p23ySsw/s1600-h/blog+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 152px; height: 320px;" src="http://4.bp.blogspot.com/_LxVkMPSPIGs/SmcvqO2ievI/AAAAAAAAAEk/0GK5p23ySsw/s320/blog+1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5361306283995724530" /&gt;&lt;/a&gt;In imaginea de mai jos avem o parte a celei de-a doua foi de calcul , in care se gaseste tabela de cautare&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LxVkMPSPIGs/SmcqoLY1nhI/AAAAAAAAAEc/JauYw5t3Ltc/s1600-h/blog+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 254px; height: 320px;" src="http://3.bp.blogspot.com/_LxVkMPSPIGs/SmcqoLY1nhI/AAAAAAAAAEc/JauYw5t3Ltc/s320/blog+2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5361300751147965970" /&gt;&lt;/a&gt;Asadar pentru a completa coloana Nume in tabela din Sheet1 , vom folosi functia vlookup cu urmatoarele argumente : vlookup(A2;'Tabela de cautare'!$A$1:$B$10;2) .&lt;div&gt;Intai aplicam functia pe prima linie din coloana Nume . Primul argument , A2 , este cheia de consultare sau valoarea dupa care se cauta (in cazul nostru codul inscris in prima linie a tabelei) . Al doilea argument este tabela de cautare , iar al treilea este numarul coloanei din tabela de cautare de pe care vreau sa mi se returneze valoarea corespunzatoare codului ce apare ca prim argument al functiei . &lt;/div&gt;&lt;div&gt;Cum vom introduce aceste argumente  ? &lt;/div&gt;&lt;div&gt;Pentru a introduce primul argument selectam celula A2 .&lt;/div&gt;&lt;div&gt;Pentru a introduce al doilea argument mergem in cealalta foaie de calcul si selectam aria de celule A1:B10 , iar in functie ,  inaintea acestei adrese ,  va aparea numele foii de calcul in care se afla tabela de cautare , astfel :  'Tabela de cautare'!$A$1:$B$10 . &lt;/div&gt;&lt;div&gt;Pentru a introduce cel de-al treilea argument , adica numarul coloanei de pe care vreau sa-mi fie returnata valoarea corespunzatoare cheii de consultare , raman in cea de-a doua foaie de calcul si introduc numarul coloanei in functia vlookup care apare sub meniu ,  in bara functiei .&lt;/div&gt;&lt;div&gt;Acest lucuru este reprezentat in imaginea de mai jos  , unde se observa ca fisierul este deschis pe cea de-a doua foaie de calcul (nu pe prima , acolo unde am introdus initial functia vlookup) . Iar bara in care apare functia inscrisa de noi in prima foaie de calcul este indicata printr-o sageata .&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LxVkMPSPIGs/SmcqXpmdk4I/AAAAAAAAAEU/bmRpcHgatuc/s1600-h/blog+3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 140px;" src="http://1.bp.blogspot.com/_LxVkMPSPIGs/SmcqXpmdk4I/AAAAAAAAAEU/bmRpcHgatuc/s320/blog+3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5361300467200398210" /&gt;&lt;/a&gt;ATENTIE! Trebuie respectati obligatoriu acesti pasi pentru ca vlookup-ul sa nu returneze o eroare . Adica trebuie neaparat ca atunci cand introducem in functie numarul coloanei ,  sa ramanem in foaia de calcul in care avem tabela de cautare si nu sa ne intoarcem in foaia de calcul in care aplicam functia .&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dupa aplicarea functiei in primul rand al coloanei Nume si dupa incrementarea  pe restul coloanei ,  tabela din prima foaie de calcul va arata astfel :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LxVkMPSPIGs/SmcqN0ewD6I/AAAAAAAAAEM/WI3QiKNzqAk/s1600-h/blog+4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 182px; height: 320px;" src="http://1.bp.blogspot.com/_LxVkMPSPIGs/SmcqN0ewD6I/AAAAAAAAAEM/WI3QiKNzqAk/s320/blog+4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5361300298322153378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-365479871615270372?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/365479871615270372/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/07/vlookup-intre-doua-foi-de-calcul.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/365479871615270372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/365479871615270372'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/07/vlookup-intre-doua-foi-de-calcul.html' title='VLOOKUP intre doua foi de calcul'/><author><name>Sorin Stancu</name><uri>http://www.blogger.com/profile/04636234951790691644</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LxVkMPSPIGs/SmcvqO2ievI/AAAAAAAAAEk/0GK5p23ySsw/s72-c/blog+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-7118582411642050808</id><published>2009-07-06T01:24:00.000-07:00</published><updated>2009-07-06T02:18:32.724-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Utilizarea protocoalelor POP3 si SMTP in JAVA - Partea 2</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0in;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";} a:link, span.MsoHyperlink  {color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {color:purple;  text-decoration:underline;  text-underline:single;} @page Section1  {size:8.5in 11.0in;  margin:1.0in 1.25in 1.0in 1.25in;  mso-header-margin:.5in;  mso-footer-margin:.5in;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: rgb(51, 255, 51);"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 255, 51);"&gt;2.Protocolul SMTP&lt;/span&gt;&lt;span style="font-size:180%;"&gt;&lt;span style=";font-family:times new roman;font-size:12;"  &gt;&lt;span style="color: rgb(51, 255, 51);"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;SMTP (Simple Mail Transfer Protocol) este un protocol simplu, folosit pentru transmiterea mesajelor în format electronic pe Internet. SMTP foloseşte portul de aplicaţie 25 TCP şi determină adresa unui server SMTP pe baza înregistrării MX (Mail eXchange) din configuraţia serverului DNS.&lt;br /&gt;&lt;br /&gt;Metoda pentru conectarea la un server ce recunoaste protocolul SMTP si trimiterea unui email catre o adresa trimisa ca parametru:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;import sun.net.smtp.SmtpClient;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;import java.io.*;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;//sunt trimise ca parametri urmatoarele informatii:&lt;br /&gt;//String destinationAddress - adresa catre care va fi trimisa mailul (ex. //'mihai.mogos@gmail.com')&lt;br /&gt;//String smtpServer - adresa serverului ce recunoaste protocolul SMTP&lt;br /&gt;//String subject - subiectul emailului ce va fi trimis&lt;br /&gt;//Strin pathFileName - calea catre fisierul ce contine textul mesajului&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;public boolean forwardEmailMsg(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;                       String destinationAddress,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;                       String smtpServer,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;                       String subject,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;                       String pathFileName)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;      StringBuffer message = new StringBuffer(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;                             "No message found");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;      try{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        //Se realizeaza conexiunea cu serverul ce recunoaste protocolul SMTP&lt;br /&gt;//Pentru asta se creaza un obiect din clasa sun.net.smtp.SmtpClient&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        SmtpClient smtp =&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;                      new SmtpClient(smtpServer);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;//se seteaza adresa de email catrea care se va trimite mesajul electronic&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;//folosindu-se metoda from(String) cat si metoda to(String)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;       &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        smtp.from(destinationAddress);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        smtp.to(destinationAddress);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        //se creaza corpul mesajului concatentndu-se fiecare linie&lt;br /&gt;//din fisierul a carui cale a fost trimisa ca parametru&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        message = new StringBuffer(readLines(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;                        pathFileName,null,null));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;       //se insereaza subiectul mesajului ca parte a obiectului&lt;br /&gt;//de tip StringBuffer folosit pentru conceperea mesajului&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        message = message.insert(message.indexOf(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;                          "Subject: ")+9,fwdTag);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        //Get an output stream for the message&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        PrintStream msg = smtp.startMessage();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        //Write the message into the output&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        // stream.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        msg.println(new String(message));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        //Close the stream and send the message&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        smtp.closeServer();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        return true;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;      }catch( Exception e ){&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        e.printStackTrace();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        System.out.println(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;                       "while forwarding email");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        //Sound an alarm.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        Toolkit.getDefaultToolkit().beep();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        try{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;          Thread.currentThread().sleep(500);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        }catch(Exception ex){&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;          System.out.println(ex);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        }//end catch&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        Toolkit.getDefaultToolkit().beep();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        //Return false to indicate that the msg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        // was not successfully forwarded.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        return false;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;      }//end catch&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  }//end forwardEmailMsg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style=";font-family:times new roman;font-size:12;"  &gt;&lt;span style="color: rgb(51, 255, 51);"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-7118582411642050808?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7118582411642050808/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/07/utilizarea-protocoalelor-pop3-si-smtp.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7118582411642050808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7118582411642050808'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/07/utilizarea-protocoalelor-pop3-si-smtp.html' title='Utilizarea protocoalelor POP3 si SMTP in JAVA - Partea 2'/><author><name>Mihai Mogos</name><uri>http://www.blogger.com/profile/05060937006441378200</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-301324996193914987.post-7758324722166216799</id><published>2009-07-01T08:38:00.000-07:00</published><updated>2009-07-01T09:52:06.488-07:00</updated><title type='text'>Grafic mixt</title><content type='html'>&lt;div&gt;In acest tutorial vom vedea cum putem crea un grafic mixt sau cum putem transforma un grafic simplu intr-unul mixt .&lt;/div&gt;&lt;div&gt;Avem in imaginea urmatoare date despre vanzarile reusite de 4 agenti de vanzare ale unei firme in cele 4 trimestre ale unui an :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LxVkMPSPIGs/SkuDxN-ST3I/AAAAAAAAADU/Rm23cy94hwQ/s1600-h/ine+blog+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 153px;" src="http://4.bp.blogspot.com/_LxVkMPSPIGs/SkuDxN-ST3I/AAAAAAAAADU/Rm23cy94hwQ/s320/ine+blog+1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5353517463647702898" /&gt;&lt;/a&gt;Pentru a sintetiza aceste date printr-un grafic selectam tabela (A1:F6) si din meniu alegem Insert-Chart . Va aparea casuta de dialog pentru grafice si la primul pas alegem un grafic de tip liniar(atentie, pentru grafic am selectat inclusv linia de total din tabela)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LxVkMPSPIGs/SkuDstUzyPI/AAAAAAAAADM/QyPkxo8VmZg/s1600-h/imagine+blog+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 317px;" src="http://3.bp.blogspot.com/_LxVkMPSPIGs/SkuDstUzyPI/AAAAAAAAADM/QyPkxo8VmZg/s320/imagine+blog+2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5353517386164324594" /&gt;&lt;/a&gt;&lt;br /&gt;Mai departe vom stabili daca seriile graficului sunt pe  linii sau pe coloane (alegem Series in rows) .&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LxVkMPSPIGs/SkuDly7HjXI/AAAAAAAAADE/ifDmRRudvo0/s1600-h/imagine+3.png"&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LxVkMPSPIGs/SkuDly7HjXI/AAAAAAAAADE/ifDmRRudvo0/s1600-h/imagine+3.png" style="text-decoration: none;"&gt;&lt;img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 285px; height: 320px; " src="http://4.bp.blogspot.com/_LxVkMPSPIGs/SkuDly7HjXI/AAAAAAAAADE/ifDmRRudvo0/s320/imagine+3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5353517267408096626" /&gt;&lt;/a&gt;&lt;br /&gt;Dupa apasrea butonului Finish graficul va arata astfel :&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LxVkMPSPIGs/SkuDapKShYI/AAAAAAAAAC0/Sm3Nv3mBQMM/s1600-h/imagine+4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 157px;" src="http://2.bp.blogspot.com/_LxVkMPSPIGs/SkuDapKShYI/AAAAAAAAAC0/Sm3Nv3mBQMM/s320/imagine+4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5353517075808814466" /&gt;&lt;/a&gt;Observam ca in afara de cel 4 serii liniare care ne redau vanzarile celor 4 agenti in fiecare dintre cele 4 trimestre ale anului , avem si o a cincea serie , cea pentru total. Inutilitatea acestei serii, ca serie liniara  , este evidenta  , datele din linia de total a tabelei neputand fi comparate cu cele din celelalte linii decat ca raport intre parte si intreg . Totusi putem transforma seria liniara de total intr-un grafic PIE in felul urmator: dam click dreapta pe seria respectiva si din lista de optiuni alegem Chart Type . Astfel ne va aparea din nou casuta de dialog in care va trebui sa alegem tipul de grafic , dar de data aceasta numai pentru seria Total . La rubrica Chart Type alegem Pie .&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LxVkMPSPIGs/SkuDVAR8nyI/AAAAAAAAACs/aKNsjZz3aAU/s1600-h/imagine+5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 317px;" src="http://2.bp.blogspot.com/_LxVkMPSPIGs/SkuDVAR8nyI/AAAAAAAAACs/aKNsjZz3aAU/s320/imagine+5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5353516978935734050" /&gt;&lt;/a&gt;&lt;br /&gt;Rezultatul obtinut va arata astfel :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LxVkMPSPIGs/SkuDMOk5M2I/AAAAAAAAACk/ceJEBhaL5sY/s1600-h/imagine+6.png"&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LxVkMPSPIGs/SkuDMOk5M2I/AAAAAAAAACk/ceJEBhaL5sY/s1600-h/imagine+6.png" style="text-decoration: none;"&gt;&lt;img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 320px; height: 153px; " src="http://3.bp.blogspot.com/_LxVkMPSPIGs/SkuDMOk5M2I/AAAAAAAAACk/ceJEBhaL5sY/s320/imagine+6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5353516828154475362" /&gt;&lt;/a&gt;Avem acum un grafic mixt : seriile liniare redau evolutia in timp a vanzarilor ralizate de fiecare dintre cei 4 agenti , iar cel de tip Pie ne reda raportul dintre vanzarile fiecarui trimestru si cele pe intregul an .&lt;br /&gt;&lt;br /&gt;&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/301324996193914987-7758324722166216799?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7758324722166216799/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/07/grafic-mixt.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7758324722166216799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7758324722166216799'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/07/grafic-mixt.html' title='Grafic mixt'/><author><name>Sorin Stancu</name><uri>http://www.blogger.com/profile/04636234951790691644</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LxVkMPSPIGs/SkuDxN-ST3I/AAAAAAAAADU/Rm23cy94hwQ/s72-c/ine+blog+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-179967989651089380</id><published>2009-06-24T04:14:00.000-07:00</published><updated>2009-06-24T04:38:36.829-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Utilizarea JTable in Swing - Partea 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_h_KMvWvn4DA/SkIPPd_BzqI/AAAAAAAAA14/YUPJfIrvwOI/s1600-h/4.jpg"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_h_KMvWvn4DA/SkIO2WGZ7II/AAAAAAAAA1w/Hq32N7flq3M/s1600-h/3.jpg"&gt;&lt;/a&gt;Prima parte a acesui tutorial o puteti gasi &lt;a href="http://line-education-center.blogspot.com/2009/06/utilizarea-jtable-in-swing-partea-1.html"&gt;aici&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;3. Selectarea elementelor tabelului&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In mod default putem sa afisam si sa editam datele dintr-un tabel. Din punct de vedere al selectarii datelelor dintr-un tabel exista o serie de operatii pe care le putem efectua fara un efort prea mare. Pentru selectii trebui sa utilizam obiecte din clasa ListSelectionModel. Spre deosebire de marea majoritate a componetelor de interfata grafica, un JTable dispune de doua modele de selecte, unul pentru linii si unul pentru coloane.&lt;/p&gt;&lt;p&gt;Exemplul din de mai jos reprezinta o aplicatie care ne permite sa activam sau sa dezactivam diferitele tipuri de selectii aplicabile unui tabel (celula, rand si coloana). Pe masura ce selectati diferite randuri sau coloane, cele doua obiecte de tip JLabel vor indica indicii elementelor selectate.&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_h_KMvWvn4DA/SkIO2WGZ7II/AAAAAAAAA1w/Hq32N7flq3M/s1600-h/3.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_h_KMvWvn4DA/SkIO2WGZ7II/AAAAAAAAA1w/Hq32N7flq3M/s320/3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5350855634077740162" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 249px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Cea mai mare parte a codului este alocata pentru a realiaza interfata grafica. Din momentul in care aceasta este realizata vom atasa doi listeneri care vor intercepta evenimentele pentru selectia pe rand si coloana. Partea interesanta a codului este reprezentata urmareste orice ListSelectionModel si updateaza textul de pe etichete. (Indicii care sunt fisati pe aceste etichete sunt preluati folosind metoda getSelectedIndices() aflata in clasa SelectionDebugger). Din moment ce depindem doar de list selection model, putem folosi aceasi listener atat pentru randuri cat si pentru coloane.de ListSelectionListener, care este sub forma de inner class.&lt;/p&gt;&lt;br /&gt;&lt;font color='blue'&gt;&lt;br /&gt;// LECSelectionExample.java&lt;br /&gt;// Un simplu tabel populat cu numere naturale consecutive. Acest tabel permite &lt;br /&gt;// modificarea modului de selectie. Puteti selecta fie celule, linii sau coloane&lt;br /&gt;// pentru tabel. &lt;br /&gt;&lt;br /&gt;import java.awt.*;&lt;br /&gt;import java.awt.event.*;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import javax.swing.event.*;&lt;br /&gt;import javax.swing.table.*;&lt;br /&gt;&lt;br /&gt;public class LECSelectionExample extends JFrame {&lt;br /&gt;&lt;br /&gt;  public LECSelectionExample( ) {&lt;br /&gt;    super("LEC Selection Model Test");&lt;br /&gt;    setSize(450, 350);&lt;br /&gt;    setDefaultCloseOperation(EXIT_ON_CLOSE);&lt;br /&gt;&lt;br /&gt;    TableModel tm = new AbstractTableModel( ) {&lt;br /&gt;      // Vom utiliza un simlu tabel de test needitabil populat cu &lt;br /&gt;      // numere naturale consecutive.&lt;br /&gt;      public int getRowCount( ) { return 10; }&lt;br /&gt;      public int getColumnCount( ) { return 10; }&lt;br /&gt;      public Object getValueAt(int r, int c) { return "" + (r+1)*(c+1); }&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    final JTable jt = new JTable(tm);&lt;br /&gt;&lt;br /&gt;    JScrollPane jsp = new JScrollPane(jt);&lt;br /&gt;    getContentPane( ).add(jsp, BorderLayout.CENTER);&lt;br /&gt;&lt;br /&gt;    // Setarea controalelor pentru selectie.&lt;br /&gt;    JPanel controlPanel, buttonPanel, columnPanel, rowPanel;&lt;br /&gt;    &lt;br /&gt;    buttonPanel = new JPanel( );&lt;br /&gt;    final JCheckBox cellBox, columnBox, rowBox;&lt;br /&gt;    cellBox = new JCheckBox("Randuri", jt.getCellSelectionEnabled( ));&lt;br /&gt;    columnBox = new JCheckBox("Coloane", jt.getColumnSelectionAllowed( ));&lt;br /&gt;    rowBox = new JCheckBox("Randuri", jt.getRowSelectionAllowed( ));&lt;br /&gt;    cellBox.addActionListener(new ActionListener( ) {&lt;br /&gt;      public void actionPerformed(ActionEvent ae) {&lt;br /&gt;        jt.setCellSelectionEnabled(cellBox.isSelected( ));&lt;br /&gt;        columnBox.setSelected(jt.getColumnSelectionAllowed( ));&lt;br /&gt;        rowBox.setSelected(jt.getRowSelectionAllowed( ));&lt;br /&gt;      }&lt;br /&gt;    } );&lt;br /&gt;&lt;br /&gt;    columnBox.addActionListener(new ActionListener( ) {&lt;br /&gt;      public void actionPerformed(ActionEvent ae) {&lt;br /&gt;        jt.setColumnSelectionAllowed(columnBox.isSelected( ));&lt;br /&gt; cellBox.setSelected(jt.getCellSelectionEnabled( ));&lt;br /&gt;      }&lt;br /&gt;    } );&lt;br /&gt;&lt;br /&gt;    rowBox.addActionListener(new ActionListener( ) {&lt;br /&gt;      public void actionPerformed(ActionEvent ae) {&lt;br /&gt;        jt.setRowSelectionAllowed(rowBox.isSelected( ));&lt;br /&gt; cellBox.setSelected(jt.getCellSelectionEnabled( ));&lt;br /&gt;      }&lt;br /&gt;    } );&lt;br /&gt;&lt;br /&gt;    buttonPanel.add(new JLabel("Modul de selectie:"));&lt;br /&gt;    buttonPanel.add(cellBox);&lt;br /&gt;    buttonPanel.add(columnBox);&lt;br /&gt;    buttonPanel.add(rowBox);&lt;br /&gt;&lt;br /&gt;    columnPanel = new JPanel( );&lt;br /&gt;    ListSelectionModel csm = jt.getColumnModel( ).getSelectionModel( );&lt;br /&gt;    JLabel columnCounter = new JLabel("(Indicii coloanelor selectate)");&lt;br /&gt;    csm.addListSelectionListener(new SelectionDebugger(columnCounter, csm));&lt;br /&gt;    columnPanel.add(new JLabel("Coloanele selectate:"));&lt;br /&gt;    columnPanel.add(columnCounter);&lt;br /&gt;&lt;br /&gt;    rowPanel = new JPanel( );&lt;br /&gt;    ListSelectionModel rsm = jt.getSelectionModel( );&lt;br /&gt;    JLabel rowCounter = new JLabel("(Indicii randurilor selectate)");&lt;br /&gt;    rsm.addListSelectionListener(new SelectionDebugger(rowCounter, rsm));&lt;br /&gt;    rowPanel.add(new JLabel("Randuri selectate:"));&lt;br /&gt;    rowPanel.add(rowCounter);&lt;br /&gt;&lt;br /&gt;    controlPanel = new JPanel(new GridLayout(0, 1));&lt;br /&gt;    controlPanel.add(buttonPanel);&lt;br /&gt;    controlPanel.add(columnPanel);&lt;br /&gt;    controlPanel.add(rowPanel);&lt;br /&gt;&lt;br /&gt;    getContentPane( ).add(controlPanel, BorderLayout.SOUTH);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public static void main(String args[]) {&lt;br /&gt;    LECSelectionExample se = new LECSelectionExample( );&lt;br /&gt;    se.setVisible(true);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public class SelectionDebugger implements ListSelectionListener {&lt;br /&gt;    JLabel debugger;&lt;br /&gt;    ListSelectionModel model;&lt;br /&gt;&lt;br /&gt;    public SelectionDebugger(JLabel target, ListSelectionModel lsm) {&lt;br /&gt;      debugger = target;&lt;br /&gt;      model = lsm;&lt;br /&gt;    }&lt;br /&gt;    public void valueChanged(ListSelectionEvent lse) {&lt;br /&gt;      if (!lse.getValueIsAdjusting( )) {&lt;br /&gt;     // Se sare peste restul evenimentelor.&lt;br /&gt;        StringBuffer buf = new StringBuffer( );&lt;br /&gt;        int[] selection = getSelectedIndices(model.getMinSelectionIndex( ),&lt;br /&gt;                                             model.getMaxSelectionIndex( ));&lt;br /&gt;        if (selection.length == 0) {&lt;br /&gt;          buf.append("none");&lt;br /&gt;        }&lt;br /&gt;        else {&lt;br /&gt;          for (int i = 0; i &lt; selection.length -1; i++) {&lt;br /&gt;            buf.append(selection[i]);&lt;br /&gt;            buf.append(", ");&lt;br /&gt;          }&lt;br /&gt;          buf.append(selection[selection.length - 1]);&lt;br /&gt;        }&lt;br /&gt;        debugger.setText(buf.toString( ));&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // Aceastea metoda returneaza un array al indicilor selectati. Metoda&lt;br /&gt;    // nu poate intoarce valori care sunt null.&lt;br /&gt;    protected int[] getSelectedIndices(int start, int stop) {&lt;br /&gt;      if ((start == -1) || (stop == -1)) {&lt;br /&gt;     // Nimic selectat, asa ca vom intoarce un array gol  &lt;br /&gt;        return new int[0];&lt;br /&gt;      }&lt;br /&gt;      int guesses[] = new int[stop - start + 1];&lt;br /&gt;      int index = 0;&lt;br /&gt;      // Parcurgere manuala&lt;br /&gt;      for (int i = start; i &lt;= stop; i++) {&lt;br /&gt;        if (model.isSelectedIndex(i)) {&lt;br /&gt;          guesses[index++] = i;&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;      int realthing[] = new int[index];&lt;br /&gt;      System.arraycopy(guesses, 0, realthing, 0, index);&lt;br /&gt;      return realthing;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;Merita mentionat ca pentru aceasta aplicatia am fi putut prelua array-ul care continea indiici pentru randurile selectate din obiectul de tip JTable si array-ul care continea coloanele selectate din column model. Modivul pentru care nu am utilizat aceasta modalitate in exemplul nostru este ca am fi avut nevoie de listeneri separati pentru linii si pentru coloane.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;4. Renderingul celulelor&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Puteti construi proprii nostri render-eri pentru celulele dintr-un tabel. In mod standard dispuneti de rendereri pentru datele de tip Boolean (elemente de tip JCheckBox pentru afisare si editare), elemente de tip ImageIcon, valori numerice (elemente de tip JTextFiled). Pe langa aceastea puteti sa va creati si proprii rendereri pentru un anumit tip de clasa , pentru o anumita coloana, sau chiar pentru o anumita celula.&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;Interfata TableCellRenderer&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;Aceasta interfata ofera posibilitatea de a accesa componeta de rendering fara a specifica ce anume face aceasta componenta. Acest lucru functioneaza doarece un rederer in mod standard „lipeste” imaginea unui component de interfata grafica in pozitia indicata de noi. Singura metoda care este inclusa in aceasta interfata defineste, intializeaza si intoarce un component :&lt;/p&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;public abstract Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) &lt;/span&gt;&lt;br /&gt;&lt;p&gt;Aceasta metoda primeste o valoare, care poate fi de asemenea preluata specificandu-se celula din randul row, coloane column si tabelul table, si intoarce o componeta capabila sa deseneaze acea valoare in celula unui tabel. &lt;/p&gt;&lt;br /&gt;&lt;strong&gt;Clasa DefaultTableCellRenderer&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;Pachetul javax.swing include un renderer standard care produce un JLabel pentru a afisa text in fiecare celula din tabel. Clasa JTable utilizeaza acest renderer pentru a afisa numere, icoane si obiecte. JTable creaza un renderer default, il pozitioneaza in locatia corecta si ii ataseaza o icoana, in functie de tipul de data. Obiectele de tip Object sunt transformate in String folosind metoda toString() si sunt afisate folosind un simplu JLabel. Elementele de tip numar sunt afisate folosind o aliniere la drepta, iar icoanele sunt afisate folosind o aliniere pe centru. Valorile de tip Boolean nu folosesc DefaultTableCellRenderer. In locul acestuia utilizeaza un clasa de rendering proprie care extinde JCheckBox.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bineinteles ca ne putem construi si proprii nostrii rendereri pe baze clasei DefaultTableCellRenderer. Mai jos aveti un exemplu de renderer pe care il putem utiliza pentru a afisa dimensiunile unor fisiere pe harddisk. Aceast renderer pune o icoana reprezentand un semn de exclamare in fata oricarei date care este mai mare decat o anumita valoare pe care o dam ca praramentru in contructor. &lt;/p&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;// LECBigRenderer.java&lt;br /&gt;// A renderer for numbers that shows an icon in front of big numbers&lt;br /&gt;// Un renderer pentru numere care arata o imagine in fara numerelor mari.&lt;br /&gt;&lt;br /&gt;import java.awt.*;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import javax.swing.table.*;&lt;br /&gt;&lt;br /&gt;public class LECBigRenderer extends DefaultTableCellRenderer {&lt;br /&gt;double threshold;&lt;br /&gt;Icon bang = new ImageIcon("bang.gif");&lt;br /&gt;&lt;br /&gt;public LECBigRenderer(double t) {&lt;br /&gt;threshold = t;&lt;br /&gt;setHorizontalAlignment(JLabel.RIGHT);&lt;br /&gt;setHorizontalTextPosition(SwingConstants.RIGHT);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Component getTableCellRendererComponent(JTable table,&lt;br /&gt;Object value, boolean isSelected, boolean hasFocus, int row, int col)&lt;br /&gt;{&lt;br /&gt;if (value instanceof Number) {&lt;br /&gt; if (((Number)value).doubleValue( ) &gt; threshold) {&lt;br /&gt;   setIcon(bang);&lt;br /&gt; }&lt;br /&gt; else {&lt;br /&gt;   setIcon(null);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt; setIcon(null);&lt;br /&gt;}&lt;br /&gt;return super.getTableCellRendererComponent(table, value, isSelected,&lt;br /&gt;                hasFocus, row, col);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Pentru a atasa acest renderer tabelului nostru, nu trebuie decat sa adaugam cateva linii de cod :&lt;br /&gt;&lt;span style="color:blue;"&gt; JTable jt = new JTable(fm);&lt;br /&gt;// ...&lt;br /&gt;jt.setDefaultRenderer(Number.class, new LECBigRenderer(100));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Figura de mai jos prezinta un exemplu care poate fi obtinut utilizandu-se acest renderer.&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_h_KMvWvn4DA/SkIPPd_BzqI/AAAAAAAAA14/YUPJfIrvwOI/s1600-h/4.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_h_KMvWvn4DA/SkIPPd_BzqI/AAAAAAAAA14/YUPJfIrvwOI/s320/4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5350856065691012770" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 129px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Clasa CellRenderePane&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;Aceasta clasa utilitar a fost construita pentru a impiedica rendererii sa propage apeluri catre repaint() si validate() pentru componete utilizand elemente de rendering precum JTree si JList. In cazul in care ati incercat sa va construti rendereri proprii pentru orice alt element de Swing, atunci ati putut observa ca nu puteti sa folositi acea clasa in mod direct. Acest pane este utilizat impreuna cu un renderer si diferitele metode paintComponent(), de care dispune, sunt utilizate pentru a reliza desenul efectiv. In mod normal nu trebuie sa modficati aceasta clasa.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-179967989651089380?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/179967989651089380/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/06/utilizarea-jtable-in-swing-partea-1_24.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/179967989651089380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/179967989651089380'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/06/utilizarea-jtable-in-swing-partea-1_24.html' title='Utilizarea JTable in Swing - Partea 2'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_h_KMvWvn4DA/SkIO2WGZ7II/AAAAAAAAA1w/Hq32N7flq3M/s72-c/3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-3114510538916624991</id><published>2009-06-16T15:11:00.000-07:00</published><updated>2009-06-16T15:21:54.474-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='MIDlet'/><title type='text'>Aplicatie Java mobile - "Hello World !" MIDlet</title><content type='html'>&lt;div style="text-align: justify;"&gt;Scopul acestui tutorial este de a prezenta elemente de baza cu privire la dezvoltarea de aplicatii mobile Java. Pentru a exemplifica notiunile prezentate se construieste o aplicatie simpla de tip HelloWorld.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Resursele necesare pentru dezvoltarea proiectului sunt de tip open-source si  pot fi descarcate de pe Internet:&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;mediu de dezvoltare vizual care sa includa platforma Java ME (Micro Edition); acesta nu este obligatoriu, deoarece sursele pot fi compilate si din linia de comanda; exemplul descris in acest material este realizat in NetBeans; acest mediu, ajuns la versiunea 6.5.1, poate fi descarcat de la adresa http://www.netbeans.org/ si desi exista mai multe pachete trebuie ales acela care contine tehnologia Java ME; cel mai putin complex mediu de dezvoltare vizual utilizat pentru aplicatii Java mobile este inclus in Sun Java ME Software Development Kit (http://java.sun.com/javame/sdk/index.jsp)&lt;/li&gt;&lt;li&gt;emulatoare de dispozitive mobile care suporta aplicatii Java; un astfel de emulator este deja integrat in distributia de Netbeans; dispozitivul simulat este unul generic; daca se doreste testarea aplicatiei intr-un mediu cat mai apropiat de dispozitivul urmarit atunci se utilizeaza resurse puse la dispozitie de producator; de exemplu pentru dispoztive de tip Nokia, o sursa de SDK-uri (Standard Development Kit) pentru diferite generatii si modele este forum.nokia.com;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Prentru a crea proiectul aplicatiei, in mediul NetBeans se alege File -&gt; New Project si din categoria Java ME este selectat un proiect de tip Mobile Application.&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TRABq1HzJEA/SjgZGvvYc5I/AAAAAAAACNY/V0FjfuXE8Vs/s1600-h/NewProject.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 219px;" src="http://1.bp.blogspot.com/_TRABq1HzJEA/SjgZGvvYc5I/AAAAAAAACNY/V0FjfuXE8Vs/s320/NewProject.jpg" alt="" id="BLOGGER_PHOTO_ID_5348052161187574674" border="0" /&gt;&lt;/a&gt;&lt;captura&gt;&lt;/captura&gt;&lt;div style="text-align: justify;"&gt;&lt;captura&gt;La urmatorul pas al asistentului se defineste locatia (si se deselecteaza optiunea Create Hello MIDlet), iar la pasul trei (Default Platform Selection) sunt definite resurse cu privire la:&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;&lt;/captura&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;captura&gt;emulatorul utilizat; implicit, daca s-a instalat doar NetBeans, fara alte SDK-uri, este disponibil doar Sun Java Wireless Toolkit 2.5.2 for CLDC;&lt;/captura&gt;&lt;/li&gt;&lt;li&gt;&lt;captura&gt;tipul de dispozitiv mobil (ecran color sau monocrom, cu tastatura qwerty)&lt;/captura&gt;&lt;/li&gt;&lt;li&gt;&lt;captura&gt;configuratia dispozitivului; pentru acest proiect se alege CLDC-1.0; CLDC sau Connected Limited Device Configuration reprezinta un standard ce descrie caracteristicile hardware ale dispozitivului mobil; versiunea 1.0 a standardului descrie un dispozitiv cu 128 KB pentru masina virtuala Java, 32 KB pentru memoria dinamica, interfata vizuala limitata si cu capacitatea de a se conecta la o retea de date; acest standard este definit de un consortiu din care fac parte marii producatori de dispozitive mobile pentru a ajuta dezvoltatorii de software sa stabileasca limitele dispozitivului ce va rula aplicatia; de asemenea, aceste setari au impact si asupra modului in care proiectul va fi compilat;&lt;/captura&gt;&lt;/li&gt;&lt;li&gt;&lt;captura&gt;profilul dispozitivului; pentru acest proiect se alege MIDP-2.0;  MIDP sau Mobile Information Device Profile reprezinta o extensie a configuratiei hardware (CLDC) ce descrie caracteristicile sofware ale dispozitivului cu referire la framework-ul disponibil si la masina virtuala Java;  combinatia aleasa (CLDC-1.0 si MIDP-2.0) este valabila pentru mai mult de 75% din dispozitivele mobile produse dupa 2005.&lt;/captura&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;captura&gt;Odata creat proiectul de tip MobileApplication trebuie definit contextul obiectual pe baza caruia se va construi aplicatia. Asta inseamna inserarea unei resurse de tip MIDlet , prin intermediul optiunilor din meniul mediului NetBeans (File -&gt; New File…) sau prin meniul contextual (New -&gt; MIDlet) activat cu Click dreapta pe numele proiectului.&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;Prin adaugarea unei resurse de tip MIDlet, fisier cu extensia .java, este generate clasa MidletHelloWorld derivata din clasa abstracta MIDlet. Initial forma acestei clase&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;&lt;/captura&gt;&lt;/div&gt;&lt;captura&gt;&lt;br /&gt;import javax.microedition.midlet.*;&lt;br /&gt;&lt;br /&gt;public class MidletHelloWorld extends MIDlet {&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;public void startApp() {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void pauseApp() {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void destroyApp(boolean unconditional) {&lt;br /&gt;}&lt;br /&gt;}&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;&lt;br /&gt;supradefineste metodele abstracte:&lt;br /&gt;&lt;/captura&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;captura&gt;&lt;span style="font-style: italic;"&gt;startApp()&lt;/span&gt; – functia starter a aplicatiei; se executa prima, dupa initializarea instantei MidletHelloWorld&lt;/captura&gt;&lt;/li&gt;&lt;li&gt;&lt;captura&gt;&lt;span style="font-style: italic;"&gt;pauseApp()&lt;/span&gt; – functia este executata la aparitia unui eveniment ce implica blocarea aplicatiei de tip MIDlet; un scenariu des intalnit pe un dispozitiv mobil contine receptionarea unui apel telefonic in timpul executiei aplicatiei;&lt;/captura&gt;&lt;/li&gt;&lt;li&gt;&lt;captura&gt;&lt;span style="font-style: italic;"&gt;destroyApp() &lt;/span&gt;– functia de inchidere a aplicatiei; este executata la terminarea aplicatiei si contine rutinele de eliberare a resurselor; are rol asemanator functiei destructor;&lt;/captura&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;captura&gt;Secventa de cod, descrisa anterior, reprezinta cel mai mic program de tip MIDlet. Acest program nu are efecte vizuale deoarece se termina imediat dupa ce a fost lansat in executie. Daca ne gandim la o aplicatie scrisa in C, MIDlet-ul MidletHelloWorld in forma curenta, este echivalent cu&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;&lt;/captura&gt;&lt;/div&gt;&lt;br /&gt;&lt;captura&gt;void main()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/captura&gt;&lt;div style="text-align: justify;"&gt;&lt;captura&gt;Cele trei metode din clasa MidletHelloWorld sunt obligatorii, situatie generata prin derivarea din MIDlet. Ele gestioneaza starile posibile in care se gaseste aplicatia. Acest concept mai este intalnit si la alte aplicatii Java si anume la applet-uri.&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;Pentru a afisa un mesaj pe ecran, aplicatia trebuie sa aiba acces la controler-ul resurselor grafice. Acest lucru se face prin definirea unui obiect de tip Display ce este initializat la start-ul aplicatiei.&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;&lt;/captura&gt;&lt;/div&gt;&lt;captura&gt;&lt;br /&gt;import javax.microedition.lcdui.*;&lt;br /&gt;import javax.microedition.midlet.*;&lt;br /&gt;&lt;br /&gt;public class MidletHelloWorld extends MIDlet {&lt;br /&gt;private Display display = null;            //referinta la managerul vizual al aplicatiei&lt;br /&gt;public void startApp() {&lt;br /&gt;  if(display==null)&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;        display = Display.getDisplay(this);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void pauseApp() {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void destroyApp(boolean unconditional) {&lt;br /&gt;}&lt;br /&gt;}&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;&lt;br /&gt;&lt;/captura&gt;&lt;div style="text-align: justify;"&gt;&lt;captura&gt;Deoarece caracteristicile hardware si software ale dispozitivului mobil impun restrictii asupra aplicatiilor Java Mobile (lucrurile sunt total diferite fata de aplicatiile Java pentru PC), putem dezvolta doar aplicatii vizuale care afiseaza maxim un formular (sau fereastra) la un moment dat. Mai mult, deoarece ecranul  are dimensiuni reduse, acest formular acopera tot display-ul dispozitivului. Pentru a gestiona aceste resurse vizuale si pentru a stabili ce formular este activ este nevoie de referinta de tip Display.&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;&lt;/captura&gt;&lt;/div&gt;&lt;captura&gt;&lt;br /&gt;&lt;/captura&gt;&lt;div style="text-align: justify;"&gt;&lt;captura&gt;Pentru a afisa pe ecran textul Hello World ! este nevoie de un formular si de un container pentru string-ul respectiv. Astfel vom folosi un formular de tip TextBox (a nu se confunda cu control-ul TextBox din alte limbaje de programare) ce reprezinta un formular ce contine doar un control de tip casuta de dialog cu proprietatea multiline implicit setata. Motivul existentei acestui tip de resursa vizuala este dat tot de resursele limitate de care dispunem pe un telefon. Alte tipuri de formulare permit realizarea unor aplicatii mai complexe, insa ele vor fi descrise in alt post.&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;Prin adaugarea formularului, codul devine:&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;&lt;/captura&gt;&lt;/div&gt;&lt;br /&gt;&lt;captura&gt;import javax.microedition.lcdui.*;&lt;br /&gt;import javax.microedition.midlet.*;&lt;br /&gt;&lt;br /&gt;public class MidletHelloWorld extends MIDlet {&lt;br /&gt;private Display display = null; //referinta la managerul vizual al aplicatiei&lt;br /&gt;private TextBox tbMainForm;     //TextBox pentru a afisa mesajul de salut&lt;br /&gt;&lt;br /&gt;public MidletHelloWorld(){&lt;br /&gt;tbMainForm = new TextBox("My First MIDlet", "Hello World !", 100, 0);&lt;br /&gt;}&lt;br /&gt;&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;public void startApp() {&lt;br /&gt;  if(display==null)&lt;br /&gt;      display = Display.getDisplay(this);&lt;br /&gt;  display.setCurrent(tbMainForm); //activarea formularului&lt;br /&gt;}&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;&lt;br /&gt;public void pauseApp() {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void destroyApp(boolean unconditional) {&lt;br /&gt;}&lt;br /&gt;}&lt;/captura&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;captura&gt;In secventa de cod, se observa ca afisarea formularului s-a realizat in metoda startApp prin intermediul metodei setCurrent a obiectului de tip Display.&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;Compilarea si rularea aplicatiei conduce la obtinerea in emulator a imaginii urmatoare&lt;/captura&gt;&lt;br /&gt;&lt;/div&gt;&lt;captura&gt;&lt;/captura&gt;&lt;/div&gt;&lt;captura&gt;&lt;imagine&gt;&lt;br /&gt;&lt;/imagine&gt;&lt;/captura&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TRABq1HzJEA/SjgZvUDLTYI/AAAAAAAACNg/Tk1EiA_knEE/s1600-h/HelloWorldMidlet.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 142px; height: 320px;" src="http://3.bp.blogspot.com/_TRABq1HzJEA/SjgZvUDLTYI/AAAAAAAACNg/Tk1EiA_knEE/s320/HelloWorldMidlet.jpg" alt="" id="BLOGGER_PHOTO_ID_5348052858129042818" border="0" /&gt;&lt;/a&gt;&lt;captura&gt;&lt;imagine&gt;La lansarea emulatorului, acesta nu executa imediat aplicatia. Pentru a o porni trebuia data comanda Launch (butonul din dreapta al emulatorului).&lt;/imagine&gt;&lt;/captura&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;captura&gt;&lt;imagine&gt;Cu toate ca aplicatia este destul de simpla, ea exemplifica foarte bine structura unui MIDlet, iar elementele prezentate se regasesc in toate aplicatiile de acest tip.&lt;/imagine&gt;&lt;/captura&gt;&lt;br /&gt;&lt;captura&gt;&lt;imagine&gt;Pentru a-l testa intr-un mediu real, pe telefonul mobil personal, MIDlet-ul din acest exemplu trebuie instalat pe dispozitivul mobil. Acest lucru se face prin transmitere pe telefon (prin Bluetoth, IR, Wireless sau cablu de date) a 2 fisiere ce se gasesc in subdirectorul dist al proiectului (situatia este valabila doar pentru Netbeans). Daca proiectul se numeste MobileApplicationHelloWorld , atunci cele 2 fisiere sunt MobileApplicationHelloWorld.jad (descrierea aplicatiei) si MobileApplicationHelloWorld.jar (sursa aplicatiei).&lt;/imagine&gt;&lt;/captura&gt;&lt;br /&gt;&lt;/div&gt;&lt;captura&gt;&lt;imagine&gt;&lt;/imagine&gt;&lt;/captura&gt;&lt;/div&gt;&lt;captura&gt;&lt;imagine&gt;&lt;br /&gt;&lt;/imagine&gt;&lt;/captura&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-3114510538916624991?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/3114510538916624991/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/06/aplicatie-java-mobile-hello-world.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3114510538916624991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3114510538916624991'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/06/aplicatie-java-mobile-hello-world.html' title='Aplicatie Java mobile - &quot;Hello World !&quot; MIDlet'/><author><name>Catalin</name><uri>http://www.blogger.com/profile/05122050058515697000</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_TRABq1HzJEA/SjgZGvvYc5I/AAAAAAAACNY/V0FjfuXE8Vs/s72-c/NewProject.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-6143993552351953126</id><published>2009-06-15T12:42:00.000-07:00</published><updated>2009-06-15T13:05:08.608-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Utilizarea protocoalelor POP3 si SMTP in JAVA - Partea 1</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;font-size:180%;" &gt;&lt;span style="font-family:times new roman;"&gt;Obiective&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Scopul acestui tutorial este acela de a prezenta operatiunile de baza necesare pentru lucrul cu protocoalele POP3 si SMTP pentru citirea, respectiv trimiterea e-mailurilor. Veti invata de-a lungul acestui tutorial cum se face conectarea prin intermediul Java la un server ce recunoaste protocolul POP3, cum se citesc si cum se sterg mesajele dintr-o casuta de mail prin intermediul acestui protocol. De asemenea se va utiliza protocolul SMTP pentru trimiterea de email-uri catre o adresa antecunoscuta.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;1.    Protocolul POP3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;       Post Office Protocol 3 (POP3). POP3 este o metoda de descarcare de mesaje email de pe un server. Prin intermediul JAVA vom exemplifica procedura de conectare la un server ce recunoaste protocolul POP3 si modalitate de citire a mesajelor existente in casuta de mail la care ne-am conectat. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     Metoda pentru conectare la un server ce foloseste protocolul POP3 si pentru citirea mailurilor existente in aceasta :&lt;br /&gt;&lt;br /&gt;import java.net.Socket&lt;br /&gt;&lt;br /&gt;public void conectareServerPOP3(String pop3Server,String userName,&lt;br /&gt;                               String password){&lt;br /&gt;//socketul se foloseste pentru a se obtine conexiunea cu&lt;br /&gt;//serverul POP3&lt;br /&gt;   Socket socket ;&lt;br /&gt;//prin intermediul inputStream-ului se vor extrage mesajele de la serverul POP3&lt;br /&gt;   BufferedReader inputStream;&lt;br /&gt;//prin intermediul outputStream-ului se vor trimite mesaje catre serverul POP3&lt;br /&gt;   PrintWriter outputStream;&lt;br /&gt;//numarul unic de identificare a unui mesaj intr-o casuta de mail&lt;br /&gt;   String uidl = new String();&lt;br /&gt;&lt;br /&gt;   int port = 110; //pop3 mail port&lt;br /&gt;//pop3Server este o variabila de tip String ce contrine de fapt adresa serverului ce lucreaza cu protocolul POP3; ex: pop.austincc.edu&lt;br /&gt;   socket = new Socket(pop3Server,port);&lt;br /&gt;//deschidem canalul de citire a mesajelor de la serverul POP3&lt;br /&gt;   inputStream = new BufferedReader(new InputStreamReader(&lt;br /&gt;                              socket.getInputStream()));&lt;br /&gt;//deschidem canalul de trimitere a mesajelor catre serverul POP3&lt;br /&gt;    outputStream = new PrintWriter(new OutputStreamWriter(&lt;br /&gt;                            socket.getOutputStream()),true);&lt;br /&gt;//luam un prim mesaj de la serverul POP3&lt;br /&gt;//metoda validateOneLine() are rolul de a extrage un mesaj primit de la server si&lt;br /&gt;//de a-l valida. Ea va fi explicata imediat&lt;br /&gt;    String connectMsg = validateOneLine();&lt;br /&gt;//verificam daca serverul pop3 exista. Daca acesta exista mesajul ar trebui sa&lt;br /&gt;//arate in felul urmator&lt;br /&gt;&lt;div style="text-align: center;"&gt; &lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Connected to pop3Server&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;+OK POP3 mailbox.austincc.edu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;v2001.78 server ready&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;System.out.println("Connected to pop3Server " + connectMsg)&lt;br /&gt;//acum se trimite username-ul la serverul pop3 si se verifica&lt;br /&gt;//mesajul obtinut&lt;br /&gt;    outputStream.println("USER " + userName);&lt;br /&gt;    String userResponse = validateOneLine();&lt;br /&gt;   &lt;br /&gt;//Se afiseaza mesajul primit&lt;br /&gt;    System.out.println("USER " + userResponse);&lt;br /&gt;//daca username-ul este corect raspunsul ar trebui sa arate in felul urmator&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; color: rgb(51, 102, 255);"&gt;USER +OK User name accepted, password please&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;//se trimite parola catre serverul pop3 si se verifica mesajul obtinut&lt;br /&gt;    outputStream.println("PASS " + password);&lt;br /&gt;   System.out.println("PASS " + validateOneLine());&lt;br /&gt;&lt;br /&gt;//daca parola este corecta raspunsul ar trebui sa arate in felul urmator&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;PASS +OK Mailbox open, 1 messages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;     System.out.println("Downloading Messages")&lt;br /&gt;//dupa ce s-a realizat conexiunea le serverul POP3 se poate incepe&lt;br /&gt;//downloadarea mesajelor din casuta de mail&lt;br /&gt;&lt;br /&gt;   try{&lt;br /&gt;           outputStream.println("STAT");&lt;br /&gt;           String stat = validateOneLine();&lt;br /&gt;          //se ia numarul de mesaje din casuta prin trimiterea&lt;br /&gt;          //mesajului STAT la server.        &lt;br /&gt;          String numberMsgsStr=stat.substring(4,stat.indexOf(" ",5));&lt;br /&gt;          numberMsgs = Integer.parseInt(numberMsgsStr);&lt;br /&gt;          //se incepe citirea efectiva a mesajelor&lt;br /&gt;          msgNumber = 1;&lt;br /&gt;   &lt;br /&gt;           while(msgNumber &lt;= numberMsgs){                 outputStream.println("UIDL " + msgNumber);                 uidl = validateOneLine();                 while( !uidl.equals(“.”) ){                          uidl = validateOneLine();                          System.out.println(uidl+”\n”);                 }                 msgNumber++;             }     }catch(Exception e){         e.printStackTrace();     } &lt;div style="text-align: left;"&gt;}&lt;br /&gt;&lt;br /&gt;Metoda care citeste o linie de raspuns de la serverul POP3 si o valideaza :&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;private String validateOneLine(){&lt;br /&gt;   try{&lt;br /&gt;//se citeste o linie din raspunsul primit de la serverul pop3 //prin intermediul canalului de comunicatii deschis in metoda //anterioara&lt;br /&gt;     String response = inputStream.readLine();&lt;br /&gt;   &lt;br /&gt;//daca textul mesajului incepe cu +OK inseamna ca acesta este un mesaj bun, comanda trimisa de noi anterior catre server este una acceptata&lt;br /&gt;     if(response.startsWith("+OK")){&lt;br /&gt;       return response;&lt;br /&gt;     }else{&lt;br /&gt;       System.out.println(response);&lt;br /&gt;       //Terminate the session.&lt;br /&gt;       outputStream.println("QUIT");&lt;br /&gt;       socket.close();&lt;br /&gt;       System.out.println(&lt;br /&gt;                      "Premature QUIT on -ERR");&lt;br /&gt;       System.exit(0);&lt;br /&gt;     }//end else&lt;br /&gt;   }catch(IOException ex){&lt;br /&gt;     ex.printStackTrace();&lt;br /&gt;   }//end catch&lt;br /&gt;//la aceasta linie de cod nu se va ajunge niciodata, insa ea este necesara pentru compilarea programului din cauza utilizarii blocului try- catch&lt;br /&gt;   return "Make compiler happy";&lt;br /&gt; }//end validateOneLine()&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Prin intermediul celor doua metode prezentate mai sus se realizeaza conexiunea la un server ce foloseste protocolul POP3 si sunt citite mesajele existente in casuta. Pentru conectarea la serverul POP3 este folosit un obiect de tip Socket din pachetul « java.net ». De asemenea pentru realizarea comunicatiei cu serverul prin trimiterea si primirea de mesaje se folosesc doua canale de comunicatie (BufferedReader inputStream; PrintWriter outputStream) .Este de mentionat ca protocolul POP3 nu utilizeaza niciun flag prin care sa diferentieze mesajele citite de acelea necitite din casuta de mail, asadar se va face citirea tuturor mesajelor&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-6143993552351953126?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/6143993552351953126/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/06/utilizarea-protocoalelor-pop3-si-smtp.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/6143993552351953126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/6143993552351953126'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/06/utilizarea-protocoalelor-pop3-si-smtp.html' title='Utilizarea protocoalelor POP3 si SMTP in JAVA - Partea 1'/><author><name>Mihai Mogos</name><uri>http://www.blogger.com/profile/05060937006441378200</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-301324996193914987.post-3693269671229822185</id><published>2009-06-12T08:21:00.000-07:00</published><updated>2009-06-12T08:31:01.496-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Utilizarea JTable in Swing -  Partea 1</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Obiective&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Scopul acestui tutorial este de a exemplifica modul de functionare si utilitatea elementului JTable. In principal se vor aborda elemente legate de modul in care se utilizeaza, cum se poate contrui un renderer, un column model, sau diferitele moduri de selectie. Acest tutorial presupune cunostinte medii despre limbajul Java si despre modul de construire a interfetelor grafice folosind Swing. In cadrul sau vor fi abordate doar elementele necesare explicarii elementului JTable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;1. Introducere&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tabelele reprezinta una dintre cele mai des utilizate modalitati de vizualizare a datelor. Prin folosirea unui tabel inregistrarile dintr-o baza de date sunt usor de sortat si slectat. Informatiile despre spatiul liber disponibil pe hard pot fi afisate pentru mai multe calculatorare in perioade de timp diferite, folosind un tabel. Cotatiile la bursa pot fi de asemena urmarite cu usurinta sau vanzarile efectuate. Clasa JTable din pachetul Swing ofera posibilitatea de a efecuta foarte usor elementele descrise anterior si chiar mai mult.&lt;br /&gt;&lt;br /&gt;Tabelele pot fi gandite ca un mod de reprezentare a datelor bidimensionale. De fapt, clasa JTable are chiar un constructor care primeste ca argument un masiv bidimensional de obiecte din clasa Object (Object [][]) si afiseaza continutul acestora in liniile si coloanele unui tabel. De exemplu figura urmatoare arata un tabel de obiecte String:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_h_KMvWvn4DA/SjJz0GLrUAI/AAAAAAAAA0A/B845-V5qNA0/s1600-h/1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 321px; height: 240px;" src="http://4.bp.blogspot.com/_h_KMvWvn4DA/SjJz0GLrUAI/AAAAAAAAA0A/B845-V5qNA0/s400/1.bmp" alt="" id="BLOGGER_PHOTO_ID_5346463046492180482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Acest exemplu a fost generat folosindu-se foarte putin cod. Tot ce a fost nevoie sa facem a fost sa cream un obiect de tip JTable folosind un argument de tip String[][] pentru continutul tabelului si un argument de tip String[] pentru header-ul tabelului. In loc sa adaugam tabelul direct pe fereastra l-am incapsulat intr-un ScrollPane.&lt;br /&gt;&lt;br /&gt;// LECSimpleTable.java&lt;br /&gt;// O simpla clasa de test utilizand un table model standard&lt;br /&gt;import java.awt.*;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;&lt;br /&gt;public class LECSimpleTable extends JFrame {&lt;br /&gt;&lt;br /&gt;public LECSimpleTable( ) {&lt;br /&gt;super("LEC JTable Test");&lt;br /&gt;setSize(300, 200);&lt;br /&gt;setDefaultCloseOperation(EXIT_ON_CLOSE);&lt;br /&gt;&lt;br /&gt;JTable jt = new JTable(new String[][] { {"acesta", "este"}, {"un", "test"} },&lt;br /&gt;                       new String[] {"Coloana", "Rand"});&lt;br /&gt;JScrollPane jsp = new JScrollPane(jt);&lt;br /&gt;getContentPane( ).add(jsp, BorderLayout.CENTER);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String args[]) {&lt;br /&gt;LECSimpleTable st = new LECSimpleTable( );&lt;br /&gt;st.setVisible(true);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Dupa cum puteti observa folosind modele de date care au fost deja contruite, singurul lucru pe care trebuie sa il facem este sa trimitem ca parametrii datele noastre si header-ele pentru coloane, clasa JTabel ocupandu-se de restul operatiilor. Folosind modelele defaut puteti selecta mai multe randuri simultan, sa editati anumite celule, si sa interceptati evenimentele de selectie. Insa nu sunteti limitati doar la modelele default, si puteti obtine o serie de functionalitati destul de interesante in cazul in care suprascriteti comporatmentul modelelor default.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;2. Realizarea unui Column Model&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mai jos aveti codul pentru un column model modficat, care ordoneaza coloanele in ordine alfabetica pe masura ce sunt adaugate:&lt;br /&gt;&lt;br /&gt;// LECSortingColumnModel.java&lt;br /&gt;// O extensie a clasei DefaultTableColumnModel care sorteaza noile&lt;br /&gt;// coloane introduse.&lt;br /&gt;import javax.swing.table.*;&lt;br /&gt;public class LECSortingColumnModel extends DefaultTableColumnModel {&lt;br /&gt;public void addColumn(TableColumn tc) {&lt;br /&gt;super.addColumn(tc);&lt;br /&gt;int newIndex = sortedIndexOf(tc);&lt;br /&gt;if (newIndex != tc.getModelIndex( )) {&lt;br /&gt;  moveColumn(tc.getModelIndex( ), newIndex);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;protected int sortedIndexOf(TableColumn tc) {&lt;br /&gt;int stop = getColumnCount( );&lt;br /&gt;String name = tc.getHeaderValue( ).toString( );&lt;br /&gt;for (int i = 0; i &lt; stop; i++) {&lt;br /&gt;  if (name.compareTo(getColumn(i).getHeaderValue( ).toString( )) &lt;= 0) {&lt;br /&gt;    return i;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;return stop;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Implementarea modelului este una destul de simpla. Suprascriem metoda addColumn(), in acest fel asociind comportamentul dorit de noi. Puteti folosi acest column model cu orice tip de data. Din moment ce avem un tabel model si un column model le putem folosi pentru a construi un JTable. Ulterior acestei operatii toate coloanele pe care le adaugam sunt sortate in ordine alfabetica, indiferent de ordinea in care sunt adaugate initial. Rezultatul poate fi vizualizat in figura de mai jos&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_h_KMvWvn4DA/SjJ0UQYwJ2I/AAAAAAAAA0I/3T1w8CAzV0s/s1600-h/2.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 200px;" src="http://2.bp.blogspot.com/_h_KMvWvn4DA/SjJ0UQYwJ2I/AAAAAAAAA0I/3T1w8CAzV0s/s400/2.bmp" alt="" id="BLOGGER_PHOTO_ID_5346463598987192162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Mai jos aveti codul care care realizarea conexiunea dintre tabel si column model:&lt;br /&gt;&lt;br /&gt;import java.awt.*;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import javax.swing.table.*;&lt;br /&gt;&lt;br /&gt;public class LECColumnExample extends JFrame {&lt;br /&gt;&lt;br /&gt;public LECColumnExample( ) {&lt;br /&gt;super("LEC Abstract Model JTable");&lt;br /&gt;setSize(300, 200);&lt;br /&gt;setDefaultCloseOperation(EXIT_ON_CLOSE);&lt;br /&gt;&lt;br /&gt;DefaultTableModel dtm = new DefaultTableModel(new String[][] {&lt;br /&gt;                        {"1", "2", "3"}, {"4", "5", "6"} },&lt;br /&gt;                        new String[] {"numele", "ordonate", "crescator"});&lt;br /&gt;LECSortingColumnModel scm = new LECSortingColumnModel( );&lt;br /&gt;JTable jt = new JTable(dtm, scm);&lt;br /&gt;jt.createDefaultColumnsFromModel( );&lt;br /&gt;&lt;br /&gt;JScrollPane jsp = new JScrollPane(jt);&lt;br /&gt;getContentPane( ).add(jsp, BorderLayout.CENTER);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String args[]) {&lt;br /&gt;LECColumnExample ce = new LECColumnExample( );&lt;br /&gt;ce.setVisible(true);&lt;br /&gt;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-3693269671229822185?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/3693269671229822185/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/06/utilizarea-jtable-in-swing-partea-1.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3693269671229822185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/3693269671229822185'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/06/utilizarea-jtable-in-swing-partea-1.html' title='Utilizarea JTable in Swing -  Partea 1'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_h_KMvWvn4DA/SjJz0GLrUAI/AAAAAAAAA0A/B845-V5qNA0/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-5233608298261381313</id><published>2009-06-09T02:00:00.000-07:00</published><updated>2009-06-09T02:10:07.067-07:00</updated><title type='text'>Formatare conditionala incrucisata</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;In tabela urmatoare trebuie aplicata formatare conditionala pe coloanele “Nume” si “Varsta” in functie de vechime : &lt;/span&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LxVkMPSPIGs/Si4lpOKKXnI/AAAAAAAAACU/z4jFFyeg4P4/s1600-h/Untitled111111.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 293px;" src="http://3.bp.blogspot.com/_LxVkMPSPIGs/Si4lpOKKXnI/AAAAAAAAACU/z4jFFyeg4P4/s320/Untitled111111.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5345251197840940658" /&gt;&lt;/a&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Doresc sa fie formatate inregistrarile ce corespund salariatilor cu o &lt;b style="mso-bidi-font-weight:normal"&gt;vechime&lt;/b&gt; mai mare de &lt;b style="mso-bidi-font-weight:normal"&gt;5 ani&lt;/b&gt; .&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;Pentru asta selectam cele 2 coloane pe care am spus la inceputul prezentarii ca dorim sa le formatam (A6:B15). Mergem in meniu la Format – Conditional Formatting si ne va aparea casuta de dialog pentru formatarea conditionala :&lt;/span&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LxVkMPSPIGs/Si4lkQeAytI/AAAAAAAAACM/Sc0K-rSIUkk/s1600-h/Untitled2222222222.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 100px;" src="http://2.bp.blogspot.com/_LxVkMPSPIGs/Si4lkQeAytI/AAAAAAAAACM/Sc0K-rSIUkk/s320/Untitled2222222222.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5345251112561724114" /&gt;&lt;/a&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Deoarece conditia de formatare se va pune pe valorile din alta coloana decat cele doua pe care dorim sa le formatam &lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;, in prima rubrica a casutei Conditional Formatting vom alege Formula is si vom pune conditia ca vechimea salariatului sa fi mai mare decat 5 :&lt;/span&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LxVkMPSPIGs/Si4lfZAKuyI/AAAAAAAAACE/t_P48SuymTM/s1600-h/Untitled3333333333.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_LxVkMPSPIGs/Si4lfZAKuyI/AAAAAAAAACE/t_P48SuymTM/s320/Untitled3333333333.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5345251028953119522" /&gt;&lt;/a&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Criteriul pentru formatare introdus la rubrica Formula IS va fi : =$C8&gt;5 . Dupa stabilirea criteriului de formatare mergem la Format , iar la categoria Patterns alegem o culoare de formatare (am ales albastru in acest exercitiu).&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;De ce am inghetat prin semnul “$” doar litera si nu am facut la fel si pentru numarul care compune adresa de celula pe care am folosit-o  in conditie ? Pentru ca asa cum se vede si in imaginea de mai sus formatam doua coloane in acelasi timp . In conditie avem ca celula &lt;b style="mso-bidi-font-weight:normal"&gt;de pornire&lt;/b&gt; in verificarea criteriului celula C8 . Aplicarea formatarii conditionale incepe cu prima dintre cele doua coloane pe care le-am selectat , adica “Nume” . Dupa ce verifica respectarea criteriului pentru prima celula din aceasta coloana , Excelul trece automat la a doua celula , apoi la a treia si asa mai departe . Astfel a fost verificat pentru care inregistrari din colona “Nume” conditia pusa pe coloana “Vechime” este respecata . Dupa ce se ajunge la capatul coloanei , Excelul va verifica respectarea criteriului pentru urmatoarea coloana pe care am selectat-o pentru formatare conditionala , adica pentru coloana “Varsta” . In momentul trecerii de pe coloana “Nume” pe coloana “Varsta” , daca nu am fi inghetat litera din adresa celulei de pornire&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;, in formula prin care am definit criteriul s-ar fi tecut de asemena pe coloana urmatoare(adica de pe coloana C pe coloana D) si s-ar fi comparat cu 5 valorile din coloana “Salariu” si nu cele din coloana “Vechime” . &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Rezultatul formatarii conditionale va fi : &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LxVkMPSPIGs/Si4lLfye7oI/AAAAAAAAAB8/ITsJltl2i70/s1600-h/Untitled+444444444.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 303px; height: 320px;" src="http://4.bp.blogspot.com/_LxVkMPSPIGs/Si4lLfye7oI/AAAAAAAAAB8/ITsJltl2i70/s320/Untitled+444444444.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5345250687177387650" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-5233608298261381313?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/5233608298261381313/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/06/formatare-conditionala-incrucisata.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/5233608298261381313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/5233608298261381313'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/06/formatare-conditionala-incrucisata.html' title='Formatare conditionala incrucisata'/><author><name>Sorin Stancu</name><uri>http://www.blogger.com/profile/04636234951790691644</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LxVkMPSPIGs/Si4lpOKKXnI/AAAAAAAAACU/z4jFFyeg4P4/s72-c/Untitled111111.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-175688811398344080</id><published>2009-05-27T12:50:00.000-07:00</published><updated>2009-06-03T07:45:14.513-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Videotutoriale</title><content type='html'>Incepand din aceasta saptamana cursurile de Excel si PowerPoint dispun de videotutoriale.  Aveti doua episoade gratis din aceste cursuri mai jos:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;object width="480" height="381"&gt;&lt;param name="movie" value="http://www.dailymotion.com/swf/x9dxwj_powerpoint_tech&amp;related=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.dailymotion.com/swf/x9dxwj_powerpoint_tech&amp;related=1" type="application/x-shockwave-flash" width="480" height="381" allowFullScreen="true" allowScriptAccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.dailymotion.com/video/x9dxwj_powerpoint_tech"&gt;PowerPoint&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;object width="480" height="381"&gt;&lt;param name="movie" value="http://www.dailymotion.com/swf/x9dxum_excel_tech&amp;related=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.dailymotion.com/swf/x9dxum_excel_tech&amp;related=1" type="application/x-shockwave-flash" width="480" height="381" allowFullScreen="true" allowScriptAccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.dailymotion.com/video/x9dxum_excel_tech"&gt;Excel&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Lucram in continuare si pentru realizarea de videoturiale pentru cursurile de Java Fundamentals, Java Advanced si C# Training.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-175688811398344080?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/175688811398344080/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/videotuoriale.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/175688811398344080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/175688811398344080'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/videotuoriale.html' title='Videotutoriale'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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-301324996193914987.post-5729652345577202060</id><published>2009-05-27T10:28:00.000-07:00</published><updated>2009-05-27T10:56:23.412-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Identificarea unui dispozitiv mobil in cazul aplicatiilor ASP.NET</title><content type='html'>&lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="" lang="RO"&gt;In prezent, dispozitivele mobile de tip smartphone, pocketPC, palm sunt utilizate in mod frecvent pentru a naviga pe Internet. Acest lucru este permis de software, aplicaţiile browser pentru dispozitive mobile (Opera, Safari, Pocket Internet Explorer) si de capacitatea dispozitivului de a accesa o retea de date wireless sau una oferita de furnizorul de comunicatii mobile.&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="" lang="RO"&gt;In acest scenariu, apare o problema privind dezvoltarea aplicatiilor Web, deoarece dispozitivul mobil este limitat in comparatie cu un PC sau Notebook din punctul de vedere al:&lt;/span&gt;&lt;/p&gt;&lt;ul  style="font-family:verdana;"&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;!--[endif]--&gt;&lt;span style="" lang="RO"&gt;dimensiunilor fizice ale ecranului;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="" lang="RO"&gt;capacitatea de a afişa resurse multimedia (imagini, filme, sunet);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="" lang="RO"&gt;viteza de transfer a datelor&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="" lang="RO"&gt;capacitatea de a rula script-uri.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;      &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="" lang="RO"&gt;Diferenţele enunţate influenţează negativ experienţa utilizatorului deoarece, in majoritatea cazurilor, aplicaţia este conceputa sa ruleze minim pe un ecran ce permite rezoluţia 800X600. Astfel, utilizatorul mobil &lt;span style=""&gt; &lt;/span&gt;întampină dificultati la vizualizarea meniului aplicatiei, a conţinutului si la completarea unor formulare de date.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="" lang="RO"&gt;Solutia problemei consta in dezvoltarea de versiuni diferite ale aplicaţiei Web. Utilizand tehnologia ASP.NET framework 2.0 si Visual Studio 2005 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="" lang="RO"&gt;Cu toate că URL-ul site-ului Web rămâne neschimbat, trebuie să existe posibilitatea de a detecta tipul dispozitivului care face cererea şi în funcţie de acesta de a-i furniza conţinut care să ţină cont de particularităţile acestuia.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;Soluţia prezentată este implementată utilizând ASP.NET 2.0 si Visual Studio 2005 ca mediu de dezvoltare. Pentru testare se utilizeaza emulatoarele de dispozitive mobile puse la dispozitie de Visual Studio 2005. Acesta sunt iniţializate prin intermediul Device Emulator Manager din opţiunea Tools a mediului.&lt;/p&gt;&lt;p class="MsoNormal" face="verdana" style="text-align: justify;"&gt;&lt;a style="font-family: verdana;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TRABq1HzJEA/Sh16NEN4W-I/AAAAAAAACNQ/YALCD4KO0HU/s1600-h/Windows_Mobile.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 233px;" src="http://4.bp.blogspot.com/_TRABq1HzJEA/Sh16NEN4W-I/AAAAAAAACNQ/YALCD4KO0HU/s320/Windows_Mobile.JPG" alt="" id="BLOGGER_PHOTO_ID_5340559098020125666" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" face="verdana" style="text-align: justify;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal" face="verdana" style="text-align: justify;"&gt;Identificarea tipului dispozitivului se realizeaza din pagina principală a site-ului analizând cererea HTTP făcută de browser-ul acestuia. In această zonă există informaţii care indică tipul aplicaţiei de tip browser. In situaţia identificării unui dispozitiv mobil, serverul va face o redirectare a cererii catre o pagina Web construită în mod explicit pentru dispozitive cu ecran de dimensiuni reduse si capacitate particulara de interpretare a unui formular.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" face="verdana" style="text-align: justify;"&gt;Interogarea tipului dispozitivului se face în pagina principală a site-ului, în funcţia Page_Load prin intermediul obiectului &lt;i style=""&gt;HttpContext.Current.Request.Browser&lt;/i&gt; ce are proprietatea &lt;i style=""&gt;IsMobileDevice&lt;/i&gt;. Această metodă analizează header-ul HTTP al cererii căutând informaţii despre platformă şi browser. Proprietatea intoarce &lt;i style=""&gt;true&lt;/i&gt; daca informaţiile gasite indica un dispozitiv mobil.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;protected void Page_Load(object sender, EventArgs e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style=""&gt;            &lt;/span&gt;if(Request.Browser.IsMobileDevice)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style=""&gt;                      &lt;/span&gt;Server.Transfer(”MobileVersion/Default.aspx”);&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" face="verdana" style="text-align: justify;"&gt;&lt;span style="font-family: courier new;font-family:courier new;" &gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal" face="verdana" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Datorita numarului mare de dispozitive mobile si a evolutiei rapide a tehnologiei, metoda &lt;i style=""&gt;IsMobileDevice&lt;/i&gt; nu contine informatii despre toate dispozitivele mobile. Lista oficială a platformelor recunoscute se gaseste la &lt;a href="http://www.asp.net/mobile/tested-devices/" target="_blank" title="Compatible Mobile  Browsers"&gt;http://www.asp.net/mobile/tested-devices/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" face="verdana" style="text-align: justify;"&gt;După cum se observă, această listă nu este actualizată în mod curent, fapt care generează destul de uşor situaţii în care dispozitivul nu este identificat corect. In această situaţie este recomandată o abordare mai pragmatică ce implică definirea de metode proprii care să simuleze execuţia metodei &lt;i style=""&gt;IsMobileDevice&lt;/i&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; font-family: verdana;"&gt;Informaţiile ce pot fi analizate pentru a identifica platforma utilizatorului sunt obţinute prin intermediul metodei UserAgent pentru obiectul &lt;i style=""&gt;HttpContext.Current.Request.&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; font-family: verdana;"&gt;De exemplu, pentru un telefon mobil Nokia N95, datele puse în cererea HTTP sunt&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;        &lt;p class="MsoNormal" style="text-align: justify; font-family: verdana;"&gt;&lt;i style=""&gt;Mozilla/5.0(SymbianOS/9.2;U;Series60/3.1NokiaN95_8GB/15.0.015; Profile/MIDP-2.0Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;Utilizand emulatorul Windows Mobile 6 Professional (este disponibil pentru Visual Studio 2005 si 2008 descarcand Windows Mobile 6 Professional and Standard Software Development Kits de la adresa http://www.microsoft.com/downloads/en/default.aspx)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: left; font-family: verdana;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;i style=""&gt;Mozilla/4.0(compatible; MSIE 6.0; Windows CE; IEMobile 6.12)&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify; font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;Acest string poate fi parsat cu usurinta. Cea mai simpla metoda este data de cautarea unui substring dintr-o colectie data. In aceasta situatie metoda Page_Load devine&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;protected void Page_Load(object sender, EventArgs e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" face="courier new" style="text-align: justify; font-family: courier new;"&gt;&lt;span style=""&gt;            &lt;/span&gt;if(Request.Browser.IsMobileDevice)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" face="courier new" style="text-align: justify; font-family: courier new;"&gt;&lt;span style=""&gt;                      &lt;/span&gt;Server.Transfer(”MobileVersion/Default.aspx”);&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" face="courier new" style="text-align: justify; font-family: courier new;"&gt;&lt;span style=""&gt;            &lt;/span&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" face="courier new" style="text-align: justify; font-family: courier new;"&gt;&lt;span style=""&gt;        &lt;/span&gt;if(Request.UserAgent.ToString().ToLo&lt;span style="" lang="RO"&gt;wer().Contains(“nokia”))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; font-family: courier new;"&gt;&lt;span style="" lang="RO"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;Server.Transfer(”MobileVersion/Default.aspx”);&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;      &lt;p class="MsoNormal" style="text-align: justify; font-family: verdana;"&gt;&lt;span style="font-family: courier new;font-family:courier new;" &gt;}&lt;/span&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;br /&gt;Aceste profile de dispozitive mobile pot fi inserate in Web.config sau in fisiere XML externe astfel incat sa fie gestionate fara a modifica codul aplicatiei. O solutie devoltata pentru a genera astfel de profile poate fi descarcata de la adresa &lt;a href="http://www.asp.net/mobile/profile/default.aspx"&gt;http://www.asp.net/mobile/profile/default.aspx&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify; font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;Pentru browser-ele de pe dispozitivele mobile ce nu accepta URL relative, de tipul MobileVersion/Default.aspx, redirectarea se va realiza dacă aplicaţia Web este configurată să genereze URL complet. Acest lucru se obţine prin modificarea fisierului Web.config, adăugand setarea:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify; font-family: courier new;"&gt;&lt;system.web&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/system.web&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; font-family: courier new;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;httpruntime usefullyqualifiedredirecturl="”true”"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/httpruntime&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; font-family: verdana;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; font-family: verdana;"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="" lang="RO"&gt;Aceasta solutie poate fi utilizata si pentru dezvoltarea de aplicatii ASP.NET utilizand Visual Studio 2008. Diferentele dintre cele doua medii de dezvoltare sunt vizibile la abordarea continutului unei pagini ASP.NET destinata dispozitivelor mobile. Pentru Visual Studio 2005 exista conceptul ca browser-ele mobile au capacitati reduse, lucru adevarat la nivelul anilor 2004 – 2005. In prezent, aceste aplicatii au evoluat suficient de mult astfel incat sa fie capabile sa interpreteze continutul la fel ca un browser clasic, destinat PC-urilor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-5729652345577202060?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/5729652345577202060/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/identificare-browser-dispozitiv-mobil.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/5729652345577202060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/5729652345577202060'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/identificare-browser-dispozitiv-mobil.html' title='Identificarea unui dispozitiv mobil in cazul aplicatiilor ASP.NET'/><author><name>Catalin</name><uri>http://www.blogger.com/profile/05122050058515697000</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_TRABq1HzJEA/Sh16NEN4W-I/AAAAAAAACNQ/YALCD4KO0HU/s72-c/Windows_Mobile.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-7116030058803040166</id><published>2009-05-18T08:32:00.000-07:00</published><updated>2009-05-18T08:50:38.018-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><title type='text'>Filtru avansat – problema  intampinata   la copierea  rezultatulul in  alta foaie de calcul .</title><content type='html'>Sa se interogheze tabela de mai jos printr-un filtru avansat a.i. sa se afiseze doar angajatii care au un salariu mai mare decat salariul mediu , iar rezultatul obinut sa fie copiat in alta foaie de calcul .&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LxVkMPSPIGs/ShGA30K3CVI/AAAAAAAAAA8/-YJ0v6_UKZU/s1600-h/1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 306px; height: 400px;" src="http://2.bp.blogspot.com/_LxVkMPSPIGs/ShGA30K3CVI/AAAAAAAAAA8/-YJ0v6_UKZU/s400/1.png" alt="" id="BLOGGER_PHOTO_ID_5337188729796102482" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LxVkMPSPIGs/ShGBjgRvEaI/AAAAAAAAABE/aV20v4lMd-A/s1600-h/3_1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 195px; height: 182px;" src="http://1.bp.blogspot.com/_LxVkMPSPIGs/ShGBjgRvEaI/AAAAAAAAABE/aV20v4lMd-A/s400/3_1.png" alt="" id="BLOGGER_PHOTO_ID_5337189480370475426" border="0" /&gt;&lt;/a&gt;Din tabelul initial (A1:D33) vreau sa pastrez doar inregistrarile pentru angajatii care au un salariu mai mare decat salariul mediu . Pentru asta am nevoie de un filtru avansat in care criteriul de filtrare sa fie criteriul definit in celula G8 (salariul sa fie mai mare decat rezultatul functiei AVERAGE aplicata pe intreaga coloana “Salariul lunar”) .&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SOLUTIA GRESITA&lt;/span&gt; :&lt;br /&gt;Dupa stabilirea criteriului actionez  Data – Filter – Advanced Filter , de pe bara de meniu din foaia de calcul in care se afla tabelul initial .Va aparea casuta de dialog pentru filtru avansat , in care voi stabili tabela pe care doresc sa o filtrez (List Range) , aria de celule in care se afla criteriul de filtrare (Crteria Rnage) si locul unde vreau sa copiez rezultaul filtrarii (Copy to) . Atentie! Pentru a activa rubrica Copy to , dintre cele doua optiuni dn partea de sus a casutei de dialog trebuie sa alegem Copy to another location .&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LxVkMPSPIGs/ShGCKkBo6tI/AAAAAAAAABM/KaZATrqOm6c/s1600-h/4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 249px; height: 245px;" src="http://2.bp.blogspot.com/_LxVkMPSPIGs/ShGCKkBo6tI/AAAAAAAAABM/KaZATrqOm6c/s400/4.png" alt="" id="BLOGGER_PHOTO_ID_5337190151391603410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- A1:D33 este adresa in care se afla tabela initala&lt;br /&gt;- G7:G8 este adresa compusa din celula in care am stabilit criteriul (salariul sa fie mai mare decat salariul mediu) si celula aflata imediat deasupra acesteia (G7 ramane necompletata deoarece criteriul este stabilit pe baza unei formule)&lt;br /&gt;- Sheet2!A1  este adresa in care vreau sa copiez rezultatul filtrarii .&lt;br /&gt;Am spus la inceputul exercitiului ca vreau ca rezultatul filtrului avansat sa fie copiat in alta foaie de calcul (in cazul acesta Sheet2 , tabela initiala aflandu-se in Sheet1)&lt;br /&gt;&lt;br /&gt;Pentru a inchea filtrarea se apasa butonul OK .&lt;br /&gt;Insa in locul rezultatului asteptat vom primi  din partea Excel-ului urmatoarea atentionare :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LxVkMPSPIGs/ShGCsDBeB0I/AAAAAAAAABU/jiqlOGDJ5jE/s1600-h/5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 332px; height: 115px;" src="http://2.bp.blogspot.com/_LxVkMPSPIGs/ShGCsDBeB0I/AAAAAAAAABU/jiqlOGDJ5jE/s400/5.png" alt="" id="BLOGGER_PHOTO_ID_5337190726648072002" border="0" /&gt;&lt;/a&gt;Asadar , ni se atrage atentia ca putem copia rezultatul filtrarii doar in foaia de calcul activa (adica acolo unde am actioant comanda Data – Filter - Advanced Filter)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SOLUTIA CORECTA&lt;/span&gt; :&lt;br /&gt;Daca dorim copierea in alta foaie de calcul (in cazul acesta in Sheet2 , nu in Sheet 1 unde avem tabela) , va trebui sa actionam Data-Filter-Advanced Filter chiar in foaia in care dorim sa copiem , nu in cea in care avem tabela .&lt;br /&gt;Pentru asta mergem in Sheet2 , iar  casuta de dialog pentru filtru avansat va arata in felul urmator :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LxVkMPSPIGs/ShGC8bI_qGI/AAAAAAAAABc/KiLQpC3XAIM/s1600-h/3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 335px; height: 300px;" src="http://4.bp.blogspot.com/_LxVkMPSPIGs/ShGC8bI_qGI/AAAAAAAAABc/KiLQpC3XAIM/s400/3.png" alt="" id="BLOGGER_PHOTO_ID_5337191007999993954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-7116030058803040166?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7116030058803040166/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/filtru-avansat-problema-intampinata-la.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7116030058803040166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7116030058803040166'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/filtru-avansat-problema-intampinata-la.html' title='Filtru avansat – problema  intampinata   la copierea  rezultatulul in  alta foaie de calcul .'/><author><name>Sorin Stancu</name><uri>http://www.blogger.com/profile/04636234951790691644</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LxVkMPSPIGs/ShGA30K3CVI/AAAAAAAAAA8/-YJ0v6_UKZU/s72-c/1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-7574256936996719482</id><published>2009-05-14T07:18:00.000-07:00</published><updated>2009-05-14T07:29:01.800-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Table Layout - partea 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_h_KMvWvn4DA/SgwqDKQsnKI/AAAAAAAAAvo/OGsFvjLARio/s1600-h/lec+-+tl2.png"&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;4. Alinierea&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;O componenta care se intinde pe o singura celula poate fi aliniata atat pe verticala cat si pe orizontala. Pentru fiecare orientare sunt patru variante posibile. Pentru aliniera pe orizontala este posibila left, center, right, and full. Acestea au efect decat daca atributul preferred width al componentei este mai mic decat lungimena celulei.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Componetele pot fi de asemenea aliniate pe verticala. Cele patru variante sunt top, center, bottom, and full. Comportamentul este similar cu cel de la alinierea pe orizontala.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Pentru a specifica alinierea unui component nu trebuie decat sa precizati prima litera a variantei dorite. De exemplu pentru a alinia la dreapta si sus, va trebui sa utilizati literele r si t (right si top), in paramentru de tip string pe care il trimiteti metodei de adaugare:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;frame.add(component, "2, 1, r, t");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Alinierea pe orizontala este specificata inaintea alinierii pe verticala. Daca ar fi sa transpunem in cuvinte linia de cod de mai sus aceasta ar suna in felul urmator : pozitioneaza componenta in partea dreapta a coloanei cu indexul 2 si in partea superioara a randului cu indexul 1.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Aliniera default pentru o anumita componenta este cea de umplere (full) atat pe orizontala cat si pe verticala. Prin urmare linia de cod container.add (component, "2, 1"); este identica din punct de vedere functional cu  container.add (component, "2, 1, f, f");.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;5. Adaugarea pe mai multe celule &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;O anumita componeta poate fi adaugata si pe un set dreptunghiular de celule. Aceasta se realizeaza specificand colturile din stanga sus si dreapta jos pentru acest dreptughi. De exemplu linia de cod frame.add (component, "1, 1, 2, 3") va adauga componenta trimisa ca parametru pe toate celulele cuprinse de dreptunghiul delimitat de colturile 1,1 si 2,3. Componetele care ocupa mai mult de o singura celula au dimensiunea egala cu aria totala a celulelor pe care le ocupa. Pentru acest tip de componeta nu se poate specifica nici un atribut de aliniere.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;6. Un simplu exemplu&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Urmatorul cod creeaza TableLayout-ul de mai jos :&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;i&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;mport info.clearthought.layout.TableLayout;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;import javax.swing.*;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;public class Simple&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;{    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;    public static void main (String args[])&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;    {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        // creare fereastra&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        JFrame frame = new JFrame("LEC Exemplu TableLayout");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        frame.setBounds (100, 100, 300, 300);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        // creare table layout&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        double border = 10;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        double size[][] =&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;            {{border, 0.10, 20, TableLayout.FILL, 20, 0.20, border},  // Columns&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;             {border, 0.20, 20, TableLayout.FILL, 20, 0.20, border}}; // Rows&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        frame.setLayout (new TableLayout(size));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        // creare componente&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        String label[] = {"Top", "Bottom", "Left", "Right", "Center", "Overlap"};&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        JButton button[] = new JButton[label.length];&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        for (int i = 0; i &lt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;            button[i] = new JButton(label[i]);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        //adaugare butoane&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        frame.add (button[0], "1, 1, 5, 1"); // sus&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        frame.add (button[1], "1, 5, 5, 5"); // jos&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        frame.add (button[2], "1, 3      "); // stanga&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        frame.add (button[3], "5, 3      "); // dreapta&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        frame.add (button[4], "3, 3, c, c"); // centru&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        frame.add (button[5], "3, 3, 3, 5"); // suprapunere&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        // afisare frame&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;        frame.setVisible(true);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;    }   &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Imaginea din stanga reprezinta frame-ul creat folosind codul de mai sus. In imaginea alaturata ei, au fost adaugate linii pentru a delimita randurile si coloanele. Lungimea coloanelor este afisata in marginea inferioara si inaltimea randurilor este afisata in partea dreapta.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Dupa cum se poate observa acest exemplu utilizeaza TableLayout pentru a crea un border de b pixeli in jurul componetelor de interfata grafica. Acesta este o tehnica usor de folosit pentru a crea un border pe un container care nu dispune de asa ceva. Din moment ce b este doar o primitiva de tip double cu valori intregi mai mari decat decat zero, borderul poate fi creat la orice dimensiuni. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;De asemenea acest exemplu arata cum se pot pune spatii intre componete. In acest caz a fost inserat un spatiu de 20 de pixeli atat pe verticala si orizontala, pentru a separa componetele intre ele. Majoritatea layout managerilor utilizeaza atributul padding pentru a insera spatii intre componente. Folosind TableLayout, singurul lucru care trebuie facut este un rand si/sau o coloana de o anumita dimensiune si sa nu plasati nimic in acestea. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Butoanele din stanga si dreapta ocupa o singura celula si tot timpul de aceeasi dimensiune ca si celula. Butoanele de sus si jos se intind pe parcursul a cinci celule. TableLayout poate fi folosit oricand in locul lui BorderLayout si multi alti layout manageri, cu un plus considerabil de flexibilitate. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Butonul cu denumirea Center se afla in celula din centru si este centrat atat pe verticala si pe orizontala. Dat fiind faptul ca s-au utilizat optiunile de aliniere acestui buton i-au fost alocate dimensiunile din atributul preferred size. In cazul in care acest frame este micsorat foarte mult atunci butonul center se va miscora, insa niciodata nu va depasi dimensiunile precizate in preferred size indiferent cat de mare va fi fereastra. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://3.bp.blogspot.com/_h_KMvWvn4DA/SgwqDKQsnKI/AAAAAAAAAvo/OGsFvjLARio/s400/lec+-+tl2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5335685892309556386" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 176px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Dupa cum se poate observa acest exemplu utilizeaza TableLayout pentru a crea un border de b pixeli in jurul componetelor de interfata grafica. Acesta este o tehnica usor de folosit pentru a crea un border pe un container care nu dispune de asa ceva. Din moment ce b este doar o primitiva de tip double cu valori intregi mai mari decat decat zero, borderul poate fi creat la orice dimensiuni. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;De asemenea acest exemplu arata cum se pot pune spatii intre componete. In acest caz a fost inserat un spatiu de 20 de pixeli atat pe verticala si orizontala, pentru a separa componetele intre ele. Majoritatea layout managerilor utilizeaza atributul padding pentru a insera spatii intre componente. Folosind TableLayout, singurul lucru care trebuie facut este un rand si/sau o coloana de o anumita dimensiune si sa nu plasati nimic in acestea. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Butoanele din stanga si dreapta ocupa o singura celula si tot timpul de aceeasi dimensiune ca si celula. Butoanele de sus si jos se intind pe parcursul a cinci celule. TableLayout poate fi folosit oricand in locul lui BorderLayout si multi alti layout manageri, cu un plus considerabil de flexibilitate. &lt;/div&gt;&lt;/div&gt;&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/301324996193914987-7574256936996719482?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7574256936996719482/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/table-layout-partea-2.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7574256936996719482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7574256936996719482'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/table-layout-partea-2.html' title='Table Layout - partea 2'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_h_KMvWvn4DA/SgwqDKQsnKI/AAAAAAAAAvo/OGsFvjLARio/s72-c/lec+-+tl2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-4376471437963908613</id><published>2009-05-12T07:57:00.000-07:00</published><updated>2009-05-14T08:04:32.214-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><title type='text'>Microsoft Excel - Grafice combinate</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LxVkMPSPIGs/SgwyxldcUSI/AAAAAAAAAA0/czHTcUy-sqg/s1600-h/3.png"&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;Microsoft Excel are o istorie lunga, ce evolueaza si se schimba in mod constant.  Asadar, sper ca urmatoarele indicatii va vor fi de ajutor. Excel ofera o larga varietate de grafice, cum ar fi cele de tip: Line, Column, Area, Bar, Scatter sau Pie. Poti combina mai multe tipuri de diagrame pe acelasi grafic prin atribuirea acestora unor serii de date diferite. Acestea sunt graficele combinate, sau “Combo Charts”.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Iata cum cream grafice combinate. In Chart Wizard, cand alegi tab-ul Custom Types, ai doua posibilitati de alegere a unui grafic combinat: Column – Area sau Line – Column. Sa nu credeti ca acestea sunt singurele tipuri de grafice combinate ce se pot crea. De fapt, crearea de grafice combinate este foarte flexibila. Cheia este sa intelegi cum funtioneaza comenzile Chart – Chart Type. Cand selectezi aceasta comanda, ai doua posibilitati: daca selectezi o serie de date, atunci tipul graficul pe care-l alegi se aplica doar la seria selectata, iar daca selectezi totul , tipul graficului se aplica tuturor seriilor  din grafic. Insa prima varianta iti va asigura o flexibilitate mai mare.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;De exemplu, sa presupunem ca vrei sa creezi un grafic sa contina o diagrame Line, Column si Area. Incepe prin a crea un grafic tip Column. Apoi selecteaza o a doua serie si alege Chart – Chart Type. Selecteaza un grafic de tip Line pentru seria respectiva. Selecteaza si o a treia serie, repeta comanda anterioara, dar alege un grafic de tip Area. Rezultatul va fi un grafic combinat ce cuprinde trei tipuri diferite de diagrame.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Atentie, nu toate tipurile de diagrame pot fi folosite spre a crea un grafic combinat. De exemplu, Excel nu permite diagramelor 3-D sa fie folosite pentru grafice combinate.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Figura de mai jos ilustreaza, cu scop demonstrativ, un grafic ce contine cinci tipuri de diagrame. Nu cred sa existe vreo situatie care sa necesite un grafic atat de confuz :).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://2.bp.blogspot.com/_LxVkMPSPIGs/SgwyVWRWXbI/AAAAAAAAAAk/dvc36cL9UE8/s400/1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5335695000864185778" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 396px; height: 339px; " /&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://3.bp.blogspot.com/_LxVkMPSPIGs/SgwykMJUFfI/AAAAAAAAAAs/VNaRINZPkF0/s400/2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5335695255844165106" style="float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 170px; height: 135px; " /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;Iata un alt exemplu, mai aproape de realitate: previziunea intr-o firma. Aceasta apare sub forma de coloane, in timp ce valorile actuale corespund unei linii. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Daca valorile seriilor reprezentate variaza foarte mult,  sau graficul contine tipuri diferite de date, atunci va fi nevoie sa folosesti o axa Y secundara. Scala axei secundare reflecta valorile seriei asociate. De exemplu: datele de mai jos sunt din intervale diferite, au unitati de masura diferite (moneda si procente)si nu pot fi reprezentate  pe aceeasi axa.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://1.bp.blogspot.com/_LxVkMPSPIGs/SgwyxldcUSI/AAAAAAAAAA0/czHTcUy-sqg/s400/3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5335695485977776418" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 345px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Pentru a reprezenta cele doua serii pe axe diferite, trebuie mai intai sa le reprezinti pe acceasi axa. Apoi selecteaza seria ce trebuie reprezentata pe axa secundara si alege Format Data Series din meniul shortcut. Din tab-ul Axis alege optiunea Secondary Axis. Graficul va avea o axa secundara pe partea dreapta a graficului.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-4376471437963908613?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/4376471437963908613/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/microsoft-excel-grafice-combinate.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4376471437963908613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/4376471437963908613'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/microsoft-excel-grafice-combinate.html' title='Microsoft Excel - Grafice combinate'/><author><name>Sorin Stancu</name><uri>http://www.blogger.com/profile/04636234951790691644</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LxVkMPSPIGs/SgwyVWRWXbI/AAAAAAAAAAk/dvc36cL9UE8/s72-c/1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-1037861984639859151</id><published>2009-05-11T06:57:00.000-07:00</published><updated>2009-05-14T07:06:52.638-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Table Layout - partea 1</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Obiective&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Scopul acestui tutorial este de a exemplifica modul de functionare si utilitatea layout managerului TableLayout. Acest tutorial presupune cunostinte medii despre limbajul Java si despre modul de construire a interfetelor grafice folosind Swing. In cadrul sau vor fi abordate doar elementele necesare explicarii modului de utilizare a TableLyout.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;1. Ce este TableLayout?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;TableLayout este un layout manager care partitioneaza un container intr-o serie de randuri si de coloane. Intersesctia dintre un rand si o coloana formeaza o celula. Componentele adaugate containerului sunt plasate in celule. In cazul in care containerul este redimensionat atunci si celulele din acel container vor fi redimensionate, prin urmare si componetele continute de aceste celule fiind redimensionate. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://4.bp.blogspot.com/_h_KMvWvn4DA/Sgwj1jVzOfI/AAAAAAAAAvg/-j5JncI97C0/s400/lec+-+tl1.png" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 395px; height: 358px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5335679061453912562" /&gt;&lt;div style="text-align: justify;"&gt;Luam spre exemplificare un simplu element de tip JFrame impartit in patru coloane si cinci randuri. Acesta este vizibil in figura alaturata. Observati ca nu toate randurile au aceeasi inaltime. Fiecare rand poate avea propria sa inaltime. De asemenea fiecare coloana poate avea aceeasi lungime. Pe masura ce containerul este redimensionat, fiecare rand si coloana este de asemenea redimensionata corespunzator specificatiilor date. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Pe parcursul acestui tutorial orice lucru care este precizat pentru randuri este aplicabil si pentru coloane si vice versa. De exemplu, orice spunem despre inaltimea unui rand, este valabil si despre lungimea unei coloane. TableLayout este simetric ca proprietati atat pentru axa OX cat si pentru axa OY.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Randurile si coloanele sunt numerotate in cadrul ilustratiei. Observati ca indexarea coloanelor incepe de la 0. Notarea celulelor se face conform modelului (coloana, rand). Celula din stanga sus are coordonatele (0,0) si cea din dreapta jos are coordonatele (3,4). Liniile care despart randurile si celulele sunt doar la nivel logic, acestea neaparand efectiv in interfata grafica.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;2. Crearea unui TableLayout&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Figura de mai sus prezinta impartirea containerului la o dimensiunea data. Ce se intampla cu acest container atunci cand se face resize asupra lui. Asta depinde de tipul pe care l-am precizat pentru randuri si pentru coloane. Poate fi posibil ca toate coloanele sa aiba aceeasi lungime tot timpul sau de asemenea este posibil ca primele trei coloane sa fie de o lungime fixa iar cea de patra sa ocupe restul spatiului.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sunt cinci moduri in care se poate specifica lungimea unei coloane. Aceasta poate avea o valoare fixa in pixeli, un procent din spatiul total, o portiune egala cu spatiul care ramane disponibil, o lungime determinata de atributul „preferred size” al componentelor care se afla in cadrul coloanei, sau o lungime determinata de atributul „minimum size” al componentelor care se alfa in cadrul coloanei. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pentru exemplul din figura de mai sus, sa presupunem ca vrem ca toate coloanele sa aiba o lungime egala. De asemenea toate randurile vor avea o inaltime fixa mai putin randul cu indexul 1 care va ocupa spatiul care va ramane disponibil. Urmatorul cod va realiza acest acest lucru:&lt;/div&gt;&lt;div&gt;public static void createFrame ()&lt;/div&gt;&lt;div&gt;   &lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt; {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;        Frame frame = new Frame();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;        frame.setBounds (100, 100, 300, 300);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;        frame.show();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;        double size[][] =&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;            {{0.25, 0.25, 0.25, 0.25},&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;             {50, TableLayout.FILL, 40, 40, 40}};&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;        frame.setLayout (new TableLayout(size));&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Pentru crearea unui TableLayout sunt necesari doi pasi:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- primul pas : se creaza un array bidimensional de primitive de tip double, care va fi utilizat pentru a specifica lungimea coloanelor si inaltimea randurilor. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- pasul doi: un nou obiect de tip TableLayout este creat utilizand array-ul creat la primul pas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lungimile coloanelor sunt specificate la 25% sau 0.25. Toate numerele reale, aflate in intervalul [0.0 si 1.0) sunt tratate ca fiind procente. Observati ca acest interval nu cuprinde si valoarea 1. Aceasta valoare nu inseamna 100% ci 1 pixel. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Primului rand, cel cu indexul 0, ii sunt alocati exact 50 pixeli. Toate numerele intregi, mai mari decat zero sunt interpretate ca fiind valori in pixeli. Randului 1 ii este asociata constanta FILL, ceea ce inseamna ca acesta va ocupa restul spatiului disponibil. Am precizat mai sus ca procentual nu putem asocia unui element valoarea 100%, deoarece daca vom introduce valoarea 1 aceasta va fi interpretata drept 1 pixel. Folosind aceasta constanta FILL putem asocia unui element proportia de 100%.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;3. Adaugarea Componetelor&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Din momentul in care s-a construit layoutul pentru un anumit container componetele pot fi adaugate fie unei singure celule fie unui set rectangular de celule. Clasa Container contine o metoda de adaugare, semnatura acesteia fiind fiind urmatoare : &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;public void add(Component comp, Object constraints) &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Atunci cand se utilizeaza un TableLayout parametrul constraints este un obiect de tip String care specifica celula, sau celule pe care respectiva componenta le va adauga. &lt;/div&gt;&lt;div&gt;Pastrand exemplu creat anterior, pentru a aduga o componeta in celula (2,1) vom folosi urmatoare sintaxa: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;frame.add (component, "2, 1");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;O componenta definita in acel mod, va ocupa intreaga celula. Pe masura ce aceasta celula isi va mari sau micsora dimensiunile, si componenta va face acelasi lucru, cele doua avand tot timpul exact aceeasi dimensiune. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-1037861984639859151?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/1037861984639859151/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/table-layout-partea-1.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/1037861984639859151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/1037861984639859151'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/table-layout-partea-1.html' title='Table Layout - partea 1'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_h_KMvWvn4DA/Sgwj1jVzOfI/AAAAAAAAAvg/-j5JncI97C0/s72-c/lec+-+tl1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-2243194514807593999</id><published>2009-05-10T06:38:00.000-07:00</published><updated>2009-05-14T06:45:03.806-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Singleton - design pattern</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_h_KMvWvn4DA/SgwgPEf2ApI/AAAAAAAAAvY/3C5MPiiX6JU/s1600-h/singleton-300x234.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 234px;" src="http://1.bp.blogspot.com/_h_KMvWvn4DA/SgwgPEf2ApI/AAAAAAAAAvY/3C5MPiiX6JU/s400/singleton-300x234.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5335675101804626578" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;Conceptul se numeste singleton. Reprezinta o tehnica prin care se limiteaza numarul de instante ale unei clase la una singura. Cu alte cuvinte nu pot construi decat un singur obiect din aceasta clasa.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;O clasa care implementeaza conceptul de singleton arata in felul urmator:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;public class Singleton {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;  private final static Singleton INSTANCE = new Singleton();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;  // constructorul este privat si nu permite crearea unei noi&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;instante&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;  private Singleton() {}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;  // nu este obligatoriu numele getIntstance(), insa acesta se&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;foloseste de obieci&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;  public static Singleton getInstance() {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;    return INSTANCE;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;  }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Un obiect de tip Calendar se contruieste prin urmatorul apel:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;        &lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Calendar c = Calendar.getInstance();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;nu printr-un apel clasic de genul:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;        &lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; Calendar c = new Calendar();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ideea de baza este ca programul nu are nevoie de mai multe obiecte de tip Calendar. Poate avea nevoie de mai multe obiecte de tip Date (de exemplu pentru a retine atat data de acum si cea de peste 5 zile), insa este suficient un sigur obiect Calendar care sa intoarca data actuala a sistemului.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Chiar daca vom face o bucata de cod de genul:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;        &lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Calendar c1 = Calendar.getInstance();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;   Calendar c2 = Calendar.getInstance();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;   Calendar c3 = Calendar.getInstance();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;toate vor pointa catre un sigur obiect, si anume atributul static final din clasa pe care am implementat singletonul (in cazul nostru Calendar).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Tehnica de singleton se foloseste in special pentru a reduce consumul de memorie si pentru a centraliza anumite operatii catre un singur obiect.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-2243194514807593999?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/2243194514807593999/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/singleton-design-pattern.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/2243194514807593999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/2243194514807593999'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/singleton-design-pattern.html' title='Singleton - design pattern'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_h_KMvWvn4DA/SgwgPEf2ApI/AAAAAAAAAvY/3C5MPiiX6JU/s72-c/singleton-300x234.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-1589793048372284913</id><published>2009-05-09T07:32:00.000-07:00</published><updated>2009-05-14T07:34:27.663-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Activitate LEC'/><title type='text'>Frequently Asked Questions</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;La sfarsitul cursului se elibereaza o diploma, care sa ateste participarea la curs ?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Da, la sfaristul fiecarui curs urmat in cadrul Line Education Center se elibereaza cu certificat de completare a acelui curs, in care sunt precizate notilunile si conceptele care au fost sudiate pe parcursul cursului.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Ce acte sunt necesare pentru reducerea acordata sudentilor ? In cazul in care sunt student la master pot beneficia de reducere ?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Pentru reducerile aplicabile sudentilor este necesara o copie dupa carnetul de student, sau o adeverinta din partea facultatii. In categorie de reduceri intra si cei care sunt studenti la master.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Pot sa platesc in rate ?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Da. Plata se poate face fie integral, in momentul inscrierii, fie in doua transe 50% in momentul inscrierii iar restul de 50% in termen de 4 saptamani de cand a inceput cursul.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Este prezenta obligatorie ? Ce se intampla daca lipsesc de la o sedinta?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Nu, prezenta nu este obligatorie. Cursurile au o abodare modularizata, aceasta insemand ca sedintele nu sunt legate foatre mult intre ele, astfel incat in cazul in care cineva nu poate ajunge la o anumita sedinta nu va intampina dificultati prea mari.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Cum fac sa ma inscriu la un curs ?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Primul pas pentru inscriere este completarea formularului de inscriere. Dupa completarea acestuia, veti fi contactat in maxim 2 zile lucratoare de un reprezentat LEC, pentru a vi se confirma daca mai sunt locuri libere in grupa selectata. Pentru finalizarea procesului de inscriere, va trebui sa treceti pe la sediul LEC pentru a achita un minim de 50% din valoarea cursului. Locul nu este rezervat decat in momentul achitarii sumei aferente, iar inscrierile se fac in ordinea platilor si nu in ordinea completarii formularului.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;La sfarsitul cursului se va face o evaluare ?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;La sfarsitul fiecarui curs se va face o evaluare, aceasta constand intr-un proiect care va contine materia predata de-a lungul cursului.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Prin ce se diferentiza cursurile organizate de Line Education Center ?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In principal cursurie organizate de firma noasta se diferentiaza prin abordarea extrem de practica a materiei predate. Consideram ca cel mai bun mod de a invata este „learning by doing”, iar din acest motiv peste 85% din timpul acordat cursurilor este dedicat exercitiilor practice si realizarii de proiecte care sa se aproprie cat mai mult cerintelor si mdului de lucru real.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Un al doilea aspect important care diferentiaza cursurile LEC, este calitatea instructorilor care sustin cursurile. Toti acestia lucreaza in domeniul pe care il predau, acest lucru premitandu-le sa cunoasca „insighturi” despre modul de lucru real al industriei de programare, notiuni care nu pot fi gasite in tutoriale.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Nu in ultimul rand, un alt aspect foarte important este faptul ca niciodata nu se lucreaza cu grupe mai mari de 10 oameni, in acest fel trainerul putand sa se concentreze asupra fiecarui cursant in parte, sa ii raspunda la intrebari si sa il ajute. De asemenea colaborarea dintre LEC si firme de software development va poate permite sa va angajati in domeniu, in cazul in care evoluati bine pe parcursul cursului.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-1589793048372284913?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/1589793048372284913/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/frequently-asked-questions.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/1589793048372284913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/1589793048372284913'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/frequently-asked-questions.html' title='Frequently Asked Questions'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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-301324996193914987.post-5062534927723440596</id><published>2009-05-09T06:30:00.000-07:00</published><updated>2009-05-14T06:34:46.167-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>SwingLabs PDF Renderer</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_h_KMvWvn4DA/Sgwd0L_fbjI/AAAAAAAAAvQ/Dtec2AYHa00/s1600-h/pdf.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 200px;" src="http://2.bp.blogspot.com/_h_KMvWvn4DA/Sgwd0L_fbjI/AAAAAAAAAvQ/Dtec2AYHa00/s400/pdf.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5335672440936689202" /&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;SwingLabs PDF Renderer este o librarie Java pentru citirea si afisarea fisierele de tip PDF. Este un proiect opensource distribut sub licenta LGPL. Pagina oficiala a proiectului o puteti gasi &lt;a href="https://pdf-renderer.dev.java.net/"&gt;aici&lt;/a&gt; .&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Proiectul a inceput in 2003, fiind dezvoltat in cadrul SUN ca un instrument de colaborare intern denumit SUN Labs Meeting Suite. Ulterior a fost folosit pentru realizarea exporturilor in format PDF din OpenOffice. In principal permite citirea si afisarea fisierelor de tip PDF, insa pe langa citire permite si exportarea acestora in imagini tip PNG sau suprascrierea de elemente grafice peste continutul inital al documentului PDF.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Alaturi de SwingLabs PDF Renderer un alt tool Java pentru citrea/afisarea documentelor PDF este si &lt;a href="http://www.jpedal.org/"&gt;JPedal&lt;/a&gt; distribuit insa sub licenta GPL care ii limiteaza gama de aplicatii in care poate fi folosit. Pentru generarea PDF-urilor poate fi utilizat &lt;a href="http://www.lowagie.com/iText/"&gt;iText&lt;/a&gt; , insa acesta nu permite si citirea sau afisarea lor.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-5062534927723440596?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/5062534927723440596/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/swinglabs-pdf-renderer.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/5062534927723440596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/5062534927723440596'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/swinglabs-pdf-renderer.html' title='SwingLabs PDF Renderer'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_h_KMvWvn4DA/Sgwd0L_fbjI/AAAAAAAAAvQ/Dtec2AYHa00/s72-c/pdf.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-8198378926320894145</id><published>2009-05-08T07:40:00.000-07:00</published><updated>2009-05-14T07:55:37.053-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><title type='text'>Scenarii in Microsoft Excel</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LxVkMPSPIGs/Sgwwioe8bTI/AAAAAAAAAAc/Lt4IkkuP1QY/s1600-h/lec+-+excel3.png"&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;Statistica? Previziuni? Interpretari? Posibilitati multiple..  Intr-un cuvant – scenarii. Aceasta este o functie utila si importanta a Microsoft Excel folosita in analizele “what if”, deoarece poti schimba intregul output / rezultat al calculului doar prin reeditarea unei singure celule. Ai posibilitatea de a salva diferite scenarii ce te vor ajuta sa iei decizii legate de cele mai bune valori pentru calculele tale. Prin invocarea unor scenarii, le poti demonstra clientilor sau managerilor impactul diferitelor evenimente sau posibilitati. Se pot de asemenea crea scenarii ce implica modificarea valorilor din multiple celule.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Vizualizarea scenariilor te ajuta in a vedea ce impact are cresterea sau descresterea valorilor din calculele tale. Un dezavantaj al acestui proces este acela ca nu este intotdeauna usor sa restaurezi datele initiale, mai ales la modificari multiple ale celulelor. Adaugarea de scenarii workbook-ului tau va modifica datele de la care porneste, asa ce este necesar o salvare a datelor initiale. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Poti sa aplici orice scenariu oricand, iar celulele corespunzatoare se vor modifica spre valorile necesare.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Pentru a crea un scenariu, deschide aplicatia Excel. Intr-un worksheet nou, selectezi Tools – Scenarios pentru a afisa casuta Scenario Manager.  Initial, aceasta casuta va fi goala, iar pentru a adauga un scenariu se apasa Add.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://4.bp.blogspot.com/_LxVkMPSPIGs/Sgwvaorz3BI/AAAAAAAAAAM/Lo3L3NzJvNs/s400/lec+-++excel1.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 332px; height: 265px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5335691793171471378" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Scenario name&lt;/span&gt; – numele scenariului;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Changing cells&lt;/span&gt; – celulele pentru care vrei sa vezi schimbarile previzionate. Poti specifica mai multe celule, prin separarea prin “,”;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Comment&lt;/span&gt; – permite descrierea tipului de scenariu;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Prevent changes&lt;/span&gt; – impiedica user-ul sa modifice ulterior scenariul. Acesta va avea efect numai daca woksheet-ul este protejat.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Hide&lt;/span&gt; – impiedica user-ul  sa vada scenariul atunci cand workbook-ul este deschis. Acesta va avea efect numai daca woksheet-ul este protejat.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Dupa ce selectezi Ok, casuta de dialog Scenario Values va aparea. Acum ai posibilitatea sa atribui noi valori celulelor din casuta Changing Cells. Aceste valori vor fi folosite in scenariul selectat.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;img src="http://1.bp.blogspot.com/_LxVkMPSPIGs/Sgwvy-MLR0I/AAAAAAAAAAU/is4n93fCUH8/s400/lec+-+excel2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5335692211261228866" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 375px; height: 116px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Daca vrei sa creezi un nou scenariu, apasa Add din nou, si urmeaza pasii de mai sus. Cand ai terminat de creat toate scenariile dorite, alege Close din casuta Scenario Manager. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Este posibila compararea rezultatelor tuturor scenariilor, prin crearea unui summary report. Acesta se creaza prin selectarea butonului Summary din casuta de dialog Scenario manager.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://1.bp.blogspot.com/_LxVkMPSPIGs/Sgwwioe8bTI/AAAAAAAAAAc/Lt4IkkuP1QY/s400/lec+-+excel3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5335693030068088114" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 295px; height: 300px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Acesta va afisa casuta Scenario Summary, avand astfel posibilitatea de a alege dintre cele doua tipuri de summary.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Scenario summary&lt;/span&gt; – creaza un tabel normal, ce este de folos atunci cand aceleasi celule sunt folosite pentru a crea scenarii diferite.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Scenario Pivot table report&lt;/span&gt; – creaza un tabel pivot, ce estede folos cand sunt folosite celule diferite pentru a crea scenarii.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Poti vizualiza scenariul creat, selectandu-l din casuta Scenario Manager si apasand Show.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Poti sa adaugi un Scenario dialog pe toolbar, prin click dreapta pe toolbar si selectarea tab-ului Customize – Commands.  Din categoria Tools, selecteaza Scenario listbox si drag and drop pe toolbar. Inchide Customize dialog. Acum poti vedea un scenariu la alegere, prin selectarea acestuia din Scenario list.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Pentru a edita un scenariu, alege Tools, apoi Scenario. Selecteaza scenariul ce va fi modificat si apasa butonul Edit, apoi Ok. Schimba valorile dorite si apasa Ok  pentru a salva schimbarile. Pentru a vizualiza rezultatele, alege scenariul din lista, si apasa Show.&lt;/div&gt;&lt;/div&gt;&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/301324996193914987-8198378926320894145?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/8198378926320894145/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/scenarii-in-microsoft-excel.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8198378926320894145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8198378926320894145'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/scenarii-in-microsoft-excel.html' title='Scenarii in Microsoft Excel'/><author><name>Sorin Stancu</name><uri>http://www.blogger.com/profile/04636234951790691644</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LxVkMPSPIGs/Sgwvaorz3BI/AAAAAAAAAAM/Lo3L3NzJvNs/s72-c/lec+-++excel1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-8589201089382548250</id><published>2009-05-07T06:16:00.000-07:00</published><updated>2009-05-14T06:22:09.021-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>JRuby</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_h_KMvWvn4DA/Sgwa57JBIII/AAAAAAAAAvI/hVIrX-Iq1Jc/s1600-h/jrubby.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 107px; height: 88px;" src="http://3.bp.blogspot.com/_h_KMvWvn4DA/Sgwa57JBIII/AAAAAAAAAvI/hVIrX-Iq1Jc/s400/jrubby.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5335669240957575298" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://jruby.codehaus.org/"&gt;JRuby&lt;/a&gt; este o implementare open-source, bazata pe Java, a sintaxei limbajului Ruby si a librariilor aferente. Aceasta ofera simplitatea sintaxei de Ruby alaturi de avantajele oferite de interoperabilitatea cu aplicatii Java si automat portabilitatea, securitatea si librariile de clase specifice limbajului Java.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Limbajul Ruby a fost initial dezvoltat de catre &lt;a href="http://en.wikipedia.org/wiki/Yukihiro_Matsumoto"&gt;Yukihiro Matsumoto&lt;/a&gt; avand la baza Perl, SmallTalk, Eifeel si Ada. Yukihiro Matsumoto declara ca a vrut sa faca din Ruby un limbaj mai puternic decat Perl si mai orientat obiect decat Python. Scopul sau este de a fi un limbaj natural, in asa fel incat sa permita simularea realitatii cat mai bine.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ruby a inceput sa castige popularitate odata cu aparatia framework-ului Ruby on Rails, gandit in special pentru dezvoltarea cat mai rapida si agila a aplicatiilor web. Ruby on Rails a for dezvoltat &lt;a href="http://en.wikipedia.org/wiki/David_Heinemeier_Hansson"&gt;David Hanssonavand&lt;/a&gt; ca unul dintre principalele avantaje metodologiile de tip CRUD (Create, Read, Update, Delete). Foarte pe scurt ideea framework-ului este de a acoperi cat mai bine partile comune care se regasesc in orice aplicatie, precum citirea/modificarea datelor dintr-o baza de date, oferind developeri-lor posibilitatea de a se concentra doar asupra partilor specifice, unice ale aplicatiilor la care lucreaza.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Prin intermediul JRuby a fost construita si echivaventul lui Ruby on Rails folosind masina virtuala si tehnologii Java - JRuby on Rails. Combinarea celor doua tehnologii reprezinta un avantaj pentru limbajul Ruby, in acest fel Ruby avand acces si la aplicatii de tip enterprise, insa reprezinta un plus si pentru Java oferind viteza de dezvoltare si productivitatea specifice Ruby on Rails. Mai multe detalii &lt;a href="http://java.sun.com/developer/technicalArticles/scripting/jruby_nb6/index.html"&gt;aici&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-8589201089382548250?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/8589201089382548250/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/jruby.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8589201089382548250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8589201089382548250'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/jruby.html' title='JRuby'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_h_KMvWvn4DA/Sgwa57JBIII/AAAAAAAAAvI/hVIrX-Iq1Jc/s72-c/jrubby.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-7413827182541622576</id><published>2009-05-06T06:10:00.000-07:00</published><updated>2009-05-14T06:16:12.980-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Aplicatii 3D folosind Java</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_h_KMvWvn4DA/SgwYuhaC_rI/AAAAAAAAAvA/8vO8vf1VHDg/s1600-h/blog1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 369px; height: 233px;" src="http://3.bp.blogspot.com/_h_KMvWvn4DA/SgwYuhaC_rI/AAAAAAAAAvA/8vO8vf1VHDg/s400/blog1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5335666846047862450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p style="margin:0in;margin-bottom:.0001pt"&gt;&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; "&gt;&lt;span class="Apple-style-span"  style="color: rgb(102, 102, 102);  font-family:-webkit-sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Folosing Java 3D API se pot crea elemente de grafica 3D cu efecte destul de spectaculoase. Java 3D este dezvoltat in cadrul Java Community Process si ruleaza pe baza OpenGL. Pe langa suport 3D pentru sunet, API-ul ofera si o implementare foarte puternica, la nivel grafic, a conceptelor programarii orientate obiect, spre deosebire de celelate API-uri populare de OpenGL sau DirectX axate in special pe partea procedurala si modul de lucru al hardware-ului. In exemplul de mai sus obiectele grafice sunt incapsulate intr-o scena graf iar apoi scena poate fi manipulata pentru randare folosind Java 3D. Partea mai intersanta este reprezentata de cantitatea de cod foarte mica necesara pentru modificarea perspectivei. Puteti gasi &lt;a href="http://blogs.techrepublic.com.com/programming-and-development/?p=578"&gt;aici&lt;/a&gt; un articol introductiv, destul de interesant, despre cum pot fi create aplicatii grafice puternice folosind Java 3D.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-7413827182541622576?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/7413827182541622576/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/aplicatii-3d-folosind-java.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7413827182541622576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/7413827182541622576'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/aplicatii-3d-folosind-java.html' title='Aplicatii 3D folosind Java'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_h_KMvWvn4DA/SgwYuhaC_rI/AAAAAAAAAvA/8vO8vf1VHDg/s72-c/blog1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-8437280214872829183</id><published>2009-05-04T14:54:00.000-07:00</published><updated>2009-05-14T06:09:37.915-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Certificari Java</title><content type='html'>&lt;div align="center"&gt;&lt;img src="http://www.leconline.ro/themes/lt/images/blog3.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="color: rgb(102, 102, 102);   font-family:-webkit-sans-serif;font-size:13px;"&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;Fiecare dintre certificarile oferite de SUN pentru platforma Java se concentreaza pentru o anumita pozitie din ciclul de software development.&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;In prezent SUN ofera opt certificari Java, care sunt clasificate in functie de nivelul de dificultate si gradul de specealizare. Majoritatea examenelor de certificare sunt constituite din intrebari grila cu raspunsuri multiple, insa sunt si cateva pentru care este necesara si realizarea unui proiect.&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;- Sun Certified Java Associate (SCJA):&lt;/b&gt; Aceasta reprezinta entrylevel-ul pentru certificarile Java oferind garantii doar pentru conceptele fundamentale ale limbajului Java si pentru cunostintele generale ale tehnologiilor SUN&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;- Sun Certified Java Programmer (SCJP):&lt;/b&gt; Atesta cunostinte solide despre principiile limbajului Java. (Nota: nu este necesara obtinerea SCJA pentru a avea acces la SCJP)&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;- Sun Certified Java Developer (SCJD):&lt;/b&gt; Majoritatea angajatorilor se concentreaza asupra acestui tip de certificare in principal din doua motive: trebuie sa treci SCJP (indiferent de versiune) inainte de a incera sa dai SCJD. De asemenea examenul de certificare cere canditatilor sa dezvolte un proiect conform specificatiilor si sa realizae un document in care sa explice designul arhitecturii si deciziile de dezvoltare.&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;- Sun Certified Web Component Developer (SCWCD):&lt;/b&gt; Acest examen poate fi interesant pentru dezvoltatorii web care vor sa se specealizeze in tehnologii Java precum Java Server Pages (JSP) si servleturi. Este necesar SCJP pentru a avea acces la aceast examen.&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;- Sun Certified Business Component Developer (SCBCD):&lt;/b&gt; Aceasta certificare, consta doar intr-un examen, si reprezinta nucleul certificarilor pentru tehnologii J2EE. Examenul este destul de greu de trecut in cazul in care candidatul nu are deloc experienta in proiecte axate pe Enterprise JavaBeans (EJB). Pentru sustinerea examenelui este necesara certificarea SCJP. Aceasta certificare poate fi interesanta pentru angajatorii care intentioneaza sa foloseasca EJB in cadrul proiectelor.&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;- Sun Certified Developer for Java Web Services (SCDJWS):&lt;/b&gt;Certificarea SCDJWS atesta cunostintele legate de dezvoltarea serviciilor Web. Pentru obtinerea acestei certificari se da doar un examen este necesara si SCJP.&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;- Sun Certified Mobile Application Developer (SCMAD):&lt;/b&gt; SCMAD atesta cunostintele pentru dezvoltarea aplicatiilor Java pentru telefoanele mobile sau alte device-uri care suporta J2ME. Proba pentru aceasta certificare nu presupune nici un proiect ci doar un examen. De asemenea, pentru a avea acces la aceasta certificare este necesar SCJP.&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;- Sun Certified Enterprise Architect (SCEA):&lt;/b&gt; Acesta este „scopul final” al programului de certificari SUN. SCEA certifica cunostintele necesare pentru a defini arhitectura si a crea aplicatii de tip J2EE de la zero. In ciuda faptului ca este cea mai avansata certificare SUN pentru sustinerea ei nu este necesara nici o certificare anterioara, cum este cazul celor de nivel 3. Proba consta intr-un examen grila cu raspunsuri multiple, un proiect asemanator cu cel de la SCJD, insa nivelul de complexitate este mult mai mare iar pe langa acestea trebuie realizat si un eseu in care sa fie explicat modul in care a fost construita aplicatia si motivele care au stat la baza deciziilor de arhitectura si programare.&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-8437280214872829183?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/8437280214872829183/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/certificari-java.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8437280214872829183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8437280214872829183'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/certificari-java.html' title='Certificari Java'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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-301324996193914987.post-1316244135433328878</id><published>2009-05-03T06:04:00.000-07:00</published><updated>2009-05-14T06:08:55.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>JavaFX</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_h_KMvWvn4DA/SgwXzlmchbI/AAAAAAAAAu4/HBvbJ-s0oHg/s1600-h/images.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 109px; height: 124px;" src="http://1.bp.blogspot.com/_h_KMvWvn4DA/SgwXzlmchbI/AAAAAAAAAu4/HBvbJ-s0oHg/s400/images.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5335665833561327026" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;In urma cu ceva timp Sun a anuntat lansarea familiei de produse &lt;a href="http://www.sun.com/software/javafx/"&gt;JavaFx&lt;/a&gt;. Scopul acestei tehnologii este sa permita aplicatiilor scrise in Java afisarea si utilizarea continutului multimedia avansat.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Initial suita JavaFx, va cuprinde JavaFX Mobile si JavaFX Script. James Gosling, CTO in cadrul grupului de client software al Sun, considerat parintele Java, a precizat ca JavaFx nu este un limbaj de programare generalist gen C++ ci se asemana mai mult cu o combinatie dintre JavaScript si HTML.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Concurentii directi ai JavaFx vor fi Microsoft SilverLight si Adobe Flash. Prin aceste trei produse se observa o tendinta destul de clara spre medii integrate (atat Microsoft cat si Adobe si Sun concentrandu-se foarte mult si asupra dispozitivelor mobile, pe langa PC-uri) si spre a oferi devzoltatorilor medii pentru creea unor aplicatii puternice din punctul de vedere a capacitatilor multimedia si al interfetei cu utilizatorul.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-1316244135433328878?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/1316244135433328878/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/javafx.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/1316244135433328878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/1316244135433328878'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/javafx.html' title='JavaFX'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_h_KMvWvn4DA/SgwXzlmchbI/AAAAAAAAAu4/HBvbJ-s0oHg/s72-c/images.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-301324996193914987.post-8190499963668816786</id><published>2009-05-02T15:01:00.000-07:00</published><updated>2009-05-14T06:09:55.278-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Greenfoot</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_h_KMvWvn4DA/SgiiWr_gfRI/AAAAAAAAAs0/eUfZbIGpIfc/s1600-h/blog4.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 59px; height: 64px;" src="http://1.bp.blogspot.com/_h_KMvWvn4DA/SgiiWr_gfRI/AAAAAAAAAs0/eUfZbIGpIfc/s400/blog4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5334692269270269202" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"   style="color: rgb(102, 102, 102);   font-family:-webkit-sans-serif;font-size:13px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.greenfoot.org/index.html"&gt;Greenfoot&lt;/a&gt; este un proiect, initat de Sun si University of Kent, gandit ca un instrument prin intermediul caruia pot fi predate principiile programarii orientate obiect. Reprezinta o combinatie dintre un mediu de dezvoltare si un framework pentru manipularea unor elemente vizuale intr-un spatiu 2D, construit pe baza tehnologiei Java.&lt;br /&gt;&lt;/div&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;Framework-ul din greenfoot are in principal doua resposabiltati:&lt;/p&gt;&lt;ol class="lista" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; margin-left: 40px; "&gt;&lt;li style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;- sa faciliteze crearea de reprezentari grafice pentru un obiect si al comportamentului acestuia&lt;/li&gt;&lt;li style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;- sa controleze controleze executia unui ciclu de simulare (start, stop si descrierea actiunilor pentru fiecare pas).&lt;/li&gt;&lt;/ol&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;Pentru a reusi acest lucru framework-ul pune la dispozitie o clasa de baza - GreenfootObject care trebuie sa fie mostenita de toate celelate obiecte pentru care se doreste o reprezentare vizuala. Metodele cele mai importante care trebuie sa fie implementate sunt getImage(), care returezeaza imagina prin care este reprezentat obiectul si act(), metoda care descrie comportamentul acestuia.&lt;/p&gt;&lt;p style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; padding-bottom: 15px; "&gt;Greenfoot a fost creat prentru a putea fi utilizat in predarea notiunilor de programre. Ideea de baza este ca stundetii pot avea foarte usor acces la un mediu interactiv, comportamentul codului scris putand lua foarte usor o forma vizuala.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/301324996193914987-8190499963668816786?l=line-education-center.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://line-education-center.blogspot.com/feeds/8190499963668816786/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://line-education-center.blogspot.com/2009/05/greenfoot.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8190499963668816786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/301324996193914987/posts/default/8190499963668816786'/><link rel='alternate' type='text/html' href='http://line-education-center.blogspot.com/2009/05/greenfoot.html' title='Greenfoot'/><author><name>Daniel Nastase</name><uri>http://www.blogger.com/profile/17035716166284007092</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_h_KMvWvn4DA/SgiiWr_gfRI/AAAAAAAAAs0/eUfZbIGpIfc/s72-c/blog4.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
