<?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>Razvan Surdu</title>
	<atom:link href="http://blog.razvansurdu.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.razvansurdu.com</link>
	<description>Personal Blog</description>
	<lastBuildDate>Tue, 25 May 2010 09:48:13 +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>Remove Focus From a Text Input In Flex</title>
		<link>http://blog.razvansurdu.com/2010/05/remove-focus-from-a-text-input-in-flex/</link>
		<comments>http://blog.razvansurdu.com/2010/05/remove-focus-from-a-text-input-in-flex/#comments</comments>
		<pubDate>Tue, 25 May 2010 09:48:13 +0000</pubDate>
		<dc:creator>Razvan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[quick tip]]></category>

		<guid isPermaLink="false">http://blog.razvansurdu.com/?p=336</guid>
		<description><![CDATA[If you want to remove the focus from a flex component you can use this:

this.stage.focus = null;

]]></description>
			<content:encoded><![CDATA[<p>If you want to remove the focus from a flex component you can use this:</p>
<pre class="brush: as3">
this.stage.focus = null;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.razvansurdu.com/2010/05/remove-focus-from-a-text-input-in-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Singletons&#8230; Learning the hard way</title>
		<link>http://blog.razvansurdu.com/2010/03/singletons-learning-the-hard-way/</link>
		<comments>http://blog.razvansurdu.com/2010/03/singletons-learning-the-hard-way/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 15:09:18 +0000</pubDate>
		<dc:creator>Razvan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.razvansurdu.com/?p=329</guid>
		<description><![CDATA[This post will be about the singletons, when you should use them and when not. I decided to write this post because I made a mistake on a project that I was working on using this design pattern and I had to spend half of day to fix it.
So if you don't know what a [...]]]></description>
			<content:encoded><![CDATA[<p>This post will be about the singletons, when you should use them and when not. I decided to write this post because I made a mistake on a project that I was working on using this design pattern and I had to spend half of day to fix it.</p>
<p>So if you don't know what a singleton is them a simple explication would be: a class that has no more then one instance witch you can use in the entire project. For a more detailed explication you can find out on <a href="http://en.wikipedia.org/wiki/Singleton_pattern">wikipedia</a>. We could even compere a singleton class to a global variable.</p>
<p><strong>Why you would want to use it?</strong><br />
It's main advantage is that you can access and modify it from any place of your application:  class methods, static methods, functions etc. Most of my singletons classes would have the role to store different properties for my application, lets say like the user that has logged on. You create a class based on this design patter, add the public property loggedUser and when the user logs in then that property is modified. You don't have to bother with passing the user variable from class to class, or component to component, if you want to use it just call the static getInstance method of the singleton class and read the loggedUser property. That's all. You can store many other information in this class like application status, general settings.</p>
<p><strong>When not to use it!</strong><br />
You created an application using one, or two singletons and everything looks ok and works perfectly. Then someone ask you to integrate you application in a bigger one and would like to have more then one instance of you application running inside it. From the moment that a new instance of you application/component is created your app is finished. Because you used singleton classes, the classes from the second or third instance will direct to the first singleton class.</p>
<p>This is it's main flaw. You can not have more then one instance. Sometimes it works for you sometimes it don't. But the main purpose of object oriented programming is to have objects related with other: parents, children - inheritance, siblings - more then one instance etc. If you create a component that can be uses in only one way than you remove all the flexibility and adaptivity from it the it's life time will be a very short one.</p>
<p>Be very careful when you choose this design pattern. You must think ahead and realize if you want your application to be a stand alone app  or just a component from a bigger one. Choose wisely <img src='http://blog.razvansurdu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.razvansurdu.com/2010/03/singletons-learning-the-hard-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How character formats impact data delivery</title>
		<link>http://blog.razvansurdu.com/2009/12/how-character-formats-impact-data-delivery/</link>
		<comments>http://blog.razvansurdu.com/2009/12/how-character-formats-impact-data-delivery/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 14:22:00 +0000</pubDate>
		<dc:creator>Razvan</dc:creator>
				<category><![CDATA[Examples]]></category>

		<guid isPermaLink="false">http://blog.razvansurdu.com/?p=321</guid>
		<description><![CDATA[Here is an interesting video about character formats and how to create a more scalable solution. Credits to Kevin Hoyt. 

]]></description>
			<content:encoded><![CDATA[<p>Here is an interesting video about character formats and how to create a more scalable solution. Credits to Kevin Hoyt. </p>
<p><object width="550" height="350"><param name="movie" value="http://tv.adobe.com/assets/swf/player.swf"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="FlashVars" value="fileID=4792&#038;context=64&#038;embeded=true&#038;environment=production"></param><embed src="http://tv.adobe.com/assets/swf/player.swf" flashvars="fileID=4792&#038;context=64&#038;embeded=true&#038;environment=production" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="550" height="350"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.razvansurdu.com/2009/12/how-character-formats-impact-data-delivery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One simple arhitecture for flex</title>
		<link>http://blog.razvansurdu.com/2009/11/one-simple-arhitecture-for-flex/</link>
		<comments>http://blog.razvansurdu.com/2009/11/one-simple-arhitecture-for-flex/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 08:47:54 +0000</pubDate>
		<dc:creator>Razvan</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[action script 3]]></category>
		<category><![CDATA[arhitecture]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.razvansurdu.com/?p=288</guid>
		<description><![CDATA[I am writing this article because many have asked me how to start a flex application and what are some best practices when laying out the foundation. I will create a mini project for this purpose and I will underline some important principals that you should consider when starting a flex application.
Ground rule: Separate your [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_293" class="wp-caption alignright" style="width: 242px"><img class="size-full wp-image-293" title="project_structure" src="http://blog.razvansurdu.com/wp-content/uploads/2009/11/project_structure.PNG" alt="Project Structure" width="232" height="184" /><p class="wp-caption-text">Project Structure</p></div>
<p>I am writing this article because many have asked me how to start a flex application and what are some best practices when laying out the foundation. I will create a mini project for this purpose and I will underline some important principals that you should consider when starting a flex application.</p>
<p>Ground rule: Separate your code using the Model - View - Controller design pattern. You don't what to be faced with the situation when you have a lot of lines in a single mxml file and you must quickly fix a critical bug, or you look on someone else code and don't have a clue where to develop the new feature that the project manager wanted.</p>
<p>Starting with <strong>the Model</strong>, I create a action script class MovieLibModel. In this class I create all the business elements of the application. In my example here I create the public var movies which holds all the movies loaded from the database. The class is a singleton and I can access it's methods from anywhere in the application using the getInstance static method. If I had a more complex application here I would store the user state, his favorite movies or any kind of data that I will later need in the interface.</p>
<pre class="brush: as3">package model
{
	import mx.collections.ArrayCollection;

	[Bindable]
	public class MovieLibModel
	{
		static private var _instance:MovieLibModel = null;

		public function MovieLibModel()
		{
		}

		static public function getInstance():MovieLibModel
		{
			if (MovieLibModel._instance == null)
			{
				MovieLibModel._instance = new MovieLibModel();
			}

			return MovieLibModel._instance;
		}

		public var movies:ArrayCollection = null;
	}
}</pre>
<p><strong>The View</strong> is represented by the application interface. Panels, buttons, alert messages and other UI elements form the visual part of the program. This part is mostly created by designers in tools like Photoshop, Fireworks and the exported with Flash Catalist. In flex you create components for the login zone, for product display page etc and you bind the visual elements to the model data. In my example I create two panels one with a datagrid used to list the movies and one with a form for adding a new movie to the databse.</p>
<div id="attachment_292" class="wp-caption aligncenter" style="width: 536px"><img class="size-full wp-image-292  " title="interface" src="http://blog.razvansurdu.com/wp-content/uploads/2009/11/interface.png" alt="interface" width="526" height="165" /><p class="wp-caption-text">Application Interface</p></div>
<pre class="brush: as3"><?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">

	<mx:Script>
		<![CDATA[
			import controller.MovieLibController;
			import model.MovieLibModel;

			Bindable
			public var appModel:MovieLibModel = MovieLibModel.getInstance();

			public var appController:MovieLibController = MovieLibController.getInstance();

			public function addMovie():void
			{
				appController.addMovie(tiTitle.text, tiRating.text, taDescription.text);
			}
		]]&gt;
	</mx:Script>

	<!--View Related Stuff: UI, Design elements etc.-->

	<mx:HBox>
		<mx:Panel title="Movie List">
			<mx:DataGrid width="400" dataProvider="{appModel.movies}">
				<mx:columns>
					<mx:DataGridColumn dataField="Title" headerText="Title"/>
					<mx:DataGridColumn dataField="Rating" headerText="Rating"/>
					<mx:DataGridColumn dataField="Description" headerText="Description"/>
				</mx:columns>
			</mx:DataGrid>
		</mx:Panel>

		<mx:Panel title="Add New Movie">
			<mx:Form>
				<mx:FormItem label="Title">
					<mx:TextInput id="tiTitle" />
				</mx:FormItem>
				<mx:FormItem label="Rating">
					<mx:TextInput id="tiRating" />
				</mx:FormItem>
				<mx:FormItem label="Description">
					<mx:TextArea id="taDescription">
					</mx:TextArea>
				</mx:FormItem>
				<mx:FormItem>
					<mx:Button label="Add Movie" click="addMovie()"/>
				</mx:FormItem>
			</mx:Form>
		</mx:Panel>
	</mx:HBox>
</mx:Canvas>
</pre>
<p>Now we must bind the two elements together. When the user inserts a new movie it should be added to the database, and the movie datagrid updated. For this we use <strong>the Controller</strong>. It's main roles are to handle the actions dispatched by the view, update the model, exchange data with the database or other external services. In this example I use a simple http service to communicate with the backend which is a php script.</p>
<pre class="brush: as3">package controller
{
	import model.MovieLibModel;

	import mx.controls.Alert;
	import mx.rpc.events.FaultEvent;
	import mx.rpc.events.ResultEvent;
	import mx.rpc.http.HTTPService;

	public class MovieLibController
	{
		static private var _instance:MovieLibController = null;

		public function MovieLibController()
		{
			init();
		}

		static public function getInstance():MovieLibController
		{
			if (MovieLibController._instance == null)
			{
				MovieLibController._instance = new MovieLibController();
			}

			return MovieLibController._instance;
		}

		public var appModel:MovieLibModel = MovieLibModel.getInstance();

		private var myService:HTTPService = null;

		public function init():void
		{
			myService = new HTTPService;
			myService.method = "POST";
			myService.url = "http://localhost/razvansurdu.com/movieLib/server/";
			myService.resultFormat = "array";

			myService.addEventListener(FaultEvent.FAULT, myService_faultHandler);
			myService.addEventListener(ResultEvent.RESULT, myService_resultHandler);
		}

		public function addMovie(title:String, rating:String, description:String):void
		{
			var o:Object = new Object();
			o.title = title;
			o.rating = rating;
			o.description = description;

			o.action = "addMovie";
			myService.send(o);
		}

		public function getMovies():void
		{
			var o:Object = new Object();
			o.action = "getMovies";

			myService.send(o);
		}

		protected function myService_resultHandler(event:ResultEvent):void
		{
			appModel.movies = event.result[0].data.movie;
		}

		protected function myService_faultHandler(event:FaultEvent):void
		{
			Alert.show(event.fault.faultString);
		}
	}
}</pre>
<p>Based on this architecture you can add more features, add more visual elements and have a well organized app, easy to debug and  maintain.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.razvansurdu.com/2009/11/one-simple-arhitecture-for-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert a Xml to an ArrayCollection in AS3</title>
		<link>http://blog.razvansurdu.com/2009/11/convert-a-xml-to-an-arraycollection-in-as3/</link>
		<comments>http://blog.razvansurdu.com/2009/11/convert-a-xml-to-an-arraycollection-in-as3/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 15:14:46 +0000</pubDate>
		<dc:creator>Razvan</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[action script 3]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[data conversion]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.razvansurdu.com/?p=273</guid>
		<description><![CDATA[Here is a quick method to convert a xml to an array collection. Because you pass the XML url (Eg: './assets/data.xml') to the first argument you will receive the array asynchronous using the callback function. If you have already the xml content in a variable use only the code in the anonymous function at the [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a quick method to convert a xml to an array collection. Because you pass the XML url (Eg: '<em>./assets/data.xml</em>') to the first argument you will receive the array asynchronous using the callback function. If you have already the xml content in a variable use only the code in the anonymous function at the event.COMPLETE dispatch.</p>
<pre class="brush: as3">static public function convertXmlToArrayCollection( xmlUrl:String, rootTag:String, repeatedElement:String, callback:Function ):void
{
	var xmlLoader:URLLoader = new URLLoader();
	xmlLoader.addEventListener(Event.COMPLETE, function(e:Event):void
	{
		var xml:XMLDocument = new XMLDocument( e.target.data );
		xml.ignoreWhite = true;

		var decoder:SimpleXMLDecoder = new SimpleXMLDecoder();
		var data:Object = decoder.decodeXML( xml );
		var array:Array= ArrayUtil.toArray(data[rootTag][repeatedElement]);

		callback(new ArrayCollection( array ));
	});
		xmlLoader.load(new URLRequest(xmlUrl));
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.razvansurdu.com/2009/11/convert-a-xml-to-an-arraycollection-in-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great day for Flex/Flash Developers</title>
		<link>http://blog.razvansurdu.com/2009/10/great-day-for-flexflash-developers/</link>
		<comments>http://blog.razvansurdu.com/2009/10/great-day-for-flexflash-developers/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 17:37:18 +0000</pubDate>
		<dc:creator>Razvan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Iphone]]></category>

		<guid isPermaLink="false">http://blog.razvansurdu.com/?p=267</guid>
		<description><![CDATA[Today at Max 2009 Adobe announced the ability to build iPhone application with action script 3. Multitouch api and other were added to flash so developers could take advantage of the iPhone features. By the end of this year Adobe promised to release the tools required and personally I can't wait to create my first [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/images/appsfor_iphone_ph2_557x200.jpg" alt="Applications for iPhone" width="557" height="200" />Today at Max 2009 Adobe announced the ability to build iPhone application with action script 3. Multitouch api and other were added to flash so developers could take advantage of the iPhone features. By the end of this year Adobe promised to release the tools required and personally I can't wait to create my first flash iPhone app.</p>
<p>You can find more information on the <a href="http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/">adobe labs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.razvansurdu.com/2009/10/great-day-for-flexflash-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a system tray icon and menu for your AIR application</title>
		<link>http://blog.razvansurdu.com/2009/08/creating-a-system-tray-icon-and-menu-for-your-air-application/</link>
		<comments>http://blog.razvansurdu.com/2009/08/creating-a-system-tray-icon-and-menu-for-your-air-application/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 05:36:21 +0000</pubDate>
		<dc:creator>Razvan</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://blog.razvansurdu.com/?p=253</guid>
		<description><![CDATA[
private function createSysTray():void
{
	if(NativeApplication.supportsDockIcon)
	{
		NativeApplication.nativeApplication.icon.bitmaps = 	[ new icon16().bitmapData ];
	    var dockIcon:DockIcon = NativeApplication.nativeApplication.icon as DockIcon;
	    NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, showMainWindow);
	    dockIcon.menu = createIconMenu();
	} else if (NativeApplication.supportsSystemTrayIcon){
		NativeApplication.nativeApplication.icon.bitmaps = 	[ new icon16().bitmapData ];
	    var sysTrayIcon:SystemTrayIcon = NativeApplication.nativeApplication.icon as SystemTrayIcon;
	    sysTrayIcon.tooltip = "Tooltip";
	   	sysTrayIcon.addEventListener(MouseEvent.CLICK,function():void
	  [...]]]></description>
			<content:encoded><![CDATA[<pre class="brush: as3">
private function createSysTray():void
{
	if(NativeApplication.supportsDockIcon)
	{
		NativeApplication.nativeApplication.icon.bitmaps = 	[ new icon16().bitmapData ];
	    var dockIcon:DockIcon = NativeApplication.nativeApplication.icon as DockIcon;
	    NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, showMainWindow);
	    dockIcon.menu = createIconMenu();
	} else if (NativeApplication.supportsSystemTrayIcon){
		NativeApplication.nativeApplication.icon.bitmaps = 	[ new icon16().bitmapData ];
	    var sysTrayIcon:SystemTrayIcon = NativeApplication.nativeApplication.icon as SystemTrayIcon;
	    sysTrayIcon.tooltip = "Tooltip";
	   	sysTrayIcon.addEventListener(MouseEvent.CLICK,function():void
	   	{
	   		//Icon Click Handler
	   	});
	    sysTrayIcon.menu = createIconMenu();
	}
}

private function createIconMenu():NativeMenu{
    if(NativeApplication.supportsSystemTrayIcon){
    	var iconMenu:NativeMenu = new NativeMenu();

    	var showSettingsCommand:NativeMenuItem = iconMenu.addItem(new NativeMenuItem("Edit Settings"));
    	showSettingsCommand.addEventListener(Event.SELECT, showSettingsWindow);

        var exitCommand: NativeMenuItem = iconMenu.addItem(new NativeMenuItem("Close"));
        exitCommand.addEventListener(Event.SELECT, function ():void
        {
        	stage.nativeWindow.close();
        });
    }
    return iconMenu;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.razvansurdu.com/2009/08/creating-a-system-tray-icon-and-menu-for-your-air-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retrieving a web page behind a proxy in php</title>
		<link>http://blog.razvansurdu.com/2009/08/retrieving-a-web-page-behind-a-proxy-in-php/</link>
		<comments>http://blog.razvansurdu.com/2009/08/retrieving-a-web-page-behind-a-proxy-in-php/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 17:03:31 +0000</pubDate>
		<dc:creator>Razvan</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://blog.razvansurdu.com/?p=244</guid>
		<description><![CDATA[If you need to retrieve a web page or file from the web and you are behind a proxy that requires authentication you can use this methods:

$params = array
(
	'http' => array
	(
		'method' => 'GET',
		'header'  => 'Proxy-Authorization: Basic ' . base64_encode(PROXY_USERNAME . ':' . PROXY_PASSWORD) . "\r\n\r\n",
		'proxy' => 'tcp://PROXY_ADDRESS:PROXY_PORT',
		'request_fulluri' => true,
	)
);
$context = stream_context_create($params);

echo file_get_contents('http://www.google.com', null, $context);
For [...]]]></description>
			<content:encoded><![CDATA[<p>If you need to retrieve a web page or file from the web and you are behind a proxy that requires authentication you can use this methods:</p>
<pre class="brush: php">
$params = array
(
	'http' => array
	(
		'method' => 'GET',
		'header'  => 'Proxy-Authorization: Basic ' . base64_encode(PROXY_USERNAME . ':' . PROXY_PASSWORD) . "\r\n\r\n",
		'proxy' => 'tcp://PROXY_ADDRESS:PROXY_PORT',
		'request_fulluri' => true,
	)
);
$context = stream_context_create($params);

echo file_get_contents('http://www.google.com', null, $context);</pre>
<p>For this method you need to have curl extension enabled:</p>
<pre class="brush: php">$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL,"http://www.google.com/");
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_PROXY, 'proxyAddress:proxyPort');
curl_setopt ($ch, CURLOPT_PROXYUSERPWD, "username:password");
$page = curl_exec($ch);
echo($page);</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.razvansurdu.com/2009/08/retrieving-a-web-page-behind-a-proxy-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From php to flex</title>
		<link>http://blog.razvansurdu.com/2009/08/from-php-to-flex/</link>
		<comments>http://blog.razvansurdu.com/2009/08/from-php-to-flex/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 12:51:59 +0000</pubDate>
		<dc:creator>Razvan</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://blog.razvansurdu.com/?p=231</guid>
		<description><![CDATA[Being myself a developer that started with php and moved to flex I encourage all of php developers to read this article: http://corlan.org/2009/08/14/flex-for-php-developers-article/. Mihai Corlan, one of the best flex evangelists, described in great details the similarities and differences between php and flex.
Here is the table of contents:

What is Flex?

Flex: two languages, one framework to [...]]]></description>
			<content:encoded><![CDATA[<p>Being myself a developer that started with php and moved to flex I encourage all of php developers to read this article: <a href="http://corlan.org/2009/08/14/flex-for-php-developers-article/">http://corlan.org/2009/08/14/flex-for-php-developers-article/</a>. Mihai Corlan, one of the best flex evangelists, described in great details the similarities and differences between php and flex.</p>
<p>Here is the table of contents:</p>
<ol>
<li><a href="http://corlan.org/flex-for-php-developers/#a">What is Flex?</a>
<ol>
<li><a href="http://corlan.org/flex-for-php-developers/#a1">Flex: two languages, one framework to bind them</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#a2">Why you should care about Flex</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#a3">From thin client to smart/rich client</a></li>
</ol>
</li>
<li><a href="http://corlan.org/flex-for-php-developers/#b">Introduction to the MXML language</a>
<ol>
<li><a href="http://corlan.org/flex-for-php-developers/#b1">Mixing MXML with ActionScript 3</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#b2">CSS styles</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#b3">Modifying MXML code at runtime</a></li>
</ol>
</li>
<li><a href="http://corlan.org/flex-for-php-developers/#c">Introduction to the ActionScript 3 language</a>
<ol>
<li><a href="http://corlan.org/flex-for-php-developers/#c1">Separating statements</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#c2">Data types, variables, constants</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#c3">Functions and Anonymous functions (closures)</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#c4">OOP: classes and interfaces</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#c5">Variable scope</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#c6">Arrays</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#c7">Namespaces</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#c8">Working with XML</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#c9">Dynamic ActionScript</a></li>
</ol>
</li>
<li><a href="http://corlan.org/flex-for-php-developers/#d">Flex is asynchronous</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#e">Data binding, metadata tags, and reflection</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#f">Where are my data, bring it on!</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#g">User authentication in Flex and PHP projects</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#h">Working on Flex and PHP projects</a>
<ol>
<li><a href="http://corlan.org/flex-for-php-developers/#h1">Flex SDK</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#h2">Flex Builder / Flash Builder</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#h3">Debugging Flex applications</a></li>
</ol>
</li>
<li><a href="http://corlan.org/flex-for-php-developers/#i">What is Adobe AIR?</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#j">What’s next?</a></li>
<li><a href="http://corlan.org/flex-for-php-developers/#k">Where to go from here</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.razvansurdu.com/2009/08/from-php-to-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graduated</title>
		<link>http://blog.razvansurdu.com/2009/08/graduated/</link>
		<comments>http://blog.razvansurdu.com/2009/08/graduated/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 12:51:28 +0000</pubDate>
		<dc:creator>Razvan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.razvansurdu.com/?p=228</guid>
		<description><![CDATA[On 16 July 2009 I graduated from the Automatics and Computer Science at the University of Polytechnic of Bucharest. Hoorrayy  
]]></description>
			<content:encoded><![CDATA[<div id="attachment_234" class="wp-caption alignright" style="width: 226px"><img class="size-medium wp-image-234  " title="P1030888" src="http://blog.razvansurdu.com/wp-content/uploads/2009/08/P1030888-300x225.jpg" alt="P1030888" width="216" height="162" /><p class="wp-caption-text">European Engineer <img src='http://blog.razvansurdu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></div>
<p>On 16 July 2009 I graduated from the Automatics and Computer Science at the University of Polytechnic of Bucharest. Hoorrayy <img src='http://blog.razvansurdu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.razvansurdu.com/2009/08/graduated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
