<?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>Fightskillz.com &#187; Programming</title>
	<atom:link href="http://fightskillz.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://fightskillz.com</link>
	<description>Life, Code, &#38; Idiocy</description>
	<lastBuildDate>Sat, 14 Aug 2010 00:54:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Weird Flex Error #2006</title>
		<link>http://fightskillz.com/2010/07/weird-flex-error-2006/</link>
		<comments>http://fightskillz.com/2010/07/weird-flex-error-2006/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 15:31:20 +0000</pubDate>
		<dc:creator>Yoav Givati</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[error #2006]]></category>
		<category><![CDATA[firstChild]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[lastChild]]></category>
		<category><![CDATA[mxml]]></category>
		<category><![CDATA[removedEffect]]></category>
		<category><![CDATA[States]]></category>

		<guid isPermaLink="false">http://fightskillz.com/?p=2167</guid>
		<description><![CDATA[I was getting this weird error whenever switching from a given state to it's parent state in a Flex 3.5 based project.
RangeError: Error #2006: The supplied index is out of bounds.
	at flash.display::DisplayObjectContainer/addChildAt()
	at mx.core::Container/addChildAt()
	at mx.effects::EffectManager$/removedEffectHandler()
	at Function/http://adobe.com/AS3/2006/builtin::apply()
	at mx.core::UIComponent/callLaterDispatcher2()
	at mx.core::UIComponent/callLaterDispatcher()
It threw me for a minute because I hadn't made any changes to effects since I last tested the [...]]]></description>
			<content:encoded><![CDATA[<p>I was getting this weird error whenever switching from a given state to it's parent state in a Flex 3.5 based project.</p>
<pre>RangeError: Error #2006: The supplied index is out of bounds.
	at flash.display::DisplayObjectContainer/addChildAt()
	at mx.core::Container/addChildAt()
	at mx.effects::EffectManager$/removedEffectHandler()
	at Function/http://adobe.com/AS3/2006/builtin::apply()
	at mx.core::UIComponent/callLaterDispatcher2()
	at mx.core::UIComponent/callLaterDispatcher()</pre>
<p>It threw me for a minute because I hadn't made any changes to effects since I last tested the application and I couldn't see any connection between the code I had just written and any effects in the app. But after hunting around I found the culprit. There's a set of components in a Canvas that gets removed when moving to the parent state. What I had done was separate those components into two Canvases(Canvi?). For whatever crazy reason the new second Canvas can't have a RemoveEffect. The code works fine if just the first Canvas has it, but if both or just the second Canvas has it then it throws that error.</p>
<p><em>side note: the reason it took me a while to find the source of the error was because I copy/pasted the canvas declaration only changing the id, and I forgot that there was a removedEffect associated with it.</em></p>
<p><strong>But wait there's more</strong>. The reason I split the components into two distinct Canvases was so I could position one below and the other on top of a third major component in z-space. The solution was to add the first Canvas as a "firstChild" and the second Canvas as a "lastChild". That it seems was the problem. In mxml when changing states you apparently can't add a firstChild before adding a lastChild. so I copy and pasted the first Canvas below the second one, so that all the lastChild additions occurred before all the firstChild additions and voila, presto, it works.</p>
<p>The reason is that when you move from a state back to its parent state it follows the order in which you add components in the state declaration to remove them. If the first component you add is added as a firstChild then that <strong>get's removed first changing the indexes and number of children of the parent container</strong>. I guess the underlying state changing function already calculated what the lastChild index was, so when trying to remove a Child with the pre-calculated index of lastChild it triggered an index out of bounds error.</p>
]]></content:encoded>
			<wfw:commentRss>http://fightskillz.com/2010/07/weird-flex-error-2006/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe AIR Installer Not Default For Opening .AIR FIles</title>
		<link>http://fightskillz.com/2010/04/adobe-air-installer-not-default-for-opening-air-files/</link>
		<comments>http://fightskillz.com/2010/04/adobe-air-installer-not-default-for-opening-air-files/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 21:24:26 +0000</pubDate>
		<dc:creator>Yoav Givati</dc:creator>
				<category><![CDATA[Idiocy]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[install]]></category>

		<guid isPermaLink="false">http://fightskillz.com/?p=2060</guid>
		<description><![CDATA[For some unknown reason - which could likely be attributed to my own stupidity if one were to look into it, .AIR files were associated with the Windows version of Firefox inside a Parallels VM I have set up on my Mac. So trying to install an AIR application, or letting an AIR application auto [...]]]></description>
			<content:encoded><![CDATA[<p>For some unknown reason - which could likely be attributed to my own stupidity if one were to look into it, .AIR files were associated with the Windows version of Firefox inside a Parallels VM I have set up on my Mac. So trying to install an AIR application, or letting an AIR application auto update itself resulted in launching Parallels.</p>
<p>I figured I'd post this cause the location of the AIR Application Installer that you would want to be associated with .AIR files eluded me.</p>
<p>So to fix it just right click on the .AIR file. Choose "Get Info". In the Info window expand the "Open with:" arrow, and make sure "Adobe AIR Application Installer" is selected. If it isn't choose "Other..." in the dropdown list and navigate to Applications->Utilities->Adobe AIR Application Installer, select it and tick the box that says "Always Open With" before clicking "Add". Then back in the Info window click the "Change All..." button to apply it to all .AIR files.</p>
]]></content:encoded>
			<wfw:commentRss>http://fightskillz.com/2010/04/adobe-air-installer-not-default-for-opening-air-files/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flex 4 Spark Button Weird Label Behaviour</title>
		<link>http://fightskillz.com/2010/04/flex-4-spark-button-weird-label-behaviour/</link>
		<comments>http://fightskillz.com/2010/04/flex-4-spark-button-weird-label-behaviour/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 19:35:03 +0000</pubDate>
		<dc:creator>Yoav Givati</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[flex 4]]></category>
		<category><![CDATA[label]]></category>
		<category><![CDATA[spark]]></category>

		<guid isPermaLink="false">http://fightskillz.com/?p=2049</guid>
		<description><![CDATA[I'm currently migrating Ear-Drum.org Desktop to flex 4. Using an embedded font for the main navigation buttons; which are used to switch between states. When you're in a specific state the nav button for that state switches to a "selected button" skin which is just a copy of the regular skin with a few colours [...]]]></description>
			<content:encoded><![CDATA[<p>I'm currently migrating Ear-Drum.org Desktop to flex 4. Using an embedded font for the main navigation buttons; which are used to switch between states. When you're in a specific state the nav button for that state switches to a "selected button" skin which is just a copy of the regular skin with a few colours changed. The reason for doing that instead of just disabling each nav button in its given state is so they stay interactive, and are used when in the state to refresh/reload the state.</p>
<p>This worked fine but now in it's spark implementation when moving between random states the button label if it contains a single space will occasionally jump around - providing you've rolled over the button before changing state. It would take a boring while to explain it in more detail so I just recorded the behaviour. Best watched in full screen.</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/DWW7ZJpFN4Q&hl=en_US&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/DWW7ZJpFN4Q&hl=en_US&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://fightskillz.com/2010/04/flex-4-spark-button-weird-label-behaviour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone OS 4</title>
		<link>http://fightskillz.com/2010/04/iphone-os-4/</link>
		<comments>http://fightskillz.com/2010/04/iphone-os-4/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 02:35:42 +0000</pubDate>
		<dc:creator>Yoav Givati</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[anti-competitive]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPhone OS 4]]></category>
		<category><![CDATA[iTouch]]></category>

		<guid isPermaLink="false">http://fightskillz.com/?p=2012</guid>
		<description><![CDATA[
The fourth iPhone OS is going to be announced tomorrow at 1pm(EST). The updates should propagate to iTouches and iPads as well. Things expected and hoped for include multitasking for 3rd party apps, wireless syncing, unified inbox, better maps, and some other shit.
The question is why Apple is making so many announcements, when they usually have very [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>The fourth iPhone OS is going to be announced tomorrow at 1pm(EST). The updates should propagate to iTouches and iPads as well. Things expected and hoped for include multitasking for 3rd party apps, wireless syncing, unified inbox, better maps, and some other shit.</p>
<p>The question is why Apple is making so many announcements, when they usually have very few meticulously planned expansive ones.</p>
<p>Adobe CS5 is launching in 4 days, watch the countdown here [<a href="http://cs5launch.adobe.com/">http://cs5launch.adobe.com/</a>]. During Adobe's announcement they will let us know not only about a huge leap in performance and features of the tools everyone uses (ie: Photoshop, Illustrator, etc.) but also tools to export apps built with Flash(formerly Flex) Builder to the Apple app store. Currently you can build an app in Flash Builder and deploy the same code on the web, and on the desktop with AIR. Very soon, hopefully in 4 days Flash Player 10.1 and Adobe AIR 2.0 will be released allowing the additional output of your same code to most smart phones and portable devices as well, and very low level socket support and advanced text support, among many other features and less resource consumption making it a truly compelling option for serious apps deployed across all screens.</p>
<p>Once Adobe announces this everyone is going to be making iPhone, iTouch, and iPad apps in Flash Builder so they can develop once deploy everywhere. Apple deliberately blocks Flash on iDevices because they want people to learn Objective-C (the language for making iPhone apps). If you spend money learning Objective-C and clients want to jump on the iPad and spend money hiring developers who already know the language then you're only able to target iDevices, and now with the screen size and performance of the iPad you then have to rewrite and rerelease a version of your app specifically targeting the iPad. Objective-C is a really shit language, and solely dependent on Apple products<strong>[apparently not according to Nick's comment - better take his word for it]</strong>.</p>
<p>So Apple is racing to get each thing out as soon as they're ready to beat the launch of Adobe CS5 so as many clients and developers lock into Objective-C as possible. Apple lost millions of users because they refuse to support Flash which even though the web is now slowly moving to support the limited and unofficial HTML5 video spec along with IE and other niche technologies for compatibility's sake, Apple purposefully restricted their mobile devices from 70+% of the video on the web and the vast majority of interactive content to the end of being anti-competitive. They upset clients, lost more, and tarnished their company image for years. Now CS5 is coming out and it'll make their anti-competitiveness irrelevant and pointless. So Apple needs to squeeze out products and features and create lots of buzz and chatter to try lock in as many people as possible and I guess attempt to overshadow the CS5 announcement so nobody notices.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://fightskillz.com/2010/04/iphone-os-4/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Flash Snippets for Flash Builder 4</title>
		<link>http://fightskillz.com/2010/03/flash-snippets-for-flash-builder-4/</link>
		<comments>http://fightskillz.com/2010/03/flash-snippets-for-flash-builder-4/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 23:46:14 +0000</pubDate>
		<dc:creator>Yoav Givati</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[mxml]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://fightskillz.com/?p=1992</guid>
		<description><![CDATA[I'm getting used to Flash Builder 4, man is it fast. I came across this plugin by Lee Brimlow, it's SnipTreeView adapted to work with .mxml files and in FB4. Just download it from his blog and add it to the plugins folder, then restart. There's a quick video how to, highly recommended.
Flash Snippets [http://theflashblog.com/?p=1494]
]]></description>
			<content:encoded><![CDATA[<p>I'm getting used to Flash Builder 4, man is it fast. I came across this plugin by Lee Brimlow, it's SnipTreeView adapted to work with .mxml files and in FB4. Just download it from his blog and add it to the plugins folder, then restart. There's a quick video how to, highly recommended.</p>
<p>Flash Snippets [<a href="http://theflashblog.com/?p=1494">http://theflashblog.com/?p=1494</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://fightskillz.com/2010/03/flash-snippets-for-flash-builder-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From Google With Love</title>
		<link>http://fightskillz.com/2010/02/from-google-with-love/</link>
		<comments>http://fightskillz.com/2010/02/from-google-with-love/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 19:05:11 +0000</pubDate>
		<dc:creator>Yoav Givati</dc:creator>
				<category><![CDATA[A Shot At Crazy]]></category>
		<category><![CDATA[Anti-Idiocy]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[6]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Apps]]></category>
		<category><![CDATA[IE 6]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://fightskillz.com/?p=1946</guid>
		<description><![CDATA[I just got this in my inbox from Google.
Before I quote the email I'd just like to add my own heart felt sentiments: Please die Internet Explorer 6. Please die now. You're very old, insecure, and stupid. Please die fast but painfully for putting the world through extended support and allowing yourself to exist for [...]]]></description>
			<content:encoded><![CDATA[<p>I just got this in my inbox from Google.</p>
<p>Before I quote the email I'd just like to add my own heart felt sentiments: Please die Internet Explorer 6. Please die now. You're very old, insecure, and stupid. Please die fast but painfully for putting the world through extended support and allowing yourself to exist for what? almost 10 years now?!</p>
<blockquote>
<p>Dear Google Apps admin,​</p>
<p>In order to continue to improve our products and deliver more sophisticated features and performance, we are harnessing some of the latest improvements in web browser technology.  This includes faster JavaScript processing and new standards like HTML5.  As a result, over the course of 2010, we will be phasing out support for Microsoft Internet Explorer 6.0 ​as well as other older browsers that are not supported by their own manufacturers.</p>
<p>We plan to begin phasing out support of these older browsers on the Google Docs suite and the Google Sites editor on March 1, 2010.  After that point, certain functionality within these applications may have higher latency and may not work correctly in these older browsers. Later in 2010, we will start to phase out support for these browsers for Google Mail and Google Calendar.</p>
<p>Google Apps will continue to support Internet Explorer 7.0 and above, Firefox 3.0 and above, Google Chrome 4.0 and above, and Safari 3.0 and above.</p>
<p>Starting this week, users on these older browsers will see a message in Google Docs and the Google Sites editor explaining this change and asking them to upgrade their browser.  We will also alert you again closer to March 1 to remind you of this change.</p>
<p>In 2009, the Google Apps team delivered more than 100 improvements to enhance your product experience.  We are aiming to beat that in 2010 and continue to deliver the best and most innovative collaboration products for businesses.</p>
<p>Thank you for your continued support!</p>
<p>Sincerely,</p>
<p>The Google Apps team</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://fightskillz.com/2010/02/from-google-with-love/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Some Sense</title>
		<link>http://fightskillz.com/2010/02/some-sense/</link>
		<comments>http://fightskillz.com/2010/02/some-sense/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 17:00:07 +0000</pubDate>
		<dc:creator>Yoav Givati</dc:creator>
				<category><![CDATA[Anti-Idiocy]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[10.1]]></category>
		<category><![CDATA[dailymotion]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Gizmodo]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[vimeo]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://fightskillz.com/?p=1936</guid>
		<description><![CDATA[I kept reading on Giz about how HTML 5 takeover is imminent and each time lost a little respect for my favourite gadget blog. It's good to know that when it comes down to it some of them do actually know what they're talking about.
Gizmodo, who were some of the idiots I referred to in [...]]]></description>
			<content:encoded><![CDATA[<p>I kept reading on Giz about how HTML 5 takeover is imminent and each time lost a little respect for my favourite gadget blog. It's good to know that when it comes down to it some of them do actually know what they're talking about.</p>
<p>Gizmodo, who were some of the idiots I referred to in my post yesterday redeemed themselves by publishing a very comprehensive breakdown of why HTML 5 isn't saving anyone anytime soon 40 minutes ago, and (although they only briefly touched on it, being that the post is primarily about HTML 5) why Flash is better at doing the kind of things HTML 5 is supposed to usurp in imagination land.</p>
<p>HTML isn't platform ubiquitous and never will be because whoever has the monopoly is also directly motivated to keep web standards to shit. Companies are companies and the monopoly will always be a company.</p>
<p>Flash on the other hand is already platform ubiquitous. Write once, deploy everywhere. The only problem with flash is resource use, which 10.1 - already in 2nd beta will address.</p>
<p>Flash also now has the ability to run native c/c++ code, so decoding video with flash will be as fast as doing it natively in the browser. Well as doing it natively in the browser will eventually maybe possibly in 5-10 years if the web can come together in happy fairy land on HTML 5 implementation.</p>
<p>Goodbye Flash?? I say goodbye web browsers and hello Adobe AIR branded front ends to web services and content.</p>
<p>Here's a small excerpt from <span style="font-family: 'Lucida Grande', Helvetica, Arial, sans-serif; line-height: 20px; font-size: 12px;">John Herrman of <span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; font-size: 13px;">Gizmodo's comprehensive HTML 5 breakdown, although I strongly recommend you <a href="http://gizmodo.com/5461711/giz-explains-why-html5-isnt-going-to-save-the-internet">read the whole thing</a> as it makes things clear for the tech - and not so tech, savvy:</span></span></p>
<blockquote>
<p><span style="font-family: 'Lucida Grande', Helvetica, Arial, sans-serif; line-height: 20px; font-size: 12px;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; font-size: 13px;"> ...</span></span></p>
<p><span style="font-family: 'Lucida Grande', Helvetica, Arial, sans-serif; line-height: 20px; font-size: 12px;"> </span></p>
<h2 style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;">The Basics</h2>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;">Before we get into what HTML5 means, we have to talk about what it <em>is</em>, and to talk about what it is, we need to talk about what it's built upon.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;">Hypertext markup language, or HTML, is the language underneath every web page you've ever been to. The language, along with its various complementary technologies (see: CSS, Javascript), has become immensely complex over the years, but the concept is simple. HTML is what turns this:</p>
<blockquote style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #eaf2f4; quotes: none; line-height: 18px; color: #51646b; background-position: initial initial; background-repeat: initial initial; padding: 10px; border: 0px initial initial;">
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; margin: 0px; border: 0px initial initial;">&lt;u&gt;&lt;em&gt;&lt;strong&gt;&lt;a href="http://gizmodo.com"&gt;Hello!&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;</p>
</blockquote>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;">Into this:</p>
<blockquote style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #eaf2f4; quotes: none; line-height: 18px; color: #51646b; background-position: initial initial; background-repeat: initial initial; padding: 10px; border: 0px initial initial;">
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; margin: 0px; border: 0px initial initial;"><span style="text-decoration: underline;"><em><strong><a style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; text-decoration: none; color: #dc870e; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;" href="http://gizmodo.com">Hello!</a></strong></em></span></p>
</blockquote>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;">It's basically a set of instructions that a website hands to a browser, which the browser then reads and converts into a formatted page, full of text, images, links and whatever else.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"><img class="left image158" style="margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: left; float: left; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 1px solid #b3b3b3;" src="http://cache.gawker.com/assets/images/4/2010/02/thumb160x_screencap_2010-02-03_at_10.57.44_am_01.jpg" alt="" width="158" />Here, try this: Right-click anywhere on this webpage, and click "View Page Source," or "View Source," or something to that effect. Your eyes will be assaulted with a wall of inscrutable text. You'll see evidence of syntax, but your brain won't be able to parse it. Your eyes will glaze over, and you will close the window. This, my friends, is HTML. But you probably already knew that, because it's 2010, basic web languages are basically in our drinking water. So what's this "5" business?</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;">Somewhere in the <span style="text-decoration: line-through;">central command center</span> basement of the internet, there's a group of guys who maintain the standard, or the rules, of HTML. In the case of HTML5, the buck stops with the Web Hypertext Application Technology Working Group (WHATWG), and to a lesser extent, the World Wide Web Consortium (W3C). It is through these independent standards organizations that new features are codified and presented to the public, and later—in theory—supported by various browsers, no matter what company is behind them.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;">In the early nineties, the W3C and a few influential torchbearers would collect various new web features thought up by different browser makers, publishing these standards with the hope that we didn't end up with different internets for different browsers. By the mid to late nineties, the standards had grown in both size and stature, then serving as the <em>de facto</em> guide for browser makers and developers alike. (If this sounds a bit rosy, the reality was far grimmer—just ask any seasoned web developer about Internet Explorer, version 6 or earlier.)</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;">Despite an occasionally rocky road, HTML standards went beyond being just a record of changes in web technology; eventually they became the blueprint to push them forward. Still, standards are guides, not laws, and no browser maker has to adopt each and every revision.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;">The last major revision of the HTML standard, version 4.01, was published in 1999. HTML5 hasn't yet been formally codified, but it was born in 2004 and has been undergoing steady work and maintenance since. In the '90s, HTML discussion centered around topics like font coloration, or tables, or buttons, or something more esoteric. Today, a new HTML version means deep-down support for the modern web, namely web apps and video.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"><a href="http://gizmodo.com/5461711/giz-explains-why-html5-isnt-going-to-save-the-internet">John Herrman - Read the rest on Gizmodo</a></p>
</blockquote>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://fightskillz.com/2010/02/some-sense/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Future of Flash &#8211; Apple&#8217;s iPad</title>
		<link>http://fightskillz.com/2010/02/the-future-of-flash-apple-ipad/</link>
		<comments>http://fightskillz.com/2010/02/the-future-of-flash-apple-ipad/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 02:14:14 +0000</pubDate>
		<dc:creator>Yoav Givati</dc:creator>
				<category><![CDATA[Anti-Idiocy]]></category>
		<category><![CDATA[Other Idiots]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[3Gs]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[complient]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPlatform]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://fightskillz.com/?p=1915</guid>
		<description><![CDATA[The internet is a buzz with talk of the downfall of Flash. Flash, the only web platform with 99%+ penetration rate cross platform, and 90%+ penetration rate for their latest version only 3 months after release. The platform that powers the web's content, games, and more than 75% of all interactive online media. That's now [...]]]></description>
			<content:encoded><![CDATA[<p>The internet is a buzz with talk of the downfall of Flash. Flash, the only web platform with 99%+ penetration rate cross platform, and 90%+ penetration rate for their latest version only 3 months after release. The platform that powers the web's content, games, and more than 75% of all interactive online media. That's now able to power desktop and mobile applications, and with the imminent release of Flash 10.1 will bring far more efficient and lower memory/ram usage. So much lighter on cpu in fact that it's able to play HD Youtube videos on mobile phones and netbooks without a problem. Yes, Flash, the downfall of Flash.</p>
<p>There are two main arguments to this. The first is the emergence of HTML 5. HTML 5 finally allows video and audio playback without any plugins, and canvas - a tag which allows for complex drawing, embedding fonts, etc. etc. Things Flash has been able to do for years, has a huge head start on, and does really well. Flash has supplied us with everything from video streaming to <a href="http://www.casino.com/" style="border-bottom:1px double #55bbdd;">blackjack</a>, and even website design as a whole, and yet HTML 5 is supposed to just oust the holder of the crown and sceptre when it's finalized? I don't think so. The problem nobody seems to get is that Internet Explorer still has a majority market share, by a lot depending on who you ask - and Microsoft will likely NEVER support standards because it directly counters their business model. Aside from that, and the fact that every browser that will support HTML 5(ie: everyone else), will implement it differently from each other, with different aesthetics, features, code, BUGS, etc. But even more crucial the HTML 5 spec itself is not even complete yet. It's not even finished, and it's unfinished in a deadlock between the web giants who not only can't decide or agree on which video and audio formats are the best performance wise, but also who owns the rights to implement those formats in their browser and who'll have to pay massive royalties should the true patent holders (still somewhat unknown for sure) decide to cash in. No one wants to properly look this up for a variety of reasons and so HTML 5 - supposed to bring the web together and herald a new dawn of the internet can only work if EVERYONE does in fact come together and implement it in exactly the same way; disregarding that ubiquitous HTML 5 means EVERYONE loses something, some everything.</p>
<p>The other main argument is the Apple iPad - just announced. Which like the iPhone doesn't support Flash. Apple uses the old "Flash is too resource intensive" argument to convince you that limiting you from the full web is a good thing. This simply isn't true. It's false. Both iPhone 3Gs and iPad could happily run the current version of Flash or Adobe AIR just like your laptop/desktop. And it's also entirely up to the developer and how they program and how resource intensive they make their flash app/widget/game/etc. The only reason, listen up, the ONLY reason Apple does not support Flash, is because the Flash platform already powers so many games and useful tools and full blown applications on the internet it threatens Apple's very business model of the Itunes/App Store. Apple wants companies to develop all their apps again specifically for the iPlatform and invest in it. If you could make a Flash app that ran on the iPhone it would also run on Android and every other smart phone. But if you invest in the iPlatform your app will only run on the iPlatform. If Apple was a monopoly the FTC would be pushing them down for their anti-competitive vindictive behaviour.</p>
<p>Apple doesn't block Flash support in their mobile products because they want to push innovation in HTML 5. If HTML 5 was advanced enough, or popular enough to be worth creating the caliber of applications possible on Flash, Apple would immediately configure mobile Safari to block, impede, and hinder the advancement of standards just like Microsoft with IE. In a heart beat. Apple promotes HTML 5 because they know it'll be years before it's anywhere close to where Flash is today, if ever. In fact Apple is one of the "powers that be" preventing the HTML 5 spec from being finalized in the codec wars. Apple wants you locked into their platform. Apple doesn't care about advancing the web, or a better user experience, they care about the big media companies bringing their content online through Apple's platform. Apple wants the iPad to replace your tv, radio, and other media consumption devices. They do not care about the open web.</p>
<p>Adobe on the other hand continues to open up the Flash platform and benefits from creating a ubiquitous platform across desktop and mobile. There are fully open source versions of their Streaming and Application servers, and free and open source ways to develop for their platform. Anyone can build a Flash application, for the browser, desktop, Windows, Mac, Linux, Safari, Internet Explorer, Chrome, Firefox, Opera, etc. etc. Build one application and deploy everywhere using an incredibly powerful, scalable, and mature toolset. Apple on the other hand - should you decide to invest in it, puts you in a position where you may or may not after months of development time and costs even get your application onto a device, regardless you'll have payed Apple to be a developer and to submit it in the first place or even get access to their development tools, and should you get through the random and gauntlet of barriers they can still remove your software from their platform and devices at a moments whim. They can and do literally remove your application from people's phones after being downloaded and used without warning to backup the data put into or created by your app. Anytime for any reason. AND if you're lucky enough to get your application through all these extra months of hurdles and costs and lost revenue you're only gaining access to one small subset of mobile devices.</p>
<p>It is absolutely ridiculous to think the HTML 5 is going anywhere anytime soon, let alone even coming close to eclipsing Flash in any way. Not from Apple, they don't want anything to compete with their platform for getting applications on their devices - Flash or otherwise(HTML, Java, Silverlight), and not from anywhere else because it's just not mature, complete, or will over the next 12-24 months be implemented uniformly or consistently across browsers or operating systems. Even in the event that somehow all these competitors come together to reduce their own profit margins and upset shareholders in the name of benefiting the user and happy popcorn rainbows, it will still only have the capabilities of Flash 8-ish. By then Flash Player 11 will be out and all the best web apps will have an Adobe AIR application front end and you'll use an Adobe AIR application to browse through a market place of Adobe AIR apps. Yes we're moving towards the cloud, and yes the cloud and desktop are becoming indistinguishable, but moving into the browser is only a temporary measure for some companies before they build a desktop front end for their service.</p>
<p>The iPad, iPhone, and iPod are toasters. Every person with an iMobile device also has a desktop or laptop for work and actually managing their digital life. Every single person I've seen raving for HTML 5 and the downfall of Flash depends heavily on Flash and its phenomenal capabilities. They're all idiots.</p>
]]></content:encoded>
			<wfw:commentRss>http://fightskillz.com/2010/02/the-future-of-flash-apple-ipad/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adobe Flex/Air Bug &#8211; Serving Content via PHP</title>
		<link>http://fightskillz.com/2010/02/adobe-flexair-bug-serving-content-via-php/</link>
		<comments>http://fightskillz.com/2010/02/adobe-flexair-bug-serving-content-via-php/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 22:49:50 +0000</pubDate>
		<dc:creator>Yoav Givati</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[not working]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sound]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[urlrequest]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://fightskillz.com/?p=1909</guid>
		<description><![CDATA[I've been using a php script as a gateway to fetching certain content from a server, mainly mp3 files. There are a bunch of reasons for doing this, the main ones would be to be able to easily log which files are being accessed, when, and by who - and if you plan on creating [...]]]></description>
			<content:encoded><![CDATA[<p>I've been using a php script as a gateway to fetching certain content from a server, mainly mp3 files. There are a bunch of reasons for doing this, the main ones would be to be able to easily log which files are being accessed, when, and by who - and if you plan on creating widgets for your users to stream the content they upload to your site and they happen to put it on a heavily visited part of the web you can temporarily disable or limit that user's widget's access to content giving your other user's priority and preventing your server from crashing or being overworked.</p>
<p>So in the Flex/AIR app I've got a URLRequest that's used to load a Sound object. Instead of specifying the index.php it had been accessing <strong>http://domain.com?var1=blah&amp;var2=blah</strong>. Usually this will redirect to the index.php sending it the post variables and letting it do it's thing and fetch the mp3. It works on Adobe AIR for Mac, it works in a browser on Mac/Windows. But in a URLRequest from Windows it doesn't work, confirmed for XP and 7. It doesn't just redirect to the /index.php file and drop the POST/GET variables, it actually just doesn't redirect anywhere, and you get an IOError. You'd think the redirect would be handled entirely by the server and transparent to the client, but it appears that for whatever reason, Adobe AIR on Windows just returns an IO Error.</p>
<p>Either way it's easy to fix, you just have to specify the index file in your URLRequest like so: <strong>http://domain.com/index.php?var1=blah&amp;var2=blah</strong>.<strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://fightskillz.com/2010/02/adobe-flexair-bug-serving-content-via-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe AIR, Flex, and Socket Policy Files</title>
		<link>http://fightskillz.com/2010/01/adobe-air-flex-and-socket-policy-files/</link>
		<comments>http://fightskillz.com/2010/01/adobe-air-flex-and-socket-policy-files/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 23:39:08 +0000</pubDate>
		<dc:creator>Yoav Givati</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Error #2123]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[PHP CLI]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Sandbox]]></category>
		<category><![CDATA[SecurityError]]></category>
		<category><![CDATA[Socket Policy File]]></category>
		<category><![CDATA[Socket Policy File Server]]></category>
		<category><![CDATA[Sockets]]></category>

		<guid isPermaLink="false">http://fightskillz.com/?p=1859</guid>
		<description><![CDATA[You probably found this because you're trying to make a socket connection from Flex/Flash and getting the following error:
SecurityError: Error #2123: Security sandbox violation: 
Adobe went through a number of phases making the rules for serving and checking Policy files stricter. There are different security sandboxes. If you publish your flex/flash application on domain.com, and the [...]]]></description>
			<content:encoded><![CDATA[<p>You probably found this because you're trying to make a socket connection from Flex/Flash and getting the following error:</p>
<p><em>SecurityError: Error #2123: Security sandbox violation: </em></p>
<p>Adobe went through a number of phases making the rules for serving and checking Policy files stricter. There are different security sandboxes. If you publish your flex/flash application on domain.com, and the application attempts to load content from domain2.com, it will look for a Cross Domain Policy File at domain2.com/crossdomain.xml to get permission. It does this automatically, however you could specify the location of the Cross Domain Policy File in your flex application using the following method:</p>
<p><em>Security.loadPolicyFile("http://domain.com/remote_content/crossdomain.xml")</em></p>
<p>A Cross Domain Policy File only has authority to grant access to content below it in the folder hierarchy. So a policy file in /remote_content/ can't grant access to content in the root folder, and in addition a Policy File at the domain root can override any other policy file. It has maximal authority. Subdomains are considered separate domains - which as a side note most search engines see subdomains that way too.</p>
<p>Now that's <em>Cross Domain Policy File</em>s, In general Adobe Air applications operate in one of the local system sandboxes and has thus have access to content on any domain. This post is about <em>Socket Policy Files</em>. When you access regular web content you're generally connecting to your server on port 80 and being served content by Apache or whatever web server you happen to be running. When you do this you're using http protocols under the hood and never have to deal directly with that crazy stuff. If you want to make a raw socket connection to your server you will need to serve up a <em>Socket Policy File</em> on a specific port.</p>
<p>First I just want to stress the difference between a Cross Domain Policy File and a Socket Policy File. For some reason my dyslexia and the ton of misleading, vague, and now out of date and incorrect information I kept thinking they were the same thing. Second there is no way as far as I'm aware to serve a Socket Policy File with Apache.</p>
<p>The default port for flex/flash to search for a socket policy file on port 843. There are several places on the web that talk about being able to connect to higher port numbers without a Socket Policy File, well that doesn't seem to be the case anymore. Just assume that any raw socket connection from a flex/flash client requires a Socket Policy File.</p>
<p>You can serve the Socket Policy File from the port you're connecting to, but this is tricky considering the manner in which Flex/Flash goes about loading the Socket Policy File and rewriting the service to serve this up, especially if you're using server software built by someone else, means it's just better to keep the Socket Policy File Server as a separate always running entity on the system.</p>
<p>Now in the simplest implementations you need a process either written in python, perl, c++, php cli, or whatever. It needs to be listening on port 843. It has to wait for - very specifically - the following string<code>&lt;policy-file-request/&gt;</code> followed by a <code>NULL</code> byte. Upon receiving that it needs to serve up the policy file which needs to at least have <em>allow-access-from domain </em>set to <em>*</em>, and <em>to-ports</em> set to<em> *</em>. You should use the links at the end of this post to familiarize yourself with the differences between and all options you can specify in Policy Files. It's easiest to keep the Policy File as an actual file, instead of adding the text of the file to your custom server code. And that's it!, now you can go on with a better idea of what information out there is out of date or not.</p>
<p>Here are some important links to help you on your journey:</p>
<p><a href="http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html">Adobe on setting up a Socket Policy File Server</a></p>
<p><a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security_04.html">Adobe on Policy File changes for flash 9 and 10</a></p>
<p><a href="http://www.senocular.com/pub/adobe/crossdomain/policyfiles.html">Adobe on the structure of Policy Files</a></p>
<p><a href="http://www.amk.ca/python/howto/sockets/">An intro to Sockets</a></p>
<p><a href="http://ammonlauritzen.com/blog/2008/04/22/flash-policy-service-daemon/">Working PHP Cli Socket Policy File Server</a></p>
]]></content:encoded>
			<wfw:commentRss>http://fightskillz.com/2010/01/adobe-air-flex-and-socket-policy-files/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
