<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	>

<channel>
	<title>razvan dumitru &#187; Web Dev[il]</title>
	<atom:link href="http://razvandumitru.ro/categorie/web-devil/feed/" rel="self" type="application/rss+xml" />
	<link>http://razvandumitru.ro</link>
	<description>a comunica inseamna a darui sens</description>
	<lastBuildDate>Tue, 08 Jun 2010 05:37:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<copyright>&#xA9; Razvan Dumitru 2007</copyright>
		<itunes:author>Razvan Dumitru</itunes:author>
		<itunes:summary>Album Shuba &amp; Tazy</itunes:summary>
		<itunes:explicit>No</itunes:explicit>
		<itunes:block>No</itunes:block>
		
		<item>
		<title>css-shorthand</title>
		<link>http://razvandumitru.ro/2008/11/07/css-shorthand/</link>
		<comments>http://razvandumitru.ro/2008/11/07/css-shorthand/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 08:29:37 +0000</pubDate>
		<dc:creator>Razvan Dumitru</dc:creator>
				<category><![CDATA[Web Dev[il]]]></category>

		<guid isPermaLink="false">http://razvandumitru.ro/2008/11/07/css-shorthand/</guid>
		<description><![CDATA[CSS shorthand este &#8220;abrevierea in cascada&#8221; pentru acelasi output. Motive ? E mult mai simplu, economicos si la dieta de greutate pe server. Evident un CSS poate sa aiba si 50KB [and that's for bytes nu biti]&#8230; nu e mult consum de bandwidth. Asta pentru un site cu 2 vizitatori lunari, dintre care unul e [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://razvandumitru.ro/wp-content/uploads/css-shorthand.jpg" alt="css-shorthand" align="left" /><a href="http://www.dustindiaz.com/css-shorthand/" target="_blank">CSS shorthand</a> este <strong>&#8220;abrevierea in cascada&#8221;</strong> pentru acelasi output. Motive ? E mult mai simplu, economicos si la dieta de greutate pe server. Evident un CSS poate sa aiba si <strong>50KB</strong> [and that's for bytes nu biti]&#8230; nu e mult consum de bandwidth. Asta pentru un site cu 2 vizitatori lunari, dintre care unul e admin-ul iar alalalt mare, negru era ta&#8217;su mah. La 1000 de request-uri/minut inseamna deja <strong>48MB</strong>. Se impune deci o oarecare optimizare a stilului de lucru. Dincolo de layout-ul in sine al unui fisier CSS [articol care va urma] sunt cateva <strong>general guidelines</strong> care ar trebui urmate in scrierea oricarei linii.</p>
<ul>
<li>se definesc dupa caz intai <strong>background</strong>-ul si propietatile legate de <strong>font</strong>;</li>
<li>se exprima [preferabil in pixeli] dimensiunile de tip width, height, margin si padding.<br />
Se lasa ultimele intrucat si sunt si cele mai des modificate in caz de crash.</li>
<li>IE + FF padding-ul se aduna la height si la width</li>
<li>FF = margin-ul NU se aduna la dimensiunea totala a div-ului</li>
<li>IE = margin-ul se aduna la W si H</li>
<li>scrierea pe o LINIE si nu multiline ajuta mult la randarea vizuala mult mai eleganta + shorthands + inheritance mult mai usor identificabila</li>
</ul>
<p>Un exemplu elocvent privind diferenta enorma intre coding-ul <strong>multiline CSS labartat</strong> si cel <strong>oneline shorthand</strong>, atat la nivel <span style="text-decoration: underline;">vizual</span> [daca se respecta mereu derivarea pe selectori, si ordinea pe declaratiile inerente propietatilor &gt; fluiditate in randare] cat si la nivel de <span style="text-decoration: underline;">output</span> , care este identic 100% se regaseste mai jos.</p>
<pre name="code" class="css">
/* CSS SHORTHAND */
.css_beginner
{
background-image:url(img.jpg);
background-position:top;
background-position:left;
background-repeat:repeat-x;
background-color:#000;
font-family:Arial, Helvetica, sans-serif;
font-size:10px;
line-height:20px;
font-weight:bold;
margin-top:0px;
margin-right:10px;
margin-bottom:5px;
margin-left:10px;
padding-top:10px;
padding-right:5px;
padding-bottom:10px;
padding-left:5px;
}

.css_expert { background:url(img.jpg) 0 0 repeat-x black; font:arial 10px/24px bold; margin:0px 10px 5px; padding:10px 5px; }
</pre>
]]></content:encoded>
			<wfw:commentRss>http://razvandumitru.ro/2008/11/07/css-shorthand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>Disable print screen 2</title>
		<link>http://razvandumitru.ro/2008/11/06/disable-print-screen-2/</link>
		<comments>http://razvandumitru.ro/2008/11/06/disable-print-screen-2/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 13:02:42 +0000</pubDate>
		<dc:creator>Razvan Dumitru</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Web Dev[il]]]></category>

		<guid isPermaLink="false">http://razvandumitru.ro/2008/11/06/disable-print-screen-working/</guid>
		<description><![CDATA[Well&#8230; fucking shit. Cu bunavointa lui mr. Tazy am spart si versiunea anterioara, care era de fapt solutia. Desi swf-ul mergea, putea fi recuperat de pe server, spart si decompilat pana la nivel de ActionScript. Iar acolo evident se vedea path-ul care desi relativ [my huge mistake] trebuia sa fie identic si pe server. Deci [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://razvandumitru.ro/wp-content/uploads/disable-print-screen-working.jpg" alt="disable print screen working" align="left" />Well&#8230; fucking shit. Cu bunavointa lui <a href="http://blog.linecreation.com/" title="Tazy" target="_blank">mr. Tazy</a> am spart si <a href="http://razvandumitru.ro/2008/11/06/disable-print-screen/" target="_blank">versiunea anterioara</a>, care era de fapt solutia. Desi swf-ul mergea, putea fi recuperat de pe server, spart si decompilat pana la nivel de ActionScript. Iar acolo evident se vedea path-ul care desi relativ [<strong>my huge mistake</strong>] trebuia sa fie identic si pe server. Deci desi in lipsa posibilitatii de print screen se putea scrie manual intr-un *.txt, inchide flashul, copy-paste in browser and voila de vezi. Ce s-a mai putut face ? Exista 2 solutii, niciuna care sa asigure protectie <strong>100%</strong>, dar fiecare capabila sa puna ore bune la lucru orice developer experimentat.</p>
<p><strong>Solutia unu</strong> se bazeaza pe o realitate simpla: orice pixel nu poate contine decat o singura culoare. Deci daca avem o imagine 400&#215;400px practic nu trebuie decat un batch script care sa recupereze hex value-ul dintr-o suprafata data de 160.000 pixeli. Apoi din algoritmul recuperat se aplica o functie care deseneaza singura imaginea cu anchor point top left in formatRGB. Acest format presupune coduri culoare de la 0 la 16,777,215 (&amp;HFFFFFF). Imaginea fiind generata astfel pixel by pixel, practic nu exista&#8230; Dar evident se poate face un script care duce cu un pas mai departe procesul: genereaza si salveaza intr-un *.jpg pixelii agregati.</p>
<p><strong>Solutia doi</strong> [click pentru <a href="http://razvandumitru.ro/disable-print-screen-working/" title="Demo">demo</a> sau pentru <a href="http://razvandumitru.ro/disable-print-screen-working/disable-print-screen-working.zip" title="Download" target="_blank">sursa completa</a>], presupune realizarea unor slice-uri care sunt luate dinamic in flash generand imaginea compozita finala. La fel ca la solutia anterioara, se poate cu DOM identifica folder-ul de apelare de tip *.jpg, fura si decompila sursa. Diferenta este insa ca <strong>se pierde timp considerabil</strong> pentru recrearea unei imagini complete. De exemplu, un concept al unui site care are 1500 pixeli inaltime inseamna undeva la 150 de slice-uri la 10 pixeli height fiecare. Special thanks pentru o groaza de <a href="http://www.motive.ro/" title="Pentru ca il roade" target="_blank">motive.ro</a> Spor la treaba deci :)</p>
<pre name="code" class="css">
/*defineste si apeleaza functia de reset clipboard*/
this.onEnterFrame = function() {
	System.setClipboard('=========================\n=== Fatal brain error ===\n=========================\n\nDenied Acces System.setClipboard din:\n&gt; windows xp si vista all versions\n&gt; mac osx\n&gt; linux\n\nSurprize surprize swf:\n&gt; encrypted pe 32 si 64 de biti pe import\n&gt; path de compilare localhost\n\nDaca esti din neamul Matrix donez sursa integral.\n\nCopyright Razvan Dumitru. All rights reserved.\nP.S. Stiu si dehack-ul pentru hack :)');
	/*
	\n semnifica breakline
	 intre '' se defineste textul custom
	 */
};
/* definire si parametrare functie dinamica de apelare a imaginilor  */
function loadPhotos(photocount, photoheight) {
	/* nr dinamic de poze maxim 99 */
	for (i=1; i&lt;=photocount; i++) {
		_root.createEmptyMovieClip("slice_"+i, i);
		trace("slice_"+i);
		/* output nr de movieclip-uri generate*/
		addon = i+'';
		if (i&lt;10) {
			addon = '0'+i;
		}
		_root["slice_"+i].loadMovie("slices/a_"+addon+".jpg");
		/* denominatie poza a_01.jpg count to max a_99.jpg */
		_root["slice_"+i]._x = 0;
		_root["slice_"+i]._y = (i-1)*photoheight;
		trace((i-1)*photoheight);
		/* output total height - photoheight */
	}
}
var lv = new LoadVars();
/* instantiere on load si pozitionare in functie de height FIX*/
lv.onLoad = function() {
	_root.loadPhotos(this.photocount, this.photoheight);
};
/* in d3v.txt se parametreaza in pixeli nr de slice-uri si height-ul */
lv.load("count/d3v.txt");
trace("d3v param loaded");
stop();
/* evitare loop infinit */</pre>
]]></content:encoded>
			<wfw:commentRss>http://razvandumitru.ro/2008/11/06/disable-print-screen-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
	</item>
		<item>
		<title>Disable print screen 1</title>
		<link>http://razvandumitru.ro/2008/11/06/disable-print-screen-1/</link>
		<comments>http://razvandumitru.ro/2008/11/06/disable-print-screen-1/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 23:14:18 +0000</pubDate>
		<dc:creator>Razvan Dumitru</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Web Dev[il]]]></category>
		<category><![CDATA[action script print]]></category>
		<category><![CDATA[actionscript disable print screen]]></category>
		<category><![CDATA[disable]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash print]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[print screen disable]]></category>
		<category><![CDATA[screen]]></category>

		<guid isPermaLink="false">http://razvandumitru.ro/2008/11/06/disable-print-screen/</guid>
		<description><![CDATA[Vechiul algoritm insolvabil: daca merg la client si ii arat nu imi pierd munca, dar pierd mult timp pentru interminabilele modificari absolut necesar de stupide. Daca nu ma vad cu el preview-ul [IMAGINE] nu poate fi decat unul decent, postat pe un server de preview. Pentru unii decent de vizualizat, pentru altii de furat si [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://razvandumitru.ro/2008/11/06/disable-print-screen/"><img src="http://razvandumitru.ro/wp-content/uploads/disable-prt-screen.jpg" alt="disable print screen" align="left" /></a><strong>V</strong><strong>echiul algoritm insolvabil</strong>: daca merg la client si ii arat nu imi pierd munca, dar pierd mult timp pentru interminabilele modificari absolut necesar de stupide. Daca nu ma vad cu el preview-ul [<strong>IMAGINE</strong>] nu poate fi decat unul <strong>decent</strong>, postat pe un server de preview. Pentru unii decent de vizualizat, pentru altii de furat si lucrat cu studenti platiti infect. Intrucat majoritatea proiectelor pe care le derulez sunt online-oriented, in some cases fiind vorba si de sedinte de arta fotografica si prelucrare digitala problema a devenit <strong>cactusiana</strong>. Am sa explic si de ce.</p>
<p><strong>A face disable la functia de print screen</strong> si/sau a-ti proteja munca e o veche poveste de adormit prin SERP-ul Google. Cum spune o vorba, securizarea online e sperioasa pentru un gentlemen si precum o cafea pentru un developer. Cum insumeaza relativ si <a href="http://blog.gilluminate.com/2006/04/25/prevent-copy-paste-and-print-screen-online/" title="Jason Gill - Disable Print Screen" target="_blank">Jason Gill</a> este foarte complicata securizarea. Am luat-o si eu pas cu pas si am demontat toate tertirpurile:</p>
<p class="clearfloat">&nbsp;</p>
<p><span id="more-343"></span></p>
<ol>
<li><a href="http://ro.wikipedia.org/wiki/JavaScript" title="Javascript Wikipedia" target="_blank">Javascript.</a> Inserarea in body on load a unei functii care sa nu permita comenzile Ctrl+C, Ctrl+V si/sau PrtScreen. <font color="#fd01e9">Cracking time:</font> 1 minut [disable la javascript]</li>
<li><a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets" title="CSS Wikpedia" target="_blank">CSS</a>. Adaugarea in stylesheet pe body optiunea la media display none. <font color="#fd01e9">Cracking time:</font> 4-5 secunde [disable la css sau prt screen]</li>
<li><a href="http://ro.wikipedia.org/wiki/HyperText_Markup_Language" title="HTML Wikipedia" target="_blank">HTML</a>. Messed coding, respectiv o serie de programe care encodeaza sursa. <font color="#fd01e9">Cracking time:</font> 2-3 minute [firebug pentru IE sau FF sau cautare targetata in DOM]</li>
<li><a href="http://www.sciencedirect.com/science?_ob=ArticleURL&amp;_udi=B6V09-4JRM05H-4&amp;_user=10&amp;_rdoc=1&amp;_fmt=&amp;_orig=search&amp;_sort=d&amp;view=c&amp;_version=1&amp;_urlVersion=0&amp;_userid=10&amp;md5=f8eeb818e05ade3c6881b8071d9a5fe8" title="Image Encrypt" target="_blank">Image Encypt.</a> Encriptare hexazecimala pe baza unei chei de 80 de biti si 2 algoritmi care schimba cifrul la fiecare 16 pixeli de imagine. <font color="#fd01e9">Cracking time:</font> 3 ore [soft care o data instalat vede registrii sistemului de operare unde sunt instantieri ale encodarii, ii modifica, implicit criptarea realizata devine nula]</li>
<li> <a href="http://ro.wikipedia.org/wiki/PHP" title="PHP - Wikipedia" target="_blank">PHP</a> + <a href="http://ro.wikipedia.org/wiki/Adobe_Flash" title="Flash - Wikipedia" target="_blank">Flash</a>. O solutie hibrida care presupune apelarea in flash a imaginii si afisarea swf-ului doar daca e pe un anumit domeniu, altfel dand eroare. <font color="#fd01e9">Cracking time:</font> 1 ora [se recupereaza flash-ul, se decompileaza; din ActionScript se vad parametrii de instantiere, se apeleaza path-ul absolut, se fura flash-ul, se sparge, se ia imaginea ]</li>
<li><a href="http://ro.wikipedia.org/wiki/ActionScript" title="ActionScript - Wikipedia" target="_blank">ActionScript</a> + <a href="http://www.flashincrypt.com/" title="Flash Incrypt" target="_blank">FlashIncrypt</a>. Presupune apelarea unei functii de tip System.setClipboard() care merge pe orice sistem de operare si pe orice browser. Soft-ul encodeaza actionscript-ul impotriva decompilarii, iar bifarea optiunii de protect from import din flash ar insemna securizare totala. Well&#8230; <font color="#fd01e9">Cracking time:</font> 3,5 ore [DOM &gt;se fura swf-ul &gt; soft care deteacteaza encodarea folosita &gt; soft special de re-encoding &gt; decompilare &gt; recuperare imagine]</li>
</ol>
<p>Si cu toate acestea <strong>solutia exista. </strong>Cu cearcane mumoase [care asteapta comment-uri pe hai5], un pc cu windows xp si linux praf si un laptop cu vista cu registrii de windows busiti declar: se foloseste <strong>DOAR </strong>flash [actionscript]. <strong>NU </strong>se encodeaza.  Merge pe <strong>TOATE </strong>sistemele de operare si in toate browserele. Se poate fura usor sau chiar <strong>DARUI </strong>link de download pentru fisier :)</p>
<p>Practic trebuie sa se creeze un fisier<strong> *.fla</strong> care sa contina ActionScriptul 2.0 de mai jos [la 3.o e necesar un event handler]. Flash-ul se redimensioneaza atat cat este imaginea si se inlocuieste doar path-ul. Click pentru <a href="http://razvandumitru.ro/disable-print-screen/" title="Demo" target="_blank">demo</a> sau pentru <a href="http://razvandumitru.ro/disable-print-screen/DisablePrtScreen.zip" title="Download" target="_blank">download</a>. Chiar daca ruleaza online sau offline, in browser sau in player, in Windows sau in OsX acest fisier nu poate fi furat prin Print Screen. Mai mult decat atat, chiar daca se debifeaza ca fereastra activa flash-ul si se foloseste chiar si VNC Server de pe alt PC tot nu se poate face nimic. Atat timp cat acest fiser este deschis <strong>NIMIC si NICAIERI nu mai functioneaza la nivel de copy-paste.</strong></p>
<p class="clearfloat">&nbsp;</p>
<p style="text-align: center" align="center"><img src="http://razvandumitru.ro/wp-content/uploads/message.jpg" alt="output" align="left" /></p>
<p class="clearfloat">&nbsp;</p>
<p>Se poate decompila ? Evident. E encodat AS-ul ? Normal, ca nu :) Se va gasi doar un path local catre o imagine. <strong>ATENTIE !</strong> A nu se compila imaginea cu path absolut de tip URL.In cazul meu am dat un mesaj &#8220;frumos&#8221; care poate fi schimbat din AS. Acest mesaj apare cand se da copy &#8211; PrtScreen in word, notepad, paint, irfan view, gimp si toate editoarele avansate de grafica sau de captura destop :) [In Photoshop are ca output doar un blackscreen, bun si ala]</p>
<pre name="code" class="css">
/*defineste si apeleaza functia de reset clipboard*/
this.onEnterFrame = function() {
	System.setClipboard('=========================\n=== Fatal brain error ===\n=========================\n\nDenied Acces System.setClipboard din:\n&gt; windows xp si vista all versions\n&gt; mac osx\n&gt; linux\n\nSurprize surprize swf:\n&gt; encrypted pe 32 si 64 de biti pe import\n&gt; path de compilare localhost\n\nDaca esti din neamul Matrix donez sursa integral.\n\nCopyright Razvan Dumitru. All rights reserved.\nP.S. Stiu si dehack-ul pentru hack :)');
	/*
	\n semnifica breakline
	 intre '' se defineste textul custom
	 */
};
stop();
/* nu permite instantierea loop-ului */
this.createEmptyMovieClip("img_mc", 0);
/* creeaza un movieclip ca placeholder pentru imagine */
img_mc.loadMovie("mr_localfolder/img.jpg");
/* se apeleaza LOCAL imaginea */</pre>
]]></content:encoded>
			<wfw:commentRss>http://razvandumitru.ro/2008/11/06/disable-print-screen-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
	</item>
		<item>
		<title>WEB PR: Noua provocare a media virtuale</title>
		<link>http://razvandumitru.ro/2008/10/31/web-pr-noua-provocare-a-media-virtuale/</link>
		<comments>http://razvandumitru.ro/2008/10/31/web-pr-noua-provocare-a-media-virtuale/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 18:11:22 +0000</pubDate>
		<dc:creator>Razvan Dumitru</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Web Dev[il]]]></category>

		<guid isPermaLink="false">http://razvandumitru.ro/2008/10/31/web-pr-noua-provocare-a-media-virtuale/</guid>
		<description><![CDATA[&#160;
Chintesenta informatiei este comunicarea, iar a comunica inseamna a darui sens. Bruno Medicina amintea intr-un workshop de acum cativa ani un joc notional si util: Daca doi oameni se intalnesc si isi daruiesc unul altuia cate un obiect, amandoi vor pleca acasa mai mult ca sigur cu un obiect. Dar daca doi oameni isi daruiesc [...]]]></description>
			<content:encoded><![CDATA[<p align="left">&nbsp;</p>
<p align="left"><a href="http://razvandumitru.ro/wp-content/uploads/web-pr.pdf" target="_blank"><img src="http://razvandumitru.ro/wp-content/uploads/web-pr.jpg" alt="web pr" align="left" /></a>Chintesenta informatiei este comunicarea, iar <strong>a comunica inseamna a darui sens</strong>. <a href="http://www.leadercommunications.com/" title="Bruno Medicina" target="_blank">Bruno Medicina</a> amintea intr-un workshop de acum cativa ani un joc notional si util: Daca doi oameni se intalnesc si isi daruiesc unul altuia cate <strong>un obiect</strong>, amandoi vor pleca acasa mai mult ca sigur cu un obiect. Dar daca doi oameni isi daruiesc unul altuia <strong>idei</strong>, atuncii ambii vor pleca mai bogati acasa, pentru ca vor pleca cu cel putin doua idei.</p>
<p>Ma aflu sper in aceasi postura de a oferi o idee, poate una perisabila, poate una pierduta prin algoritmii de cautare accidentala google sau poate o idee care va face mai bogat pe cineva. Pe mine unul nu m-a facut. Este vorba despre WEB PR: Noua provocare a media virtuale. In brief <strong>WEB-PR este o colectie informatizat-adaptabila de informatii integrate intr-un sistem mondial de retele de calculatoare interconectate, care inlesneste serviciile de comunicare publica interactiva a identitatii organizationale.</strong> Pentru cei cu apetit de abreviere:<br />
<span style="color: #ff6600; font-weight: bold">AIS =  nAII + (Ʃ – x)</span><br />
unde:</p>
<p align="left">- AIS = algoritmul de interoperabilitate al softurilor necesare pentru implementarea WEB PR<br />
- nAII = normele  algoritmului de identitate si  informare organizationala<br />
- x = numarul de softuri non-necesare obiectivelor de comunicare, dar utile deservirii produsului/serviciului finit.</p>
<p>Daca v-am captat atentia, <a href="http://razvandumitru.ro/wp-content/uploads/web-pr.pdf" title="WEB BR" target="_blank">click aici pentru docoment.</a><br />
Postd by: Razvan Dumitru</p>
]]></content:encoded>
			<wfw:commentRss>http://razvandumitru.ro/2008/10/31/web-pr-noua-provocare-a-media-virtuale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>MacBook Air &#8211; a must have</title>
		<link>http://razvandumitru.ro/2008/04/11/macbook-air-a-must-have/</link>
		<comments>http://razvandumitru.ro/2008/04/11/macbook-air-a-must-have/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 07:48:04 +0000</pubDate>
		<dc:creator>Razvan Dumitru</dc:creator>
				<category><![CDATA[Web Dev[il]]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[MacBook Air]]></category>

		<guid isPermaLink="false">http://razvandumitru.ro/2008/04/11/macbook-air-a-must-have/</guid>
		<description><![CDATA[Thickness
MacBook Air are aproximativ grosimea degetului tău arătător. Practic orice putea fi făcut pentru simplificare a fost făcut. Şi totuşi are un ecran LED cinematic de 13.3-inch, tastatură integrală, şi trackpad multi-touch de mari diemnsiuni. Este incomparabil de ultra-portabil fără compromisurile uzuale presupuse pentru ecranele şi tastaturile ultra-portabilelor.
Functionalities
Subţirimea incredibilă a MacBook Air este rezultatul unui [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://razvandumitru.ro/wp-content/uploads/macbookair.jpg" alt="MacBook" style="border: 0pt none " align="left" border="0" /><strong>Thickness</strong></p>
<p>MacBook Air are aproximativ grosimea degetului tău arătător. Practic orice putea fi făcut pentru simplificare a fost făcut. Şi totuşi are un ecran LED cinematic de 13.3-inch, tastatură integrală, şi trackpad multi-touch de mari diemnsiuni. Este incomparabil de ultra-portabil fără compromisurile uzuale presupuse pentru ecranele şi tastaturile ultra-portabilelor.</p>
<p><strong>Functionalities</strong></p>
<p>Subţirimea incredibilă a MacBook Air este rezultatul unui mare număr de inovaţii în privinţa reducerii dimensiunilor şi greutăţii. De la un hard disc mai subţire la porturile I/O ascunse strategic la bateria mai plată, totul a fost evaluat şi reevaluat cu gândul la subţirime.</p>
<p><strong>Wireless</strong></p>
<p>MacBook Air este conceput şi construit pentru a profita la maxim de lumea wireless. O lume în care Wi-Fi 802.11n este acum atât de rapid şi de larg răspândit, încât oamneii se pot elibera cu adevărat de fire — descărcând software, partajând şi stocând fişiere pe web.<br />
<span id="more-244"></span><br />
Pe <strong>Notebook Review</strong> s-a publicat recent rezultatul unui test al noului <strong>Apple MacBook Pro</strong>. O diferenta față de modelul mai vechi este platforma Intel Santa Rosa ceea ce înseamnă procesor mai rapid . Doar atât, pentru că restul de funcționalități acum obligatorii pe Santa Rosa (placă de rețea gigabit, WiFi n) erau deja prezente pe Apple MacBook. Iar Intel Turbo Memory este utilă doar pe <strong>Windows Vista</strong> pentru Ready Boost, ceea ce nu este cazul pe MacBook care vine echipat cu sistemul de operare Apple OSX “Tiger”. A doua mare noutate este însă de talie: ecranele noilor MacBook-uri sunt echipate in tehnologie LED backlit, ceea ce semnifică o mai bună calitate a imaginii la un consum mai mic de energie. Modelul testat a avut un ecran de 15.4″ funcționând la o rezolutie de 1440×900, un procesor Intel Core 2 Duo T7500 CPU la 2.2ghz cu 4 MB de cache L2, 2GB de memorie tip DDR2 la 667MHz, hdd de 120 GB și (mare noutate) placă grafică Nvidia 8600M GT cu 128 MB de memorie. Greutatea laptopului este de 2.45 kg, nici prea-prea nici foarte-foarte, iar pretul de achiziție este în US de 2000 USD (apx. 5400 RON) însă politica de prețuri Apple în Europa poate să aducă prețul la 6500 sau chiar spre<strong> 7000 RON.<br />
</strong><br />
<img src="http://razvandumitru.ro/wp-content/uploads/appleglow.jpg" alt="AppleGlow" align="left" />Testerul MacBook-ului este un <strong>(fost !) </strong>utilizator de Windows. Zic “fost” pentru ca in urma review-ului el s-a declarat convertit la OSX, ceea ce nu-l împiedică totuti sa ruleze Vista cu Bootcamp &#8211; care Vista ruleaza foarte bine si rapid pe acest laptop. Pentru că tot veni vorba de rapid, noul MacBook reuseste asa cum era firesc să lase în urmă “în praf” modele consacrate precum Lenovo Thinkpad T61. El este cu cel puțin 10% mai performant decât T61 in teste iar in 3DMark 2006 scoate un rezultat exceptional pentru un laptop de 4674 3DMarks. Noul ecran este “impresionant” zice testerul atât calitativ, cât si ca efect asupra autonomiei de obicei modeste la MacBook-urile de aceasta dimensiune, dar care sustine acum un rezultat decent de 3 ore cu luminozitatea pe full si 4 ore cu luminozitate mai redusă. Designul este ca de obicei la Apple incredibil de reusit si de sexy (uitati-vă la imaginea cu tastatura luminată pe întuneric !), iar conectivitatea (WiFi b/g/n, Ethernet Gigabit, USB, Bluetooth, FireWire, DVI) variată si utilă. iSight este o cameră web de excelentă calitate care este livrată la pachet cu MacBook-ul. Puncte slabe: pretul piperat pentru un laptop de 15&#8243;.</p>
<p>Recomandat pentru: fani Mac, înlocuire de desktop de putere medie, task-uri de business care necesită un laptop performant. Nerecomandat pentru: bugete strâmtorate, Windows gaming.</p>
]]></content:encoded>
			<wfw:commentRss>http://razvandumitru.ro/2008/04/11/macbook-air-a-must-have/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>CSS Interbrowser Reset Tehnique</title>
		<link>http://razvandumitru.ro/2008/03/22/css-interbrowser-reset-tehnique/</link>
		<comments>http://razvandumitru.ro/2008/03/22/css-interbrowser-reset-tehnique/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 16:20:37 +0000</pubDate>
		<dc:creator>Razvan Dumitru</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Web Dev[il]]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS IRT]]></category>
		<category><![CDATA[CSS tehnique]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IRT]]></category>
		<category><![CDATA[Razvan Dumitru]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://razvandumitru.ro/2008/03/22/css-interbrowser-reset-tehnique/</guid>
		<description><![CDATA[Fisierul CSS (Cascading Style Sheet) permite separarea continutului (X)HTML de stilul de afisare in pagina. Ca de obicei, se utilizeaza codul (X)HTML pentru aranjarea continutului in pagina, insa toata prezentarea (fonturi, culori, fundaluri, borduri, etc) se realizeaza din fisierul CSS.
Analizand metodologia interbrowser Yahoo, IHT si NY Times am derivat o tehnica de resetare a propietatilor [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://razvandumitru.ro/wp-content/uploads/yuireset.jpg" alt="YUI Reset CSS" align="left" /><strong>Fisierul CSS</strong> (Cascading Style Sheet) permite separarea continutului (X)HTML de stilul de afisare in pagina. Ca de obicei, se utilizeaza codul (X)HTML pentru aranjarea continutului in pagina, insa toata prezentarea (fonturi, culori, fundaluri, borduri, etc) se realizeaza din fisierul CSS.</p>
<p>Analizand metodologia interbrowser Yahoo, IHT si NY Times am derivat o <strong>tehnica de resetare a propietatilor CSS</strong>, cu o eficienta simultana de 90% in IE [4.0 and above], Firefox 2.7 [and above] si Safari: <strong>CSS IRT</strong>. Premisa de la care am pornit este foarte simpla: elementele definitorii dintr-un layout arhitectural CSS  [div-uri, tabele, liste, imagini, fieldset-uri, h-uri si toate subclasele care pot deriva] au un default value care este diferit in functie de browser. Fisierul de baza, <a href="http://developer.yahoo.com/yui/reset/" title="YUI Reset CSS" target="_blank"><strong>YUI Reset CSS</strong></a> de la Yahoo, creeaza un teren de manevra nivelat general valabil pentru toate browser-ele de clasa A si furnizeaza o fundatie solida peste care poti sa-ti exprimi clar intentile. Normalizeaza modul de afisare default a tuturor elementelor HTML, de exemplu defineste margin, padding si border la 0, italic si bold devin normal, iar list-style setat pe none. Altfel spus, un tag de &#8220;h&#8221; va fi randat diferit in IE/Firefox atat ca font-weight, line-height si uneori ca font-size. O lista ordonata sau neordonata de elemente va avea un padding pe height compatibil sau nu cu line-height-ul default, de unde iarasi o randare crossbrowser diferita.</p>
<p>Ce am modificat ? <strong>YUI Reset CSS de la Yahoo</strong> este bine gandit, dar <strong>eronat aplicat</strong> in mai multe situatii:</p>
<ol>
<li><strong>selectorul </strong><strong>img</strong>, unde nu este indeajuns definirea 0 a border-ului. Trebuie resetatea si cea a border style-ului.;</li>
<li><strong>selctorul </strong><strong>h</strong>, unde font-size-ul e ok sa fie 100%, dar font-weight-ul trebuie sa fie bold, nu normal [Google reasons];</li>
<li><strong>selectorul </strong><strong>li</strong> [ul si/sau ol], unde propietatea de line-height trebuie sa fie la valoarea &#8220;normal&#8221;.</li>
</ol>
<p>Aplicand acest cod CSS, in peste 90% din cazuri problemele interbrowser de acest gen vor disparea. Daca sceptic, se poate infera interogativ: <em>&#8220;De ce e nevoie de acest reset style sheet, din moment ce pot defini la orice id/clasa propietatile, acestea pastrandu-se si in cazul in care devin inherit ?&#8221;</em>, raspunsul este simplu: <strong>CSS Interbrowser Reset Tehnique</strong> asigura de la inceput propietatile pentru toate elementele, devenind inherit pentru restul [exceptand uzitarea id-urilor, care au putere mai mare], de aici rezultand atat rezolvarea problemelor cauzate de tipurile diferite interbrowser de randare, lasand insa libertatea aplicarii claselor custom unde este cazul.</p>
<pre name="code" class="css">
/* RESETARE STYLE SHEET &amp; NON-CUSTOM CLASSES  *//* ******************************************************************************/

body,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { margin: 0; padding: 0; font-family:; }
table { border-collapse: collapse; border-spacing: 0; }
fieldset,img { border:0 none; }
address,caption,cite,code,dfn,em,strong,th,var { font-style: normal; font-weight: normal; }
ol,ul { list-style: none; line-height:normal }
h1,h2,h3,h4,h5,h6 { font-size:100%; font-weight:bold; }
caption,th { text-align:left; }
abbr,acronym { border:0; }</pre>
<p>Razvan Dumitru</p>
]]></content:encoded>
			<wfw:commentRss>http://razvandumitru.ro/2008/03/22/css-interbrowser-reset-tehnique/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
	</item>
	</channel>
</rss>
