<?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>Andrei</title>
	<atom:link href="http://andrei.colorsoft.ro/feed/" rel="self" type="application/rss+xml" />
	<link>http://andrei.colorsoft.ro</link>
	<description>Andrei @ Colorsoft</description>
	<lastBuildDate>Fri, 28 May 2010 23:06:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ubuntu 9.10 on Fujitsu-Siemens V5515 with Sis 671/771</title>
		<link>http://andrei.colorsoft.ro/2010/05/28/ubuntu-9-10-on-fujitsu-siemens-v5515-with-sis-671771/</link>
		<comments>http://andrei.colorsoft.ro/2010/05/28/ubuntu-9-10-on-fujitsu-siemens-v5515-with-sis-671771/#comments</comments>
		<pubDate>Fri, 28 May 2010 23:06:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[De toate]]></category>

		<guid isPermaLink="false">http://andrei.colorsoft.ro/?p=156</guid>
		<description><![CDATA[If you ever wanted to install Ubuntu on such a machine and ran into video card driver problems here is a link with a working driver.
]]></description>
			<content:encoded><![CDATA[<p>If you ever wanted to install Ubuntu on such a machine and ran into video card driver problems here is a <a href="http://ubuntuway.wordpress.com/2009/07/13/drivers-de-sis-771671-para-jaunty/">link</a> with a working driver.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrei.colorsoft.ro/2010/05/28/ubuntu-9-10-on-fujitsu-siemens-v5515-with-sis-671771/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Obiecte transparente</title>
		<link>http://andrei.colorsoft.ro/2010/03/17/obiecte-transparente/</link>
		<comments>http://andrei.colorsoft.ro/2010/03/17/obiecte-transparente/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 09:36:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[De toate]]></category>

		<guid isPermaLink="false">http://andrei.colorsoft.ro/?p=132</guid>
		<description><![CDATA[


]]></description>
			<content:encoded><![CDATA[<p><a style="display: block; float: left;margin-left:25px;" rel="lightbox[Pahar]" href="http://andrei.colorsoft.ro/wp-content/uploads/2010/03/glass_03.jpg"><img class="size-thumbnail wp-image-135" title="glass_03" src="http://andrei.colorsoft.ro/wp-content/uploads/2010/03/glass_03-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p><a style="display: block; float: left;" rel="lightbox[Pahar]" href="http://andrei.colorsoft.ro/wp-content/uploads/2010/03/glass_02.jpg"><img class="size-thumbnail wp-image-134" title="glass_02" src="http://andrei.colorsoft.ro/wp-content/uploads/2010/03/glass_02-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p><a style="display: block; float: left;" rel="lightbox[Pahar]" href="http://andrei.colorsoft.ro/wp-content/uploads/2010/03/glass_01.jpg"><img class="size-thumbnail wp-image-133" title="glass_01" src="http://andrei.colorsoft.ro/wp-content/uploads/2010/03/glass_01-150x150.jpg" alt="" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://andrei.colorsoft.ro/2010/03/17/obiecte-transparente/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flexible Accordion</title>
		<link>http://andrei.colorsoft.ro/2010/03/15/flexible-accordion/</link>
		<comments>http://andrei.colorsoft.ro/2010/03/15/flexible-accordion/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 13:02:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[De toate]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[accordion]]></category>
		<category><![CDATA[components]]></category>
		<category><![CDATA[custom accordion]]></category>
		<category><![CDATA[custom components]]></category>
		<category><![CDATA[drag and drop]]></category>

		<guid isPermaLink="false">http://andrei.colorsoft.ro/?p=99</guid>
		<description><![CDATA[Acordeonul din Flex este o unealta excelenta ce poate fi folosita cand se doreste combinarea unei liste cu detaliile aferente fiecarui element. Accordion are o structua facil de inteles si poate fi definit relativ simplu. Fie ca folosim ActionScript sau MXML definirea se face usor. MXML-ul exista pentru a reduce numarul de linii de cod [...]]]></description>
			<content:encoded><![CDATA[<p>Acordeonul din Flex este o unealta excelenta ce poate fi folosita cand se doreste combinarea unei liste cu detaliile aferente fiecarui element. Accordion are o structua facil de inteles si poate fi definit relativ simplu. Fie ca folosim ActionScript sau MXML definirea se face usor. MXML-ul exista pentru a reduce numarul de linii de cod de aceea il voi folosi si eu in urmatorul exemplu:</p>
<pre name="code" class="java">
	[Bindable] private var cities:ArrayCollection = new ArrayCollection();

	private function initComp():void
	{
		cities.addItem({id:0, label:"Bucuresti"});
		cities.addItem({id:1, label:"Slobozia"});
		cities.addItem({id:2, label:"Urziceni"});
		cities.addItem({id:3, label:"Iasi"});
		cities.addItem({id:4, label:"Suceava"});
	}
</pre>
<pre name="code" class="html">
	<mx:Accordion id="acc"
		width="100%"
		height="100%">
		<mx:Repeater id="myRepeater" dataProvider="{cities}">
			<renderers:CityRenderer label="{myRepeater.currentItem.label}">
			</renderers:CityRenderer>
		</mx:Repeater>
	</mx:Accordion>
</pre>
<p>unde CityRenderer poate contine orice fel de informatie legata de un anumit oras</p>
<pre name="code" class="xml">
<?xml version="1.0" encoding="utf-8"?>
	<mx:VBox
		xmlns:mx="http://www.adobe.com/2006/mxml">
	</mx:VBox>
</pre>
<p>Nu stiu daca si-a pus cineva problema sortarii item-urilor. Din toate cautarile mele pe net nu a rezultat ca s-ar fi gandit cineva la asa ceva. Poate pentru ca nu a fost considerat pana acum util sau poate pentru ca este inutil. Poate fi si datorita faptului ca nici acordeonul nu ofera suport pentru drag and drop in sensul ca headerele nu au predefinite handlere pentru drag and drop. Aici intra in scena DragManager cu ajutorul caruia poti determina cam orice obiect dintr-o aplicatie flex poate sa se miste sau sa fie pusa peste alta.</p>
<p>Avand in vedere ce am spus mai devreme despre headerele acordeonului pentru a putea gestiona evenimentele aparute in cadrul unei actiuni de tip drag and drop ar trebui sa definim o componenta custom pe care o vom numi DraggabelAccordion. Singura proprietate a acestei componente este ca defineste un renderer special pentru headere in cadrul caruia vom gestiona evenimentele de tip drag and drop.</p>
<pre name="code" class="xml">
	<mx:Accordion
		xmlns:mx="http://www.adobe.com/2006/mxml" headerRenderer="CustomHeaderRenderer">
	</mx:Accordion>
</pre>
<p>CustomHeaderRenderer extinde componenta Button si contine handlere pentru mouseMove, dragEnter, dragExit precum si pentru dragDrop denumite intr-un mod usor de inteles. Pentru fiecare de handler voi prezenta codul precum si explicatiile aferente.</p>
<p><b>mouseMovehandler:</b></p>
<pre name="code" class="java">
	private function mouseMoveHandler(event:MouseEvent):void
	{
		var dragInitiator:Button = Button(event.currentTarget);
		var ds:DragSource = new DragSource();
		DragManager.doDrag(dragInitiator, ds, event);
	}
</pre>
<p>In momentul in care mouse-ul se afla asupra render-ului, DragManager este informat ca initiatorul drag-ului este un element de tip buton, respectiv cel asupra caruia se afla cursorul precum si ca acest element suporta actiunea drag.</p>
<p><b>dragEnterHandler:</b></p>
<pre name="code" class="java">
	public function dragEnterHandler(event:MouseEvent):void
	{
		var dropTarget:Button=Button(event.currentTarget);
		DragManager.acceptDragDrop(dropTarget);
		var accordion:DraggableAccordion = dropTarget.document as DraggableAccordion;
		dropTarget.graphics.lineStyle(4, 0x000000, 1);
		dropTarget.graphics.beginFill(0x00FF00);
		dropTarget.graphics.moveTo(5, dropTarget.height-2);
		dropTarget.graphics.lineTo(dropTarget.width-5, dropTarget.height-2);
	}
</pre>
<p>Avand in vedere ca drop se poate face doar asupra unui element de tip Button si mai presus de toate se poate face asupra oricarui element DragManager este informat ca elementul asupra caruia pluteste header-ul tras accepta drop. De asemenea o linie neagra este trasata la baza destinatiei pentru a informa utilizatorul unde urmeaza sa fie plasat elementul tras.</p>
<p><b>dragExitHandler:</b></p>
<pre name="code" class="java">
	public function dragExitHandler(event:MouseEvent):void
	{
		var dropTarget:Button=Button(event.currentTarget);
		dropTarget.graphics.lineStyle(4, 0xffffff, 1);
		dropTarget.graphics.beginFill(0xFFFFFF);
		dropTarget.graphics.moveTo(5, dropTarget.height-2);
		dropTarget.graphics.lineTo(dropTarget.width-5, dropTarget.height-2);
	}
</pre>
<p>Functia aceasta este apelata in momentul in care butonul tras iese din aria de acoperire a tintei si nu face decat sa stearga linia de la baza tintei, in acest mod informand utilizatorul ca nu se va face drop in acest punct.</p>
<p><b>dragDropHandler:</b></p>
<pre name="code" class="java">
	public function dragDropHandler(event:DragEvent):void
	{
		var sourceLabel:String = CustomHeaderRenderer(event.dragInitiator).label;
		var targetLabel:String = this.label;
		var dataSource:ArrayCollection = this.data.repeater.dataProvider;
		var key:Object;
		var source:Object;
		var sourcePosition:int = 0;
		var targetPosition:int = 0;
		for (key in dataSource)
		{
			if (dataSource[key].label == sourceLabel)
				{
					source = dataSource[key];
					sourcePosition = int(key);
				}
		}
		dataSource.removeItemAt(sourcePosition);
		for (key in dataSource)
		{
			if (dataSource[key].label == targetLabel)
				{
					targetPosition = int(key);
				}
		}
		if (targetPosition==dataSource.length-1)
		{
			dataSource.addItem(source);
		}
		else
		{
			var tempArray:Array = dataSource.source.slice(targetPosition+1,dataSource.source.length);
			var tempCollection:ArrayCollection = new ArrayCollection(tempArray);
			var i:int = dataSource.length - 1;
			for (i = dataSource.length - 1;i>targetPosition;i--)
			{
				dataSource.removeItemAt(i);
			}
			dataSource.addItem(source);
			var obj:Object;
			for each (obj in tempCollection)
			{
				dataSource.addItem(obj);
			}
		}
	}
</pre>
<p>Functia de mai sus modifica dataProvider-ul din repeater-ul acordeonului pentru a se obtine efectul dorit. Daca destinatia este chiar ultimul element din accordion aceasta este pur si simplu stearsa si readaugata la sfarsitul sirului. In celelalte cazuri se sterge elementul sursa, se copiaza elementele ce-l preced intr-un ArrayCollection temporar si se reface dataProvider-ul in forma dorita.</p>
<p></p>
<p>Pe masura ce timpul va trece si pe masura ce aplicatia pentru care a fost necesara o astfel de componenta se va dezvolta probabil voi include si alte facilitati.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrei.colorsoft.ro/2010/03/15/flexible-accordion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Maps cu Adobe Flex &#8211; markere personalizate</title>
		<link>http://andrei.colorsoft.ro/2010/03/08/google-maps-cu-adobe-flex-markere-personalizate/</link>
		<comments>http://andrei.colorsoft.ro/2010/03/08/google-maps-cu-adobe-flex-markere-personalizate/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 16:43:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Custom markers]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[markere personalizate]]></category>

		<guid isPermaLink="false">http://andrei.colorsoft.ro/?p=80</guid>
		<description><![CDATA[Zilele trecute am fost pus in situatia de a crea ferestre de informare pentru toate markerele ce le adaugam pe o aplicatie dezvoltata in Flex cu ajutorul Google Maps. Informatia pentru fiecare marker vine dintr-o baza de date si pentru ca aveam nevoie ca in momentul in care utilizatorul executa dublu click aplicatia sa presteze [...]]]></description>
			<content:encoded><![CDATA[<p>Zilele trecute am fost pus in situatia de a crea ferestre de informare pentru toate markerele ce le adaugam pe o aplicatie dezvoltata in Flex cu ajutorul Google Maps. Informatia pentru fiecare marker vine dintr-o baza de date si pentru ca aveam nevoie ca in momentul in care utilizatorul executa dublu click aplicatia sa presteze o actiune in functie de un id primit din baza m-am hotarat sa caut pe net cum poti crea markere customizate nu doar din punctul de vedere vizual cat si din prisma datelor adiacente.<br />
Singura chestie relevanta a fost a unui baiat care explica cum a facut el pentru o aplicatie de rezervare bilete de avion. Din informatiile de care avea nevoie isi crea un string cu toate datele delimitate de underscore iar acest string il asocia campului icon din MarkerOptions. Pentru a rezolva erorile de runtime extinsese clasa Bitmap astfel incat sa primeasca pe constructor un string. Solutia e ok daca nu ai de-a face cu date multe si variate. Intrebarea mea este: De ce nu poti extinde clasa Marker?</p>
<pre name="code" class="java">
package custom
{
  import com.google.maps.LatLng;
  import com.google.maps.overlays.Marker;
  import com.google.maps.overlays.MarkerOptions;

  public class TtMarker extends Marker
  {
   public var id:int;
   public var name:String;
   public var shortDescription:String;
   public var image:String;
   public var url:String;
   public var lat:Number;
   public var lng:Number;

   public function TtMarker(arg0:LatLng, arg1:MarkerOptions=null)
   {
    super(arg0, arg1);
   }

  }
}
</pre>
<p>Avand la dispozitie markerData, un obiect cu informatiile despre marker obtinut din baza de date, declararea am facut-o in modul urmator:</p>
<pre name="code" class="java">
var markerOptions:MarkerOptions = new MarkerOptions({
  icon:markerIconData,
  iconAlignment:MarkerOptions.ALIGN_BOTTOM
});

var position:LatLng = new LatLng(
  markerData.lat as Number,
  markerData.lng as Number
);
var marker:TtMarker = new TtMarker(position, markerOptions);
marker.id = markerData.id;
marker.name = markerData.name;
marker.image = markerData.image;
marker.shortDescription = markerData.shortDescription;
marker.url = markerData.url;
marker.lat = markerData.lat;
marker.lng = markerData.lng;

marker.addEventListener(MapMouseEvent.CLICK,markerShowWindow);
googleMap.addOverlay(marker);
</pre>
<p>apoi pentru a evidentia si modul in care ne folosim de datele din marker mai jos gasiti si ce se intampla cand se executa click pe marker</p>
<pre name="code" class="java">
private function markerShowWindow(event:MapMouseEvent):void
{
  var newMarker:TtMarker = event.currentTarget as TtMarker;
  var infoWindow:InfoWindowOptions = new InfoWindowOptions();
  var html:String = '';
  html += '&lt;img  src="/images/'+newMarker.image+'" /&gt;';
  html += newMarker.shortDescription + '';
  html += '&lt;a href="/'+newMarker.url+'" &gt;Detalii&lt;/a&gt;';

  infoWindow.padding = 5;
  infoWindow.contentHTML = html;
  infoWindow.height = 210;
  infoWindow.width = 230;
  newMarker.openInfoWindow(infoWindow);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://andrei.colorsoft.ro/2010/03/08/google-maps-cu-adobe-flex-markere-personalizate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cabana Retezat</title>
		<link>http://andrei.colorsoft.ro/2010/01/26/cabana-retezat/</link>
		<comments>http://andrei.colorsoft.ro/2010/01/26/cabana-retezat/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 17:29:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[De toate]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[cabana]]></category>
		<category><![CDATA[Cabana Retezat]]></category>
		<category><![CDATA[cazare]]></category>
		<category><![CDATA[drumetii]]></category>
		<category><![CDATA[hateg]]></category>
		<category><![CDATA[retezat]]></category>
		<category><![CDATA[turism]]></category>

		<guid isPermaLink="false">http://andrei.colorsoft.ro/?p=72</guid>
		<description><![CDATA[Terminarăm şi Cabana Retezat. Dacă vă doriţi un loc pentru relaxare, reculegere sau deconectare vi-l recomandăm cu caldură. Preţurile ok, serviciile misteaux şi  haţeganii primitori vă dau cele mai alese motive pentru a zăbovi pentru câteva zile sub acoperişul lor. Pentru mai multe detalii vizitaţi-le pagina de web.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cabanaretezat.ro" target="_blank"><img class="alignleft size-full wp-image-75" title="Cabana Retezat" src="http://andrei.colorsoft.ro/wp-content/uploads/2010/01/printscreen_cabanaretezat.png" alt="Cabana Retezat" width="182" height="123" /></a>Terminarăm şi <a href="http://www.cabanaretezat.ro">Cabana Retezat</a>. Dacă vă doriţi un loc pentru relaxare, reculegere sau deconectare vi-l recomandăm cu caldură. Preţurile ok, serviciile misteaux şi  haţeganii primitori vă dau cele mai alese motive pentru a zăbovi pentru câteva zile sub acoperişul lor. Pentru mai multe detalii vizitaţi-le <a title="pagina" href="http://www.cabanaretezat.ro" target="_blank">pagina de web</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrei.colorsoft.ro/2010/01/26/cabana-retezat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probably the best album ever</title>
		<link>http://andrei.colorsoft.ro/2010/01/12/probably-the-best-album-ever/</link>
		<comments>http://andrei.colorsoft.ro/2010/01/12/probably-the-best-album-ever/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 07:26:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Muzica]]></category>
		<category><![CDATA[best album]]></category>
		<category><![CDATA[Chocolate and the Hot Dog Flavored Water]]></category>
		<category><![CDATA[Limp Bizkit]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[Probably the best album ever]]></category>

		<guid isPermaLink="false">http://andrei.colorsoft.ro/?p=63</guid>
		<description><![CDATA[Aparut in 2000 sub labelul Interscope Records si produs de Jonathan Davis, Chocolate and the Hot Dog Flavored Water a ramas in memoria multor oameni ca fiind, probabil, cel mai bun album rock.
1. intro

2. hot dog

3. my generation

4. full nelson

5. my way

6. rollin&#8217; (air raid vehicle)

7. livin&#8217;it up

8. the one

9. getha&#8217; groove on

10. take a [...]]]></description>
			<content:encoded><![CDATA[<p>Aparut in 2000 sub labelul Interscope Records si produs de Jonathan Davis, Chocolate and the Hot Dog Flavored Water a ramas in memoria multor oameni ca fiind, probabil, cel mai bun album rock.</p>
<p>1. intro<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/mlauwMYBiaY&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/mlauwMYBiaY&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
2. hot dog<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/NIcnz5d-iZM&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/NIcnz5d-iZM&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
3. my generation<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/tfD_My96lTo&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/tfD_My96lTo&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
4. full nelson<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ArkBbkaWESQ&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ArkBbkaWESQ&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
5. my way<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/PQ8Qi86i82s&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PQ8Qi86i82s&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
6. rollin&#8217; (air raid vehicle)<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/NAuXDI5DUPE&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NAuXDI5DUPE&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
7. livin&#8217;it up<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/FXbmG6WLu9I&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FXbmG6WLu9I&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
8. the one<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/YtFe7ASS9Yg&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/YtFe7ASS9Yg&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
9. getha&#8217; groove on<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/88XeknpvnM0&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/88XeknpvnM0&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
10. take a look around<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/HtPL2YhK6h0&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/HtPL2YhK6h0&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
11. it&#8217;ll be ok<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/2eKPHCjc-j4&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/2eKPHCjc-j4&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
12. boiler<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Z4nkedQz0SE&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Z4nkedQz0SE&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
13. hold on<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Hoq1qF204UU&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Hoq1qF204UU&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
14. rollin&#8217; (urban assault vehicle)<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/2KWErz2Wg4s&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/2KWErz2Wg4s&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
15. outro<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/rnH3CPDfvug&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/rnH3CPDfvug&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://andrei.colorsoft.ro/2010/01/12/probably-the-best-album-ever/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Urasc Crăciunul</title>
		<link>http://andrei.colorsoft.ro/2009/12/15/urasc-craciunul/</link>
		<comments>http://andrei.colorsoft.ro/2009/12/15/urasc-craciunul/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 18:34:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nu mai pot cu]]></category>
		<category><![CDATA[craciun]]></category>
		<category><![CDATA[jingle bells]]></category>
		<category><![CDATA[oribil]]></category>
		<category><![CDATA[sarbatori]]></category>

		<guid isPermaLink="false">http://andrei.colorsoft.ro/?p=8</guid>
		<description><![CDATA[Urăsc tot ce înseamnă jângălbels. Urăsc ninsoarea care se transformă în floşcăială. Urăsc faptul că trebuie să fim jolly. Urăsc pocnitorile, petardele, artifica şi bubuitoarea şi mai presus de toate urăsc oamenii care le cumpără. Ii urasc si pentru faptul ca nu stiu sa le foloseasca si ajung prin spitale. Dupa ce ies din spitale [...]]]></description>
			<content:encoded><![CDATA[<p>Urăsc tot ce înseamnă jângălbels. Urăsc ninsoarea care se transformă în floşcăială. Urăsc faptul că trebuie să fim jolly. Urăsc pocnitorile, petardele, artifica şi bubuitoarea şi mai presus de toate urăsc oamenii care le cumpără. Ii urasc si pentru faptul ca nu stiu sa le foloseasca si ajung prin spitale. Dupa ce ies din spitale dau in judecata sau pe mana autoritatilor, vanzatorii care nu au avut inspiratia divina sa-i anunte ca petardele nu se baga in fund dupa ce le-ai aprins, &#8220;ca sa ai parte de senzatii tari&#8221;.</p>
<p>Urasc colindatorii care bat la usi in speranta ca fac si ei un ban de sarbatori. Nu vreau sa le dau bani. Colindatul, in esenta lui, ar trebui sa fie o activitate benevola care sa anunte prin cantece un eveniment religios inaltator nu sa ma oblige pe mine sa &#8220;primesc cu steaua&#8221;.</p>
<p>Urasc felicitarile corporate si mesajele de sarbatori nepersonalizate. &#8220;Fie ca lumina sfanta sa-mi lumineze calea&#8221;. Pe bune? Atat de putin insemn pentru tine astfel incat sa-mi trimiti un mesaj pe care oricum il trimiti altor sute de contacte din telefon sau address book? Nu vreau  sa primesc asa ceva si mai ales nu raspund la asa ceva. Le gasesc revoltatoare si lipsite de sens.</p>
<p>Las postul deschis&#8230; O sa mai izbeasca idei.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrei.colorsoft.ro/2009/12/15/urasc-craciunul/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validarea unui formular</title>
		<link>http://andrei.colorsoft.ro/2009/12/14/validarea-unui-formular/</link>
		<comments>http://andrei.colorsoft.ro/2009/12/14/validarea-unui-formular/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 17:45:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[Validation]]></category>

		<guid isPermaLink="false">http://andrei.colorsoft.ro/?p=3</guid>
		<description><![CDATA[
Validarea formularelor a pus probleme oricarui programator ce s-a lovit vreodata de interactiunea cu utilizatorii lipsiti de experienta sau, pur si simplu, neatenti. Presupunem ca avem urmatorul formular si ne dorim ca cele doua campuri text sa fie validate in functie de o lungime minima.
 
&#60;mx:Form width=”60%” height=”100%”&#62;
&#60;mx:FormHeading label=”Adaugare” width=”243″ height=”42″/&#62;
&#60;mx:FormItem&#62;
&#60;mx:Label text=”Nume” /&#62;
&#60;mx:TextInput id=”lastName” /&#62;
&#60;/mx:FormItem&#62;
&#60;mx:FormItem&#62;
&#60;mx:Label [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>Validarea formularelor a pus probleme oricarui programator ce s-a lovit vreodata de interactiunea cu utilizatorii lipsiti de experienta sau, pur si simplu, neatenti. Presupunem ca avem urmatorul formular si ne dorim ca cele doua campuri text sa fie validate in functie de o lungime minima.<br />
<code> </code></p>
<p style="padding-left: 30px;"><span style="color: #000080;"><span style="font-family: trebuchet ms,geneva;">&lt;mx:Form width=”60%” height=”100%”&gt;<br />
&lt;mx:FormHeading label=”Adaugare” width=”243″ height=”42″/&gt;<br />
&lt;mx:FormItem&gt;<br />
&lt;mx:Label text=”Nume” /&gt;<br />
&lt;mx:TextInput id=”lastName” /&gt;<br />
&lt;/mx:FormItem&gt;<br />
&lt;mx:FormItem&gt;<br />
&lt;mx:Label text=”Prenume” /&gt;<br />
&lt;mx:TextInput id=”firstName” /&gt;<br />
&lt;/mx:FormItem&gt;<br />
&lt;mx:FormItem&gt;<br />
&lt;mx:Label text=”Starea” /&gt;<br />
&lt;mx:CheckBox id=”active” /&gt;<br />
&lt;/mx:FormItem&gt;<br />
&lt;/mx:Form&gt;<br />
&lt;mx:ControlBar&gt;<br />
&lt;mx:Button label=”Salveaza modificarile” click=”save()” /&gt;<br />
&lt;mx:Button label=”Renunta” click=”close()” /&gt;<br />
&lt;/mx:ControlBar&gt;</span></span></p>
<p>Pentru a realiza acest lucru definim doua validatoare pentru cele doua campuri:</p>
<p style="padding-left: 30px;"><span style="color: #000080;"><span style="font-family: trebuchet ms,geneva;">&lt;mx:StringValidator<br />
id=”firstNameValidator”<br />
source=”{firstName}”<br />
property=”text”<br />
minLength=”3″<br />
tooShortError=”Introduceti cel putin 3 caractere”<br />
requiredFieldError=”Introduceti numele”<br />
/&gt;</span></span></p>
<p style="padding-left: 30px;"><span style="color: #000080;"><span style="font-family: trebuchet ms,geneva;">&lt;mx:StringValidator<br />
id=”lastNameValidator”<br />
source=”{lastName}”<br />
property=”text”<br />
minLength=”3″<br />
tooShortError=”Introduceti cel putin 3 caractere”<br />
requiredFieldError=”Introduceti numele”<br />
/&gt;</span></span></p>
<p>In continuare cream un array ce va contine lista cu validatorii ce se aplica pe elementele formularului:</p>
<p style="padding-left: 30px;"><span style="color: #000080;"><span style="font-family: trebuchet ms,geneva;">validatorArr = new Array(firstNameValidator, lastNameValidator);</span></span></p>
<p>Parcurgand array-ul de mai sus se poate determina daca formularul in cauza este sau nu valid:</p>
<p style="padding-left: 30px;"><span style="color: #000080;"><span style="font-family: trebuchet ms,geneva;">private function validForm(validatorArr:Array):Boolean<br />
{<br />
var validatorErrorArray:Array = Validator.validateAll(validatorArr);<br />
var isValidForm:Boolean = validatorErrorArray.length == 0;<br />
if (isValidForm) {<br />
return true;<br />
} else {<br />
var err:ValidationResultEvent;<br />
var errorMessageArray:Array = [];<br />
for each (err in validatorErrorArray) {<br />
var errField:String = FormItem(err.currentTarget.source.parent).label<br />
errorMessageArray.push(errField + “: ” + err.message);<br />
}<br />
}<br />
return false;<br />
}</span></span></p>
<p>Prin urmare punand conditia in modul urmator obtinem ce ne dorim:</p>
<p style="padding-left: 30px;"><span style="color: #000080;"><span style="font-family: trebuchet ms,geneva;">if (this.validForm(validatorArr))</span></span></p>
<p style="padding-left: 30px;"><span style="color: #000080;"><span style="font-family: trebuchet ms,geneva;">{</span></span></p>
<p style="padding-left: 60px;"><span style="color: #000080;"><span style="font-family: trebuchet ms,geneva;">// actions</span></span></p>
<p style="padding-left: 30px;"><span style="color: #000080;"><span style="font-family: trebuchet ms,geneva;">}</span></span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://andrei.colorsoft.ro/2009/12/14/validarea-unui-formular/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

