<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Luxian&#039;s Blog &#187; webdevelopment</title>
	<atom:link href="http://www.luxian.ro/categories/webdevelopment/feed" rel="self" type="application/rss+xml" />
	<link>http://www.luxian.ro</link>
	<description>muzică, mașini, tehnologie și divertisment</description>
	<lastBuildDate>Thu, 02 Feb 2012 07:21:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cum să instalezi PECL uploadprogress pentru Drupal în Ubuntu</title>
		<link>http://www.luxian.ro/webdevelopment/cum-sa-instalezi-pecl-uploadprogress-pentru-drupal-in-ubuntu-1582.html</link>
		<comments>http://www.luxian.ro/webdevelopment/cum-sa-instalezi-pecl-uploadprogress-pentru-drupal-in-ubuntu-1582.html#comments</comments>
		<pubDate>Sun, 29 Jan 2012 23:32:12 +0000</pubDate>
		<dc:creator>Luxian</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.luxian.ro/?p=1582</guid>
		<description><![CDATA[Tot timpul am crezut că e ceva mai complicat, însă e foarte simplu: sudo apt-get install php5-dev php-pear sudo pecl install uploadprogress După aceea trebuie doar să mai adăugați linia următoare în fișierul php.ini extension=uploadprogress.so Puteți face asta cu: sudo nano /etc/php5/apache2/php.ini Nu știu dacă este necesar, însă pentru a restarta apache-ul folosiți: sudo service [...]]]></description>
			<content:encoded><![CDATA[<p>Tot timpul am crezut că e ceva mai complicat, însă e foarte simplu:</p>
<pre style="padding-left: 30px;">sudo apt-get install php5-dev php-pear
sudo pecl install uploadprogress</pre>
<p>După aceea trebuie doar să mai adăugați linia următoare în fișierul php.ini</p>
<pre style="padding-left: 30px;">extension=uploadprogress.so</pre>
<p>Puteți face asta cu:</p>
<pre style="padding-left: 30px;">sudo nano /etc/php5/apache2/php.ini</pre>
<p><del datetime="2012-01-30T01:25:55+00:00">Nu știu dacă este necesar, însă</del> pentru a restarta apache-ul folosiți:</p>
<pre style="padding-left: 30px;">sudo service apache2 restart</pre>
<p>Verificat și testat pe Ubuntu 11.10. <a href="http://perlucida.com/blog/software/howto-install-pecl-uploadprogress-indicator-for-drupal-on-ubuntu-904-jaunty" target="_blank">Sursa</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luxian.ro/webdevelopment/cum-sa-instalezi-pecl-uploadprogress-pentru-drupal-in-ubuntu-1582.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal 7: Layout-uri diferite în funcție de context (Omega Themes, Delta &amp; Context Modules)</title>
		<link>http://www.luxian.ro/webdevelopment/drupal-7-layout-uri-diferite-in-functie-de-context-omega-themes-delta-context-modules-1505.html</link>
		<comments>http://www.luxian.ro/webdevelopment/drupal-7-layout-uri-diferite-in-functie-de-context-omega-themes-delta-context-modules-1505.html#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:54:06 +0000</pubDate>
		<dc:creator>Luxian</dc:creator>
				<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.luxian.ro/?p=1505</guid>
		<description><![CDATA[Am găsit un video destul de interesant care explică cum poți implementa layouturi diferite în Drupal 7. Pe scurt ai nevoie de următoarele: Omega: Responsive HTML5 Base Theme Delta: Delta allows you, via the Context module to make duplicates of your theme settings for any context on your site. Context: Context allows you to manage [...]]]></description>
			<content:encoded><![CDATA[<p>Am găsit un video destul de interesant care explică cum poți implementa layouturi diferite în Drupal 7. Pe scurt ai nevoie de următoarele:</p>
<ul>
<li><a href="http://drupal.org/project/omega" target="_blank">Omega</a>: Responsive HTML5 Base Theme</li>
<li><a href="http://drupal.org/project/delta" target="_blank">Delta</a>: Delta allows you, via the Context module to make duplicates of your theme settings for any context on your site.</li>
<li><a href="http://drupal.org/project/context" target="_blank">Context</a>: Context allows you to manage contextual conditions and reactions for different portions of your site.</li>
</ul>
<p><iframe src="http://player.vimeo.com/video/18686603" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p><a href="http://himerus.com/blog/himerus/omega-intro-2-delta-module-contextual-theme-settings#screencast" target="_blank">via</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luxian.ro/webdevelopment/drupal-7-layout-uri-diferite-in-functie-de-context-omega-themes-delta-context-modules-1505.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game developer</title>
		<link>http://www.luxian.ro/webdevelopment/game-developer-1480.html</link>
		<comments>http://www.luxian.ro/webdevelopment/game-developer-1480.html#comments</comments>
		<pubDate>Thu, 15 Dec 2011 10:51:21 +0000</pubDate>
		<dc:creator>Luxian</dc:creator>
				<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.luxian.ro/?p=1480</guid>
		<description><![CDATA[De când am început să învăț programare (Pascal) m-am tot gândit cum a fi să-mi scriu primul meu joc. Am avut mai multe idei, însă niciodată nu am făcut nimic concret. Am încercat să citesc mai mult pe această temă, însă nimic. La ultima întâlnire de Code Retreat (&#8220;The Timișoara Agile Software Meetup Group&#8220;) la [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.luxian.ro/wp-content/uploads/2011/12/mr_9999_brick_game_9999_in_1.jpg"><img class=" wp-image-1498 alignleft" title="Brick Game 9999 in 1" src="http://www.luxian.ro/wp-content/uploads/2011/12/mr_9999_brick_game_9999_in_1.jpg" alt="Brick Game 9999 in 1" width="224" height="184" /></a></p>
<p>De când am început să învăț programare (Pascal) m-am tot gândit cum a fi să-mi scriu primul meu joc. Am avut mai multe idei, însă niciodată nu am făcut nimic concret. Am încercat să citesc mai mult pe această temă, însă nimic.</p>
<p>La ultima întâlnire de Code Retreat (&#8220;<a href="http://www.meetup.com/The-Timisoara-Agile-Software-Meetup-Group/" target="_blank">The Timișoara Agile Software Meetup Group</a>&#8220;) la care am participat (singura de altfel), s-au propus spre rezolvare 2 probleme: <a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life" target="_blank">Conway&#8217;s Game of Life</a> și Tetris. Împreună cu <a href="http://hdragomir.com/" target="_blank">Horia</a> am reușit să implementăm Game of Life folosing Javascript aplicând <a href="http://en.wikipedia.org/wiki/Pair_programming" target="_blank">pair programming</a> și <a href="http://en.wikipedia.org/wiki/Test-driven_development" target="_blank">TDD</a>. Nu am reușit să găsim o metodă simplă de a implementa tetris și am renunțat.</p>
<p>Săptămâna trecut am zis că nu ar strica să ies din routina de webdeveloper (unde mai tot timpul am impresia că fac aceleași lucruri prea puțin modificate de fiecare dată), am început să lucrez la o versiune proprie de Tetris în Javascript. Am lucrat vreo 3 zile, câte 2-3 ore pe zi până să reușesc să-l fac <a href="http://dl.dropbox.com/u/4086326/tetris/index.html" target="_blank">jucabil</a>.</p>
<p style="text-align: center;"><a href="http://www.luxian.ro/wp-content/uploads/2011/12/Tetris.png"><img class="size-full wp-image-1496 aligncenter" title="Tetris" src="http://www.luxian.ro/wp-content/uploads/2011/12/Tetris.png" alt="Tetris game preview" width="329" height="253" /></a></p>
<p>Concluziile după acest mic experiment:</p>
<p>1. Să faci un joc oricât de simplu e ceva mai greu decât ai fi tentat să crezi prima oară. Ca webdeveloper nu lucrez decât cu interfețe grafice simple, elemente și acțiuni bine definite. În joc însă lucrurile sunt altfel, trebuie să te gândești mai mult la cum să simulezi realitatea (gravitație, colisiunea cu pereți)</p>
<p>2. Javascript e un limbaj puțin mai ciudat din punctul meu de vedere. Am învățat cu ocazia asta mai multe despre OOP în Javascript și câteva lucruri noi despre jQuery</p>
<p>3. Mi-ar fi prins bine o funcție wait() în javascript pentru loop-ul principal.</p>
<p>O să continui să experimentez game developmentul. Următorul joc cred că o să fie Snake (ca pe telefoanele Nokia), apoi o să continui cu <a href="http://www.codeproject.com/KB/directx/SuperBrickBreaker.aspx" target="_blank">Escape</a>.</p>
<p>Dacă totul merge bine, o să încerc după toate astea să fac și Pac-Man, cel mai simplu joc în care trebuie să implementezi <a href="http://en.wikipedia.org/wiki/Artificial_intelligence" target="_blank">AI</a>. Apropo, știați că în Pac-Man există <a href="http://en.wikipedia.org/wiki/Pac-Man#Enemies" target="_blank">patru tipuri diferite</a> de comportament al adversarilor?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luxian.ro/webdevelopment/game-developer-1480.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN 1.7 &#8211; Un update important</title>
		<link>http://www.luxian.ro/webdevelopment/svn-1-7-un-update-important-1459.html</link>
		<comments>http://www.luxian.ro/webdevelopment/svn-1-7-un-update-important-1459.html#comments</comments>
		<pubDate>Fri, 02 Dec 2011 09:34:59 +0000</pubDate>
		<dc:creator>Luxian</dc:creator>
				<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.luxian.ro/?p=1459</guid>
		<description><![CDATA[Zilele trecute s-a lansat versiunea 1.7 de la SVN. Un update important pentru SVN care se luptă să țină pasul cu Git. Dintre noutăți: un singur folder .svn (nu mai avem câte unul în fiecare subfolder) faster server operations o nouă comandă svn patch (aplici patch-uri direct, fără să mai ai nevoie de alte softuri) [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.luxian.ro/wp-content/uploads/2011/12/svn-name-banner.jpg"><img class="aligncenter size-full wp-image-1463" title="Subversion" src="http://www.luxian.ro/wp-content/uploads/2011/12/svn-name-banner.jpg" alt="" width="320" height="80" /></a></p>
<p>Zilele trecute s-a lansat versiunea 1.7 de la SVN. Un update important pentru SVN care se luptă să țină pasul cu Git. Dintre noutăți:</p>
<ul>
<li>un singur folder <em>.svn</em> (nu mai avem câte unul în fiecare subfolder)</li>
<li>faster server operations</li>
<li>o nouă comandă <em>svn patch</em> (aplici patch-uri direct, fără să mai ai nevoie de alte softuri)</li>
</ul>
<p>Restul le găsiți <a href="http://subversion.apache.org/docs/release-notes/1.7.html" target="_blank">aici</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luxian.ro/webdevelopment/svn-1-7-un-update-important-1459.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Înscrieri GeekMeet24</title>
		<link>http://www.luxian.ro/webdevelopment/inscrieri-geekmeet24-1255.html</link>
		<comments>http://www.luxian.ro/webdevelopment/inscrieri-geekmeet24-1255.html#comments</comments>
		<pubDate>Wed, 09 Feb 2011 11:30:55 +0000</pubDate>
		<dc:creator>Luxian</dc:creator>
				<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.luxian.ro/?p=1255</guid>
		<description><![CDATA[Au început înscrierile pentru GeekMeet24. Dacă doriți să participați, vă puteți înscrie aici. Despre proiectele înscrise, am mai vorbit aici, însă găsiți totul mult mai fain explicat la Cristina pe blog. Să sperăm că ne vedem acolo!]]></description>
			<content:encoded><![CDATA[<p>Au început înscrierile pentru GeekMeet24. Dacă doriți să participați, vă puteți înscrie <a href="http://geekmeet.ro/timisoara/2011/02/07/inscrieri-pentru-geekmeet-24/" target="_blank">aici</a>.</p>
<p>Despre proiectele înscrise, am mai vorbit <a href="http://www.luxian.ro/general/geek-meet-15-1185.html" target="_blank">aici</a>, însă găsiți totul mult mai fain explicat la <a href="http://cristinatm.net/2011/02/08/inscrie-te-la-geekmeet24/" target="_blank">Cristina</a> pe blog.</p>
<p>Să sperăm că ne vedem acolo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luxian.ro/webdevelopment/inscrieri-geekmeet24-1255.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCRUM</title>
		<link>http://www.luxian.ro/webdevelopment/scrum-1179.html</link>
		<comments>http://www.luxian.ro/webdevelopment/scrum-1179.html#comments</comments>
		<pubDate>Sat, 29 Jan 2011 13:20:01 +0000</pubDate>
		<dc:creator>Luxian</dc:creator>
				<category><![CDATA[webdevelopment]]></category>
		<category><![CDATA[Agile Software Development]]></category>
		<category><![CDATA[SCRUM]]></category>

		<guid isPermaLink="false">http://www.luxian.ro/?p=1179</guid>
		<description><![CDATA[Wikipedia zice: Scrum is an iterative, incremental methodology for project management often seen in agile software development, a type of software engineering. Although Scrum was intended for management of software development projects, it can be used to run software maintenance teams, or as a general project/program management approach Iar pentru cei interesaţi, am dat şi [...]]]></description>
			<content:encoded><![CDATA[<p>Wikipedia <a href="http://en.wikipedia.org/wiki/SCRUM" target="_blank">zice</a>:</p>
<blockquote><p>Scrum is an iterative, incremental methodology for project management often seen in agile software development, a type of software engineering.</p>
<p>Although Scrum was intended for management of software development projects, it can be used to run software maintenance teams, or as a general project/program management approach</p></blockquote>
<p>Iar pentru cei interesaţi, am dat şi de un video explicativ pe <a href="http://agile.dzone.com/news/scrum-under-10-minutes" target="_blank">DZone</a>:</p>
<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="560" height="345" src="http://www.youtube.com/embed/Q5k7a9YEoUI" frameborder="0" allowFullScreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luxian.ro/webdevelopment/scrum-1179.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Colaborare nu înseamnă întrerupere</title>
		<link>http://www.luxian.ro/webdevelopment/colaborare-nu-inseamna-intrerupere-1133.html</link>
		<comments>http://www.luxian.ro/webdevelopment/colaborare-nu-inseamna-intrerupere-1133.html#comments</comments>
		<pubDate>Tue, 11 Jan 2011 18:46:16 +0000</pubDate>
		<dc:creator>Luxian</dc:creator>
				<category><![CDATA[linkification]]></category>
		<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.luxian.ro/?p=1133</guid>
		<description><![CDATA[Un video interesant văzut la Radu Ceucă pe blog. Idei esenţiale: colaborare nu înseamnă întrerupere produsele de calitate sunt făcute de către echipe mici nu poţi avea şi colaborare şi control şendiţele sunt simptome ale problemelor (cu cât ai mai multe şedinţe, cu atât ai mai multe probleme) Pentru cei care nu ştiţi de 37 [...]]]></description>
			<content:encoded><![CDATA[<p>Un video interesant văzut la <a href="http://blog.raduceuca.com/2011/01/10/suna-telefoanele-ca-dracii-scade-productivitatea-cu-sacii/" target="_blank">Radu Ceucă</a> pe blog.</p>
<p>Idei esenţiale:</p>
<ul>
<li>colaborare nu înseamnă întrerupere</li>
<li>produsele de calitate sunt făcute de către echipe mici</li>
<li>nu poţi avea şi colaborare şi control</li>
<li>şendiţele sunt simptome ale problemelor (cu cât ai mai multe şedinţe, cu atât ai mai multe probleme)</li>
</ul>
<p><object id="VideoPlayback" style="width: 400px; height: 326px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://video.google.com/googleplayer.swf?docid=8871080716064865008&amp;hl=en&amp;fs=true" /><param name="allowfullscreen" value="true" /><embed id="VideoPlayback" style="width: 400px; height: 326px;" type="application/x-shockwave-flash" width="100" height="100" src="http://video.google.com/googleplayer.swf?docid=8871080716064865008&amp;hl=en&amp;fs=true" allowfullscreen="true"></embed></object></p>
<p>Pentru cei care nu ştiţi de 37 signals, ei sunt cei care au construit <a href="http://en.wikipedia.org/wiki/Basecamp_%28software%29" target="_blank">basecamp</a>.</p>
<p>via Radu B.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luxian.ro/webdevelopment/colaborare-nu-inseamna-intrerupere-1133.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Securitate WEB: Cum să îţi protejezi conturile de FTP</title>
		<link>http://www.luxian.ro/webdevelopment/securitate-web-cum-sa-iti-protejezi-conturile-de-ftp-622.html</link>
		<comments>http://www.luxian.ro/webdevelopment/securitate-web-cum-sa-iti-protejezi-conturile-de-ftp-622.html#comments</comments>
		<pubDate>Thu, 15 Oct 2009 06:51:09 +0000</pubDate>
		<dc:creator>Luxian</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[tips'n tricks]]></category>
		<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.luxian.ro/?p=622</guid>
		<description><![CDATA[Un lucru des neglijat de webmasteri este clientul de FTP folosit la transferul de fisiere. Un client de ftp bun te poate scuti de neplăcerile cauzate de anumiţi viruşi pe când un client prost te transformă în victimă sigură. Recomandările mele în această privinţă ar fi: încercaţi să folosiţi pe cât posibili protocolul sftp:// (informaţiile [...]]]></description>
			<content:encoded><![CDATA[<p>Un lucru des neglijat de webmasteri este clientul de FTP folosit la transferul de fisiere. Un client de ftp bun te poate scuti de neplăcerile cauzate de anumiţi viruşi pe când un client <em>prost</em> te transformă în victimă sigură.</p>
<p>Recomandările mele în această privinţă ar fi:</p>
<ul>
<li>încercaţi să folosiţi pe cât posibili protocolul sftp:// (informaţiile sunt criptate şi nimeni nu vă poate &#8220;spiona&#8221;)</li>
<li>schimbaţi-vă parola de la contul de ftp periodic</li>
<li>folosiţi un client ftp avansat (recomand cu încredere <a href="http://filezilla-project.org/download.php?type=client" target="_blank">FileZilla Client</a>)</li>
</ul>
<p>Din fericire majoritatea nu au întâmpinat până acum probleme de securitate din cauza asta. Eu, şi alte cunoştinţe, am fost victima unui astfel de atac, care se manifesta prin modificare tutor fişierelor php de pe server care conţineau în nume <em>main</em> sau <em>index</em> şi adăugarea de cod aiurea (iframe-uri ascunse care încărcau site-uri virusate).</p>
<p>Lucrurile se petreceau în felul următor. Eu mă conectam la la ftp folosind Total Commander, cineva din reţea avea un virus care monitoriza traficul şi fura conturile de ftp. După ce fura datele de autentificare pe ftp, se conecta la server şi începea să caute fişierele php în care introducea codul maliţios.</p>
<p>De atunci eu nu mai folosesc Total Commander pentru ftp şi îmi schimb parola de ftp periodic.</p>
<p>Probabil vă întrebaţi de ce dau vina pe TotalCommander, ei bine, pentru că virusul de manifesta numai după ce mă conectam cu TotalCommander (da, am fost virusat de mai multe ori la rând până să îmi dau seama cum pot să ma protejez).</p>
<p>Dacă aţi fost cumva victima unui astfel de atac, am postat mai de mult un script care poate <a href="http://www.luxian.ro/php/how-to-search-in-files-on-ftp-remove-php-infections-28.html" target="_blank">căuta fişierele infectate pe ftp</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luxian.ro/webdevelopment/securitate-web-cum-sa-iti-protejezi-conturile-de-ftp-622.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cum să faci un site compatibil cu toate browserele populare</title>
		<link>http://www.luxian.ro/webdevelopment/cum-sa-faci-un-site-compatibil-cu-toate-browserele-populare-432.html</link>
		<comments>http://www.luxian.ro/webdevelopment/cum-sa-faci-un-site-compatibil-cu-toate-browserele-populare-432.html#comments</comments>
		<pubDate>Fri, 02 Oct 2009 12:10:22 +0000</pubDate>
		<dc:creator>Luxian</dc:creator>
				<category><![CDATA[webdevelopment]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css reset]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html validator]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.luxian.ro/?p=432</guid>
		<description><![CDATA[Ştim cu toţi avantajele de a avea o pagină web compatibilă cu toate browserele. Cu toate acestea, puţin web-designeri reuşesc să facă site-uri compatibile cu majoritatea browserelor populare. Cauzele pentru lipse de compatibilităţi sunt multe: browsere proaste (multă &#8220;sănătate&#8221; creatorilor Internet Explorer) webdesigneri lipsiţi de experienţă (se lucrează pe bani puţini de obicei, cei buni [...]]]></description>
			<content:encoded><![CDATA[<p>Ştim cu toţi avantajele de a avea o pagină web compatibilă cu toate browserele. Cu toate acestea, puţin web-designeri reuşesc să facă site-uri compatibile cu majoritatea browserelor populare.</p>
<p>Cauzele pentru lipse de compatibilităţi sunt multe:</p>
<ol>
<li>browsere proaste (multă &#8220;sănătate&#8221; creatorilor Internet Explorer)</li>
<li>webdesigneri lipsiţi de experienţă (se lucrează pe bani puţini de obicei, cei buni preferă să se reprofileze şi astfel munca ajunge să fie făcută de persoane lipsite de experienţă)</li>
<li>ignorarea standardelor şi  abuzarea de <em>dirty trick</em>-uri în design</li>
</ol>
<p>Daca punctul 1 nu ţine de programator, şi nu se poate face mare lucru, restul cauzelor pot fi uşor înlăturare. De aceea, am să descriu paşi pe care eu îi urmez pe parcusul creării unui design html compatibil cu toate browserele.</p>
<h3>1. Standardele W3C</h3>
<p>Toţi cei care lucrează ca designeri web au pretenţia ca browserele să le citească gândurile şi să afişeza paginile create aşa cum vor ei, toate aste fără ca ei să ţină cont de regulile limbajului. Atunci când tu nu îţi validezi pagina, de ce ai pretenţia ca browserul să se comporte exemplar?</p>
<p>Din punctul meu de vedere, nu poţi da vina pe browser cât timp pagina ta nu e validă. Chiar dacă erorile nu ţin neapărat de eroarile tale. E o chestie de bun simţ şi după ce o să începi să o aplici o să conştientizezi multe din greşelile pe care le faceai fără să-ţi dai seama. Un motiv în plus, e faptul că e foarte uşor să crezi o pagină cu cod valid dacă eşti foarte puţin atent pe parcusul dezvoltării.</p>
<p>Mulţi preferă să îţi valideze paginile după ce au terminat de creat. Lucru pe care nu-l recomand nimănui, mai ales celor care sunt la început cu studiul standardelor. E foarte greu să validezi un cod gata creat, modificările pe care trebuie să le faci s-ar putea să necesită multă muncă.  Aşa că cel mai simplu e să-ţi validezi codul pas cu pas pe parcusul scrieri codului. Lucru deloc complicat, dacă ai instalat <a href="https://addons.mozilla.org/en-US/firefox/addon/249" target="_blank">Html Validator</a>. O să ai în permanenţă o iconiţă în bara de status a browserului care te avertizează când scrii prostii. Plus că îţi oferă nişte <em>features</em> extra în fereastră de vizualizare a codului sursă (înclusiv lista cu erorile descoperite şi explicaţi / sfaturi cu privire la fiecare eroare). So&#8230; creare de cod valid e joacă de copil cu extensia asta instalată.</p>
<h3>2. XHTML sau HTML</h3>
<p>Dilema asta are legătură punctul anterior, dar o consider destul de importantă aşa că merită să fie evidenţiată.<br />
Momentan, în webdesing există <em>trendul</em> XHTML. Toată lumea e super mega încântată de acest standard dar uită nişte detalii. Nu are rost să dezbat problema care a fost dezbătută acum mult timp de către alţii. Detalii găsiţi <a href="http://hixie.ch/advocacy/xhtml" target="_blank">aici</a>. Ideea de bază e că de multe ori XHTML vine la pachet cu câteva <em>issues</em> pe care mulţi nu le ştiu, şi în practică nu ai nevoie de XHTML, putând folosi la fel de bine limbajul HTML corect formatat.</p>
<p>Personal recomand folosirea standardului HTML 4.01 Transitional:</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD HTML 4.01 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/html4/loose.dtd&#8221;&gt;</p>
<p>Sintaxa este la fel ca cea de la XHTML, exceptând faptul că în secţiunea head nu se mai închi tag-urile gen <em>link. </em>Adică în loc de &lt;link &#8230; /&gt; o să folosiţi doar &lt;link &#8230;&gt;.</p>
<p>Regulile CSS sunt aplicate cu aceiaşi stricteţe ca şi la doctype-ul xhtml, asta ca să nu las loc de întrebare pentru cei care folosesc doctype-ul de xhtml din cauza asta.</p>
<h3>3. CSS Reset</h3>
<p>Toţi ştim că valorile default la atributele CSS diferă de la browser la browser. Aşa ca un CSS Reset te ajută să le aduci la un numitor comun. În plus de asta, te obligă uneori să defineşti unele atribute în mod express. De exemplu atributul <em>margin </em>la paragrafe este 0, şi dacă vrei ca textul tău să arate frumos, o să trebuiască să-l defineşti tu. În caz că nu foloseai CSS Reset, erai tentat să laşi valoare default, care diferă foarte mult de la browser la browser.</p>
<p>De asemenea te scuteşte de multe probleme de design apărute din cauza valorilor default a unor browsere. Exemplu: cine se gândea că tag-ul &lt;form&gt; are <em>margin</em> în IE? Adică un element invizibil care îţi strică designul şi pierzi o grămadă de timp să vezi care e buba.</p>
<p>Până acum am folosit numai CSS Reset-ul oferit <a href="http://meyerweb.com/eric/tools/css/reset/" target="_blank">aici</a>. Se găsesc pe net mai multe variante, dar majoritatea au la bază acest css reset.</p>
<h3>4. Probleme specifice Internet Explorer 6</h3>
<p>Din toată familia de browsere Internet Explorer, cea mai veche versiune demnă de luat în calcul e Internet Explorer 6. Versiunile mai vechi chiar nu cred că mai sunt folosite, din moment ce Internet Explorer 6 vine gata instalat pe Windowx XP, deducem că ar trebui să ai Windows &#8217;98 sau Millenium care vin cu versiuni mai vechi de Internet Explorer, ceea ce e foarte puţin probabil. Utilizatorii de Internet Explorer pe Mac nu cunosc, au deja Safari, nu văd de ce ar mai folosi Internet Explorer.</p>
<p>Dintre toate versiuniele 6, 7 şi 8, versiune 6 e cea mai problematică pentru designeri. Nu cunoaşte multe reguli de CSS, si cel mai grav nu afişează PNG-urile corect. Probleme însă sunt destul de vechi, şi între timp s-au descoperit rezolvări la majoritatea din ele, de exemplu:</p>
<ul>
<li><strong>PNG Fix</strong>: aici există mai multe soluţii, eu folosesc varianta <a href="http://www.twinhelix.com/css/iepngfix/" target="_blank">asta</a>. am observat că mai există şi alte metode, unele chiar puţin mai elegante aparent, dar nu am testat nimic altceva până acum, aşa că nu pot să recomand. Dacă ştiţi alternativă mai bună la asta, vă rog să-mi spuneţi.</li>
<li><strong>min-height</strong>: printre tagurile nerecunoscute de IE 6 se numără şi acesta. Cea mai simplă şi elegantă  soluţie pentru a rezolva lipsa acestui atribut e codul de mai jos, care se bazează pe faptul că IE6 nu ştie de <strong>!important</strong> şi că el redimensionează automat containerul chiar dacă are height-ul setat:
<ul>
<li>min-height: 100px;</li>
<li>height: auto !important;</li>
<li>height: 100px;</li>
</ul>
</li>
</ul>
<p>Dacă o să-mi mai amintesc, o să mai notez aici şi alte soluţii găsite pentru problemele Internet Explorer 6.</p>
<p>Şi ca să nu termin în ton pesimist acest capitol, menţionez că sunt mulţumit de felul cum Internet Explorerul se descurcă cu poziţionările absolute şi relative. Nu ştiu de ce, dar aveam o impresie foarte proastă despre el la capitolul ăsta. Se pare că nu e chiar aşa.</p>
<h3>5. Testarea</h3>
<p>Un lucru foarte important şi des neglijat sau făcut în grabă este testarea. Este foarte important să verifici designul în toate browserele cât mai des. După fiecare bucată de cod scrisă trebuie să testezi. Ştiu că pare un proces mâncător de timp, dar te scuteşte de timp pierdut cu debugging-ul atunci când apar probleme. De ce zic asta? Pentru că atunci când apare o eroare, eşti sigur că este în bucata de cod scrisă de la ultima testare. Cu cât testezi mai des cu atât bucata aia de cod va fi mai mică, deci econimiseşti timp cu căutatul erorii.</p>
<p>Ordine de testare, adoptată de mine este următoarea:</p>
<ol>
<li>Firefox: browserul de bază, aici testez prima dată codul scris. Nu încep testele în alte browsere înainte să meargă bine. De asemenea tot aici trebuie testată şi validitatea codului înainte de a merge mai departe cu testele.</li>
<li>Internet Explorer, cele 3 versiuni importante: 6,7 şi 8</li>
<li>Chrome &#8211; până acum nu am avut deloc probleme cu aici.</li>
<li>Opera</li>
<li>Safari, deşi nu mai este neapărat nevoie, din moment ce împarte acelaşi engine ca şi Chrome.</li>
</ol>
<h3>6. Don&#8217;t</h3>
<p>Lucruri pe care nu ar trebui să le faci, atunci când dezvolţi o pagină compatibilă cu toate browserele este să scrii cod separat pentru fiecare browser în parte. Cei care fac acest lucru abuzează de <em>conditional comments </em> recunoscute de Internet Explorer pentru a rescrie aproape tot CSS-ul. Cea mai urâtă versiune de <em>don&#8217;t</em> design întâlnită folosea php ca să genereze cod html diferit pentru browserele cu probleme.</p>
<p>De asemenea, trebuie evitate <em>dirty trick</em>-urile. Încercaţi să scrieţi numai cod valid. Evitaţi probleme folosind tehnici elegante, cum este cea prezentată mai sus cu min-height. Nu folosiţi w_idth ştiind ca IE îl recunoaşte pentru a da dimensiuni diferite pentru IE.</p>
<p>De când am început să folosesc CSS Reset nu am mai folosit <em>conditional elements</em> şi nici un alt trick pentru a trata diferit browserele. Singura utilitate a <em>conditional comments</em> e folosirea PNG FIX-ului în Internet Explorer 6.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luxian.ro/webdevelopment/cum-sa-faci-un-site-compatibil-cu-toate-browserele-populare-432.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Cum să-ţi pregăteşti PC-ul pentru webdesign</title>
		<link>http://www.luxian.ro/webdevelopment/cum-sa-ti-pregatesti-pc-ul-pentru-webdesign-455.html</link>
		<comments>http://www.luxian.ro/webdevelopment/cum-sa-ti-pregatesti-pc-ul-pentru-webdesign-455.html#comments</comments>
		<pubDate>Mon, 28 Sep 2009 21:30:46 +0000</pubDate>
		<dc:creator>Luxian</dc:creator>
				<category><![CDATA[webdevelopment]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.luxian.ro/?p=455</guid>
		<description><![CDATA[Pentru toţi cei care vor să se apuce serios de webdesign sau pentru cei care au început deja şi au nevoie de ajutor, am pregătit un mic ghid pentru configurarea calculatorului pentru webdesign. Înainte de toate se presupune că sistemul de operare e deja instalat, şi că face parte din familia Micro$oft. Pentru Linux o [...]]]></description>
			<content:encoded><![CDATA[<p>Pentru toţi cei care vor să se apuce serios de webdesign sau pentru cei care au început deja şi au nevoie de ajutor, am pregătit un mic ghid pentru configurarea calculatorului pentru webdesign.</p>
<p>Înainte de toate se presupune că sistemul de operare e deja instalat, şi că face parte din familia Micro$oft. Pentru Linux o să scriu pe viitor.</p>
<p>Acum, să începem lista cu programe necesare:</p>
<h3>1. Browsere</h3>
<p>Sunt de nelipsit din viaţa unui webdesigner. Îţi trebuie instalate toate, chiar dacă tu foloseşti mai mult Firefox-ul. Şi pe lângă asta, o să mai ai nevoie şi de multe plugin-uri care o să-ţi facă viaţa mai uşoară în lupta cu bug-urile.</p>
<p>Lista de browsere trebuie să conţină neapărat:</p>
<ul>
<li><a href="http://www.mozilla.com/en-US/firefox/personal.html?from=getfirefox" target="_blank"><strong>Firefox</strong></a>, aka &#8220;<em>The God Father of browsers&#8221;</em>, cu  următoarele extensii:
<ul>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/1843" target="_blank">Firebug</a> &#8211; o mulţime de tool-uri foarte utile (debug css,html / dom inspector, javascript, http request headers, etc)</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/249" target="_blank">Html Validator</a> &#8211; validează codul html (mai multe alte opţiuni disponibile)</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/271" target="_blank">Colorzilla</a> &#8211; pentru că, din când în când mai ai nevoie să copiezi coduri de culoare hexa (color picker)</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/539" target="_blank">MeasureIt</a> &#8211; folositor atunci cand îţi baţi capul cu dimensiuni</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank">Web Developer</a> &#8211; o mulţime de butoane folositoare (re-dimensionare fereastră pentru diferite rezoluţii, disable js, etc)</li>
</ul>
</li>
<li><strong><a href="http://www.my-debugbar.com/wiki/IETester/HomePage" target="_blank">IE Tester</a></strong>, pentru că trebuie şi pentru că merită. O singură fereastră şi testezi pagina in Internet Explorer 5.5, 6, 7 şi 8 fără bătai de cap. Câte un tab pentru fiecare motor de randare.
<ul>
<li><a href="http://www.debugbar.com/download.php" target="_blank">DebugBar</a> &#8211; este un tool compatibil cu IE Tester, este asemănător cu Firebug-ul din Firefox</li>
</ul>
</li>
<li><strong><a href="http://www.google.com/chrome" target="_blank">Chrome</a></strong>, pentru că e un browser care promite multe pe viitor, şi care e destul de popular</li>
<li><strong><a href="http://www.apple.com/safari/download/" target="_blank">Safari</a></strong>, deşi rulează ca şi Chrome-ul, folosind WebKit, nu e rău să-l ai instalat. Teoretic, o pagină care merge bine în Chrome merge bine şi în Safari în 99.9% din cazuri.</li>
<li><strong><a href="http://www.opera.com/" target="_blank">Opera</a></strong>, pentru că e unul dintre cele mai vechi browsere şi pentru că nu ridică probleme prea mari de obicei. Are bug-uri specifice la anumite interpretări de CSS, dar sunt rare şi se rezolvă rapid.</li>
</ul>
<p>Nu am menţionat pe listă <a href="http://tredosoft.com/Multiple_IE" target="_blank">Multiple IE</a>, care face acelaşi lucru pe care îl face şi IETester, pentru că e mai greu de folosit (fiecare browser are fereastra proprie şi se încarcă destul de greu), nu poţi avea IE7 si IE8 simultan decât dacă te complici, etc.</p>
<h3>2. Editoare pentru cod</h3>
<p>Aici lucrurile sunt discutabile. Fiecare are un editor preferat. Eu personal folosesc <a href="http://www.pnotepad.org/" target="_blank">Programmers Notepad 2</a>. E simplu şi ştie cam tot ce am eu nevoie. Recomand de asemenea <a href="http://www.activestate.com/komodo_edit/" target="_blank">Komodo Edit</a>, care e ceva mai avansat decat Programmers Notepad, dar care porneşte ceva mai greu (doar e bazat pe core-ul de la Firefox).</p>
<p>Mai puteţi încerca <a href="http://notepad-plus.sourceforge.net/uk/site.htm" target="_blank">Notepad++</a>, Dreamweaver, <a href="http://www.pspad.com/" target="_blank">PSPad</a> şi multe altele. Cu excepţia Dreamweaverului toate editoarele menţionate sunt free.</p>
<h3>3. Editare imagini</h3>
<p>De bază la acest capitol ar fi Photoshop-ul, însă având în vedere că nu e free, ne orientăm atenţia către alternative free:</p>
<ul>
<li><a href="http://www.getpaint.net/" target="_blank">Paint.NET</a> &#8211; un mini Photoshop gratuit. Are cam toate toolurile şi efectele de bază din Photoshop, ştie <em>layere</em> şi dacă te obişnuieşti cu el, nu o să mai simţi lipsa Photoshopului.</li>
<li><a href="http://www.irfanview.com/" target="_blank">Irfan Viewer</a> &#8211; exact cum spune şi numele e <em>photo viewer </em>la bază, dar mai ştie de asemenea şi convertiri între mai toate formatele de imagine, <em>batch </em>convert tool foarte util.</li>
<li><a href="http://www.gimp.org/" target="_blank">GIMP</a> &#8211; rivalul Photoshop din tabăra Linux / OpenSource. Din păcate lupta de orgolii a făcut ca acesta să fie structurat foarte diferit faţă de Photoshop. Oferă aproape tot ce oferă şi Photoshopul, numai să şti să-l foloseşti.</li>
</ul>
<h3>4. FTP Clients</h3>
<p>Programe indispensabile atunci când vrei să uploadezi site-ul pe server. Aici alegerea e mai simplă. Avem <a href="http://filezilla-project.org/download.php?type=client" target="_blank">Filezilla Client </a>care este cel mai popular, şi cred că cel mai bun client ftp free (concurează cu cele mai bune aplicaţii plătite din punctul meu de vedere).  Apoi, pentru cei mai puţin pretenţioşi, <a href="http://www.ghisler.com/" target="_blank">Total Commanderul</a> are un client ftp integrat.</p>
<h3>5. Server local pentru dezvoltare şi testare</h3>
<p>Necesar doar în cazul în care aveţi de gând să lucraţi cu limbaje de programare gen PHP, PERL, etc. Pentru a creea pagini simple HTML nu aveţi nevoie de aşa ceva.</p>
<p>Variante disponibile:</p>
<ul>
<li><a href="http://www.wampserver.com/en/" target="_blank">WAMP</a> &#8211; recomandare personală datorită utilitarelor cu care vine. Setările de bază se fac cu un singur click, şi la fel de uşor poţi schimba diferite variante de PHP, Apache şi MySQL.</li>
<li><a href="http://www.apachefriends.org/en/xampp.html" target="_blank">XAMPP</a> &#8211; la fel de uşor de instalat şi de folosit. Vine cu modul https instalat default (spre deosebire de WAMP), dar pentru a modifica configurările  trebuie să editaţi manual fişierele config.</li>
<li>Instalare separată <a href="http://www.apache.org/" target="_blank">Apache</a>,<a href="http://www.php.net/downloads.php" target="_blank">PHP</a>, <a href="http://dev.mysql.com/downloads/" target="_blank">MySQL</a>. Nu recomand nimănui pentru că se pierde o grămadă de timp cu configurarea fiecărei componente în parte, şi dacă ceva nu merge s-ar putea să pierzi ore făcând debugging.</li>
</ul>
<h3>6. SVN Clients</h3>
<p>Dacă lucrezi în echipă folosirea SVN-ului sau a orcărui <a href="http://en.wikipedia.org/wiki/Revision_control" target="_blank"><em>revision control system</em></a> e obligatorie. Eu folosesc şi la proiectele personale din mai multe motive:</p>
<ul>
<li>poţi urmări uşor toate modificările asupra unui fişier</li>
<li>poţi lucra de pe mai multe calculatoare fără să îţi baţi capul cu sincronizarea fişierelor</li>
<li>e integrat în <em><a href="http://en.wikipedia.org/wiki/Issue_tracking_system" target="_blank">issue tracking systems</a> </em>cum ar fi <a href="http://trac.edgewall.org/" target="_blank">Trac</a>, <a href="http://www.redmine.org/" target="_blank">Redmine</a> şi chiar în <a href="http://www.thebuggenie.com/" target="_blank">The Bug Genie</a>.</li>
</ul>
<p>Pentru platforma Windows nu cred că există alternativă mai bună la <a href="http://tortoisesvn.tigris.org/" target="_blank">Tortoise SVN</a>, de aceea e singurul care îl recomand. Dacă aveţi nevoie de apelarea svn din linie de comandă puteţi folosi <a href="http://www.sliksvn.com/" target="_blank">SlikSVN</a> (eu îl folosesc pentru a face update-uri automate din linia de comandă folosind scripturi PHP).</p>
<p>Pentru hosting gratuit de SVN puteţi încerca <a href="http://www.assembla.com/" target="_blank">Assembla</a>.  Este gratuit, cu ceva limitări care nu deranjează. Oferă pe lângă SVN şi Trac hosting gratuit. Testat personal şi recomand cu încredere.</p>
<p>Pentru sugestii / completări / întrebări puteţi lăsa un comentariu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luxian.ro/webdevelopment/cum-sa-ti-pregatesti-pc-ul-pentru-webdesign-455.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

